/* Apothecy ink public pages. Shared color/font tokens live in brand.css. */
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.6 var(--f-body);overflow-wrap:break-word}
img{max-width:100%;height:auto}
a{color:var(--action);text-underline-offset:4px}
button,input,select,textarea{font:inherit}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{text-wrap:balance}
h1,h2,h3{font-family:var(--f-display);font-weight:500}
h2{font-size:clamp(2rem,3.7vw,3.25rem);line-height:1.15}
h3{font-size:1.75rem;line-height:1.2}
p+p{margin-top:16px}
.wrap{width:min(1180px,100%);margin-inline:auto;padding-inline:clamp(20px,4vw,48px)}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;top:-100px;left:20px;z-index:100;background:var(--bar);color:var(--bar-ink);padding:12px 20px;border-radius:6px}
.skip:focus{top:12px}
.eyebrow,.service-number{font:600 .85rem/1.4 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--action)}
.fill{display:inline-block;color:var(--fill-ink);background:var(--fill-bg);border:1px dashed var(--fill-ink);border-radius:4px;padding:2px 7px;font:600 .9em/1.45 var(--f-body)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 22px;border:1px solid var(--action);border-radius:6px;font:600 1rem/1.35 var(--f-body);text-decoration:none;background:var(--surface);color:var(--action);cursor:pointer;transition:background .15s,color .15s}
.btn.solid,.btn-primary{background:var(--bar);border-color:var(--bar);color:var(--bar-ink)}
.btn.solid:hover,.btn-primary:hover{background:var(--action-hover);border-color:var(--action-hover)}
.btn.ghost:hover{background:var(--tint)}
.btn:focus-visible,a:focus-visible,summary:focus-visible,button:focus-visible{outline:3px solid var(--focus);outline-offset:3px;box-shadow:0 0 0 3px var(--focus-gap)}
header,.site-header{position:sticky;top:0;z-index:25;background:var(--bg);border-bottom:1px solid var(--line)}
.head,.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:96px}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;white-space:nowrap}
.brand svg{width:34px;height:46px}
.brand span{font:500 clamp(1.4rem,2vw,1.8rem)/1.1 var(--f-display);letter-spacing:-.025em}
.head nav,.site-nav{display:flex;align-items:center;gap:24px;font-size:.95rem}
.head nav a,.site-nav a{color:var(--ink);text-decoration:none;padding-block:12px}
.head nav a:hover,.site-nav a:hover{text-decoration:underline}
.head .btn{padding:10px 20px;white-space:nowrap}
.hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:64px;align-items:center;padding-block:80px 76px}
.hero-copy{min-width:0}
.hero-eyebrow{display:block;margin-bottom:22px}
.hero h1{font:500 clamp(3rem,5.6vw,5.2rem)/1.01 var(--f-display);letter-spacing:-.035em}
.script,.serif{display:block;font:inherit}
.serif{margin-top:4px}
.rule{width:64px;height:1px;background:var(--action);margin:26px 0}
.tag{font-size:1.2rem;line-height:1.4;color:var(--ink)}
.hero-lede{color:var(--muted);max-width:45ch;margin-top:16px;font-size:1.06rem}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.reassure{font-size:.95rem;color:var(--muted);margin-top:18px}
.photos{display:grid;grid-template-columns:1fr .72fr;gap:16px;align-items:center;position:relative;padding-block:30px}
.circle{overflow:hidden;border-radius:6px;position:relative;background:var(--surface);z-index:1}
.circle img{display:block;width:100%;height:100%;object-fit:cover}
.c1{aspect-ratio:3/4}
.c2{aspect-ratio:3/4;transform:translateY(42px)}
.leaf{position:absolute;width:120px;height:60px;color:var(--sage);pointer-events:none}
.l1{top:0;right:0;transform:rotate(-20deg)}
.l2{display:none}
.photo-note{grid-column:1/-1;position:static;font-size:.875rem;color:var(--muted);margin-top:26px}
.badge{grid-column:1/-1;border-top:1px solid var(--line);padding-top:18px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;color:var(--ink);z-index:1}
.badge small,.badge em{font-size:.9rem;font-style:normal}
.badge b{font:500 2rem/1 var(--f-display)}
.trust{list-style:none;padding-block:28px 40px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;border-top:1px solid var(--line);margin-block:0}
.trust li{display:flex;gap:12px;align-items:flex-start;min-width:0}
.trust svg{flex-shrink:0;width:24px;height:24px;color:var(--action);margin-top:3px}
.trust b{display:block;font-weight:600;font-size:1rem;line-height:1.3}
.trust li div>span{display:block;color:var(--muted);font-size:.92rem;margin-top:6px}
section{padding-block:clamp(56px,7vw,88px)}
.band{background:var(--surface);border-block:1px solid var(--line)}
.sec-head{display:grid;gap:12px;max-width:720px;margin-bottom:36px}
.sec-head h2 i{font-style:italic}
.sec-head p{color:var(--muted);max-width:62ch}
.more{margin-top:24px;font-size:1rem;color:var(--muted)}
.services,.section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.svc,.card{min-width:0;border:1px solid var(--line);border-radius:8px;padding:32px;background:var(--surface)}
.svc{display:grid;grid-template-columns:1fr;gap:18px;position:relative}
.svc .icon{display:flex;align-items:center;gap:16px;color:var(--action);width:100%;height:auto}
.svc .icon svg{width:84px;height:52px}
.svc .service-number{margin-left:auto}
.svc h3{font-size:2.2rem}
.svc p{margin-top:12px;color:var(--muted)}
.svc>div{min-width:0}
.facts{list-style:none;padding:0;margin:24px 0 0;border-top:1px solid var(--line)}
.facts li{display:flex;justify-content:space-between;align-items:start;gap:20px;padding:12px 0;border-bottom:1px solid var(--line);font-size:1rem}
.facts li>span:first-child{color:var(--muted)}
.facts li span:last-child{text-align:right}
.svc-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.svc .btn{margin-top:0}
.text-link{display:inline-flex;align-items:center;min-height:48px;text-decoration:underline;font-weight:600}
.gallery{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:0;margin:0}
.slot{display:grid;gap:12px;align-content:start;min-width:0}
.slot .ph{aspect-ratio:4/5;display:grid;place-items:center;background:var(--surface);border:1px dashed var(--line);border-radius:6px;color:var(--action)}
.slot .ph svg{width:64px;height:64px}
.slot img,.gallery img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px}
.slot figcaption,.gallery figcaption{font-size:.94rem;color:var(--muted)}
.table-wrap{max-width:860px;overflow-x:auto}
.prices{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.prices th,.prices td{text-align:left;padding:20px 0;border-bottom:1px solid var(--line);vertical-align:top}
.prices th:last-child,.prices td:last-child{text-align:right;padding-left:24px}
.prices thead th{font:600 .88rem/1.4 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--action)}
.prices .name{display:block;font-weight:600}
.prices small{display:block;font-size:.95rem;line-height:1.45;color:var(--muted);margin-top:6px}
.prices .amt{font:500 1.9rem/1.2 var(--f-display);white-space:nowrap}
.price-note{color:var(--muted);margin-top:20px;max-width:62ch}
.price-cta{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-top:28px}
.reviews{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:24px}
.review{display:grid;gap:20px;border:1px solid var(--line);border-radius:8px;padding:28px;background:var(--surface);min-width:0}
.review blockquote{margin:0}
.review blockquote p{font:500 1.4rem/1.5 var(--f-display)}
.review figcaption{font-size:.95rem;color:var(--muted)}
.artist{display:grid;grid-template-columns:minmax(0,330px) minmax(0,1fr);gap:64px;align-items:center}
.portrait{aspect-ratio:3/4;border:1px dashed var(--line);border-radius:6px;background:var(--bg);display:grid;place-content:center;justify-items:center;gap:16px;text-align:center;padding:24px;min-width:0;color:var(--action)}
.portrait svg{width:60px;height:60px}
.portrait.has-img{padding:0;border:0;overflow:hidden}
.portrait.has-img img{height:100%;width:100%;object-fit:cover}
.artist-copy h2{margin:12px 0 20px}
.artist-copy>p{color:var(--muted);max-width:62ch}
.creds{list-style:none;margin:24px 0;padding:0;border-top:1px solid var(--line)}
.creds li{display:grid;grid-template-columns:minmax(92px,130px) minmax(0,1fr);gap:20px;border-bottom:1px solid var(--line);padding:12px 0}
.creds li>span:first-child{color:var(--muted)}
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:28px;counter-reset:step}
.steps li{counter-increment:step;border-top:1px solid var(--line);padding-top:20px;min-width:0}
.steps li::before{content:"0" counter(step);display:block;font:500 2.5rem/1 var(--f-display);color:var(--action);margin-bottom:16px}
.steps b{display:block;font-weight:600;margin-bottom:10px}
.steps p{color:var(--muted)}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.card h3{margin-bottom:16px}
.card ul{padding-left:20px;margin:0;display:grid;gap:12px;color:var(--muted)}
.note{color:var(--muted);margin-top:20px}
.heal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.heal>div{border-top:1px solid var(--line);padding-top:20px;min-width:0}
.heal .when{font-size:.85rem;font-weight:600;letter-spacing:.05em;color:var(--action)}
.heal .what{font:500 1.7rem/1.2 var(--f-display);margin:12px 0}
.heal p{color:var(--muted)}
.heal .shade{height:4px;margin-top:20px;background:var(--sage)}
.faq{border-top:1px solid var(--line);max-width:880px}
details{border-bottom:1px solid var(--line);padding:22px 2px}
summary{display:flex;justify-content:space-between;align-items:start;gap:24px;cursor:pointer;list-style:none;font-size:1.1rem;font-weight:600;min-height:32px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font:400 1.5rem/1 var(--f-body);color:var(--action)}
details[open] summary::after{content:"−"}
details p{color:var(--muted);max-width:68ch;margin-top:14px}
.pol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.pol>div{min-width:0}
.pol b{display:block;font:500 1.55rem/1.25 var(--f-display);margin-bottom:12px}
.pol p{color:var(--muted)}
.bookbar{background:var(--bar);color:var(--bar-ink);border:1px solid var(--bar);border-radius:8px;display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center;padding:32px;--focus:var(--bar-ink);--focus-gap:var(--bar)}
.bookbar a{color:inherit}
.phone-ic{display:grid;place-items:center;width:64px;height:64px;border:1px solid var(--bar-ink);border-radius:50%;color:var(--bar-ink)}
.phone-ic svg{width:30px;height:30px}
.bookbar .lbl{font-weight:600;font-size:1.05rem}
.num{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:10px}
.num a{font:500 clamp(1.5rem,3vw,2rem)/1.2 var(--f-display);text-decoration:none}
.copy{min-height:40px;background:transparent;border:1px solid var(--bar-ink);border-radius:4px;color:var(--bar-ink);padding:8px 14px;cursor:pointer}
.copy:hover{text-decoration:underline}
.bookbar .right{border-left:1px solid var(--bar-ink);padding-left:28px;display:grid;gap:8px}
.bookbar .btn{background:var(--bar-ink);color:var(--bar);border-color:var(--bar-ink);margin-top:6px}
.bookbar .btn:hover{text-decoration:underline}
.visit{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:28px;margin-top:32px}
.visit b{display:block;font:500 1.6rem/1.2 var(--f-display);margin-bottom:12px}
.visit p{color:var(--muted)}
.legal{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
.legal h2{font-size:2rem;margin-bottom:20px}
.legal h3{font:600 1.1rem/1.4 var(--f-body);margin:24px 0 8px}
.legal p,.legal li{color:var(--muted);font-size:1rem}
.legal ul{padding-left:20px;display:grid;gap:10px}
.legal .updated{font-size:.9rem;margin-top:20px}
footer,.site-footer{padding-block:48px;font-size:1rem;color:var(--muted)}
.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:28px;border-top:1px solid var(--line);padding-top:28px}
.foot nav{display:grid;gap:10px}
.foot nav a{color:var(--muted)}
.contact{display:grid;gap:8px}
.contact strong{font:500 1.75rem/1.2 var(--f-display);color:var(--ink)}
.mbar{display:none}
.service-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:48px;align-items:start;padding-block:64px}
.service-hero h1{font-size:clamp(3rem,5vw,4.5rem);line-height:1.05;margin-top:16px}
.service-hero h1+p{margin-top:20px}
.service-hero p{max-width:62ch;color:var(--muted)}
.service-hero .eyebrow{color:var(--action)}
.service-hero .card{display:grid;gap:18px}
.service-hero .btn{margin-top:20px}
.service-page .section-grid .card{display:grid;gap:16px}
.service-page .facts{margin-top:0}
.breadcrumbs{padding-top:28px;font-size:.95rem;display:flex;gap:10px;flex-wrap:wrap;color:var(--muted)}
.empty-gallery{border:1px dashed var(--line);padding:28px;border-radius:6px;color:var(--muted)}
.service-page section:target{scroll-margin-top:100px}
@media(max-width:1000px){.head nav,.site-nav{gap:16px}.head{gap:16px}.hero{gap:36px}.trust{grid-template-columns:repeat(2,minmax(0,1fr))}.pol{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){
  header,.site-header{position:static}
  html{scroll-padding-top:20px}
  .head,.site-header .wrap{flex-wrap:wrap;gap:16px;padding-block:20px;min-height:0}
  .head nav,.site-nav{order:3;width:100%;flex-wrap:wrap;gap:8px 24px}
  .head nav a,.site-nav a{padding-block:4px}
  .hero{grid-template-columns:1fr;padding-block:48px;gap:36px}
  .hero h1{max-width:15ch;font-size:clamp(3rem,8vw,4.8rem)}
  .photos{max-width:540px;margin-inline:auto;width:100%}
  .services,.section-grid,.two,.artist,.legal,.service-hero{grid-template-columns:1fr}
  .artist{gap:32px}.portrait{width:min(330px,100%)}
  .heal{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bookbar{grid-template-columns:auto 1fr}
  .bookbar .right{grid-column:1/-1;border-left:0;border-top:1px solid var(--bar-ink);padding:24px 0 0}
  body{padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}
  .mbar,.mobile-booking{position:fixed;inset:auto 0 0;z-index:35;display:grid;grid-template-columns:1fr 1.3fr;gap:12px;padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));background:var(--bg);border-top:1px solid var(--line);transform:translateY(110%);visibility:hidden;transition:transform .15s,visibility 0s linear .15s}
  .mbar.show,.mobile-booking{transform:none;visibility:visible;transition:transform .15s}
  .mbar a,.mobile-booking a{min-height:48px;display:flex;gap:8px;align-items:center;justify-content:center;text-decoration:none;font-weight:600;border-radius:6px}
  .mbar svg{width:18px;height:18px}.mb-call{border:1px solid var(--action);color:var(--action)}.mb-book{background:var(--bar);color:var(--bar-ink)}
}
@media(max-width:480px){
  .head .brand{gap:6px}.brand span{font-size:1.5rem}.head .btn{padding-inline:12px;font-size:.94rem}
  .head nav,.site-nav{font-size:.94rem;gap:8px 18px}
  .hero{padding-top:32px}.hero h1{font-size:3rem}.hero .tag{font-size:1.1rem}
  .trust{grid-template-columns:1fr;gap:22px}.svc,.card{padding:24px}
  .facts li{gap:16px}.facts li span{min-width:0}.facts li span:last-child{max-width:60%}
  .gallery{gap:16px}.pol,.heal{grid-template-columns:1fr}.bookbar{padding:24px;gap:18px}
  .phone-ic{width:44px;height:44px}.bookbar .num{gap:12px}.num a{font-size:1.7rem}
  .prices td:last-child .fill{font-size:.9rem}.prices .amt{font-size:1.6rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.mbar,.mbar.show{transition:none}}


/* Dedicated service pages share the same navigation, facts and mobile CTA. */
.site-nav a.btn-primary{color:var(--bar-ink)}
.service-page .gallery img{aspect-ratio:auto;object-fit:contain;height:auto}
.mobile-booking{display:none}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.service-facts dl{margin:0}
.service-facts dl>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.service-facts dt{color:var(--muted)}
.service-facts dd{margin:0;text-align:right}
.service-page h2+p{margin-top:20px}
.service-page .site-footer nav{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:20px}
@media(max-width:800px){.service-page .mobile-booking{display:grid;grid-template-columns:1fr}}
@media(max-width:800px){html{scroll-padding-bottom:110px}a,button,summary,input,select,textarea{scroll-margin-bottom:110px}}
