  :root{
    --navy:#0B1F3A;
    --navy-700:#142a47;
    --navy-600:#1d3458;
    --navy-200:#9ca8bb;
    --gold:#C4973A;
    --gold-soft:#D9B567;
    --gold-deep:#9c7626;
    --bg:#F7F7F5;
    --bg-warm:#EFEBE3;
    --ink:#1a1a1a;
    --ink-soft:#3a3a3a;
    --rule:#2a3a55;
    --rule-light:#D6CFC2;
    --serif-en:'Cormorant Garamond', 'Noto Serif JP', serif;
    --serif-jp:'Noto Serif JP', serif;
    --sans-jp:'Noto Sans JP', sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{
    font-family:var(--sans-jp);
    background:var(--bg);
    color:var(--ink);
    font-weight:400;
    line-height:1.8;
    -webkit-font-smoothing:antialiased;
    font-feature-settings:"palt";
  }
  img{max-width:100%;display:block}
  a{color:inherit;text-decoration:none}
  button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}

  /* ───────── shared atoms ───────── */
  .eyebrow{
    font-family:var(--serif-en);
    font-style:italic;
    font-weight:400;
    letter-spacing:.04em;
    color:var(--gold);
    font-size:14px;
  }
  .eyebrow .num{
    font-style:normal;
    font-weight:500;
    margin-right:.6em;
    border-bottom:1px solid var(--gold);
    padding-bottom:2px;
    letter-spacing:.1em;
  }
  .section-title-jp{
    font-family:var(--serif-jp);
    font-weight:500;
    color:var(--navy);
    letter-spacing:.04em;
    line-height:1.4;
  }
  .display-en{
    font-family:var(--serif-en);
    font-weight:300;
    letter-spacing:.01em;
    line-height:1;
  }
  .rule-gold{
    width:48px;
    height:1px;
    background:var(--gold);
    border:0;
  }
  .container{
    max-width:1200px;
    margin:0 auto;
    padding:0 48px;
  }

  /* ───────── top utility bar ───────── */
  .topbar{
    background:var(--navy);
    color:#cfd5e0;
    font-size:11px;
    letter-spacing:.12em;
  }
  .topbar-inner{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:8px 48px;
    max-width:1400px;
    margin:0 auto;
  }
  .topbar a:hover{color:var(--gold-soft)}

  /* ───────── header ───────── */
  header{
    background:var(--bg);
    border-bottom:1px solid rgba(11,31,58,.08);
    position:sticky;
    top:0;
    z-index:50;
    backdrop-filter:blur(8px);
    background:rgba(247,247,245,.92);
  }
  .header-inner{
    max-width:1400px;
    margin:0 auto;
    padding:18px 48px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px;
  }
  .brand{
    display:flex;
    align-items:baseline;
    gap:14px;
  }
  .brand-mark{
    font-family:var(--serif-en);
    font-weight:400;
    font-size:28px;
    color:var(--navy);
    letter-spacing:.02em;
    line-height:1;
  }
  .brand-mark .amp{color:var(--gold);font-style:italic;margin:0 .08em}
  .brand-jp{
    font-family:var(--serif-jp);
    font-size:11px;
    letter-spacing:.4em;
    color:var(--navy-600);
    padding-left:14px;
    border-left:1px solid var(--rule-light);
    line-height:1.2;
  }
  .brand-jp small{display:block;font-size:9px;letter-spacing:.3em;color:var(--navy-200);margin-top:3px;font-family:var(--sans-jp)}
  nav.primary{
    display:flex;
    gap:36px;
    font-size:13px;
    color:var(--navy-700);
    letter-spacing:.06em;
  }
  nav.primary a{position:relative;padding:4px 0;font-weight:500}
  nav.primary a::after{
    content:"";
    position:absolute;
    left:0;right:100%;
    bottom:-4px;
    height:1px;
    background:var(--gold);
    transition:right .3s ease;
  }
  nav.primary a:hover::after{right:0}
  nav.primary a .en{
    display:block;
    font-family:var(--serif-en);
    font-style:italic;
    font-size:10px;
    color:var(--gold);
    letter-spacing:.1em;
    margin-bottom:2px;
    font-weight:400;
  }
  .header-cta{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:12px 22px;
    background:var(--navy);
    color:#fff;
    font-size:12px;
    letter-spacing:.18em;
    border:1px solid var(--navy);
    transition:all .3s ease;
  }
  .header-cta::before{
    content:"";
    width:18px;height:1px;
    background:var(--gold);
    transition:width .3s ease;
  }
  .header-cta:hover{background:var(--gold);border-color:var(--gold)}
  .header-cta:hover::before{background:#fff}

  /* ───────── HERO ───────── */
  .hero{
    position:relative;
    padding:80px 0 100px;
    overflow:hidden;
  }
  .hero::before{
    content:"";
    position:absolute;
    top:0;right:0;
    width:42%;
    height:100%;
    background-color:var(--navy);
    background-image:url('hero-texture.png');
    background-size:cover;
    background-position:center;
    z-index:0;
  }
  .hero-grid{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:80px;
    max-width:1400px;
    margin:0 auto;
    padding:0 48px;
    align-items:center;
  }
  .hero-watermark{
    position:absolute;
    left:-20px;
    top:40px;
    font-family:var(--serif-en);
    font-weight:300;
    font-style:italic;
    font-size:240px;
    color:rgba(11,31,58,.05);
    line-height:.9;
    letter-spacing:-.02em;
    pointer-events:none;
    z-index:1;
    white-space:nowrap;
  }
  .hero-left{position:relative;z-index:3}
  .hero-meta{
    display:flex;
    align-items:center;
    gap:14px;
    margin-bottom:36px;
  }
  .hero-meta .dot{width:6px;height:6px;background:var(--gold);border-radius:50%}
  .hero-meta .label{
    font-family:var(--serif-en);
    font-style:italic;
    color:var(--gold-deep);
    font-size:13px;
    letter-spacing:.06em;
  }
  .hero-meta .ja{
    font-size:11px;
    letter-spacing:.32em;
    color:var(--navy-600);
    padding-left:14px;
    border-left:1px solid var(--rule-light);
  }
  h1.hero-title{
    font-family:var(--serif-jp);
    font-weight:500;
    color:var(--navy);
    font-size:54px;
    line-height:1.35;
    letter-spacing:.02em;
    margin-bottom:8px;
    text-wrap:balance;
  }
  h1.hero-title em{
    font-style:normal;
    position:relative;
    color:var(--navy);
    display:inline-block;
  }
  h1.hero-title em::after{
    content:"";
    position:absolute;
    left:-2px;right:-2px;
    bottom:-2px;
    height:8px;
    background:linear-gradient(transparent 50%, rgba(196,151,58,.28) 50%);
    z-index:-1;
  }
  .hero-sub-en{
    font-family:var(--serif-en);
    font-style:italic;
    font-weight:300;
    font-size:22px;
    color:var(--gold-deep);
    letter-spacing:.04em;
    margin-top:18px;
    margin-bottom:32px;
  }
  .hero-lede{
    font-size:15px;
    line-height:2.1;
    color:var(--ink-soft);
    max-width:480px;
    font-weight:400;
    margin-bottom:44px;
  }
  .hero-actions{
    display:flex;
    align-items:center;
    gap:28px;
    flex-wrap:wrap;
  }
  .btn-primary{
    display:inline-flex;
    align-items:center;
    gap:14px;
    padding:20px 36px;
    background:var(--navy);
    color:#fff;
    font-size:13px;
    letter-spacing:.22em;
    position:relative;
    transition:all .35s ease;
    border:1px solid var(--navy);
  }
  .btn-primary .arrow{
    font-family:var(--serif-en);
    font-size:18px;
    transition:transform .35s ease;
  }
  .btn-primary::before{
    content:"";
    position:absolute;
    inset:6px;
    border:1px solid rgba(196,151,58,.5);
    pointer-events:none;
    transition:inset .35s ease;
  }
  .btn-primary:hover::before{inset:3px;border-color:var(--gold)}
  .btn-primary:hover .arrow{transform:translateX(6px)}
  .btn-ghost{
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:var(--navy);
    font-size:12px;
    letter-spacing:.2em;
    border-bottom:1px solid var(--navy);
    padding:6px 2px;
    transition:all .25s;
  }
  .btn-ghost:hover{color:var(--gold-deep);border-color:var(--gold)}

  .hero-trust{
    margin-top:64px;
    display:flex;
    gap:56px;
    padding-top:32px;
    border-top:1px solid var(--rule-light);
  }
  .hero-trust .item{display:flex;flex-direction:column;gap:10px}
  .hero-trust .num{
    font-family:var(--sans-jp);
    font-style:normal;
    font-weight:700;
    font-size:68px;
    color:var(--gold);
    line-height:.9;
    letter-spacing:-.01em;
    text-shadow:0 1px 0 rgba(196,151,58,.18);
  }
  .hero-trust .num sup{
    font-family:var(--serif-en);
    font-style:normal;
    font-weight:600;
    font-size:22px;
    color:var(--gold-deep);
    margin-left:2px;
    vertical-align:top;
    top:.55em;
    position:relative;
    letter-spacing:.02em;
  }
  .hero-trust .num i{font-style:normal;font-weight:700;color:var(--gold)}
  .hero-trust .label{
    font-size:11px;
    letter-spacing:.2em;
    color:var(--navy);
    font-weight:600;
  }

  .hero-right{
    position:relative;
    z-index:3;
  }
  .portrait-frame{
    position:relative;
    aspect-ratio:4/5;
    background:var(--navy-700);
  }
  .portrait-frame image-slot{
    width:100%;
    height:100%;
  }
  .portrait-badge{
    position:absolute;
    top:-20px;
    left:-32px;
    background:var(--bg);
    color:var(--navy);
    padding:18px 24px;
    border:1px solid var(--gold);
    z-index:2;
  }
  .portrait-badge .top{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:12px;
    color:var(--gold-deep);
    letter-spacing:.1em;
    margin-bottom:4px;
  }
  .portrait-badge .ja{
    font-family:var(--serif-jp);
    font-size:14px;
    font-weight:500;
    letter-spacing:.1em;
  }
  .portrait-caption{
    position:absolute;
    bottom:-32px;
    right:-24px;
    background:var(--gold);
    color:var(--navy);
    padding:18px 26px;
    z-index:2;
    max-width:280px;
  }
  .portrait-caption .ja{
    font-family:var(--serif-jp);
    font-size:13px;
    font-weight:600;
    letter-spacing:.06em;
    line-height:1.6;
  }
  .portrait-caption .en{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:11px;
    margin-top:6px;
    color:var(--navy-700);
    letter-spacing:.04em;
  }

  /* ───────── section header common ───────── */
  .section{padding:140px 0}
  .section-head{
    display:grid;
    grid-template-columns:auto 1fr;
    align-items:end;
    gap:48px;
    margin-bottom:80px;
    padding-bottom:32px;
    border-bottom:1px solid var(--rule-light);
  }
  .section-head .left{display:flex;flex-direction:column;gap:14px}
  .section-head .display-en{
    font-size:96px;
    color:var(--navy);
    font-style:italic;
    font-weight:300;
  }
  .section-head .display-en .amp{color:var(--gold)}
  .section-head .section-title-jp{font-size:22px;font-weight:500}
  .section-head .lede{
    font-size:14px;
    color:var(--ink-soft);
    line-height:2;
    max-width:480px;
    justify-self:end;
    text-align:left;
  }

  /* ───────── PAIN section ───────── */
  .pain{
    background:var(--bg-warm);
    position:relative;
  }
  .pain::before{
    content:"WORRIES";
    position:absolute;
    top:48px;
    right:48px;
    font-family:var(--serif-en);
    font-style:italic;
    font-size:14px;
    letter-spacing:.4em;
    color:var(--gold-deep);
  }
  .pain-quote{
    max-width:880px;
    margin:0 auto 80px;
    text-align:center;
    position:relative;
  }
  .pain-quote .open-q{
    font-family:var(--serif-en);
    font-weight:300;
    font-size:140px;
    color:var(--gold);
    line-height:.7;
    opacity:.5;
    display:block;
    margin-bottom:-30px;
  }
  .pain-quote h2{
    font-family:var(--serif-jp);
    font-weight:500;
    color:var(--navy);
    font-size:38px;
    line-height:1.7;
    letter-spacing:.04em;
    text-wrap:balance;
  }
  .pain-quote h2 em{
    font-style:normal;
    color:var(--gold-deep);
    border-bottom:1px solid var(--gold);
    padding-bottom:4px;
  }
  .pain-list{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--rule-light);
    border:1px solid var(--rule-light);
  }
  .pain-item{
    background:var(--bg-warm);
    padding:48px 36px;
    position:relative;
  }
  .pain-item .num{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:14px;
    color:var(--gold-deep);
    letter-spacing:.1em;
    margin-bottom:24px;
    display:block;
  }
  .pain-item .voice{
    font-family:var(--serif-jp);
    font-weight:500;
    color:var(--navy);
    font-size:18px;
    line-height:1.9;
    letter-spacing:.02em;
  }
  .pain-item .voice::before{
    content:"";
    display:block;
    width:24px;
    height:1px;
    background:var(--gold);
    margin-bottom:18px;
  }
  .pain-item .meta{
    margin-top:24px;
    font-size:11px;
    letter-spacing:.2em;
    color:var(--navy-600);
  }

  .pain-answer{
    margin-top:80px;
    text-align:center;
  }
  .pain-answer .lead{
    font-family:var(--serif-en);
    font-style:italic;
    font-weight:400;
    color:var(--gold-deep);
    font-size:16px;
    letter-spacing:.1em;
    margin-bottom:18px;
  }
  .pain-answer .main{
    font-family:var(--serif-jp);
    font-weight:500;
    color:var(--navy);
    font-size:28px;
    line-height:1.7;
    letter-spacing:.04em;
  }

  /* ───────── ABOUT section ───────── */
  .about{
    background:var(--bg);
    position:relative;
    overflow:hidden;
  }
  .about-grid{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:88px;
    align-items:start;
  }
  .about-portrait{
    position:relative;
    aspect-ratio:3/4;
  }
  .about-portrait image-slot{width:100%;height:100%}
  .about-portrait::before{
    content:"";
    position:absolute;
    top:24px;left:-24px;
    width:100%;height:100%;
    border:1px solid var(--gold);
    z-index:0;
  }
  .about-portrait .stamp{
    position:absolute;
    bottom:24px;right:24px;
    background:rgba(11,31,58,.92);
    color:#fff;
    padding:20px 24px;
    z-index:2;
    backdrop-filter:blur(6px);
  }
  .about-portrait .stamp .num{
    font-family:var(--serif-en);
    font-style:normal;
    font-weight:700;
    font-size:42px;
    color:var(--gold);
    line-height:1;
    letter-spacing:-.01em;
  }
  .about-portrait .stamp .label{
    font-size:10px;
    letter-spacing:.24em;
    margin-top:6px;
    color:#cfd5e0;
  }
  .about-body .eyebrow{margin-bottom:24px;display:block}
  .about-body h2{
    font-family:var(--serif-jp);
    font-weight:500;
    color:var(--navy);
    font-size:36px;
    line-height:1.6;
    letter-spacing:.04em;
    margin-bottom:14px;
  }
  .about-body .name-line{
    display:flex;
    align-items:baseline;
    gap:18px;
    margin-bottom:36px;
    padding-bottom:28px;
    border-bottom:1px solid var(--rule-light);
  }
  .about-body .name-en{
    font-family:var(--serif-en);
    font-style:italic;
    font-weight:300;
    font-size:36px;
    color:var(--navy);
    letter-spacing:.02em;
  }
  .about-body .name-jp{
    font-family:var(--serif-jp);
    font-size:14px;
    letter-spacing:.4em;
    color:var(--navy-600);
  }
  .about-body p{
    font-size:14.5px;
    line-height:2.1;
    color:var(--ink-soft);
    margin-bottom:18px;
  }
  .about-body p strong{
    color:var(--navy);
    font-weight:500;
    background:linear-gradient(transparent 65%, rgba(196,151,58,.18) 65%);
    padding:0 2px;
  }
  .credentials{
    margin-top:48px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0;
    border-top:1px solid var(--rule-light);
    border-left:1px solid var(--rule-light);
  }
  .cred{
    padding:24px 28px;
    border-right:1px solid var(--rule-light);
    border-bottom:1px solid var(--rule-light);
    display:flex;
    flex-direction:column;
    gap:6px;
  }
  .cred .en{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:13px;
    color:var(--gold-deep);
    letter-spacing:.08em;
  }
  .cred .jp{
    font-family:var(--serif-jp);
    font-weight:500;
    color:var(--navy);
    font-size:15px;
    letter-spacing:.04em;
  }

  /* ───────── TOPICS / 教育資金 ───────── */
  .topics{
    background:var(--navy);
    color:#e6e8ee;
    position:relative;
    overflow:hidden;
  }
  .topics::before{
    content:"FOR YOUR FAMILY";
    position:absolute;
    bottom:48px;
    left:-20px;
    font-family:var(--serif-en);
    font-style:italic;
    font-weight:300;
    font-size:180px;
    color:rgba(196,151,58,.06);
    letter-spacing:-.02em;
    line-height:1;
    pointer-events:none;
  }
  .topics .section-head{border-color:rgba(214,207,194,.18)}
  .topics .section-head .display-en{color:#fff}
  .topics .section-head .section-title-jp{color:#fff}
  .topics .section-head .lede{color:#b9c2d1}
  .topics .eyebrow{color:var(--gold-soft)}

  .topics-feature{
    display:grid;
    grid-template-columns:1.2fr 1fr;
    gap:0;
    margin-bottom:80px;
    border:1px solid rgba(196,151,58,.4);
    position:relative;
  }
  .topics-feature .left{
    padding:64px 56px;
    border-right:1px solid rgba(196,151,58,.3);
    position:relative;
  }
  .topics-feature .left .tag{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-family:var(--serif-en);
    font-style:italic;
    color:var(--gold-soft);
    font-size:13px;
    letter-spacing:.16em;
    margin-bottom:24px;
  }
  .topics-feature .left .tag::before{content:"";width:24px;height:1px;background:var(--gold)}
  .topics-feature h3{
    font-family:var(--serif-jp);
    font-weight:500;
    font-size:42px;
    color:#fff;
    line-height:1.5;
    letter-spacing:.03em;
    margin-bottom:24px;
    text-wrap:balance;
  }
  .topics-feature h3 em{
    font-style:normal;
    color:var(--gold-soft);
  }
  .topics-feature .left p{
    font-size:14.5px;
    line-height:2.1;
    color:#c8d0de;
    max-width:440px;
  }
  .topics-feature .stats{
    display:flex;
    gap:56px;
    margin-top:48px;
    padding-top:36px;
    border-top:1px solid rgba(214,207,194,.15);
  }
  .topics-feature .stats .stat .num{
    font-family:var(--sans-jp);
    font-style:normal;
    font-weight:700;
    font-size:84px;
    color:var(--gold);
    letter-spacing:-.01em;
    line-height:.9;
    text-shadow:0 0 32px rgba(196,151,58,.25);
  }
  .topics-feature .stats .stat .num small{
    font-family:var(--serif-jp);
    font-size:20px;
    font-weight:500;
    margin-left:6px;
    color:var(--gold-soft);
    letter-spacing:.04em;
  }
  .topics-feature .stats .stat .label{
    margin-top:14px;
    font-size:11px;
    letter-spacing:.22em;
    color:#fff;
    font-weight:600;
  }

  .topics-feature .right{
    background:rgba(196,151,58,.04);
    padding:48px 48px;
  }
  .timeline-title{
    font-family:var(--serif-en);
    font-style:italic;
    color:var(--gold-soft);
    font-size:13px;
    letter-spacing:.18em;
    margin-bottom:28px;
    padding-bottom:14px;
    border-bottom:1px solid rgba(196,151,58,.3);
  }
  .timeline-row{
    display:grid;
    grid-template-columns:80px 1fr auto;
    align-items:baseline;
    gap:18px;
    padding:14px 0;
    border-bottom:1px dashed rgba(214,207,194,.15);
  }
  .timeline-row:last-child{border-bottom:none}
  .timeline-row .age{
    font-family:var(--serif-en);
    font-style:normal;
    font-weight:700;
    color:var(--gold);
    font-size:22px;
    letter-spacing:.02em;
  }
  .timeline-row .age small{font-style:normal;font-weight:500;font-size:10px;letter-spacing:.2em;color:#a4afc1;display:block;margin-top:2px;font-family:var(--sans-jp)}
  .timeline-row .stage{
    font-family:var(--serif-jp);
    font-size:14px;
    color:#e6e8ee;
    letter-spacing:.04em;
  }
  .timeline-row .cost{
    font-family:var(--sans-jp);
    font-style:normal;
    font-weight:700;
    font-size:22px;
    color:var(--gold);
    letter-spacing:.02em;
  }
  .timeline-row .cost small{font-family:var(--serif-jp);font-size:11px;font-weight:500;color:var(--gold-soft);margin-left:3px}
  .timeline-total{
    margin-top:24px;
    padding-top:20px;
    border-top:1px solid var(--gold);
    display:flex;
    justify-content:space-between;
    align-items:baseline;
  }
  .timeline-total .label{font-family:var(--serif-jp);font-size:13px;letter-spacing:.16em;color:#fff}
  .timeline-total .total{
    font-family:var(--sans-jp);
    font-style:normal;
    font-weight:700;
    font-size:48px;
    color:var(--gold);
    letter-spacing:-.01em;
    line-height:1;
  }
  .timeline-total .total small{font-family:var(--serif-jp);font-weight:500;font-size:16px;color:var(--gold-soft);margin-left:6px}
  .timeline-foot{
    margin-top:14px;
    font-size:10px;
    letter-spacing:.1em;
    color:#94a0b4;
    line-height:1.8;
  }

  .topic-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:32px;
  }
  .topic-card{
    padding:36px 28px;
    border:1px solid rgba(214,207,194,.18);
    transition:all .35s;
    position:relative;
  }
  .topic-card:hover{border-color:var(--gold);background:rgba(196,151,58,.04)}
  .topic-icon{
    width:52px;
    height:52px;
    margin-bottom:24px;
    opacity:.9;
  }
  .topic-icon svg{width:100%;height:100%}
  .topic-card:hover .topic-icon{opacity:1}
  .topic-card .num{
    font-family:var(--serif-en);
    font-style:italic;
    color:var(--gold-soft);
    font-size:12px;
    letter-spacing:.16em;
    margin-bottom:20px;
    display:block;
  }
  .topic-card h4{
    font-family:var(--serif-jp);
    font-weight:500;
    color:#fff;
    font-size:18px;
    line-height:1.7;
    margin-bottom:14px;
    letter-spacing:.04em;
  }
  .topic-card .en{
    font-family:var(--serif-en);
    font-style:italic;
    color:var(--gold-soft);
    font-size:12px;
    letter-spacing:.08em;
    margin-bottom:16px;
    display:block;
  }
  .topic-card p{
    font-size:12.5px;
    color:#b9c2d1;
    line-height:1.9;
  }

  /* ───────── PROMISE / 5 promises ───────── */
  .promise{background:var(--bg)}
  .promise-list{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:0;
    border-top:1px solid var(--rule-light);
    border-left:1px solid var(--rule-light);
  }
  .promise-item{
    padding:48px 28px;
    border-right:1px solid var(--rule-light);
    border-bottom:1px solid var(--rule-light);
    position:relative;
    transition:background .35s;
  }
  .promise-item:hover{background:#fff}
  .promise-item .num{
    font-family:var(--serif-en);
    font-style:normal;
    font-weight:700;
    font-size:60px;
    color:var(--gold);
    line-height:.9;
    letter-spacing:-.01em;
    margin-bottom:32px;
    display:block;
  }
  .promise-item .num::after{
    content:"";
    display:block;
    width:32px;
    height:1px;
    background:var(--gold);
    margin-top:14px;
  }
  .promise-item h4{
    font-family:var(--serif-jp);
    font-weight:500;
    color:var(--navy);
    font-size:17px;
    line-height:1.7;
    margin-bottom:16px;
    letter-spacing:.04em;
    text-wrap:balance;
  }
  .promise-item p{
    font-size:12.5px;
    color:var(--ink-soft);
    line-height:1.95;
  }

  /* ───────── PROCESS ───────── */
  .process{background:var(--bg-warm)}
  .process-list{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:48px;
    position:relative;
  }
  .process-list::before{
    content:"";
    position:absolute;
    top:60px;
    left:6%;
    right:6%;
    height:1px;
    background:repeating-linear-gradient(to right, var(--gold) 0 4px, transparent 4px 10px);
    z-index:0;
  }
  .process-item{position:relative;z-index:1}
  .process-item .step-mark{
    width:120px;
    height:120px;
    border:1px solid var(--gold);
    background:var(--bg-warm);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    margin-bottom:32px;
    transition:all .35s;
  }
  .process-item:hover .step-mark{background:var(--navy)}
  .process-item:hover .step-mark .step-en,
  .process-item:hover .step-mark .step-num{color:var(--gold-soft)}
  .process-item .step-en{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:11px;
    color:var(--gold-deep);
    letter-spacing:.18em;
    margin-bottom:6px;
  }
  .process-item .step-num{
    font-family:var(--serif-en);
    font-style:normal;
    font-weight:700;
    font-size:40px;
    color:var(--gold);
    line-height:1;
    letter-spacing:-.01em;
  }
  .process-item h4{
    font-family:var(--serif-jp);
    font-weight:600;
    color:var(--navy);
    font-size:20px;
    line-height:1.6;
    margin-bottom:12px;
    letter-spacing:.04em;
  }
  .process-item .duration{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:12px;
    color:var(--gold-deep);
    letter-spacing:.06em;
    margin-bottom:14px;
  }
  .process-item p{
    font-size:13px;
    color:var(--ink-soft);
    line-height:1.95;
  }

  /* ───────── VOICE / testimonials ───────── */
  .voice{background:var(--bg)}
  .voice-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:36px;
  }
  .voice-card{
    background:#fff;
    padding:44px 36px 36px;
    border:1px solid var(--rule-light);
    position:relative;
  }
  .voice-card::before{
    content:"\201C";
    position:absolute;
    top:14px;right:24px;
    font-family:var(--serif-en);
    font-size:96px;
    color:var(--gold);
    opacity:.25;
    line-height:1;
  }
  .voice-card .age-band{
    font-family:var(--serif-en);
    font-style:italic;
    color:var(--gold-deep);
    font-size:13px;
    letter-spacing:.08em;
    margin-bottom:10px;
  }
  .voice-card .who{
    font-family:var(--serif-jp);
    font-weight:500;
    color:var(--navy);
    font-size:15px;
    letter-spacing:.04em;
    margin-bottom:24px;
    padding-bottom:18px;
    border-bottom:1px solid var(--rule-light);
  }
  .voice-card h5{
    font-family:var(--serif-jp);
    font-weight:500;
    color:var(--navy);
    font-size:18px;
    line-height:1.7;
    margin-bottom:18px;
    letter-spacing:.04em;
    text-wrap:balance;
  }
  .voice-card p{
    font-size:13px;
    color:var(--ink-soft);
    line-height:1.95;
  }
  .voice-card .rating{
    margin-top:24px;
    padding-top:20px;
    border-top:1px dashed var(--rule-light);
    display:flex;
    justify-content:space-between;
    align-items:center;
  }
  .voice-card .rating .stars{color:var(--gold);letter-spacing:.2em;font-size:14px}
  .voice-card .rating .date{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:11px;
    color:var(--navy-200);
    letter-spacing:.1em;
  }

  /* ───────── PRICE ───────── */
  .price{
    background:var(--bg-warm);
    position:relative;
  }
  .price-card{
    max-width:960px;
    margin:0 auto;
    background:#fff;
    border:1px solid var(--gold);
    padding:72px 80px;
    position:relative;
  }
  .price-card::before{
    content:"";
    position:absolute;
    inset:8px;
    border:1px solid rgba(196,151,58,.3);
    pointer-events:none;
  }
  .price-card .ribbon{
    position:absolute;
    top:-1px;left:48px;
    background:var(--navy);
    color:var(--gold-soft);
    padding:10px 22px;
    font-family:var(--serif-en);
    font-style:italic;
    font-size:13px;
    letter-spacing:.18em;
  }
  .price-card .ribbon::after{
    content:"";
    position:absolute;
    top:100%;left:0;right:0;
    height:8px;
    background:var(--navy);
    clip-path:polygon(0 0, 100% 0, 50% 100%);
  }
  .price-head{
    text-align:center;
    margin-bottom:48px;
    padding-bottom:36px;
    border-bottom:1px solid var(--rule-light);
  }
  .price-head .eyebrow{display:block;margin-bottom:14px}
  .price-head h3{
    font-family:var(--serif-jp);
    font-weight:500;
    color:var(--navy);
    font-size:32px;
    line-height:1.6;
    letter-spacing:.04em;
    margin-bottom:18px;
  }
  .price-amount{
    display:flex;
    align-items:baseline;
    justify-content:center;
    gap:18px;
    margin-top:24px;
  }
  .price-amount .strike{
    font-family:var(--serif-en);
    font-style:italic;
    color:var(--navy-200);
    font-size:24px;
    text-decoration:line-through;
    text-decoration-color:var(--gold);
  }
  .price-amount .free{
    font-family:var(--sans-jp);
    font-style:normal;
    font-weight:700;
    font-size:108px;
    color:var(--gold);
    line-height:.9;
    letter-spacing:-.02em;
  }
  .price-amount .free .yen{
    font-family:var(--serif-jp);
    font-style:normal;
    font-size:32px;
    margin-left:6px;
    color:var(--gold-deep);
    font-weight:500;
    vertical-align:baseline;
  }
  .price-amount .free .star{
    font-style:normal;
    font-size:18px;
    color:var(--gold);
    vertical-align:super;
    margin-left:4px;
  }
  .price-amount .ja{
    font-family:var(--serif-jp);
    font-size:13px;
    color:var(--navy-600);
    letter-spacing:.2em;
    padding-bottom:8px;
  }
  .price-features{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:18px 48px;
    margin-bottom:48px;
  }
  .price-features li{
    list-style:none;
    display:grid;
    grid-template-columns:auto 1fr;
    gap:14px;
    align-items:start;
    font-size:14px;
    color:var(--ink-soft);
    line-height:1.8;
  }
  .price-features li::before{
    content:"";
    width:18px;height:18px;
    background:var(--navy);
    color:var(--gold-soft);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:11px;
    margin-top:4px;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23C4973A' stroke-width='1.5'><path d='M2 6.5l2.5 2.5L10 3.5'/></svg>");
    background-repeat:no-repeat;
    background-position:center;
    background-size:12px;
  }
  .price-cta{text-align:center}
  .price-note{
    margin-top:24px;
    font-size:11px;
    color:var(--navy-200);
    letter-spacing:.06em;
    line-height:1.8;
  }

  /* ───────── FAQ ───────── */
  .faq{background:var(--bg)}
  .faq-list{max-width:880px;margin:0 auto}
  .faq-item{
    border-bottom:1px solid var(--rule-light);
  }
  .faq-q{
    width:100%;
    padding:28px 0;
    display:grid;
    grid-template-columns:auto 1fr auto;
    gap:24px;
    align-items:center;
    text-align:left;
    font-family:var(--serif-jp);
    font-weight:500;
    color:var(--navy);
    font-size:17px;
    letter-spacing:.03em;
    line-height:1.6;
  }
  .faq-q .marker{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:24px;
    color:var(--gold);
    letter-spacing:.02em;
  }
  .faq-q .toggle{
    width:32px;height:32px;
    border:1px solid var(--gold);
    border-radius:50%;
    position:relative;
    transition:all .35s;
  }
  .faq-q .toggle::before,
  .faq-q .toggle::after{
    content:"";
    position:absolute;
    background:var(--gold);
    top:50%;left:50%;
  }
  .faq-q .toggle::before{width:12px;height:1px;transform:translate(-50%,-50%)}
  .faq-q .toggle::after{width:1px;height:12px;transform:translate(-50%,-50%);transition:transform .35s}
  .faq-item[open] .faq-q .toggle{background:var(--navy);border-color:var(--navy)}
  .faq-item[open] .faq-q .toggle::before{background:#fff}
  .faq-item[open] .faq-q .toggle::after{transform:translate(-50%,-50%) rotate(90deg)}
  .faq-a{
    padding:0 0 36px 50px;
    display:grid;
    grid-template-columns:auto 1fr;
    gap:24px;
    align-items:start;
  }
  .faq-a .marker{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:24px;
    color:var(--gold-deep);
    letter-spacing:.02em;
  }
  .faq-a p{
    font-size:14px;
    color:var(--ink-soft);
    line-height:2;
  }
  details > summary{list-style:none;cursor:pointer}
  details > summary::-webkit-details-marker{display:none}

  /* ───────── CTA / form ───────── */
  .cta{
    background:var(--navy);
    color:#fff;
    position:relative;
    overflow:hidden;
  }
  .cta::before{
    content:"Start now.";
    position:absolute;
    top:60px;right:-40px;
    font-family:var(--serif-en);
    font-style:italic;
    font-weight:300;
    font-size:280px;
    color:rgba(196,151,58,.06);
    letter-spacing:-.02em;
    line-height:.9;
    pointer-events:none;
  }
  .cta-grid{
    display:grid;
    grid-template-columns:1fr 1.05fr;
    gap:80px;
    align-items:start;
    position:relative;
    z-index:1;
  }
  .cta .eyebrow{color:var(--gold-soft)}
  .cta h2{
    font-family:var(--serif-jp);
    font-weight:500;
    color:#fff;
    font-size:44px;
    line-height:1.55;
    letter-spacing:.04em;
    margin:18px 0 24px;
    text-wrap:balance;
  }
  .cta h2 em{font-style:normal;color:var(--gold-soft)}
  .cta-lede{
    font-size:14px;
    line-height:2.1;
    color:#c8d0de;
    margin-bottom:40px;
    max-width:440px;
  }
  .cta-bullets{
    display:flex;
    flex-direction:column;
    gap:14px;
    padding:32px 0;
    border-top:1px solid rgba(214,207,194,.18);
    border-bottom:1px solid rgba(214,207,194,.18);
  }
  .cta-bullets li{
    list-style:none;
    display:grid;
    grid-template-columns:auto 1fr;
    gap:18px;
    align-items:center;
    font-family:var(--serif-jp);
    font-weight:400;
    font-size:15px;
    color:#e6e8ee;
    letter-spacing:.04em;
  }
  .cta-bullets li .num{
    font-family:var(--serif-en);
    font-style:italic;
    color:var(--gold-soft);
    font-size:13px;
    letter-spacing:.1em;
    border-right:1px solid var(--gold);
    padding-right:18px;
  }
  .cta-contact{
    margin-top:40px;
    display:flex;
    gap:32px;
    flex-wrap:wrap;
  }
  .cta-contact .item .en{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:11px;
    color:var(--gold-soft);
    letter-spacing:.16em;
    margin-bottom:4px;
  }
  .cta-contact .item .val{
    font-family:var(--serif-en);
    font-weight:400;
    font-size:22px;
    color:#fff;
    letter-spacing:.04em;
  }

  .form-card{
    background:rgba(255,255,255,.04);
    border:1px solid rgba(196,151,58,.4);
    padding:48px;
    position:relative;
  }
  .form-card::before{
    content:"";
    position:absolute;
    inset:8px;
    border:1px solid rgba(196,151,58,.15);
    pointer-events:none;
  }
  .form-head{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    margin-bottom:36px;
    padding-bottom:20px;
    border-bottom:1px solid rgba(196,151,58,.3);
  }
  .form-head .title{
    font-family:var(--serif-jp);
    font-weight:500;
    color:#fff;
    font-size:18px;
    letter-spacing:.14em;
  }
  .form-head .num{
    font-family:var(--serif-en);
    font-style:italic;
    color:var(--gold-soft);
    font-size:12px;
    letter-spacing:.16em;
  }
  .field{margin-bottom:24px}
  .field label{
    display:flex;
    align-items:center;
    gap:10px;
    font-size:12px;
    letter-spacing:.16em;
    color:#c8d0de;
    margin-bottom:12px;
  }
  .field label .req{
    font-family:var(--serif-en);
    font-style:italic;
    font-size:10px;
    color:var(--gold-soft);
    letter-spacing:.08em;
    padding:2px 8px;
    border:1px solid var(--gold);
  }
  .field input,
  .field select,
  .field textarea{
    width:100%;
    padding:14px 0;
    background:transparent;
    border:none;
    border-bottom:1px solid rgba(214,207,194,.3);
    color:#fff;
    font-family:var(--sans-jp);
    font-size:14px;
    letter-spacing:.04em;
    transition:border-color .25s;
    outline:none;
  }
  .field input:focus,
  .field select:focus,
  .field textarea:focus{border-color:var(--gold)}
  .field select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6' fill='none' stroke='%23C4973A' stroke-width='1.2'><path d='M1 1l4 4 4-4'/></svg>");background-repeat:no-repeat;background-position:right 8px center;background-size:12px;padding-right:24px}
  .field textarea{resize:vertical;min-height:90px}
  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}
  .check-row{
    display:flex;
    gap:18px;
    flex-wrap:wrap;
  }
  .check-row label{
    display:flex;
    align-items:center;
    gap:8px;
    padding:10px 16px;
    border:1px solid rgba(214,207,194,.3);
    font-size:12px;
    letter-spacing:.06em;
    color:#e6e8ee;
    cursor:pointer;
    transition:all .25s;
    margin:0;
  }
  .check-row label:hover{border-color:var(--gold)}
  .check-row input[type=radio]{
    appearance:none;
    width:10px;height:10px;
    border:1px solid var(--gold);
    border-radius:50%;
    margin:0;
  }
  .check-row input[type=radio]:checked{background:var(--gold);box-shadow:inset 0 0 0 2px var(--navy)}
  .submit-cta{
    width:100%;
    padding:22px;
    background:var(--gold);
    color:var(--navy);
    font-family:var(--serif-jp);
    font-weight:600;
    font-size:14px;
    letter-spacing:.3em;
    border:1px solid var(--gold);
    margin-top:16px;
    cursor:pointer;
    transition:all .35s;
    position:relative;
  }
  .submit-cta:hover{background:transparent;color:var(--gold-soft)}
  .form-foot{
    margin-top:18px;
    font-size:10px;
    letter-spacing:.06em;
    color:#94a0b4;
    line-height:1.8;
    text-align:center;
  }

  /* ───────── footer ───────── */
  footer{
    background:#06152a;
    color:#94a0b4;
    padding:72px 0 32px;
  }
  .footer-grid{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr 1fr;
    gap:64px;
    margin-bottom:48px;
    padding-bottom:48px;
    border-bottom:1px solid rgba(214,207,194,.12);
  }
  footer .brand-mark{color:#fff}
  footer .brand-jp{color:#cfd5e0;border-color:rgba(214,207,194,.2)}
  footer .brand-jp small{color:#94a0b4}
  footer .blurb{
    margin-top:24px;
    font-size:12.5px;
    line-height:2;
    color:#a4afc1;
    max-width:340px;
  }
  footer h6{
    font-family:var(--serif-en);
    font-style:italic;
    font-weight:400;
    color:var(--gold-soft);
    font-size:13px;
    letter-spacing:.16em;
    margin-bottom:20px;
    padding-bottom:12px;
    border-bottom:1px solid rgba(196,151,58,.3);
  }
  footer ul{list-style:none;display:flex;flex-direction:column;gap:10px}
  footer ul a{font-size:12.5px;color:#cfd5e0;letter-spacing:.04em;transition:color .25s}
  footer ul a:hover{color:var(--gold-soft)}
  .footer-bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-size:11px;
    letter-spacing:.16em;
    color:#7c8699;
  }
  .footer-bottom .made{
    font-family:var(--serif-en);
    font-style:italic;
    color:var(--gold-deep);
    letter-spacing:.06em;
  }

  /* responsive */
  @media (max-width:1024px){
    .container{padding:0 32px}
    .hero-grid{grid-template-columns:1fr;gap:60px;padding:0 32px}
    .hero::before{display:none}
    h1.hero-title{font-size:42px}
    .section{padding:96px 0}
    .section-head{grid-template-columns:1fr;gap:24px}
    .section-head .display-en{font-size:64px}
    .about-grid{grid-template-columns:1fr;gap:48px}
    .topics-feature{grid-template-columns:1fr}
    .topic-grid{grid-template-columns:repeat(2,1fr)}
    .promise-list{grid-template-columns:repeat(2,1fr)}
    .process-list{grid-template-columns:repeat(2,1fr);gap:36px}
    .process-list::before{display:none}
    .voice-grid{grid-template-columns:1fr}
    .cta-grid{grid-template-columns:1fr;gap:48px}
    .pain-list{grid-template-columns:1fr}
    .pain-quote h2{font-size:28px}
    .footer-grid{grid-template-columns:1fr 1fr;gap:40px}
    nav.primary{display:none}
    .price-card{padding:48px 32px}
    .price-features{grid-template-columns:1fr}
    .price-amount .free{font-size:72px}
  }
  @media (max-width:640px){
    .container{padding:0 22px}
    .topbar-inner{padding:8px 22px;font-size:10px}
    .header-inner{padding:14px 22px;gap:12px}
    .brand-jp{display:none}
    .header-cta span{display:none}
    .hero-trust{gap:32px}
    .hero-trust .num{font-size:48px}
    .topics-feature .stats{gap:32px;flex-wrap:wrap}
    .topics-feature .stats .stat .num{font-size:56px}
    h1.hero-title{font-size:32px}
    .hero-sub-en{font-size:18px}
    .hero-trust{gap:24px;flex-wrap:wrap}
    .pain-quote h2{font-size:22px}
    .pain-quote .open-q{font-size:96px}
    .about-body h2{font-size:26px}
    .topics-feature h3{font-size:28px}
    .topics-feature .left,.topics-feature .right{padding:36px 28px}
    .topic-grid{grid-template-columns:1fr}
    .promise-list{grid-template-columns:1fr}
    .process-list{grid-template-columns:1fr}
    .cta h2{font-size:30px}
    .form-card{padding:32px 22px}
    .field-row{grid-template-columns:1fr}
    .footer-grid{grid-template-columns:1fr}
    .price-amount{flex-wrap:wrap}
    .price-amount .free{font-size:56px}
  }

/* ───────── page-hero (inner pages) ───────── */
.page-hero {
  background: var(--navy);
  padding: 80px 0 64px;
  position: relative;
  overflow: hidden;
}
.page-hero::before {
  content: attr(data-watermark);
  position: absolute;
  top: 50%;
  left: 48px;
  transform: translateY(-50%);
  font-family: var(--serif-en);
  font-style: italic;
  font-weight: 300;
  font-size: 200px;
  color: rgba(196,151,58,.05);
  letter-spacing: -.02em;
  line-height: 1;
  pointer-events: none;
  white-space: nowrap;
}
.page-hero-inner {
  position: relative;
  z-index: 1;
}
.page-hero .breadcrumb {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  letter-spacing: .14em;
  color: #7c8699;
  margin-bottom: 24px;
}
.page-hero .breadcrumb a { color: #7c8699; transition: color .25s; }
.page-hero .breadcrumb a:hover { color: var(--gold-soft); }
.page-hero .breadcrumb .sep { color: var(--gold); }
.page-hero h1 {
  font-family: var(--serif-jp);
  font-weight: 500;
  color: #fff;
  font-size: 48px;
  line-height: 1.35;
  letter-spacing: .03em;
  margin: 12px 0 16px;
}
.page-hero .sub-en {
  font-family: var(--serif-en);
  font-style: italic;
  font-weight: 300;
  font-size: 20px;
  color: var(--gold-soft);
  letter-spacing: .04em;
}
nav.primary a.active { color: var(--gold-deep); }
nav.primary a.active::after { right: 0; }

/* mini-cta strip on index */
.mini-cta {
  background: var(--navy);
  padding: 80px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.mini-cta::before {
  content: "Free.";
  position: absolute;
  top: 50%;left: 50%;
  transform: translate(-50%,-50%);
  font-family: var(--serif-en);
  font-style: italic;
  font-weight: 300;
  font-size: 300px;
  color: rgba(196,151,58,.04);
  letter-spacing: -.02em;
  line-height: 1;
  pointer-events: none;
  white-space: nowrap;
}
.mini-cta p {
  font-family: var(--serif-jp);
  font-weight: 500;
  color: #fff;
  font-size: 28px;
  line-height: 1.7;
  letter-spacing: .04em;
  margin-bottom: 36px;
  position: relative;
}
.mini-cta p em { font-style: normal; color: var(--gold-soft); }

/* ───────── LINE CTA (contact page) ───────── */
.line-cta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}
.cta-h2 {
  font-family: var(--serif-jp);
  font-weight: 500;
  color: #fff;
  font-size: 40px;
  line-height: 1.55;
  letter-spacing: .04em;
  margin: 18px 0 24px;
  text-wrap: balance;
}
.cta-h2 em { font-style: normal; color: var(--gold-soft); }

.line-card {
  position: relative;
}
.line-card-inner {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(196,151,58,.4);
  padding: 52px 48px;
  position: relative;
  text-align: center;
}
.line-card-inner::before {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid rgba(196,151,58,.15);
  pointer-events: none;
}
.line-icon {
  display: flex;
  justify-content: center;
  margin-bottom: 24px;
}
.line-card-title {
  font-family: var(--serif-jp);
  font-weight: 600;
  color: #fff;
  font-size: 20px;
  letter-spacing: .1em;
  margin-bottom: 10px;
}
.line-card-sub {
  font-size: 13px;
  color: #b9c2d1;
  letter-spacing: .06em;
  margin-bottom: 36px;
}
.btn-line {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 20px 32px;
  background: #06C755;
  color: #fff;
  font-family: var(--sans-jp);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: .12em;
  border-radius: 4px;
  transition: background .25s, transform .2s;
  text-decoration: none;
  margin-bottom: 14px;
}
.btn-line:hover {
  background: #05a848;
  transform: translateY(-2px);
}
.line-note {
  font-size: 11px;
  color: #7c8699;
  letter-spacing: .06em;
  margin-bottom: 36px;
}
.line-features {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 24px;
  text-align: left;
  padding-top: 28px;
  border-top: 1px solid rgba(196,151,58,.2);
}
.line-feat {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: #c8d0de;
  letter-spacing: .04em;
}
.feat-check {
  color: #06C755;
  font-weight: 700;
  font-size: 15px;
  flex-shrink: 0;
}

@media (max-width:1024px) {
  .line-cta-grid { grid-template-columns: 1fr; gap: 48px; }
}
@media (max-width:768px){
  .page-hero { padding: 60px 0 48px; }
  .page-hero h1 { font-size: 32px; }
  .page-hero::before { font-size: 100px; }
  .cta-h2 { font-size: 28px; }
  .line-card-inner { padding: 36px 24px; }
  .line-features { grid-template-columns: 1fr; }
}

/* ───────── scroll-in animations ───────── */
[data-animate] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .72s cubic-bezier(.22,1,.36,1),
              transform .72s cubic-bezier(.22,1,.36,1);
  transition-delay: calc(var(--ad, 0) * 110ms);
}
[data-animate].is-visible {
  opacity: 1;
  transform: translateY(0);
}
[data-animate][data-delay="1"] { --ad: 1; }
[data-animate][data-delay="2"] { --ad: 2; }
[data-animate][data-delay="3"] { --ad: 3; }
[data-animate][data-delay="4"] { --ad: 4; }

@media (prefers-reduced-motion: reduce) {
  [data-animate] { opacity: 1; transform: none; transition: none; }
}

/* ───────── voice card avatar ───────── */
.voice-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--navy-700), var(--navy));
  border: 1px solid var(--gold);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--serif-en);
  font-weight: 400;
  font-size: 15px;
  color: var(--gold-soft);
  letter-spacing: .06em;
  margin-bottom: 18px;
}

/* ───────── timeline cost bar ───────── */
.tl-bar {
  height: 2px;
  background: rgba(196,151,58,.14);
  border-radius: 1px;
  overflow: hidden;
  margin-top: 7px;
  width: 100%;
}
.tl-bar-fill {
  display: block;
  height: 100%;
  width: 0;
  background: linear-gradient(to right, var(--gold-deep), var(--gold-soft));
  border-radius: 1px;
  transition: width 1.1s cubic-bezier(.16,1,.3,1);
}
.timeline-row .stage {
  display: flex;
  flex-direction: column;
}

/* ───────── nav active state (already in file, guard) ───────── */
