:root{--fs-min:17px;--fs-ui:15px}@media(min-width:900px){:root{--fs-min:20px;--fs-ui:16px}}

  :root{
    --gold:#b49646; --gold-d:#8f7531; --gold-l:#cdb472;
    --red:#d9080e; --ink:#000000; --sub:#000000;
    --paper:#faf8f3; --paper2:#f3eee3; --line:#e7e0d2; --white:#fff;
    --maxw:1080px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{
    font-family:Geist,system-ui,-apple-system,"Hiragino Sans","Yu Gothic UI","Yu Gothic",sans-serif;
    color:var(--ink);background:var(--white);line-height:1.85;font-size:max(16px,var(--fs-min));
    -webkit-font-smoothing:antialiased;letter-spacing:.01em;
  }
  img,svg{max-width:100%;display:block}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
  .accent{color:var(--gold-d)}
  .nb{display:inline-block}
  .prob h3,.pillar h3,.jrow h3,.ss-slide h4,.plan h4{text-wrap:balance}

  /* ───── header ───── */
  header.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);
    backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
  .nav-in{max-width:var(--maxw);margin:0 auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
  a.brand{color:inherit;text-decoration:none}
  a.brand:hover .logo{opacity:.85}
  .brand{font-weight:800;letter-spacing:.02em;font-size:24px;display:flex;align-items:center;gap:18px;line-height:1.3}
  .brand .logo{height:38px;width:auto;flex:none}
  .brand b{color:var(--ink)}
  .nav a.cta{background:var(--gold);color:#fff;text-decoration:none;padding:10px 20px;border-radius:999px;font-size:16px;font-weight:700;white-space:nowrap}
  .nav a.cta:hover{background:var(--gold-d)}

  /* ───── hero ───── */
  .hero{background:
      radial-gradient(1200px 500px at 80% -10%, rgba(180,150,70,.16), transparent 60%),
      linear-gradient(180deg,#fbf9f4 0%, #fff 100%);
    border-bottom:1px solid var(--line);overflow:hidden}
  .hero-in{max-width:var(--maxw);margin:0 auto;padding:64px 24px 58px}
  .hero-grid{display:grid;grid-template-columns:1.3fr .8fr;gap:44px;align-items:center}
  .hero-fig img{mix-blend-mode:multiply;max-height:540px;width:auto;max-width:100%;margin:0 auto}
  .eyebrow{display:inline-block;font-size:16px;font-weight:700;letter-spacing:.14em;
    color:var(--gold-d);border:1px solid var(--gold-l);border-radius:999px;padding:7px 18px;margin-bottom:26px}
  h1{font-size:clamp(36px,6vw,60px);line-height:1.26;font-weight:800;letter-spacing:.01em;text-wrap:balance}
  h1 .hl{position:relative;white-space:nowrap}
  h1 .hl::after{content:"";position:absolute;left:-2px;right:-2px;bottom:.06em;height:.34em;
    background:rgba(180,150,70,.28);z-index:-1;border-radius:3px}
  .lead{margin-top:26px;font-size:max(clamp(17px,2.2vw,20px),var(--fs-min));color:var(--sub);max-width:780px}
  .hero-cta{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap;align-items:center}
  .btn{display:inline-block;text-decoration:none;font-weight:700;border-radius:999px;padding:16px 32px;font-size:17px;transition:transform .2s ease,box-shadow .2s ease}
  .btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px -12px rgba(60,48,20,.5)}
  .btn-primary{background:var(--gold);color:#fff}
  .btn-primary:hover{background:var(--gold-d)}
  .btn-ghost{border:1.5px solid var(--gold);color:var(--gold-d);background:#fff}
  .btn-ghost:hover{background:var(--paper2)}
  .hero-note{margin-top:16px;font-size:16px;color:var(--sub)}

  /* ───── section 共通 ───── */
  section{padding:76px 0}
  section.tint{background:var(--paper)}
  section.dark{background:#221f18;color:#f4efe2}
  .sec-tag{font-size:21px;font-weight:800;letter-spacing:.1em;color:var(--gold-d);margin-bottom:16px}
  section.dark .sec-tag{color:var(--gold-l)}
  h2{font-size:clamp(28px,4.5vw,44px);line-height:1.38;font-weight:800;letter-spacing:.01em;text-wrap:balance}
  .sec-lead{margin-top:20px;color:var(--sub);max-width:780px;font-size:max(17px,var(--fs-min))}
  section.dark .sec-lead{color:#cfc7b5}

  /* ───── problem ───── */
  .prob{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;margin-top:44px}
  .prob .card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px 26px}
  .prob .q{font-size:34px;font-weight:800;color:var(--gold-l);line-height:1}
  .prob h3{margin-top:16px;font-size:20px;font-weight:700;line-height:1.5}
  .prob p{margin-top:12px;color:var(--sub);font-size:max(16px,var(--fs-min))}
  /* ───── 柱 ───── */
  .pillars{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;margin-top:48px}
  .pillars.two{grid-template-columns:1fr 1fr;max-width:880px;margin-left:auto;margin-right:auto}
  .pillar{background:#fff;border:1px solid var(--line);border-radius:14px;padding:30px 26px;text-align:center}
  .pillar .pic{display:flex;align-items:center;justify-content:center}
  .pillar .pic img{width:78%;mix-blend-mode:multiply}
  .pillar h3{margin-top:18px;font-size:21px;font-weight:800;line-height:1.5}
  .pillar p{margin-top:12px;font-size:max(16px,var(--fs-min));color:var(--sub);text-align:left}

  /* ───── 芹澤AI feat ───── */
  .feat{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-top:52px}
  .feat .badge{display:inline-block;font-size:16px;font-weight:700;letter-spacing:.06em;
    color:var(--gold-d);background:var(--paper2);border-radius:999px;padding:6px 16px}
  .feat h3{margin-top:18px;font-size:27px;line-height:1.5;font-weight:800}
  .feat p{margin-top:16px;color:var(--sub);font-size:max(16.5px,var(--fs-min))}
  .figbox{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;
    box-shadow:0 20px 48px -26px rgba(60,48,20,.35)}
  .figbox .fig-cap{margin-top:14px;font-size:16px;color:var(--sub);text-align:center}

  /* ───── journey open layout ───── */
  .journey2{margin-top:24px}
  .phase2{margin:64px 0 8px;position:relative}
  .phase2:first-child{margin-top:44px}
  .phase2 .ph-pill{display:inline-block;background:#1f1c16;color:#f4efe2;
    border-radius:999px;padding:10px 26px;font-size:max(18px,var(--fs-min));font-weight:800;letter-spacing:.05em}
  .phase2 .ph-pill small{color:var(--gold-l);margin-right:12px;letter-spacing:.12em;font-size:16px}
  .jrow{display:grid;grid-template-columns:1.12fr 1fr;gap:52px;align-items:center;padding:44px 0}
  .jrow.rev .jfig{order:-1}
  .jnum{display:flex;align-items:baseline;gap:12px}
  .jnum .en{font-size:16px;font-weight:800;letter-spacing:.18em;color:var(--gold-d)}
  .jnum .no{font-size:58px;font-weight:800;color:var(--gold);line-height:1;font-family:Georgia,"Times New Roman",serif}
  .jrow h3{margin-top:14px;font-size:25px;font-weight:800;line-height:1.5}
  .jrow p.desc{margin-top:12px;color:var(--sub);font-size:max(16.5px,var(--fs-min))}
  .jrow ul{margin-top:14px;list-style:none}
  .jrow li{position:relative;padding-left:24px;margin-top:9px;font-size:max(16px,var(--fs-min))}
  .jrow li::before{content:"";position:absolute;left:1px;top:.6em;width:9px;height:9px;border-radius:50%;background:var(--gold)}
  .jfig{margin:0}
  .jfig img{width:100%;mix-blend-mode:multiply}
  .connector{width:0;height:52px;border-left:4px dotted var(--gold-l);margin:0 auto}
  .panorama{padding:24px 0 8px}
  .panorama img{width:100%;mix-blend-mode:multiply}
  .panorama .pan-cap{text-align:center;font-size:max(17px,var(--fs-min));font-weight:700;color:var(--gold-d);margin-top:14px}

  /* にぎやかし共通枠 */
  .garnish{margin:20px 0 8px;border:1.5px dashed var(--gold-l);border-radius:16px;background:#fffdf7;padding:26px 28px}
  .garnish .g-tag{display:inline-block;font-size:16px;font-weight:800;letter-spacing:.06em;
    color:#fff;background:var(--gold);border-radius:999px;padding:5px 16px}
  .garnish .g-note{margin-top:12px;font-size:max(16px,var(--fs-min));color:var(--sub)}
  .garnish .manga-img{margin-top:16px}
  .garnish .manga-img img{width:100%;mix-blend-mode:multiply}

  /* 体験談カード */
  .t-voice{display:flex;gap:22px;align-items:flex-start;margin-top:16px;background:#fff;
    border:1px solid var(--line);border-radius:12px;padding:24px 26px}
  .t-photo{flex:none;width:88px;height:88px;border-radius:50%;border:1.5px dashed var(--gold-l);
    background:var(--paper2);display:flex;align-items:center;justify-content:center;
    font-size:max(16px,var(--fs-min));color:var(--gold-d);font-weight:700;text-align:center;line-height:1.4}
  .t-photo.has-img{border:1.5px solid var(--gold-l);overflow:hidden;padding:0;background:#eee}
  .t-photo.has-img img{width:100%;height:100%;object-fit:cover;display:block}
  .t-quote{font-size:max(16px,var(--fs-min));color:var(--ink);line-height:1.9}
  .t-who{margin-top:12px;font-size:16px;font-weight:700;color:var(--gold-d)}
  @media(max-width:540px){.t-voice{flex-direction:column;align-items:center;text-align:left}}

  /* 調査アウトプット スライドショー */
  .ssbox{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 22px 18px;position:relative}
  .ss-head{font-size:24px;font-weight:800;color:var(--gold-d);letter-spacing:.04em}
  .ss-note{font-size:16px;color:var(--sub);margin-top:4px}
  .ss-disclaimer{font-size:max(13px,var(--fs-ui));color:#666;margin-top:10px;line-height:1.7}
  .ss-viewport{margin-top:14px;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;border-radius:10px}
  .ss-viewport::-webkit-scrollbar{display:none}
  .ss-slide{flex:0 0 100%;scroll-snap-align:center;padding:22px 26px;background:var(--paper);
    border:1px solid var(--line);border-radius:10px;margin-right:14px;
    display:flex;flex-direction:column;justify-content:flex-start;gap:8px}
  .ss-slide .s-kind{align-self:flex-start;font-size:16px;font-weight:800;color:#fff;background:var(--gold);border-radius:8px;padding:2px 12px}
  .ss-slide.qual .s-kind{background:var(--gold-d)}
  .ss-slide h4{font-size:20px;font-weight:800;line-height:1.5}
  .ss-slide p{font-size:16px;color:var(--sub)}
  .ss-slide .s-shot{margin-top:12px;height:400px;border:1px solid var(--line);border-radius:8px;overflow:hidden;
    background:#fff;cursor:zoom-in;position:relative}
  .ss-slide .s-shot img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
  .ss-slide .s-shot.fit{background:#fff}
  .ss-slide .s-shot.fit img{object-fit:contain;object-position:center}
  .ss-slide .s-shot .zoom-hint{position:absolute;right:12px;bottom:12px;background:rgba(31,28,22,.78);
    color:#fff;font-size:max(16px,var(--fs-min));font-weight:700;padding:5px 16px;border-radius:999px;pointer-events:none}
  @media(max-width:540px){.ss-slide .s-shot{height:280px}}
  /* ライトボックス */
  .lightbox{position:fixed;inset:0;background:rgba(20,17,12,.88);display:none;align-items:center;
    justify-content:center;z-index:200;padding:20px;cursor:zoom-out}
  .lightbox.open{display:flex}
  .lightbox img{max-width:96vw;max-height:92vh;object-fit:contain;border-radius:8px;background:#fff}
  .ss-ctrl{margin-top:12px;display:flex;align-items:center;justify-content:center;gap:16px}
  .ss-arrow{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--gold);background:#fff;
    color:var(--gold-d);font-size:22px;font-weight:800;cursor:pointer;line-height:1}
  .ss-arrow:hover{background:var(--paper2)}
  .ss-dots{display:flex;gap:8px}
  .ss-dot{width:10px;height:10px;border-radius:50%;background:var(--line);border:none;padding:0;cursor:pointer}
  .ss-dot.on{background:var(--gold)}
  .ss-hint{margin-top:8px;text-align:center;font-size:16px;color:var(--sub)}

  /* STEP6 ギャラリー */
  .gallery3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-top:18px}
  .gallery3 a{display:block;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;
    box-shadow:0 14px 34px -20px rgba(60,48,20,.4);cursor:zoom-in}
  .gallery3 img{width:100%;height:220px;object-fit:cover;object-position:top center;display:block}
  .gallery-cap{margin-top:10px;font-size:max(13px,var(--fs-ui));color:#666;line-height:1.7}
  .photo2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
  .photo2 img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line);border-radius:10px;display:block}
  .photo2-cap{margin-top:8px;font-size:max(13px,var(--fs-ui));color:#666;line-height:1.7}
  @media(max-width:640px){.photo2{grid-template-columns:1fr}}
  @media(max-width:860px){.gallery3{grid-template-columns:1fr}}

  /* STEP8 実画面（PC+SP） */
  .shots-duo{position:relative;padding-bottom:36px;padding-right:10px}
  .shots-duo .sd-pc{border-radius:12px;overflow:hidden;border:1px solid var(--line);
    box-shadow:0 26px 60px -28px rgba(60,48,20,.5);background:#fff}
  .shots-duo .sd-pc img{width:100%;display:block}
  .shots-duo .sd-sp{position:absolute;right:-4px;bottom:0;width:30%;border-radius:18px;overflow:hidden;
    border:3px solid #221f18;box-shadow:0 24px 50px -20px rgba(60,48,20,.6);background:#fff}
  .shots-duo .sd-sp img{width:100%;display:block}

  /* ───── MemoryTraceループ図（dark） ───── */
  .loopfig{margin-top:48px;background:#2a2419;border:1px solid #3a3326;border-radius:18px;padding:36px 32px}
  .loopfig svg{width:100%;height:auto;max-width:900px;margin:0 auto}

  /* 動画枠 */
  .mt-video{margin-top:22px;border-radius:12px;overflow:hidden;border:1px solid #3a3326;background:#000;box-shadow:0 30px 70px -40px rgba(0,0,0,.8)}
  .mt-video video{width:100%;display:block;aspect-ratio:16/10}
  .mt-video-cap{margin-top:12px;font-size:max(16px,var(--fs-min));color:#cfc7b5}
  .video-ph{margin-top:16px;position:relative;border-radius:12px;overflow:hidden;background:#2a2419;
    aspect-ratio:16/9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}
  .video-ph .play{width:76px;height:76px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center}
  .video-ph .play::after{content:"";margin-left:6px;border-style:solid;border-width:14px 0 14px 22px;border-color:transparent transparent transparent #fff}
  .video-ph .vt{color:#e7dcc2;font-size:max(17px,var(--fs-min));font-weight:700;letter-spacing:.04em}

  /* ───── プログラム内容 ───── */
  .pack{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden;
    border:1px solid var(--line);font-size:max(16px,var(--fs-min));margin-top:44px}
  .pack th,.pack td{padding:16px 20px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
  .pack thead th{background:var(--paper2);font-weight:700;font-size:max(16px,var(--fs-min))}
  .pack tr:last-child td{border-bottom:none}
  .pack td.st{white-space:nowrap;font-weight:800;color:var(--gold-d)}
  .pack td.vol{color:var(--sub)}

  /* ───── 価格 ───── */
  .price-box{margin-top:32px;background:#fff;border:2px solid var(--gold);border-radius:18px;
    padding:40px 36px;text-align:center}
  .price-box .p-label{font-size:17px;font-weight:800;letter-spacing:.08em;color:var(--gold-d)}
  .price-box .p-num{margin-top:10px;font-size:clamp(34px,5vw,52px);font-weight:800;line-height:1.2}
  .price-box .p-num small{font-size:.5em;font-weight:800}
  .price-box .p-cond{margin-top:8px;font-size:16.5px;font-weight:700}
  .price-box .p-note{margin-top:16px;font-size:16px;color:var(--sub);max-width:760px;margin-left:auto;margin-right:auto;text-align:left}

  /* ───── ALCセクション ───── */
  .alc-box{margin-top:44px;background:#fff;border:1px solid var(--line);border-radius:18px;
    padding:44px 40px;box-shadow:0 30px 70px -40px rgba(60,48,20,.4)}
  .alc-box .a-eyebrow{display:inline-block;font-size:16px;font-weight:800;letter-spacing:.08em;
    color:#fff;background:var(--gold);border-radius:999px;padding:6px 18px}
  .alc-box h3{margin-top:18px;font-size:clamp(23px,3.4vw,32px);font-weight:800;line-height:1.5;text-wrap:balance}
  .alc-box p{margin-top:16px;font-size:max(16.5px,var(--fs-min));color:var(--sub);max-width:760px;text-indent:1em}
  .alc-box p.photo2-cap{text-indent:0}
  .alc-box ul{margin-top:16px;list-style:none}
  .alc-box li{position:relative;padding-left:24px;margin-top:10px;font-size:max(16px,var(--fs-min))}
  .alc-box li::before{content:"";position:absolute;left:1px;top:.6em;width:9px;height:9px;border-radius:50%;background:var(--gold)}
  .alc-cta{margin-top:26px;display:flex;gap:14px;flex-wrap:wrap;align-items:center}
  .alc-note{margin-top:12px;font-size:max(16px,var(--fs-min));color:var(--sub)}

  /* ───── CTA ───── */
  .beta{background:linear-gradient(135deg,#2a2419,#221f18);color:#f4efe2;border-radius:22px;padding:56px 46px;text-align:center;border:1px solid #3a3326}
  .beta .tag{color:var(--gold-l);font-weight:700;letter-spacing:.1em;font-size:16px}
  .beta h2{margin-top:16px;color:#fff}
  .beta p{margin-top:18px;color:#d8d0bf;max-width:660px;margin-left:auto;margin-right:auto;font-size:max(16.5px,var(--fs-min))}
  .beta .btn-primary{margin-top:32px}
  .beta .fine{margin-top:24px;font-size:16px;color:#a99f8b;max-width:700px;margin-left:auto;margin-right:auto}

  footer{background:#1a170f;color:#b7ad98;padding:44px 0;font-size:16px;text-align:center}
  footer .brand{color:#e7dcc2;font-size:18px;display:block;text-align:center}
  footer a{color:var(--gold-l)}
  .disclaimer{color:#8b8270;font-size:16px;margin-top:16px;line-height:1.7}

  @media(max-width:860px){
    .hero-grid{grid-template-columns:1fr}
    .hero-fig img{max-height:380px}
    .prob,.pillars,.pillars.two{grid-template-columns:1fr}
    .feat{grid-template-columns:1fr;gap:28px}
    .jrow{grid-template-columns:1fr;gap:24px;padding:36px 0}
    .jrow.rev .jfig{order:0}
    .shots-duo{max-width:560px}
  }
  @media(max-width:540px){
    section{padding:56px 0}
    .beta{padding:42px 24px}
    .jnum .no{font-size:44px}
    .brand{font-size:17px;gap:10px;flex-wrap:wrap}
    .brand .logo{height:22px}
    .alc-box{padding:32px 24px}
  }
  /* ───── スクロール連動アニメーション（JS有効時のみ発動・reduced-motion尊重） ───── */
  @media (prefers-reduced-motion: no-preference){
    html.jsanim .rv{opacity:0;transform:translateY(26px);transition:opacity .6s ease,transform .6s ease}
    html.jsanim .rv-l{transform:translateX(-30px)}
    html.jsanim .rv-r{transform:translateX(30px)}
    html.jsanim .rv-sc{transform:translateY(26px) scale(.96)}
    html.jsanim .rv.d1{transition-delay:.12s}
    html.jsanim .rv.d2{transition-delay:.24s}
    html.jsanim .rv.d3{transition-delay:.36s}
    html.jsanim .rv.d4{transition-delay:.48s}
    html.jsanim .rv.on{opacity:1;transform:none}
  }
