/* ============================================================
   Alive — 下層ページ共通コンポーネント (desktop 1440)
   style.css のトークン/ヘッダー/フッター/ボタンを前提に追加する
   ============================================================ */

/* ---- header: 下層用の調整 ---- */
.gnav>a.is-active{color:var(--red)}
.gnav>a.is-active::after{content:"";display:block;height:2px;background:var(--red);margin-top:5px}

/* ============ PAGE HERO ============ */
.phero{position:relative;min-height:520px;background:var(--black);overflow:hidden;display:flex;flex-direction:column}
.phero__bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(.9)}
.phero__scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,5,.9) 0%,rgba(5,5,5,.72) 42%,rgba(5,5,5,.4) 100%)}
.phero__inner{position:relative;z-index:5;flex:1;display:flex;align-items:center;padding:150px 0 96px}
.phero__kick{font-family:var(--f-en);font-weight:600;font-size:13px;letter-spacing:.28em;color:var(--red);margin-bottom:18px}
.phero__h{font-size:52px;font-weight:700;line-height:1.42;letter-spacing:.01em;margin-bottom:22px}
.phero__lead{font-size:16px;line-height:2;color:var(--soft);max-width:600px}
.phero__cta{display:flex;gap:16px;margin-top:34px}

/* floating anchor nav — heroに食い込むバー */
.pnav{position:relative;z-index:6;margin-top:-31px}
.pnav__inner{max-width:1240px;margin:0 auto;background:#0e0f11;border:1px solid var(--line);border-top:2px solid var(--red);border-radius:12px;
  box-shadow:0 16px 40px rgba(0,0,0,.5);display:flex;align-items:center;padding:20px 40px}
.pnav a{flex:1;display:flex;align-items:center;justify-content:center;gap:9px;font-size:13px;color:var(--soft);font-weight:500;position:relative}
.pnav a:hover{color:#fff}
.pnav a::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--red)}
.pnav a+a{border-left:1px solid rgba(255,255,255,.12)}

/* ============ SECTION SYSTEM ============ */
.psec{padding:88px 0;background:var(--black)}
.psec--alt{background:linear-gradient(180deg,#0d0708,#080808)}
.psec--tight{padding:64px 0}
.psec__head{display:flex;align-items:center;gap:14px;margin-bottom:34px}
.psec__bar{width:4px;height:24px;background:var(--red);border-radius:1px;flex:none}
.psec__h{font-size:28px;font-weight:700}
.psec__sub{font-size:14px;color:var(--mute);margin-top:-24px;margin-bottom:34px}
.psec__kick{font-family:var(--f-en);font-weight:600;font-size:12.5px;letter-spacing:.14em;color:var(--red);margin-bottom:12px}
.psec--center{text-align:center}
.psec--center .psec__head{justify-content:center}

/* ============ CHAPTER OPENER (余白の章) ============ */
.chapter{display:flex;gap:44px;padding:150px 0 130px;background:var(--black)}
.chapter__spine{width:2px;background:var(--red);flex:none;align-self:stretch}
.chapter__kick{font-family:var(--f-en);font-weight:600;font-size:12.5px;letter-spacing:.16em;color:var(--red);margin-bottom:30px}
.chapter__st{font-size:52px;font-weight:700;line-height:1.45;letter-spacing:.01em;margin-bottom:30px}
.chapter__lead{font-size:16px;line-height:2.1;color:var(--soft);max-width:640px}

/* ============ FULL-BLEED STATEMENT BAND ============ */
.fband{position:relative;height:340px;overflow:hidden;display:grid;place-items:center;text-align:center;background:#0f1013}
.fband__tiles{position:absolute;inset:0;display:flex}
.fband__tiles span{flex:1;background-size:cover;background-position:center}
.fband__scrim{position:absolute;inset:0;background:linear-gradient(100deg,rgba(150,10,12,.82),rgba(52,6,7,.74))}
.fband__body{position:relative;z-index:2;padding:0 40px}
.fband__st{font-size:36px;font-weight:700;line-height:1.6}
.fband__sub{font-size:14px;color:var(--soft);margin-top:14px}

/* ============ HAIRLINE GRID (脱カード) ============ */
.hrow{display:flex;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.hrow--nb{border-bottom:0}
.hcell{flex:1;padding:34px 36px;position:relative}
.hcell:first-child{padding-left:0}
.hcell+.hcell{border-left:1px solid var(--line)}
.hcell__num{font-family:var(--f-en);font-weight:700;font-size:12px;color:var(--red)}
.hcell__t{font-size:16px;font-weight:700;margin:8px 0}
.hcell__b{font-size:13.5px;line-height:1.85;color:var(--mute)}
.hcell--icontitle{display:flex;align-items:center;gap:12px}

/* ============ EDITORIAL PHOTO CARD ============ */
.pcards{display:flex;gap:18px}
.pcard{flex:1;display:flex;flex-direction:column;gap:12px}
.pcard__img{aspect-ratio:16/11;border-radius:4px;background:#161a1e no-repeat;background-size:cover;background-position:center 30%;overflow:hidden}
.pcard__t{font-size:13.5px;font-weight:700}
.pcard__b{font-size:12.5px;line-height:1.75;color:var(--mute)}

/* chips */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:6px 13px;border-radius:20px;font-size:11px;font-weight:500;background:rgba(255,255,255,.06);color:var(--soft)}
.chip--red{background:none;border:1px solid var(--red);color:var(--red)}

/* ============ 会社概要 TABLE ============ */
.ptable{width:100%;border:1px solid var(--line);border-radius:8px;overflow:hidden;border-collapse:collapse}
.ptable th,.ptable td{text-align:left;vertical-align:top;padding:15px 20px;font-size:13px;border-bottom:1px solid var(--hair)}
.ptable tr:last-child th,.ptable tr:last-child td{border-bottom:0}
.ptable th{width:150px;font-weight:500;color:var(--soft);background:rgba(255,255,255,.03)}
.ptable td{color:rgba(255,255,255,.9);line-height:1.7}

/* ============ KPI STRIP ============ */
.kpi{display:flex;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.kpi__cell{flex:1;padding:24px 30px}
.kpi__cell:first-child{padding-left:0}
.kpi__cell+.kpi__cell{border-left:1px solid rgba(255,255,255,.1)}
.kpi__l{font-size:11px;color:var(--mute)}
.kpi__v{font-family:var(--f-en);font-weight:700;font-size:30px;margin:4px 0}
.kpi__v small{font-family:var(--f-jp);font-weight:500;font-size:12px;color:#5ccb72;margin-left:8px}
.kpi__spark{height:20px;width:100%}
.kpi__spark path{stroke:var(--red);stroke-width:1.5;fill:none;opacity:.8}

/* ============ TIMELINE ============ */
/* horizontal */
.htl{display:flex;position:relative}
.htl::before{content:"";position:absolute;top:4px;left:20px;right:20px;height:2px;background:rgba(216,25,27,.35)}
.htl__i{flex:1;position:relative;padding-top:22px}
.htl__i::before{content:"";position:absolute;top:0;left:0;width:10px;height:10px;border-radius:50%;background:var(--red)}
.htl__y{font-family:var(--f-en);font-weight:700;font-size:22px}
.htl__t{font-size:12px;line-height:1.6;color:var(--soft);margin-top:8px;padding-right:16px}
/* vertical (About HISTORY) */
.vtl{display:flex;flex-direction:column;gap:22px}
.vtl__i{display:flex;gap:16px}
.vtl__y{font-family:var(--f-en);font-weight:700;font-size:20px;color:var(--red);width:56px;flex:none}
.vtl__t{font-size:15px;font-weight:700}
.vtl__b{font-size:12px;line-height:1.6;color:var(--mute);margin-top:4px}

/* ============ BUSINESS CHAPTER (sticky index + flow) ============ */
.bizchap{display:flex;gap:80px;align-items:flex-start;padding:20px 0 130px;background:var(--black)}
.bizidx{width:250px;flex:none;position:sticky;top:120px}
.bizidx__lbl{font-family:var(--f-en);font-weight:600;font-size:12px;letter-spacing:.14em;color:var(--red);margin-bottom:26px}
.bizidx__i{display:flex;gap:14px;margin-bottom:26px;cursor:pointer}
.bizidx__bar{width:2px;background:rgba(255,255,255,.15);flex:none}
.bizidx__i.is-on .bizidx__bar{background:var(--red)}
.bizidx__n{font-family:var(--f-en);font-weight:700;font-size:12px;color:rgba(255,255,255,.35)}
.bizidx__i.is-on .bizidx__n{color:var(--red)}
.bizidx__t{font-size:13px;line-height:1.6;color:rgba(255,255,255,.4)}
.bizidx__i.is-on .bizidx__t{color:rgba(255,255,255,.95)}
.bizflow{flex:1;min-width:0}
.bizblk{padding:60px 0;border-top:1px solid var(--hair)}
.bizblk:first-child{padding-top:0;border-top:0}
.bizblk__ghost{font-family:var(--f-en);font-weight:700;font-size:86px;line-height:1;color:rgba(216,25,27,.22);transition:color .6s ease,text-shadow .6s ease}
.bizblk.is-hot .bizblk__ghost{color:rgba(216,25,27,.66);text-shadow:0 0 38px rgba(216,25,27,.45)}
.bizblk__t{font-size:32px;font-weight:700;line-height:1.5;margin:22px 0 18px}
.bizblk__b{font-size:15px;line-height:2;color:var(--soft);margin-bottom:22px}

/* ============ MISSION / VISION ============ */
.mv{display:flex;gap:20px}
.mv__c{flex:1;padding:32px 30px;border:1px solid var(--line);border-radius:12px;background:#0f1013}
.mv__l{font-family:var(--f-en);font-weight:600;font-size:13px;letter-spacing:.06em;color:var(--red)}
.mv__h{font-size:23px;font-weight:700;line-height:1.48;margin:14px 0}
.mv__b{font-size:13px;line-height:1.85;color:var(--mute)}

/* ============ PERSONA CARD (対象となる方) ============ */
.persona{display:flex;gap:20px}
.persona__c{flex:1;position:relative;padding:40px 44px;border-radius:12px;overflow:hidden;background:#0d0e0e;min-height:440px;display:flex;flex-direction:column}
.persona__c::before{content:"";position:absolute;inset:0;background-image:var(--bg);background-size:cover;background-position:center;opacity:.28}
.persona__c>*{position:relative;z-index:2}
.persona__tag{align-self:flex-start;padding:6px 14px;border:1px solid var(--red);border-radius:20px;font-size:12px;color:var(--red);margin-bottom:26px}
.persona__h{font-size:27px;font-weight:700;line-height:1.45}
.persona__ul{width:40px;height:2px;background:var(--red);margin:18px 0}
.persona__blk{margin-bottom:16px}
.persona__lbl{font-size:11px;font-weight:500;margin-bottom:5px}
.persona__lbl--q{color:var(--mute)}
.persona__lbl--v{color:var(--red)}
.persona__txt{font-size:12.5px;line-height:1.7;color:rgba(255,255,255,.72)}
.persona__link{margin-top:auto;font-size:12.5px;color:#fff;display:inline-flex;gap:10px}

/* ============ CEO MESSAGE ============ */
.ceo{display:flex;gap:40px;padding:36px 44px 36px 36px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.ceo--rev{flex-direction:row-reverse}
.ceo__photo{width:320px;flex:none;aspect-ratio:32/33;border-radius:8px;background:#161a1e center 14%/cover no-repeat}
.ceo__body{flex:1;display:flex;flex-direction:column;gap:18px}
.ceo__h{font-size:25px;font-weight:700;line-height:1.5}
.ceo__p{font-size:13.5px;line-height:1.9;color:rgba(255,255,255,.72)}
.ceo__sig{font-size:14px;text-align:right;color:rgba(255,255,255,.9)}

/* ============ ACCESS ============ */
.access{display:flex;gap:20px;align-items:flex-start}
.access__map{flex:1;height:320px;border-radius:10px;border:1px solid var(--line);background:#181b1e;position:relative;overflow:hidden}
.access__road{position:absolute;background:rgba(255,255,255,.14)}
.access__pin{position:absolute;width:16px;height:16px;border-radius:50%;background:var(--red);box-shadow:0 0 0 9px rgba(216,25,27,.25)}
.access__info{width:340px;flex:none}
.access__info h3{font-size:20px;margin-bottom:14px}
.access__row{display:flex;gap:12px;font-size:12.5px;margin:9px 0}
.access__row dt{width:64px;flex:none;color:var(--mute)}
.access__row dd{color:rgba(255,255,255,.85);line-height:1.6}
.access__note{margin-top:16px;padding-top:14px;border-top:1px solid var(--hair)}
.access__note li{list-style:none;font-size:12px;color:var(--soft);margin:6px 0;padding-left:14px;position:relative}
.access__note li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:var(--red)}
.access__photo{width:200px;flex:none;height:320px;border-radius:10px;background:#161a1e center/cover no-repeat}

/* ============ CTA ============ */
/* red band with angled cut */
.rcta{position:relative;overflow:hidden;background:var(--red-deep);padding:96px 0 60px}
.rcta__cut{position:absolute;top:0;left:0;width:100%;height:80px;background:var(--black);clip-path:polygon(0 0,100% 0,100% 34%,0 100%)}
.rcta__row{position:relative;display:flex;justify-content:space-between;align-items:center;gap:40px}
.rcta__h{font-size:30px;font-weight:700}
.rcta__sub{font-size:14px;color:rgba(255,255,255,.9);margin:10px 0 22px}
.rcta__tel{font-family:var(--f-en);font-weight:700;font-size:30px;text-align:right}
.rcta__hours{font-size:13px;color:rgba(255,255,255,.85);text-align:right;margin-top:6px}
.btn--white{background:#fff;color:var(--red-deep)}
/* angled red plane (Service) */
.cplane{position:relative;overflow:hidden;background:var(--red-deep);padding:120px 0 100px}
.cplane__cut{position:absolute;top:0;left:0;width:100%;height:84px;background:var(--black);clip-path:polygon(0 0,100% 0,100% 34%,0 100%)}

/* ============ RELATED LINKS ============ */
.rel{display:flex;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.rel__i{flex:1;padding:30px 40px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.rel__i:first-child{padding-left:0}
.rel__i+.rel__i{border-left:1px solid var(--line)}
.rel__t{font-size:17px;font-weight:700}
.rel__s{font-size:12px;color:var(--mute);margin-top:6px}
.rel__c{width:36px;height:36px;border-radius:50%;background:var(--red);display:grid;place-items:center;flex:none;font-family:var(--f-en);color:#fff}

/* ============ FAQ ============ */
.faq{display:flex;flex-direction:column;gap:12px}
.faq__i{border:1px solid var(--line);border-radius:8px;padding:20px 26px;background:var(--card)}
.faq__q{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:15px;font-weight:700;cursor:pointer}
.faq__q .pm{font-family:var(--f-en);font-size:20px;color:var(--mute)}
.faq__i--open{border-color:rgba(216,25,27,.35)}
.faq__i--open .pm{color:var(--red)}
.faq__a{font-size:13px;line-height:1.9;color:var(--mute);margin-top:12px}

/* ============ FORM (Contact) ============ */
.cform-wrap{display:flex;gap:24px;align-items:flex-start}
.cform{flex:1;padding:32px;border:1px solid var(--line);border-radius:12px;background:var(--card);display:flex;flex-direction:column;gap:18px}
.cfield{display:flex;flex-direction:column;gap:8px}
.cfield label{font-size:12.5px;color:var(--soft)}
.cfield label .req{font-size:10px;color:var(--red);margin-left:8px}
.cfield label .opt{font-size:10px;color:var(--mute);margin-left:8px}
.cinput{padding:12px 14px;border-radius:6px;background:#171a1c;border:1px solid rgba(255,255,255,.1);font-size:12.5px;color:#fff;font-family:inherit}
.cinput::placeholder{color:rgba(255,255,255,.38)}
textarea.cinput{min-height:110px;resize:vertical}
.cform__2{display:flex;gap:16px}
.cform__2 .cfield{flex:1}
.cconfirm{width:430px;flex:none;padding:32px 30px;border:1px solid var(--line);border-radius:12px;background:#0b0c0d}
.cconfirm h3{font-size:17px;margin-bottom:18px}
.cstep{display:flex;gap:12px;margin-bottom:16px}
.cstep__n{width:22px;height:22px;border-radius:50%;background:var(--red);color:#fff;font-family:var(--f-en);font-weight:700;font-size:11px;display:grid;place-items:center;flex:none}
.cstep__t{font-size:13px;font-weight:700}
.cstep__b{font-size:11.5px;line-height:1.6;color:var(--mute);margin-top:4px}
.cconfirm hr{border:0;border-top:1px solid var(--hair);margin:16px 0}
.cconfirm__tel{font-family:var(--f-en);font-weight:700;font-size:26px}

/* contact type cards */
.ctype{display:flex;gap:16px}
.ctype__c{flex:1;padding:26px 22px;border:1px solid var(--line);border-radius:10px;text-align:center;background:var(--card)}
.ctype__c--on{background:var(--red);border-color:rgba(255,255,255,.2)}
.ctype__ic{width:40px;height:40px;border-radius:10px;margin:0 auto 12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.2)}
.ctype__c--on .ctype__ic{background:rgba(255,255,255,.18)}
.ctype__t{font-size:15px;font-weight:700}
.ctype__b{font-size:11.5px;line-height:1.65;color:var(--mute);margin-top:8px}
.ctype__c--on .ctype__b{color:rgba(255,255,255,.85)}

/* phone consult box */
.pcon{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:28px 36px;border:1px solid rgba(216,25,27,.55);border-radius:12px;background:rgba(216,25,27,.06)}
.pcon__tel{font-family:var(--f-en);font-weight:700;font-size:32px}

/* ============ NEWS ============ */
.ntabs{display:flex;align-items:center;padding:20px 40px}
.ntabs a{flex:1;text-align:center;font-size:13px;color:var(--soft)}
.ntabs a.is-on{color:var(--red)}
.ntabs a+a{border-left:1px solid rgba(255,255,255,.12)}
.nfeat{display:flex;gap:20px;align-items:stretch}
.nfeat__big{flex:1;padding:30px;border:1px solid var(--line);border-radius:12px;background:var(--card);display:flex;flex-direction:column;gap:14px}
.nfeat__side{width:420px;flex:none;display:flex;flex-direction:column;gap:20px}
.nfeat__sm{flex:1;padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--card);display:flex;flex-direction:column;gap:10px}
.nmeta{display:flex;align-items:center;gap:12px}
.nmeta__d{font-family:var(--f-en);font-size:12px;color:var(--mute)}
.npill{padding:3px 10px;border-radius:4px;background:var(--red);font-size:10.5px;font-weight:500}
.nfeat__img{aspect-ratio:16/8;border-radius:8px;background:#161a1e center/cover no-repeat;margin-top:auto}
.ncontent{display:flex;gap:40px;align-items:flex-start}
.nlist{flex:1}
.nlist__i{display:flex;align-items:center;gap:20px;padding:16px 0;border-bottom:1px solid var(--line)}
.nlist__i .nmeta__d{width:78px;flex:none}
.nlist__t{flex:1;font-size:13.5px;color:rgba(255,255,255,.9)}
.nlist__a{font-family:var(--f-en);color:var(--red)}
.npag{display:flex;justify-content:center;gap:8px;margin-top:24px}
.npag span,.npag a{padding:8px 14px;border-radius:6px;background:#17181a;font-family:var(--f-en);font-size:12.5px;color:var(--soft)}
.npag .is-on{background:var(--red);color:#fff}
.nside{width:280px;flex:none;display:flex;flex-direction:column;gap:20px}
.nbox{padding:22px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.nbox h4{font-size:15px;margin-bottom:14px}
.nbox__row{display:flex;justify-content:space-between;padding:6px 0;font-size:13px;color:var(--soft)}
.nbox__row.is-on{color:var(--red)}
.nsearch{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;border-radius:6px;background:#17191b;border:1px solid rgba(255,255,255,.1);font-size:12.5px;color:var(--mute)}
.act{display:flex;gap:18px}
.act__c{flex:1;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card)}
.act__img{display:block;aspect-ratio:16/9;background:#161a1e center/cover no-repeat}
.act__in{padding:16px 18px;display:flex;flex-direction:column;gap:9px}
.act__t{font-size:14px;font-weight:700;line-height:1.5}
.act__b{font-size:11.5px;line-height:1.6;color:var(--mute)}
.motion{display:flex;gap:8px}
.motion span{flex:1;aspect-ratio:1/1.1;border-radius:6px;background:#141719 center/cover no-repeat}
/* 活動ギャラリー：写真グリッド */
.motion--grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.motion--grid span{flex:none;aspect-ratio:4/3;background-position:center 32%}
.motioncap{display:flex;gap:8px;margin-top:10px}
.motioncap__i{flex:1}
.motioncap__d{font-family:var(--f-en);font-size:10.5px;color:var(--soft);display:flex;align-items:center;gap:6px}
.motioncap__d::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--red)}
.motioncap__t{font-size:11px;line-height:1.5;color:rgba(255,255,255,.85);margin-top:4px}

/* ============ 3-item icon row ============ */
.irow{display:flex;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.irow__i{flex:1;padding:32px 40px;display:flex;gap:14px;align-items:flex-start}
.irow__i:first-child{padding-left:0}
.irow__i+.irow__i{border-left:1px solid var(--line)}
.irow__ic{width:40px;height:40px;border-radius:10px;flex:none;background:rgba(216,25,27,.14);border:1px solid rgba(216,25,27,.5)}
.irow__t{font-size:15px;font-weight:700}
.irow__b{font-size:12px;line-height:1.7;color:var(--mute);margin-top:4px}

/* photo strip overlay (現場) */
.strip-ov{position:relative;overflow:hidden}
.strip-ov__tiles{display:flex;gap:6px}
.strip-ov__tiles span{flex:1;height:210px;background:#141719 center/cover no-repeat}
.strip-ov__scrim{position:absolute;inset:0;background:linear-gradient(100deg,rgba(140,10,12,.72),rgba(30,5,5,.66))}
.strip-ov__cap{position:absolute;inset:0;display:grid;place-items:center;text-align:center;font-size:24px;font-weight:700;line-height:1.65;padding:0 40px}

/* ============ WHY / MERITS (Partner) ============ */
.why3{display:flex;gap:20px}
.why3__c{flex:1;padding:28px 26px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.why3__ic{width:44px;height:44px;border-radius:10px;background:rgba(216,25,27,.14);border:1px solid rgba(216,25,27,.5);margin-bottom:14px}
.why3__t{font-size:17px;font-weight:700;margin-bottom:10px}
.why3__b{font-size:14px;line-height:1.75;color:var(--mute)}
.trust-tbl{display:flex;border:1px solid var(--line);border-radius:8px;padding:22px 30px;margin-top:14px}
.trust-tbl__c{flex:1;padding:0 26px}
.trust-tbl__c+.trust-tbl__c{border-left:1px solid rgba(255,255,255,.1)}
.trust-tbl__l{font-size:11.5px;color:var(--red);margin-bottom:6px}
.trust-tbl__v{font-size:13px;line-height:1.55;color:rgba(255,255,255,.85)}
.merits{display:flex;gap:14px}
.merit{flex:1;padding:20px 18px;border:1px solid var(--line);border-radius:10px;background:var(--card);display:flex;flex-direction:column;gap:12px}
.merit__t{font-size:18px;font-weight:700}
.merit__d{font-size:12px;line-height:1.6;color:var(--mute)}
.merit__img{aspect-ratio:16/12;border-radius:6px;background:#161a1e center/cover no-repeat}
.merit__ck{font-size:11.5px;line-height:1.9;color:rgba(255,255,255,.82)}
.merit__ar{font-size:11.5px;line-height:1.9;color:#e64d4d}
.legend{display:flex;gap:18px;align-items:center}
.legend span{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;color:var(--mute)}
.legend span::before{font-weight:700;line-height:1}
.legend .l1::before{content:"■";font-size:9px;color:rgba(255,255,255,.5)}
.legend .l2::before{content:"✓";color:rgba(255,255,255,.85)}
.legend .l3::before{content:"›";color:#e64d4d;font-size:14px}

/* ============================================================
   ANIMATIONS（コンテンツは常時可視。JS/モーション任意）
   ============================================================ */
@keyframes aIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes aUp{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:no-preference){
  /* Hero entrance stagger */
  .phero__kick{animation:aIn .7s cubic-bezier(.22,.61,.36,1) .05s both}
  .phero__h{animation:aIn .85s cubic-bezier(.22,.61,.36,1) .14s both}
  .phero__lead{animation:aIn .85s cubic-bezier(.22,.61,.36,1) .24s both}
  .phero__cta{animation:aIn .85s cubic-bezier(.22,.61,.36,1) .34s both}
  .pnav__inner{animation:aUp .85s cubic-bezier(.22,.61,.36,1) .42s both}

  /* Section scroll reveal（.js が付いた時だけ初期非表示にする＝JS無効なら常時可視） */
  .js body>section:not(.phero),
  .js body>.chapter,
  .js body>.fband,
  .js body>.strip-ov{
    opacity:0;transform:translateY(28px);
    transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1);
  }
  .js .in{opacity:1 !important;transform:none !important}
}

/* Hover micro-interactions */
.pcard,.act__c,.mv__c,.merit,.why3__c,.nfeat__big,.nfeat__sm,.ctype__c,.ceo,.faq__i{
  transition:transform .3s cubic-bezier(.22,.61,.36,1),border-color .3s ease,box-shadow .3s ease}
.pcard:hover,.act__c:hover,.nfeat__big:hover,.nfeat__sm:hover{transform:translateY(-5px)}
.pcard:hover .pcard__img,.act__c:hover .act__img{filter:brightness(1.08)}
.pcard__img,.act__img,.merit__img{transition:filter .3s ease}
.why3__c:hover,.mv__c:hover,.merit:hover{transform:translateY(-4px);border-color:rgba(216,25,27,.45)}
.ctype__c:not(.ctype__c--on):hover{border-color:rgba(216,25,27,.5)}
.rel__i,.nlist__i,.nbox__row{transition:background .25s ease,color .2s ease}
.rel__i:hover,.nlist__i:hover{background:rgba(255,255,255,.03)}
.rel__c{transition:transform .25s cubic-bezier(.22,.61,.36,1)}
.rel__i:hover .rel__c{transform:translateX(4px)}
.persona__c{transition:transform .35s cubic-bezier(.22,.61,.36,1)}
.persona__c:hover{transform:translateY(-4px)}
.bizidx__i{transition:opacity .3s ease}
.faq__q{user-select:none}
.faq__a{overflow:hidden}
.btn{transition:transform .2s ease,background .25s ease,box-shadow .25s ease}
.btn--red:hover,.btn--white:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(216,25,27,.28)}

@media (prefers-reduced-motion:reduce){
  .js body>section,.js body>.chapter,.js body>.fband,.js body>.strip-ov{opacity:1 !important;transform:none !important}
  .phero__kick,.phero__h,.phero__lead,.phero__cta,.pnav__inner{animation:none !important}
}

/* ============================================================
   RESPONSIVE — 下層ページ (tablet ≤1024 / phone ≤600)
   style.css がヘッダー(ハンバーガー)・フッター・--pad を担当。
   ここでは下層専用コンポーネントのモバイル最適化を行う。
   ============================================================ */
/* mobile utilities（インラインflexの上書きに !important を使用） */
@media (max-width:1024px){
  .motion--grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .mstack{flex-direction:column;gap:26px!important;align-items:stretch!important}
  .mauto{width:auto!important;max-width:100%!important}
  .mtight{gap:22px!important}

  /* 固定ヘッダー（style.css のモバイル指定を is-solid にも適用） */
  .site-header.is-solid{position:fixed}

  /* PAGE HERO */
  .phero{min-height:440px}
  .phero__inner{padding:118px 0 60px}
  .phero__h{font-size:clamp(28px,6.6vw,40px);line-height:1.4;margin-bottom:18px}
  .phero__lead{font-size:14px;line-height:1.95;max-width:none}
  .phero__cta{flex-wrap:wrap;gap:12px;margin-top:26px}

  /* anchor bar → 折り返して全項目表示（見切れ防止） */
  .pnav{margin-top:-22px;padding:0 var(--pad)}
  .pnav__inner{padding:10px 12px;flex-wrap:wrap;justify-content:center;row-gap:2px}
  .pnav a{flex:0 0 auto;padding:8px 12px;white-space:nowrap;font-size:12.5px}
  .pnav a+a{border-left:0}

  /* sections */
  .psec{padding:60px 0}
  .psec--tight{padding:44px 0}
  .psec__h{font-size:22px}
  .psec__head{margin-bottom:26px}

  /* chapter opener（spine+textは横のまま・余白のみ調整） */
  .chapter{padding:72px 0 60px}
  .chapter__st{font-size:clamp(26px,6.2vw,34px);margin-bottom:22px}
  .chapter__lead{font-size:14px;line-height:2;max-width:none}

  /* statement band */
  .fband{height:auto;min-height:230px;padding:54px 0}
  .fband__body{padding:0 22px}
  .fband__st{font-size:24px;line-height:1.5}

  /* hairline grid → 縦積み */
  .hrow{flex-direction:column}
  .hcell{padding:22px 0}
  .hcell:first-child{padding-top:0}
  .hcell+.hcell{border-left:0;border-top:1px solid var(--line)}

  /* photo cards → 2列 */
  .pcards{flex-wrap:wrap}
  .pcard{flex:1 1 calc(50% - 9px);min-width:150px}

  /* 会社概要 table → ラベル+値の縦積み */
  .ptable th,.ptable td{display:block;width:auto;border-bottom:0}
  .ptable th{padding:14px 18px 2px;background:none;color:var(--red);font-size:12px}
  .ptable td{padding:0 18px 14px;border-bottom:1px solid var(--hair)}
  .ptable tr:last-child td{border-bottom:0}

  /* KPI → 2列 */
  .kpi{flex-wrap:wrap}
  .kpi__cell{flex:0 0 50%;box-sizing:border-box;padding:18px 0;border-left:0}
  .kpi__cell:nth-child(even){padding-left:20px}
  .kpi__cell:nth-child(n+3){border-top:1px solid rgba(255,255,255,.1);padding-top:18px}
  .kpi__v{font-size:26px}

  /* horizontal timeline → 横スクロール */
  .htl{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .htl__i{flex:0 0 auto;min-width:150px}

  /* business chapter（sticky index → 上部の横スクロール） */
  .bizchap{padding:8px 0 70px}
  .bizidx{position:static;width:auto;display:flex;gap:16px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px}
  .bizidx__lbl{display:none}
  .bizidx__i{flex:0 0 auto;min-width:200px;margin-bottom:0}
  .bizflow{width:100%}
  .bizblk{padding:44px 0}
  .bizblk__ghost{font-size:56px}
  .bizblk__t{font-size:24px;margin:16px 0 14px}

  /* mission/vision, why3, merits, persona → 縦 */
  .mv,.why3,.merits,.persona{flex-direction:column}
  .persona__c{min-height:auto;padding:32px 26px}
  .persona__h{font-size:22px}

  /* CEO → 縦（画像上、revも同順） */
  .ceo,.ceo--rev{flex-direction:column;gap:24px;padding:28px 24px}
  .ceo__photo{width:100%;aspect-ratio:16/10;max-height:340px}
  .ceo__h{font-size:21px}

  /* access → 縦 */
  .access{flex-direction:column}
  .access__map{flex:none;width:100%;height:260px}
  .access__info{width:auto}
  .access__photo{width:100%;height:200px}
  /* 縦積み時に flex-basis:0 で潰れる要素を content 基準に */
  .act__c,.nfeat__big,.nfeat__sm,.merit,.mv__c,.why3__c,.rel__i,.irow__i,.hcell{flex:none}

  /* CTA */
  .rcta{padding:64px 0 48px}
  .rcta__row{flex-direction:column;align-items:flex-start;gap:22px}
  .rcta__h{font-size:24px}
  .rcta__tel,.rcta__hours{text-align:left}
  .cplane{padding:80px 0 64px}

  /* related links → 縦 */
  .rel{flex-direction:column}
  .rel__i{padding:22px 0;border-left:0;border-top:1px solid var(--line)}
  .rel__i:first-child{border-top:0}

  /* form → 縦 */
  .cform-wrap{flex-direction:column}
  .cconfirm{width:auto}
  .cform__2{flex-direction:column;gap:18px}

  /* contact type → 2列 */
  .ctype{flex-wrap:wrap}
  .ctype__c{flex:1 1 calc(50% - 8px);min-width:150px}

  /* phone box → 縦 */
  .pcon{flex-direction:column;align-items:flex-start;gap:16px;padding:24px 26px}
  .pcon__tel{font-size:26px}

  /* news */
  .ntabs{flex-wrap:wrap;justify-content:center;row-gap:2px}
  .ntabs a{flex:0 0 auto;padding:8px 12px;white-space:nowrap}
  .ntabs a+a{border-left:0}
  .nfeat{flex-direction:column}
  .nfeat__side{width:auto}
  .ncontent{flex-direction:column}
  .nside{width:auto}
  .act{flex-direction:column}
  .motion span,.motioncap__i{min-width:0}

  /* icon row → 縦 */
  .irow{flex-direction:column}
  .irow__i{padding:22px 0;border-left:0;border-top:1px solid var(--line)}
  .irow__i:first-child{border-top:0}

  /* strip overlay */
  .strip-ov__tiles span{height:150px}
  .strip-ov__cap{font-size:18px;padding:0 24px}

  /* trust table → 縦 */
  .trust-tbl{flex-direction:column;padding:20px 22px}
  .trust-tbl__c{padding:0}
  .trust-tbl__c+.trust-tbl__c{border-left:0;border-top:1px solid rgba(255,255,255,.1);padding-top:14px;margin-top:2px}

  .legend{flex-wrap:wrap}

  /* 横スクロール群のスクロールバーを控えめに */
  .pnav__inner::-webkit-scrollbar,.ntabs::-webkit-scrollbar,.bizidx::-webkit-scrollbar,.htl::-webkit-scrollbar{height:0}
}

@media (max-width:600px){
  .phero__cta{flex-direction:column;align-items:stretch}
  .phero__cta .btn{width:100%;justify-content:center}
  .phero__h{font-size:clamp(25px,7.4vw,32px)}
  .pcard{flex-basis:100%}
  .ctype__c{flex-basis:100%}
  .fband__st{font-size:21px}
  .chapter__st{font-size:clamp(24px,7vw,30px)}
  .rcta__row .btn,.rcta__row .btn--white{width:100%;justify-content:center}
  .nlist__i{flex-wrap:wrap;gap:8px 12px}
  .nlist__t{flex-basis:100%;order:3}
}

/* ============================================================
   SPONSOR: 掲載準備中スロット & チームロゴ・マーキー
   ============================================================ */
.pcard__img--slot{border:1px dashed rgba(255,255,255,.25);background:rgba(255,255,255,.02);
  display:grid;place-items:center;align-content:center;gap:7px}
.slot__en{font-family:var(--f-en);font-weight:600;font-size:11px;letter-spacing:.22em;color:rgba(255,255,255,.45)}
.slot__jp{font-size:10.5px;color:rgba(255,255,255,.3)}

/* 支援チームの活動写真が自動で流れる帯 */
.logomq{overflow:hidden;position:relative;margin-bottom:34px;padding:22px 0;
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.logomq__track{display:flex;gap:18px;width:max-content;animation:logomq 32s linear infinite}
.logomq:hover .logomq__track{animation-play-state:paused}
.logomq__i{width:220px;height:132px;border-radius:10px;overflow:hidden;
  display:grid;place-items:center;flex:none;background:rgba(255,255,255,.02)}
.logomq__i span{font-family:var(--f-en);font-weight:600;font-size:10px;letter-spacing:.18em;color:rgba(255,255,255,.32)}
.logomq__i img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
@keyframes logomq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.logomq__track{animation:none}}

/* ============================================================
   Contact Form 7 調整（既存 .cform デザインに合わせる）
   ============================================================ */
.wpcf7 form{display:flex;flex-direction:column;gap:18px}
.wpcf7 .wpcf7-form-control-wrap{display:block;width:100%}
.wpcf7 select.cinput{width:100%;appearance:auto;-webkit-appearance:auto}
.wpcf7 input.cinput,.wpcf7 textarea.cinput{width:100%}
.wpcf7 .cconsent{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--soft)}
.wpcf7 .cconsent .wpcf7-form-control-wrap{display:inline-block;width:auto}
.wpcf7 .wpcf7-list-item{margin:0}
.wpcf7 .btn{justify-content:center;width:100%;border:0}
.wpcf7 .wpcf7-spinner{margin:0 auto}
.wpcf7-not-valid-tip{color:#e64d4d;font-size:11px;margin-top:5px}
.wpcf7 form .wpcf7-response-output{margin:0;padding:12px 16px;border:1px solid var(--line);border-radius:8px;font-size:12.5px}
.wpcf7 form.sent .wpcf7-response-output{border-color:rgba(92,203,114,.6);color:#8fe3a1}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.failed .wpcf7-response-output{border-color:rgba(216,25,27,.6);color:#e64d4d}
