  :root{
    --bg:#0A0A0C;
    --ink:#F4F4F6;
    --accent:#C7303C;        /* ザクロ色（柘榴色） */
    --accent-dark:#A2222E;
    --muted:#B4B4BC;
    --muted2:#8A8A90;
    --muted3:#6E6E76;
    --line:rgba(255,255,255,.12);
    --line2:rgba(255,255,255,.08);
    --soft:#141418;
    --card:#121216;
    --panel:radial-gradient(135% 130% at 62% 20%, #2A2A33 0%, #18181E 42%, #0A0A0D 100%);
    --max:1240px;
    --pad:clamp(20px,4vw,40px);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;scroll-padding-top:96px;}
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:'Inter',"Hiragino Kaku Gothic ProN","Hiragino Sans",'Noto Sans JP',sans-serif;
    -webkit-font-smoothing:antialiased;
    overflow-x:clip;
    line-height:1.7;
    line-break:strict;
    word-break:auto-phrase;
  }
  a{color:inherit;}
  /* height:auto は width/height 属性とセットで必要。属性で縦横比を先に伝えると
     読み込み前の場所取りができてレイアウトのガタつき（CLS）が消えるが、
     max-width:100% で横幅が縮んだとき height:auto が無いと縦が属性値のまま
     残って画像が潰れる。 */
  img{display:block;max-width:100%;height:auto;}
  .en{font-family:'Inter',sans-serif;}
  h1,h2,h3{word-break:keep-all;overflow-wrap:break-word;}
  /* デザイン上は見出しを置かないページでも、そのページの主題を示す h1 は要る。
     読み上げと検索エンジンには届き、目には見えない。display:none にすると
     読み上げからも消えてしまうので、1px に潰してクリップする。 */
  .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;}
  .wrap{max-width:var(--max);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);}

  /* ---------- overline label ---------- */
  .overline{
    font-family:'Inter',sans-serif;
    font-size:13px;font-weight:600;letter-spacing:.26em;
    text-transform:uppercase;color:var(--accent);
    display:flex;align-items:center;gap:14px;
  }
  .overline::before{content:"";width:34px;height:1px;background:var(--accent);}
  .overline.center{justify-content:center;}
  .overline.plain::before{display:none;}

  /* ---------- buttons ---------- */
  .btn{
    display:inline-flex;align-items:center;justify-content:space-between;gap:36px;
    font-size:15px;font-weight:700;text-decoration:none;
    padding:17px 26px;border-radius:2px;
    transition:background .2s,color .2s,transform .2s;white-space:nowrap;
  }
  .btn .en{font-weight:700;}
  .btn-primary{background:var(--accent);color:#fff;}
  .btn-primary:hover{background:var(--accent-dark);transform:translateY(-2px);}
  .btn-ghost{background:transparent;color:var(--ink);border:1px solid rgba(255,255,255,.45);}
  .btn-ghost:hover{background:var(--ink);color:#0A0A0C;}
  .btn-light{background:#fff;color:#0A0A0C;}
  .btn-light:hover{transform:translateY(-2px);background:var(--accent);color:#fff;}


  /* ---------- header ---------- */
  header{
    position:sticky;top:0;z-index:50;
    background:rgba(10,10,12,.82);
    backdrop-filter:saturate(180%) blur(12px);
  }
  .hbar{height:80px;display:flex;align-items:center;justify-content:space-between;}
  .logo{display:flex;align-items:center;text-decoration:none;flex-shrink:0;}
  .logo img{height:64px;width:auto;display:block;}
  nav.main{display:flex;align-items:center;gap:38px;}
  nav.main a{font-size:15px;font-weight:500;text-decoration:none;color:var(--ink);transition:color .2s;}
  nav.main a:hover{color:var(--accent);}
  .navdrop{position:relative;}
  .navdrop > a{display:flex;align-items:center;gap:6px;}
  .navdrop .caret{width:7px;height:7px;border-right:1.5px solid var(--muted3);border-bottom:1.5px solid var(--muted3);transform:rotate(45deg) translateY(-2px);}
  .dropmenu{
    position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(8px);
    background:#15151A;border:1px solid var(--line);box-shadow:0 24px 60px -20px rgba(0,0,0,.6);
    padding:10px;min-width:266px;border-radius:2px;
    opacity:0;visibility:hidden;transition:.22s;
  }
  .navdrop:hover .dropmenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
  .dropmenu::before{content:"";position:absolute;top:-7px;left:50%;transform:translateX(-50%) rotate(45deg);width:12px;height:12px;background:#15151A;border-left:1px solid var(--line);border-top:1px solid var(--line);}
  .dropmenu a{display:block;padding:12px 16px;text-decoration:none;border-radius:2px;transition:background .18s;}
  .dropmenu a:hover{background:var(--soft);}
  .dropmenu a .t{display:block;font-size:14px;font-weight:700;color:var(--ink);}
  .dropmenu a .d{display:block;font-size:12px;color:var(--muted2);margin-top:3px;}
  .burger{display:none;flex-direction:column;gap:5px;width:44px;height:44px;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;}
  .burger span{width:24px;height:2px;background:var(--ink);}
  .mobile-nav{display:none;border-top:1px solid var(--line);background:#0A0A0C;padding:8px var(--pad) 26px;}
  .mobile-nav a{display:block;padding:14px 0;font-size:16px;font-weight:600;text-decoration:none;border-bottom:1px solid var(--line2);color:var(--ink);}
  body.light .mobile-nav a{color:var(--ink);}
  body.light .mobile-nav .btn-primary{color:#fff;}
  .mobile-nav .btn{display:flex;justify-content:center;margin-top:16px;}

  /* ---------- hero ---------- */
  .hero{position:relative;overflow:hidden;min-height:clamp(580px,82vh,800px);display:flex;align-items:center;}
  .hero > .wrap{width:100%;}
  .hero-bg{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.8;}
  .hero-tag{margin-top:38px;display:inline-flex;align-items:center;gap:13px;font-family:'Inter',sans-serif;font-size:13px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--muted2);}
  .hero-tag::before{content:"";width:24px;height:1px;background:var(--accent);}
  .hero-tag b{color:var(--ink);font-weight:600;}
  .hero .grid{
    position:relative;z-index:1;
    padding-top:clamp(72px,12vh,140px);
    padding-bottom:clamp(80px,13vh,160px);
    display:block;
  }
  .hero-copy{max-width:660px;}
  .hero h1{
    font-weight:400;font-size:clamp(28px,4.2vw,54px);line-height:1.22;letter-spacing:.01em;margin:26px 0 0;
    text-align:left;
    word-break:keep-all;overflow-wrap:break-word;
  }
  .hero .lead{margin:30px 0 0;font-size:clamp(15px,1.2vw,18px);line-height:2;color:var(--muted);max-width:30em;}
  .hero .cta{display:flex;flex-wrap:wrap;gap:16px;margin-top:42px;}
  .hero .cta .btn{min-width:212px;}

  /* スクロール誘導インジケーター（ファーストビュー最下部） */
  .scroll-ind{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:9px;text-decoration:none;color:var(--muted2);}
  .scroll-ind-label{font-family:'Inter',sans-serif;font-size:10px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;}
  .scroll-ind-line{position:relative;width:1px;height:46px;overflow:hidden;background:rgba(255,255,255,.14);}
  .scroll-ind-line::after{content:"";position:absolute;left:0;top:0;width:100%;height:45%;background:var(--accent);animation:scrollHint 1.9s cubic-bezier(.77,0,.175,1) infinite;}
  @keyframes scrollHint{0%{transform:translateY(-100%);}100%{transform:translateY(240%);}}
  @media (prefers-reduced-motion:reduce){.scroll-ind-line::after{animation:none;}}

  /* dark visual panel */
  .panel{
    position:relative;min-height:460px;border-radius:2px;overflow:hidden;
    background:radial-gradient(rgba(255,255,255,.05) 1px, transparent 1.4px) 0 0/24px 24px, var(--panel);
    box-shadow:inset 0 0 130px rgba(0,0,0,.65);
  }
  .vline{position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.10) 28%,rgba(255,255,255,.10) 72%,rgba(255,255,255,0));}
  .hline{position:absolute;left:0;right:0;bottom:22%;height:1px;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.14) 50%,rgba(255,255,255,0));}
  .cross{position:absolute;width:11px;height:11px;}
  .cross::before{content:"";position:absolute;left:5px;top:0;width:1px;height:11px;background:rgba(255,255,255,.28);}
  .cross::after{content:"";position:absolute;top:5px;left:0;width:11px;height:1px;background:rgba(255,255,255,.28);}
  .cross.red::before{background:rgba(230,0,18,.65);}
  .cross.red::after{background:rgba(230,0,18,.65);}
  .panel-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;padding:24px;}
  .panel-center .gate{position:relative;width:120px;height:120px;margin-bottom:26px;}
  .panel-center .gate .ring{position:absolute;inset:0;border:1px solid rgba(255,255,255,.18);border-radius:50%;}
  .panel-center .gate .ring.r2{inset:18px;border-color:rgba(230,0,18,.35);}
  .panel-center .gate .core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:42px;height:42px;border-radius:50%;background:var(--accent);box-shadow:0 0 40px rgba(230,0,18,.7);}
  .panel-center .ptitle{font-family:'Inter',sans-serif;font-size:24px;font-weight:700;letter-spacing:.08em;}
  .panel-center .psub{font-size:13px;color:rgba(255,255,255,.55);margin-top:8px;letter-spacing:.18em;}

  /* generic image placeholder */
  .ph{position:relative;border-radius:2px;overflow:hidden;background:radial-gradient(rgba(255,255,255,.045) 1px, transparent 1.4px) 0 0/24px 24px, var(--panel);box-shadow:inset 0 0 90px rgba(0,0,0,.55);min-height:200px;}
  .ph .lab{position:absolute;left:16px;bottom:14px;font-size:11px;letter-spacing:.14em;color:rgba(255,255,255,.5);}
  .ph .crn{position:absolute;top:14px;right:14px;}

  /* ---------- section base ---------- */
  section.block{padding:clamp(72px,10vh,128px) 0;border-bottom:1px solid var(--line);}
  section.block:last-of-type{border-bottom:none;}   /* フッター手前は境目なし */
  .shead{display:flex;flex-direction:column;gap:18px;margin-bottom:clamp(40px,5vh,64px);}
  .shead.center{align-items:center;text-align:center;}
  /* h1 も同じ見た目にする：ページの主題そのものを .shead に置くページ
     （recruit-apply.html）では、この見出しが h1 になる。 */
  .shead h1,.shead h2{font-size:clamp(28px,3.4vw,44px);font-weight:400;line-height:1.3;letter-spacing:.01em;}
  .shead p{color:var(--muted);font-size:16px;line-height:1.95;max-width:42em;}

  /* ---------- featured business (カイギョーズ) ---------- */
  .feature{
    display:grid;grid-template-columns:1.18fr 1fr;gap:0;
    border:1px solid var(--accent);border-radius:2px;overflow:hidden;
    background:linear-gradient(180deg,rgba(199,48,60,.10),rgba(199,48,60,0) 60%),var(--card);
    margin-bottom:clamp(40px,5vh,56px);
  }
  .feature .ph{min-height:100%;border-radius:0;}
  .kaigyoz-logo{width:clamp(280px,94%,600px);max-width:100%;height:auto;display:block;margin:0 auto;}
  @media(max-width:760px){.kaigyoz-logo{width:clamp(150px,54%,210px);}}
  .trippa-logo{width:clamp(240px,86%,460px);max-width:100%;height:auto;display:block;margin:0 auto;}
  .ph.logo-ph{background:#fff;}   /* ロゴ枠は白ベタ（黒文字ロゴ用） */
  .ph.trippa-ph{background:#ffe01b;box-shadow:none;}   /* TRIPPAはブランドのイエロー枠 */
  .feature .fbody{padding:clamp(32px,4vw,56px);display:flex;flex-direction:column;justify-content:center;}
  .badge{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;font-family:'Inter',sans-serif;font-size:12px;font-weight:700;letter-spacing:.16em;color:#fff;background:var(--accent);padding:7px 14px;border-radius:2px;}
  .feature h3{font-size:clamp(30px,3.6vw,46px);font-weight:400;line-height:1.2;margin:22px 0 18px;}
  .feature .desc{color:var(--muted);font-size:16px;line-height:2;max-width:none;}   /* タイトル(h3)と同じ幅で折り返す */
  .feature .pulist{margin-top:24px;}
  .feature .target{margin-top:22px;font-size:13px;color:var(--muted2);}

  .subhead{display:flex;align-items:center;gap:16px;font-family:'Inter',sans-serif;font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted2);margin:0 0 26px;}
  .subhead::after{content:"";flex:1;height:1px;background:var(--line);}

  /* ---------- business cards ---------- */
  .biz{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .biz.two{grid-template-columns:repeat(2,1fr);}
  .bcard{border:1px solid var(--line);border-radius:2px;overflow:hidden;background:var(--card);display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s,border-color .25s;}
  .bcard:hover{transform:translateY(-5px);box-shadow:0 30px 60px -30px rgba(0,0,0,.7);border-color:var(--accent);}
  .bcard .ph{min-height:200px;}
  .bcard .body{padding:30px 28px;display:flex;flex-direction:column;flex:1;}
  .bcard .idx{font-family:'Inter',sans-serif;font-size:13px;font-weight:700;color:var(--accent);letter-spacing:.1em;}
  .bcard h3{font-size:22px;font-weight:400;margin:12px 0 12px;}
  .bcard p{color:var(--muted);font-size:14.5px;line-height:1.9;flex:1;}
  .bcard .target{margin-top:18px;font-size:12.5px;color:var(--muted2);}
  .bcard .more{margin-top:8px;font-weight:700;font-size:14px;color:var(--accent);display:inline-flex;gap:8px;align-items:center;text-decoration:none;}

  /* ---------- pick up ---------- */
  .pickup{background:var(--soft);border-top:1px solid var(--line);}
  .pugrid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(40px,5vw,72px);align-items:center;}
  .pugrid .panel{min-height:420px;}
  .pickup h2{font-size:clamp(28px,3.2vw,42px);font-weight:400;line-height:1.3;margin:18px 0 20px;}
  .pickup .desc{color:var(--muted);font-size:16px;line-height:2;}
  .pulist{list-style:none;margin:28px 0 0;display:flex;flex-direction:column;gap:14px;}
  .pulist li{display:flex;align-items:flex-start;gap:12px;font-size:15px;font-weight:500;}
  .pulist li::before{content:"";flex-shrink:0;width:20px;height:20px;margin-top:2px;border-radius:50%;background:var(--accent);position:relative;background-image:linear-gradient(45deg,transparent 40%,#fff 40%,#fff 46%,transparent 46%),linear-gradient(-45deg,transparent 55%,#fff 55%,#fff 61%,transparent 61%);}
  .pucta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:16px;margin-top:34px;}

  /* ---------- reasons ---------- */
  .reasons{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border:1px solid var(--line);border-radius:2px;overflow:hidden;}
  .rcell{padding:40px clamp(28px,3vw,48px);border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
  .rcell:nth-child(2n){border-right:none;}
  .rcell:nth-last-child(-n+2){border-bottom:none;}
  .rcell .rn{font-family:'Inter',sans-serif;font-size:34px;font-weight:700;color:rgba(255,255,255,.16);line-height:1;}
  .rcell h3{font-size:20px;font-weight:400;margin:16px 0 12px;}
  .rcell p{color:var(--muted);font-size:15px;line-height:1.9;}

  /* ---------- trust / stats ---------- */
  .trust{background:var(--soft);color:#fff;}
  .trust .shead h2{color:#fff;}
  .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
  .stat{border:1px solid rgba(255,255,255,.12);border-radius:2px;padding:36px 28px;text-align:center;}
  .stat .lab{font-size:13px;color:rgba(255,255,255,.55);letter-spacing:.06em;}
  .stat .val{font-family:'Inter',sans-serif;font-size:clamp(38px,4.6vw,56px);font-weight:700;line-height:1.1;margin-top:12px;}
  .stat .val .u{font-size:.38em;color:var(--accent);margin-left:6px;font-weight:600;}
  .note{color:var(--muted3);font-size:12.5px;margin-top:28px;}
  .trust .note{color:rgba(255,255,255,.4);}

  /* ---------- cases ---------- */
  .cases{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .ccard{border:1px solid var(--line);border-radius:2px;overflow:hidden;background:var(--card);transition:border-color .25s;}
  .ccard:hover{border-color:var(--accent);}
  .ccard .ph{min-height:172px;}
  .ccard .body{padding:24px;}
  .ccard .cat{font-size:12px;font-weight:700;color:var(--accent);letter-spacing:.06em;}
  .ccard h3{font-size:17px;font-weight:400;margin:12px 0 14px;line-height:1.6;}
  .ccard .who{font-size:13px;color:var(--muted2);}

  /* ---------- message ---------- */
  .msg{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(40px,5vw,72px);align-items:center;}
  .msg .panel{min-height:420px;}
  .msg h2{font-size:clamp(26px,3vw,40px);font-weight:400;line-height:1.3;margin:18px 0 26px;}
  .msg p{color:var(--muted);font-size:16px;line-height:2.1;}

  /* ---------- news ---------- */
  .newslist{border-top:1px solid var(--line);}
  .nrow{display:grid;grid-template-columns:140px 150px 1fr auto;gap:24px;align-items:center;padding:22px 4px;border-bottom:1px solid var(--line);text-decoration:none;transition:background .2s;}
  .nrow:hover{background:var(--soft);}
  .nrow time{font-family:'Inter',sans-serif;font-size:14px;color:var(--muted2);}
  .nrow .ncat{font-size:12px;font-weight:700;color:var(--accent);border:1px solid rgba(199,48,60,.45);background:rgba(199,48,60,.12);border-radius:2px;padding:5px 0;text-align:center;}
  .nrow .ntxt{font-size:15px;font-weight:500;}
  .nrow .narr{color:var(--muted3);}

  /* ---------- contact ---------- */
  .contact{position:relative;background:transparent;color:#fff;overflow:hidden;}
  .contact .panel-deco{position:absolute;inset:0;}
  .contact .shead h2{color:#fff;}
  .contact .shead p{color:rgba(255,255,255,.6);}
  .ccards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(8px,1.4vw,20px);margin-bottom:40px;align-items:stretch;}
  .cccard{display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.14);border-radius:2px;padding:clamp(14px,2vw,32px) clamp(9px,1.5vw,28px);background:transparent;}
  .cccard h3{font-size:clamp(12.5px,1.35vw,18px);font-weight:400;margin-bottom:clamp(10px,1.4vw,18px);line-height:1.5;flex:1;}
  .cccard .btn{width:100%;min-width:0;padding:clamp(9px,1.2vw,14px) clamp(6px,1vw,18px);font-size:clamp(11px,1.15vw,14px);white-space:nowrap;}
  .contact .big{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;border:1px solid rgba(255,255,255,.14);border-radius:2px;padding:clamp(28px,4vw,44px);background:rgba(255,255,255,.03);}
  .contact .big h3{font-size:clamp(20px,2.4vw,28px);font-weight:400;}
  .contact .big p{color:rgba(255,255,255,.6);font-size:14px;margin-top:8px;}

  /* ---------- footer ---------- */
  footer{background:#070708;color:rgba(255,255,255,.7);}
  .fgrid{display:grid;grid-template-columns:1.6fr 1fr;gap:48px;padding-top:clamp(56px,7vh,88px);padding-bottom:40px;}
  .fgrid .logo{color:#fff;}
  .fgrid p.addr{font-size:13.5px;line-height:2;color:rgba(255,255,255,.55);margin-top:20px;}
  .fcol h4{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.45);font-family:'Inter',sans-serif;margin-bottom:18px;}
  .fcol a{display:block;font-size:14px;color:rgba(255,255,255,.7);text-decoration:none;padding:8px 0;transition:color .2s;}
  .fcol a:hover{color:var(--accent);}
  .fbottom{border-top:1px solid rgba(255,255,255,.1);padding-top:24px;padding-bottom:24px;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;}
  .fbottom .links{display:flex;flex-wrap:wrap;gap:24px;}
  .fbottom a{font-size:12.5px;color:rgba(255,255,255,.5);text-decoration:none;}
  .fbottom a:hover{color:#fff;}
  .fbottom .cp{font-size:12px;color:rgba(255,255,255,.4);font-family:'Inter',sans-serif;letter-spacing:.04em;}

  /* ---------- animation ---------- */
  @keyframes heroUp{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:translateY(0);}}
  @keyframes heroSlide{from{opacity:0;transform:translateX(28px);}to{opacity:1;transform:translateX(0);}}
  .au{animation:heroUp .8s both ease-out;}
  .au.d1{animation-delay:.08s;}.au.d2{animation-delay:.18s;}.au.d3{animation-delay:.28s;}
  /* JSが点の集合を制御するとき：集合完了まで見出しを伏せ、集まった瞬間に出す */
  .hero.prehold .au{opacity:0;animation:none;}
  .hero.prehold.gathered .au{animation:heroUp .7s both ease-out;}
  .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease-out,transform .7s ease-out;}
  .reveal.in{opacity:1;transform:translateY(0);}

  /* ---------- responsive ---------- */
  @media(max-width:920px){
    nav.main{display:none;}
    .burger{display:flex;}
    .hero .grid{grid-template-columns:1fr;gap:40px;}
    .hero .panel,.pugrid .panel,.msg .panel{min-height:340px;}
    .biz,.biz.two,.cases{grid-template-columns:1fr;}
    .feature{grid-template-columns:1fr;}
    .feature .ph,.feature .fbody{min-width:0;}   /* 1カラム時のトラック膨張＝はみ出し防止 */
    .feature .ph{min-height:280px;}
    .pugrid,.msg{grid-template-columns:1fr;}
    .reasons{grid-template-columns:1fr;}
    .rcell{border-right:none;}
    .stats{grid-template-columns:repeat(2,1fr);}
    .nrow{grid-template-columns:auto 1fr;row-gap:8px;}
    .nrow .ncat{justify-self:start;padding:5px 12px;}
    .nrow .narr{display:none;}
    .fgrid{grid-template-columns:1fr;gap:36px;}
  }
  @media(max-width:560px){
    .stats{grid-template-columns:1fr;}
    .hero .cta .btn{min-width:100%;}
  }

  /* ============================================================
     PAGE-SPECIFIC STYLES (sub pages)
     ============================================================ */

  /* ---------- page hero ---------- */
  .phero{border-bottom:1px solid var(--line);background:transparent;position:relative;overflow:hidden;}
  .phero::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
    background:
      radial-gradient(rgba(255,255,255,.05) 1px, transparent 1.4px) 0 0/24px 24px,
      radial-gradient(120% 90% at 100% 0%, rgba(199,48,60,.12), transparent 55%);
    -webkit-mask:linear-gradient(90deg, transparent 42%, #000 100%);
    mask:linear-gradient(90deg, transparent 42%, #000 100%);
  }
  .phero .inner{padding-top:clamp(52px,8vh,96px);padding-bottom:clamp(48px,7vh,80px);position:relative;z-index:1;}
  .breadcrumb{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:12.5px;color:var(--muted2);font-family:'Inter',sans-serif;margin-bottom:24px;}
  .breadcrumb a{text-decoration:none;color:var(--muted2);transition:color .2s;}
  .breadcrumb a:hover{color:var(--accent);}
  .breadcrumb .sep{color:var(--muted3);}
  .phero .en-sub{font-family:'Inter',sans-serif;color:var(--accent);font-size:13px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;display:block;margin-bottom:14px;}
  .phero h1{font-size:clamp(34px,4.8vw,58px);font-weight:400;line-height:1.16;letter-spacing:.01em;}
  .phero p.lead{color:var(--muted);font-size:16px;margin-top:20px;max-width:46em;line-height:2;}
  .phero .deco{position:absolute;inset:0;opacity:.6;}

  /* ---------- generic content block helpers ---------- */
  .narrow{max-width:860px;margin:0 auto;}
  .lead-p{color:var(--muted);font-size:16px;line-height:2.1;}
  .lead-p + .lead-p{margin-top:22px;}

  /* ---------- company profile table ---------- */
  .proftable{width:100%;border-collapse:collapse;border-top:1px solid var(--line);}
  .proftable th,.proftable td{text-align:left;padding:22px 4px;border-bottom:1px solid var(--line);font-size:15px;vertical-align:top;line-height:1.8;}
  .proftable th{width:220px;color:var(--muted2);font-weight:700;}
  .proftable td{color:var(--ink);}
  @media(max-width:640px){
    .proftable th,.proftable td{display:block;width:100%;padding:14px 4px;}
    .proftable th{border-bottom:none;padding-bottom:2px;}
    .proftable td{padding-top:2px;}
  }

  /* ---------- values / mission cards ---------- */
  .vgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .vcard{border:1px solid var(--line);border-radius:2px;padding:36px 30px;background:var(--card);}
  .vcard .vn{font-family:'Inter',sans-serif;font-size:13px;font-weight:700;color:var(--accent);letter-spacing:.12em;}
  .vcard h3{font-size:20px;font-weight:400;margin:14px 0 12px;}
  .vcard p{color:var(--muted);font-size:14.5px;line-height:1.9;}
  @media(max-width:920px){.vgrid{grid-template-columns:1fr;}}

  /* ---------- contact form ---------- */
  .formwrap{display:grid;grid-template-columns:1.3fr .9fr;gap:clamp(40px,5vw,72px);align-items:start;min-width:0;}
  .formwrap>*{min-width:0;}
  .form{display:flex;flex-direction:column;gap:24px;min-width:0;}
  .field{display:flex;flex-direction:column;gap:10px;min-width:0;}
  .field > label{font-size:14px;font-weight:700;}
  .field .req{color:var(--accent);font-size:11px;font-weight:700;margin-left:8px;border:1px solid var(--accent);border-radius:2px;padding:2px 6px;}
  .field .opt{color:var(--muted2);font-size:11px;margin-left:8px;}
  .field input,.field select,.field textarea{
    background:var(--card);border:1px solid var(--line);border-radius:2px;color:var(--ink);
    font-family:inherit;font-size:15px;padding:14px 16px;width:100%;min-width:0;max-width:100%;transition:border-color .2s,background .2s;
  }
  .field input::placeholder,.field textarea::placeholder{color:var(--muted3);}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);background:#16161B;}
  .field textarea{min-height:170px;resize:vertical;}
  .field select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted2) 50%),linear-gradient(135deg,var(--muted2) 50%,transparent 50%);background-position:calc(100% - 20px) 22px,calc(100% - 14px) 22px;background-size:6px 6px,6px 6px;background-repeat:no-repeat;}
  .check{flex-direction:row;align-items:flex-start;gap:12px;}
  .check input{width:18px;height:18px;margin-top:3px;flex-shrink:0;accent-color:var(--accent);}
  .check label{font-size:13.5px;color:var(--muted);font-weight:400;line-height:1.7;}
  .check a{color:var(--accent);}
  .form .btn{align-self:flex-start;min-width:240px;margin-top:6px;border:none;cursor:pointer;font-family:inherit;}
  .formnote{font-size:12.5px;color:var(--muted3);margin-top:4px;}

  /* form success */
  .formdone{display:none;border:1px solid var(--accent);border-radius:2px;padding:40px 32px;background:linear-gradient(180deg,rgba(199,48,60,.10),rgba(199,48,60,0) 70%),var(--card);text-align:center;}
  .formdone.show{display:block;}
  .formdone .ic{width:56px;height:56px;border-radius:50%;background:var(--accent);margin:0 auto 20px;position:relative;}
  .formdone .ic::after{content:"";position:absolute;left:20px;top:16px;width:11px;height:20px;border-right:3px solid #fff;border-bottom:3px solid #fff;transform:rotate(45deg);}
  .formdone h3{font-size:22px;font-weight:400;margin-bottom:12px;}
  .formdone p{color:var(--muted);font-size:14.5px;line-height:1.9;}

  /* contact info aside */
  .infocard{border:1px solid var(--line);border-radius:2px;padding:clamp(28px,3vw,36px);background:var(--card);}
  .infocard h3{font-size:18px;font-weight:400;margin-bottom:8px;}
  .infocard .sub{color:var(--muted);font-size:13.5px;line-height:1.8;margin-bottom:20px;}
  .inforow{padding:18px 0;border-top:1px solid var(--line);}
  .inforow .k{font-size:11.5px;color:var(--muted2);letter-spacing:.1em;font-family:'Inter',sans-serif;text-transform:uppercase;}
  .inforow .v{font-size:15px;margin-top:6px;line-height:1.7;}
  .inforow .v a{color:var(--ink);text-decoration:none;}
  .inforow .v a:hover{color:var(--accent);}
  @media(max-width:920px){.formwrap{grid-template-columns:1fr;}}

  /* ---------- recruit jobs ---------- */
  .jobs{display:flex;flex-direction:column;gap:16px;}
  .job{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;border:1px solid var(--line);border-radius:2px;padding:28px 32px;background:var(--card);transition:border-color .25s;}
  .job:hover{border-color:var(--accent);}
  .job .jtag{font-size:12px;font-weight:700;color:var(--accent);letter-spacing:.06em;}
  .job h3{font-size:20px;font-weight:400;margin:8px 0 8px;}
  .job p{color:var(--muted);font-size:14px;line-height:1.8;}
  .job .meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;}
  .job .meta span{font-size:12px;color:var(--muted2);border:1px solid var(--line);border-radius:2px;padding:5px 12px;}
  @media(max-width:640px){.job{grid-template-columns:1fr;}.job .btn{width:100%;}}

  /* ---------- legal / prose ---------- */
  .prose h2{font-size:22px;font-weight:400;margin:40px 0 16px;}
  .prose h2:first-child{margin-top:0;}
  .prose p,.prose li{color:var(--muted);font-size:15px;line-height:2;}
  .prose ul,.prose ol{margin:0 0 0 1.4em;}
  .prose li{margin-bottom:8px;}

  /* ============================================================
     MOBILE FINE-TUNING (<= 760px)
     ============================================================ */
  html { overflow-x: hidden; }
  @media (max-width: 760px) {
    .hero { min-height: calc(100svh - 80px); align-items: stretch; }   /* ファーストビュー1画面・内容を縦に配分 */
    .hero-bg { opacity: .8; }                 /* ザクロを見やすく（明るめに） */
    .hero .grid { display:flex; flex-direction:column; padding-top: clamp(10px,2.5vh,22px); padding-bottom: clamp(90px,13vh,118px); }
    .hero .hero-copy { flex:1; display:flex; flex-direction:column; margin-left:-10px; margin-right:-10px; }   /* 1画面分に伸ばす＋見出し幅を確保 */
    .hero .hero-copy .lead { margin-top:auto; }   /* 見出し=上、本文+CTAを中央〜下へ */
    .hero h1 { font-size: clamp(22px, calc((100vw - 20px) / 12.3), 52px); }  /* 3行・最長(3行目=全角12字)に合わせる */
    .hero .lead { font-size: 15px; line-height: 1.95; margin-top: 22px; }
    .hero .cta { gap: 12px; margin-top: 32px; }
    .hero-tag { margin-top: 28px; font-size: 11.5px; letter-spacing: .2em; }

    section.block { padding: clamp(56px,9vh,80px) 0; }
    .shead { gap: 14px; margin-bottom: 32px; }
    .shead h1, .shead h2 { font-size: clamp(24px,7vw,34px); }
    .shead p { font-size: 14.5px; line-height: 1.9; }

    .phero h1 { font-size: clamp(28px,9vw,42px); }
    .phero p.lead { font-size: 14.5px; line-height: 1.9; margin-top: 16px; }

    /* featured (カイギョーズ) */
    .feature .fbody { padding: 28px 22px; }
    .feature h3 { font-size: clamp(24px,7.5vw,34px); }
    .feature .desc { font-size: 14.5px; }
    .badge { white-space: normal; line-height: 1.5; font-size: 11px; letter-spacing: .08em; }
    .pulist li { font-size: 14px; }
    .pucta .btn { width: 100%; min-width: 0 !important; }

    /* business / cards */
    .bcard .body { padding: 26px 22px; }
    .feature .ph, .scard .ph, .ccard .ph, .ph { min-height: 200px; }

    /* trust stats */
    .stat { padding: 28px 20px; }
    .stat .val { font-size: clamp(36px,12vw,52px); }

    /* services alternating sections: keep image below text, no rtl gap */
    .msg { gap: 28px; }
    .msg[style*="rtl"] { direction: ltr !important; }

    /* contact */
    .contact .big { padding: 28px 22px; }
    .contact .big .btn { width: 100%; }

    /* footer */
    .fbottom { flex-direction: column; align-items: flex-start; gap: 14px; }
    .nrow { padding: 18px 2px; }
    .nrow .ntxt { font-size: 14px; }

    /* logo a touch smaller so header breathes */
    .logo img { height: 54px; }
  }
  @media (max-width: 420px) {
    .hero h1 { font-size: clamp(22px, calc((100vw - 20px) / 12.3), 52px); }  /* 小型端末も3行目に合わせる */
    .feature .pucta { flex-direction: column; }
    .hero .cta .btn { width: 100%; min-width: 0; justify-content: space-between; }
  }


  /* ============================================================
     One Life-style sections（NEWS / PHILOSOPHY / ABOUT COMPANY）
     レイアウト構造を踏襲し、ダーク基調(ザクロ赤・Inter/Noto)に翻案
     ============================================================ */
  /* 中央寄せ見出し（NEWS / ABOUT COMPANY） */
  .ol-heading{text-align:center;margin-bottom:40px;}
  .ol-heading .t{font-family:'Inter',sans-serif;font-size:clamp(1.8rem,5.5vw,4.2rem);font-weight:700;letter-spacing:.04em;line-height:1.1;color:var(--ink);margin:0 0 22px;white-space:nowrap;}
  .ol-heading .s{font-family:'Noto Sans JP',sans-serif;font-size:clamp(.95rem,1.3vw,1.1rem);font-weight:500;letter-spacing:.3em;color:var(--muted2);margin:0;}

  /* VIEW MORE リンク（ライン＋矢羽・ホバーで伸びる） */
  .viewmore{display:inline-flex;align-items:center;gap:16px;font-family:'Inter',sans-serif;font-size:.8rem;font-weight:600;letter-spacing:.2em;color:var(--muted);text-decoration:none;transition:gap .4s cubic-bezier(.16,1,.3,1),color .3s;}
  .viewmore:hover{gap:24px;color:var(--ink);}
  .viewmore .ar{display:inline-block;width:50px;height:1px;background:currentColor;position:relative;transition:width .4s cubic-bezier(.16,1,.3,1);}
  .viewmore .ar::after{content:"";position:absolute;right:0;top:50%;width:8px;height:8px;border-right:1px solid currentColor;border-top:1px solid currentColor;transform:translateY(-50%) rotate(45deg);}
  .viewmore:hover .ar{width:70px;}
  .ol-more{display:flex;justify-content:center;margin-top:46px;}

  /* PHILOSOPHY 左右分割（全体リンク・ホバーでアクセント） */
  .philo-split{display:grid;grid-template-columns:minmax(300px,55%) 1fr;align-items:stretch;min-height:420px;border:1px solid var(--line);border-radius:2px;overflow:hidden;text-decoration:none;transition:transform .5s cubic-bezier(.16,1,.3,1);}
  .philo-split:hover{transform:translateY(-4px);}
  .philo-split .tx{display:flex;flex-direction:column;justify-content:center;gap:26px;padding:clamp(48px,7vw,80px) clamp(32px,6vw,80px);background:var(--card);transition:background-color .5s ease;}
  .philo-split:hover .tx{background:var(--accent);}
  .philo-split .s{font-family:'Noto Sans JP',sans-serif;font-size:clamp(.9rem,1.1vw,1.05rem);font-weight:500;letter-spacing:.3em;color:var(--muted2);margin:0;transition:color .5s;}
  .philo-split .t{font-family:'Inter',sans-serif;font-size:clamp(2.4rem,3.6vw,3.4rem);font-weight:700;letter-spacing:.02em;line-height:1.05;color:var(--ink);margin:0;transition:color .5s;}
  .philo-split:hover .s,.philo-split:hover .t{color:#fff;}
  .philo-split:hover .viewmore{color:#fff;gap:24px;}
  .philo-split:hover .viewmore .ar{width:70px;}
  .philo-split .vm{margin-top:4px;}
  .philo-split .vis{position:relative;overflow:hidden;background:radial-gradient(130% 120% at 70% 22%,#2A2A33 0%,#15151B 45%,#0A0A0D 100%);}
  .philo-split .vis::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 68% 62%,rgba(199,48,60,.22),transparent 60%);}
  @media(max-width:768px){
    .philo-split{grid-template-columns:1fr;}
    .philo-split .vis{aspect-ratio:4/3;min-height:200px;}
  }

  /* 採用ページへの固定フローティングボタン（右下・全ページ共通） */
  .recruit-fab{position:relative;display:block;pointer-events:auto;text-decoration:none;transition:transform .25s ease;}
  .recruit-fab:hover{transform:scale(1.05);}
  .recruit-fab img{display:block;width:100%;height:auto;}
  .recruit-fab-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-family:'Inter','Noto Sans JP',sans-serif;font-weight:700;font-size:8.8cqw;letter-spacing:.02em;white-space:nowrap;text-shadow:0 1px 8px rgba(0,0,0,.7);pointer-events:none;}

  /* 白ボタン: ホバーでも白ベースを維持（赤化しない） */
  .btn.keep-white:hover{background:#fff;color:#0A0A0C;box-shadow:0 12px 30px -8px rgba(0,0,0,.55);}

  /* ============================================================
     Leadership page（経営陣・SpaceX風グリッド／ダーク基調）
     ============================================================ */
  .lead-hero{position:relative;min-height:clamp(420px,60vh,680px);display:flex;align-items:flex-end;overflow:hidden;}
  .lead-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;z-index:0;}
  .lead-hero-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,10,12,.55) 0%,rgba(10,10,12,.15) 28%,rgba(10,10,12,.38) 56%,rgba(10,10,12,.8) 80%,rgba(10,10,12,1) 100%);}
  .lead-hero-inner{position:relative;z-index:2;width:100%;padding-top:clamp(96px,18vh,180px);padding-bottom:clamp(40px,7vh,76px);}
  .lead-hero-inner h1{font-size:clamp(36px,6vw,76px);font-weight:400;line-height:1.08;letter-spacing:.02em;margin:20px 0 0;}
  .lead-hero-inner .lead{margin:22px 0 0;max-width:42em;font-size:clamp(15px,1.2vw,18px);line-height:1.95;color:var(--muted);}
  .lead-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px);}
  .lead-card{position:relative;}   /* 枠・背景なし */
  .lead-photo{position:relative;aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(130% 120% at 60% 22%,#2A2A33 0%,#16161C 52%,#0B0B0E 100%);}
  .lead-photo::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 72% 82%,rgba(199,48,60,.16),transparent 56%);}
  .lead-photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .lead-mono{position:relative;font-family:'Noto Sans JP',sans-serif;font-size:clamp(86px,11vw,150px);font-weight:300;color:rgba(255,255,255,.10);letter-spacing:.04em;user-select:none;}
  .lead-body{padding:0;}
  .lead-name{font-size:clamp(20px,2vw,26px);font-weight:500;letter-spacing:.05em;line-height:1.3;margin:0;}
  .lead-role{margin:10px 0 0;font-family:'Inter',sans-serif;font-size:13px;font-weight:600;letter-spacing:.08em;color:var(--ink);}
  @media(max-width:860px){.lead-grid{grid-template-columns:1fr;max-width:430px;margin:0 auto;gap:clamp(40px,9vw,60px);}}

  /* リーダーシップ ヒーロー：モバイルは画像の横幅に合わせて全体表示（クロップしない） */
  @media(max-width:760px){
    .lead-hero{min-height:0;aspect-ratio:1672 / 941;}
    .lead-hero-inner{padding-top:0;padding-bottom:clamp(16px,4.5vw,28px);}
    .lead-hero-inner h1{font-size:clamp(26px,8vw,42px);margin:10px 0 0;}
    .lead-hero-inner .overline{font-size:11px;letter-spacing:.2em;}
  }

  /* ============================================================
     採用ページ 白ベース（body.light）＋ヒーロー
     ============================================================ */
  body.light{background:#fff;color:#1a1a1a;}
  body.light section.block{background:#fff;border-bottom-color:#ececec;}
  body.light section.block[style*="var(--soft)"]{background:#f6f6f7 !important;}
  body.light .shead h1,body.light .shead h2{color:#141414;}
  body.light .shead p{color:#565656;}
  body.light .vcard{background:#f7f7f8;border-color:#e8e8e8;}
  body.light .vcard h3{color:#161616;}
  body.light .vcard p{color:#585858;}
  body.light .job{background:#f7f7f8;border-color:#e8e8e8;}
  body.light .job h3{color:#161616;}
  body.light .job p{color:#585858;}
  body.light .job .meta span{color:#6a6a6a;border-color:#dcdcdc;}
  body.light .note{color:#9a9a9a;}
  body.light .contact{background:#f6f6f7;color:#1a1a1a;}
  body.light .contact .panel-deco{display:none;}
  body.light .contact .shead h2{color:#141414;}
  body.light .contact .shead p{color:#565656;}
  body.light .contact .btn-light{background:var(--accent);color:#fff;}
  body.light .contact .btn-light:hover{background:var(--accent-dark);color:#fff;transform:translateY(-2px);}

  .rec-main{container-type:inline-size;width:100%;max-width:720px;margin:0 auto;}
  .rec-hero{background:#fff;}
  .rec-hero-msg{max-width:none;margin:0;min-height:clamp(300px,42vh,440px);display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-end;padding:clamp(88px,12vh,140px) 0 clamp(26px,4.5vh,50px);text-align:center;font-family:'Inter','Noto Sans JP',sans-serif;}
  .rec-hero-msg-in{width:fit-content;text-align:center;}
  .rec-hero-msg p{font-size:clamp(11px,0.82cqw,13px);line-height:2.0;margin:0 0 1.05em;color:#111;font-weight:700;letter-spacing:0;}
  .rec-hero-msg p:last-child{margin:0;}
  .rec-hero-msg p.rec-hero-sign{margin:clamp(6px,1.2vh,12px) 0 0;font-size:clamp(10px,0.72cqw,12px);color:#b3b3b3;font-weight:400;letter-spacing:.24em;text-align:right;margin-right:-.24em;}
  .rec-hero-photo{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);aspect-ratio:2000/2081;background:url(recruit-hero.webp) center/cover no-repeat;}
  .rec-hero-photo::before{content:"";position:absolute;top:0;left:0;right:0;height:26%;background:linear-gradient(180deg,#fff 0%,#fff 12%,rgba(255,255,255,0) 100%);}
  @container (max-width:760px){
    .rec-hero-msg{min-height:clamp(320px,46vh,440px);padding-left:clamp(22px,6cqw,40px);padding-right:clamp(22px,6cqw,40px);padding-bottom:clamp(20px,3.5vh,32px);}
    .rec-hero-photo::before{height:50%;}
  }

  /* 採用：コース選択（画像＋上下グラデ＋白ボタン） */
  .rec-courses{background:#fff;}
  .rec-work{background:#fff;display:block;padding:0 0 clamp(12px,2.5vh,28px);}
  .rec-work-photo{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);aspect-ratio:1100/1375;background:url(recruit-work.webp) 55% 38%/170% no-repeat;}
  .rec-work-photo::before{content:"";position:absolute;top:0;left:0;right:0;height:5%;background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,0) 100%);pointer-events:none;z-index:1;}
  .rec-courses-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(12px,1.4cqw,18px);padding:clamp(48px,8vh,90px) clamp(20px,5cqw,40px) clamp(190px,27vh,300px);}
  .rec-course-btn{display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#1a1a1a;font-size:clamp(14px,1.05cqw,16px);font-weight:700;letter-spacing:.02em;padding:12px 30px;border:1px solid #1a1a1a;border-radius:2px;text-decoration:none;transition:transform .2s ease,background .2s ease,color .2s ease,border-color .2s ease;white-space:nowrap;}
  .rec-course-btn:hover{transform:translateY(-3px);background:var(--accent);color:#fff;border-color:var(--accent);}
  .rec-courses-btns.rec-end-btns{padding:clamp(24px,4.5vh,54px) clamp(20px,5cqw,40px) clamp(48px,8vh,96px);background:#fff;}
  @container (max-width:760px){
    .rec-work{padding:0 0 clamp(10px,2vh,22px);justify-content:center;}
    .rec-courses-btns{flex-direction:column;align-items:center;padding-top:clamp(40px,7vh,70px);padding-bottom:clamp(190px,27vh,300px);gap:12px;}
    .rec-course-btn{width:min(300px,82%);}
  }

  /* ===== 白ベースのフォーム（採用エントリー） ===== */
  body.light .field input,body.light .field select,body.light .field textarea{background:#fff;border-color:#dcdce1;color:#1a1a1a;}
  body.light .field input::placeholder,body.light .field textarea::placeholder{color:#b3b3ba;}
  body.light .field input:focus,body.light .field select:focus,body.light .field textarea:focus{border-color:var(--accent);background:#fff;}
  body.light .field select{background-image:linear-gradient(45deg,transparent 50%,#8a8a90 50%),linear-gradient(135deg,#8a8a90 50%,transparent 50%);background-position:calc(100% - 20px) 22px,calc(100% - 14px) 22px;background-size:6px 6px,6px 6px;background-repeat:no-repeat;}
  body.light .field .opt{color:#8a8a90;}
  body.light .check label{color:#565660;}
  body.light .formnote{color:#a0a0a6;}
  body.light .formdone{background:linear-gradient(180deg,rgba(199,48,60,.06),rgba(199,48,60,0) 70%),#f6f6f8;}
  body.light .formdone h3{color:#16161a;}
  body.light .formdone p{color:#565660;}
  body.light .infocard{background:#f6f6f8;border-color:#e7e7ec;}
  body.light .infocard h3{color:#16161a;}
  body.light .infocard .sub{color:#565660;}
  body.light .inforow{border-top-color:#e6e6ec;}
  body.light .inforow .k{color:#8a8a90;}
  body.light .inforow .v,body.light .inforow .v a{color:#1a1a1a;}

  /* 採用：ステートメント文章 */
  .rec-statement{background:#fff;text-align:left;padding:clamp(6px,1.5vh,16px) clamp(20px,6cqw,90px) clamp(60px,10vh,120px);}
  .rec-statement h2{font-size:clamp(20px,7.2cqw,50px);font-weight:700;color:#1a1a1a;letter-spacing:.02em;line-height:1.5;margin-bottom:clamp(12px,2vh,20px);white-space:nowrap;}
  .rec-statement p{font-size:clamp(14px,1.05cqw,16px);line-height:1.75;color:#2c2c2c;letter-spacing:.02em;max-width:660px;font-weight:700;}
  .rec-statement p + p{margin-top:clamp(16px,2.5vh,28px);}
  .rec-statement:not(:last-of-type){padding-bottom:clamp(90px,14vh,150px);}
  .rec-statement.rec-statement-c h2{font-size:clamp(18px,5.4cqw,42px);text-align:center;}
  .rec-statement.rec-statement-c p{text-align:center;margin-left:auto;margin-right:auto;}

  @container (max-width:760px){
    .rec-statement{padding-bottom:clamp(48px,8vh,80px);}
  }

  /* 採用：もっと詳しく（アコーディオン） */
  .rec-statement.rec-statement-c{padding-bottom:clamp(10px,2vh,24px);}
  .rec-more{background:#fff;text-align:center;padding:clamp(10px,2.5vh,30px) clamp(20px,6cqw,90px) clamp(30px,5vh,60px);}
  .rec-more-btn{display:inline-flex;align-items:center;gap:12px;background:#fff;color:#1a1a1a;font-family:inherit;font-size:clamp(14px,1.05cqw,16px);font-weight:700;letter-spacing:.02em;padding:13px 32px;border:1px solid #1a1a1a;border-radius:2px;cursor:pointer;transition:background .2s,color .2s,border-color .2s;}
  .rec-more-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent);}
  .rec-more-ico{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .3s;}
  .rec-more-btn[aria-expanded="true"] .rec-more-ico{transform:rotate(-135deg) translateY(2px);}
  .rec-more-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s cubic-bezier(.16,1,.3,1);}
  .rec-more-panel.open{grid-template-rows:1fr;}
  .rec-more-inner{overflow:hidden;min-height:0;}
  .rec-more-inner h2{font-size:clamp(18px,5.4cqw,42px);font-weight:700;color:#1a1a1a;letter-spacing:.02em;line-height:1.5;margin:clamp(30px,5vh,56px) 0 clamp(14px,2.2vh,22px);white-space:nowrap;}
  .rec-more-inner p{font-size:clamp(14px,1.05cqw,16px);line-height:1.9;color:#2c2c2c;font-weight:700;letter-spacing:.02em;max-width:680px;margin:0 auto;}
  .rec-more-img{position:relative;width:100vw;height:clamp(420px,60vh,660px);background:url(recruit-courses.webp) center 55%/cover no-repeat;margin:clamp(28px,4.5vh,48px) calc(50% - 50vw) 0;overflow:hidden;}
  .rec-more-img::before{content:"";position:absolute;top:0;left:0;right:0;height:30%;background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,0.62) 46%,rgba(255,255,255,0.16) 78%,rgba(255,255,255,0) 100%);pointer-events:none;}
  .rec-more-img::after{content:"";position:absolute;bottom:0;left:0;right:0;height:32%;background:linear-gradient(0deg,#fff 0%,rgba(255,255,255,0.62) 46%,rgba(255,255,255,0.16) 78%,rgba(255,255,255,0) 100%);pointer-events:none;}

  /* 採用：クロージング（信念メッセージ＋空の写真） */
  .rec-closing{background:#fff;}
  .rec-closing-msg{text-align:center;max-width:800px;margin:0 auto;padding:clamp(56px,9vh,110px) clamp(24px,6cqw,60px) clamp(44px,7vh,84px);}
  .rec-closing-msg-in{width:fit-content;margin:0 auto;text-align:center;}
  .rec-closing-msg p{font-size:clamp(16px,1.2cqw,19px);line-height:1.75;color:#111;font-weight:700;letter-spacing:0;}
  .rec-closing-msg p.rec-closing-sign{margin:clamp(20px,3vh,34px) 0 0;font-size:clamp(16px,1.2cqw,19px);color:#b3b3b3;font-weight:400;letter-spacing:.18em;text-align:center;}
  .rec-closing-msg p + p{margin-top:clamp(20px,3vh,32px);}
  .rec-closing-photo{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);aspect-ratio:1024/1535;background:url(recruit-sky.webp) center/cover no-repeat;overflow:hidden;}
  .rec-closing-photo::before{content:"";position:absolute;top:0;left:0;right:0;height:32%;background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,0.62) 46%,rgba(255,255,255,0.16) 78%,rgba(255,255,255,0) 100%);pointer-events:none;}
  .rec-closing-photo::after{content:"";position:absolute;bottom:0;left:0;right:0;height:34%;background:linear-gradient(0deg,#fff 0%,rgba(255,255,255,0.62) 46%,rgba(255,255,255,0.16) 78%,rgba(255,255,255,0) 100%);pointer-events:none;}
  @container (max-width:760px){
  }

  /* ============ Business（リスト型・LayerX風） ============ */
  .biz-head{border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:clamp(24px,4vh,48px);}
  .biz-head span{font-family:'Inter',sans-serif;font-size:15px;font-weight:600;letter-spacing:.06em;color:var(--ink);}
  .biz-list{display:flex;flex-direction:column;}
  .biz-item{display:flex;align-items:center;gap:clamp(18px,3vw,36px);padding:clamp(22px,3.4vh,34px) 0;text-decoration:none;border-bottom:1px solid var(--line2);transition:background .25s ease;}
  .biz-item:hover{background:rgba(255,255,255,.02);}
  .biz-item:hover .biz-txt h3{color:var(--accent);}
  .biz-item:hover .biz-sub{color:var(--accent);}
  .biz-ic{width:clamp(86px,11vw,116px);height:clamp(86px,11vw,116px);border-radius:20px;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px -14px rgba(0,0,0,.6);}
  .biz-ic-kaigyoz{background:#fff;}
  .biz-ic-trippa{background:#ffe01b;}
  .biz-ic img{width:82%;height:auto;display:block;}
  .biz-txt{min-width:0;}
  .biz-txt h3{font-size:clamp(20px,2.4vw,28px);font-weight:700;color:var(--ink);margin:0 0 8px;line-height:1.3;display:flex;align-items:center;gap:10px;flex-wrap:wrap;transition:color .2s;}
  .biz-sub{font-size:.66em;font-weight:500;color:var(--ink);transition:color .2s;}
  .biz-tag{font-family:'Inter',sans-serif;font-size:10px;font-weight:700;letter-spacing:.14em;color:#fff;background:var(--accent);padding:3px 8px;border-radius:2px;}
  .biz-txt p{font-size:clamp(13.5px,1.1vw,15.5px);color:var(--muted);line-height:1.75;margin:0;}
  .biz-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:clamp(30px,4.5vh,52px);}
  .biz-agency{color:var(--muted2);font-size:14px;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:3px;transition:color .2s,border-color .2s;}
  .biz-agency:hover{color:var(--accent);border-color:var(--accent);}
  .biz-more{display:inline-flex;align-items:center;gap:18px;text-decoration:none;color:var(--ink);font-weight:700;font-size:16px;margin-left:auto;}
  .biz-more-btn{width:clamp(50px,5vw,58px);height:clamp(50px,5vw,58px);border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--accent);font-family:'Inter',sans-serif;transition:background .25s,color .25s,border-color .25s,transform .25s;}
  .biz-more:hover .biz-more-btn{background:var(--accent);color:#fff;border-color:var(--accent);transform:translateX(3px);}
  @media(max-width:560px){
    .biz-txt h3{font-size:19px;gap:8px;}
    .biz-ic{border-radius:16px;}
    .biz-txt p{font-size:13px;}
  }

  /* トップ：Business上の夜景バンド */
  .citystrip{position:relative;width:100%;height:clamp(400px,56vh,640px);background:url(city-night.webp) center 55%/cover no-repeat;}
  .citystrip::before{content:"";position:absolute;top:0;left:0;right:0;height:30%;background:linear-gradient(180deg,var(--bg) 0%,rgba(10,10,12,0) 100%);pointer-events:none;}
  .citystrip::after{content:"";position:absolute;bottom:0;left:0;right:0;height:34%;background:linear-gradient(0deg,var(--bg) 0%,rgba(10,10,12,0) 100%);pointer-events:none;}
  @media(max-width:760px){.citystrip{height:clamp(340px,46vh,480px);background-position:center 56%;}}

  /* トップ：夜景バンド下のメッセージ */
  .citymsg{padding:clamp(30px,5.5vh,70px) var(--pad) clamp(30px,6vh,80px);text-align:center;}
  .citymsg-txt{max-width:860px;margin:0 auto;font-size:clamp(16px,1.75vw,23px);line-height:2;color:var(--ink);font-weight:500;letter-spacing:.02em;}
  .citymsg-txt.reveal{opacity:1;transform:none;}          /* ラッパーは動かさず、行ごとに演出 */
  .cm-line{display:block;opacity:0;transform:translateY(34px);transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1);}
  .citymsg-txt.in .cm-line{opacity:1;transform:none;}
  .citymsg-txt.in .cm-line:nth-child(2){transition-delay:.16s;}
  .citymsg-txt.in .cm-line:nth-child(3){transition-delay:.32s;}
  @media(max-width:560px){.citymsg-txt{font-size:15px;line-height:1.95;text-align:left;}}
  @media(max-width:600px){
    .ccards{grid-template-columns:1fr;gap:14px;}
    .cccard{padding:22px 22px;}
    .cccard h3{font-size:16px;margin-bottom:16px;}
    .cccard .btn{font-size:14px;padding:14px 20px;}
  }
  /* 採用FAB：ザクロ（丸い実＋冠）を点で描く */
  .recruit-fab-wrap{position:fixed;right:clamp(8px,2vw,24px);bottom:clamp(8px,2vw,24px);z-index:45;width:clamp(150px,19vw,210px);pointer-events:none;container-type:inline-size;}
  @media(max-width:760px){.recruit-fab-wrap{right:10px;bottom:10px;width:clamp(110px,30vw,150px);}}

  /* 採用：タブレット・PCのレスポンシブ調整（モバイル<768pxは非変更） */
  @media (min-width:768px){
    .rec-main{max-width:min(93vw,960px);}
    .rec-hero-msg p{font-size:clamp(13px,1.15vw,17px);}
    .rec-hero-msg p.rec-hero-sign{font-size:clamp(12px,1vw,15px);}
    .rec-courses-btns{flex-direction:row;align-items:center;gap:clamp(16px,1.8vw,26px);padding-top:clamp(52px,8vh,96px);padding-bottom:clamp(80px,13vh,170px);}
    .rec-course-btn{width:auto;font-size:clamp(14px,1.05vw,17px);padding:clamp(13px,1.4vw,18px) clamp(30px,3vw,48px);}
    .rec-statement h2{font-size:clamp(50px,4vw,64px);}
    .rec-statement.rec-statement-c h2,.rec-more-inner h2{font-size:clamp(38px,3vw,50px);}
    .rec-statement p,.rec-statement.rec-statement-c p,.rec-more-inner p,.rec-closing-msg p{font-size:clamp(14.5px,1.15vw,18px);line-height:1.9;}
    .rec-more-img{width:100%;max-width:720px;margin-left:auto;margin-right:auto;}
  }
