
*{box-sizing:border-box}
:root{
  --bg:#EEECF0; --surf:#FBFAFC; --ink:#1D1A22; --muted:#645E6E; --faint:#8B8595;
  --plum:#4E2C57; --plum-2:#6B4276; --line:#DBD7E0; --white:#fff;
  --sans:"Avenir Next",Avenir,Futura,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --serif:"Hoefler Text",Baskerville,Georgia,serif;
  --r:2rem; --r-sm:1.15rem;
  --shadow:0 1px 2px rgba(29,26,34,.04), 0 12px 32px -12px rgba(29,26,34,.14);
  color-scheme:light;
}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);
     font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--plum);outline-offset:3px;border-radius:6px}
.wrap{max-width:80rem;margin:0 auto;padding-left:clamp(1.1rem,4vw,3.5rem);padding-right:clamp(1.1rem,4vw,3.5rem)}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* ---------- header ---------- */
.notice{background:var(--plum);color:#F3EAF6;font-size:.75rem;letter-spacing:.06em;
        padding:.55rem 1rem;text-align:center}
.notice b{font-weight:600;letter-spacing:.14em;text-transform:uppercase}
header.site{position:sticky;top:0;z-index:50;background:rgba(238,236,240,.82);
            backdrop-filter:saturate(1.7) blur(14px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;gap:1.25rem;padding-top:.95rem;padding-bottom:.95rem}
.brand{flex:0 0 auto;display:block;line-height:0}
.brand img{height:34px;width:auto;display:block}
@media(max-width:960px){.brand img{height:27px}}
nav.main{display:flex;gap:1.4rem;font-size:.875rem;color:var(--muted);margin-left:auto;align-items:center}
nav.main a{position:relative;padding:.15rem 0}
nav.main a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1.5px;
                  background:var(--plum);transform:scaleX(0);transform-origin:left;transition:transform .3s}
nav.main a:hover::after{transform:scaleX(1)}
nav.main a[aria-current="page"]{color:var(--ink);font-weight:600}
nav.main a[aria-current="page"]::after{transform:scaleX(1)}
.pill{background:var(--plum);color:#fff;border-radius:999px;padding:.7rem 1.4rem;
      font-size:.85rem;font-weight:600;white-space:nowrap;display:inline-block;
      transition:background .25s,transform .25s}
.pill:hover{background:var(--plum-2);transform:translateY(-1px)}
.pill.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);font-weight:500}
.pill.ghost:hover{background:var(--surf);border-color:var(--muted)}
.pill.wa{background:#17753F}
.pill.wa:hover{background:#1E9151}
@media(max-width:960px){
  nav.main{display:none}
  .bar{flex-wrap:nowrap;gap:.7rem;padding-top:.7rem;padding-bottom:.7rem}
  .brand{margin-right:auto}
  .pill{padding:.58rem 1.15rem;font-size:.82rem}
}

/* ---------- type ---------- */
.eyebrow{font-size:.72rem;letter-spacing:.19em;text-transform:uppercase;color:var(--plum);margin:0;font-weight:600}
h1{font-size:clamp(2.3rem,6vw,4.6rem);line-height:1.02;letter-spacing:-.035em;
   font-weight:600;margin:.8rem 0 0;text-wrap:balance;max-width:15ch}
h1 em,h2 em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--plum);letter-spacing:-.01em}
h2{font-size:clamp(1.7rem,3.6vw,2.7rem);line-height:1.08;letter-spacing:-.028em;
   font-weight:600;margin:0 0 1.1rem;text-wrap:balance}
h3{font-size:1.15rem;font-weight:600;margin:0 0 .4rem;letter-spacing:-.008em}
p{margin:0 0 1.05rem}
.lede{color:var(--muted);max-width:46ch;font-size:clamp(1.02rem,1.5vw,1.15rem)}

/* ---------- hero ---------- */
.hero{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(1.6rem,4.5vw,4rem);
      align-items:center;padding-top:clamp(2rem,5vw,4rem);padding-bottom:clamp(2.2rem,5.5vw,4.5rem)}
@media(max-width:900px){.hero{grid-template-columns:1fr;gap:1.9rem}}
.shot{border-radius:var(--r);overflow:hidden;background:#DCD8E2;box-shadow:var(--shadow)}
.shot.p45{aspect-ratio:4/5}
.shot.p11{aspect-ratio:1/1}
.shot.p169{aspect-ratio:16/9}
.shot.p32{aspect-ratio:3/2}
.shot img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,1,.36,1)}
.shot:hover img{transform:scale(1.03)}
.trust{display:inline-flex;align-items:center;gap:.6rem;margin-top:1.4rem;
       background:var(--surf);border:1px solid var(--line);border-radius:999px;padding:.5rem .95rem;font-size:.85rem}
.trust .stars{color:#C8992F;letter-spacing:.08em}
.trust b{font-weight:700}
.trust span{color:var(--muted)}

.acts{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2rem;align-items:center}

/* ---------- sections ---------- */
section.band{background:var(--surf);padding-top:clamp(2.4rem,5.5vw,4.25rem);padding-bottom:clamp(2.4rem,5.5vw,4.25rem);
             margin-top:clamp(1.6rem,4vw,3rem)}
section.plain{padding-top:clamp(2.2rem,5vw,4rem);padding-bottom:clamp(2.2rem,5vw,4rem)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.6rem,4vw,3.5rem);align-items:center}
@media(max-width:900px){.two{grid-template-columns:1fr}}
.three{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:clamp(1.3rem,3vw,2.4rem)}

/* ---------- tiles ---------- */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem}
.tile{background:var(--bg);border-radius:var(--r-sm);padding:1.45rem 1.5rem;display:flex;
      flex-direction:column;gap:.35rem;min-height:9.5rem;transition:transform .3s,box-shadow .3s}
a.tile:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
section.band .tile{background:var(--white)}
.tile .note{font-size:.875rem;color:var(--muted);line-height:1.5}
.tile .price{margin-top:auto;padding-top:.75rem;color:var(--plum);font-weight:700;
             font-variant-numeric:tabular-nums;font-size:1.05rem}

/* ---------- price rows ---------- */
.rows{border-top:1px solid var(--line)}
.row{display:flex;justify-content:space-between;gap:1.25rem;padding:.95rem 0;border-bottom:1px solid var(--line)}
.row .r-n{font-weight:600}
.row .r-d{font-size:.875rem;color:var(--muted);margin-top:.18rem;max-width:54ch}
.row .r-p{font-variant-numeric:tabular-nums;font-weight:700;color:var(--plum);white-space:nowrap}

.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}
@media(max-width:820px){.strip{grid-template-columns:repeat(2,1fr)}}
.strip .shot{border-radius:var(--r-sm)}

.qbox{border-left:3px solid var(--plum);padding:.2rem 0 .2rem 1.35rem;margin:1.9rem 0;
      font-family:var(--serif);font-style:italic;font-size:1.25rem;line-height:1.45;max-width:44ch}

.steps{counter-reset:s;display:grid;gap:1.25rem;padding:0;margin:0;list-style:none}
.steps li{counter-increment:s;display:grid;grid-template-columns:2.2rem 1fr;gap:1rem;align-items:start}
.steps li::before{content:counter(s);grid-column:1;grid-row:1 / span 2;
  width:2.2rem;height:2.2rem;border-radius:999px;
  background:var(--plum);color:#fff;display:grid;place-items:center;font-size:.85rem;font-weight:700}
.steps b{grid-column:2;grid-row:1;display:block;margin-bottom:.2rem}
.steps span{grid-column:2;grid-row:2;color:var(--muted);font-size:.9375rem;line-height:1.6}

/* ---------- cta ---------- */
.cta-band{background:var(--plum);color:#fff;border-radius:var(--r);
          padding:clamp(1.8rem,4.5vw,3rem);margin-top:clamp(1.9rem,4vw,3.25rem);margin-bottom:clamp(1.9rem,4vw,3.25rem);
          display:grid;grid-template-columns:1fr auto;gap:1.6rem;align-items:center}
@media(max-width:820px){.cta-band{grid-template-columns:1fr}}
.cta-band h2{margin:0 0 .45rem;color:#fff}
.cta-band p{margin:0;color:#E0D2E5;max-width:44ch}
.cta-band .acts{margin-top:0}
.cta-band .pill{background:#fff;color:var(--plum)}
.cta-band .pill:hover{background:#F2EAF5}
.cta-band .pill.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.cta-band .pill.ghost:hover{background:rgba(255,255,255,.1)}

/* ---------- faq ---------- */
details.faq{border-bottom:1px solid var(--line);padding:1.05rem 0}
details.faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;
                    justify-content:space-between;gap:1rem;align-items:center}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";color:var(--plum);font-size:1.3rem;line-height:1;flex:none}
details.faq[open] summary::after{content:"\2013"}
details.faq p{margin:.7rem 0 0;color:var(--muted);max-width:62ch;font-size:.9375rem}

/* ---------- booking flow ---------- */
.bk{margin-top:1.9rem}
.bk-steps{display:flex;gap:.55rem;align-items:center;margin-bottom:1.6rem;flex-wrap:wrap}
.bk-dot{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--faint);
        border:1px solid var(--line);border-radius:999px;padding:.42rem .9rem;background:var(--surf)}
.bk-dot i{width:1.35rem;height:1.35rem;border-radius:999px;background:var(--line);color:var(--muted);
          display:grid;place-items:center;font-style:normal;font-size:.72rem;font-weight:700}
.bk-dot.on{color:var(--ink);border-color:var(--plum);background:var(--white)}
.bk-dot.on i{background:var(--plum);color:#fff}
.bk-dot.done i{background:var(--plum);color:#fff}
.bk-dot.done{color:var(--muted)}

.bk-search{margin-bottom:1.1rem}
.bk-search input{width:100%;font:inherit;padding:.85rem 1rem;border:1px solid var(--line);
                 border-radius:999px;background:var(--white);color:var(--ink)}
.bk-search input:focus{outline:2px solid var(--plum);outline-offset:1px;border-color:transparent}

.bk-cats{display:grid;gap:.55rem}
.bk-cat{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;text-align:left;
        background:var(--white);border:1px solid var(--line);border-radius:var(--r-sm);padding:1.1rem 1.25rem;
        font:inherit;cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s}
.bk-cat:hover{border-color:var(--plum);transform:translateY(-2px);box-shadow:var(--shadow)}
.bk-cat b{display:block;font-size:1rem;font-weight:600;line-height:1.3}
.bk-cat small{display:block;color:var(--muted);font-size:.82rem;margin-top:.16rem}
.bk-cat-r{color:var(--plum);font-weight:600;white-space:nowrap;font-size:.9rem;
          display:flex;align-items:center;gap:.5rem}
.bk-cat-r em{font-style:normal;font-size:1.25rem;color:var(--muted)}

.bk-group{margin-bottom:1.9rem}
.bk-gname{font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:var(--plum);
          margin:0 0 .75rem;font-weight:600}
.bk-items{display:grid;gap:.55rem}
.bk-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;
         text-align:left;background:var(--white);border:1px solid var(--line);border-radius:var(--r-sm);
         padding:1.05rem 1.2rem;font:inherit;cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s}
.bk-item:hover{border-color:var(--plum);transform:translateY(-2px);box-shadow:var(--shadow)}
.bk-i-main b{display:block;font-size:1rem;font-weight:600;line-height:1.3}
.bk-i-main small{display:block;color:var(--muted);font-size:.82rem;margin-top:.18rem}
.bk-i-price{font-weight:700;color:var(--plum);white-space:nowrap;font-variant-numeric:tabular-nums}
.bk-i-price s{display:block;color:var(--faint);font-weight:400;font-size:.8rem}

.bk-daystrip{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.5rem;-webkit-overflow-scrolling:touch;
             scrollbar-width:none}
.bk-daystrip::-webkit-scrollbar{display:none}
.bk-day{flex:none;width:4.1rem;background:var(--white);border:1px solid var(--line);border-radius:var(--r-sm);
        padding:.7rem .3rem;text-align:center;font:inherit;cursor:pointer;transition:border-color .2s,background .2s}
.bk-day small{display:block;font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.bk-day b{display:block;font-size:1.25rem;line-height:1.25;font-weight:600}
.bk-day em{display:block;font-style:normal;font-size:.7rem;color:var(--muted)}
.bk-day.on{border-color:var(--plum);background:var(--plum);}
.bk-day.on small,.bk-day.on b,.bk-day.on em{color:#fff}

.bk-staff{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.1rem}
.bk-who{background:var(--white);border:1px solid var(--line);border-radius:999px;padding:.55rem 1.05rem;
        font:inherit;cursor:pointer;text-align:left;transition:border-color .2s,background .2s}
.bk-who b{display:block;font-size:.9rem;font-weight:600}
.bk-who small{display:block;font-size:.72rem;color:var(--muted)}
.bk-who.on{border-color:var(--plum);background:var(--plum)}
.bk-who.on b,.bk-who.on small{color:#fff}

.bk-wait{margin-top:1.2rem;font-size:.88rem;color:var(--muted)}
.bk-waitbtn{background:none;border:0;color:var(--plum);font:inherit;font-weight:600;
            text-decoration:underline;cursor:pointer;padding:0}

.bk-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:.55rem;margin-top:1.3rem}
.bk-time{background:var(--white);border:1px solid var(--line);border-radius:var(--r-sm);padding:.7rem .4rem;
         font:inherit;cursor:pointer;text-align:center;transition:border-color .2s,transform .2s}
.bk-time:hover{border-color:var(--plum);transform:translateY(-2px)}
.bk-time b{display:block;font-size:1rem;font-weight:600}
.bk-time small{display:block;font-size:.72rem;color:var(--muted);margin-top:.1rem}

.bk-loading,.bk-cardok{background:#EEF7F0;border:1px solid #BFE0C8;border-radius:12px;
  padding:1rem 1.1rem;color:#1F5130;font-size:.9375rem;line-height:1.5}
.bk-hint{margin:.4rem 0 0;font-size:.8125rem;color:var(--faint);line-height:1.45}
.bk-empty{padding:1.6rem;text-align:center;color:var(--muted);background:var(--surf);
                      border-radius:var(--r-sm);font-size:.92rem}
.bk-empty a{color:var(--plum);font-weight:600;text-decoration:underline}

.bk-form{display:grid;gap:.85rem;max-width:34rem}
.bk-form label{display:block;font-size:.8rem;font-weight:600;margin-bottom:.3rem}
.bk-form input,.bk-form textarea{width:100%;font:inherit;padding:.78rem .9rem;border:1px solid var(--line);
                                 border-radius:.8rem;background:var(--white);color:var(--ink)}
.bk-form input:focus,.bk-form textarea:focus{outline:2px solid var(--plum);outline-offset:1px;border-color:transparent}
.bk-form textarea{min-height:5rem;resize:vertical}
.bk-err{color:#A32020;background:#FBEAEA;border-radius:.7rem;padding:.7rem .9rem;font-size:.88rem}

.bk-express{margin-bottom:1.4rem}
.bk-express-note{margin:.65rem 0 0;font-size:.82rem;color:var(--muted);text-align:center}
.bk-or{display:flex;align-items:center;gap:.9rem;margin:1.3rem 0 .2rem;color:var(--faint);font-size:.8rem}
.bk-or::before,.bk-or::after{content:"";flex:1;height:1px;background:var(--line)}

.bk-card{border:1px solid var(--line);border-radius:var(--r-sm);padding:1.1rem 1.15rem;background:var(--white)}
.bk-card-h{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;
           flex-wrap:wrap;margin-bottom:.9rem}
.bk-card-h b{font-size:.95rem}
.bk-card-h span{font-size:.82rem;color:var(--plum);font-weight:600}
.bk-req{font-weight:400;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:var(--plum);background:#EDE6F0;border-radius:999px;padding:.1rem .5rem;margin-left:.4rem}
.bk-lock{margin:0 0 .6rem;font-size:.875rem;color:var(--plum);font-weight:600}
.bk-locked{opacity:.4;pointer-events:none;filter:grayscale(1)}
.bk-terms{margin:0 0 1rem;font-size:.875rem;line-height:1.55;color:var(--muted)}
.bk-terms b{color:var(--ink)}
.bk-consent{margin-bottom:1rem;display:grid;grid-template-columns:1.15rem 1fr;gap:.65rem;align-items:start;
            margin-top:1rem;font-size:.83rem;color:var(--muted);line-height:1.5;cursor:pointer}
.bk-consent input{width:1.15rem;height:1.15rem;margin:.12rem 0 0;accent-color:var(--plum)}
.bk-consent b{color:var(--ink)}

.bk-sum{position:sticky;bottom:0;z-index:20;display:flex;align-items:center;justify-content:space-between;
        gap:1rem;background:var(--plum);color:#fff;border-radius:var(--r-sm);padding:.85rem 1.15rem;
        margin-top:1.6rem;font-size:.92rem}
.bk-sum b{font-size:1.05rem;font-variant-numeric:tabular-nums}

.bk-back{background:none;border:0;color:var(--muted);font:inherit;font-size:.88rem;cursor:pointer;
         padding:.3rem 0;margin-bottom:1rem;text-decoration:underline}
.bk-back:hover{color:var(--ink)}

.bk-done{text-align:center;padding:2.2rem 1rem;background:var(--surf);border-radius:var(--r)}
.bk-done .tick{width:3.4rem;height:3.4rem;border-radius:999px;background:var(--plum);color:#fff;
               display:grid;place-items:center;margin:0 auto 1.1rem;font-size:1.6rem}
.bk-done h2{margin-bottom:.5rem}
.bk-done .ref{display:inline-block;margin-top:1rem;background:var(--white);border:1px solid var(--line);
              border-radius:999px;padding:.45rem 1rem;font-size:.85rem;color:var(--muted)}
.bk-done .ref b{color:var(--ink);letter-spacing:.06em}

/* ---------- lash type diagrams ---------- */
.lashgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
@media(max-width:900px){.lashgrid{grid-template-columns:repeat(2,1fr)}}
.lashfig{margin:0;background:var(--white);border:1px solid var(--line);border-radius:var(--r-sm);
         padding:1.1rem .9rem .95rem;transition:transform .3s,box-shadow .3s}
.lashfig:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.lashfig svg{width:100%;height:auto;display:block}
.lashfig figcaption{text-align:center;margin-top:.45rem}
.lashfig b{display:block;font-size:.95rem;letter-spacing:-.005em}
.lashfig span{display:block;font-size:.8rem;color:var(--muted);line-height:1.45;margin-top:.15rem}
.lashfig em{display:block;font-style:normal;font-weight:700;color:var(--plum);margin-top:.5rem;
            font-variant-numeric:tabular-nums;font-size:.9rem}

/* ---------- gift / package cards ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1rem;margin-top:1.6rem}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-sm);
      padding:1.5rem 1.4rem;display:flex;flex-direction:column;gap:.5rem;transition:transform .3s,box-shadow .3s}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.card .amt{font-size:2rem;font-weight:700;letter-spacing:-.03em;line-height:1}
.card .amt small{font-size:1.1rem;font-weight:600;color:var(--muted)}
.card .desc{font-size:.875rem;color:var(--muted);line-height:1.5}
.card .go{margin-top:auto;padding-top:1rem}
.card .go a{display:block;text-align:center;background:var(--plum);color:#fff;border-radius:999px;
            padding:.72rem 1rem;font-size:.875rem;font-weight:600}
.card .go a:hover{background:var(--plum-2)}
.card.wide{grid-column:1/-1;flex-direction:row;align-items:center;gap:1.5rem;flex-wrap:wrap}
.card.wide .go{margin-top:0;padding-top:0;margin-left:auto}
.terms{margin-top:2rem;font-size:.85rem;color:var(--muted);line-height:1.7;max-width:64ch}
.terms b{color:var(--ink)}

/* ---------- booking widget (opens as an overlay at every size) ---------- */
/* Treatwell's own sticky footer breaks out of a short inline frame, so the
   widget is never inline - it gets a proper viewport of its own instead. */
.bookwrap{display:none}
.bw-veil{display:none}
.fallback{margin-top:1rem;font-size:.875rem;color:var(--muted)}
.fallback a{color:var(--plum);font-weight:600;text-decoration:underline}

.bw-open{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;
         max-width:34rem;margin-top:1.7rem;background:var(--plum);color:#fff;border:0;
         border-radius:var(--r-sm);padding:1.3rem 1.5rem;font:inherit;font-weight:600;
         font-size:1.08rem;text-align:left;cursor:pointer;
         transition:background .25s,transform .25s}
.bw-open:hover{background:var(--plum-2);transform:translateY(-2px)}
.bw-open small{display:block;font-weight:400;font-size:.85rem;color:#E0D2E5;margin-top:.22rem}
.bw-open .arw{font-size:1.4rem;line-height:1;flex:none}

body.bw-on{overflow:hidden}
body.bw-on .bw-veil{display:block;position:fixed;inset:0;z-index:190;background:rgba(29,26,34,.55);
                    backdrop-filter:blur(3px)}
body.bw-on .bookwrap{display:block;position:fixed;z-index:200;overflow:hidden;background:var(--white);
  left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(1120px,94vw);height:min(920px,92vh);
  border-radius:var(--r);box-shadow:0 30px 80px -20px rgba(29,26,34,.5)}
body.bw-on .bw-bar{display:flex;align-items:center;justify-content:space-between;
                   height:56px;padding:0 1rem;background:var(--plum);color:#fff;
                   font-size:.95rem;font-weight:600}
.bw-close{background:rgba(255,255,255,.16);color:#fff;border:0;border-radius:999px;
          padding:.48rem 1.1rem;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}
.bw-close:hover{background:rgba(255,255,255,.28)}
.bw-bar{display:none}
body.bw-on .bookwrap iframe{display:block;width:100%;border:0;height:calc(100% - 56px);
  position:relative;z-index:2;background:transparent}
.bw-load{position:absolute;left:0;right:0;top:56px;bottom:0;z-index:1;display:grid;place-items:center;
         gap:.9rem;color:var(--muted);font-size:.9rem;text-align:center;padding:1.5rem}
.bw-load .spin{width:26px;height:26px;border:2px solid var(--line);border-top-color:var(--plum);
               border-radius:50%;animation:bwspin .8s linear infinite}
@keyframes bwspin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.bw-load .spin{animation:none}}


@media(max-width:820px){
  .bw-open{max-width:none}
  body.bw-on .bookwrap{left:0;top:0;transform:none;width:100%;height:100dvh;height:100vh;
                       border-radius:0;box-shadow:none}
}

/* ---------- mobile nav strip (scrolls away with the page) ---------- */
.mobnav{display:none}
@media(max-width:960px){
  .mobnav{display:block;border-bottom:1px solid var(--line);background:var(--bg)}
  .mobnav .inner{display:flex;gap:1.15rem;font-size:.875rem;color:var(--muted);
    overflow-x:auto;white-space:nowrap;padding-top:.7rem;padding-bottom:.7rem;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent)}
  .mobnav .inner::-webkit-scrollbar{display:none}
  .mobnav a[aria-current="page"]{color:var(--ink);font-weight:600}
}

/* ---------- footer ---------- */
footer.site{border-top:1px solid var(--line);margin-top:clamp(2.2rem,5vw,4rem);
            padding-top:clamp(2.2rem,5vw,3.25rem);padding-bottom:3.25rem;font-size:.9rem}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1.9rem}
footer.site h4{font-size:.72rem;letter-spacing:.17em;text-transform:uppercase;
               color:var(--plum);margin:0 0 .75rem;font-weight:600}
footer.site a{color:var(--muted)}
footer.site a:hover{color:var(--ink)}
footer.site .fn a{display:block;margin-bottom:.4rem}
.legal{margin-top:2.2rem;padding-top:1.35rem;border-top:1px solid var(--line);
       color:var(--faint);font-size:.75rem;line-height:1.7}
