:root{
    --ink:#1a1a1a;          /* オフブラック（純黒を避ける） */
    --ink-soft:#4a4a4a;
    --paper:#f7f7f4;        /* 白グレーの紙色 */
    --paper-pure:#fdfdfb;
    --line:#deded8;
    --amber:#c8912e;        /* 光＝アクセント1色（彩度控えめの琥珀） */
    --amber-soft:#e0b566;
    --dark:#141310;         /* イントロの闇（オフブラック） */
    --r:14px;               /* 角丸1スケール */
    --maxw:1180px;
  }

  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    font-family:"Noto Sans JP",sans-serif;
    background:var(--paper);
    color:var(--ink);
    line-height:1.8;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  .serif{font-family:"Noto Serif JP",serif;}
  .seo-title{
    position:absolute;
    width:1px;
    height:1px;
    margin:-1px;
    padding:0;
    overflow:hidden;
    clip:rect(0 0 0 0);
    white-space:nowrap;
    border:0;
  }

  /* ===== イントロ（二段構え・ゆっくりめ） ===== */
  #intro{
    position:fixed; inset:0; z-index:9999;
    background:var(--dark);
    display:flex; align-items:center; justify-content:center;
    overflow:hidden;
  }
  #intro .glow{
    position:absolute; width:120vmax; height:120vmax; border-radius:50%;
    background:radial-gradient(circle, rgba(224,181,102,0.30) 0%, rgba(200,145,46,0.10) 32%, rgba(20,19,16,0) 62%);
    opacity:0; pointer-events:none;
  }
  #intro .intro-stage{position:relative; text-align:center;}
  #intro .intro-line{
    font-family:"Noto Serif JP",serif;
    font-weight:900;
    color:var(--paper-pure);
    letter-spacing:0.06em;
    line-height:1.3;
    opacity:0;
  }
  #intro .intro-line.l1{font-size:clamp(3.4rem,13vw,9.5rem);}
  #intro .intro-line.l2{font-size:clamp(1.7rem,6vw,3.4rem); font-weight:600; color:var(--amber-soft); margin-top:.4em; letter-spacing:.14em;}
  #intro .intro-line .dot{color:var(--amber-soft);}
  #intro .skip{
    position:absolute; bottom:26px; right:28px; z-index:2;
    background:none; border:none; color:rgba(246,244,238,.5);
    font-size:.72rem; letter-spacing:.18em; cursor:pointer; font-family:"Noto Serif JP",serif;
  }

  /* ===== ヘッダー ===== */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    display:flex; align-items:center; justify-content:space-between;
    padding:18px clamp(20px,5vw,52px);
    mix-blend-mode:difference;
    opacity:0;
    transition:opacity .28s ease, transform .28s ease;
  }
  header .logo{
    display:flex;
    align-items:baseline;
    gap:.62em;
    font-family:"Noto Serif JP",serif;
    color:#fbfaf6;
    text-decoration:none;
    letter-spacing:.02em;
    white-space:nowrap;
  }
  header .logo-main{font-weight:700; font-size:1.15rem;}
  header .logo-sub{
    font-family:"Noto Sans JP",sans-serif;
    font-size:.62rem;
    font-weight:700;
    letter-spacing:.12em;
    opacity:.86;
  }
  header .logo .dot{color:var(--amber-soft);}
  header nav{display:flex; gap:26px;}
  header nav a{color:#fbfaf6; text-decoration:none; font-size:.82rem; font-weight:500; letter-spacing:.04em;}
  body.header-away header{
    opacity:0 !important;
    transform:translateY(-16px) !important;
    pointer-events:none;
  }
  .menu-toggle{
    position:fixed;
    top:16px;
    right:clamp(16px,2.5vw,34px);
    z-index:302;
    width:66px;
    height:66px;
    display:grid;
    place-content:center;
    gap:7px;
    border:1px solid rgba(26,26,26,.2);
    border-radius:50%;
    background:rgba(253,253,251,.9);
    color:var(--ink);
    opacity:0;
    transform:translateY(-10px) scale(.92);
    pointer-events:none;
    cursor:pointer;
    backdrop-filter:blur(10px);
    transition:opacity .25s ease, transform .35s cubic-bezier(.2,.8,.2,1), background .25s ease, color .25s ease;
  }
  body.header-away .menu-toggle,
  body.menu-open .menu-toggle{
    opacity:1;
    transform:none;
    pointer-events:auto;
  }
  .menu-lines{display:grid; gap:5px; width:24px; margin:auto;}
  .menu-lines i{display:block; height:1px; background:currentColor; transition:transform .3s ease;}
  .menu-word{font-size:.5rem; font-weight:700; letter-spacing:.18em; line-height:1;}
  body.menu-open .menu-toggle{background:var(--ink); color:var(--paper-pure); border-color:var(--ink);}
  body.menu-open .menu-lines i:first-child{transform:translateY(3px) rotate(45deg);}
  body.menu-open .menu-lines i:last-child{transform:translateY(-3px) rotate(-45deg);}
  .site-menu{
    position:fixed;
    inset:0;
    z-index:301;
    display:grid;
    grid-template-columns:minmax(180px,.45fr) minmax(0,1fr);
    padding:clamp(32px,5vw,80px);
    background:rgba(247,247,244,.98);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-12px);
    transition:opacity .3s ease, transform .4s cubic-bezier(.2,.8,.2,1), visibility .3s;
  }
  body.menu-open .site-menu{opacity:1; visibility:visible; pointer-events:auto; transform:none;}
  .site-menu-meta{
    align-self:end;
    padding-bottom:10px;
    font-size:.62rem;
    font-weight:700;
    line-height:1.8;
    letter-spacing:.18em;
    color:var(--ink-soft);
  }
  .site-menu nav{align-self:center; width:min(720px,100%); margin-left:auto;}
  .site-menu nav a{
    display:grid;
    grid-template-columns:48px 1fr;
    align-items:baseline;
    padding:.12em 0;
    border-bottom:1px solid var(--line);
    color:var(--ink);
    font-family:"Noto Serif JP",serif;
    font-size:clamp(1.8rem,5vw,4.8rem);
    font-weight:700;
    line-height:1.35;
    text-decoration:none;
  }
  .site-menu nav a span{font-family:"Noto Sans JP",sans-serif; font-size:.58rem; letter-spacing:.18em; color:var(--amber);}
  @media(max-width:1100px){
    header{padding-inline:clamp(18px,4vw,36px);}
    header .logo{gap:.45em;}
    header .logo-main{font-size:1.05rem;}
    header .logo-sub{font-size:.52rem; letter-spacing:.08em;}
    header nav{gap:18px;}
  }
  @media(max-width:700px){
    header nav{display:none;}
    header .logo{
      flex-direction:column;
      align-items:flex-start;
      gap:.12em;
    }
    header .logo-main{font-size:1.02rem; line-height:1;}
    header .logo-sub{font-size:.5rem; line-height:1; letter-spacing:.07em;}
    .menu-toggle{width:56px; height:56px; top:12px; right:12px;}
    .site-menu{grid-template-columns:1fr; padding:90px 24px 30px;}
    .site-menu-meta{display:none;}
    .site-menu nav{width:100%; margin:0;}
    .site-menu nav a{grid-template-columns:38px 1fr; font-size:clamp(1.7rem,9vw,2.7rem); padding:.28em 0;}
  }

  /* ===== ヒーロー（雑誌カバー型・SHIFT横倒し下積み×イラスト） ===== */
  .hero{
    position:relative;
    min-height:100dvh;
    overflow:hidden;
    background:var(--paper);
    display:flex;
    isolation:isolate;
  }
  /* 背景イラスト（中央やや右・見切れさせない） */
  .hero .hero-img{
    position:absolute; inset:0;
    background:url("hero-desktop.png") center center/cover no-repeat;
    background-color:var(--paper);
    background-position:50% 50%;
    z-index:1;
    will-change:transform;
    opacity:0;
    filter:saturate(.78) brightness(1.025) contrast(.99);
  }
  .hero .hero-video{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:50% 50%;
    z-index:2;
    opacity:0;
    filter:saturate(.78) brightness(1.025) contrast(.99);
    pointer-events:none;
  }
  .hero .hero-video-overlay{
    position:absolute;
    inset:0;
    z-index:3;
    pointer-events:none;
    background:
      linear-gradient(90deg, var(--paper) 0%, rgba(247,247,244,.74) 18%, rgba(247,247,244,.22) 42%, rgba(247,247,244,0) 70%),
      linear-gradient(180deg, var(--paper) 0%, rgba(247,247,244,0) 18%, rgba(247,247,244,0) 74%, var(--paper) 100%);
  }
  .hero .hero-img::after{
    content:""; position:absolute; inset:0;
    background:
      linear-gradient(90deg, var(--paper) 0%, rgba(247,247,244,.74) 18%, rgba(247,247,244,.22) 42%, rgba(247,247,244,0) 70%),
      linear-gradient(180deg, var(--paper) 0%, rgba(247,247,244,0) 18%, rgba(247,247,244,0) 74%, var(--paper) 100%);
    mix-blend-mode:normal;
  }

  /* ゆらぎ光（大きな柔らかい光がゆっくり動く） */
  .hero .hero-glow{
    position:absolute; z-index:3; pointer-events:none;
    width:60vmax; height:60vmax; left:40%; top:20%;
    background:radial-gradient(circle, rgba(255,255,255,0.34) 0%, rgba(218,218,214,0.12) 34%, rgba(247,247,244,0) 62%);
    mix-blend-mode:screen;
    animation:heroGlowFloat 14s ease-in-out infinite alternate;
  }
  @keyframes heroGlowFloat{
    0%{transform:translate(-6%,-4%) scale(1);}
    100%{transform:translate(8%,6%) scale(1.15);}
  }

  .hero .hero-rail{
    position:absolute;
    left:clamp(16px,2vw,32px);
    top:52%;
    transform:translateY(-50%);
    z-index:6;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:clamp(22px,4.2vh,50px);
    pointer-events:none;
    color:rgba(18,18,18,.68);
    font-size:clamp(.55rem,.62vw,.72rem);
    font-weight:700;
    line-height:1;
    letter-spacing:.2em;
    text-transform:uppercase;
  }
  .hero .hero-rail span{
    display:block;
    writing-mode:vertical-rl;
    text-orientation:mixed;
  }
  .hero .hero-rail .jp{
    font-family:"Noto Serif JP",serif;
    color:rgba(18,18,18,.78);
    font-weight:700;
    letter-spacing:.14em;
    text-transform:none;
  }
  .hero .hero-rail .rail-line{
    width:1px;
    height:clamp(30px,7vh,76px);
    background:linear-gradient(180deg, rgba(26,26,26,0), rgba(26,26,26,.28), rgba(26,26,26,0));
    writing-mode:horizontal-tb;
  }

  /* 巨大 SHIFT（雑誌カバー風の切り抜き文字） */
  .hero .shift{
    position:absolute; left:clamp(82px,6vw,132px); top:50%; transform:translateY(-50%);
    z-index:4;
    display:flex; flex-direction:column; align-items:flex-start;
    margin:0; padding:0;
    font-family:"Noto Sans JP",sans-serif;
    user-select:none; pointer-events:none;
    will-change:transform;
  }
  .hero .shift .s-main{
    display:block;
    align-items:flex-start;
    font-weight:900;
    font-size:clamp(5.8rem,12vw,16rem);
    line-height:1;
    letter-spacing:-.04em;
    color:rgba(82,82,78,.28);
    -webkit-text-stroke:1.2px rgba(70,70,66,.26);
    filter:
      drop-shadow(0 1px 0 rgba(255,255,255,.86))
      drop-shadow(0 16px 30px rgba(26,26,26,.065));
  }
  .hero .shift .s-main > span{
    display:inline-block;
    opacity:0;
    transform:translate3d(28vw,0,0);
    color:rgba(82,82,78,.28);
    padding:.05em .08em .1em 0;
    margin:0;
    -webkit-text-stroke:1.2px rgba(70,70,66,.28);
    -webkit-text-fill-color:transparent;
    background:
      linear-gradient(100deg,
        rgba(48,48,45,.28) 0%,
        rgba(84,84,80,.4) 24%,
        rgba(190,190,182,.66) 48%,
        rgba(86,86,82,.44) 70%,
        rgba(48,48,45,.3) 100%);
    background-size:300% 100%;
    background-position:0 50%;
    -webkit-background-clip:text;
    background-clip:text;
    animation:shiftSheen 4.2s cubic-bezier(.45,0,.2,1) infinite alternate;
    overflow:visible;
    will-change:transform,opacity,filter;
  }
  .hero .shift .s-sub{
    display:block;
    opacity:0;
    transform:translate3d(8vw,0,0);
    font-weight:700;
    font-size:clamp(.9rem,2.1vw,1.65rem);
    letter-spacing:.36em;
    margin-top:.22em; margin-left:.38em;
    color:rgba(76,76,72,.44);
  }
  @keyframes shiftSheen{
    0%{background-position:0 50%; filter:brightness(.96) contrast(1);}
    45%{background-position:58% 50%; filter:brightness(1.14) contrast(1.08);}
    100%{background-position:100% 50%; filter:brightness(1.02) contrast(1.04);}
  }

  /* ヒーローのコピー（右下・特集見出し風） */
  .hero .hero-copy{
    position:relative; z-index:5;
    margin-top:auto; margin-left:auto;
    align-self:flex-end;
    max-width:min(540px,90vw);
    padding:clamp(20px,4.5vw,48px);
    text-align:right;
  }
  .hero .hero-copy .lead{
    font-family:"Noto Serif JP",serif; font-weight:900;
    font-size:clamp(1.8rem,4.6vw,3rem); line-height:1.28; letter-spacing:.01em;
    color:var(--ink);
    text-shadow:0 1px 20px rgba(247,247,244,.92);
  }
  .hero .hero-copy .lead .amber{color:var(--amber);}
  .hero .hero-copy .lead .dot{color:var(--amber);}
  .hero .hero-copy .word{display:inline-block; overflow:hidden; vertical-align:top;}
  .hero .hero-copy .word > span{display:inline-block; transform:translateY(120%);}
  .hero .hero-copy .sub{
    margin-top:20px; margin-left:auto; max-width:440px;
    font-size:clamp(.92rem,2vw,1.04rem); color:var(--ink-soft); font-weight:500;
    text-shadow:0 1px 14px rgba(247,247,244,.95);
    opacity:0;
    transform:translateY(20px);
  }
  .hero .hero-copy .cta-row{
    margin-top:28px; display:flex; gap:14px; flex-wrap:wrap; justify-content:flex-end;
    opacity:0;
    transform:translateY(20px);
  }
  .mobile-shift{display:none;}

  /* iPad / tablet: SHIFTを左側に寄せて、人物とコピーの主役感を守る */
  @media(min-width:701px) and (max-width:1200px) and (orientation:portrait){
    .hero{
      min-height:100dvh;
    }
    .hero .hero-video{
      object-position:center top;
    }
    .hero .hero-img{
      background-image:url("hero-tablet.png");
      background-size:cover;
      background-position:center top;
    }
    .hero .hero-img::after,
    .hero .hero-video-overlay{
      background:
        linear-gradient(90deg, rgba(247,247,244,.46) 0%, rgba(247,247,244,.2) 14%, rgba(247,247,244,.05) 30%, rgba(247,247,244,0) 46%),
        linear-gradient(180deg, var(--paper) 0%, rgba(247,247,244,0) 22%, rgba(247,247,244,.1) 66%, rgba(247,247,244,.76) 91%, var(--paper) 100%);
    }
    .hero .shift{
      display:flex;
      left:clamp(86px,11vw,128px);
      top:59%;
      bottom:auto;
      transform:translateY(-50%);
      z-index:4;
    }
    .hero .shift .s-main{
      display:block;
      font-size:clamp(4.25rem,11.4vw,6.9rem);
      line-height:1;
      letter-spacing:-.04em;
    }
    .hero .shift .s-main > span{
      transform:translate3d(22vw,0,0);
    }
    .hero .shift .s-sub{
      margin-top:.12em;
      margin-left:.35em;
      font-size:clamp(.64rem,1.45vw,.9rem);
      letter-spacing:.34em;
      writing-mode:horizontal-tb;
      text-orientation:mixed;
    }
    .hero .hero-copy{
      max-width:min(540px,65vw);
      padding-bottom:clamp(40px,5vh,68px);
      transform:translateY(clamp(12px,2.4vh,28px));
    }
    .hero .hero-copy .lead{
      font-size:clamp(2rem,5.3vw,2.85rem);
      line-height:1.18;
      text-shadow:
        0 1px 20px rgba(247,247,244,.98),
        0 0 40px rgba(247,247,244,.92);
    }
    .hero .hero-copy .sub{
      margin-top:16px;
      line-height:1.75;
      text-shadow:
        0 1px 18px rgba(247,247,244,.98),
        0 0 34px rgba(247,247,244,.9);
    }
    .hero .hero-copy .cta-row{
      margin-top:22px;
    }
  }

  @media(min-width:701px) and (max-width:1200px) and (orientation:landscape){
    .hero .shift{
      left:clamp(76px,7.4vw,96px);
      top:50%;
    }
    .hero .shift .s-main{
      font-size:clamp(4.6rem,9.2vw,7rem);
      letter-spacing:-.04em;
    }
    .hero .shift .s-sub{
      font-size:clamp(.78rem,1.7vw,1rem);
    }
    .hero .hero-copy{
      max-width:min(500px,46vw);
      padding-right:clamp(28px,4vw,54px);
      padding-bottom:clamp(28px,5vh,46px);
      transform:translateY(clamp(20px,5vh,36px));
    }
    .hero .hero-copy .lead{
      font-size:clamp(2rem,4.1vw,2.7rem);
    }
  }

  @media(min-width:1201px) and (max-width:1700px) and (orientation:landscape){
    .hero .hero-copy{
      max-width:min(520px,42vw);
      transform:translateY(clamp(18px,3.8vh,34px));
      padding-right:clamp(34px,4vw,62px);
      padding-bottom:clamp(26px,4.5vh,48px);
    }
    .hero .hero-copy .lead{
      font-size:clamp(2.15rem,3.5vw,2.85rem);
      line-height:1.22;
    }
    .hero .hero-copy .sub{
      margin-top:18px;
      max-width:460px;
    }
    .hero .hero-copy .cta-row{
      margin-top:24px;
    }
  }

  @media(min-width:701px) and (max-height:650px) and (orientation:landscape){
    .hero .hero-copy{
      max-width:min(490px,43vw);
      transform:translateY(clamp(12px,3.4vh,22px));
      padding-bottom:22px;
    }
    .hero .hero-copy .lead{
      font-size:clamp(1.85rem,3.75vw,2.35rem);
      line-height:1.18;
    }
    .hero .hero-copy .sub{
      margin-top:14px;
      line-height:1.72;
    }
    .hero .hero-copy .cta-row{
      margin-top:18px;
    }
    .btn{
      padding:13px 26px;
    }
  }

  @media(min-width:1800px){
    .hero .hero-copy{
      max-width:min(760px,34vw);
      padding-right:clamp(64px,5vw,120px);
      padding-bottom:clamp(58px,5vw,110px);
    }
    .hero .hero-copy .lead{
      font-size:clamp(3rem,3.05vw,4.35rem);
    }
    .hero .hero-copy .sub{
      max-width:620px;
      font-size:clamp(1.05rem,1vw,1.22rem);
    }
    .hero .hero-copy .cta-row{
      gap:20px;
    }
    .btn{
      padding:18px 36px;
      font-size:1.04rem;
    }
  }

  /* モバイル */
  @media(max-width:700px){
    .hero{
      flex-direction:column;
      min-height:100dvh;
      padding-top:clamp(310px,43vh,420px);
      padding-bottom:clamp(20px,4vh,44px);
    }
    .hero .hero-video{
      object-position:center top;
    }
    .hero .hero-img{
      background:url("hero-mobile.png") center top/cover no-repeat;
      background-color:var(--paper);
      background-position:center top;
      height:clamp(380px,56vh,560px);
      bottom:auto;
    }
    .hero .hero-img::after,
    .hero .hero-video-overlay{
      background:
        linear-gradient(180deg, rgba(247,247,244,0) 44%, rgba(247,247,244,.52) 72%, var(--paper) 100%),
        linear-gradient(90deg, rgba(247,247,244,.14) 0%, rgba(247,247,244,0) 42%);
    }
    .hero .hero-rail{display:none;}
    .hero .shift{display:none;}
    .hero .hero-copy{
      text-align:left;
      margin-left:0;
      margin-top:0;
      align-self:stretch;
      padding-top:0;
      padding-bottom:0;
    }
    .hero .hero-copy .lead{
      font-size:clamp(1.8rem,8.5vw,2.55rem);
      line-height:1.25;
    }
    .hero .hero-copy .sub{
      font-size:clamp(.92rem,4.2vw,1.04rem);
      line-height:1.85;
      max-width:22em;
    }
    .hero .hero-copy .sub{margin-left:0;}
    .hero .hero-copy .cta-row{justify-content:flex-start;}
    .mobile-shift{
      display:block;
      position:relative;
      left:auto;
      bottom:auto;
      margin:clamp(34px,6vh,52px) 0 0 clamp(28px,7vw,44px);
      padding-bottom:clamp(24px,4vh,40px);
      z-index:5;
      color:rgba(76,76,72,.46);
      font-family:"Noto Sans JP",sans-serif;
      line-height:.9;
      letter-spacing:.04em;
      user-select:none;
      pointer-events:none;
      opacity:0;
      transform:translateY(18px);
    }
    .mobile-shift span{
      display:block;
      font-size:clamp(2.65rem,13vw,4.1rem);
      font-weight:900;
      letter-spacing:-.04em;
      -webkit-text-stroke:1px rgba(70,70,66,.2);
      -webkit-text-fill-color:transparent;
      background:
        linear-gradient(100deg,
          rgba(42,42,40,.34) 0%,
          rgba(82,82,78,.5) 22%,
          rgba(210,210,202,.82) 43%,
          rgba(146,146,138,.7) 56%,
          rgba(72,72,68,.48) 74%,
          rgba(42,42,40,.36) 100%);
      background-size:340% 100%;
      background-position:0 50%;
      -webkit-background-clip:text;
      background-clip:text;
      animation:shiftSheen 4.2s cubic-bezier(.45,0,.2,1) infinite alternate;
    }
    .mobile-shift small{
      display:block;
      margin-top:.55em;
      margin-left:.18em;
      font-size:clamp(.7rem,3.1vw,.9rem);
      font-weight:700;
      letter-spacing:.3em;
    }
  }

  @media(max-width:390px){
    .hero{
      padding-top:clamp(270px,50vh,340px);
      padding-bottom:36px;
    }
    .hero .hero-img{
      height:clamp(340px,62vh,430px);
      background-position:center top;
    }
    .hero .hero-copy{
      padding-inline:28px;
    }
    .hero .hero-copy .lead{
      font-size:clamp(1.58rem,7.7vw,2rem);
    }
    .hero .hero-copy .sub{
      font-size:.9rem;
      line-height:1.7;
    }
    .hero .hero-copy .cta-row{
      margin-top:24px;
      gap:12px;
    }
    .hero .hero-copy .cta-row .btn{
      width:min(100%, 250px);
      justify-content:center;
      padding:14px 22px;
    }
    .mobile-shift{
      margin:clamp(30px,5vh,44px) 0 0 28px;
      padding-bottom:28px;
    }
    .mobile-shift span{
      font-size:clamp(2.45rem,12.5vw,3.35rem);
    }
  }

  @media(max-width:390px) and (max-height:740px){
    .mobile-shift{
      position:relative;
      left:auto;
      bottom:auto;
      margin:30px 0 0 28px;
      padding-bottom:28px;
    }
  }

  @media(min-width:500px) and (max-width:700px) and (max-height:760px){
    .hero{
      padding-top:clamp(340px,50vh,370px);
    }
    .hero .hero-video,
    .hero .hero-img{
      top:-48px;
      bottom:auto;
      height:calc(100% + 48px);
    }
    .mobile-shift{
      display:none;
    }
  }
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:15px 30px; border-radius:var(--r);
    font-weight:700; font-size:.96rem; text-decoration:none;
    transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s;
    will-change:transform;
  }
  .btn-primary{background:var(--ink); color:var(--paper-pure);}
  .btn-primary:hover{transform:translateY(-3px) scale(1.02); box-shadow:0 14px 34px rgba(26,26,26,.22);}
  .btn-ghost{border:1.5px solid var(--ink); color:var(--ink);}
  .btn-ghost:hover{transform:translateY(-3px); background:var(--ink); color:var(--paper-pure);}

  /* ===== セクション共通 ===== */
  section.block{padding:clamp(80px,12vh,150px) clamp(20px,5vw,52px);}
  .wrap{max-width:var(--maxw); margin:0 auto;}
  .reveal{will-change:transform,opacity;}

  .eyebrow{
    font-family:"Noto Serif JP",serif;
    font-size:.8rem; letter-spacing:.22em; color:var(--amber);
    font-weight:600; margin-bottom:18px;
  }
  h2.sec{
    font-family:"Noto Serif JP",serif; font-weight:700;
    font-size:clamp(1.8rem,4.6vw,3.1rem); line-height:1.3; letter-spacing:.01em;
  }
  h2.sec .dot{color:var(--amber);}
  .sec-title-line{display:block;}
  .sec-title-phrase{display:inline-block;white-space:nowrap;}

  /* お悩み */
  .pain{
    position:relative;
    overflow:hidden;
    isolation:isolate;
    padding:0 !important;
    background:
      radial-gradient(circle at 76% 24%, rgba(255,255,255,.96) 0%, rgba(255,255,255,.42) 34%, rgba(255,255,255,0) 60%),
      linear-gradient(180deg, var(--paper-pure) 0%, #f8f8f5 100%);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .pain-lead{
    position:relative;
    min-height:clamp(520px,56vw,760px);
    display:flex;
    align-items:center;
    overflow:hidden;
    padding:clamp(80px,12vh,150px) clamp(20px,5vw,52px);
  }
  .pain-copy{
    position:relative;
    z-index:2;
    width:100%;
    max-width:var(--maxw);
  }
  .pain-art{
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    opacity:1;
  }
  .pain-illustration{
    position:absolute;
    inset:-4% -2%;
    width:104%;
    height:108%;
    object-fit:cover;
    object-position:56% center;
    opacity:.82;
    filter:saturate(.88) contrast(.98);
  }
  .pain-veil{
    position:absolute;
    inset:0;
    background:
      linear-gradient(90deg, rgba(253,253,251,.2) 0%, rgba(253,253,251,.93) 3%, rgba(253,253,251,.75) 33%, rgba(253,253,251,.34) 58%, rgba(253,253,251,.08) 100%),
      linear-gradient(180deg, rgba(253,253,251,.18), rgba(253,253,251,.58));
    transform-origin:left center;
    transform:scaleX(1);
  }
  .pain-list-zone{
    position:relative;
    z-index:3;
    padding:clamp(72px,8vw,112px) clamp(20px,5vw,52px) clamp(88px,10vw,140px);
    background:var(--paper-pure);
    border-top:1px solid var(--line);
  }
  .pain-list{
    margin-top:0;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0;
    position:relative;
    border-top:1px solid var(--line);
  }
  .pain-item{
    position:relative;
    overflow:hidden;
    display:grid;
    grid-template-columns:clamp(72px,8vw,110px) minmax(0,1fr);
    grid-template-rows:auto 1fr;
    align-items:start;
    gap:18px 26px;
    min-height:230px;
    padding:38px clamp(28px,4vw,54px) 42px;
    border-bottom:1px solid var(--line);
    background:var(--paper-pure);
  }
  .pain-item:nth-child(odd){border-right:1px solid var(--line);}
  .pain-item::before{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:100%;
    height:3px;
    background:var(--amber);
    transform:scaleX(.08);
    transform-origin:left center;
    opacity:.62;
  }
  .pain-no{
    grid-row:1 / 3;
    font-family:"Noto Serif JP",serif;
    font-size:clamp(3.6rem,6vw,6.4rem);
    font-weight:500;
    line-height:.82;
    letter-spacing:-.08em;
    color:transparent;
    -webkit-text-stroke:1px rgba(200,145,46,.58);
  }
  .pain-label{
    align-self:end;
    font-size:.62rem;
    font-weight:700;
    letter-spacing:.22em;
    color:var(--amber);
  }
  .pain-item p{
    align-self:start;
    max-width:470px;
    font-size:clamp(1.08rem,1.65vw,1.42rem);
    font-weight:600;
    line-height:1.8;
    letter-spacing:.01em;
  }
  .pain-accent{
    padding-bottom:.1em;
    background:linear-gradient(90deg, rgba(200,145,46,.42), rgba(200,145,46,.08)) left bottom/100% 1px no-repeat;
  }
  .pain h2.sec{
    position:relative;
    max-width:940px;
    font-size:clamp(2.45rem,5.2vw,4.9rem);
    line-height:1.08;
    letter-spacing:-.045em;
    text-shadow:0 1px 26px rgba(253,253,251,.95);
  }
  .pain-eyebrow{
    display:flex;
    align-items:center;
    gap:16px;
    margin-bottom:clamp(26px,3vw,44px);
    color:var(--ink);
  }
  .pain-index{
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    border:1px solid var(--amber);
    border-radius:50%;
    font-family:"Noto Sans JP",sans-serif;
    font-size:.56rem;
    letter-spacing:.08em;
    color:var(--amber);
  }
  .pain-en{
    font-family:"Noto Sans JP",sans-serif;
    font-size:.58rem;
    font-weight:700;
    letter-spacing:.25em;
    color:var(--ink-soft);
  }
  .pain-en::after{content:""; display:inline-block; width:clamp(34px,5vw,74px); height:1px; margin-left:16px; vertical-align:middle; background:var(--amber);}
  .pain-jp{font-size:.78rem; letter-spacing:.18em; color:var(--amber);}
  .pain-title-pre{
    display:block;
    margin:0 0 .18em .08em;
    font-size:.58em;
    font-weight:600;
    letter-spacing:.06em;
  }
  .pain-title-main{display:block; white-space:nowrap;}
  @media(max-width:700px){
    .pain-lead{
      min-height:clamp(350px,95vw,430px);
      padding:64px 20px 54px;
      align-items:flex-end;
    }
    .pain-art{
      background:var(--paper-pure);
    }
    .pain-illustration{
      inset:0;
      width:100%;
      height:100%;
      object-fit:cover;
      object-position:right center;
      opacity:1 !important;
      filter:saturate(.88) contrast(.98);
    }
    .pain-veil{
      background:linear-gradient(180deg, rgba(253,253,251,.02), rgba(253,253,251,.2));
    }
    .pain-copy h2.sec{font-size:clamp(2rem,9vw,2.65rem); line-height:1.18; letter-spacing:-.045em;}
    .pain-eyebrow{gap:10px; margin-bottom:22px;}
    .pain-index{width:28px; height:28px;}
    .pain-en{display:none;}
    .pain-jp{font-size:.7rem; letter-spacing:.12em;}
    .pain-title-pre{font-size:.66em; margin-left:0;}
    .pain-title-main{white-space:normal;}
    .pain-list-zone{padding:68px 20px 90px;}
    .pain-list{grid-template-columns:1fr;}
    .pain-item{
      min-height:0;
      background:var(--paper-pure);
      grid-template-columns:58px minmax(0,1fr);
      gap:12px 18px;
      padding:32px 0 36px;
    }
    .pain-item:nth-child(odd){border-right:0;}
    .pain-item::before{height:2px; transform:scaleX(.12);}
    .pain-no{font-size:3.25rem;}
    .pain-label{font-size:.56rem;}
    .pain-item p{font-size:clamp(1.02rem,5.2vw,1.25rem); line-height:1.85;}
  }

  /* 実績ダイジェスト（キネティックに数字を見せる） */
  .proof{padding:0 !important; background:var(--paper-pure);}
  .proof-lead{
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(360px,.75fr);
    min-height:clamp(460px,38vw,620px);
    border-bottom:1px solid var(--line);
  }
  .proof-media{position:relative; overflow:hidden; background:#f4f1eb;}
  .proof-media img{
    position:absolute;
    inset:-4%;
    width:108%;
    height:108%;
    object-fit:cover;
    object-position:52% center;
    filter:saturate(.88) contrast(.99);
    will-change:transform,filter;
  }
  .proof-statement{
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:clamp(54px,6vw,100px) clamp(34px,5vw,82px);
    background:
      radial-gradient(circle at 92% 84%, rgba(224,181,102,.2), transparent 34%),
      linear-gradient(145deg, rgba(253,253,251,.99), rgba(242,238,228,.97));
    color:var(--ink);
    overflow:hidden;
    isolation:isolate;
    container-type:inline-size;
  }
  .proof-watermark{
    position:absolute;
    right:5cqw;
    bottom:4cqw;
    z-index:0;
    font-size:clamp(4rem,20cqw,10rem);
    font-weight:900;
    line-height:.8;
    letter-spacing:-.08em;
    color:rgba(200,145,46,.075);
    -webkit-text-stroke:1px rgba(200,145,46,.1);
    pointer-events:none;
    white-space:nowrap;
  }
  .proof-rule{
    position:absolute;
    left:0;
    top:0;
    z-index:2;
    width:3px;
    height:100%;
    background:linear-gradient(180deg, transparent 4%, var(--amber) 28%, var(--amber-soft) 72%, transparent 96%);
    transform:scaleY(0);
    transform-origin:top center;
  }
  .proof-code{
    position:absolute;
    top:clamp(30px,4vw,58px);
    left:clamp(34px,5vw,82px);
    right:clamp(34px,5vw,82px);
    display:flex;
    justify-content:space-between;
    gap:20px;
    font-size:.58rem;
    font-weight:700;
    letter-spacing:.22em;
    color:rgba(26,26,26,.42);
    z-index:1;
  }
  .proof-statement .eyebrow{position:relative; z-index:1; color:var(--amber);}
  .proof-statement h2.sec{position:relative; z-index:1; font-size:clamp(2rem,3.7vw,4.25rem); line-height:1.28; color:var(--ink);}
  .proof-line-sub{
    display:block;
    margin-bottom:.75em;
    font-size:.42em;
    font-weight:500;
    letter-spacing:.08em;
    color:var(--ink-soft);
  }
  .proof-line-main{
    display:block;
    position:relative;
    letter-spacing:-.025em;
  }
  .proof-phrase{display:inline-block; white-space:nowrap; font-size:.88em;}
  .proof-line-main::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-.18em;
    width:58%;
    height:1px;
    background:linear-gradient(90deg,var(--amber),rgba(200,145,46,0));
  }
  .proof-statement .dot{color:var(--amber);}
  .proof-content{padding:clamp(82px,9vw,132px) clamp(20px,5vw,52px) clamp(90px,10vw,150px);}
  .proof .proof-grid{
    margin-top:0;
    padding-bottom:clamp(80px,8vw,130px);
    display:grid;
    grid-template-columns:1fr;
    gap:24px;
  }
  .proof-row{
    position:sticky;
    top:clamp(86px,8vw,122px);
    min-height:clamp(350px,31vw,440px);
    display:grid;
    grid-template-columns:clamp(86px,9vw,128px) minmax(0,1.12fr) minmax(260px,.88fr);
    align-items:center;
    gap:clamp(26px,4vw,62px);
    padding:clamp(36px,5vw,70px);
    border:1px solid rgba(26,26,26,.1);
    box-shadow:0 24px 70px rgba(48,43,35,.08);
    overflow:hidden;
    isolation:isolate;
    filter:none !important;
  }
  .proof-row:nth-child(1){z-index:1; background:#fdfdfb;}
  .proof-row:nth-child(2){z-index:2; background:#f5f1e8;}
  .proof-row:nth-child(3){z-index:3; background:#ebe7dc;}
  .proof-row::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:4px;
    height:100%;
    background:linear-gradient(180deg,transparent,var(--amber),transparent);
  }
  .proof-row::after{
    content:attr(data-word);
    position:absolute;
    right:.05em;
    bottom:-.1em;
    z-index:0;
    font-size:clamp(6rem,13vw,12rem);
    font-weight:900;
    line-height:.8;
    letter-spacing:-.08em;
    color:rgba(200,145,46,.055);
    -webkit-text-stroke:1px rgba(200,145,46,.11);
    white-space:nowrap;
  }
  .proof-case-meta{
    position:relative;
    z-index:1;
    align-self:stretch;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding-right:24px;
    border-right:1px solid rgba(26,26,26,.12);
    font-size:.55rem;
    font-weight:700;
    line-height:1.5;
    letter-spacing:.18em;
    color:var(--ink-soft);
  }
  .proof-case-meta > span:last-child{
    writing-mode:vertical-rl;
    text-orientation:mixed;
  }
  .proof-case-no{
    font-family:"Noto Serif JP",serif;
    font-size:clamp(3.6rem,6vw,6.2rem);
    font-weight:500;
    line-height:.85;
    letter-spacing:-.08em;
    color:transparent;
    -webkit-text-stroke:1px rgba(200,145,46,.72);
  }
  .proof-head{position:relative; z-index:1; font-family:"Noto Serif JP",serif; font-weight:700; font-size:clamp(1.5rem,2.8vw,2.65rem); line-height:1.45;}
  .proof-head .amber{color:var(--amber);}
  .proof-body{position:relative; z-index:1; color:var(--ink-soft); font-weight:500; font-size:clamp(.94rem,1.3vw,1.08rem); line-height:2;}
  .proof-tag{display:inline-block; margin-bottom:8px; font-size:.74rem; letter-spacing:.14em; color:var(--amber); font-weight:700;}
  .proof-provisional{display:block; margin-top:10px; font-size:.74rem; opacity:.58;}
  .proof-note{margin-top:0; font-size:.82rem; color:var(--ink-soft); opacity:.75;}
  @media(max-width:1100px){
    .proof-lead{
      grid-template-columns:1fr;
      min-height:0;
      padding-bottom:clamp(48px,7vw,76px);
      background:linear-gradient(180deg,var(--paper-pure),#f3efe6);
    }
    .proof-media{aspect-ratio:16/9;}
    .proof-statement{
      min-height:360px;
      margin:-42px clamp(22px,7vw,76px) 0;
      padding:86px clamp(28px,6vw,58px) clamp(86px,10vw,112px);
      border:1px solid rgba(200,145,46,.2);
      box-shadow:0 24px 70px rgba(76,66,48,.11);
    }
    .proof-code{left:clamp(28px,6vw,58px); right:clamp(28px,6vw,58px);}
    .proof-statement h2.sec{font-size:clamp(2.15rem,7.4vw,3.5rem);}
    .proof-content{padding-left:20px; padding-right:20px;}
    .proof-row{
      grid-template-columns:76px minmax(0,1fr);
      grid-template-rows:auto auto;
      min-height:380px;
    }
    .proof-case-meta{grid-row:1 / 3;}
    .proof-body{align-self:start;}
  }
  @media(max-width:520px){
    .proof-media{aspect-ratio:16/9;}
    .proof-media img{inset:0; width:100%; height:100%; object-position:50% center;}
    .proof-lead{padding-bottom:54px;}
    .proof-statement{
      min-height:0;
      margin:-24px 14px 0;
      padding:76px 24px 110px;
      box-shadow:0 18px 48px rgba(76,66,48,.1);
    }
    .proof-code{top:24px; left:24px; right:24px;}
    .proof-code span:last-child{
      position:static;
      display:block;
      writing-mode:horizontal-tb;
      text-orientation:mixed;
      letter-spacing:.22em;
    }
    .proof-statement h2.sec{font-size:clamp(2rem,10vw,2.7rem);}
    .proof-line-sub{font-size:.5em;}
    .proof-watermark{right:20px; bottom:24px; font-size:clamp(3.8rem,20cqw,5rem);}
    .proof-rule{width:2px;}
    .proof-content{padding-top:72px; padding-bottom:100px;}
    .proof .proof-grid{gap:18px; padding-bottom:84px;}
    .proof-row{
      top:78px;
      min-height:clamp(450px,118vw,540px);
      grid-template-columns:1fr;
      grid-template-rows:auto auto auto;
      align-content:start;
      gap:24px;
      padding:30px 24px 42px;
      box-shadow:0 18px 46px rgba(48,43,35,.09);
    }
    .proof-row::before{width:3px;}
    .proof-row::after{right:.08em; bottom:.02em; font-size:clamp(5rem,25vw,7.2rem);}
    .proof-case-meta{
      grid-row:auto;
      flex-direction:row;
      align-items:center;
      padding:0 0 18px;
      border-right:0;
      border-bottom:1px solid rgba(26,26,26,.12);
    }
    .proof-case-meta > span:last-child{writing-mode:horizontal-tb;}
    .proof-case-no{font-size:3.25rem;}
    .proof-head{font-size:clamp(1.45rem,7vw,1.9rem);}
    .proof-body{font-size:.96rem; line-height:1.9;}
  }

  /* サービス（ジグザグ・非対称。3枚均等カード禁止） */
  .svc{
    position:relative;
    overflow:hidden;
    isolation:isolate;
    background:
      radial-gradient(circle at 79% 14%, rgba(200,145,46,.18), transparent 29%),
      radial-gradient(circle at 18% 54%, rgba(224,181,102,.055), transparent 23%),
      linear-gradient(135deg,#111210 0%,#191713 55%,#11110f 100%);
    color:var(--paper);
  }
  .svc::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background-image:
      linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
      linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
    background-size:64px 64px;
    mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 80%);
  }
  .svc::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    background:linear-gradient(112deg,transparent 39%,rgba(224,181,102,.035) 49%,transparent 59%);
  }
  .svc .wrap{position:relative; z-index:2;}
  .svc-light{
    position:absolute;
    z-index:0;
    top:-20%;
    left:42%;
    width:34%;
    height:65%;
    background:linear-gradient(112deg,transparent,rgba(224,181,102,.11),transparent 68%);
    filter:blur(30px);
    transform:skewX(-18deg);
    pointer-events:none;
    will-change:transform,opacity;
  }
  .svc-watermark{
    position:absolute;
    left:-.06em;
    top:clamp(190px,25vh,290px);
    z-index:1;
    font-size:clamp(8rem,20vw,23rem);
    font-weight:900;
    line-height:.75;
    letter-spacing:-.085em;
    color:transparent;
    -webkit-text-stroke:1px rgba(224,181,102,.17);
    background:linear-gradient(90deg,rgba(255,255,255,.035),rgba(224,181,102,.095) 54%,rgba(255,255,255,.018));
    -webkit-background-clip:text;
    background-clip:text;
    white-space:nowrap;
    pointer-events:none;
    opacity:.78;
    filter:drop-shadow(0 0 34px rgba(200,145,46,.035));
    will-change:transform,opacity;
  }
  .svc-progress{
    position:absolute;
    left:clamp(10px,2.2vw,36px);
    top:clamp(110px,12vw,180px);
    bottom:clamp(90px,8vw,140px);
    z-index:3;
    width:1px;
    background:rgba(255,255,255,.08);
  }
  .svc-progress span{display:block; width:100%; height:100%; background:linear-gradient(180deg,var(--amber),var(--amber-soft)); transform:scaleY(0); transform-origin:top center;}
  .svc-heading{
    position:relative;
    min-height:clamp(650px,82svh,860px);
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:clamp(88px,10vh,120px) 0 clamp(92px,10vh,132px);
  }
  .svc-code{
    position:absolute;
    left:0;
    right:0;
    top:0;
    display:flex;
    justify-content:space-between;
    font-size:.58rem;
    font-weight:700;
    letter-spacing:.22em;
    color:rgba(246,244,238,.38);
  }
  .svc h2.sec{color:var(--paper-pure);}
  .svc .eyebrow{color:var(--amber-soft);}
  .svc-heading-copy{
    position:relative;
    z-index:4;
    width:min(66%,780px);
  }
  .svc-heading-copy .eyebrow{margin-bottom:22px;}
  .svc-heading-copy h2.sec{
    font-size:clamp(2.4rem,4.55vw,4.65rem);
    line-height:1.38;
    text-shadow:0 12px 42px rgba(0,0,0,.24);
  }
  .svc-scope{
    position:absolute;
    z-index:3;
    top:50%;
    right:clamp(-44px,-2vw,-10px);
    width:clamp(360px,38vw,560px);
    aspect-ratio:1;
    transform:translateY(-50%);
    color:var(--paper-pure);
    pointer-events:none;
    will-change:transform,opacity;
  }
  .svc-scope::before{
    content:"";
    position:absolute;
    inset:12%;
    border-radius:50%;
    background:radial-gradient(circle,rgba(224,181,102,.13),rgba(200,145,46,.025) 45%,transparent 70%);
    filter:blur(18px);
  }
  .svc-scope-caption{
    position:absolute;
    top:2%;
    right:4%;
    z-index:4;
    display:flex;
    gap:14px;
    align-items:baseline;
    font-size:.55rem;
    letter-spacing:.22em;
    color:rgba(246,244,238,.42);
  }
  .svc-scope-caption b{color:var(--amber-soft); font-weight:700;}
  .svc-orbit{position:absolute; inset:8%;}
  .svc-ring{
    position:absolute;
    left:50%;
    top:50%;
    border:1px solid rgba(224,181,102,.2);
    border-radius:50%;
    transform:translate(-50%,-50%);
    will-change:transform,opacity;
  }
  .svc-ring-a{width:100%; height:100%; border-color:rgba(224,181,102,.23);}
  .svc-ring-b{width:72%; height:72%; border-color:rgba(255,255,255,.12);}
  .svc-ring-c{width:43%; height:43%; border-style:dashed; border-color:rgba(224,181,102,.28);}
  .svc-orbit::before,.svc-orbit::after{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    z-index:0;
    border-radius:50%;
    transform:translate(-50%,-50%);
    pointer-events:none;
  }
  .svc-orbit::before{
    width:calc(100% + 18px);
    height:calc(100% + 18px);
    background:conic-gradient(from 22deg,transparent 0 20%,rgba(224,181,102,.62) 24%,transparent 28% 67%,rgba(224,181,102,.28) 71%,transparent 74%);
    mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1px));
    opacity:.55;
  }
  .svc-orbit::after{width:5px; height:5px; background:var(--amber-soft); box-shadow:0 0 20px rgba(224,181,102,.85);}
  .svc-ray{
    position:absolute;
    left:50%;
    top:50%;
    z-index:1;
    width:48%;
    height:1px;
    background:linear-gradient(90deg,rgba(224,181,102,.5),rgba(224,181,102,.08));
    transform-origin:left center;
    will-change:transform,opacity;
  }
  .svc-ray-1{transform:rotate(-90deg);}
  .svc-ray-2{transform:rotate(-18deg);}
  .svc-ray-3{transform:rotate(54deg);}
  .svc-ray-4{transform:rotate(126deg);}
  .svc-ray-5{transform:rotate(198deg);}
  .svc-node{
    position:absolute;
    z-index:3;
    display:grid;
    grid-template-columns:auto auto;
    align-items:center;
    gap:7px;
    color:rgba(246,244,238,.72);
    font-size:.52rem;
    line-height:1;
    font-style:normal;
    letter-spacing:.16em;
    white-space:nowrap;
    will-change:transform,opacity;
  }
  .svc-node::before{
    content:"";
    position:absolute;
    left:-12px;
    top:50%;
    width:5px;
    height:5px;
    border-radius:50%;
    background:var(--amber-soft);
    box-shadow:0 0 0 5px rgba(224,181,102,.08),0 0 17px rgba(224,181,102,.55);
    transform:translateY(-50%);
  }
  .svc-node i{color:var(--amber-soft); font-style:normal; opacity:.8;}
  .svc-node b{font-weight:700;}
  .svc-node-1{left:47%; top:-2%;}
  .svc-node-2{right:-3%; top:31%;}
  .svc-node-3{right:6%; bottom:12%;}
  .svc-node-4{left:11%; bottom:3%;}
  .svc-node-5{left:-6%; top:31%;}
  .svc-core{
    position:absolute;
    left:50%;
    top:50%;
    z-index:5;
    width:27%;
    aspect-ratio:1;
    transform:translate(-50%,-50%);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(224,181,102,.5);
    border-radius:50%;
    background:rgba(18,18,16,.76);
    box-shadow:0 0 0 8px rgba(224,181,102,.035),0 18px 52px rgba(0,0,0,.24);
    backdrop-filter:blur(7px);
    will-change:transform,opacity;
  }
  .svc-core i{width:18px; height:1px; margin-bottom:10px; background:var(--amber-soft);}
  .svc-core b{font-family:"Noto Serif JP",serif; font-size:clamp(1rem,1.7vw,1.42rem); letter-spacing:.12em;}
  .svc-core small{margin-top:4px; font-size:.43rem; letter-spacing:.18em; color:rgba(246,244,238,.5);}
  .svc-heading-rule{
    position:absolute;
    left:0;
    right:0;
    bottom:42px;
    z-index:4;
    display:grid;
    grid-template-columns:auto 1fr auto;
    gap:18px;
    align-items:center;
    color:rgba(246,244,238,.32);
    font-size:.48rem;
    font-weight:700;
    line-height:1;
    letter-spacing:.2em;
  }
  .svc-heading-rule i{height:1px; background:linear-gradient(90deg,var(--amber),rgba(255,255,255,.12)); transform-origin:left;}
  .svc-list{position:relative; z-index:2; margin-top:0; border-bottom:1px solid rgba(255,255,255,.13);}
  .svc-item{
    position:relative;
    display:grid; grid-template-columns:1fr; gap:10px 48px;
    min-height:clamp(150px,15vw,210px);
    padding:clamp(38px,4.5vw,66px) clamp(8px,2vw,28px);
    border-top:1px solid rgba(255,255,255,.13);
    align-items:baseline;
    transition:background .45s ease,transform .45s cubic-bezier(.2,.8,.2,1),padding .45s ease;
    overflow:hidden;
  }
  .svc-item::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:1px;
    background:linear-gradient(90deg,var(--amber),rgba(224,181,102,0));
    transform:scaleX(.08);
    transform-origin:left center;
    transition:transform .65s cubic-bezier(.2,.8,.2,1);
  }
  .svc-item::after{
    content:attr(data-en);
    position:absolute;
    right:clamp(8px,2vw,28px);
    top:18px;
    font-size:.52rem;
    font-weight:700;
    letter-spacing:.22em;
    color:rgba(246,244,238,.28);
    transition:color .4s ease,letter-spacing .5s ease;
  }
  .svc-item.is-active{
    background:linear-gradient(90deg,rgba(200,145,46,.105),rgba(255,255,255,.025) 58%,transparent);
    transform:translateX(10px);
  }
  .svc-item.is-active::before{transform:scaleX(1);}
  .svc-item.is-active::after{color:var(--amber-soft); letter-spacing:.3em;}
  @media(min-width:820px){
    .svc-item{grid-template-columns:88px minmax(0,1fr) minmax(0,1.2fr);}
  }
  .svc-idx{
    font-family:"Noto Serif JP",serif;
    color:transparent;
    -webkit-text-stroke:1px rgba(224,181,102,.72);
    font-size:clamp(2.2rem,4vw,4.2rem);
    font-weight:500;
    line-height:.9;
    transition:color .45s ease,-webkit-text-stroke .45s ease,transform .45s ease;
  }
  .svc-item.is-active .svc-idx{color:var(--amber-soft); -webkit-text-stroke-color:transparent; transform:translateY(-3px);}
  .svc-name{font-family:"Noto Serif JP",serif; font-weight:700; font-size:clamp(1.5rem,3vw,2.4rem); line-height:1.35; color:var(--paper-pure); transition:transform .45s ease;}
  .svc-item.is-active .svc-name{transform:translateX(8px);}
  .svc-desc{color:rgba(246,244,238,.58); font-weight:500; font-size:.98rem; transition:color .45s ease;}
  .svc-item.is-active .svc-desc{color:rgba(246,244,238,.84);}
  .svc-safety{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(170px,.42fr) minmax(0,1fr);
    gap:clamp(28px,5vw,88px);
    margin-top:clamp(48px,6vw,86px);
    padding:clamp(28px,3.5vw,46px) clamp(8px,2vw,28px) 0;
    border-top:1px solid rgba(255,255,255,.13);
  }
  .svc-safety::before{
    content:"";
    position:absolute;
    left:0;
    top:-1px;
    width:clamp(52px,7vw,110px);
    height:1px;
    background:var(--amber-soft);
  }
  .svc-safety-label{
    color:var(--amber-soft);
    font-size:.64rem;
    line-height:1.5;
    font-weight:700;
    letter-spacing:.24em;
  }
  .svc-safety p{
    max-width:880px;
    margin:0;
    color:rgba(246,244,238,.62);
    font-size:clamp(.83rem,1.05vw,.95rem);
    line-height:2;
  }
  @media(max-width:819px){
    .svc-watermark{top:245px; left:-.16em; font-size:clamp(7rem,34vw,11rem); opacity:.62;}
    .svc-progress{left:9px; top:100px; bottom:90px;}
    .svc-heading{min-height:720px; padding:80px 0 100px; justify-content:flex-end;}
    .svc-code{top:0;}
    .svc-heading-copy{width:100%;}
    .svc-heading-copy .eyebrow{margin-bottom:15px;}
    .svc-heading-copy h2.sec{font-size:clamp(2rem,8.5vw,3.25rem); line-height:1.46;}
    .svc-scope{
      top:78px;
      right:50%;
      width:min(88vw,400px);
      transform:translateX(50%);
      opacity:.9;
    }
    .svc-scope-caption{top:0; right:0;}
    .svc-node{font-size:.46rem;}
    .svc-heading-rule{bottom:42px; gap:11px; font-size:.42rem;}
    .svc-item{
      grid-template-columns:64px minmax(0,1fr);
      grid-template-rows:auto auto;
      min-height:0;
      padding:42px 0;
      gap:14px 18px;
    }
    .svc-item::after{top:19px; right:0;}
    .svc-idx{grid-row:1 / 3; font-size:3rem;}
    .svc-name{font-size:clamp(1.35rem,6.8vw,1.85rem);}
    .svc-desc{font-size:.92rem; line-height:1.9;}
    .svc-item.is-active{transform:none; background:linear-gradient(90deg,rgba(200,145,46,.09),transparent);}
    .svc-item.is-active .svc-name{transform:translateX(4px);}
    .svc-safety{
      grid-template-columns:1fr;
      gap:16px;
      margin-top:42px;
      padding:28px 0 0 64px;
    }
    .svc-safety p{font-size:.82rem; line-height:1.95;}
  }
  @media(max-width:430px){
    .svc-heading{min-height:690px; padding-bottom:94px;}
    .svc-scope{top:82px; width:min(91vw,355px);}
    .svc-scope-caption{font-size:.48rem; gap:9px;}
    .svc-node{font-size:.41rem; gap:5px;}
    .svc-node::before{left:-9px; width:4px; height:4px;}
    .svc-node-2{right:-1%;}
    .svc-node-5{left:-2%;}
    .svc-heading-copy h2.sec{font-size:clamp(1.92rem,9.4vw,2.58rem);}
    .svc-heading-rule span:first-child{display:none;}
    .svc-heading-rule{grid-template-columns:1fr auto;}
  }

  /* 自走支援：現場からWeb運用へつながる、白い編集面 */
  .jisou{
    position:relative;
    padding:0;
    background:#f5f1e8;
    overflow:hidden;
  }
  .jisou-shell{
    position:relative;
    min-height:max(780px,100svh);
    isolation:isolate;
    overflow:hidden;
  }
  .jisou-visual{
    position:absolute;
    inset:0;
    z-index:0;
    margin:0;
    overflow:hidden;
    background:#f7f2ea;
  }
  .jisou-visual img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    display:block;
    filter:saturate(.8) contrast(.98);
    transform:scale(1.045) translateX(3.5%);
    transform-origin:center;
    will-change:transform,clip-path,filter;
  }
  .jisou-wash{
    position:absolute;
    inset:0;
    background:
      linear-gradient(90deg,rgba(253,253,251,.99) 0%,rgba(253,253,251,.97) 25%,rgba(253,253,251,.86) 43%,rgba(253,253,251,.38) 59%,rgba(253,253,251,.04) 78%),
      linear-gradient(0deg,rgba(253,253,251,.91) 0%,rgba(253,253,251,.42) 23%,transparent 47%);
    pointer-events:none;
  }
  .jisou-content{
    position:relative;
    z-index:2;
    width:min(100%,1680px);
    min-height:max(780px,100svh);
    margin:0 auto;
    padding:clamp(92px,9vh,138px) clamp(34px,7.5vw,142px) clamp(70px,8vh,112px);
    display:flex;
    flex-direction:column;
  }
  .jisou-meta{
    display:grid;
    grid-template-columns:70px 1fr auto;
    align-items:center;
    width:min(100%,780px);
    padding-bottom:16px;
    border-bottom:1px solid rgba(26,26,26,.16);
    color:rgba(26,26,26,.52);
    font-family:"Noto Sans JP",sans-serif;
    font-size:.62rem;
    line-height:1;
    font-weight:700;
    letter-spacing:.24em;
  }
  .jisou-meta span:first-child{color:var(--amber);}
  .jisou-meta span:last-child{text-align:right;}
  .jisou-copy{
    width:min(64%,910px);
    margin-top:clamp(34px,5vh,66px);
  }
  .jisou .eyebrow{margin-bottom:20px;}
  .jisou .big{
    font-family:"Noto Serif JP",serif;
    font-weight:700;
    font-size:clamp(2.65rem,4.4vw,4.8rem);
    line-height:1.32;
    letter-spacing:.01em;
  }
  .jisou-line{display:block; overflow:hidden; padding:.04em 0;}
  .jisou-line>span{display:block; will-change:transform,opacity;}
  .jisou .big .amber{color:var(--amber);}
  .jisou .big .dot{color:var(--amber);}
  .jisou-flow{
    --flow-progress:0;
    position:relative;
    width:min(60%,820px);
    margin-top:clamp(30px,4.5vh,52px);
    padding:18px 0 0;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    list-style:none;
    border-top:1px solid rgba(26,26,26,.18);
  }
  .jisou-flow::before{
    content:"";
    position:absolute;
    top:-1px;
    left:0;
    width:100%;
    height:2px;
    background:var(--amber);
    transform:scaleX(var(--flow-progress));
    transform-origin:left;
    will-change:transform;
  }
  .jisou-flow li{
    position:relative;
    min-width:0;
    padding-left:14px;
    border-left:1px solid rgba(26,26,26,.13);
  }
  .jisou-flow li:first-child{padding-left:0; border-left:0;}
  .jisou-flow span{
    display:block;
    color:var(--amber);
    font-family:"Noto Serif JP",serif;
    font-size:.64rem;
    line-height:1;
    letter-spacing:.12em;
  }
  .jisou-flow b{
    display:block;
    margin-top:9px;
    font-family:"Noto Serif JP",serif;
    font-size:clamp(.96rem,1.25vw,1.18rem);
    line-height:1.25;
  }
  .jisou-flow small{
    display:block;
    margin-top:6px;
    color:rgba(26,26,26,.42);
    font-size:.52rem;
    line-height:1;
    font-weight:700;
    letter-spacing:.16em;
  }
  .jisou-story{
    width:min(57%,760px);
    margin-top:auto;
    padding:20px 24px 22px;
    border-left:2px solid var(--amber);
    background:linear-gradient(90deg,rgba(253,253,251,.94),rgba(253,253,251,.67) 76%,rgba(253,253,251,0));
    backdrop-filter:blur(3px);
  }
  .jisou-lead{
    margin-bottom:12px;
    color:var(--ink);
    font-family:"Noto Serif JP",serif;
    font-size:clamp(1rem,1.35vw,1.25rem);
    font-weight:600;
    line-height:1.8;
  }
  .jisou-lead strong{
    color:var(--amber);
    font-size:1.34em;
    font-weight:700;
  }
  .jisou p.body{
    color:var(--ink-soft);
    font-size:clamp(.82rem,.88vw,.98rem);
    font-weight:500;
    line-height:2;
  }
  .jisou-stamp{
    position:absolute;
    right:clamp(28px,3.5vw,70px);
    bottom:clamp(36px,5vh,70px);
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    color:rgba(26,26,26,.2);
    font-family:"Noto Sans JP",sans-serif;
    font-size:clamp(1.7rem,3.4vw,4.2rem);
    font-weight:300;
    line-height:.9;
    letter-spacing:.05em;
    text-transform:uppercase;
    pointer-events:none;
  }
  .jisou-stamp span:last-child{color:rgba(200,145,46,.28);}

  @media(max-width:1099px){
    .jisou{padding:0 0 clamp(72px,10vw,112px); background:var(--paper-pure);}
    .jisou-shell{min-height:0; overflow:visible;}
    .jisou-visual{position:relative; aspect-ratio:16/9;}
    .jisou-visual img{transform:scale(1.03); object-position:center;}
    .jisou-wash{background:linear-gradient(0deg,rgba(253,253,251,.82),transparent 42%);}
    .jisou-content{
      width:calc(100% - clamp(36px,8vw,92px));
      min-height:0;
      margin:clamp(-112px,-10vw,-62px) auto 0;
      padding:clamp(58px,8vw,82px) clamp(34px,7vw,72px) clamp(50px,7vw,76px);
      background:linear-gradient(145deg,rgba(253,253,251,.98),rgba(249,246,238,.97));
      border-left:2px solid var(--amber-soft);
      box-shadow:0 28px 70px rgba(56,43,20,.12);
    }
    .jisou-meta,.jisou-copy,.jisou-flow,.jisou-story{width:100%;}
    .jisou-copy{margin-top:38px;}
    .jisou .big{font-size:clamp(2.25rem,6.4vw,4.2rem);}
    .jisou-story{margin-top:46px; background:transparent; backdrop-filter:none;}
    .jisou-stamp{right:30px; bottom:22px; font-size:clamp(2rem,7vw,4.3rem); opacity:.55;}
  }

  @media(max-width:620px){
    .jisou{padding-bottom:68px;}
    .jisou-visual{aspect-ratio:4/3;}
    .jisou-visual img{object-position:59% center; transform:scale(1.035);}
    .jisou-content{
      width:calc(100% - 28px);
      margin-top:-30px;
      padding:46px 24px 52px;
      box-shadow:0 18px 44px rgba(56,43,20,.1);
    }
    .jisou-meta{grid-template-columns:38px 1fr auto; font-size:.49rem; letter-spacing:.14em;}
    .jisou-meta span:last-child{font-size:0;}
    .jisou-meta span:last-child::after{content:"WEB OPS"; font-size:.49rem;}
    .jisou-copy{margin-top:34px;}
    .jisou .eyebrow{font-size:.72rem; margin-bottom:14px;}
    .jisou .big{font-size:clamp(2rem,10.2vw,2.72rem); line-height:1.38;}
    .jisou-flow{grid-template-columns:1fr 1fr; gap:22px 0; margin-top:34px; padding-top:18px;}
    .jisou-flow li:nth-child(3){padding-left:0; border-left:0;}
    .jisou-flow b{font-size:1rem;}
    .jisou-story{margin-top:38px; padding:18px 0 0 18px;}
    .jisou-lead{font-size:1rem;}
    .jisou p.body{font-size:.9rem; line-height:2.05;}
    .jisou-stamp{position:relative; right:auto; bottom:auto; margin:38px 0 -22px; align-items:flex-start; font-size:2.2rem; opacity:.45;}
  }

  /* 4つの実践力 */
  .dual{
    position:relative;
    background:
      radial-gradient(circle at 86% 12%,rgba(224,181,102,.13),transparent 29%),
      linear-gradient(180deg,#f7f6f2,#f2f0e9);
    overflow:hidden;
  }
  .dual::before{
    content:"";
    position:absolute;
    inset:0;
    background-image:
      linear-gradient(rgba(26,26,26,.035) 1px,transparent 1px),
      linear-gradient(90deg,rgba(26,26,26,.035) 1px,transparent 1px);
    background-size:72px 72px;
    mask-image:linear-gradient(180deg,rgba(0,0,0,.7),transparent 82%);
    pointer-events:none;
  }
  .dual .wrap{position:relative; z-index:2;}
  .dual-watermark{
    position:absolute;
    top:clamp(28px,4vw,64px);
    right:-.05em;
    color:rgba(26,26,26,.035);
    font-family:"Noto Sans JP",sans-serif;
    font-size:clamp(5rem,13vw,14rem);
    font-weight:300;
    line-height:.8;
    letter-spacing:-.055em;
    white-space:nowrap;
    pointer-events:none;
  }
  .dual-intro{
    display:grid;
    grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);
    align-items:end;
    gap:clamp(40px,8vw,120px);
  }
  .dual h2.sec{font-size:clamp(2.25rem,4.7vw,4.45rem); line-height:1.32;}
  .dual h2 .amber{color:var(--amber);}
  .dual-intro-copy{
    padding:0 0 12px 24px;
    border-left:1px solid var(--amber);
    color:var(--ink-soft);
    font-size:clamp(.94rem,1.15vw,1.08rem);
    font-weight:500;
    line-height:2;
  }
  .dual-visual{
    position:relative;
    margin:clamp(52px,7vw,88px) 0 0;
    aspect-ratio:2/1;
    overflow:hidden;
    background:#f4f0e8;
    clip-path:inset(0 0 0 0);
  }
  .dual-visual::after{
    content:"";
    position:absolute;
    inset:0;
    border:1px solid rgba(26,26,26,.1);
    pointer-events:none;
  }
  .dual-visual img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center;
    filter:saturate(.82) contrast(.98);
    will-change:transform,filter;
  }
  .dual-visual-veil{
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(253,253,251,.94) 0%,rgba(253,253,251,.78) 24%,rgba(253,253,251,.16) 48%,transparent 68%);
    pointer-events:none;
  }
  .dual-visual figcaption{
    position:absolute;
    left:clamp(28px,5vw,76px);
    top:50%;
    z-index:2;
    width:min(36%,450px);
    transform:translateY(-50%);
  }
  .dual-visual figcaption>span{
    display:block;
    margin-bottom:20px;
    color:var(--amber);
    font-size:.58rem;
    font-weight:700;
    letter-spacing:.2em;
  }
  .dual-visual figcaption strong{
    display:block;
    font-family:"Noto Serif JP",serif;
    font-size:clamp(1.7rem,3vw,3.25rem);
    font-weight:700;
    line-height:1.45;
    letter-spacing:.01em;
  }
  .dual-visual figcaption .dot{color:var(--amber);}
  .dual-grid{
    margin-top:clamp(34px,4vw,54px);
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1px;
    padding:1px;
    background:rgba(26,26,26,.13);
  }
  .dual-card{
    position:relative;
    min-height:390px;
    padding:clamp(34px,4vw,56px);
    display:flex;
    flex-direction:column;
    background:rgba(253,253,251,.94);
    overflow:hidden;
    transition:transform .55s cubic-bezier(.2,.8,.2,1),background .45s ease,box-shadow .55s ease;
    isolation:isolate;
  }
  .dual-card::before{
    content:attr(data-word);
    position:absolute;
    right:-.04em;
    bottom:-.18em;
    z-index:-1;
    color:rgba(200,145,46,.07);
    font-family:"Noto Sans JP",sans-serif;
    font-size:clamp(4.8rem,9vw,9.2rem);
    font-weight:300;
    line-height:1;
    letter-spacing:-.06em;
    white-space:nowrap;
    transition:transform .65s cubic-bezier(.2,.8,.2,1),color .45s ease;
  }
  .dual-card::after{
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:3px;
    background:var(--amber);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .55s cubic-bezier(.2,.8,.2,1);
  }
  .dual-card:hover{
    z-index:2;
    transform:translateY(-7px);
    background:#fffefa;
    box-shadow:0 24px 52px rgba(49,38,20,.12);
  }
  .dual-card:hover::before{transform:translateX(-.06em); color:rgba(200,145,46,.12);}
  .dual-card:hover::after{transform:scaleX(1);}
  .dual-card-meta{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    color:rgba(26,26,26,.45);
    font-size:.58rem;
    font-weight:700;
    line-height:1.2;
    letter-spacing:.18em;
  }
  .dual-no{
    color:var(--amber);
    font-family:"Noto Serif JP",serif;
    font-size:clamp(2.5rem,4.3vw,4.2rem);
    font-weight:400;
    line-height:.82;
    letter-spacing:-.06em;
  }
  .dual-card h3{
    max-width:520px;
    margin-top:clamp(46px,5vw,70px);
    font-family:"Noto Serif JP",serif;
    font-size:clamp(1.45rem,2.1vw,2.05rem);
    font-weight:700;
    line-height:1.55;
  }
  .dual-card h3 .amber{color:var(--amber);}
  .dual-card p{
    max-width:600px;
    margin-top:auto;
    padding-top:30px;
    color:var(--ink-soft);
    font-size:clamp(.9rem,1vw,.98rem);
    font-weight:500;
    line-height:2;
  }
  .dual-foundation{
    margin-top:32px;
    padding:30px 0 0;
    display:grid;
    grid-template-columns:minmax(260px,.72fr) 1.28fr;
    gap:clamp(30px,7vw,100px);
    border-top:1px solid rgba(26,26,26,.2);
  }
  .dual-foundation>div{display:flex; flex-direction:column; gap:8px;}
  .dual-foundation span{
    color:var(--amber);
    font-size:.57rem;
    font-weight:700;
    letter-spacing:.22em;
  }
  .dual-foundation strong{
    font-family:"Noto Serif JP",serif;
    font-size:clamp(1.08rem,1.45vw,1.35rem);
  }
  .dual-foundation p{color:var(--ink-soft); font-size:.88rem; font-weight:500; line-height:1.95;}

  @media(max-width:899px){
    .dual-intro{grid-template-columns:1fr; gap:34px;}
    .dual-intro-copy{max-width:680px;}
    .dual-visual{aspect-ratio:16/9;}
    .dual-visual figcaption{width:42%;}
    .dual-grid{grid-template-columns:1fr;}
    .dual-card{min-height:350px;}
    .dual-foundation{grid-template-columns:1fr; gap:20px;}
  }
  @media(max-width:560px){
    .dual-watermark{top:42px; font-size:4.7rem;}
    .dual::before{background-size:48px 48px;}
    .dual h2.sec{font-size:clamp(2rem,10vw,2.75rem);}
    .dual-intro-copy{padding-left:18px; font-size:.92rem;}
    .dual-visual{aspect-ratio:auto; background:var(--paper-pure);}
    .dual-visual img{height:auto; aspect-ratio:4/3; object-position:62% center;}
    .dual-visual-veil{display:none;}
    .dual-visual figcaption{
      position:relative;
      left:auto;
      top:auto;
      width:auto;
      padding:28px 24px 32px;
      transform:none;
      border-left:2px solid var(--amber-soft);
    }
    .dual-visual figcaption>span{margin-bottom:12px; font-size:.52rem;}
    .dual-visual figcaption strong{font-size:clamp(1.65rem,8vw,2.2rem);}
    .dual-grid{margin-top:48px;}
    .dual-card{min-height:0; padding:32px 26px 38px;}
    .dual-card h3{margin-top:38px; font-size:1.45rem;}
    .dual-card p{margin-top:26px; padding-top:0; font-size:.9rem;}
    .dual-card::before{font-size:4.6rem; bottom:-.1em;}
    .dual-foundation{margin-top:26px;}
  }

  /* FAQ：相談前の疑問を整理する編集面 */
  .faq{
    position:relative;
    padding:0 0 clamp(90px,10vw,150px);
    background:linear-gradient(180deg,var(--paper-pure),#f6f3eb);
    border-top:1px solid var(--line);
    overflow:hidden;
  }
  .faq-head{
    position:relative;
    min-height:clamp(600px,47vw,820px);
    overflow:hidden;
    isolation:isolate;
  }
  .faq-heading{
    position:relative;
    z-index:3;
    width:min(48%,720px);
    min-height:clamp(600px,47vw,820px);
    padding:clamp(82px,8vw,142px) 0 clamp(72px,8vw,128px) clamp(28px,8vw,150px);
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .faq-meta{
    width:min(100%,520px);
    margin-bottom:clamp(56px,7vw,96px);
    padding-bottom:14px;
    display:flex;
    justify-content:space-between;
    border-bottom:1px solid rgba(26,26,26,.16);
    color:rgba(26,26,26,.48);
    font-size:.56rem;
    font-weight:700;
    line-height:1;
    letter-spacing:.2em;
  }
  .faq-meta span:first-child{color:var(--amber);}
  .faq .eyebrow{margin-bottom:18px;}
  .faq h2.sec{
    font-size:clamp(2.5rem,5vw,5.15rem);
    line-height:1.28;
    letter-spacing:-.025em;
  }
  .faq h2 .dot{color:var(--amber);}
  .faq-intro{
    max-width:520px;
    margin-top:clamp(30px,4vw,48px);
    padding-left:20px;
    border-left:1px solid var(--amber);
    color:var(--ink-soft);
    font-size:clamp(.9rem,1vw,1rem);
    font-weight:500;
    line-height:2;
  }
  .faq-visual{
    position:absolute;
    inset:0;
    z-index:0;
    margin:0;
    overflow:hidden;
    background:#f5f0e8;
  }
  .faq-visual img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center;
    filter:saturate(.84) contrast(.98);
    transform:scale(1.025);
    will-change:transform,filter;
  }
  .faq-visual-wash{
    position:absolute;
    inset:0;
    background:
      linear-gradient(90deg,rgba(253,253,251,.99) 0%,rgba(253,253,251,.96) 28%,rgba(253,253,251,.68) 43%,rgba(253,253,251,.1) 64%,transparent 78%),
      linear-gradient(0deg,rgba(253,253,251,.5),transparent 36%);
    pointer-events:none;
  }
  .faq-visual figcaption{
    position:absolute;
    right:clamp(24px,4vw,72px);
    bottom:clamp(26px,4vw,62px);
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:8px;
    color:rgba(26,26,26,.45);
    text-align:right;
  }
  .faq-visual figcaption>span{font-size:.52rem; font-weight:700; letter-spacing:.2em;}
  .faq-visual figcaption strong{font-family:"Noto Serif JP",serif; font-size:clamp(1rem,1.4vw,1.35rem); font-weight:600;}
  .faq-visual figcaption .dot{color:var(--amber);}
  .faq-body{position:relative; padding:clamp(74px,8vw,118px) clamp(20px,5vw,52px) 0;}
  .faq-list-heading{
    display:flex;
    justify-content:space-between;
    padding-bottom:18px;
    border-bottom:1px solid rgba(26,26,26,.2);
    color:rgba(26,26,26,.45);
    font-size:.56rem;
    font-weight:700;
    letter-spacing:.2em;
  }
  .faq-list{
    position:relative;
    margin-top:0;
    border-bottom:1px solid rgba(26,26,26,.2);
  }
  .faq-list::before{
    content:"QUESTIONS";
    position:absolute;
    right:-.03em;
    top:-.3em;
    color:rgba(200,145,46,.045);
    font-family:"Noto Sans JP",sans-serif;
    font-size:clamp(5rem,13vw,12rem);
    font-weight:300;
    line-height:1;
    letter-spacing:-.06em;
    pointer-events:none;
    white-space:nowrap;
  }
  .faq-item{
    position:relative;
    border-top:1px solid rgba(26,26,26,.18);
    background:rgba(253,253,251,0);
    overflow:hidden;
    transition:background .45s ease,border-color .45s ease,box-shadow .45s ease;
  }
  .faq-item:first-child{border-top:0;}
  .faq-item::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:3px;
    height:100%;
    background:var(--amber);
    transform:scaleY(0);
    transform-origin:top;
    transition:transform .5s cubic-bezier(.2,.8,.2,1);
  }
  .faq-item::after{
    content:attr(data-q);
    position:absolute;
    right:72px;
    bottom:-.42em;
    z-index:0;
    color:rgba(200,145,46,.055);
    font-family:"Noto Serif JP",serif;
    font-size:clamp(5rem,10vw,9rem);
    line-height:1;
    pointer-events:none;
    opacity:0;
    transform:translateY(20px);
    transition:opacity .45s ease,transform .55s cubic-bezier(.2,.8,.2,1);
  }
  .faq-item.is-open{
    background:linear-gradient(100deg,rgba(253,253,251,.96),rgba(246,239,224,.84));
    border-color:rgba(200,145,46,.35);
    box-shadow:0 22px 56px rgba(62,48,23,.08);
  }
  .faq-item.is-open::before{transform:scaleY(1);}
  .faq-item.is-open::after{opacity:1; transform:translateY(0);}
  .faq-q{
    position:relative;
    z-index:2;
    width:100%;
    padding:clamp(26px,3.5vw,44px) clamp(16px,2.4vw,34px);
    display:grid;
    grid-template-columns:72px minmax(0,1fr) 52px;
    align-items:center;
    gap:clamp(14px,2vw,28px);
    border:0;
    background:none;
    color:var(--ink);
    text-align:left;
    cursor:pointer;
  }
  .faq-no{
    color:var(--amber);
    font-family:"Noto Sans JP",sans-serif;
    font-size:.62rem;
    font-weight:700;
    letter-spacing:.16em;
  }
  .faq-question{
    font-family:"Noto Serif JP",serif;
    font-size:clamp(1.05rem,1.8vw,1.45rem);
    font-weight:600;
    line-height:1.7;
    transition:transform .4s cubic-bezier(.2,.8,.2,1),color .35s ease;
  }
  .faq-q:hover .faq-question{transform:translateX(8px); color:#33270f;}
  .faq-q .mark{
    position:relative;
    width:46px;
    height:46px;
    display:block;
    border:1px solid rgba(26,26,26,.18);
    border-radius:50%;
    transition:background .35s ease,border-color .35s ease,transform .4s cubic-bezier(.2,.8,.2,1);
  }
  .faq-q .mark i{
    position:absolute;
    top:50%;
    left:50%;
    width:14px;
    height:1px;
    background:var(--amber);
    transform:translate(-50%,-50%);
    transition:transform .35s ease,background .35s ease;
  }
  .faq-q .mark i:nth-child(2){transform:translate(-50%,-50%) rotate(90deg);}
  .faq-q[aria-expanded="true"] .mark{background:var(--amber); border-color:var(--amber); transform:rotate(180deg);}
  .faq-q[aria-expanded="true"] .mark i{background:var(--paper-pure);}
  .faq-q[aria-expanded="true"] .mark i:nth-child(2){transform:translate(-50%,-50%) rotate(90deg) scaleX(0);}
  .faq-a{position:relative; z-index:2; overflow:hidden; height:0;}
  .faq-a .inner{
    padding:0 clamp(84px,9vw,140px) clamp(34px,4vw,52px) clamp(112px,12vw,180px);
    display:grid;
    grid-template-columns:48px minmax(0,760px);
    gap:22px;
    color:var(--ink-soft);
  }
  .faq-answer-label{
    color:var(--amber);
    font-family:"Noto Serif JP",serif;
    font-size:2.4rem;
    line-height:1;
  }
  .faq-a p{font-size:clamp(.92rem,1.05vw,1rem); font-weight:500; line-height:2.05;}

  @media(max-width:720px){
    .faq-head{min-height:0; display:flex; flex-direction:column;}
    .faq-heading{
      order:1;
      width:100%;
      min-height:0;
      padding:76px 24px 52px;
      background:var(--paper-pure);
    }
    .faq-meta{margin-bottom:48px;}
    .faq h2.sec{font-size:clamp(2.25rem,11vw,3rem); line-height:1.38;}
    .faq-intro{margin-top:28px; font-size:.9rem;}
    .faq-visual{order:2; position:relative; inset:auto; aspect-ratio:4/3;}
    .faq-visual img{object-position:62% center; transform:scale(1.03);}
    .faq-visual-wash{background:linear-gradient(0deg,rgba(253,253,251,.42),transparent 45%);}
    .faq-visual figcaption{right:18px; bottom:16px;}
    .faq-visual figcaption strong{font-size:.94rem;}
    .faq-body{padding-top:68px; padding-left:16px; padding-right:16px;}
    .faq-list-heading{padding:0 8px 14px; font-size:.5rem;}
    .faq-list::before{top:-.15em; font-size:4.6rem;}
    .faq-q{grid-template-columns:42px minmax(0,1fr) 40px; padding:26px 10px; gap:10px;}
    .faq-question{font-size:1.02rem; line-height:1.75;}
    .faq-q .mark{width:38px; height:38px;}
    .faq-a .inner{padding:0 16px 32px 52px; grid-template-columns:30px 1fr; gap:10px;}
    .faq-answer-label{font-size:1.8rem;}
    .faq-a p{font-size:.9rem;}
    .faq-item::after{right:18px; font-size:4.8rem;}
  }

  /* PROFILE：実写は控えめに、名前と思想を主役に */
  .profile{
    position:relative;
    background:
      radial-gradient(circle at 16% 24%,rgba(224,181,102,.13),transparent 28%),
      linear-gradient(145deg,#faf9f5,#f1eee6);
    border-top:1px solid rgba(26,26,26,.1);
    overflow:hidden;
  }
  .profile::before{
    content:"";
    position:absolute;
    inset:0;
    background-image:linear-gradient(90deg,rgba(26,26,26,.035) 1px,transparent 1px);
    background-size:clamp(72px,8vw,132px) 100%;
    mask-image:linear-gradient(90deg,transparent,rgba(0,0,0,.75) 20%,rgba(0,0,0,.75) 80%,transparent);
    pointer-events:none;
  }
  .profile-watermark{
    position:absolute;
    left:-.02em;
    top:.08em;
    color:rgba(26,26,26,.035);
    font-family:"Noto Sans JP",sans-serif;
    font-size:clamp(5rem,13vw,14rem);
    font-weight:300;
    line-height:.8;
    letter-spacing:-.055em;
    white-space:nowrap;
    pointer-events:none;
  }
  .profile-grid{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(250px,.7fr) minmax(0,1.3fr);
    align-items:center;
    gap:clamp(58px,10vw,150px);
  }
  .profile-photo-column{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:18px;
  }
  .profile-photo{
    position:relative;
    width:clamp(230px,20vw,310px);
    aspect-ratio:4/5;
    margin:0;
    overflow:hidden;
    background:#eee9df;
    box-shadow:0 28px 66px rgba(61,47,25,.14);
  }
  .profile-photo::after{
    content:"";
    position:absolute;
    inset:0;
    border:1px solid rgba(26,26,26,.12);
    pointer-events:none;
  }
  .profile-photo img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center;
    filter:saturate(.86) contrast(.99);
    will-change:transform,filter;
  }
  .profile-photo-veil{
    position:absolute;
    inset:0;
    z-index:2;
    background:linear-gradient(145deg,#fffefa,#eee9df);
    transform-origin:right;
    will-change:transform;
  }
  .profile-photo-meta{
    width:clamp(230px,20vw,310px);
    display:flex;
    justify-content:space-between;
    padding-top:12px;
    border-top:1px solid rgba(26,26,26,.18);
    color:rgba(26,26,26,.48);
    font-size:.54rem;
    font-weight:700;
    line-height:1;
    letter-spacing:.18em;
  }
  .profile-photo-meta span:first-child{color:var(--amber);}
  .profile-copy{max-width:820px;}
  .profile .eyebrow{margin-bottom:26px;}
  .profile-name{
    margin:0;
    font-family:"Noto Serif JP",serif;
    font-size:clamp(4rem,8.2vw,8rem);
    font-weight:500;
    line-height:.83;
    letter-spacing:-.055em;
  }
  .profile-name span{display:block; overflow:hidden; padding:.06em 0;}
  .profile-name i{display:block; font-style:normal; will-change:transform,opacity;}
  .profile-name span:last-child i{color:var(--amber);}
  .profile-role{
    margin-top:clamp(34px,4vw,52px);
    padding:18px 0 18px 22px;
    border-left:2px solid var(--amber);
    font-family:"Noto Serif JP",serif;
    font-size:clamp(1rem,1.35vw,1.2rem);
    font-weight:600;
    line-height:1.9;
  }
  .profile-role small{
    margin-left:.75em;
    color:var(--ink-soft);
    font-family:"Noto Sans JP",sans-serif;
    font-size:.64em;
    font-weight:500;
    letter-spacing:.06em;
  }
  .profile-bio{
    max-width:760px;
    margin-top:clamp(30px,4vw,48px);
    color:var(--ink-soft);
    font-size:clamp(.92rem,1.1vw,1rem);
    font-weight:500;
    line-height:2.15;
  }
  .profile-details{
    margin-top:clamp(38px,5vw,62px);
    border-top:1px solid rgba(26,26,26,.18);
  }
  .profile-details>div{
    padding:18px 0;
    display:grid;
    grid-template-columns:130px minmax(0,1fr);
    gap:24px;
    border-bottom:1px solid rgba(26,26,26,.14);
  }
  .profile-details span{
    color:var(--amber);
    font-size:.54rem;
    font-weight:700;
    letter-spacing:.18em;
  }
  .profile-details p{color:var(--ink-soft); font-size:.86rem; font-weight:500; line-height:1.8;}

  @media(max-width:780px){
    .profile-grid{grid-template-columns:1fr; gap:64px;}
    .profile-photo{width:min(64vw,260px);}
    .profile-photo-meta{width:min(64vw,260px);}
    .profile-copy{max-width:none;}
    .profile-name{font-size:clamp(3.8rem,19vw,5.8rem);}
    .profile-role small{display:block; margin-left:0; margin-top:-.25em;}
  }
  @media(max-width:480px){
    .profile-photo{width:min(68vw,244px);}
    .profile-photo-meta{width:min(68vw,244px);}
    .profile-grid{gap:56px;}
    .profile-name{font-size:clamp(3.55rem,18vw,4.7rem);}
    .profile-role{padding-left:16px; font-size:.96rem;}
    .profile-bio{font-size:.9rem;}
    .profile-details>div{grid-template-columns:1fr; gap:8px;}
  }

  /* CTA */
  .final{background:var(--ink); color:var(--paper); text-align:center;}
  .final h2{font-family:"Noto Serif JP",serif; font-weight:700; font-size:clamp(2rem,6vw,3.6rem); line-height:1.3; color:var(--paper-pure);}
  .final h2 .amber{color:var(--amber-soft);}
  .final h2 .dot{color:var(--amber-soft);}
  .final p{margin:26px auto 0; max-width:560px; color:rgba(246,244,238,.72); font-weight:500;}
  .final .cta-row{justify-content:center; margin-top:44px; display:flex; gap:16px; flex-wrap:wrap;}
  .final .btn-primary{background:var(--amber); color:var(--ink);}
  .final .btn-primary:hover{box-shadow:0 14px 34px rgba(200,145,46,.34);}
  .final .btn-ghost{border-color:rgba(255,255,255,.4); color:var(--paper);}
  .final .btn-ghost:hover{background:var(--paper); color:var(--ink); border-color:var(--paper);}

  footer{background:var(--dark); color:rgba(246,244,238,.55); padding:40px clamp(20px,5vw,52px); font-size:.82rem;}
  footer .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px;}
  footer .logo{font-family:"Noto Serif JP",serif; color:var(--paper); font-weight:700;}
  footer .logo .dot{color:var(--amber-soft);}

  .svc-service-link{
    width:max-content;
    max-width:100%;
    margin-top:18px;
    padding-bottom:5px;
    display:flex;
    align-items:center;
    gap:10px;
    border-bottom:1px solid rgba(224,181,102,.55);
    color:var(--amber-soft);
    text-decoration:none;
    font-size:.7rem;
    font-weight:700;
    letter-spacing:.08em;
    transition:gap .3s ease,color .3s ease;
  }
  .svc-service-link:hover{gap:16px;color:var(--paper-pure);}
  .svc-service-link span{font-size:.9rem;}

  /* reduced motion 尊重 */
  @media (prefers-reduced-motion: reduce){
    *{animation:none !important; transition:none !important;}
    html{scroll-behavior:auto;}
    #intro{display:none;}
    .hero .hero-video{display:none;}
    header,.menu-toggle,.reveal,.hero .hero-copy .word>span,.hero .hero-copy .sub,.hero .hero-copy .cta-row,.hero .shift .s-main>span,.hero .shift .s-sub,.hero .hero-img,.mobile-shift{opacity:1 !important; transform:none !important;}
    .hero .hero-glow{display:none;}
    .pain-illustration{opacity:1 !important; transform:none !important; filter:none !important;}
    .proof-media img{opacity:1 !important; transform:none !important; filter:none !important;}
    .proof-rule{transform:scaleY(1) !important;}
    .proof-code span,.proof-watermark,.proof-statement .eyebrow,.proof-line-sub,.proof-line-main{opacity:1 !important; transform:none !important; clip-path:none !important;}
    .svc-progress span{transform:scaleY(1) !important;}
    .svc-desc{color:rgba(246,244,238,.78) !important;}
    .jisou-visual,.jisou-visual img,.jisou-meta,.jisou .eyebrow,.jisou-line>span,.jisou-flow li,.jisou-story,.jisou-stamp{opacity:1 !important; transform:none !important; clip-path:none !important; filter:none !important;}
    .jisou-flow{--flow-progress:1 !important;}
    .dual-visual,.dual-visual img,.dual-visual figcaption>span,.dual-visual figcaption strong{opacity:1 !important; transform:none !important; clip-path:none !important; filter:none !important;}
    .faq-visual,.faq-visual img,.faq-meta,.faq-heading .eyebrow,.faq-heading h2,.faq-intro,.faq-visual figcaption,.faq-list-heading,.faq-item{opacity:1 !important; transform:none !important; clip-path:none !important; filter:none !important;}
    .profile-photo,.profile-photo img,.profile-photo-meta,.profile .eyebrow,.profile-name i,.profile-role,.profile-bio,.profile-details>div,.profile-watermark{opacity:1 !important; transform:none !important; clip-path:none !important; filter:none !important;}
    .profile-photo-veil{display:none !important;}
    .pain-veil{display:none;}
  }
