/*
Theme Name: Avenir Corporate 2026
Theme URI: https://www.global-avenir.co.jp/
Author: Avenir Inc.
Description: 株式会社Avenirコーポレートサイト用オリジナルテーマ。HOME / MISSION / SERVICE / ABOUT / NEWS / CONTACT の複数ページ構成。事業写真・役員顔写真・提携企業募集セクション対応。
Version: 2.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: avenir2026
*/

:root{
  --bg:#F7F7F5;
  --white:#FFFFFF;
  /* 黒の階調 */
  --ink:#141519;        /* 最も濃い黒（大見出し） */
  --ink-2:#2E3038;      /* やわらかい黒（中見出し） */
  --ink-3:#4B4D57;      /* 本文用のグレー黒 */
  --gray:#75766F;
  --line:#E2E1DB;
  /* 青の階調 */
  --blue-100:#E8ECF7;   /* 淡青（背景・番号） */
  --blue-300:#7D96E3;   /* 明青（アイコン・装飾） */
  --blue-500:#3B5BC4;   /* 中青（ラベル・リンク） */
  --blue-700:#1F3D8C;   /* 基調の藍 */
  --blue-900:#16295E;   /* 濃紺（グラデーション終点） */
  --accent:var(--blue-700);
  --accent-deep:var(--blue-900);
  --accent2:var(--blue-100);
  --en:"Archivo",sans-serif;
  --jp:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--jp);background:var(--bg);color:var(--ink);font-size:14.5px;line-height:2;letter-spacing:.03em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
ul{list-style:none}
.inner{max-width:1160px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}

/* ===== header + ドロップダウン ===== */
.header{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(247,247,245,.94);backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .3s}
.header.scrolled{border-color:var(--line)}
.header .bar{display:flex;align-items:center;justify-content:space-between;height:72px;max-width:1380px;margin:0 auto;padding:0 clamp(20px,3vw,40px)}
.logo{font-family:var(--en);font-weight:900;font-size:21px;letter-spacing:.04em}
.logo span{color:var(--accent)}
.gnav > ul{display:flex;gap:clamp(18px,2.4vw,32px);align-items:center}
.gnav > ul > li{position:relative}
.gnav a.top-link{font-family:var(--en);font-weight:700;font-size:12.5px;letter-spacing:.14em;position:relative;padding:26px 0;display:inline-block}
.gnav a.top-link::after{content:"";position:absolute;left:0;bottom:18px;width:100%;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .3s}
.gnav li:hover > a.top-link::after,.gnav a.top-link:focus-visible::after{transform:scaleX(1);transform-origin:left}
.gnav a.contact{background:var(--ink);color:#fff;padding:10px 24px;border-radius:4px;transition:background .3s;font-family:var(--en);font-weight:700;font-size:12.5px;letter-spacing:.14em}
.gnav a.contact:hover{background:var(--accent)}
/* ドロップダウン（SERVICE / NEWS 配下） */
.dropdown{position:absolute;top:100%;left:50%;transform:translate(-50%,8px);min-width:240px;background:var(--white);border:1px solid var(--line);box-shadow:0 18px 40px -20px rgba(20,21,25,.25);border-radius:6px;padding:10px;opacity:0;visibility:hidden;transition:opacity .25s,transform .25s,visibility .25s}
.gnav li:hover .dropdown,.gnav li:focus-within .dropdown{opacity:1;visibility:visible;transform:translate(-50%,0)}
.dropdown a{display:block;padding:10px 16px;font-size:13px;border-radius:4px;transition:background .2s,color .2s}
.dropdown a:hover{background:var(--accent2);color:var(--accent)}
.dropdown a small{display:block;font-family:var(--en);font-weight:700;font-size:10px;letter-spacing:.18em;color:var(--gray)}
.hb{display:none;width:46px;height:46px;background:none;border:0;cursor:pointer;position:relative;z-index:130}
.hb span{position:absolute;left:11px;width:24px;height:2px;background:var(--ink);transition:.3s}
.hb span:nth-child(1){top:16px}.hb span:nth-child(2){top:23px}.hb span:nth-child(3){top:30px}
.menu-open .hb span:nth-child(1){top:23px;transform:rotate(45deg)}
.menu-open .hb span:nth-child(2){opacity:0}
.menu-open .hb span:nth-child(3){top:23px;transform:rotate(-45deg)}

/* ===== hero ===== */
.hero{min-height:100svh;display:flex;align-items:center;position:relative;padding:120px 0 80px;overflow:hidden}
.hero .deco{position:absolute;border-radius:50%;z-index:0}
.hero .d1{width:38vw;height:38vw;right:-8vw;top:-10vw;background:var(--accent2)}
.hero .d2{width:14vw;height:14vw;right:26vw;bottom:8vh;border:1px solid var(--line)}
.hero .d3{width:8vw;height:8vw;left:-3vw;bottom:-2vw;background:var(--ink);opacity:.06}
.hero .inner{position:relative;z-index:1;width:100%}
.hero-big{font-family:var(--en);font-weight:900;font-size:clamp(52px,10.5vw,148px);line-height:1.02;letter-spacing:-.01em}
.hero-big .l{display:block;overflow:hidden}
.hero-big .l span{display:inline-block;transform:translateY(110%);animation:up .9s cubic-bezier(.2,.7,.2,1) forwards}
.hero-big .l:nth-child(2) span{animation-delay:.12s;color:var(--ink-2)}
.hero-big .l:nth-child(3) span{animation-delay:.24s;background:linear-gradient(100deg,var(--blue-500),var(--blue-900));-webkit-background-clip:text;background-clip:text;color:transparent}
@keyframes up{to{transform:none}}
.hero-detail{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-top:clamp(30px,4vw,56px)}
.hero-en{font-family:var(--en);font-weight:600;font-size:clamp(13px,1.3vw,16px);letter-spacing:.06em;color:var(--gray);line-height:1.7}
.hero-jp{font-size:clamp(15px,1.6vw,19px);font-weight:700;letter-spacing:.16em}
.scroll{position:absolute;left:clamp(20px,4vw,40px);bottom:24px;font-family:var(--en);font-size:11px;letter-spacing:.3em;color:var(--gray);display:flex;align-items:center;gap:12px}
.scroll::after{content:"";width:52px;height:1px;background:var(--gray);animation:sc 2.2s infinite}
@keyframes sc{0%{transform:scaleX(0);transform-origin:left}50%{transform:scaleX(1);transform-origin:left}51%{transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}

/* ===== 共通 ===== */
.sec{padding:clamp(80px,10vw,140px) 0}
.h2{font-family:var(--en);font-weight:900;font-size:clamp(34px,4.6vw,58px);letter-spacing:.01em;line-height:1;margin-bottom:18px;display:flex;align-items:center;gap:20px}
.h2::after{content:"";flex:1;height:2px;background:linear-gradient(90deg,var(--blue-300),var(--line) 55%)}
.headding{max-width:44em;color:var(--ink-3);margin-bottom:clamp(36px,5vw,60px)}
.rv{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}
.rv.on{opacity:1;transform:none}
.big-copy{font-size:clamp(20px,2.6vw,32px);font-weight:700;letter-spacing:.14em;line-height:2;margin-bottom:clamp(36px,5vw,56px)}
.big-copy{color:var(--ink-2)}
.big-copy b{background:linear-gradient(100deg,var(--blue-500),var(--blue-900));-webkit-background-clip:text;background-clip:text;color:transparent}
.btn{display:inline-flex;align-items:center;gap:14px;font-family:var(--en);font-weight:700;font-size:12.5px;letter-spacing:.22em;border:1px solid var(--ink);padding:16px 44px;border-radius:4px;position:relative;overflow:hidden;z-index:1;transition:color .35s;margin-top:clamp(30px,4vw,44px)}
.btn::before{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.7,0,.2,1);z-index:-1}
.btn:hover{color:#fff}
.btn:hover::before{transform:scaleX(1);transform-origin:left}
.btn.light{border-color:#fff;color:#fff}
.btn.light::before{background:#fff}
.btn.light:hover{color:var(--accent)}

/* ===== service ===== */
.svc-list{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2.4vw,32px)}
.svc{background:var(--white);border:1px solid var(--line);padding:clamp(26px,3vw,44px);position:relative;overflow:hidden;transition:transform .35s,box-shadow .35s}
.svc::before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .4s}
.svc:hover{transform:translateY(-5px);box-shadow:0 20px 40px -22px rgba(20,21,25,.25)}
.svc:hover::before{transform:scaleX(1)}
.svc .mini{font-size:11.5px;font-weight:700;color:var(--blue-500);letter-spacing:.14em;margin-bottom:8px}
.svc .name{font-family:var(--en);font-weight:900;font-size:clamp(22px,2.4vw,30px);line-height:1.15;margin-bottom:16px}
.svc .name small{display:block;font-family:var(--jp);font-weight:700;font-size:14px;letter-spacing:.1em;margin-top:8px}
.svc p.desc{font-size:13.5px;color:var(--ink-3)}
.svc .num{position:absolute;right:18px;top:14px;font-family:var(--en);font-weight:900;font-size:44px;color:var(--blue-100);line-height:1}
.svc:nth-child(2) .num{color:#D3DCF5}
.svc:nth-child(3) .num{color:#BFCCF0}
.svc:nth-child(4) .num{color:#AABCEA}
.svc .name small{color:var(--ink-2)}

.note{font-size:11.5px;color:var(--gray)}

/* ===== about ===== */
.abt-list{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,28px)}
.abt{background:var(--white);border:1px solid var(--line);padding:clamp(24px,2.6vw,36px);transition:transform .35s,box-shadow .35s;position:relative}
.abt:hover{transform:translateY(-5px);box-shadow:0 20px 40px -22px rgba(20,21,25,.25)}
.abt .mini{font-size:11.5px;color:var(--gray);letter-spacing:.14em}
.abt .name{font-family:var(--en);font-weight:900;font-size:clamp(20px,2vw,26px);margin-top:6px;transition:color .3s}
.abt:hover .name{color:var(--blue-700)}
.abt .mini{color:var(--blue-500);font-weight:700}
.abt .arw{position:absolute;right:22px;bottom:18px;font-family:var(--en);color:var(--accent);transition:transform .3s}
.abt:hover .arw{transform:translateX(5px)}

/* ===== join us band ===== */
.band{background:linear-gradient(120deg,var(--accent) 0%,var(--accent-deep) 100%);color:#fff;position:relative;overflow:hidden}
.band .ring{position:absolute;border:1px solid rgba(255,255,255,.18);border-radius:50%}
.band .r1{width:420px;height:420px;right:-120px;top:-160px}
.band .r2{width:220px;height:220px;right:160px;bottom:-80px}
.band .h2::after{background:rgba(255,255,255,.25)}
.band .headding{color:#D7DEF2}
.band .big-copy{color:#fff}
.band .big-copy b{color:#AFC2F5}

/* ===== blog カードグリッド ===== */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,30px)}
.b-card{background:var(--white);border:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden;transition:transform .35s,box-shadow .35s}
.b-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px -22px rgba(20,21,25,.25)}
.b-thumb{aspect-ratio:16/9;background:linear-gradient(135deg,var(--blue-100),#F0F1EC);display:flex;align-items:center;justify-content:center;font-family:var(--en);font-weight:900;font-size:clamp(18px,2vw,24px);letter-spacing:.12em;color:var(--accent);position:relative;overflow:hidden}
.b-thumb::after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;border:1px solid rgba(31,61,140,.25);right:-40px;bottom:-40px}
.b-card:nth-child(3n+2) .b-thumb{background:linear-gradient(135deg,#DCE4F8,#EDF0FA);color:var(--blue-500)}
.b-card:nth-child(3n) .b-thumb{background:linear-gradient(135deg,var(--blue-700),var(--blue-900));color:#fff}
.b-card:nth-child(3n) .b-thumb::after{border-color:rgba(255,255,255,.3)}
.b-body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
.b-tt{font-size:13.5px;font-weight:700;line-height:1.8;flex:1;color:var(--ink-2);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.b-state{display:flex;align-items:center;gap:12px;margin-top:14px}
.b-date{font-family:var(--en);font-weight:600;font-size:12px;color:var(--gray);letter-spacing:.08em}
.b-cat{font-family:var(--en);font-weight:700;font-size:10px;letter-spacing:.16em;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:2px 12px}

/* ===== footer（2枚カード + 多段リンク + SNS） ===== */
.footer{background:var(--ink);color:#B9BAB5;padding:clamp(50px,6vw,80px) 0 30px}
.f-top{display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between;padding-bottom:44px;border-bottom:1px solid #2b2d34}
.f-logo{color:#fff;max-width:380px}
.f-logo p.txt{font-size:12.5px;margin-top:16px;color:#B9BAB5}
.f-navs{display:grid;grid-template-columns:repeat(3,auto);gap:clamp(26px,4vw,60px)}
.f-navs h5{font-family:var(--en);font-weight:700;font-size:11px;letter-spacing:.24em;color:#fff;margin-bottom:14px}
.f-navs li{margin-bottom:9px;font-size:12.5px}
.f-navs a:hover{color:#fff}
.sns{display:flex;gap:14px;margin-top:22px}
.sns a{width:38px;height:38px;border:1px solid #3a3c44;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--en);font-weight:700;font-size:11px;transition:border-color .3s,color .3s,background .3s}
.sns a:hover{border-color:#fff;color:var(--ink);background:#fff}
.f-btm{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:24px;font-family:var(--en);font-size:11px;letter-spacing:.1em}
.to-top{position:fixed;right:20px;bottom:20px;width:50px;height:50px;border-radius:4px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--en);opacity:0;pointer-events:none;transition:opacity .3s;z-index:90}
.to-top.show{opacity:1;pointer-events:auto}

/* ===== responsive ===== */
@media(max-width:960px){
  .svc-list{grid-template-columns:1fr}
  .abt-list{grid-template-columns:1fr}
  .blog-grid{grid-template-columns:1fr}
  .f-navs{grid-template-columns:1fr 1fr}
  .gnav{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;transform:translateX(102%);transition:transform .45s cubic-bezier(.7,0,.2,1);z-index:110;overflow-y:auto}
  .gnav > ul{flex-direction:column;gap:22px;padding:80px 0}
  .gnav a.top-link{padding:6px 0;font-size:17px}
  .menu-open .gnav{transform:none}
  .dropdown{position:static;transform:none;opacity:1;visibility:visible;box-shadow:none;border:none;background:transparent;padding:4px 0 0;text-align:center}
  .dropdown a{padding:5px 0;font-size:13px;color:var(--gray)}
  .hb{display:block}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .rv{opacity:1;transform:none}
  .hero-big .l span{transform:none}
}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
/* ===== 下層ページ共通ヒーロー ===== */
.page-hero{padding:clamp(150px,20vh,210px) 0 clamp(50px,7vw,80px);position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.page-hero .deco{position:absolute;border-radius:50%;width:30vw;height:30vw;right:-10vw;top:-14vw;background:var(--blue-100);z-index:0}
.page-hero .inner{position:relative;z-index:1}
.page-hero .en{font-family:var(--en);font-weight:900;font-size:clamp(42px,7vw,88px);line-height:1;letter-spacing:.01em}
.page-hero .en b{background:linear-gradient(100deg,var(--blue-500),var(--blue-900));-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:900}
.page-hero .jp{display:inline-flex;align-items:center;gap:14px;margin-top:14px;font-size:13.5px;font-weight:700;letter-spacing:.2em;color:var(--ink-2)}
.page-hero .jp::before{content:"";width:32px;height:2px;background:linear-gradient(90deg,var(--blue-300),var(--blue-700))}
.breadcrumb{margin-top:26px;font-family:var(--en);font-size:11px;letter-spacing:.14em;color:var(--gray)}
.breadcrumb a:hover{color:var(--blue-700)}
.gnav a.current::after{transform:scaleX(1)!important}

/* ===== MISSION ページ ===== */
.statement{text-align:center;font-size:clamp(22px,3.2vw,38px);font-weight:700;letter-spacing:.18em;line-height:2.1;color:var(--ink-2)}
.statement b{background:linear-gradient(100deg,var(--blue-500),var(--blue-900));-webkit-background-clip:text;background-clip:text;color:transparent}
.mvv{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,28px)}
.mvv-item{background:var(--white);border:1px solid var(--line);border-top:3px solid var(--blue-700);padding:clamp(26px,3vw,44px)}
.mvv-item:nth-child(2){border-top-color:var(--blue-500)}
.mvv-item:nth-child(3){border-top-color:var(--blue-300)}
.mvv-item h3{font-family:var(--en);font-weight:900;font-size:13px;letter-spacing:.28em;color:var(--blue-500);margin-bottom:18px}
.mvv-item p.big{font-size:clamp(17px,1.7vw,21px);font-weight:700;letter-spacing:.08em;line-height:1.9;margin-bottom:14px;color:var(--ink-2)}
.mvv-item p.desc{font-size:13px;color:var(--ink-3)}
.mvv-item ul li{font-weight:700;letter-spacing:.08em;padding:10px 0;border-bottom:1px dashed var(--line);color:var(--ink-2)}
.mvv-item ul li::before{content:"—";color:var(--blue-500);margin-right:10px}

/* ===== SERVICE 詳細 ===== */
.svc-detail{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(24px,4vw,64px);padding:clamp(40px,5vw,64px) 0;border-bottom:1px solid var(--line)}
.svc-detail:last-of-type{border-bottom:none}
.svc-detail .side .num{font-family:var(--en);font-weight:900;font-size:clamp(40px,5vw,60px);line-height:1;background:linear-gradient(120deg,var(--blue-300),var(--blue-700));-webkit-background-clip:text;background-clip:text;color:transparent}
.svc-detail .side .name{font-family:var(--en);font-weight:900;font-size:clamp(24px,3vw,36px);line-height:1.15;margin:8px 0 6px}
.svc-detail .side .jp{font-weight:700;font-size:15px;letter-spacing:.12em;color:var(--blue-500)}
.svc-detail .body p{color:var(--ink-3);margin-bottom:1.4em}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 10px}
.tags li{font-size:11.5px;letter-spacing:.08em;border:1px solid var(--line);background:var(--white);border-radius:999px;padding:4px 14px;color:var(--ink-3)}
.tags li:hover{border-color:var(--blue-500);color:var(--blue-500)}

/* ===== COMPANY ページ ===== */
.c-table{width:100%;border-top:1px solid var(--line)}
.c-table div{display:grid;grid-template-columns:220px 1fr;border-bottom:1px solid var(--line)}
.c-table dt{padding:20px 10px;font-weight:700;letter-spacing:.1em;font-size:13px;background:var(--blue-100);color:var(--ink-2)}
.c-table dd{padding:20px 16px;font-size:13.5px;color:var(--ink-3)}
.members{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,3vw,36px)}
.member{background:var(--white);border:1px solid var(--line);padding:clamp(22px,2.6vw,34px)}
.member .role{font-family:var(--en);font-weight:700;font-size:11px;letter-spacing:.24em;color:var(--blue-500)}
.member h4{font-size:19px;font-weight:700;letter-spacing:.14em;margin:6px 0 10px;color:var(--ink-2)}
.member p{font-size:12.5px;color:var(--ink-3)}
.msg-quote{font-size:clamp(19px,2.2vw,26px);font-weight:700;letter-spacing:.12em;line-height:2;margin-bottom:26px;color:var(--ink-2)}
.msg-quote b{background:linear-gradient(100deg,var(--blue-500),var(--blue-900));-webkit-background-clip:text;background-clip:text;color:transparent}
.msg-body p{color:var(--ink-3);margin-bottom:1.5em;max-width:44em}
.sign{margin-top:28px;display:flex;align-items:baseline;gap:18px}
.sign .role{font-size:11.5px;letter-spacing:.24em;color:var(--gray)}
.sign .name{font-size:21px;font-weight:700;letter-spacing:.2em}

/* ===== NEWS 一覧（リスト型） ===== */
.news-list{border-top:1px solid var(--line)}
.news-list a{display:grid;grid-template-columns:110px 130px 1fr auto;gap:20px;align-items:baseline;padding:22px 6px;border-bottom:1px solid var(--line);transition:background .3s,padding-left .3s}
.news-list a:hover{background:var(--white);padding-left:16px}
.n-date{font-family:var(--en);font-weight:600;font-size:12.5px;color:var(--gray);letter-spacing:.08em}
.n-cat{font-family:var(--en);font-weight:700;font-size:10px;letter-spacing:.18em;color:var(--blue-500);border:1px solid var(--blue-500);border-radius:999px;text-align:center;padding:3px 0}
.n-tt{font-size:13.5px;color:var(--ink-2)}
.n-arw{font-family:var(--en);color:var(--blue-700)}

/* ===== CONTACT ページ ===== */
.ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,40px)}
.ct-card{background:var(--white);border:1px solid var(--line);padding:clamp(26px,3vw,44px)}
.ct-card .name{font-family:var(--en);font-weight:900;font-size:clamp(20px,2.2vw,26px);margin-bottom:10px}
.ct-card p{font-size:13.5px;color:var(--ink-3)}
.form dl{margin-bottom:18px}
.form dt{font-size:12.5px;font-weight:700;letter-spacing:.1em;margin-bottom:6px;color:var(--ink-2)}
.form dt em{font-style:normal;font-size:10px;color:#fff;background:var(--blue-500);border-radius:3px;padding:2px 7px;margin-left:8px;letter-spacing:.14em}
.form input,.form textarea{width:100%;border:1px solid var(--line);background:var(--bg);padding:13px 14px;font-family:var(--jp);font-size:14px;border-radius:4px}
.form input:focus,.form textarea:focus{outline:2px solid var(--blue-500);outline-offset:1px}
.form textarea{min-height:150px;resize:vertical}
.btn.fill{background:var(--ink);color:#fff;border:none;cursor:pointer}
.btn.fill::before{background:var(--blue-700)}

@media(max-width:960px){
  .mvv{grid-template-columns:1fr}
  .svc-detail{grid-template-columns:1fr}
  .members{grid-template-columns:1fr}
  .ct-grid{grid-template-columns:1fr}
  .c-table div{grid-template-columns:1fr}
  .c-table dt{padding-bottom:2px}
  .c-table dd{padding-top:2px}
  .news-list a{grid-template-columns:1fr auto;grid-template-areas:"date arw" "cat cat" "tt tt";row-gap:6px}
  .n-date{grid-area:date}.n-cat{grid-area:cat;max-width:130px}.n-tt{grid-area:tt}.n-arw{grid-area:arw}
}

/* ===== 顔写真（代表メッセージ・役員紹介） ===== */
.msg-grid{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:clamp(26px,4vw,60px);align-items:start}
.msg-photo{position:relative}
.msg-photo img{width:100%;aspect-ratio:2/3;object-fit:cover;background:var(--blue-100);border:1px solid var(--line)}
.msg-photo::after{content:"";position:absolute;inset:14px -14px -14px 14px;border:1px solid var(--blue-300);z-index:-1}
.member .photo{margin-bottom:16px;overflow:hidden;background:var(--blue-100);border:1px solid var(--line)}
.member .photo img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;transition:transform .5s}
.member:hover .photo img{transform:scale(1.03)}
@media(max-width:960px){
  .msg-grid{grid-template-columns:1fr}
  .msg-photo{max-width:300px}
}

/* ===== 事業カード・事業詳細の写真 ===== */
.svc{padding:0}
.svc .photo{aspect-ratio:16/9;overflow:hidden;background:var(--blue-100)}
.svc .photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}
.svc:hover .photo img{transform:scale(1.05)}
.svc-inner{padding:clamp(26px,3vw,44px);position:relative}
.svc .num{top:14px}
.svc-detail{grid-template-columns:minmax(0,.62fr) minmax(0,1fr) minmax(240px,32%)}
.svc-detail figure{overflow:hidden;background:var(--blue-100);border:1px solid var(--line);align-self:start}
.svc-detail figure img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .6s}
.svc-detail:hover figure img{transform:scale(1.04)}
@media(min-width:961px){
  .svc-detail:nth-of-type(even){grid-template-columns:minmax(240px,32%) minmax(0,.62fr) minmax(0,1fr)}
  .svc-detail:nth-of-type(even) figure{order:-1}
}
@media(max-width:960px){
  .svc-detail figure{max-width:420px}
}

/* ===== 事業カード：横型レイアウト（写真左・テキスト右） ===== */
.svc{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:stretch}
.svc .photo{aspect-ratio:auto;height:100%;min-height:240px;clip-path:polygon(0 0,100% 0,90% 100%,0 100%)}
.svc:nth-child(even) .photo{order:2;clip-path:polygon(10% 0,100% 0,100% 100%,0 100%)}
.svc:nth-child(even) .svc-inner{order:1}
.svc-inner{display:flex;flex-direction:column;justify-content:flex-start}
.svc .name{margin-bottom:12px}
.svc .num{top:10px;right:14px}
@media(max-width:960px){
  .svc{grid-template-columns:1fr}
  .svc .photo{height:auto;min-height:0;aspect-ratio:16/9;clip-path:polygon(0 0,100% 0,100% 88%,0 100%)!important;order:0!important}
  .svc-inner{order:1!important}
}
/* ===== NEWSページ タブ ===== */
.news-tabs{
  display:flex;
  gap:32px;
  justify-content:center;
  margin:40px 0 30px;
  font-family:var(--en);
}
.news-tab{
  position:relative;
  padding-bottom:14px;
  color:var(--gray);
  font-size:15px;
  text-decoration:none;
}
.news-tab.is-active{
  color:#111;
  font-weight:bold;
}
.news-tab.is-active::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:3px;
  background:#111;
}