/* AW Therapies — site styles
   Palette sampled from the logo files. */
:root{
  --espresso:#4e3b2b;      /* brand brown: header text, buttons, dark bands */
  --espresso-deep:#3d2e21;
  --cream:#f0eae5;         /* page background (logo 1 ground) */
  --cream-light:#f7f3ef;   /* cards, raised surfaces */
  --linen:#e6ddd4;         /* alternate band */
  --taupe:#857a72;         /* monogram ink: secondary text, fine rules */
  --ink:#3b2f26;           /* body text on light */
  --on-dark:#ede3d6;       /* text on espresso */
  --line:rgba(78,59,43,.18);
  --max:70rem;
  --radius:4px;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Montserrat',system-ui,-apple-system,sans-serif;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{font-family:var(--sans);font-weight:400;font-size:1.0625rem;line-height:1.75;color:var(--ink);background:var(--cream)}
img{max-width:100%;height:auto;display:block}
a{color:var(--espresso);text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{color:var(--taupe)}
:focus-visible{outline:2px solid var(--espresso);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--espresso);color:var(--on-dark);padding:.6rem 1rem;z-index:100}
.skip:focus{left:1rem}

h1,h2,h3{font-family:var(--serif);font-weight:500;color:var(--espresso);line-height:1.15;letter-spacing:.005em}
h1{font-size:clamp(2.4rem,5.5vw,3.9rem)}
h2{font-size:clamp(1.9rem,3.6vw,2.7rem);margin-bottom:1rem}
h3{font-size:1.55rem;margin-bottom:.4rem}
h1 em,h2 em{font-style:italic;font-weight:400}
p+p{margin-top:1rem}
.eyebrow{font-family:var(--sans);font-size:.72rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--taupe);margin-bottom:1rem;display:block}
.lede{font-size:1.15rem;color:var(--ink);max-width:38rem}
.muted{color:var(--taupe)}

.wrap{max-width:var(--max);margin:0 auto;padding:0 1.25rem}
.narrow{max-width:44rem}
section{padding:clamp(3.5rem,8vw,6rem) 0}
.band{background:var(--linen)}
.dark{background:var(--espresso);color:var(--on-dark)}
.dark h2,.dark h3{color:var(--on-dark)}
.dark .eyebrow{color:#c9b9a6}
.dark a{color:var(--on-dark)}
.dark .lede,.dark p{color:var(--on-dark)}
.center{text-align:center}
.center .lede{margin-left:auto;margin-right:auto}

/* Buttons */
.btn{display:inline-block;font-family:var(--sans);font-size:.78rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;
  background:var(--espresso);color:var(--on-dark);padding:1rem 1.8rem;border:1px solid var(--espresso);border-radius:var(--radius);transition:background .2s,color .2s}
.btn:hover{background:var(--espresso-deep);color:var(--on-dark)}
.btn.ghost{background:transparent;color:var(--espresso)}
.btn.ghost:hover{background:var(--espresso);color:var(--on-dark)}
.dark .btn{background:var(--on-dark);color:var(--espresso);border-color:var(--on-dark)}
.dark .btn:hover{background:#fff}
.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.center .actions{justify-content:center}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(240,234,229,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:4.5rem;gap:1rem}
.brand img{height:3rem;width:auto}
.nav{display:flex;align-items:center;gap:1.6rem}
.nav a{font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--espresso)}
.nav a[aria-current="page"]{border-bottom:1px solid var(--espresso)}
.nav .btn{padding:.7rem 1.2rem;color:var(--on-dark)}
.header-book{display:none}
.menu-toggle{display:none;background:none;border:0;cursor:pointer;padding:.5rem;color:var(--espresso);font:500 .72rem var(--sans);letter-spacing:.2em;text-transform:uppercase}
@media (max-width:64rem){
  .menu-toggle{display:block}
  .header-book{display:inline-block;margin-left:auto;margin-right:.25rem}
  .nav{position:absolute;top:4.5rem;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--cream);border-bottom:1px solid var(--line);display:none;padding:.5rem 1.25rem 1.25rem}
  .nav.open{display:flex}
  .nav a{padding:.9rem 0;border-bottom:1px solid var(--line)}
  .nav a[aria-current="page"]{border-bottom:1px solid var(--line);color:var(--taupe)}
  .nav .btn{margin-top:1rem;text-align:center;border-bottom:0}
}

/* Hero */
.hero{padding:clamp(3rem,7vw,5.5rem) 0}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.hero h1{margin-bottom:1.25rem}
.hero .where{margin-top:1.5rem;font-size:.85rem;color:var(--taupe);letter-spacing:.04em}
@media (max-width:52rem){.hero .wrap{grid-template-columns:1fr}.hero .arch{max-width:22rem;margin:0 auto}}
.page-hero{padding:clamp(3rem,7vw,5rem) 0 clamp(2rem,5vw,3rem);text-align:center}
.page-hero .lede{margin:1rem auto 0}

/* Arched photo frame + placeholder */
.arch{aspect-ratio:4/5;border-radius:999px 999px var(--radius) var(--radius);overflow:hidden;background:var(--linen)}
.arch img{width:100%;height:100%;object-fit:cover}
.photo-ph{width:100%;height:100%;display:grid;place-items:center;text-align:center;padding:2rem;
  background:linear-gradient(160deg,#e6ddd4 0%,#d8cbbd 100%);color:var(--taupe);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase}

/* Square photos (temporary stock images get a warm brown tone to match the brand) */
.photo{aspect-ratio:4/5;width:100%;max-width:20rem;margin:0 auto;border-radius:999px 999px var(--radius) var(--radius);overflow:hidden;background:var(--linen)}
.photo img{width:100%;height:100%;object-fit:cover;filter:sepia(.4) saturate(.85) contrast(.96) brightness(.96)}
.photo img.no-tone{filter:none}

/* Text-only hero */
.hero-text .wrap{grid-template-columns:1fr;max-width:46rem;text-align:center}
.hero-text .lede{margin-left:auto;margin-right:auto}
.hero-text .actions{justify-content:center}

/* Leaf divider */
.leaf-rule{display:flex;align-items:center;justify-content:center;gap:1rem;color:var(--taupe);margin:0 auto 1.5rem}
.leaf-rule::before,.leaf-rule::after{content:"";height:1px;width:4rem;background:currentColor;opacity:.6}
.leaf-rule svg{width:2.2rem;height:auto}
.dark .leaf-rule{color:#c9b9a6}

/* Treatment cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1.25rem;margin-top:2.5rem}
.card{background:var(--cream-light);border:1px solid var(--line);border-radius:var(--radius);padding:2rem 1.75rem;display:flex;flex-direction:column}
.card p{font-size:.98rem;flex:1}
.card .meta{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--taupe);margin:1.25rem 0 .75rem}
.card a.more{font-size:.75rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;text-decoration:none}
.card a.more::after{content:" →"}

/* Two-column content */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.split.top{align-items:start}
@media (max-width:52rem){.split{grid-template-columns:1fr}}
.prose h2{margin-top:2.5rem}
.prose h2:first-child{margin-top:0}
.prose ul{margin:1rem 0 0 1.2rem}
.prose li{margin-top:.4rem}
.prose li::marker{color:var(--taupe)}

/* Fact panel on treatment pages */
.facts{background:var(--cream-light);border:1px solid var(--line);border-radius:var(--radius);padding:1.75rem;position:sticky;top:6rem}
.facts dl{display:grid;grid-template-columns:auto 1fr;gap:.6rem 1.25rem;margin:1rem 0 1.5rem}
.facts dt{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--taupe);padding-top:.2rem}
.facts dd{font-family:var(--serif);font-size:1.3rem;color:var(--espresso);line-height:1.3}
.facts .btn{display:block;text-align:center}
.treat-grid{display:grid;grid-template-columns:1fr 19rem;gap:clamp(2rem,5vw,4rem);align-items:start}
@media (max-width:52rem){.treat-grid{grid-template-columns:1fr}.facts{position:static}}

/* Price list */
.price-list{list-style:none;margin-top:2rem;border-top:1px solid var(--line)}
.price-list li{display:grid;grid-template-columns:1fr auto;gap:.25rem 1.5rem;padding:1.4rem 0;border-bottom:1px solid var(--line)}
.price-list h3{font-size:1.45rem;margin:0}
.price-list h3 a{text-decoration:none}
.price-list .dur{grid-column:1;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--taupe)}
.btn.xs{padding:.45rem .8rem;font-size:.62rem;letter-spacing:.14em}
.price-list .item-book{grid-column:2;grid-row:2;justify-self:end;align-self:start;margin-top:.35rem;white-space:nowrap}
.price-list li:has(.item-book) .price{grid-row:1;align-self:start;text-align:right;line-height:1.15}
.price-list .desc{grid-column:1/-1;font-size:.95rem;margin-top:.5rem;color:var(--ink)}
.price-list .price{grid-row:1/3;grid-column:2;align-self:center;font-family:var(--serif);font-size:1.7rem;color:var(--espresso)}

/* Price groups and per-treatment option lists */
.price-group{margin-top:4.5rem;font-size:clamp(2rem,4.5vw,2.75rem);padding-bottom:.5rem;border-bottom:2px solid var(--espresso)}
.price-group:first-child{margin-top:0}
.price-group a{text-decoration:none}
.price-group+.price-list{margin-top:0;border-top:0}
.prose .price-list{margin:1rem 0 0;list-style:none}
.prose .price-list li{margin-top:0}
.prose .price-list h3{font-size:1.3rem}
.prose .price-list .price{font-size:1.45rem}

/* FAQ */
.faq{margin-top:2rem;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:1.25rem 2.5rem 1.25rem 0;position:relative;font-family:var(--serif);font-size:1.35rem;color:var(--espresso);line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:.25rem;top:1.1rem;font-family:var(--sans);font-weight:300;font-size:1.5rem;color:var(--taupe)}
.faq details[open] summary::after{content:"−"}
.faq details>div{padding:0 0 1.5rem}
.faq-group+.faq-group{margin-top:3rem}

/* Practitioners */
.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:2rem;max-width:46rem;margin:2.5rem auto 0;text-align:center}
.person-photo{width:10rem;aspect-ratio:1;border-radius:50%;overflow:hidden;margin:0 auto 1.25rem;background:var(--linen)}
.person-photo img{width:100%;height:100%;object-fit:cover}
.person h3{margin-bottom:.2rem}
.person .eyebrow{margin-bottom:.75rem}
.person .eyebrow a{color:inherit;text-underline-offset:.3em}
.person p{font-size:.98rem}

/* Testimonials */
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:2rem;margin-top:2.5rem}
.quote{font-family:var(--serif);font-size:1.35rem;font-style:italic;line-height:1.45}
.quote cite{display:block;margin-top:1rem;font-family:var(--sans);font-style:normal;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;opacity:.75}

/* Single review on treatment pages */
.page-quote{margin:1rem 0 0;padding:1.5rem 1.75rem;background:var(--cream-light);border-left:2px solid var(--taupe);font-family:var(--serif);font-style:italic;font-size:1.3rem;line-height:1.45;color:var(--espresso)}
.page-quote cite{display:block;margin-top:.75rem;font-family:var(--sans);font-style:normal;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--taupe)}
.dark p a{text-underline-offset:.25em}

/* Booking embed */
.booking-frame{margin-top:1rem;min-height:30rem}
.booking-frame iframe{width:100%;min-height:900px;border:0}
.embed-ph{display:grid;place-items:center;min-height:18rem;text-align:center;color:var(--taupe);padding:2rem}

.map{aspect-ratio:4/3;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--linen)}
.map iframe{width:100%;height:100%;border:0}

.notice{border-left:2px solid var(--taupe);padding:.25rem 0 .25rem 1.25rem;margin-top:1.5rem;font-size:.95rem;color:var(--taupe)}

/* Footer */
.site-footer{background:var(--espresso-deep);color:var(--on-dark);padding:4rem 0 2rem;font-size:.95rem}
.site-footer a{color:var(--on-dark);text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:2.5rem}
.foot-grid h2{font-family:var(--sans);font-size:.72rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:#c9b9a6;margin-bottom:1rem}
.foot-grid ul{list-style:none}
.foot-grid li+li{margin-top:.45rem}
.foot-logo{width:13rem;margin-bottom:1rem}
.foot-base{border-top:1px solid rgba(237,227,214,.18);margin-top:3rem;padding-top:1.5rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.8rem;opacity:.75}
@media (max-width:52rem){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:30rem){.foot-grid{grid-template-columns:1fr}}
