/* Beauty & Wellness Clinic — K-beauty design system (extracted from the homepage world, 2026-08-20).
   Shared by every subpage; the homepage keeps its own inline copy. Tokens and grammar must match index.html. */
:root{
    --peach-0:#FFF5F0; --peach-1:#FFEEEA; --peach-2:#FFE4DD; --peach-3:#FFDDD4;
    --ink:#2A2A2A; --ink-55:#7C7375;
    --red:#D3161A; --coral:#FF7A7A; --rose:#E9918E; --lilac:#C9A8E8;
    --w:#FFFFFF; --w-70:rgba(255,255,255,.72); --w-40:rgba(255,255,255,.42);
    --tick:34px; --head:78px; --bar:64px;
    --safe:env(safe-area-inset-bottom, 0px);
    --ease:cubic-bezier(.16,1,.3,1);
    --slow:cubic-bezier(.22,.61,.36,1);
  }
  *,*::before,*::after{box-sizing:border-box}
  html,body{margin:0}
  body{
    background:linear-gradient(var(--peach-1) 0%, var(--peach-3) 100%);
    color:var(--ink);
    font-family:"Pretendard Variable",Pretendard,system-ui,sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  .vh{
    position:absolute!important;width:1px;height:1px;overflow:hidden;
    clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;
  }
  .skip{
    position:absolute;left:8px;top:-60px;z-index:60;
    background:var(--ink);color:#fff;padding:10px 18px;border-radius:50px;
    font-size:13px;font-weight:600;text-decoration:none;transition:top .2s var(--ease);
  }
  .skip:focus{top:8px}

  /* ---------- ticker ---------- */
  .tick{
    height:var(--tick);background:#0C0B0B;overflow:hidden;white-space:nowrap;
    display:flex;align-items:center;position:relative;
  }
  .tick-run{display:inline-flex;flex:none;will-change:transform}
  .tick-run span{
    padding:0 34px;font-size:11.5px;font-weight:600;letter-spacing:.34em;text-transform:uppercase;
    color:var(--rose);
  }
  .tick-run span b{color:#FFF;font-weight:700}
  @media (prefers-reduced-motion:no-preference){
    .tick-run{animation:run 38s linear infinite}
    .tick:hover .tick-run{animation-play-state:paused}
    .tick[data-paused] .tick-run{animation-play-state:paused}
    @keyframes run{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  }
  @media (prefers-reduced-motion:reduce){ .tick{overflow-x:auto} .tickbtn{display:none} }
  .tickbtn{
    position:absolute;right:0;top:0;bottom:0;width:40px;z-index:2;
    display:flex;align-items:center;justify-content:center;cursor:pointer;
    background:linear-gradient(90deg, rgba(12,11,11,0), #0C0B0B 42%);
    border:0;color:var(--w-70);font-size:10px;line-height:1;
  }
  .tickbtn:hover{color:#fff}
  .tickbtn:focus-visible{outline:2px solid var(--rose);outline-offset:-3px}
  .odot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#59C96A;margin-right:8px;vertical-align:1px}
  .odot.off{background:#8F8A87}

  /* ---------- header ---------- */
  .head{
    min-height:var(--head);display:flex;align-items:center;gap:clamp(9px,1.2vw,18px);
    padding:0 clamp(14px,2vw,26px);
    background:linear-gradient(var(--peach-0) 0%, var(--peach-1) 62%, var(--peach-2) 100%);
    border-bottom:1px solid rgba(42,42,42,.07);
  }
  .brand{display:flex;flex-direction:column;gap:2px;margin-right:4px;flex:none;min-width:0;max-width:38vw}
  .brand > a{text-decoration:none}
  .logo{
    font-size:clamp(16px,1.7vw,22px);font-weight:800;letter-spacing:-.02em;white-space:nowrap;
    background:linear-gradient(96deg,var(--rose) 0%,#D98FA6 45%,var(--lilac) 100%);
    -webkit-background-clip:text;background-clip:text;color:transparent;
  }
  .logo .lg-x{height:.82em;width:auto;vertical-align:-.08em;margin:0 4px;isolation:isolate}
  .strap{
    margin:0;font-size:11px;font-weight:600;letter-spacing:.03em;color:var(--ink-55);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  @media (max-width:1400px){
    .strap{
      position:absolute!important;width:1px;height:1px;overflow:hidden;
      clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;
    }
  }

  .pill{
    display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 18px;
    border-radius:50px;background:var(--w);border:1px solid rgba(42,42,42,.07);
    color:var(--ink);text-decoration:none;
    font-size:13.5px;font-weight:600;white-space:nowrap;
    box-shadow:0 2px 8px rgba(180,120,110,.10);
    transition:transform .22s var(--ease),box-shadow .22s var(--ease);
  }
  .pill i{font-size:17px;color:var(--ink-55)}
  .pill:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(180,120,110,.18)}
  .pill:active{transform:translateY(0)}
  .pill.book{background:var(--ink);color:var(--w);border-color:var(--ink)}
  .pill.book i{color:var(--w)}

  .head .right{display:flex;align-items:center;gap:clamp(9px,1.3vw,17px);margin-left:auto}
  .stars{display:flex;align-items:center;gap:7px;text-decoration:none;color:var(--ink);white-space:nowrap}
  .stars .g{color:#F0A83C;font-size:12px;letter-spacing:.05em}
  .stars b{font-size:14px;font-weight:800}
  .stars span{font-size:12.5px;color:var(--ink-55)}
  .stars:hover span{color:var(--red)}
  .tel{color:var(--ink);text-decoration:none;font-size:15px;font-weight:800;letter-spacing:-.01em;white-space:nowrap}
  .tel:hover{color:var(--red)}
  .pill:focus-visible,.stars:focus-visible,.tel:focus-visible{outline:3px solid rgba(233,145,142,.55);outline-offset:2px}

  @media (max-width:1180px){ .tel{display:none} }
  @media (max-width:900px){ .stars span:last-child{display:none} }
  @media (max-width:880px){ .pill span{display:none} .pill{padding:0 14px} .brand{max-width:none} }
  @media (max-width:470px){
    .pill.prices{display:none}
    .logo{font-size:15px}
    .stars b{font-size:13px}
    .stars .g{font-size:10.5px}
    .head{gap:8px;padding:0 12px}
  }
  @media (max-width:410px){
    .logo{font-size:14px}
    .stars .g{font-size:0}
    .stars::before{content:"\2605";color:#F0A83C;font-size:12.5px;line-height:1}
    .stars{gap:5px}
    .head{gap:7px;padding:0 10px}
  }
  @media (max-width:345px){
    .head .right{display:none}
    .logo{font-size:13.5px}
  }

  /* ---------- hero: one panel, the treatment's own stage ---------- */
  .hero{
    position:relative;overflow:hidden;color:var(--w);
    min-height:min(680px, calc(92dvh - var(--tick) - var(--head)));
    display:flex;align-items:center;justify-content:center;
  }
  .hero img.bg,.hero video{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 28%;
  }
  .hero video{opacity:1;pointer-events:none;transition:opacity .8s var(--ease)}
  .hero video.off{opacity:0}
  .hero::after{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:
      linear-gradient(to bottom, rgba(38,20,18,.2) 0%, rgba(38,20,18,0) 34%),
      linear-gradient(to top,    rgba(38,20,18,.4) 0%, rgba(38,20,18,0) 60%);
  }
  .hero::before{
    content:"";position:absolute;top:0;left:0;right:0;height:2px;z-index:4;
    background:linear-gradient(90deg,var(--rose),var(--lilac));
  }
  .hero-inner{
    position:relative;z-index:2;text-align:center;width:100%;max-width:880px;
    padding:clamp(48px,8vw,90px) 22px;
  }
  .hero-inner::before{
    content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
    width:190%;height:150%;z-index:-1;pointer-events:none;border-radius:50%;
    background:radial-gradient(closest-side,
      rgba(26,13,12,.9) 0%, rgba(26,13,12,.74) 46%, rgba(26,13,12,.4) 74%, rgba(26,13,12,0) 100%);
  }
  .crumb{margin:0 0 14px;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--w-70)}
  .crumb a{color:var(--w-70);text-decoration:none}
  .crumb a:hover{color:#fff}
  .crumb i{font-style:normal;padding:0 7px;color:var(--w-40)}
  .hero h1{
    margin:0;font-size:clamp(1.55rem,4.2vw,2.9rem);font-weight:800;
    letter-spacing:-.03em;line-height:1.18;text-wrap:balance;
  }
  .hero h1 em{font-style:normal;color:#FFC9C0}
  .hero .method{
    margin:14px 0 0;font-size:12px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--rose);
  }
  .hero .price{
    margin:18px 0 0;line-height:1;color:var(--w);
    font-size:clamp(26px,3vw,36px);font-weight:700;letter-spacing:-.02em;
  }
  .hero .price small{
    display:block;font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
    color:var(--w-70);margin-top:9px;
  }
  .spec{margin:16px 0 0;padding:0;list-style:none;display:flex;gap:6px;justify-content:center;flex-wrap:wrap}
  .spec li{
    font-size:9.5px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;
    color:var(--w-70);border:1px solid rgba(255,255,255,.3);border-radius:50px;padding:5px 11px;
    white-space:nowrap;
  }
  .hero .acts{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:22px}
  .bookpill{
    position:relative;z-index:3;
    display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 26px;
    border-radius:50px;background:var(--w);color:var(--ink);text-decoration:none;
    font-size:13.5px;font-weight:700;letter-spacing:.01em;
    box-shadow:0 6px 20px rgba(0,0,0,.3);
    transition:transform .2s var(--ease),background .2s var(--ease);
  }
  .bookpill i{font-size:15px;color:var(--red)}
  .bookpill:hover{transform:translateY(-2px)}
  .bookpill:focus-visible{outline:3px solid var(--rose);outline-offset:3px}
  .bookpill.ghosted{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.4);box-shadow:none}
  .bookpill.ghosted i{color:#fff}
  .hero .disc{margin:18px 0 0;font-size:10.5px;line-height:1.6;color:rgba(255,255,255,.58)}

  /* ---------- portrait hero ----------
     The hero art (and all four Veo clips) is 9:16 — it was shot for the homepage's tall
     gateway panels. Poured full-bleed into a 2.1:1 banner, object-fit:cover shows only ~27%
     of the frame: a band across a forehead instead of the portrait. On wide screens the
     media therefore becomes a framed column BESIDE the copy, at its own aspect ratio, so
     the whole shot reads. Below 860px the banner is close enough to portrait that
     full-bleed still works, and that path is left untouched. */
  @media (min-width:860px){
    .hero.portrait{
      display:flex;align-items:center;justify-content:flex-start;
      gap:clamp(28px,4vw,64px);
      padding:clamp(44px,5vw,72px) clamp(28px,5vw,72px);
      min-height:clamp(580px,76vh,720px);
      background:linear-gradient(115deg,#2A1E1C 0%,#3C2A26 52%,#2A1E1C 100%);
    }
    /* the full-bleed scrim and the text halo both exist to rescue text sitting ON the
       photo; over the solid band they only muddy it */
    .hero.portrait::after{display:none}
    .hero.portrait .hero-inner::before{display:none}

    .hero.portrait img.bg,.hero.portrait video{
      position:absolute;inset:auto;left:auto;
      right:clamp(28px,5vw,72px);top:50%;transform:translateY(-50%);
      height:min(64vh,540px);width:auto;max-width:min(40vw,440px);
      object-fit:cover;object-position:50% 40%;
      border-radius:26px;
      box-shadow:0 30px 70px rgba(0,0,0,.45);
    }
    .hero.portrait .hero-inner{
      text-align:left;margin:0;padding:0;width:auto;
      max-width:min(56%,600px);
    }
    .hero.portrait .spec,.hero.portrait .acts{justify-content:flex-start}
    .hero.portrait .price small{letter-spacing:.14em}
    /* several pages centre their hero lead with margin-inline:auto, which in a left-aligned
       column shows up as one paragraph indented ~46px past the headline */
    .hero.portrait .hero-inner > p{margin-left:0;margin-right:0}
  }
  @media (max-width:700px){
    .hero{min-height:calc(88dvh - var(--tick) - var(--head) - var(--bar))}
    .hero-inner{padding:40px 18px}
  }
  @media (prefers-reduced-motion:no-preference){
    .hero{clip-path:inset(100% 0 0 0);animation:wipe 1s var(--slow) .06s forwards}
    @keyframes wipe{to{clip-path:inset(0 0 0 0)}}
  }
  @media (prefers-reduced-motion:reduce){
    .hero{clip-path:none}
    .hero video{display:none}
  }

  /* ---------- contact rail ---------- */
  .rail{
    position:fixed;right:clamp(10px,1.4vw,20px);top:50%;transform:translateY(-50%);z-index:12;
    display:grid;gap:9px;
  }
  .rail a{
    display:flex;align-items:center;gap:10px;height:44px;width:44px;padding:0 0 0 13px;
    overflow:hidden;justify-self:end;
    border-radius:50px;background:var(--w);color:var(--ink);text-decoration:none;
    font-size:13px;font-weight:600;white-space:nowrap;
    box-shadow:0 4px 16px rgba(120,60,55,.2);
    transition:width .34s var(--ease),box-shadow .22s var(--ease),padding .34s var(--ease);
  }
  .rail a:hover,.rail a:focus-visible{width:142px;padding-right:20px;box-shadow:0 8px 22px rgba(120,60,55,.3)}
  .rail a span{opacity:0;transition:opacity .26s var(--ease) .06s}
  .rail a:hover span,.rail a:focus-visible span{opacity:1}
  .rail a:focus-visible{outline:3px solid var(--rose);outline-offset:3px}
  .rail i{font-size:17px;flex:none}
  .rail .g-ico{color:#F0A83C}.rail .w-ico{color:#25D366}
  .rail .m-ico{color:#2A7DE1}.rail .p-ico{color:var(--red)}.rail .b-ico{color:var(--red)}
  @media (max-width:1000px){
    .rail{
      right:0;left:0;top:auto;bottom:0;transform:none;
      display:grid;grid-auto-flow:column;grid-auto-columns:1fr;
      gap:0;background:var(--w);
      padding-bottom:var(--safe);
      border-top:1px solid rgba(42,42,42,.08);
      box-shadow:0 -2px 18px rgba(120,60,55,.14);
    }
    .rail a{
      height:var(--bar);width:auto;min-width:0;border-radius:0;padding:0 4px;box-shadow:none;
      display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
      font-size:10.5px;font-weight:600;overflow:hidden;justify-self:stretch;
    }
    .rail a:hover,.rail a:focus-visible{width:auto;padding:0 4px;box-shadow:none}
    .rail a:active{background:var(--peach-0)}
    .rail a span{opacity:1;line-height:1;max-width:100%;overflow:hidden;text-overflow:ellipsis}
    .rail i{font-size:19px;line-height:1}
    .rail a:focus-visible{outline:3px solid var(--rose);outline-offset:-3px}
  }
  @media (max-width:300px){
    .rail a span{display:none}
    .rail a{gap:0}
  }

  /* ---------- sticky sub-nav with scroll-spy ---------- */
  .subnav{
    position:sticky;top:0;z-index:9;
    background:rgba(255,253,252,.55);
    backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);
    box-shadow:
      0 14px 40px -18px rgba(140,60,50,.28),
      inset 0 2px 3px -1px rgba(255,255,255,.9),
      inset 0 -2px 4px -1px rgba(255,190,180,.35),
      inset 0 0 0 1px rgba(255,255,255,.5);
  }
  .subnav::before{
    content:"";position:absolute;top:1px;left:1px;right:1px;height:46%;
    border-radius:0 0 18px 18px;
    background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,0));
    pointer-events:none;
  }
  @media (prefers-reduced-transparency:reduce){ .subnav{background:#FFFDFC;backdrop-filter:none} }
  .subnav ul{
    display:flex;gap:7px;list-style:none;margin:0 auto;padding:11px clamp(12px,3vw,26px);
    max-width:1240px;overflow-x:auto;scrollbar-width:none;position:relative;
  }
  .subnav ul::-webkit-scrollbar{display:none}
  .nav-pill{
    position:absolute;top:11px;left:0;height:38px;width:0;border-radius:50px;
    background:var(--ink);box-shadow:0 4px 12px rgba(20,10,10,.22), inset 0 1px 1px rgba(255,255,255,.18);
    transition:transform .5s cubic-bezier(.34,1.2,.64,1), width .5s cubic-bezier(.34,1.2,.64,1);
    pointer-events:none;
  }
  @media (prefers-reduced-motion:reduce){ .nav-pill{transition:none} }
  .subnav a{
    position:relative;z-index:1;
    display:inline-flex;align-items:center;height:38px;padding:0 17px;border-radius:50px;
    color:var(--ink-55);text-decoration:none;font-size:13px;font-weight:700;white-space:nowrap;
    transition:color .3s var(--ease),transform .15s var(--ease);
  }
  .subnav a:active{transform:scale(.94)}
  .subnav a:hover{color:var(--ink)}
  .subnav a[aria-current="true"]{color:#fff}
  .subnav a:focus-visible{outline:3px solid rgba(233,145,142,.55);outline-offset:2px}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }
  section[id]{scroll-margin-top:76px}

  /* ---------- reveal system ---------- */
  .rv{opacity:0;transform:translateY(26px);transition:opacity 1.15s var(--slow),transform 1.15s var(--slow)}
  .rv.in{opacity:1;transform:none}
  .rv[style*="--i"]{transition-delay:calc(var(--i) * 100ms)}
  @media (prefers-reduced-motion:reduce){ .rv{opacity:1;transform:none;transition:none} }
  @media (prefers-reduced-motion:no-preference){
    .rv.in .photo,.rv.in figure,figure.rv.in{
      animation:mediawipe .9s var(--slow) .12s backwards;
    }
    @keyframes mediawipe{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
  }

  /* ---------- section grammar ---------- */
  .sec{position:relative;overflow:clip;padding:clamp(56px,8vw,110px) clamp(18px,4vw,56px)}
  .sec.peach{background:linear-gradient(var(--peach-0) 0%, var(--peach-2) 55%, var(--peach-3) 100%)}
  .sec.white{background:#FFFDFC}
  .wrap{max-width:1240px;margin:0 auto}

  .shead{text-align:center;margin-bottom:clamp(30px,4vw,54px)}
  .shead .kicker{
    display:inline-block;margin:0 0 16px;padding:7px 16px;border-radius:50px;
    background:var(--peach-2);color:#A85E63;
    font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;
  }
  .sec.white .shead .kicker{background:var(--peach-1)}
  .shead h2{
    margin:0;font-size:clamp(1.6rem,3.2vw,2.5rem);font-weight:800;letter-spacing:-.035em;line-height:1.22;
  }
  .shead h2 em{font-style:normal;color:var(--coral)}
  .shead p{margin:14px auto 0;max-width:58ch;font-size:15px;line-height:1.8;color:var(--ink-55)}
  .shead.xl h2{font-size:clamp(2.1rem,5.2vw,4rem);line-height:1.08}

  .shead h2 em{
    background:linear-gradient(90deg,var(--coral),var(--rose),var(--lilac),var(--coral));
    background-size:300% 100%;
    -webkit-background-clip:text;background-clip:text;
    color:transparent;-webkit-text-fill-color:transparent;
  }
  @media (prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){
    .shead h2 em{animation:huecycle 9s linear infinite}
  }
  @keyframes huecycle{to{background-position:300% 0}}
  @media (hover:none){
    .shead h2 em{
      background:none;color:var(--rose);
      -webkit-text-fill-color:var(--rose);
      animation:none;
    }
  }

  /* headline word choreography */
  .shead h2 .w{display:inline-block;white-space:pre}
  @media (prefers-reduced-motion:no-preference){
    .shead h2{overflow:hidden}
    .shead h2 .w{
      transform:translateY(1.15em) rotate(3deg);opacity:0;
      transition:transform .8s cubic-bezier(.22,.61,.36,1),opacity .5s ease;
      transition-delay:calc(var(--wi) * 70ms);
    }
    .shead[data-fx="clip"] h2 .w{transform:translateY(0) scale(1.3);filter:blur(6px)}
    .shead[data-fx="scale"] h2 .w{transform:translateY(0) scale(.6) rotate(-4deg)}
    .shead.rv.in h2 .w{transform:none;opacity:1;filter:none}
  }

  .shine{position:relative;overflow:hidden;isolation:isolate}
  .shine::after{
    content:"";position:absolute;top:-60%;bottom:-60%;width:38%;left:-60%;z-index:2;
    background:linear-gradient(100deg,transparent,rgba(255,255,255,.72),transparent);
    transform:skewX(-18deg);pointer-events:none;
  }
  @media (prefers-reduced-motion:no-preference){
    .shine::after{animation:shine 4.4s ease-in-out infinite}
    @keyframes shine{0%,72%{left:-60%}92%,100%{left:118%}}
  }

  /* ---------- benefits strip (the method's five pillars) ---------- */
  .pillars{
    display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--peach-2);
    border:1px solid var(--peach-2);border-radius:20px;overflow:hidden;
  }
  .pillars div{background:#FFFDFC;padding:24px 18px;text-align:center}
  .pillars img{width:38px;height:38px;margin-bottom:12px}
  .pillars h3{margin:0;font-size:12.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
  .pillars p{margin:8px 0 0;font-size:13px;line-height:1.65;color:var(--ink-55)}
  @media (max-width:1000px){ .pillars{grid-template-columns:repeat(2,1fr)} .pillars div:last-child{grid-column:span 2} }
  @media (max-width:480px){ .pillars{grid-template-columns:1fr} .pillars div:last-child{grid-column:auto} }

  /* ---------- brand statement ---------- */
  .statement{
    position:relative;min-height:clamp(420px,62vh,640px);
    display:flex;align-items:center;justify-content:center;text-align:center;
    padding:clamp(48px,7vw,90px) clamp(18px,4vw,56px);overflow:hidden;
  }
  .statement img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
  .statement::after{
    content:"";position:absolute;inset:0;z-index:1;
    background:linear-gradient(rgba(28,16,16,.56),rgba(28,16,16,.7));
  }
  /* contrast floor: a local halo that travels with the text, so legibility
     stops depending on how bright the photograph is behind it */
  .statement .in-st::before{
    content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
    width:170%;height:150%;z-index:-1;pointer-events:none;border-radius:50%;
    background:radial-gradient(closest-side,
      rgba(26,13,12,.66) 0%, rgba(26,13,12,.44) 55%, rgba(26,13,12,0) 100%);
  }
  .statement .ghost{
    position:absolute;left:2%;top:6%;z-index:1;
    font-size:clamp(3.4rem,9vw,8rem);font-weight:900;letter-spacing:-.05em;line-height:1;
    color:rgba(255,255,255,.07);white-space:nowrap;pointer-events:none;user-select:none;
  }
  .statement .in-st{position:relative;z-index:2;max-width:640px}
  .statement p{
    margin:0;color:#fff;font-size:clamp(1.35rem,2.7vw,2.15rem);font-weight:700;
    letter-spacing:-.035em;line-height:1.42;
  }
  .statement p span{display:block}
  .statement em{font-style:normal;color:var(--coral)}
  .statement .sig{
    margin:22px 0 0;font-size:11px;font-weight:800;letter-spacing:.28em;text-transform:uppercase;
    color:var(--rose);
  }
  @media (max-width:760px){
    .statement{min-height:clamp(300px,46vh,420px);padding:clamp(36px,6vw,60px) 20px}
    .statement img{object-position:60% 30%}
    .statement .ghost{font-size:clamp(2.4rem,13vw,4rem);top:4%}
  }
  @media (prefers-reduced-motion:no-preference){
    .statement p span{
      clip-path:inset(0 0 110% 0);transform:translateY(.4em);
      transition:clip-path .9s cubic-bezier(.22,.61,.36,1),transform .9s cubic-bezier(.22,.61,.36,1);
    }
    .statement p span:nth-child(2){transition-delay:.15s}
    .statement p span:nth-child(3){transition-delay:.3s}
    .statement .in-st.rv.in p span{clip-path:inset(0 0 -20% 0);transform:none}
  }

  /* ---------- overview: running copy with a sticky photo ---------- */
  .over-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(24px,4vw,60px);align-items:start}
  .over-copy h3{margin:34px 0 0;font-size:clamp(1.1rem,1.7vw,1.35rem);font-weight:800;letter-spacing:-.025em}
  .over-copy p{margin:13px 0 0;font-size:15px;line-height:1.85;color:#4E4548;max-width:66ch}
  .over-copy p:first-child{margin-top:0}
  .over-photo{position:sticky;top:96px;margin:0;border-radius:22px;overflow:hidden;
    box-shadow:0 14px 40px rgba(140,90,80,.2)}
  /* the source photo carries a baked-in dark mat; the slight zoom crops it out
     so the card is the only frame */
  .over-photo .ph{display:block;overflow:hidden}
  .over-photo img{width:100%;height:auto;display:block;transform:scale(1.12)}
  .over-photo figcaption{
    padding:12px 16px;background:#FFFDFC;border-top:1px solid var(--peach-2);
    font-size:12.5px;color:var(--ink-55);
  }
  @media (max-width:900px){
    .over-grid{grid-template-columns:1fr}
    .over-photo{position:static;order:-1;max-width:560px}
  }

  /* ---------- cards / grids ---------- */
  .pcard{
    position:relative;background:#FFFDFC;border:1px solid var(--peach-2);border-radius:18px;
    padding:22px;overflow:hidden;
    transition:transform .3s var(--ease),box-shadow .3s var(--ease);
  }
  .pcard::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:var(--bartint,linear-gradient(90deg,#E9918E,#C9A8E8))}
  .pcard:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(140,90,80,.16)}
  .pcard h3{margin:6px 0 0;font-size:1.2rem;font-weight:900;letter-spacing:-.02em}
  .pcard > p{margin:10px 0 0;font-size:14px;line-height:1.75;color:var(--ink-55)}
  .tools{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,20px)}
  @media (max-width:900px){ .tools{grid-template-columns:1fr} }

  /* science blocks */
  .sci{margin:0 0 clamp(36px,5vw,56px)}
  .sci:last-child{margin-bottom:0}
  .sci-h{margin:0 0 20px;font-size:clamp(1.15rem,1.8vw,1.45rem);font-weight:800;letter-spacing:-.025em}
  .sci-top{display:grid;grid-template-columns:1fr;gap:clamp(16px,2.4vw,36px);align-items:center;margin-bottom:26px}
  .sci-anatomy{margin:0;background:#fff;border:1px solid var(--peach-2);border-radius:20px;overflow:hidden}
  .sci-anatomy img{width:100%;height:auto;display:block;background:var(--peach-0)}
  .sci-anatomy figcaption{
    font-size:12.5px;color:#A85E63;font-weight:600;text-align:center;padding:10px 14px;
    background:var(--peach-1);
  }
  .sci-intro p{font-size:15px;line-height:1.8;color:#4E4548;margin:0 0 16px}
  .sci-label{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin:2px 0 12px}
  .sci-tag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#A85E63;margin-bottom:10px}
  .sci-causes{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .sci-cause{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--peach-2);border-radius:14px;padding:8px 12px}
  .sci-cause img{width:42px;height:42px;flex:none;border-radius:10px;object-fit:cover}
  .sci-cause span{font-size:13.5px;font-weight:700;line-height:1.2}
  .sci-panel{background:#fff;border:1px solid var(--peach-2);border-radius:20px;padding:22px}
  .sci-panel > p{font-size:15px;line-height:1.8;color:#4E4548;margin:0 0 18px}
  .sci-cards{display:grid;grid-template-columns:1fr;gap:14px}
  .sci-card{margin:0;display:flex;align-items:stretch;min-height:118px;background:var(--peach-0);border:1px solid var(--peach-2);border-radius:16px;overflow:hidden}
  .sci-card img{width:132px;flex:none;object-fit:cover;object-position:50% 36%;display:block}
  .sci-cap{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:14px 16px}
  .sci-cap strong{font-size:14.5px}
  .sci-cap span{font-size:13px;color:var(--ink-55);line-height:1.55}
  .sci-syms{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:26px}
  .sci-sym{margin:0;background:#fff;border:1px solid var(--peach-2);border-radius:16px;overflow:hidden}
  .sci-sym img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
  .sci-sym figcaption{font-size:13.5px;font-weight:700;text-align:center;padding:12px 10px}
  .sci-duo{display:grid;grid-template-columns:1fr;background:var(--peach-0);border:1px solid var(--peach-2);border-radius:20px;overflow:hidden}
  .sci-duo-img{margin:0}
  .sci-duo-img img{width:100%;height:100%;min-height:210px;object-fit:cover;object-position:50% 38%;display:block}
  .sci-duo-body{padding:22px}
  .sci-duo-body p{font-size:15px;line-height:1.8;color:#4E4548;margin:0}
  @media (min-width:760px){
    .sci-top{grid-template-columns:.82fr 1.18fr;margin-bottom:32px}
    .sci-top.rev{grid-template-columns:1.18fr .82fr}
    .sci-top.rev .sci-intro{order:1}
    .sci-top.rev .sci-anatomy{order:2}
    .sci-cards{grid-template-columns:1fr 1fr;gap:16px}
    .sci-syms{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:30px}
    .sci-duo{grid-template-columns:.82fr 1.18fr;align-items:stretch}
  }

  .pullq{
    margin:clamp(24px,3vw,38px) auto;max-width:70ch;text-align:center;
    padding:clamp(22px,3vw,34px);background:#FFFDFC;border:1px solid var(--peach-2);border-radius:20px;
  }
  .pullq p{margin:0;font-size:clamp(1.02rem,1.5vw,1.25rem);line-height:1.7;font-weight:500}

  /* ---------- steps ---------- */
  .steps{list-style:none;margin:0;padding:0;counter-reset:s}
  .steps li{
    display:grid;grid-template-columns:64px 220px 1fr;gap:clamp(16px,2.4vw,32px);align-items:center;
    padding:clamp(16px,2vw,24px) 0;border-bottom:1px dashed var(--peach-3);
  }
  .steps li:first-child{border-top:1px dashed var(--peach-3)}
  .steps .n{
    font-size:clamp(1.2rem,2vw,1.7rem);font-weight:900;letter-spacing:-.04em;color:var(--rose);
  }
  .steps figure{margin:0;border-radius:14px;overflow:hidden;aspect-ratio:4/3;background:var(--peach-1)}
  .steps figure img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s var(--slow)}
  .steps li:hover figure img{transform:scale(1.06)}
  .steps h3{margin:0;font-size:clamp(1.02rem,1.5vw,1.25rem);font-weight:800;letter-spacing:-.025em}
  .steps p{margin:7px 0 0;font-size:14.5px;line-height:1.75;color:var(--ink-55);max-width:60ch}
  .steps ul{margin:10px 0 0;padding:0;list-style:none}
  .steps ul li{
    display:block;grid-template-columns:none;border:0;padding:4px 0 4px 22px;position:relative;
    font-size:13.5px;line-height:1.7;color:var(--ink-55);
  }
  .steps ul li::before{
    content:"\2713";position:absolute;left:0;top:4px;color:#2E9E6B;font-weight:700;
  }
  .steps ul li strong{color:var(--ink);font-weight:700}
  @media (max-width:860px){
    .steps li{grid-template-columns:44px 1fr;grid-template-areas:"n tx" "fig fig";gap:10px 14px}
    .steps .n{grid-area:n;align-self:start}
    .steps .tx{grid-area:tx}
    .steps figure{grid-area:fig;aspect-ratio:16/9;margin-top:4px}
  }

  /* ---------- candidates ---------- */
  .cands{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.6vw,18px)}
  .cand{background:#FFFDFC;border:1px solid var(--peach-2);border-radius:18px;padding:24px 26px}
  .cand h3{margin:0 0 14px;font-size:1.05rem;font-weight:900;letter-spacing:-.02em;display:flex;align-items:center;gap:9px}
  .cand h3 i{font-size:19px}
  .cand.yes h3 i{color:#2E9E6B}
  .cand.no h3 i{color:var(--red)}
  .cand ul{margin:0;padding:0;list-style:none}
  .cand li{
    position:relative;padding:7px 0 7px 26px;font-size:14px;line-height:1.65;color:#4E4548;
    border-bottom:1px dashed var(--peach-2);
  }
  .cand li:last-child{border-bottom:0}
  .cand.yes li::before{content:"\2713";position:absolute;left:2px;top:7px;color:#2E9E6B;font-weight:700}
  .cand.no li::before{content:"\00d7";position:absolute;left:3px;top:6px;color:var(--red);font-weight:700}
  @media (max-width:760px){ .cands{grid-template-columns:1fr} }

  /* ---------- aftercare ---------- */
  .phases{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.6vw,18px)}
  .phase{
    background:#FFFDFC;border:1px solid var(--peach-2);border-radius:18px;padding:22px;
    transition:transform .3s var(--ease),box-shadow .3s var(--ease);
  }
  .phase:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(140,90,80,.14)}
  .phase .when{
    display:inline-block;background:var(--peach-1);color:#A85E63;border-radius:50px;
    padding:5px 12px;font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  }
  .phase h3{margin:12px 0 0;font-size:1rem;font-weight:800;letter-spacing:-.02em}
  .phase p{margin:9px 0 0;font-size:13.5px;line-height:1.75;color:var(--ink-55)}
  @media (max-width:1000px){ .phases{grid-template-columns:1fr 1fr} }
  @media (max-width:560px){ .phases{grid-template-columns:1fr} }
  .products{margin-top:clamp(26px,3.4vw,40px)}
  .products h3{margin:0 0 16px;text-align:center;font-size:1.05rem;font-weight:800;letter-spacing:-.02em}
  .prodrow{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--peach-2);
    border:1px solid var(--peach-2);border-radius:18px;overflow:hidden}
  .prodrow div{background:#FFFDFC;padding:20px 22px}
  .prodrow h4{margin:0;font-size:14.5px;font-weight:800}
  .prodrow p{margin:7px 0 0;font-size:13px;line-height:1.7;color:var(--ink-55)}
  @media (max-width:760px){ .prodrow{grid-template-columns:1fr} }

  /* ---------- benefits (why) ---------- */
  .probs{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.6vw,18px)}
  .prob{
    display:flex;flex-direction:column;background:#FFFDFC;border:1px solid var(--peach-2);
    border-radius:18px;padding:22px;
    transition:transform .34s var(--ease),box-shadow .34s var(--ease);
  }
  .prob:hover{transform:translateY(-5px);box-shadow:0 16px 36px rgba(140,90,80,.16)}
  .prob i{
    width:46px;height:46px;border-radius:14px;background:var(--peach-1);color:var(--red);
    display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:14px;
  }
  .prob h3{margin:0;font-size:1rem;font-weight:800;letter-spacing:-.025em;line-height:1.35}
  .prob p{margin:9px 0 0;font-size:13.5px;line-height:1.7;color:var(--ink-55);flex:1}
  @media (max-width:1100px){ .probs{grid-template-columns:1fr 1fr} }
  @media (max-width:560px){ .probs{grid-template-columns:1fr} }

  /* ---------- reviews ---------- */
  .seal{
    width:96px;height:96px;border-radius:50%;margin:0 auto 20px;
    background:#fff;border:2px solid var(--peach-3);
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    box-shadow:0 6px 22px rgba(140,90,80,.14);
  }
  .seal .g{color:#F0A83C;font-size:11px;letter-spacing:.04em}
  .seal .n{font-size:1.6rem;font-weight:800;letter-spacing:-.04em;line-height:1;margin-top:2px}
  .seal .l{font-size:8.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-55);margin-top:3px}
  .stats{
    display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--peach-2);
    border:1px solid var(--peach-2);border-radius:20px;overflow:hidden;
  }
  .stats div{background:#FFFDFC;padding:26px 18px;text-align:center;transition:transform .34s var(--ease),box-shadow .34s var(--ease)}
  .stats b{display:block;font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:900;letter-spacing:-.045em;line-height:1;color:var(--ink)}
  .stats span{display:block;margin-top:8px;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-55)}
  @media (max-width:700px){ .stats{grid-template-columns:1fr 1fr} }
  .quotes{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(12px,1.6vw,18px)}
  .quotes blockquote{
    margin:0;background:#FFFDFC;border:1px solid var(--peach-2);border-radius:18px;
    padding:30px 26px 24px;position:relative;
    transition:transform .34s var(--ease),box-shadow .34s var(--ease);
  }
  .quotes blockquote::after{
    content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.9), inset 0 -1px 0 rgba(140,90,80,.16);
  }
  .quotes blockquote:nth-child(even){background:var(--peach-0)}
  .quotes blockquote::before{
    content:"C";position:absolute;top:-6px;left:20px;
    font-size:64px;font-weight:900;line-height:1;color:var(--rose);opacity:.3;pointer-events:none;
  }
  .quotes .qs{display:flex;gap:2px;margin-bottom:11px}
  .quotes .qs i{color:#F0A83C;font-size:12px}
  .quotes p{margin:0;font-size:15px;line-height:1.75}
  .quotes footer{margin-top:13px;font-size:13px;font-weight:700;color:var(--ink)}
  .quotes footer span{font-weight:500;color:var(--ink-55)}
  @media (max-width:760px){ .quotes{grid-template-columns:1fr} }

  .seemore{display:flex;justify-content:center;margin-top:30px}
  .btn-pill{
    display:inline-flex;align-items:center;gap:9px;height:52px;padding:0 30px;border-radius:50px;
    background:var(--ink);color:#fff;text-decoration:none;font-size:14.5px;font-weight:700;
    transition:transform .2s var(--ease),background .2s var(--ease);
  }
  .btn-pill:hover{transform:translateY(-2px)}
  .btn-pill.ghost{background:#fff;color:var(--ink);border:1px solid var(--peach-3)}
  .btn-pill.ghost:hover{background:var(--peach-0)}
  .btn-pill.coral{background:var(--red)}
  .btn-pill:focus-visible{outline:3px solid rgba(233,145,142,.55);outline-offset:3px}

  /* ---------- pricing ---------- */
  .pricemenu{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,20px)}
  .prow{display:flex;align-items:baseline;gap:8px;padding:10px 0}
  .pn{font-size:14px;font-weight:600;min-width:0;order:1}
  .pn small{display:block;font-size:11.5px;font-weight:400;color:var(--ink-55)}
  .prow::before{content:"";order:2;flex:1;border-bottom:2px dotted var(--peach-3);transform:translateY(-4px);min-width:14px}
  .pv{order:3;font-size:1.15rem;font-weight:900;letter-spacing:-.02em;color:var(--red);white-space:nowrap}
  .pv i{font-style:normal;font-size:10px;font-weight:700;color:var(--ink-55);margin-left:3px;text-transform:uppercase;letter-spacing:.06em}
  .pnote{margin:5px 0 12px;font-size:12px;color:var(--ink-55)}
  .pnote b{color:#A85E63}
  .incl{margin:0;padding:0;list-style:none}
  .incl li{display:grid;grid-template-columns:44px 1fr;gap:14px;padding:11px 0;border-bottom:1px dashed var(--peach-2);align-items:center}
  .incl li:last-child{border-bottom:0}
  .incl img{width:40px;height:40px}
  .incl strong{display:block;font-size:14px;font-weight:700}
  .incl span{font-size:12.5px;color:var(--ink-55)}
  @media (max-width:900px){ .pricemenu{grid-template-columns:1fr} }

  /* consultation ticket */
  .tkt-wrap{
    grid-column:1 / -1;display:block;width:min(560px,100%);margin:10px auto 0;
    text-decoration:none;color:var(--ink);position:relative;isolation:isolate;
    --start:120;
  }
  .tkt{
    display:flex;gap:0;
    transform:translate(var(--magx,0px),var(--magy,0px));
    filter:drop-shadow(0 22px 40px rgba(140,60,50,.2)) drop-shadow(0 4px 10px rgba(140,60,50,.08));
    transition:gap .55s cubic-bezier(.34,1.56,.64,1),transform .35s var(--ease);
  }
  .tkt-wrap:hover .tkt{gap:20px;transform:translate(var(--magx,0px),var(--magy,0px)) translateY(-5px) rotate(-.6deg)}
  .tkt-wrap[data-leaving] .tkt{transition:gap .55s cubic-bezier(.34,1.56,.64,1),transform .7s cubic-bezier(.2,1.8,.4,1)}
  .tkt-wrap:focus-visible{outline:3px solid var(--rose);outline-offset:6px;border-radius:24px}
  .tkt-main{
    position:relative;flex:1;min-width:0;background:#FFFDF9;
    padding:clamp(18px,3vw,26px);border-radius:20px 26px 26px 20px;
  }
  .tkt-head{
    display:flex;justify-content:space-between;gap:10px;
    font-size:10px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:#A89A94;
  }
  .tkt-serial{color:var(--red)}
  .tkt-body h3{
    margin:14px 0 6px;font-size:clamp(1.6rem,3.4vw,2.3rem);font-weight:900;
    letter-spacing:-.03em;line-height:.98;
  }
  .tkt-body p{margin:0;font-size:12.5px;letter-spacing:.06em;color:var(--ink-55)}
  .tkt-foot{
    display:flex;gap:clamp(18px,3.5vw,38px);margin-top:16px;padding-top:13px;
    border-top:1px solid rgba(42,42,42,.1);
  }
  .tkt-foot div{display:flex;flex-direction:column;gap:3px}
  .tkt-foot .k{font-size:9px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#A89A94}
  .tkt-foot .v{font-size:13.5px;font-weight:800}
  .tkt-perf{
    position:absolute;right:-2px;top:32px;bottom:32px;width:4px;
    background-image:linear-gradient(to bottom,transparent 50%,rgba(42,42,42,.22) 50%);
    background-size:100% 12px;transition:opacity .3s var(--ease);
  }
  .tkt-wrap:hover .tkt-perf{opacity:0}
  .tkt-stub{
    width:clamp(96px,22vw,132px);flex:none;background:#FFFDF9;
    border-radius:26px 20px 20px 26px;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;
    padding:20px 0;
  }
  .tkt-seal{
    width:44px;height:44px;border-radius:50%;
    background:linear-gradient(135deg,#F6C3CB,#FFF3F0 35%,#C9A8E8 60%,#F6C3CB);
    background-size:220% 220%;box-shadow:0 4px 12px rgba(140,60,50,.2);
  }
  @media (prefers-reduced-motion:no-preference){
    .tkt-seal{animation:seal-sheen 3.2s linear infinite}
    @keyframes seal-sheen{from{background-position:200% 0}to{background-position:-120% 0}}
  }
  .tkt-code{
    width:36px;height:78px;opacity:.85;
    background:repeating-linear-gradient(90deg,var(--ink),var(--ink) 2px,transparent 2px,transparent 4px,var(--ink) 4px,var(--ink) 5px,transparent 5px,transparent 8px);
  }
  .tkt-vip{
    font-size:10.5px;font-weight:800;letter-spacing:.3em;color:var(--red);
    writing-mode:vertical-rl;transform:rotate(180deg);
  }
  @media (hover:hover) and (prefers-reduced-motion:no-preference){
    .tkt-wrap::after{
      content:"";position:absolute;inset:-10px;z-index:-1;border-radius:30px;pointer-events:none;
      background:conic-gradient(from calc(var(--start) * 1deg),
        rgba(255,122,122,.0), rgba(255,122,122,.55), rgba(201,168,232,.55), rgba(255,181,32,.4), rgba(255,122,122,.0) 40%);
      filter:blur(18px);opacity:0;transition:opacity .4s var(--ease);
    }
    .tkt-wrap:hover::after{opacity:1}
  }
  @media (hover:none){
    .tkt-main,.tkt-stub{transition:transform .65s cubic-bezier(.34,1.56,.64,1)}
    .tkt-wrap[data-torn] .tkt-main{transform:rotate(-1.1deg) translateY(-2px)}
    .tkt-wrap[data-torn] .tkt-stub{transform:translateX(16px) translateY(4px) rotate(4deg)}
    .tkt-wrap[data-torn] .tkt-perf{opacity:0}
  }
  @media (max-width:480px){
    .tkt-foot{gap:14px}
    .tkt-body h3{font-size:1.45rem}
  }

  /* ---------- faq ---------- */
  .faq{max-width:880px;margin:0 auto}
  .faq details{
    background:#fff;border:1px solid var(--peach-2);border-radius:16px;margin-bottom:10px;
    overflow:hidden;
    transition:transform .34s var(--ease),box-shadow .34s var(--ease);
  }
  .faq details[open]{border-color:var(--peach-3);box-shadow:0 6px 20px rgba(140,90,80,.1)}
  .faq summary{
    list-style:none;cursor:pointer;padding:19px 22px;
    display:flex;align-items:center;justify-content:space-between;gap:18px;
    font-size:15.5px;font-weight:700;letter-spacing:-.01em;
  }
  .faq summary::-webkit-details-marker{display:none}
  .faq summary::after{
    content:"+";flex:none;width:28px;height:28px;border-radius:50%;background:var(--peach-1);
    color:var(--red);display:flex;align-items:center;justify-content:center;
    font-size:17px;font-weight:700;transition:transform .3s var(--ease),background .3s var(--ease);
  }
  .faq details[open] summary::after{transform:rotate(45deg);background:var(--red);color:#fff}
  .faq summary:focus-visible{outline:3px solid rgba(233,145,142,.55);outline-offset:-3px}
  .faq .ans{padding:0 22px 20px;font-size:14.5px;line-height:1.8;color:var(--ink-55)}
  .faq .ans b{color:var(--ink)}

  /* ---------- posts (related) ---------- */
  .posts{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,20px)}
  .post{
    display:flex;flex-direction:column;background:#FFFDFC;border:1px solid var(--peach-2);
    border-radius:18px;overflow:hidden;text-decoration:none;color:inherit;
    transition:transform .34s var(--ease),box-shadow .34s var(--ease);
  }
  .post:hover{transform:translateY(-5px);box-shadow:0 16px 36px rgba(140,90,80,.16)}
  .post:focus-visible{outline:3px solid var(--rose);outline-offset:3px}
  .post img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
  .post .b{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
  .post .tag{
    align-self:flex-start;background:var(--peach-1);color:#A85E63;border-radius:50px;
    padding:4px 11px;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  }
  .post h3{margin:11px 0 0;font-size:1.02rem;font-weight:800;letter-spacing:-.025em;line-height:1.35}
  .post p{margin:8px 0 0;font-size:13.5px;line-height:1.65;color:var(--ink-55);flex:1}
  .post .go{margin-top:14px;font-size:12.5px;font-weight:800;color:var(--red)}
  @media (max-width:860px){ .posts{grid-template-columns:1fr 1fr} }
  @media (max-width:520px){ .posts{grid-template-columns:1fr} }
  .readlist{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:clamp(22px,3vw,32px)}

  /* ---------- visit / aurora finale ---------- */
  .sec.aurora{position:relative;overflow:clip}
  .sec.aurora::before,.sec.aurora::after{
    content:"";position:absolute;inset:-30%;z-index:0;filter:blur(60px);pointer-events:none;
  }
  .sec.aurora::before{
    background:
      radial-gradient(38% 34% at 24% 32%, rgba(255,122,122,.4) 0%, transparent 70%),
      radial-gradient(34% 32% at 78% 24%, rgba(201,168,232,.42) 0%, transparent 70%);
  }
  .sec.aurora::after{
    background:
      radial-gradient(36% 30% at 68% 74%, rgba(255,181,32,.26) 0%, transparent 70%),
      radial-gradient(30% 28% at 22% 78%, rgba(233,145,142,.35) 0%, transparent 70%);
  }
  @media (prefers-reduced-motion:no-preference){
    .sec.aurora::before{animation:aur1 16s ease-in-out infinite alternate}
    .sec.aurora::after{animation:aur2 19s ease-in-out infinite alternate}
    @keyframes aur1{from{transform:translate(0,0) rotate(0)}to{transform:translate(6%,4%) rotate(8deg)}}
    @keyframes aur2{from{transform:translate(0,0) rotate(0)}to{transform:translate(-5%,-4%) rotate(-9deg)}}
  }
  .sec.aurora .wrap{position:relative;z-index:1}
  .visit{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(22px,3.4vw,50px);align-items:center;
    background:rgba(255,253,252,.82);border:1px solid rgba(255,255,255,.9);
    border-radius:24px;padding:clamp(20px,3vw,36px);
    backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
  @media (prefers-reduced-transparency:reduce){ .visit{background:#FFFDFC;backdrop-filter:none} }
  .trio{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--peach-2);
    border:1px solid var(--peach-2);border-radius:20px;overflow:hidden}
  .trio > div{background:#FFFDFC;padding:clamp(22px,3vw,34px);transition:transform .34s var(--ease),box-shadow .34s var(--ease)}
  .trio h3{
    margin:0 0 14px;font-size:11.5px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;
    color:var(--rose);
  }
  .trio p{margin:0;font-size:15.5px;font-weight:600;line-height:1.65}
  .trio p + p{margin-top:8px}
  .trio small{display:block;font-size:13px;font-weight:400;color:var(--ink-55);margin-top:5px;line-height:1.6}
  .trio a{color:var(--ink);text-decoration:none}
  .trio a:hover{color:var(--red)}
  .trio .big{font-size:clamp(1.2rem,2vw,1.55rem);font-weight:900;letter-spacing:-.03em}
  /* Inside .visit the trio is three columns of a half-width container, which squeezed the
     phone number onto three lines (it breaks at the space AND after the hyphen). Give the
     content column more room, trim the cell padding, and keep the number on one line. */
  .visit .trio > div{padding:clamp(16px,1.7vw,24px)}
  .visit .trio .big{font-size:clamp(1.05rem,1.45vw,1.35rem)}
  .trio .big a,.trio .big{white-space:nowrap}
  @media (max-width:820px){ .trio{grid-template-columns:1fr} }
  .visit .acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
  .visit .photo{border-radius:20px;overflow:hidden;box-shadow:0 10px 34px rgba(140,90,80,.16);aspect-ratio:4/3}
  .visit .photo img{width:100%;height:100%;object-fit:cover;display:block}
  @media (max-width:860px){ .visit{grid-template-columns:1fr} .visit .photo{order:-1} }

  /* ---------- footer ---------- */
  .foot{background:#151113;color:rgba(255,255,255,.72);padding:clamp(40px,5vw,64px) clamp(18px,4vw,56px) calc(clamp(28px,3vw,40px) + var(--safe))}
  .foot .wrap{display:flex;flex-wrap:wrap;gap:28px;justify-content:space-between;align-items:flex-start}
  .foot .logo{font-size:19px}
  .foot p{margin:12px 0 0;font-size:13px;line-height:1.8;max-width:38ch}
  .foot nav{display:flex;flex-wrap:wrap;gap:10px 26px}
  .foot nav a{color:rgba(255,255,255,.72);text-decoration:none;font-size:13.5px}
  .foot nav a:hover{color:#fff}
  .foot .sitelinks{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:14px}
  .foot .sitelinks a{font-size:12.5px;color:var(--ink-55);text-decoration:none}
  .foot .sitelinks a{color:rgba(255,255,255,.6)}
  .foot .sitelinks a:hover{color:#fff}
  .foot .legal{
    margin-top:30px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);
    font-size:11.5px;line-height:1.8;color:rgba(255,255,255,.5);max-width:80ch;
  }
  @media (max-width:1000px){ .foot{padding-bottom:calc(var(--bar) + var(--safe) + 28px)} }

  /* ---------- hover lifts + CTA squish + badge wipe ---------- */
  .quotes blockquote,.faq details,.stats div,.trio > div,.phase,.prob,.post,.pcard,.cand{
    transition:transform .34s var(--ease),box-shadow .34s var(--ease);
  }
  @media (hover:hover){
    .quotes blockquote:hover,.faq details:hover,.stats div:hover{
      transform:translateY(-4px);box-shadow:0 14px 32px rgba(140,90,80,.16);
    }
  }
  @media (hover:hover) and (prefers-reduced-motion:no-preference){
    .btn-pill:hover,.pill.book:hover,.bookpill:hover{
      animation:sqz .3s cubic-bezier(.68,-.55,.27,1.55) both;
    }
    @keyframes sqz{
      0%{transform:scale(1.06,.9) translateY(-1px)}
      60%{transform:scale(.97,1.03) translateY(-2px)}
      100%{transform:scale(1) translateY(-2px)}
    }
    .btn-pill:active,.pill.book:active{animation:none;transform:scale(.95,.92)}
  }
  .btn-pill:not(.ghost),.bookpill:not(.ghosted),.pill.book{position:relative;overflow:hidden;isolation:isolate}
  .btn-pill:not(.ghost)::before,.bookpill:not(.ghosted)::before,.pill.book::before{
    content:"";position:absolute;z-index:-1;border-radius:50px;
    transition:
      width 1.1s linear(0,.029 .8%,.13 1.8%,.908 7.2%,1.051 9.1%,1.112 11.2%,1.116 12.2%,1.106 13.4%,1.007 19.5%,.987 23.1%,1.001 35%,1),
      height .3s var(--ease),left .3s var(--ease),top .3s var(--ease);
  }
  .btn-pill:not(.ghost)::before{width:38px;height:38px;top:7px;left:18px;background:var(--red)}
  .btn-pill.coral::before{background:var(--ink)}
  .bookpill:not(.ghosted)::before{width:32px;height:32px;top:8px;left:15px;background:var(--peach-2)}
  .pill.book::before{width:30px;height:30px;top:6px;left:10px;background:var(--red)}
  @media (hover:hover){
    .btn-pill:not(.ghost):hover::before,.bookpill:not(.ghosted):hover::before,.pill.book:hover::before{
      width:100%;height:100%;top:0;left:0;
    }
  }
  @media (prefers-reduced-motion:reduce){
    .btn-pill:not(.ghost)::before,.bookpill:not(.ghosted)::before,.pill.book::before{transition:none}
  }
  @media (prefers-reduced-motion:no-preference){
    .pill.book{animation:bookbeat 5s ease-out infinite}
    @keyframes bookbeat{
      0%,72%{box-shadow:0 0 0 0 rgba(211,22,26,0)}
      78%{box-shadow:0 0 0 0 rgba(211,22,26,.38)}
      100%{box-shadow:0 0 0 13px rgba(211,22,26,0)}
    }
    @media (hover:none){
      .btn-pill:active,.bookpill:active,.pill.book:active{
        transform:scale(.96);transition:transform .12s var(--ease);
      }
    }
  }

/* ---------- prose (legal pages, long-form reading) ---------- */
.prose{max-width:72ch;margin:0 auto}
.prose h2{font-size:clamp(1.3rem,2.2vw,1.7rem);font-weight:800;letter-spacing:-.025em;margin:38px 0 0}
.prose h3{font-size:1.1rem;font-weight:800;letter-spacing:-.02em;margin:26px 0 0}
.prose p,.prose li{font-size:15px;line-height:1.85;color:#4E4548}
.prose p{margin:13px 0 0}
.prose ul,.prose ol{margin:12px 0 0;padding-left:22px}
.prose li{margin:6px 0 0}
.prose a{color:var(--red);text-decoration:none}
.prose a:hover{text-decoration:underline}
.prose strong{color:var(--ink)}
