:root{
  --ink:#2E2A25;
  --bark:#544C42;
  --paper:#FCFBF8;
  --cream:#F5F2EC;
  --birch:#EAE5DB;
  --taupe:#D6CFC2;
  --stone:#9A8F7D;
  --stone-dk:#6F6555;
  --muted:#807768;
  --rule:#E3DDD2;
  --rail:120px;
  --gap:clamp(20px,5vw,64px);
}

  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }

  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:"Jost",system-ui,sans-serif;
    font-size:18px;
    font-weight:300;
    line-height:1.72;
    letter-spacing:.005em;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3{font-family:"Cormorant Garamond",Garamond,serif;font-weight:300;letter-spacing:.005em;margin:0}
  p{margin:0 0 1.1em}
  a{color:var(--stone-dk)}
  a:focus-visible,button:focus-visible{outline:2px solid var(--stone-dk);outline-offset:3px}

  .mono{
    font-family:"Jost",sans-serif;
    font-size:13px;
    font-weight:500;
    letter-spacing:.13em;
    text-transform:uppercase;
    color:var(--muted);
  }

  .wrap{max-width:1240px;margin:0 auto;padding:0 var(--gap)}

  /* ---------- top bar ---------- */
  .bar{
    position:sticky;top:0;z-index:20;
    background:rgba(252,251,248,.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--rule);
  }
  .bar-in{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px var(--gap)}
  .bar-right{display:flex;align-items:center;gap:22px}
  .mark{display:flex;align-items:baseline;gap:11px;text-decoration:none;color:var(--ink)}
  .marklogo{width:30px;height:auto;display:block;flex:none;align-self:center;transform:translateY(-3px)}
  .markname{font-family:"Cormorant Garamond",serif;font-size:25px;letter-spacing:.03em;line-height:1}
  .mark span:last-child{font-family:"Jost",sans-serif;font-weight:500;font-size:15px;letter-spacing:.13em;color:var(--muted)}
  @media(max-width:520px){ .marklogo{width:25px} .markname{font-size:21px} }

  .menu-btn{
    display:none;background:none;border:0;cursor:pointer;padding:8px 0;
    color:var(--bark);font-size:14px;letter-spacing:.12em;
  }
  .menu-btn:hover{color:var(--stone-dk)}


  .btn-sm{
    background:var(--stone-dk);color:#FFFFFF!important;
    padding:8px 14px;border-radius:2px;
  }
  .btn-sm:hover{background:var(--stone-dk)}

  /* ---------- hero ---------- */
  .hero{
    position:relative;overflow:hidden;
    padding:clamp(60px,11vw,124px) 0 clamp(46px,8vw,86px);
    background:linear-gradient(180deg, var(--cream) 0%, var(--paper) 78%);
    border-bottom:1px solid var(--rule);
  }
  .hero-name{
    font-size:clamp(34px,7.5vw,74px);
    line-height:1.0;
    font-weight:300;
    margin:26px 0 0;
    letter-spacing:.01em;
    word-spacing:-0.08em;
  }
  .hero-name em{font-style:italic;font-weight:300}
  .hero-line{margin-top:28px;padding-top:24px;border-top:1px solid var(--rule)}
  .hero-role{font-size:19px;color:var(--bark);max-width:48ch;margin:0}
  .hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
  .btn{
    display:inline-block;text-decoration:none;border-radius:2px;
    font-family:"Jost",sans-serif;font-weight:500;font-size:14px;letter-spacing:.15em;
    text-transform:uppercase;padding:20px 40px;
  }
  .btn-primary{background:var(--stone-dk);color:#FFFFFF}
  .book-cta{
    margin-top:52px;padding:clamp(30px,4vw,46px);
    background:var(--cream);border:1px solid var(--taupe);text-align:center;
  }
  .book-cta h3{font-size:31px;margin:0 0 8px}
  .book-cta p{color:var(--bark);margin:0 0 24px;font-size:17px}
  .book-cta .btn{font-size:15px;padding:22px 46px}
  .btn-primary:hover{background:var(--stone-dk)}
  .btn-ghost{border:1px solid var(--bark);color:var(--ink)}
  .btn-ghost:hover{background:rgba(46,42,37,.04)}

  /* visible by default; only hidden when JS is confirmed running */
  .reveal{opacity:1;transform:none}
  .js .reveal{opacity:1;transform:none}
  .js .reveal.in{opacity:1;transform:none}
  @media (prefers-reduced-motion:reduce){ .js .reveal{opacity:1;transform:none;transition:none} }

  /* ---------- annotated sections ---------- */
  section{padding:clamp(68px,8vw,116px) 0;border-top:1px solid var(--rule)}
  .tinted{background:var(--cream)}
  .grid{display:grid;grid-template-columns:var(--rail) 1fr;gap:0 40px;align-items:start}
  @media(max-width:820px){ .grid{grid-template-columns:1fr;gap:18px} }

  .fig{position:sticky;top:96px}
  .fig .n{display:block;color:var(--ink);font-weight:500}
  .fig .rule{display:block;height:1px;background:var(--stone);opacity:.5;margin:10px 0}
  @media(max-width:820px){ .fig{position:static} .fig .rule{max-width:56px} }

  h2{font-size:clamp(34px,5.4vw,54px);line-height:1.08;margin-bottom:14px;max-width:20ch}
  .lead{font-size:19px;line-height:1.6;max-width:68ch}
  .body{max-width:72ch;color:var(--bark)}
  .body ul{margin:14px 0;padding-left:22px}
  .body li{margin-bottom:8px;line-height:1.65}

  /* ---------- therapeutic page: boxed condition sections, clearer option lists ---------- */
  .tx-box{
    border:1px solid var(--taupe);background:var(--cream);
    padding:clamp(24px,3vw,32px);margin-top:8px;max-width:none;
  }
  .tx-box > p:first-child{margin-top:0}
  .tx-box .opt-label{
    font-family:"Jost",sans-serif;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;
    color:var(--stone-dk);margin:26px 0 10px;
  }
  .tx-box .opt-label:first-of-type{margin-top:14px}
  .tx-box ul{
    background:var(--paper);border:1px solid var(--rule);border-radius:2px;
    padding:16px 22px 16px 44px;margin:0;
  }
  .tx-box li{margin-bottom:7px}
  .tx-box li:last-child{margin-bottom:0}
  .tx-box p{color:var(--bark)}

  /* ---------- credentials ledger ---------- */
  .ledger{margin:34px 0 0;border-top:1px solid var(--rule)}
  .row{display:grid;grid-template-columns:150px 1fr;gap:6px 28px;padding:14px 0;border-bottom:1px solid var(--rule)}
  @media(max-width:600px){ .row{grid-template-columns:1fr;gap:4px} }
  .row dt{font-family:"Jost",sans-serif;font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0}
  .row dd{margin:0;font-size:17.5px}
  .row dd small{display:block;color:var(--muted);font-size:15.5px}

  /* ---------- portrait ---------- */
  .split{display:grid;grid-template-columns:1fr 300px;gap:44px;align-items:start}
  @media(max-width:820px){ .split{grid-template-columns:1fr} }
  .split .mono{font-size:15px}
  .split .body{font-size:19px;line-height:1.7}
  .portrait{
    aspect-ratio:4/5;background:var(--birch);
    display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;
  }
  .portrait img{width:100%;height:100%;object-fit:cover;display:block}
  .cap{margin-top:10px}

  /* ---------- principles ---------- */
  .three{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:8px}
  @media(max-width:820px){ .three{grid-template-columns:1fr;gap:26px} }
  .three h3{font-size:26px;margin-bottom:8px}
  .three p{font-size:17px;color:var(--bark);margin:0;line-height:1.65}
  .three > div{
    border:1px solid var(--taupe);background:var(--paper);
    padding:18px 18px 22px;transition:border-color .2s ease,transform .2s ease;
  }
  .three > div:hover{border-color:var(--stone-dk);transform:translateY(-2px)}
  .three .topic-img{
    width:calc(100% + 36px);height:auto;display:block;
    margin:-18px -18px 16px;border:0;
  }

  .cv-head{font-size:30px;margin:0 0 10px}
  .cv + h3.cv-head{margin-top:44px}

  /* ---------- treatments ---------- */
  .tx{border-top:1px solid var(--rule);margin-top:8px}
  .tx-item{display:grid;grid-template-columns:1fr 1.5fr;gap:10px 40px;padding:24px 0;border-bottom:1px solid var(--rule)}
  @media(max-width:700px){ .tx-item{grid-template-columns:1fr;gap:8px} }
  .tx-item h3{font-size:28px}
  .tx-item p{margin:0;color:var(--bark);font-size:17.5px}
  .note{
    margin-top:34px;padding:24px 26px;background:var(--cream);
    border-left:2px solid var(--stone);font-size:17px;line-height:1.65;color:var(--bark);
  }
  .note p:last-child{margin-bottom:0}

  /* ---------- credentials ---------- */
  .cv{
    margin-top:0;background:var(--cream);
    border:1px solid var(--taupe);border-left:3px solid var(--stone);
    padding:4px clamp(20px,3vw,34px);
  }
  .cv-item{
    display:grid;grid-template-columns:190px 1fr;gap:4px 36px;
    padding:22px 0;border-bottom:1px solid var(--taupe);
  }
  .cv-item:last-child{border-bottom:0}
  @media(max-width:700px){ .cv-item{grid-template-columns:1fr;gap:4px} }
  .cv-item .when{
    font-family:"Jost",sans-serif;font-weight:500;font-size:15px;
    letter-spacing:.08em;color:var(--stone-dk);padding-top:7px;
  }
  .cv-item h3{font-size:25px;margin-bottom:1px}
  .cv-item .where{display:block;color:var(--muted);font-size:15.5px;margin-bottom:8px}
  .cv-item p{margin:0;color:var(--bark);font-size:17px;line-height:1.6}
  .sub{margin-top:34px}
  .tinted .sub:last-child{padding-bottom:56px}
  .sub h3{font-size:30px;margin-bottom:8px}
  /* a plain multi-column list, not buttons */
  .skills{
    columns:2;column-gap:clamp(28px,4vw,56px);
    margin:20px 0 0;padding:0;list-style:none;
  }
  @media(min-width:1000px){ .skills{columns:3} }
  @media(max-width:600px){ .skills{columns:1} }
  .skills li{
    break-inside:avoid;
    position:relative;padding:8px 0 8px 26px;
    font-size:17px;color:var(--bark);
    border-bottom:1px solid var(--rule);
  }
  .skills li::before{
    content:"";position:absolute;left:0;top:13px;
    width:13px;height:15px;
    background:url("images/logo.png") no-repeat center/contain;
    opacity:.45;
  }

  /* ---------- image slots ---------- */
  .imgslot{
    background:var(--birch);display:flex;align-items:center;justify-content:center;
    text-align:center;padding:16px;overflow:hidden;
  }
  .imgslot span{color:var(--ink);opacity:.7;line-height:1.8}
  .imgslot img{width:100%;height:100%;object-fit:cover;display:block}
  .r32{aspect-ratio:3/2}
  .r45{aspect-ratio:4/5}
  .r219{aspect-ratio:21/9}
  @media(max-width:700px){ .r219{aspect-ratio:16/10} }
  .band{margin:0}
  .imgcap{margin-top:10px}

  /* ---------- before & after ---------- */
  .ba{display:grid;grid-template-columns:repeat(3,1fr);gap:38px;margin-top:8px}
  @media(max-width:900px){ .ba{grid-template-columns:1fr;gap:34px} }
  .ba-pair{display:grid;grid-template-columns:1fr 1fr;gap:5px}
  .ba-pair figure{margin:0}
  .ba-pair figcaption{margin-top:7px}
  .ba-case h3{font-size:23px;margin-top:16px}
  .ba-case p{margin:6px 0 0;color:var(--bark);font-size:17px;line-height:1.6}
  .ba-case .detail{color:var(--muted);font-size:16px;margin-top:8px;line-height:1.55}

  /* ---------- feature (swedish lips) ---------- */
  .feature{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start;margin-top:8px}
  @media(max-width:820px){ .feature{grid-template-columns:1fr;gap:26px} }
  .pull{
    font-family:"Cormorant Garamond",serif;font-size:clamp(24px,3.2vw,32px);
    line-height:1.28;color:var(--ink);font-style:italic;
    border-left:2px solid var(--stone-dk);padding:4px 0 4px 22px;margin:0 0 22px;
  }
  .tm{font-size:.62em;vertical-align:super;letter-spacing:0}

  /* ---------- pricing ---------- */
  .price{
    margin-top:20px;border:1px solid var(--rule);background:var(--paper);
  }
  .price-row{
    display:grid;grid-template-columns:1fr auto;gap:4px 32px;align-items:baseline;
    padding:24px clamp(20px,3vw,30px);
    border-bottom:1px solid var(--rule);
  }
  .price-row:last-child{border-bottom:0}
  .price-group{
    margin:0;padding:15px clamp(20px,3vw,30px);
    background:var(--ink);color:var(--paper);
    font-size:12px;letter-spacing:.2em;
  }
  .price-row .what{
    font-family:"Cormorant Garamond",serif;font-size:26px;line-height:1.2;color:var(--ink);
  }
  .price-row .what small{
    display:block;font-family:"Jost",sans-serif;color:var(--muted);
    font-size:15px;margin-top:7px;line-height:1.6;max-width:62ch;
  }
  .price-row .amt{
    font-family:"Cormorant Garamond",serif;font-size:31px;white-space:nowrap;color:var(--ink);
  }
  @media(max-width:560px){
    .price-row{grid-template-columns:1fr;gap:8px}
    .price-row .amt{font-size:27px;color:var(--stone-dk)}
  }

  /* ---------- promotions ---------- */
  .promo{margin-top:0;border:1px solid var(--taupe);background:var(--paper);box-shadow:0 18px 40px rgba(46,42,37,.06)}
  .promo-eyebrow{font-family:"Jost",sans-serif;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--stone-dk);margin:0 0 8px}
  .promo-head{
    padding:28px clamp(20px,3vw,34px);background:var(--ink);color:var(--paper);
    display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px 24px;
  }
  .promo-head h3{margin:0;font-size:32px;color:var(--paper);font-weight:300}
  .promo-dates{
    color:#EFE9DC;font-size:12px;letter-spacing:.16em;background:rgba(255,255,255,.1);
    padding:6px 13px;border-radius:20px;white-space:nowrap;
  }
  .promo-grid{display:grid;grid-template-columns:repeat(3,1fr)}
  @media(max-width:860px){ .promo-grid{grid-template-columns:1fr} }
  .promo-card{
    padding:clamp(24px,3vw,32px);border-right:1px solid var(--rule);
  }
  .promo-card:last-child{border-right:0}
  .promo-card.tier-gold{background:linear-gradient(180deg,var(--cream) 0%,var(--paper) 65%)}
  @media(max-width:860px){
    .promo-card{border-right:0;border-bottom:1px solid var(--rule)}
    .promo-card:last-child{border-bottom:0}
  }
  .promo-tier{margin:0 0 12px;font-size:12px;letter-spacing:.24em;text-transform:uppercase}
  .promo-tier.bronze{color:#A8703F}
  .promo-tier.silver{color:#87796A}
  .promo-tier.gold{color:#A98A3E}
  .promo-what{margin:0 0 20px;color:var(--bark);font-size:16px;line-height:1.6}
  .promo-price-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
  .promo-price{
    margin:0;font-family:"Cormorant Garamond",serif;font-size:40px;
    line-height:1;color:var(--ink);
  }
  .promo-save{
    font-family:"Jost",sans-serif;font-size:11.5px;letter-spacing:.06em;
    color:#fff;background:var(--stone-dk);padding:4px 10px;border-radius:20px;white-space:nowrap;
  }
  .promo-note{margin:10px 0 0;color:var(--muted);font-size:14.5px}

  /* ---------- aftercare: clean boxed lists, like the printed handouts ---------- */
  .ac{margin-top:20px}
  .ac details{border:1px solid var(--rule);background:var(--paper);margin-bottom:20px}
  .ac details[open]{border-color:var(--taupe)}
  .ac summary{
    cursor:pointer;list-style:none;
    padding:22px clamp(20px,3vw,30px);
    font-family:"Cormorant Garamond",serif;font-size:30px;font-weight:300;line-height:1.1;
    display:flex;justify-content:space-between;align-items:baseline;gap:20px;
  }
  .ac details[open] summary{border-bottom:1px solid var(--rule)}
  .ac summary::-webkit-details-marker{display:none}
  .ac summary::after{content:"+";font-family:"Jost",sans-serif;font-size:22px;color:var(--stone-dk)}
  .ac details[open] summary::after{content:"\2013"}
  .ac summary:hover{color:var(--stone-dk)}

  .ac .inner{padding:clamp(24px,3vw,32px) clamp(20px,3vw,30px);max-width:none}
  .ac .inner > p{margin:0 0 22px;color:var(--bark);font-size:16.5px;line-height:1.65;max-width:78ch}

  /* one clean block per heading, stacked full width */
  .ac .cardset{display:block}
  .ac .acard{
    border:1px solid var(--rule);background:var(--cream);
    padding:20px clamp(18px,2.4vw,26px);margin-bottom:16px;
  }
  .ac .acard:last-child{margin-bottom:0}
  .ac .acard h4{
    font-family:"Cormorant Garamond",serif;font-weight:400;font-size:23px;
    letter-spacing:.01em;text-transform:none;color:var(--ink);
    margin:0 0 12px;padding:0;border:0;
  }
  .ac ul{margin:0;padding-left:20px}
  .ac li{margin-bottom:8px;font-size:16.5px;color:var(--bark);line-height:1.6}
  .ac li:last-child{margin-bottom:0}

  .alert{
    background:#F2EBE2;border-left:2px solid var(--stone-dk);
    padding:16px 18px;margin:18px 0 0;font-size:15px;color:var(--bark);
  }
  .alert p{margin:0}

  /* aftercare page: tint breathing room + attention callout */
  #aftercare.tinted{padding:56px 0 64px}
  @media(max-width:700px){ #aftercare.tinted{padding:36px 0 44px} }
  #credentials.tinted{padding:56px 0 64px}
  @media(max-width:700px){ #credentials.tinted{padding:36px 0 44px} }
  #teaching.tinted{padding:56px 0 64px}
  @media(max-width:700px){ #teaching.tinted{padding:36px 0 44px} }
  .teach-photos{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:0 0 30px}
  .teach-photos figure{margin:0}
  .teach-photos img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block}
  @media(max-width:640px){ .teach-photos{grid-template-columns:1fr;gap:24px} }

  .worried-callout{
    max-width:600px;margin:40px auto 0;padding:22px 28px;
    background:var(--stone-dk);border-radius:2px;text-align:center;
  }
  .worried-callout p{margin:0;color:var(--paper);font-size:16.5px;line-height:1.6}
  .worried-callout a{color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,.45)}
  .worried-callout a:hover{text-decoration-color:#fff}
  @media(max-width:600px){ .worried-callout{margin:32px 16px 0;padding:20px 22px} }

  /* ---------- patient resources ---------- */
  .res{border-top:1px solid var(--rule);margin-top:8px}
  .res-item{
    display:grid;grid-template-columns:1fr 1.4fr auto;gap:8px 36px;
    padding:22px 0;border-bottom:1px solid var(--rule);align-items:baseline;
  }
  @media(max-width:760px){ .res-item{grid-template-columns:1fr;gap:6px} }
  .res-item h3{font-size:26px}
  .res-item p{margin:0;color:var(--bark);font-size:15.5px}
  .res-link{white-space:nowrap;text-decoration:none;border-bottom:1px solid var(--rule);padding-bottom:2px}
  .res-link:hover{border-color:var(--stone-dk)}

  /* ---------- contact ---------- */
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px}
  @media(max-width:820px){ .contact-grid{grid-template-columns:1fr;gap:30px} }
  .booking-card{background:var(--cream);padding:28px 26px;border-top:2px solid var(--stone-dk)}
  .booking-card h3{font-size:30px;margin-bottom:10px}
  .booking-card p{font-size:15.5px;color:var(--bark)}
  .field{display:block;margin-bottom:16px}
  .field span{display:block;margin-bottom:6px}
  .field input,.field textarea,.field select{
    width:100%;padding:12px 13px;font:inherit;font-size:16px;
    background:#FFFFFF;border:1px solid var(--rule);border-radius:2px;color:var(--ink);
  }
  .field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--stone-dk);border-color:var(--stone-dk)}
  button.send{
    background:var(--ink);color:var(--paper);border:0;cursor:pointer;
    font-family:"Jost",sans-serif;font-weight:500;font-size:14px;letter-spacing:.15em;
    text-transform:uppercase;padding:20px 36px;border-radius:2px;
  }
  button.send:hover{background:var(--bark)}

  /* ---------- footer ---------- */
  footer{background:var(--ink);color:#B3AA9C;padding:72px 0 48px;border-top:0}
  footer a{color:var(--paper);text-decoration:none;border-bottom:1px solid #4A443B}
  footer a:hover{border-color:var(--paper)}
  footer .wrap{max-width:1240px}
  .foot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
  .foot-h{
    font-family:"Jost",sans-serif;font-weight:500;font-size:12px;letter-spacing:.2em;
    text-transform:uppercase;color:var(--paper);margin:0 0 16px;
  }
  .foot-grid p{margin:0 0 7px;font-size:16px;line-height:1.55}
  .social-link{display:inline-flex;align-items:center;gap:7px}
  .social-ic{width:15px;height:15px;flex:none}
  @media(max-width:760px){ .foot-grid{grid-template-columns:1fr;gap:32px} }
  .disclaimer{margin-top:56px;padding-top:28px;border-top:1px solid #3E382F;font-size:14px;line-height:1.7;color:#8C8375;max-width:none}
  .disclaimer p{margin:0 0 12px}
  .disclaimer strong{color:#B3AA9C}
  .disclaimer .copyline{margin-top:20px;margin-bottom:0}

  /* ---------- multi-page nav / dropdown ---------- */
  .nav{display:flex;gap:26px;align-items:center}
  .nav .item{position:relative}
  .nav a,.nav .top{
    font-family:"Jost",sans-serif;font-weight:500;font-size:14px;letter-spacing:.16em;
    text-transform:uppercase;text-decoration:none;color:var(--bark);
    background:none;border:0;cursor:pointer;padding:0;font-family:"Jost",sans-serif;
  }
  .nav a:hover,.nav .top:hover,.nav .top[aria-expanded="true"]{color:var(--stone-dk)}
  .nav .top::after{content:"›";display:inline-block;transform:rotate(90deg);margin-left:7px;font-size:13px}
  .nav .top[aria-expanded="true"]::after{transform:rotate(-90deg)}
  .nav a[aria-current="page"]{color:var(--stone-dk)}

  .menu{
    position:absolute;top:calc(100% + 14px);left:-18px;min-width:230px;display:none;
    background:var(--paper);border:1px solid var(--rule);
    box-shadow:0 14px 34px rgba(46,42,37,.08);padding:6px 0;z-index:40;
  }
  .item.open .menu{display:block}
  .menu a{display:block;padding:12px 20px;letter-spacing:.16em;font-size:14px;text-transform:uppercase}

  .alsoknown{
    font-family:"Jost",sans-serif;font-weight:400;font-size:16px;
    color:var(--muted);margin:8px 0 0;letter-spacing:.01em;
  }
  .tcard .alsoknown{font-size:15px;margin:4px 0 0}

  .clinic-shot{margin:36px 0 0}
  .clinic-shot img{width:100%;height:auto;display:block;aspect-ratio:3/2;object-fit:cover;background:var(--birch)}
  .clinic-shot figcaption{margin-top:12px}

  /* ---------- credentials: photo column at left ---------- */
  .cv-layout{display:grid;grid-template-columns:270px 1fr;gap:clamp(30px,4vw,58px);align-items:start}
  .cv-gallery{display:flex;flex-direction:column;gap:26px;position:sticky;top:100px}
  .cv-gallery figure{margin:0}
  .cv-gallery img{
    width:100%;height:auto;display:block;aspect-ratio:4/5;object-fit:cover;
    background:var(--birch);border:1px solid var(--rule);
  }
  @media(max-width:900px){
    .cv-layout{grid-template-columns:1fr;gap:30px}
    .cv-gallery{position:static;display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
  }

  /* ---------- Swedish Lips: text left, photos stacked right ---------- */
  .sl-layout{display:grid;grid-template-columns:1fr 320px;gap:clamp(30px,4vw,56px);align-items:stretch}
  .sl-text .body{max-width:none}
  .sl-photos{display:flex;flex-direction:column;gap:26px;position:static;height:100%}
  .sl-photos figure{margin:0;flex:1;min-height:0;display:flex;flex-direction:column}
  .sl-photos figure > img{flex:1;min-height:0;width:100%;height:100%;object-fit:cover;display:block;background:var(--birch)}
  .sl-photos figcaption{margin-top:9px;font-size:14px;line-height:1.5;flex:none}
  @media(max-width:900px){
    .sl-layout{grid-template-columns:1fr;gap:28px}
    .sl-photos{height:auto;display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
    .sl-photos figure{flex:none}
    .sl-photos figure > img{flex:none;height:auto;aspect-ratio:4/3}
    .sl-photos figure > img.crop-top{object-position:center 20%}
  }
  @media(max-width:560px){ .sl-photos{grid-template-columns:1fr} }

  /* ---------- clean boxed points ---------- */
  .boxes{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:22px 0 0}
  .boxes-4{grid-template-columns:repeat(4,1fr)}
  @media(max-width:1000px){ .boxes-4{grid-template-columns:repeat(2,1fr)} }
  @media(max-width:860px){ .boxes{grid-template-columns:1fr} }
  @media(max-width:620px){ .boxes-4{grid-template-columns:1fr} }
  .box{
    background:var(--cream);border:1px solid var(--taupe);
    padding:clamp(22px,2.6vw,30px);
  }
  .box h3{font-size:25px;line-height:1.2;margin:0 0 10px}
  .box p{margin:0;color:var(--bark);font-size:16.5px;line-height:1.6}

  /* ---------- treatments dropdown ---------- */
  .navdd{position:relative}
  .ddtoggle{display:none}
  .ddmenu{
    position:absolute;top:100%;left:50%;transform:translateX(-50%);
    background:var(--paper);border:1px solid var(--rule);
    box-shadow:0 12px 30px rgba(46,42,37,.10);
    min-width:230px;padding:8px 0;margin-top:14px;
    opacity:0;visibility:hidden;transition:opacity .18s ease;z-index:60;
  }
  .navdd:hover .ddmenu,.navdd:focus-within .ddmenu{opacity:1;visibility:visible}
  .ddmenu::before{content:"";position:absolute;top:-14px;left:0;right:0;height:14px}
  .ddmenu a{
    display:block;padding:10px 22px;font-size:15px;letter-spacing:.02em;text-transform:none;
    color:var(--bark);text-decoration:none;white-space:nowrap;
  }
  .ddmenu a:hover{background:var(--cream);color:var(--ink)}

  @media(max-width:1020px){ .nav{gap:18px} }
  @media(max-width:900px){
    .menu-btn{display:inline-block}
    .bar-right{gap:14px}
    .nav{
      position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;
      align-items:stretch;gap:0;background:var(--paper);border-bottom:1px solid var(--rule);
      box-shadow:0 10px 24px rgba(46,42,37,.06);max-height:76vh;overflow-y:auto;
    }
    .nav.open{display:flex}
    .nav > a{
      display:block;width:100%;text-align:left;box-sizing:border-box;
      padding:15px var(--gap);border-top:1px solid var(--rule);
    }

    /* sub-lists collapse behind a toggle so the panel fits one screen */
    .navdd{position:static;display:flex;flex-wrap:wrap;align-items:stretch;border-top:1px solid var(--rule)}
    .navdd > a{flex:1;min-width:0;border-top:0 !important;box-sizing:border-box;padding:15px var(--gap)}
    .ddtoggle{
      display:flex;align-items:center;justify-content:center;
      width:56px;flex:none;background:none;border:0;border-left:1px solid var(--rule);
      cursor:pointer;color:var(--bark);font-family:"Jost",sans-serif;font-size:20px;
    }
    .ddtoggle::before{content:"+"}
    .navdd.open .ddtoggle::before{content:"\2013"}
    .ddmenu{
      display:none;position:static;transform:none;opacity:1;visibility:visible;
      box-shadow:none;border:0;margin:0;padding:4px 0 8px;min-width:0;
      background:var(--cream);width:100%;box-sizing:border-box;
    }
    .navdd.open .ddmenu{display:block}
    .ddmenu a{
      display:block;width:100%;box-sizing:border-box;white-space:normal;word-break:break-word;
      padding:12px var(--gap) 12px calc(var(--gap) + 16px);
      border-top:1px solid var(--rule);font-size:14.5px;
    }
    .ddmenu a:first-child{border-top:0}
  }

  /* ---------- page headers for interior pages ---------- */
  .pagehead{
    padding:clamp(34px,4.5vw,56px) 0 clamp(22px,2.6vw,34px);
    background:linear-gradient(180deg,var(--cream) 0%,var(--paper) 100%);
  }
  .pagehead h1{font-size:clamp(34px,7.5vw,74px);line-height:1.0;margin:8px 0 0}
  .pagehead .lead{margin-top:12px;color:var(--bark)}
  .crumb{font-family:"Jost",sans-serif;font-weight:400;font-size:13px;letter-spacing:.12em;
    text-transform:uppercase;color:var(--muted);margin:0}
  .pagewrap{padding:clamp(32px,3.5vw,54px) 0}
  .pagewrap .grid{grid-template-columns:1fr}
  .pagewrap .fig{display:none}
  .pagewrap section{border-top:0;padding:0}
  .pagewrap h2:first-of-type{margin-top:0}

  /* next/prev */
  .pagenav{border-top:1px solid var(--rule);margin:64px 0 64px;padding-top:26px;
    display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}
  .pagenav a{font-family:"Jost",sans-serif;font-weight:500;font-size:15px;
    letter-spacing:.06em;text-decoration:none;color:var(--bark);
    padding:16px 26px;border:1.5px solid var(--taupe);border-radius:2px;
    transition:border-color .18s ease,color .18s ease,background .18s ease}
  .pagenav a:hover{border-color:var(--stone-dk);color:var(--stone-dk);background:var(--cream)}

  .hero-tag{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:300;
    font-size:clamp(21px,3vw,29px);line-height:1.34;color:var(--stone-dk);
    max-width:34ch;margin:22px 0 0}

  /* ---------- bio subsection headings ---------- */
  .bio-h{
    font-family:"Cormorant Garamond",serif;font-weight:400;font-size:29px;
    letter-spacing:.01em;text-transform:none;color:var(--ink);
    margin:40px 0 12px;padding-top:18px;border-top:1px solid var(--rule);
  }
  .bio-h:first-of-type{margin-top:0;padding-top:0;border-top:0}
  .body em{font-style:italic}

  /* ---------- hero with portrait ---------- */
  .hero-grid{display:grid;grid-template-columns:1fr 300px;gap:clamp(28px,5vw,56px);align-items:end}
  @media(max-width:860px){
    .hero-grid{grid-template-columns:1fr;align-items:start}
    .hero-portrait{max-width:260px}
  }
  .hero-portrait{margin:0}
  .hero-portrait img{
    width:100%;height:auto;display:block;aspect-ratio:4/5;object-fit:cover;
    background:var(--birch);
  }

  /* four-up principle grid */
  .three.four{grid-template-columns:repeat(2,1fr);gap:38px}
  @media(max-width:820px){ .three.four{grid-template-columns:1fr;gap:28px} }

  .ba-pair img{width:100%;height:auto;display:block;aspect-ratio:4/5;object-fit:cover;background:var(--birch)}

  .ba-case.wide{grid-column:span 2}
  @media(max-width:900px){ .ba-case.wide{grid-column:span 1} }

  /* ---------- treatment hub cards ---------- */
  .tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:10px}
  @media(max-width:900px){ .tgrid{grid-template-columns:repeat(2,1fr);gap:24px} }
  @media(max-width:600px){ .tgrid{grid-template-columns:1fr} }
  .tcard{display:block;text-decoration:none;color:inherit;background:var(--paper);
    border:1px solid var(--rule);transition:border-color .25s ease, transform .25s ease}
  .tcard:hover{border-color:var(--stone);transform:translateY(-2px)}
  .tcard .imgslot{border-bottom:1px solid var(--rule)}
  .tcard-body{padding:20px 22px 24px}
  .tcard h3{font-size:24px;margin-bottom:7px}
  .tcard p{font-size:16.5px;color:var(--bark);margin:0;line-height:1.6}
  .tcard .tag{color:var(--stone-dk);margin:0 0 6px}
  .tcard .more{display:inline-block;margin-top:14px;color:var(--stone-dk)}

  /* ---------- section headings on interior pages ---------- */
  h2.sec{margin-top:52px;padding-top:22px;border-top:1px solid var(--rule)}
  .nowrap-h2{max-width:none;white-space:nowrap}
  @media(max-width:480px){ .nowrap-h2{white-space:normal;max-width:20ch} }
  .fit-oneline{max-width:none;white-space:nowrap;font-size:clamp(14px,2.3vw,26px);letter-spacing:0}
  h2.onelinehead{max-width:none;white-space:nowrap}
  h2.sec:first-of-type{margin-top:0;padding-top:0;border-top:0}

  /* ---------- related links ---------- */
  .related{margin-top:64px;padding-top:24px;border-top:1px solid var(--rule)}
  .rel-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
  .rel-links a{font-family:"Jost",sans-serif;font-weight:500;font-size:13px;letter-spacing:.14em;
    text-transform:uppercase;text-decoration:none;color:var(--bark);
    border:1px solid var(--rule);padding:13px 20px}
  .rel-links a:hover{border-color:var(--stone);color:var(--stone-dk)}

  /* more generous whitespace overall */
  .pagewrap{padding:clamp(32px,3.5vw,54px) 0}
  .imgslot span{color:var(--muted);opacity:1}

  /* ---------- three-stage sequence ---------- */
  .seq{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:8px}
  @media(max-width:900px){ .seq{grid-template-columns:1fr;gap:30px} }
  .seq figure{margin:0}
  .seq img{width:100%;height:auto;display:block;aspect-ratio:3/2;object-fit:cover;background:var(--birch)}
  .seq figcaption{margin-top:9px;text-transform:none;letter-spacing:.06em;font-size:14px}
  .seq .detail{margin-top:8px;color:var(--muted);font-size:16px;line-height:1.6}

  /* ---------- treatment-area gallery ---------- */
  .areas{display:grid;grid-template-columns:repeat(2,1fr);gap:34px 30px;margin-top:8px}
  @media(max-width:760px){ .areas{grid-template-columns:1fr;gap:30px} }
  .areas figure{margin:0}
  .areas img{width:100%;height:auto;display:block;border:1px solid var(--rule)}
  .areas figcaption{
    font-family:"Cormorant Garamond",serif;font-size:24px;font-weight:300;
    color:var(--ink);margin-top:12px;
  }
  .areas .detail{margin-top:8px;color:var(--bark);font-size:16.5px;line-height:1.6}

  .tcard .imgslot img{width:100%;height:100%;object-fit:cover;display:block}

  /* ---------- microneedling: approach text+photo left, frequency list right ---------- */
  .approach-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,4vw,56px);align-items:center;margin:52px 0 8px}
  .approach-photo{margin:22px 0 0}
  .approach-photo img{width:100%;height:auto;display:block;aspect-ratio:3/2;object-fit:cover}
  .approach-right{padding-top:2px}
  .approach-right ul{margin:14px 0 0;padding-left:22px}
  .approach-right li{margin-bottom:8px;line-height:1.65;color:var(--bark)}
  @media(max-width:820px){
    .approach-layout{grid-template-columns:1fr;gap:26px;margin-top:34px}
  }

  /* ---------- treatment pages: compact photo beside intro text ---------- */
  .top-photo-layout{display:grid;grid-template-columns:340px 1fr;gap:clamp(24px,3.5vw,48px);align-items:center;margin:0 0 8px}
  .top-photo-layout .tp-photo{margin:0}
  .top-photo-layout .tp-photo img{width:100%;height:auto;display:block;aspect-ratio:3/2;object-fit:cover}
  .top-photo-layout .tp-content h2{margin-top:0}
  @media(max-width:820px){
    .top-photo-layout{grid-template-columns:1fr;gap:22px}
    .top-photo-layout .tp-photo{max-width:420px}
  }

  /* ---------- bio: photo beside text on desktop ---------- */
  /* text left, photo right; photo does not overlap what follows */
  .bio-layout{display:grid;grid-template-columns:1fr 340px;gap:clamp(30px,4vw,56px);align-items:start;margin-top:34px}
  .bio-layout .body{max-width:none;grid-column:1}
  .bio-layout .ledger{grid-column:1}
  .bio-layout .biopic{margin:0;grid-column:2;grid-row:1;position:sticky;top:100px}
  @media(max-width:900px){
    .bio-layout{grid-template-columns:1fr;gap:26px}
    .bio-layout .body{grid-column:1;grid-row:2}
    .bio-layout .ledger{grid-column:1;grid-row:2}
    .bio-layout .biopic{grid-column:1;grid-row:1;position:static;max-width:420px}
  }

  /* ---------- bio photo ---------- */
  .biopic{margin:30px 0 8px;max-width:420px}
  .biopic img{width:100%;height:auto;display:block;aspect-ratio:4/5;object-fit:cover;background:var(--birch)}
  @media(max-width:600px){ .biopic{max-width:100%} }

  /* ---------- patient photo notice ---------- */
  .photo-notice{
    margin-top:18px;padding:12px 16px;background:var(--cream);
    border-left:2px solid var(--taupe);
    font-family:"Jost",sans-serif;font-weight:400;font-size:15px;
    line-height:1.6;color:var(--muted);
  }
  .photo-notice p{margin:0}

  /* ---------- tighter rhythm on phones ---------- */
  @media(max-width:700px){
    body{font-size:17px;line-height:1.68}
    .pagehead{padding:22px 0 12px}
    .pagewrap{padding:24px 0}
    section{padding:48px 0}
    h2.sec{margin-top:34px;padding-top:18px}
    .hero{padding:44px 0 36px;min-height:0}
    .lead{font-size:19px}
    .note{margin-top:26px;padding:18px 20px;font-size:16px}
    .bio-layout{margin-top:24px}
    .biopic{margin:0 0 8px}
    footer{padding:48px 0 40px}
    .foot-grid{gap:24px 40px}
    .disclaimer{margin-top:30px;padding-top:20px;font-size:14px}
    .pagenav{margin:44px 0 44px}
    .pagenav a{padding:14px 18px;font-size:14px}
    .seq{gap:26px}
    .ba{gap:28px}
    .areas{gap:26px}
    figure{margin-bottom:0}
  }

  /* ---------- treatment page images match the text column ---------- */
  .pagewrap > .wrap > figure,
  .pagewrap > .wrap > .seq,
  .pagewrap > .wrap > .ba,
  .pagewrap > .wrap > .areas,
  .pagewrap > .wrap > .photo-notice,
  .pagewrap > .wrap > ul.skills,
  .pagewrap > .wrap > .cv,
  .pagewrap > .wrap > .three{max-width:72ch}

  /* ---------- full-width treatment pages: no narrow text column, everything spans consistently ---------- */
  .pg-treatment .body,
  .pg-treatment .lead,
  .pg-treatment .pagewrap > .wrap > figure,
  .pg-treatment .pagewrap > .wrap > .seq,
  .pg-treatment .pagewrap > .wrap > .ba,
  .pg-treatment .pagewrap > .wrap > .areas,
  .pg-treatment .pagewrap > .wrap > .photo-notice,
  .pg-treatment .pagewrap > .wrap > ul.skills,
  .pg-treatment .pagewrap > .wrap > .cv,
  .pg-treatment .pagewrap > .wrap > .three{max-width:none}

  /* ---------- print button + print layout ---------- */
  .printbtn{
    display:inline-flex;align-items:center;margin:18px 0 0;
    font-family:"Jost",sans-serif;font-weight:500;font-size:14px;letter-spacing:.15em;
    text-transform:uppercase;background:var(--ink);color:var(--paper);border:0;border-radius:2px;
    padding:16px 26px;cursor:pointer;
  }
  .printbtn:hover{background:var(--bark)}
  .printbtn.small{
    margin:0 0 20px;padding:9px 16px;font-size:11.5px;letter-spacing:.12em;
  }
  @media print{
    .bar,.printbtn,.pagenav,.book-cta,footer{display:none !important}
    body{background:#fff;font-size:10pt}
    .pagehead{padding:0 0 8pt;background:none}
    body.printing-single .pagehead{display:none}
    #aftercare.tinted{padding:0 !important}
    .ac{margin-top:0}
    .ac details{border:1px solid #999;page-break-inside:avoid;margin-bottom:8pt}
    .ac summary{background:#f4f4f4;font-size:13pt;padding:6pt 8pt}
    .ac .inner{padding:8pt;display:block}
    .ac .inner > p{font-size:9.5pt;margin:0 0 8pt;line-height:1.4}
    .ac h4{font-size:9pt;margin:6pt 0 3pt}
    .ac li,.ac p{font-size:9pt;line-height:1.35}
    .ac li{margin-bottom:2pt}
    .ac .cardset{display:block}
    .ac .acard{padding:6pt 8pt;margin-bottom:6pt;border:1px solid #ccc}
    .ac .acard h4{font-size:10.5pt;margin:0 0 4pt}
    .alert{padding:6pt 8pt;margin:6pt 0 0;font-size:9pt}
    body.printing-single .ac details:not(.print-only){display:none !important}
    @page{margin:10mm}
  }
