:root{
    /* Warm hospitality palette */
    --sand:        #EFE7DA;
    --sand-deep:   #E7DCC9;
    --cream:       #FBF7EF;
    --cream-soft:  #F6F0E4;
    --forest:      #20362B;
    --forest-deep: #182A21;
    --olive:       #55654F;
    --clay:        #C86B4A;
    --clay-deep:   #A9532F;
    --clay-soft:   #E3A487;
    --ink:         #2A241C;
    --ink-soft:    #57503f;
    --line:        #DDD1BC;

    --shadow-sm: 0 2px 8px rgba(37,29,14,.06);
    --shadow-md: 0 14px 34px -14px rgba(37,29,14,.26);
    --shadow-lg: 0 40px 80px -30px rgba(24,42,33,.42);

    --r-sm: 14px;
    --r-md: 22px;
    --r-lg: 34px;
    --r-xl: 46px;

    --maxw: 1200px;
    --gutter: clamp(20px, 5vw, 64px);

    --serif: "Fraunces", Georgia, "Times New Roman", serif;
    --sans: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  }

  *,*::before,*::after{ box-sizing:border-box; }
  html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
  @media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

  body{
    margin:0;
    font-family:var(--sans);
    background:var(--sand);
    color:var(--ink);
    line-height:1.6;
    font-size:clamp(16px,1.05vw,18px);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }

  ::selection{ background:var(--clay-soft); color:var(--forest-deep); }

  a{ color:inherit; }
  img{ max-width:100%; display:block; }

  h1,h2,h3,h4{ font-family:var(--serif); font-weight:420; line-height:1.04; margin:0; text-wrap:balance; letter-spacing:-.01em; }

  .wrap{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }

  .eyebrow{
    font-family:var(--sans);
    font-size:.72rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase;
    color:var(--clay-deep);
    display:inline-flex; align-items:center; gap:.6em;
  }
  .eyebrow::before{
    content:""; width:26px; height:1.5px; background:var(--clay); border-radius:2px; display:inline-block;
  }
  .eyebrow--onforest{ color:var(--clay-soft); }
  .eyebrow--onforest::before{ background:var(--clay-soft); }

  /* ---------- Focus ---------- */
  a:focus-visible, button:focus-visible{
    outline:2.5px solid var(--clay-deep);
    outline-offset:3px;
    border-radius:6px;
  }

  /* ---------- Buttons ---------- */
  .btn{
    --bg:var(--forest); --fg:var(--cream);
    display:inline-flex; align-items:center; gap:.6em;
    font-family:var(--sans); font-weight:600; font-size:.98rem;
    padding:.92em 1.55em; border-radius:100px;
    background:var(--bg); color:var(--fg);
    text-decoration:none; border:1.5px solid transparent;
    transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s, background .3s;
    box-shadow:var(--shadow-sm);
    cursor:pointer;
  }
  .btn svg{ transition:transform .35s cubic-bezier(.2,.8,.2,1); }
  .btn:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); }
  .btn:hover svg{ transform:translateX(4px); }
  .btn--clay{ --bg:var(--clay); --fg:#fff; }
  .btn--clay:hover{ background:var(--clay-deep); }
  .btn--ghost{
    --bg:transparent; --fg:var(--forest);
    border-color:var(--forest);
    box-shadow:none;
  }
  .btn--ghost:hover{ background:rgba(32,54,43,.06); }
  .btn--onforest.btn--ghost{ --fg:var(--cream); border-color:rgba(251,247,239,.4); }
  .btn--onforest.btn--ghost:hover{ background:rgba(251,247,239,.1); }

  @media (prefers-reduced-motion: reduce){
    .btn,.btn svg,.card,.reveal,.blob{ transition:none !important; animation:none !important; }
  }

  /* ---------- Header / Nav ---------- */
  .site-header{
    position:sticky; top:0; z-index:60;
    background:rgba(239,231,218,.82);
    backdrop-filter:saturate(140%) blur(14px);
    -webkit-backdrop-filter:saturate(140%) blur(14px);
    border-bottom:1px solid transparent;
    transition:border-color .3s, background .3s;
  }
  .site-header.is-stuck{ border-color:var(--line); background:rgba(239,231,218,.92); }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    height:76px; gap:1.5rem;
  }
  .wordmark{
    font-family:var(--serif); font-weight:560; font-size:1.32rem; letter-spacing:-.015em;
    color:var(--forest); text-decoration:none; white-space:nowrap;
    display:inline-flex; align-items:center; gap:.55em;
  }
  .wordmark .dot{ width:9px; height:9px; border-radius:50%; background:var(--clay); display:inline-block; margin-top:2px; }
  .wordmark img{ display:block; width:auto; }
  .site-header .wordmark img{ height:36px; }
  .foot-brand .wordmark img{ height:63px; }
  .nav-links{
    display:flex; align-items:center; gap:.35rem; list-style:none; margin:0; padding:0;
  }
  .nav-links a{
    text-decoration:none; color:var(--ink-soft); font-weight:500; font-size:.95rem;
    padding:.5em .85em; border-radius:100px;
    transition:color .25s, background .25s;
  }
  .nav-links a:hover{ color:var(--forest); background:rgba(32,54,43,.06); }
  .site-header nav[aria-label="Primary"]{ margin-left:auto; }
  .nav-cta{ display:flex; align-items:center; gap:.7rem; }

  .nav-toggle{
    display:none; background:var(--cream); border:1px solid var(--line);
    width:46px; height:46px; border-radius:14px; cursor:pointer;
    align-items:center; justify-content:center; color:var(--forest);
  }
  .nav-toggle svg{ width:22px; height:22px; }

  .mobile-menu{
    display:none;
    position:fixed; inset:76px 0 0 0; z-index:55;
    background:var(--sand);
    padding:1.4rem var(--gutter) 2.5rem;
    flex-direction:column; gap:.4rem;
    animation:menuIn .3s ease;
  }
  @keyframes menuIn{ from{ opacity:0; transform:translateY(-8px);} to{opacity:1;transform:none;} }
  .mobile-menu.open{ display:flex; }
  .mobile-menu a{
    text-decoration:none; color:var(--forest); font-family:var(--serif); font-size:1.6rem;
    padding:.5em 0; border-bottom:1px solid var(--line);
  }
  .mobile-menu .btn{ margin-top:1.2rem; justify-content:center; }

  @media (max-width: 900px){
    .nav-links{ display:none; }
    .nav-cta .btn--nav{ display:none; }
    .nav-toggle{ display:inline-flex; }
  }

  /* ---------- Hero ---------- */
  .hero{ position:relative; padding-top:clamp(36px,6vw,80px); padding-bottom:clamp(30px,4.5vw,60px); }
  .hero-grid{
    display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(28px,4vw,60px);
    align-items:center;
  }
  .hero-copy h1{
    font-size:clamp(2.9rem,6.6vw,5.2rem);
    font-weight:420; line-height:.98; letter-spacing:-.025em;
    margin-bottom:.35em;
  }
  .hero-copy h1 em{ font-style:italic; color:var(--clay-deep); font-weight:420; }
  .hero-eyebrow-m{ display:none; }
  .hero-sub{
    font-size:clamp(1.08rem,1.5vw,1.32rem); color:var(--ink-soft);
    max-width:34ch; margin-bottom:2rem;
  }
  .hero-actions{ display:flex; flex-wrap:wrap; gap:.9rem; align-items:center; }
  .hero-note{
    margin-top:1.6rem; display:flex; align-items:center; gap:.7rem;
    font-size:.92rem; color:var(--ink-soft);
  }
  .hero-note .avatar{
    width:42px; height:42px; border-radius:50%; flex:none;
    background:
      radial-gradient(circle at 30% 30%, var(--clay-soft), var(--clay) 55%, var(--clay-deep));
    display:grid; place-items:center; color:#fff; font-family:var(--serif); font-weight:560; font-size:1rem;
    box-shadow:var(--shadow-sm);
  }

  /* Hero lookbook stack */
  .hero-art{ position:relative; }
  .panel{
    position:relative; border-radius:var(--r-lg); overflow:hidden;
    box-shadow:var(--shadow-md);
  }
  .panel__caption{
    position:absolute; left:16px; bottom:16px; right:16px;
    display:flex; align-items:center; justify-content:space-between; gap:1rem;
    background:rgba(251,247,239,.9);
    backdrop-filter:blur(6px);
    border-radius:100px; padding:.55em 1.1em;
    font-size:.82rem; font-weight:500; color:var(--forest);
  }
  .panel__caption .tag{
    font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--clay-deep); font-weight:600;
  }
  .hero-panel-main{ aspect-ratio:4/4.6; background:var(--forest-deep); }
  .hero-video{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; object-position:center; z-index:0; display:block;
  }
  .hero-sound{
    position:absolute; top:14px; right:14px; z-index:3;
    width:44px; height:44px; border-radius:50%;
    background:rgba(251,247,239,.92);
    backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
    border:1px solid var(--line); box-shadow:var(--shadow-sm);
    display:flex; align-items:center; justify-content:center;
    color:var(--forest); cursor:pointer; padding:0;
    transition:transform .3s cubic-bezier(.2,.8,.2,1), background .3s;
  }
  .hero-sound:hover{ transform:scale(1.07); background:var(--cream); }
  .hero-sound svg{ width:19px; height:19px; }
  .hero-panel-main .panel__caption{ z-index:2; }
  .hero-cap{
    position:absolute; left:16px; right:34%; bottom:16px; z-index:4;
    display:flex; pointer-events:none;
  }
  .hero-cap span{
    background:rgba(24,42,33,.82); color:var(--cream);
    font-family:var(--sans); font-size:.82rem; font-weight:500; line-height:1.34;
    padding:.4em .72em; border-radius:12px;
    backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
    box-shadow:0 6px 16px rgba(0,0,0,.28); text-wrap:balance;
  }
  .hero-cap:empty{ display:none; }
  @media (max-width:560px){ .hero-cap{ right:20%; bottom:14px; } .hero-cap span{ font-size:.76rem; } }
  .hero-scene-a{
    position:absolute; inset:0;
    background:
      radial-gradient(120% 80% at 80% 10%, rgba(226,164,135,.5), transparent 55%),
      linear-gradient(155deg, #2c4a3a 0%, #20362B 45%, #182a21 100%);
  }
  .hero-float{
    position:absolute; width:44%; aspect-ratio:1/1.15;
    right:-6%; bottom:-7%;
    border-radius:var(--r-md);
    box-shadow:var(--shadow-lg);
    border:6px solid var(--cream);
    overflow:hidden;
  }
  .hero-float .scene{
    position:absolute; inset:0;
    background:
      radial-gradient(90% 70% at 20% 20%, #f0c9a4, transparent 60%),
      linear-gradient(150deg, #e9885f, #c86b4a 60%, #a9532f);
  }
  .hero-float .scene-img{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; object-position:center; display:block;
  }
  .hero-float .panel__caption{ z-index:2; }
  .hero-badge{
    position:absolute; left:-5%; top:8%; max-width:190px;
    background:var(--cream); border-radius:var(--r-sm);
    padding:.85rem 1.05rem; box-shadow:var(--shadow-md);
    display:flex; flex-direction:column; gap:.25rem;
    border:1px solid var(--line);
  }
  .hero-badge .num{ font-family:var(--serif); font-size:1.08rem; line-height:1.2; color:var(--forest); }
  .hero-badge .lbl{ font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--clay-deep); font-weight:600; }

  /* Decorative scene texture (dots) */
  .scene-dots{ position:absolute; inset:0; opacity:.5; mix-blend-mode:soft-light; }

  @media (max-width: 860px){
    .hero-grid{ grid-template-columns:1fr; }
    .hero-art{ max-width:440px; margin-inline:auto; width:100%; }
    .hero-sub{ max-width:44ch; }
    /* mobile order: eyebrow, video, then headline + copy */
    .hero-eyebrow-d{ display:none; }
    .hero-eyebrow-m{ display:block; order:1; text-align:center; justify-content:center; margin-bottom:.1rem; }
    .hero-art{ order:2; }
    .hero-copy{ order:3; }
  }
  @media (max-width: 600px){
    .hero-copy h1{ font-size:clamp(2.1rem,8.4vw,3.2rem); }
    .hero-float{ display:none; }
    .feat-logos img{ height:clamp(34px,4.8vw,51px); }
    .feat-logos img.tt{ height:clamp(58px,7.8vw,88px); }
    .feat-logos{ gap:clamp(24px,7vw,44px); }
  }

  /* ---------- Trust strip ---------- */
  .trust{ padding:clamp(28px,4vw,44px) 0; }
  .trust-inner{
    border-top:1px solid var(--line); border-bottom:1px solid var(--line);
    padding:clamp(20px,3vw,30px) 0;
    display:flex; align-items:center; gap:clamp(20px,4vw,52px); flex-wrap:wrap; justify-content:center;
  }
  .trust-label{ font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); font-weight:600; }
  .trust-cities{ display:flex; flex-wrap:wrap; gap:clamp(16px,3vw,40px); align-items:center; justify-content:center; }
  .city{
    font-family:var(--serif); font-size:clamp(1.05rem,1.8vw,1.45rem); color:var(--forest);
    display:inline-flex; align-items:center; gap:.5em; opacity:.85;
  }
  .city .pin{ width:7px; height:7px; border-radius:50%; background:var(--clay); flex:none; }

  /* ---------- Section scaffolding ---------- */
  section{ position:relative; }
  .section-pad{ padding:clamp(64px,9vw,130px) 0; }
  .section-head{ max-width:640px; margin-bottom:clamp(40px,5vw,64px); }
  .section-head h2{ font-size:clamp(2.1rem,4.4vw,3.4rem); margin:.5rem 0 .6rem; }
  .section-head p{ color:var(--ink-soft); font-size:1.1rem; max-width:52ch; }
  .section-head.center{ margin-inline:auto; text-align:center; }
  .section-head.center .eyebrow{ justify-content:center; }

  /* ---------- Problem section ---------- */
  .problem{ background:var(--forest); color:var(--cream-soft); overflow:hidden; }
  .problem::before{
    content:""; position:absolute; inset:0;
    background:radial-gradient(60% 60% at 85% 0%, rgba(200,107,74,.22), transparent 60%);
    pointer-events:none;
  }
  .problem-head h2{ color:var(--cream); font-size:clamp(2.1rem,4.4vw,3.4rem); line-height:1.04; margin:.5rem 0 .85rem; }
  .problem-head > p{ color:rgba(246,240,228,.72); font-size:1.1rem; }
  .problem-layout{
    display:grid; grid-template-columns:1.25fr .85fr; gap:clamp(24px,4vw,52px);
    align-items:center; position:relative;
  }
  .prob-list{ list-style:none; margin:1.5rem 0 0; padding:0; display:grid; gap:.85rem; }
  .prob-list li{
    position:relative; padding-left:1.9rem;
    color:rgba(246,240,228,.86); font-size:1.06rem; line-height:1.4;
  }
  .prob-list li::before{
    content:"\00d7"; position:absolute; left:.2rem; top:-.03em;
    color:var(--clay-soft); font-weight:700; font-size:1.2em;
  }
  .prob-box{
    background:rgba(200,107,74,.12);
    border:1px solid rgba(226,164,135,.34);
    border-radius:var(--r-lg);
    padding:clamp(30px,3.4vw,44px);
    box-shadow:var(--shadow-md);
  }
  .prob-box-ico{
    display:inline-grid; place-items:center;
    width:56px; height:56px; border-radius:16px;
    background:rgba(226,164,135,.16); color:var(--clay-soft); margin-bottom:1.2rem;
  }
  .prob-box-kicker{
    display:block; text-transform:uppercase; letter-spacing:.16em;
    font-size:.7rem; font-weight:600; color:var(--clay-soft); margin-bottom:.5rem;
  }
  .prob-box h3{
    font-family:var(--serif); color:var(--cream); font-weight:420;
    font-size:clamp(1.9rem,3vw,2.5rem); line-height:1.05; margin:0 0 .65rem;
  }
  .prob-box p{ color:rgba(246,240,228,.8); margin:0; font-size:1.02rem; }
  .prob-turn{
    display:flex; align-items:center; gap:1rem; flex-wrap:wrap;
    margin-top:clamp(2rem,4vw,3rem); padding-top:1.6rem; border-top:1px solid rgba(251,247,239,.14);
    font-family:var(--serif); font-size:clamp(1.3rem,2.6vw,1.9rem); color:var(--cream); font-style:italic;
    line-height:1.25;
  }
  .prob-turn .spark{ color:var(--clay-soft); flex:none; }
  @media (max-width:820px){ .problem-layout{ grid-template-columns:1fr; } }

  /* ---------- Approach cards ---------- */
  .approach{ background:var(--sand); }
  .ways{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(18px,2.5vw,28px); max-width:900px; margin:clamp(30px,4vw,48px) auto 0; }
  .way{ display:flex; flex-direction:column; background:var(--cream); border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(28px,3.5vw,44px); }
  .way-tag{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600; color:var(--clay-deep); margin-bottom:.7rem; }
  .way h3{ font-size:clamp(1.55rem,3vw,2.15rem); color:var(--forest); margin:0 0 .7rem; line-height:1.08; }
  .way p{ color:var(--ink-soft); font-size:1.05rem; line-height:1.6; margin:0 0 1.6rem; flex:1; }
  .way .btn{ align-self:flex-start; }
  .way--lead{ background:var(--forest); border-color:transparent; box-shadow:var(--shadow-md); }
  .way--lead .way-tag{ color:var(--clay-soft); }
  .way--lead h3{ color:var(--cream); }
  .way--lead p{ color:rgba(246,240,228,.82); }
  @media (max-width:720px){ .ways{ grid-template-columns:1fr; } }
  .sol-list{
    list-style:none; margin:clamp(30px,4vw,48px) auto 0; padding:0; max-width:900px;
    display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(12px,1.5vw,18px);
  }
  .sol-list li{
    display:flex; align-items:flex-start; gap:.8rem;
    background:var(--cream); border:1px solid var(--line); border-radius:var(--r-md);
    padding:clamp(14px,1.6vw,19px) clamp(16px,1.8vw,22px);
    font-size:1.05rem; line-height:1.4; color:var(--ink);
  }
  .sol-list li .tick{
    flex:none; width:24px; height:24px; border-radius:7px; display:grid; place-items:center;
    background:rgba(200,107,74,.14); color:var(--clay-deep); margin-top:1px;
  }
  .sol-list li .tick svg{ width:15px; height:15px; }
  .sol-list li strong{ color:var(--forest); font-weight:600; }
  .sol-more{ text-align:center; margin:clamp(20px,3vw,32px) 0 0; color:var(--ink-soft); font-style:italic; font-size:1.05rem; }
  .sol-cta{ text-align:center; margin-top:clamp(22px,3vw,36px); }
  @media (max-width:640px){ .sol-list{ grid-template-columns:1fr; } }

  /* Page map: what you have + the group pages you gain */
  .sitemap-intro{ text-align:center; max-width:640px; margin:clamp(34px,4.5vw,54px) auto 0; }
  .sitemap-intro h3{ font-size:clamp(1.5rem,2.8vw,2.05rem); color:var(--forest); font-weight:420; }
  .sitemap-intro p{ color:var(--ink-soft); margin:.6rem 0 0; font-size:1.02rem; }
  .sitemap-intro a{ color:var(--clay-deep); text-decoration:underline; }
  .pagemap{ max-width:820px; margin:clamp(22px,3vw,34px) auto 0; }
  .pagemap-h{ display:flex; align-items:baseline; gap:.6rem; flex-wrap:wrap; font-family:var(--sans); font-size:1.05rem; font-weight:600; color:var(--forest); margin:0 0 .95rem; }
  .pagemap-note{ font-family:var(--serif); font-style:italic; font-weight:420; font-size:.94rem; color:var(--clay-deep); }
  .pagemap-row{ display:flex; flex-wrap:wrap; gap:.6rem; }
  .page-chip{
    display:inline-flex; align-items:center; gap:.55rem;
    background:#fff; border:1px solid var(--line); border-radius:9px;
    padding:1.15em 1.05em .68em .62em; font-size:.95rem; font-weight:600; color:var(--forest);
    position:relative; box-shadow:var(--shadow-sm);
  }
  .page-chip::before{
    content:""; position:absolute; top:0; left:0; right:0; height:1em;
    background:var(--sand-deep); border-bottom:1px solid var(--line); border-radius:8px 8px 0 0;
  }
  .page-chip::after{
    content:""; position:absolute; top:.4em; left:.7em;
    width:5px; height:5px; border-radius:50%; background:var(--line);
    box-shadow:7px 0 0 var(--line), 14px 0 0 var(--line);
  }
  .page-chip .pi{ flex:none; width:26px; height:26px; border-radius:7px; display:grid; place-items:center; background:var(--sand-deep); color:var(--forest); }
  .page-chip .pi svg{ width:15px; height:15px; }
  .page-chip.is-new{ background:var(--forest); border-color:transparent; color:var(--cream); }
  .page-chip.is-new::before{ background:rgba(251,247,239,.1); border-bottom-color:rgba(251,247,239,.14); }
  .page-chip.is-new::after{ background:rgba(251,247,239,.4); box-shadow:7px 0 0 rgba(251,247,239,.4), 14px 0 0 rgba(251,247,239,.4); }
  .page-chip.is-new .pi{ background:rgba(226,164,135,.22); color:var(--clay-soft); }
  .pagemap-sub{ margin:.9rem 0 0; font-size:.92rem; color:var(--ink-soft); font-style:italic; }
  .pagemap-hr{ border:none; border-top:1px solid var(--line); margin:clamp(18px,2.4vw,26px) 0; }
  .pagemap-copy{ max-width:620px; margin:clamp(26px,3.6vw,42px) auto 0; text-align:center; color:var(--ink-soft); font-size:1.06rem; }
  .pagemap-copy strong{ color:var(--forest); font-weight:600; }
  .beta-tag{ display:inline-block; margin-left:.5em; font-family:var(--sans); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; color:#fff; background:var(--clay); padding:.35em .7em; border-radius:100px; vertical-align:middle; }
  .beta-note{ margin-top:1.4rem; display:flex; align-items:flex-start; gap:.7rem; max-width:54ch; background:rgba(200,107,74,.09); border:1px solid rgba(200,107,74,.28); border-radius:var(--r-md); padding:.9rem 1.1rem; font-size:.98rem; line-height:1.5; color:var(--ink); }
  .beta-note strong{ color:var(--clay-deep); }
  .beta-note > svg{ flex:none; margin-top:.15em; color:var(--clay-deep); }
  .way--lead .way-beta{ color:var(--clay-soft); font-weight:600; font-size:.96rem; line-height:1.4; margin:-.2rem 0 0; }

  /* Real-site showcase mockups */
  .showcase{ background:var(--cream-soft); }
  .showcase-block{ max-width:940px; margin:0 auto clamp(46px,6vw,80px); text-align:center; }
  .showcase-block:last-child{ margin-bottom:0; }
  .showcase-copy{ max-width:620px; margin:0 auto clamp(20px,3vw,32px); }
  .showcase-copy .eyebrow{ justify-content:center; }
  .showcase-copy h3{ font-size:clamp(1.7rem,3.2vw,2.4rem); color:var(--forest); font-weight:420; margin:.5rem 0 .7rem; }
  .showcase-copy p{ color:var(--ink-soft); font-size:1.08rem; margin:0; }
  .showcase-shot{ margin:0; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); border:6px solid var(--cream); background:var(--sand); }
  .showcase-shot img{ width:100%; display:block; }
  .cards{
    display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:clamp(18px,2.4vw,28px);
  }
  .card{
    background:var(--cream); border-radius:var(--r-lg);
    padding:clamp(26px,3vw,36px);
    border:1px solid var(--line);
    box-shadow:var(--shadow-sm);
    transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s;
    display:flex; flex-direction:column; gap:.75rem;
  }
  .card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
  .card .ico{
    width:58px; height:58px; border-radius:18px; display:grid; place-items:center;
    background:linear-gradient(145deg, var(--cream-soft), var(--sand-deep));
    color:var(--forest); border:1px solid var(--line); margin-bottom:.4rem;
  }
  .card h3{ font-size:1.5rem; }
  .card p{ color:var(--ink-soft); margin:0; font-size:1rem; }
  .card .learn{
    margin-top:auto; padding-top:.6rem;
    font-weight:600; font-size:.9rem; color:var(--clay-deep);
    display:inline-flex; align-items:center; gap:.4em; text-decoration:none;
  }
  .card .learn svg{ transition:transform .3s; }
  .card:hover .learn svg{ transform:translateX(4px); }
  @media (max-width:900px){ .cards{ grid-template-columns:1fr; } }

  /* ---------- Proof / stats + case study ---------- */
  .proof{ background:var(--cream-soft); }
  .stats-row{
    display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,2vw,22px);
    margin-bottom:clamp(40px,5vw,64px);
  }
  .stat{
    background:var(--sand); border-radius:var(--r-md); padding:clamp(20px,2.4vw,28px);
    border:1px solid var(--line);
  }
  .stat .n{ font-family:var(--serif); font-size:clamp(2.2rem,3.4vw,3rem); color:var(--forest); line-height:1; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
  .stat .n em{ font-style:normal; color:var(--clay-deep); }
  .stat .k{ margin-top:.5rem; font-size:.9rem; color:var(--ink-soft); }
  @media (max-width:820px){ .stats-row{ grid-template-columns:1fr 1fr; } }

  .case{
    display:grid; grid-template-columns:.92fr 1.08fr; gap:0;
    border-radius:var(--r-xl); overflow:hidden;
    box-shadow:var(--shadow-md); border:1px solid var(--line);
    background:var(--cream);
  }
  .case-art{ position:relative; min-height:420px; overflow:hidden; }
  .case-scene{
    position:absolute; inset:0;
    background:
      radial-gradient(80% 60% at 75% 15%, rgba(240,201,164,.55), transparent 55%),
      linear-gradient(160deg, #2c4a3a, #20362B 55%, #17281f);
  }
  .case-stamp{
    position:absolute; left:24px; top:24px;
    background:var(--clay); color:#fff; border-radius:100px;
    padding:.5em 1.1em; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600;
  }
  .case-figure{
    position:absolute; left:24px; bottom:24px; right:24px; color:var(--cream);
  }
  .case-figure .big{ font-family:var(--serif); font-size:clamp(2.4rem,5vw,3.6rem); line-height:1; }
  .case-figure .cap{ margin-top:.4rem; font-size:.9rem; color:rgba(246,240,228,.8); }
  .case-body{ padding:clamp(30px,3.5vw,48px); display:flex; flex-direction:column; gap:1.1rem; }
  .case-body h3{ font-size:clamp(1.7rem,2.6vw,2.2rem); }
  .case-metrics{ display:grid; grid-template-columns:1fr 1fr; gap:1rem 1.5rem; margin:.4rem 0; }
  .case-metrics .m{ border-left:2px solid var(--clay); padding-left:.9rem; }
  .case-metrics .m .mv{ font-family:var(--serif); font-size:1.5rem; color:var(--forest); line-height:1; }
  .case-metrics .m .ml{ font-size:.82rem; color:var(--ink-soft); margin-top:.25rem; }
  .case-body p{ color:var(--ink-soft); margin:0; }
  .case-second{
    margin-top:.4rem; padding-top:1.1rem; border-top:1px solid var(--line);
    font-size:.95rem; color:var(--ink-soft);
  }
  .case-second strong{ color:var(--forest); font-weight:600; }
  @media (max-width:860px){ .case{ grid-template-columns:1fr; } .case-art{ min-height:300px; } }

  /* ---------- Testimonials ---------- */
  .voices{ background:var(--forest-deep); color:var(--cream-soft); overflow:hidden; }
  .voices::before{
    content:""; position:absolute; inset:0;
    background:radial-gradient(50% 50% at 15% 100%, rgba(200,107,74,.2), transparent 60%);
  }
  .voices .section-head h2{ color:var(--cream); }
  .quotes{
    display:flex; gap:clamp(16px,2vw,26px);
    overflow-x:auto; overflow-y:hidden;
    scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch;
    padding:4px 2px 18px; scrollbar-width:thin; position:relative;
  }
  .quote{
    flex:0 0 auto; width:clamp(280px,32vw,372px); margin:0; scroll-snap-align:start;
    display:flex; flex-direction:column;
    background:rgba(251,247,239,.055);
    border:1px solid rgba(251,247,239,.14);
    border-radius:var(--r-lg); padding:clamp(24px,3vw,34px);
  }
  .quote blockquote{ margin:0; flex:1; }
  .quote .mark{ font-family:var(--serif); font-size:2.6rem; color:var(--clay-soft); line-height:.4; height:.5em; display:block; }
  .quote p{ font-family:var(--serif); font-size:clamp(1.15rem,1.8vw,1.45rem); color:var(--cream); line-height:1.32; margin:.3rem 0 1.1rem; font-weight:340; }
  .quote .who{ display:flex; align-items:center; gap:.7rem; }
  .quote .who .dot{ width:8px; height:8px; border-radius:50%; background:var(--clay); flex:none; }
  .quote .who .name{ font-family:var(--sans); font-size:.9rem; font-weight:600; color:var(--cream); }
  .quote .who .role{ font-family:var(--sans); font-size:.82rem; color:rgba(246,240,228,.6); }
  @media (max-width:680px){ .quote{ width:80vw; } }

  /* ---------- Founder ---------- */
  .founder{ background:var(--sand); }
  .founder-grid{
    display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(30px,5vw,64px); align-items:center;
  }
  .founder-art{ position:relative; }
  .founder-portrait{
    aspect-ratio:4/5; border-radius:var(--r-xl); overflow:hidden;
    box-shadow:var(--shadow-md); border:6px solid var(--cream); position:relative;
  }
  .founder-scene{
    position:absolute; inset:0;
    background:
      radial-gradient(70% 55% at 30% 25%, #f0c9a4, transparent 60%),
      linear-gradient(160deg, #d98a63, #c86b4a 55%, #8f4526);
  }
  .founder-mono{
    position:absolute; inset:0; display:grid; place-items:center;
    font-family:var(--serif); font-size:clamp(4rem,10vw,7rem); color:rgba(251,247,239,.9); font-weight:560;
  }
  .founder-portrait{ background:var(--forest-deep); }
  .founder-video{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; object-position:center; display:block;
  }
  .founder-tag{
    position:absolute; right:-14px; bottom:26px;
    background:var(--forest); color:var(--cream); border-radius:100px;
    padding:.7em 1.3em; font-size:.8rem; font-weight:600; box-shadow:var(--shadow-md);
    display:inline-flex; align-items:center; gap:.5em;
  }
  .founder-tag .tedx{ color:var(--clay-soft); font-family:var(--serif); font-weight:560; }
  .founder-body h2{ font-size:clamp(2rem,3.6vw,2.9rem); margin:.6rem 0 1.1rem; }
  .founder-body p{ color:var(--ink-soft); margin:0 0 1.1rem; max-width:56ch; }
  .founder-body p strong{ color:var(--forest); font-weight:600; }
  .founder-sign{
    font-family:var(--serif); font-size:1.7rem; color:var(--forest); font-style:italic; margin-top:.4rem;
  }
  @media (max-width:820px){
    .founder-grid{ grid-template-columns:1fr; }
    .founder-art{ max-width:360px; }
    .founder-tag{ right:12px; }
  }

  /* ---------- Final CTA ---------- */
  .final{ padding-bottom:clamp(50px,7vw,90px); }
  .final-card{
    position:relative; overflow:hidden;
    border-radius:var(--r-xl);
    background:linear-gradient(150deg,#2c4a3a,#20362B 55%,#17281f);
    color:var(--cream); padding:clamp(44px,6vw,88px) clamp(28px,5vw,72px);
    text-align:center;
    box-shadow:var(--shadow-lg);
  }
  .final-card h2{ font-size:clamp(2.3rem,5vw,4rem); color:var(--cream); margin-bottom:.4em; }
  .final-card h2 em{ font-style:italic; color:var(--clay-soft); }
  .final-card p{ color:rgba(246,240,228,.8); max-width:46ch; margin:0 auto 2rem; font-size:1.1rem; }
  .final-actions{ display:flex; gap:.9rem; justify-content:center; flex-wrap:wrap; }
  .final-blob{ position:absolute; pointer-events:none; }
  .final-blob.b1{ top:-30%; right:-8%; width:46%; opacity:.5; }
  .final-blob.b2{ bottom:-40%; left:-6%; width:40%; opacity:.4; }

  /* ---------- Footer ---------- */
  .site-footer{ background:var(--forest-deep); color:var(--cream-soft); padding:clamp(50px,6vw,80px) 0 2.2rem; }
  .foot-top{
    display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:clamp(28px,4vw,52px);
    padding-bottom:clamp(34px,4vw,50px); border-bottom:1px solid rgba(251,247,239,.14);
  }
  .foot-brand .wordmark{ color:var(--cream); font-size:1.5rem; }
  .foot-brand p{ color:rgba(246,240,228,.62); max-width:34ch; margin:1rem 0 1.4rem; font-size:.98rem; }
  .foot-col h4{ font-family:var(--sans); font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:var(--clay-soft); font-weight:600; margin:0 0 1rem; }
  .foot-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.7rem; }
  .foot-col a{ text-decoration:none; color:rgba(246,240,228,.78); font-size:.98rem; transition:color .25s; }
  .foot-col a:hover{ color:var(--cream); }
  .socials{ display:flex; gap:.6rem; list-style:none; margin:0; padding:0; }
  .socials a{
    width:42px; height:42px; border-radius:50%; display:grid; place-items:center;
    background:rgba(251,247,239,.08); color:var(--cream-soft);
    transition:background .25s, transform .25s, color .25s;
  }
  .socials a:hover{ background:var(--clay); color:#fff; transform:translateY(-3px); }
  .foot-bottom{
    display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap;
    padding-top:1.6rem; font-size:.85rem; color:rgba(246,240,228,.55);
  }
  .foot-legal{ display:flex; gap:1.3rem; }
  .foot-legal a{ color:rgba(246,240,228,.55); text-decoration:none; transition:color .25s; }
  .foot-legal a:hover{ color:var(--cream); }
  @media (max-width:760px){ .foot-top{ grid-template-columns:1fr 1fr; } .foot-brand{ grid-column:1/-1; } }

  /* ---------- Reveal animation ---------- */
  .reveal{ opacity:0; transform:translateY(22px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.8,.2,1); will-change:opacity,transform; }
  .reveal.in{ opacity:1; transform:none; }
  .reveal.d1{ transition-delay:.08s; } .reveal.d2{ transition-delay:.16s; } .reveal.d3{ transition-delay:.24s; } .reveal.d4{ transition-delay:.32s; }
  @media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; } }

/* ---------- Video testimonial component ---------- */
.vgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:1.4rem; }
.vtest{ background:var(--cream); border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; box-shadow:var(--shadow-md); display:flex; flex-direction:column; }
.vtest video{ width:100%; aspect-ratio:16/9; object-fit:cover; display:block; background:var(--forest-deep); }
.vtest .vt-body{ padding:18px 20px 20px; }
.vtest .vt-quote{ font-family:var(--serif); font-weight:420; font-size:1.12rem; line-height:1.3; color:var(--forest); margin:0 0 .5rem; }
.vtest .vt-who{ font-size:.82rem; font-weight:600; color:var(--clay-deep); margin:0; }
.vtest .vt-who .loc{ color:var(--ink-soft); font-weight:500; }
.vtest.on-forest{ background:var(--forest); border-color:transparent; }
.vtest.on-forest .vt-quote{ color:var(--cream); }
.vtest.on-forest .vt-who{ color:var(--clay-soft); }
.vtest.on-forest .vt-who .loc{ color:rgba(246,240,228,.62); }

/* ---------- Testimonial video: autoplay/loop + one-at-a-time sound ---------- */
.vwrap{ position:relative; display:block; line-height:0; }
.vsound{
  position:absolute; right:10px; bottom:10px; z-index:3;
  width:40px; height:40px; border-radius:50%;
  background:rgba(251,247,239,.92); border:1px solid var(--line); box-shadow:var(--shadow-sm);
  display:inline-flex; align-items:center; justify-content:center; color:var(--forest);
  cursor:pointer; padding:0; transition:transform .25s cubic-bezier(.2,.8,.2,1), background .25s;
}
.vsound:hover{ transform:scale(1.08); background:var(--cream); }
.vsound svg{ width:18px; height:18px; }
.vsound.is-on{ background:var(--clay); color:#fff; border-color:transparent; }
.vfull{
  position:absolute; right:10px; bottom:10px; z-index:3;
  width:40px; height:40px; border-radius:50%;
  background:rgba(251,247,239,.92); border:1px solid var(--line); box-shadow:var(--shadow-sm);
  display:inline-flex; align-items:center; justify-content:center; color:var(--forest);
  cursor:pointer; padding:0; transition:transform .25s cubic-bezier(.2,.8,.2,1), background .25s;
}
.vfull:hover{ transform:scale(1.08); background:var(--cream); }
.vfull svg{ width:18px; height:18px; }
.vwrap.has-fs .vsound{ right:58px; }

/* ---------- Homepage look-in video (presentation clip) ---------- */
.lookin{ padding-top:clamp(30px,4.5vw,54px); }
.lookin-grid{ display:grid; grid-template-columns:1fr 1.12fr; gap:clamp(30px,5vw,64px); align-items:center; }
.lookin-copy h2{ font-size:clamp(2rem,3.8vw,3rem); margin:.5rem 0 1.1rem; }
.lookin-copy > p{ color:var(--ink-soft); font-size:1.08rem; margin:0 0 1.1rem; max-width:52ch; }
.lookin-cue{ color:var(--forest); font-weight:600; }
.lookin-cue a{ color:var(--clay-deep); text-decoration:underline; text-underline-offset:2px; }
.lookin-cue a:hover{ color:var(--clay); }
.lookin-stat{ display:inline-flex; align-items:baseline; gap:.5rem; margin:.2rem 0 1.2rem; font-size:1.02rem; color:var(--forest); font-weight:600; }
.lookin-stat strong{ font-family:var(--serif); font-size:1.85rem; color:var(--clay-deep); font-weight:560; line-height:1; }
.lookin-art .vwrap{
  border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); border:6px solid var(--cream);
}
.lookin-art video{
  width:100%; aspect-ratio:16/9; object-fit:cover; display:block; background:var(--forest-deep);
}
.lookin-art .vsound, .lookin-art .vfull{ top:10px; bottom:auto; }
.lookin-cap{
  margin:.95rem auto 0; min-height:2.6em; max-width:44ch;
  font-size:.92rem; line-height:1.35; font-style:italic;
  color:var(--ink-soft); text-align:center;
}
@media (max-width:820px){ .lookin-grid{ grid-template-columns:1fr; } }

/* ---------- "Hearing from other operators" horizontal video scroller ---------- */
.opscroll-track{ overflow:hidden; padding:4px 0 18px; }
.opscroll-marquee{ display:flex; width:max-content; animation:opscroll-marq 42s linear infinite; will-change:transform; }
.opscroll-track:hover .opscroll-marquee{ animation-play-state:paused; }
.opv{ flex:0 0 auto; width:clamp(214px,23vw,258px); margin:0 clamp(14px,1.6vw,22px) 0 0; }
.opv .vwrap{ border-radius:var(--r-md); overflow:hidden; box-shadow:var(--shadow-md); }
.opv video{ width:100%; aspect-ratio:4/5; object-fit:cover; display:block; background:var(--forest-deep); }
.opv figcaption{ margin-top:.7rem; font-size:.92rem; font-weight:600; color:var(--forest); }
.opv figcaption span{ color:var(--ink-soft); font-weight:500; }
@keyframes opscroll-marq{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){
  .opscroll-track{ overflow-x:auto; }
  .opscroll-marquee{ animation:none; }
}

/* ---------- Lifetime value comparison ---------- */
.ltv-grid{ display:grid; grid-template-columns:1fr auto 1fr; gap:clamp(1rem,3vw,2.4rem); align-items:center; margin-top:clamp(2rem,5vw,3.5rem); }
.ltv-card{ text-align:center; padding:clamp(1.8rem,3vw,2.8rem) clamp(1.2rem,2.5vw,2rem); border-radius:var(--r-lg); position:relative; }
.ltv-card.is-low{ background:var(--cream); border:1px solid var(--line); color:var(--ink-soft); }
.ltv-card.is-high{ background:var(--forest); color:rgba(246,240,228,.85); box-shadow:var(--shadow-lg); }
.ltv-person{ display:block; width:clamp(60px,10vw,86px); margin:0 auto 1rem; }
.ltv-card.is-low .ltv-person{ color:var(--olive); }
.ltv-card.is-high .ltv-person{ color:var(--clay); }
.ltv-label{ font-size:.78rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; margin:0 0 .5rem; }
.ltv-card.is-low .ltv-label{ color:var(--clay-deep); }
.ltv-card.is-high .ltv-label{ color:var(--clay-soft); }
.ltv-num{ font-family:var(--serif); font-weight:420; line-height:1; font-size:clamp(2.8rem,7vw,4.6rem); margin:0 0 1.1rem; }
.ltv-card.is-low .ltv-num{ color:var(--ink); }
.ltv-card.is-high .ltv-num{ color:var(--cream); }
.ltv-list{ list-style:none; padding:0; margin:0; display:grid; gap:.55rem; font-size:1.02rem; }
.ltv-vs{ font-family:var(--serif); font-style:italic; font-size:1.3rem; color:var(--clay-deep); }
.ltv-badge{ position:absolute; top:-13px; left:50%; transform:translateX(-50%); background:var(--clay); color:#fff; font-size:.72rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:5px 14px; border-radius:100px; white-space:nowrap; }
.ltv-foot{ text-align:center; max-width:62ch; margin:clamp(2rem,4vw,3rem) auto 0; font-size:1.12rem; color:var(--ink-soft); font-family:var(--serif); font-style:italic; }
@media (max-width:760px){ .ltv-grid{ grid-template-columns:1fr; } }

/* ---------- Featured-at logo bar ---------- */
.feat{ padding:clamp(4px,1vw,12px) 0 clamp(22px,3.5vw,40px); }
.feat-label{ display:block; text-align:center; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); font-weight:600; margin-bottom:1.2rem; }
.feat-logos{ display:flex; flex-wrap:wrap; gap:clamp(26px,5vw,62px); align-items:center; justify-content:center; }
.feat-logos img{ height:clamp(20px,2.8vw,30px); width:auto; opacity:.58; filter:brightness(0); transition:opacity .3s; }
.feat-logos img:hover{ opacity:.7; }
.feat-logos img.tt{ height:clamp(34px,4.6vw,52px); }

/* ---------- Hero corner float video ---------- */
.hero-float video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; display:block; }

/* ---------- Relocated trust strip (stacked, tucked under previous section) ---------- */
.trust--tuck{ padding-top:clamp(24px,4vw,44px); padding-bottom:0; }
.trust--tuck .trust-inner{ flex-direction:column; gap:1.1rem; border:none; padding-bottom:0; }
  .trust--tuck + .approach{ padding-top:clamp(20px,3vw,36px); }
.trust-heading{ font-family:var(--serif); font-weight:420; font-size:clamp(1.35rem,2.6vw,1.9rem); color:var(--forest); text-align:center; margin:0; letter-spacing:-.01em; text-wrap:balance; }

/* ---------- Hero caption emphasis ---------- */
.hero-cap b{ color:var(--clay-soft); font-weight:700; font-size:1.16em; letter-spacing:.005em; }
.hero-cap span{ animation:capPop .3s cubic-bezier(.2,.8,.2,1) both; }
@keyframes capPop{ from{ opacity:0; transform:translateY(6px) scale(.98); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){ .hero-cap span{ animation:none; } }

/* ---------- Hero proof link ---------- */
.hero-proof{ margin:.85rem 0 0; font-size:.95rem; }
.hero-proof a{ color:var(--ink-soft); text-decoration:underline; text-decoration-color:var(--clay); text-underline-offset:3px; transition:color .25s; }
.hero-proof a:hover{ color:var(--forest); }

/* ---------- Brainstorm modal ---------- */
.bs-modal{ position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:20px; }
.bs-modal[hidden]{ display:none; }
.bs-overlay{ position:absolute; inset:0; background:rgba(24,42,33,.55); backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); }
.bs-dialog{
  position:relative; z-index:1; width:100%; max-width:520px; max-height:92vh; overflow:auto;
  background:var(--cream); border-radius:var(--r-lg); box-shadow:var(--shadow-lg);
  padding:clamp(28px,4vw,44px); animation:bsPop .3s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes bsPop{ from{ opacity:0; transform:translateY(12px) scale(.98); } to{ opacity:1; transform:none; } }
.bs-x{
  position:absolute; top:14px; right:14px; width:38px; height:38px; border-radius:50%;
  border:none; background:var(--sand); color:var(--forest); cursor:pointer; display:grid; place-items:center;
  transition:background .25s;
}
.bs-x:hover{ background:var(--sand-deep); }
.bs-x svg{ width:18px; height:18px; }
.bs-panel h2{ font-size:clamp(1.7rem,3.2vw,2.2rem); color:var(--forest); font-weight:420; margin:.5rem 0 .5rem; }
.bs-panel > p{ color:var(--ink-soft); margin:0 0 1.4rem; font-size:1.02rem; }
.bs-form{ display:flex; flex-direction:column; gap:.9rem; }
.bs-form label{ display:flex; flex-direction:column; gap:.35rem; font-size:.86rem; font-weight:600; color:var(--forest); }
.bs-form input, .bs-form textarea{
  font:inherit; font-weight:400; color:var(--ink); background:#fff;
  border:1px solid var(--line); border-radius:var(--r-sm); padding:.7em .85em;
}
.bs-form input:focus, .bs-form textarea:focus{ outline:none; border-color:var(--clay); box-shadow:0 0 0 3px rgba(200,107,74,.15); }
.bs-form textarea{ resize:vertical; }
.bs-form button[type=submit]{ margin-top:.4rem; align-self:flex-start; }
.bs-thanks{ text-align:center; padding:1.4rem 0; }
.bs-thanks h2{ color:var(--forest); }
.bs-thanks p{ color:var(--ink-soft); margin:.4rem 0 1.5rem; }

/* ---------- Short-video article pages ---------- */
.sa-hero{ padding-top:clamp(32px,5vw,68px); padding-bottom:clamp(4px,1.2vw,12px); }
.sa-hero .wrap{ max-width:720px; }
.sa-back{ display:inline-flex; align-items:center; gap:.4em; font-size:.86rem; font-weight:600; color:var(--clay-deep); text-decoration:none; margin-bottom:1.1rem; }
.sa-hero h1{ font-size:clamp(1.95rem,4.4vw,3.1rem); font-weight:420; color:var(--forest); line-height:1.07; letter-spacing:-.02em; margin:.6rem 0 .5em; }
.sa-meta{ display:flex; align-items:center; gap:.7rem; font-size:.92rem; color:var(--ink-soft); }
.sa-meta .dot{ width:4px; height:4px; border-radius:50%; background:var(--clay); display:inline-block; }
.short-player{ max-width:326px; margin:clamp(18px,3vw,30px) auto clamp(4px,1.5vw,14px); }
.short-player .vwrap{ border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); border:6px solid var(--cream); }
.short-player video{ width:100%; aspect-ratio:9/16; object-fit:cover; display:block; background:var(--forest-deep); }
.sa-body{ max-width:680px; margin:0 auto; padding-bottom:clamp(44px,6vw,84px); }
.sa-body .lede{ font-family:var(--serif); font-weight:420; font-size:clamp(1.2rem,2.1vw,1.5rem); line-height:1.4; color:var(--forest); margin:clamp(20px,3vw,30px) 0 1.4rem; }
.sa-body p{ font-size:1.1rem; line-height:1.72; color:var(--ink); margin:0 0 1.2rem; }
.sa-body h2{ font-size:clamp(1.35rem,2.6vw,1.85rem); font-weight:420; color:var(--forest); margin:2.1rem 0 .8rem; }
.sa-body ul{ margin:0 0 1.4rem; padding:0; list-style:none; display:grid; gap:.7rem; }
.sa-body ul li{ position:relative; padding-left:1.7rem; font-size:1.06rem; line-height:1.5; color:var(--ink); }
.sa-body ul li::before{ content:""; position:absolute; left:.35rem; top:.62em; width:8px; height:8px; border-radius:50%; background:var(--clay); }
.sa-body strong{ color:var(--forest); font-weight:600; }
.sa-body a:not(.btn){ color:var(--clay-deep); text-decoration:underline; text-underline-offset:2px; }
.sa-body a:not(.btn):hover{ color:var(--clay); }
.sa-cta{ margin-top:2.4rem; background:var(--forest); color:var(--cream-soft); border-radius:var(--r-lg); padding:clamp(26px,4vw,40px); text-align:center; }
.sa-cta h2{ font-family:var(--serif); font-weight:420; color:var(--cream); font-size:clamp(1.5rem,3vw,2rem); margin:0 0 .5rem; }
.sa-cta p{ color:rgba(246,240,228,.8); max-width:42ch; margin:0 auto 1.4rem; }
.sa-cta .btn{ background:var(--clay); color:#fff; }
.sa-cta .btn:hover{ background:var(--clay-deep); color:#fff; }
.sa-cta-alt{ margin:1.1rem 0 0; font-size:.94rem; }
.sa-cta-alt a{ color:rgba(246,240,228,.82); text-decoration:underline; text-underline-offset:2px; }
.sa-cta-alt a:hover{ color:var(--cream); }

/* Quick videos grid (Articles page) */
.qv-grid{ display:flex; gap:clamp(14px,1.8vw,22px); overflow-x:auto; scroll-snap-type:x proximity; padding-bottom:.7rem; -webkit-overflow-scrolling:touch; scrollbar-width:thin; scrollbar-color:var(--clay-soft) transparent; }
.qv-grid::-webkit-scrollbar{ height:7px; }
.qv-grid::-webkit-scrollbar-thumb{ background:var(--clay-soft); border-radius:100px; }
.qv-card{ display:flex; flex-direction:column; gap:.65rem; text-decoration:none; flex:0 0 auto; width:clamp(150px,40vw,176px); scroll-snap-align:start; }
.qv-thumb{ position:relative; display:block; aspect-ratio:9/16; border-radius:var(--r-md); overflow:hidden; background:var(--forest-deep); box-shadow:var(--shadow-sm); }
.qv-thumb img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s cubic-bezier(.2,.8,.2,1); }
.qv-card:hover .qv-thumb img{ transform:scale(1.05); }
.qv-play{ position:absolute; inset:0; display:grid; place-items:center; }
.qv-play::before{ content:""; width:44px; height:44px; border-radius:50%; background:rgba(251,247,239,.92); box-shadow:var(--shadow-sm); }
.qv-play::after{ content:""; position:absolute; width:0; height:0; border-left:13px solid var(--forest); border-top:8px solid transparent; border-bottom:8px solid transparent; margin-left:3px; }
.qv-title{ font-family:var(--serif); font-size:1.02rem; line-height:1.2; color:var(--forest); }
.qv-card:hover .qv-title{ color:var(--clay-deep); }
.a-title a{ color:inherit; text-decoration:none; }
.a-title a:hover{ color:var(--clay-deep); }
.sa-faq{ margin-top:2.4rem; }
.sa-faq-item{ border-top:1px solid var(--line); padding:clamp(16px,2vw,22px) 0; }
.sa-faq-item:last-of-type{ border-bottom:1px solid var(--line); }
.sa-faq-item h3{ font-family:var(--sans); font-size:1.1rem; font-weight:600; color:var(--forest); margin:0 0 .5rem; }
.sa-faq-item p{ margin:0; color:var(--ink-soft); font-size:1.04rem; line-height:1.62; }
.sa-faq-item a{ color:var(--clay-deep); text-decoration:underline; text-underline-offset:2px; }
.sa-transcript{ margin-top:2.4rem; border-top:1px solid var(--line); padding-top:1.4rem; }
.sa-transcript summary{ cursor:pointer; font-weight:600; color:var(--clay-deep); font-size:.95rem; list-style:none; }
.sa-transcript summary::-webkit-details-marker{ display:none; }
.sa-transcript summary::before{ content:"+ "; font-weight:700; }
.sa-transcript[open] summary::before{ content:"\2013 "; }
.sa-transcript p{ margin:1rem 0 0; color:var(--ink-soft); font-size:1rem; line-height:1.7; }
.cs-stats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:clamp(14px,2vw,22px); margin:clamp(24px,3.5vw,40px) 0; }
.cs-stat{ background:var(--cream); border:1px solid var(--line); border-radius:var(--r-md); padding:clamp(18px,2.4vw,26px); text-align:center; }
.cs-stat .n{ font-family:var(--serif); font-size:clamp(1.9rem,4vw,2.8rem); color:var(--forest); line-height:1; }
.cs-stat .n em{ color:var(--clay-deep); font-style:normal; }
.cs-stat .k{ font-size:.85rem; color:var(--ink-soft); margin-top:.5rem; line-height:1.35; }
