/* Layout: cream letterhead page in the logo's own palette; olive bands for the employer and contact sections; gold used only for rules and key actions. Single light theme by choice, matching the brand mark. */
:root{
  --paper:#f1eadf;      /* matches the logo's ground */
  --paper-2:#f8f4ec;
  --olive:#2c3610;
  --olive-2:#46521f;
  --ink:#1f2410;
  --muted:#5d6148;
  --gold:#a8822a;
  --gold-soft:#d9c08a;
  --line:#d8cdb6;
  --on-olive:#f3ecdd;
  --display:"Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;
  --sans:"Montserrat", "Helvetica Neue", Arial, sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65}
a{color:inherit}
.wrap{max-width:1140px;margin:0 auto;padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px))}
h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.12;text-wrap:balance;margin:0}
h2{font-size:clamp(1.9rem,4vw,2.7rem)}
h3{font-size:1.3rem}
p{margin:0}
.eyebrow{font-size:.74rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.lede{color:var(--muted);max-width:60ch}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:.85em 1.5em;border-radius:2px;font-weight:600;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border:1.5px solid var(--olive);cursor:pointer;font-family:var(--sans);transition:background .2s,color .2s}
.btn-solid{background:var(--olive);color:var(--on-olive)}
.btn-solid:hover{background:var(--olive-2)}
.btn-line{background:transparent;color:var(--olive)}
.btn-line:hover{background:var(--olive);color:var(--on-olive)}
.btn-gold{background:var(--gold);border-color:var(--gold);color:#fffaf0}
.btn-gold:hover{background:#8f6e21}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.setup{border:1.5px dashed var(--gold);background:var(--paper-2);color:var(--muted);font-size:.82rem;padding:.7em 1em;border-radius:2px}
.setup b{color:var(--gold);letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;margin-right:.4em}
.on-olive .setup{background:transparent;color:var(--gold-soft);border-color:var(--gold-soft)}
.on-olive .setup b{color:var(--gold-soft)}

/* top bar + header */
.topbar{background:var(--olive);color:var(--on-olive);font-size:.8rem}
.topbar .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25em 1.5em;padding-block:.45em}
.topbar span{opacity:.85}
header.site{position:sticky;top:env(safe-area-inset-top, 0px);z-index:10;background:var(--paper);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.6rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none}
.brand img{height:46px;width:auto;mix-blend-mode:multiply}
.brand span{font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.8rem;color:var(--olive);line-height:1.25}
.brand span em{display:block;font-style:normal;font-weight:500;letter-spacing:.26em;font-size:.62rem;color:var(--muted)}
nav.main{display:flex;align-items:center;gap:1.4rem}
nav.main a{text-decoration:none;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--olive)}
nav.main a:not(.btn):hover{color:var(--gold)}
.menu{display:none;position:relative}
.menu summary{list-style:none;cursor:pointer}
.menu summary::-webkit-details-marker{display:none}
.menu .panel{position:absolute;right:0;top:calc(100% + 10px);background:var(--paper-2);border:1px solid var(--line);padding:.6rem 0;min-width:210px;box-shadow:0 12px 30px rgba(31,36,16,.12)}
.menu .panel a{display:block;padding:.55rem 1.2rem;text-decoration:none;font-weight:600;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--olive)}
@media (max-width:900px){nav.main{display:none}.menu{display:block}}

/* hero */
.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:3rem;align-items:center;padding-block:clamp(2.5rem,6vw,5rem)}
.hero h1{font-size:clamp(2.4rem,5.4vw,4rem);color:var(--olive)}
.hero h1 i{color:var(--gold);font-style:italic}
.hero-copy{display:grid;gap:1.4rem;min-width:0}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem}
.hero-photos{position:relative;padding:0 0 3.5rem 2.5rem;min-width:0}
.hero-photos .main{width:100%;max-width:440px;aspect-ratio:4/5;object-fit:cover;display:block;margin-left:auto;box-shadow:18px 18px 0 var(--gold-soft)}
.hero-photos .inset{position:absolute;left:0;bottom:0;width:46%;max-width:220px;aspect-ratio:1;object-fit:cover;border:6px solid var(--paper)}
.photo{width:100%;max-width:100%;display:block;object-fit:cover}
.assure{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.8rem;font-weight:600;color:var(--olive)}
.assure span::before{content:"";display:inline-block;width:7px;height:7px;background:var(--gold);transform:rotate(45deg);margin-right:.55em;vertical-align:.1em}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}.hero-photos{max-width:440px;padding-left:1.5rem}}

/* sections */
section{scroll-margin-top:80px}
.section{padding-block:clamp(3rem,7vw,5.5rem)}
.head{display:grid;gap:.8rem;margin-bottom:2.4rem}
.rule{display:flex;align-items:center;gap:1rem}
.rule::before,.rule::after{content:"";height:1px;background:var(--gold);width:42px}
.rule::after{display:none}

/* services */
.services{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
.svc-col{min-width:0}
.svc-col .photo{aspect-ratio:16/10;margin-bottom:1.4rem}
.svc-col h3{color:var(--olive);padding-bottom:.6rem;border-bottom:1.5px solid var(--olive);margin-bottom:.4rem}
.svc{display:grid;gap:.15rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.svc strong{font-weight:600;color:var(--olive)}
.svc p{color:var(--muted);font-size:.94rem}
.tag{display:inline-block;font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-left:.5em}
@media (max-width:800px){.services{grid-template-columns:1fr}}

/* gender reveal band */
.gender{display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:1.5rem;align-items:center}
.gender .photo{aspect-ratio:3/4}
.gender-copy{display:grid;gap:1rem;min-width:0;padding-left:1rem}
.gender-copy h2{color:var(--olive)}
@media (max-width:860px){.gender{grid-template-columns:1fr 1fr}.gender-copy{grid-column:1/-1;padding-left:0;order:-1}}
/* feature row */
.feature{display:grid;grid-template-columns:1fr 1.2fr;gap:2.5rem;align-items:center;margin-top:3rem;padding-top:3rem;border-top:1px solid var(--line)}
.feature > div{min-width:0;display:grid;gap:.8rem}
.feature .photo{aspect-ratio:3/2}
.feature h3{color:var(--olive);font-size:1.6rem}
@media (max-width:760px){.feature{grid-template-columns:1fr}}

/* steps */
.band{background:var(--paper-2);border-block:1px solid var(--line)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;counter-reset:s}
.step{counter-increment:s;display:grid;gap:.5rem;align-content:start}
.step::before{content:counter(s);font-family:var(--display);font-size:2.6rem;color:var(--gold);line-height:1}
.step strong{color:var(--olive)}
.step p{color:var(--muted);font-size:.93rem}
@media (max-width:860px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.steps{grid-template-columns:1fr}}

/* pricing */
.price-wrap{overflow-x:auto}
table.prices{width:100%;border-collapse:collapse;min-width:520px}
.prices th{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;text-align:left;color:var(--muted);font-weight:600;padding:.6rem .5rem;border-bottom:1.5px solid var(--olive)}
.prices td{padding:.85rem .5rem;border-bottom:1px solid var(--line);vertical-align:middle}
.prices td:first-child{font-weight:600;color:var(--olive)}
.prices td small{display:block;font-weight:400;color:var(--muted);font-size:.82rem}
.prices .amt{font-family:var(--display);font-size:1.25rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.prices .act{text-align:right}
.prices .btn{padding:.55em 1.1em;font-size:.72rem}
.group td{background:transparent;font-size:.7rem!important;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)!important;padding-top:1.6rem;border-bottom:none}

/* employer band */
.on-olive{background:var(--olive);color:var(--on-olive)}
.on-olive h2{color:var(--on-olive)}
.on-olive .lede{color:#cfc8b2}
.employer{display:grid;grid-template-columns:.9fr 1.1fr;gap:3rem}
.employer > div{min-width:0}
.employer .photo{aspect-ratio:3/2;margin-bottom:1.8rem;border:1px solid var(--gold-soft)}
.industries{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}
.industries span{border:1px solid var(--gold-soft);color:var(--gold-soft);padding:.35em .9em;font-size:.78rem;font-weight:600;letter-spacing:.06em}
.reasons{display:grid;gap:.6rem;margin-top:1.6rem;padding:0;list-style:none}
.reasons li{padding-left:1.4rem;position:relative}
.reasons li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;background:var(--gold);transform:rotate(45deg)}
form.quote{background:var(--paper-2);color:var(--ink);padding:clamp(1.2rem,3vw,2rem);display:grid;grid-template-columns:1fr 1fr;gap:1rem}
form.quote h3{grid-column:1/-1;color:var(--olive)}
.field{display:grid;gap:.3rem;min-width:0}
.field.full{grid-column:1/-1}
.field label,.field legend{font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.field input,.field select,.field textarea{font:inherit;font-size:.95rem;padding:.65em .75em;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:2px;width:100%}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--gold);outline-offset:0;border-color:var(--gold)}
fieldset.field{border:0;padding:0;margin:0}
.checks{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem}
.checks label{display:flex;align-items:center;gap:.4rem;font-size:.9rem;text-transform:none;letter-spacing:0;font-weight:500;color:var(--ink)}
.form-msg{grid-column:1/-1;font-size:.9rem;color:var(--olive);font-weight:600}
@media (max-width:860px){.employer{grid-template-columns:1fr}}
@media (max-width:520px){form.quote{grid-template-columns:1fr}}

/* booking */
.book{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start}
.book > div{min-width:0}
.book-card .photo{aspect-ratio:3/2;margin:calc(-1*clamp(1.4rem,3vw,2.2rem)) calc(-1*clamp(1.4rem,3vw,2.2rem)) .4rem;width:calc(100% + 2*clamp(1.4rem,3vw,2.2rem));max-width:none}
.book-card{overflow:hidden;border:1.5px solid var(--olive);padding:clamp(1.4rem,3vw,2.2rem);display:grid;gap:1rem;background:var(--paper-2)}
.book-card h3{color:var(--olive)}
.bring{display:grid;gap:.5rem;padding:0;margin:0;list-style:none}
.bring li{display:flex;gap:.7rem;padding:.6rem 0;border-bottom:1px solid var(--line)}
.bring li b{color:var(--olive);min-width:7.5rem}
@media (max-width:800px){.book{grid-template-columns:1fr}}

/* faq */
.faq-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:3rem;align-items:start}
.faq-layout .photo{aspect-ratio:4/5;position:sticky;top:100px}
@media (max-width:860px){.faq-layout{grid-template-columns:1fr}.faq-layout .photo{position:static;max-width:420px;aspect-ratio:3/2}}
.faq{display:grid;gap:0;min-width:0}
.signoff{background:var(--paper);border-top:1px solid var(--line)}
.signoff .wrap{padding-block:clamp(2rem,5vw,3.5rem);display:grid;justify-items:center;gap:1rem;text-align:center}
.signoff img{width:100%;max-width:380px;mix-blend-mode:multiply}
.signoff p{color:var(--muted);max-width:52ch}
.faq details{border-bottom:1px solid var(--line);padding:1.1rem 0}
.faq summary{cursor:pointer;font-family:var(--display);font-size:1.2rem;color:var(--olive);list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--gold);font-family:var(--sans);font-weight:500}
.faq details[open] summary::after{content:"–"}
.faq details p{color:var(--muted);margin-top:.7rem;max-width:68ch}

/* contact/footer */
.contact{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.contact h3{font-family:var(--sans);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);font-weight:600;margin-bottom:.6rem}
.contact p{color:var(--on-olive);user-select:text}
@media (max-width:860px){.contact{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.contact{grid-template-columns:1fr}}
footer.legal{border-top:1px solid rgba(217,192,138,.3)}
footer.legal .wrap{padding-block:1.4rem;font-size:.78rem;color:#bdb69f;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem}

body{margin:0}img{max-width:100%}[hidden]{display:none!important}

/* nav dropdown */
nav.main .drop{position:relative}
nav.main .drop > button{background:none;border:0;padding:0;font:inherit;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--olive);cursor:pointer;display:flex;align-items:center;gap:.35em}
nav.main .drop > button::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px)}
nav.main .drop:hover > button,nav.main .drop:focus-within > button{color:var(--gold)}
.mega{position:absolute;left:50%;top:100%;transform:translateX(-50%);padding-top:18px;display:none}
nav.main .drop:hover .mega,nav.main .drop:focus-within .mega,nav.main .drop.open .mega{display:block}
.mega-in{background:var(--paper-2);border:1px solid var(--line);box-shadow:0 18px 40px rgba(31,36,16,.14);padding:1.4rem 1.6rem;display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));gap:1.6rem;width:max-content;max-width:min(860px,92vw)}
.mega h4{margin:0 0 .5rem;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:700}
nav.main .mega a{display:block;padding:.32rem 0;text-transform:none;letter-spacing:0;font-size:.9rem;font-weight:500;color:var(--ink)}
nav.main .mega a:hover{color:var(--gold)}
.mega a .dot-ok{font-size:.6rem;font-weight:700;letter-spacing:.12em;color:var(--gold);margin-left:.4em;text-transform:uppercase}
.menu .panel{max-height:78vh;overflow:auto}
.menu .panel h4{margin:.6rem 1.2rem .2rem;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.menu .panel a.sub{font-weight:500;text-transform:none;letter-spacing:0;font-size:.9rem;padding:.35rem 1.2rem .35rem 1.6rem;color:var(--ink)}
.menu .panel .btn{margin:.6rem 1.2rem;display:flex;color:var(--on-olive)}
@media (max-width:1060px){nav.main{display:none}.menu{display:block}}
nav.main a.btn{color:var(--on-olive)}

/* availability */
.status{display:inline-flex;align-items:center;gap:.45em;font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:.35em .75em;border-radius:20px;white-space:nowrap}
.status::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.status.open{background:#e3e8cf;color:#3c4a12}
.status.booked{background:#ece3d2;color:#8a6a22}
.notice{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.2rem;background:var(--olive);color:var(--on-olive);padding:1rem 1.3rem;border-left:4px solid var(--gold)}
.notice strong{color:#fff}
.notice a{color:var(--gold-soft);font-weight:600}
.availbar{background:var(--gold);color:#fffaf0;font-size:.82rem;font-weight:600;text-align:center}
.availbar .wrap{padding-block:.5em}
.availbar a{color:#fff}

/* value points */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.values > div{background:var(--paper);padding:1.6rem 1.5rem;display:grid;gap:.4rem;align-content:start}
.values b{font-family:var(--display);font-weight:500;font-size:1.25rem;color:var(--olive)}
.values p{color:var(--muted);font-size:.93rem}
@media (max-width:760px){.values{grid-template-columns:1fr}}

/* service cards */
.group-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;margin:3.2rem 0 1.4rem;padding-bottom:.8rem;border-bottom:1.5px solid var(--olive)}
.group-head:first-of-type{margin-top:0}
.group-head h3{color:var(--olive);font-size:1.7rem}
.group-head p{color:var(--muted);font-size:.93rem;max-width:56ch}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
@media (max-width:960px){.cards{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.cards{grid-template-columns:1fr}}
.card{display:flex;flex-direction:column;background:var(--paper-2);border:1px solid var(--line);text-decoration:none;color:inherit;transition:border-color .2s,transform .2s,box-shadow .2s;min-width:0}
.card:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:0 14px 30px rgba(31,36,16,.10)}
.card img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block;border-bottom:1px solid var(--line)}
.card .body{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;gap:.55rem;flex:1}
.card .top{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}
.card .tag{margin:0}
.card h4{margin:0;font-family:var(--display);font-weight:500;font-size:1.3rem;color:var(--olive);line-height:1.15}
.card p{color:var(--muted);font-size:.92rem}
.card .more{margin-top:auto;padding-top:.4rem;font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--olive)}
.card:hover .more{color:var(--gold)}
.cards.panels{grid-template-columns:repeat(5,1fr);gap:1rem}
@media (max-width:1060px){.cards.panels{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.cards.panels{grid-template-columns:1fr 1fr}}
@media (max-width:400px){.cards.panels{grid-template-columns:1fr}}
.cards.panels h4{font-size:1.15rem}

/* panel matrix */
.matrix-wrap{overflow-x:auto;margin-top:2.2rem;border:1px solid var(--line);background:var(--paper-2)}
table.matrix{border-collapse:collapse;width:100%;min-width:640px;font-size:.88rem}
.matrix th,.matrix td{padding:.55rem .7rem;border-bottom:1px solid var(--line);text-align:center}
.matrix th{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--olive);font-weight:700;background:var(--paper)}
.matrix th:first-child,.matrix td:first-child{text-align:left}
.matrix td:first-child{font-weight:600;color:var(--olive)}
.matrix td.y::before{content:"";display:inline-block;width:9px;height:9px;background:var(--gold);transform:rotate(45deg)}
.matrix td.n{color:var(--line)}
.fine{font-size:.8rem;color:var(--muted);margin-top:.8rem}

/* breadcrumbs + service page */
.crumbs{font-size:.78rem;color:var(--muted);padding-top:1.4rem}
.crumbs a{color:var(--olive);text-decoration:none;font-weight:600}
.crumbs a:hover{color:var(--gold)}
.crumbs span{margin:0 .5em;color:var(--gold)}
.svc-hero{display:grid;grid-template-columns:1fr 1.05fr;gap:3rem;align-items:center;padding-block:1.6rem clamp(2.5rem,5vw,4rem)}
.svc-hero > div{min-width:0;display:grid;gap:1.1rem}
.svc-hero h1{font-size:clamp(2.2rem,4.6vw,3.4rem);color:var(--olive)}
.svc-hero .hero-img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block;box-shadow:16px 16px 0 var(--gold-soft);border:1px solid var(--line)}
@media (max-width:860px){.svc-hero{grid-template-columns:1fr}.svc-hero .hero-img{order:-1}}
.facts{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:.4rem 2rem;padding:1rem 0;border-block:1px solid var(--line)}
.facts div{display:grid;gap:.1rem}
.facts span{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:600}
.facts b{font-family:var(--display);font-weight:500;font-size:1.3rem;color:var(--olive)}
.facts small{grid-column:1/-1;color:var(--muted);font-size:.8rem}
@media (max-width:480px){.facts{grid-template-columns:1fr 1fr}}
.svc-body{display:grid;grid-template-columns:1.6fr 1fr;gap:3rem;align-items:start}
.svc-body > *{min-width:0}
.prose{display:grid;gap:1.1rem}
.prose > p{font-size:1.02rem;max-width:66ch}
.prose h2{font-size:1.7rem;color:var(--olive);margin-top:1rem}
.ticks{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.5rem}
.ticks li{padding-left:1.3rem;position:relative}
.ticks li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;background:var(--gold);transform:rotate(45deg)}
@media (max-width:560px){.ticks{grid-template-columns:1fr}}
.drugs{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.6rem}
.drugs div{background:var(--paper-2);border:1px solid var(--line);border-left:3px solid var(--gold);padding:.7rem .9rem;display:grid;gap:.1rem}
.drugs b{color:var(--olive);font-weight:600}
.drugs span{font-size:.82rem;color:var(--muted)}
.prose .photo{aspect-ratio:3/2;margin-top:.6rem}
aside.side{position:sticky;top:96px;display:grid;gap:1.2rem}
.side-card{background:var(--paper-2);border:1.5px solid var(--olive);padding:1.4rem;display:grid;gap:.9rem}
.side-card h3{color:var(--olive)}
.side-card .bring li b{min-width:6rem}
.side-card .btn{width:100%}
@media (max-width:860px){.svc-body{grid-template-columns:1fr}aside.side{position:static}}
.policy{margin-top:3rem;padding:1.4rem 1.5rem;border:1px solid var(--line);background:var(--paper-2);display:grid;gap:.5rem}
.policy h3{font-size:1.1rem;color:var(--olive)}
.policy p{color:var(--muted);font-size:.92rem}

/* booking page */
.book-intro{display:grid;gap:1rem;padding-block:1.6rem 1.6rem}
.book-intro h1{font-size:clamp(2.2rem,4.6vw,3.4rem);color:var(--olive)}
.booker{display:grid;grid-template-columns:320px 1fr;gap:2rem;align-items:start}
.booker > *{min-width:0}
@media (max-width:900px){.booker{grid-template-columns:1fr}}
.picker{display:grid;gap:1.2rem}
.picker h3{font-family:var(--sans);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:.4rem}
.opt{display:flex;justify-content:space-between;align-items:center;gap:.6rem;width:100%;text-align:left;background:var(--paper-2);border:1px solid var(--line);padding:.6rem .8rem;margin-bottom:.4rem;font:inherit;font-size:.9rem;color:var(--ink);cursor:pointer;border-radius:2px}
.opt:hover{border-color:var(--gold)}
.opt[aria-pressed="true"]{border-color:var(--olive);background:var(--olive);color:var(--on-olive)}
.opt[aria-pressed="true"] .status.open{background:var(--gold);color:#fff}
.opt[aria-pressed="true"] .status.booked{background:rgba(255,255,255,.15);color:var(--gold-soft)}
.opt .status{font-size:.58rem;padding:.3em .6em}
@media (max-width:900px){.picker .list{max-height:none}}
.cal{background:var(--paper-2);border:1.5px solid var(--olive);padding:clamp(1rem,2.5vw,1.6rem);position:relative}
.cal-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}
.cal-head h2{font-size:1.6rem;color:var(--olive)}
.cal-head .sel{font-size:.8rem;color:var(--muted)}
.cal-nav{display:flex;gap:.4rem}
.cal-nav button{width:40px;height:40px;border:1px solid var(--olive);background:transparent;color:var(--olive);cursor:pointer;font-size:1.1rem;border-radius:2px}
.cal-nav button:disabled{opacity:.3;cursor:default}
.cal-nav button:not(:disabled):hover{background:var(--olive);color:var(--on-olive)}
.grid7{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.dow{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:center;font-weight:700;padding:.3rem 0}
.day{min-height:74px;border:1px solid var(--line);background:#fff;padding:.4rem .45rem;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;font:inherit;text-align:left;color:var(--ink);border-radius:2px}
.day .n{font-weight:600;font-size:.95rem}
.day .lbl{font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.day.empty{background:transparent;border-color:transparent}
.day.past,.day.closed{background:transparent;color:#b3ab95}
.day.booked{background:repeating-linear-gradient(135deg,#f3ede1 0 6px,#ece4d4 6px 12px);color:#9c927a}
.day.booked .lbl{color:#8a6a22}
.day.booked .n{text-decoration:line-through;text-decoration-color:rgba(138,106,34,.5)}
.day.open{cursor:pointer;border-color:#c9cfae}
.day.open .lbl{color:#3c4a12}
.day.open:hover{border-color:var(--olive)}
.day.sel{background:var(--olive);color:var(--on-olive);border-color:var(--olive)}
.day.sel .lbl{color:var(--gold-soft)}
.day.today .n::after{content:" • today";font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);font-weight:700}
@media (max-width:560px){.day{min-height:54px;padding:.3rem}.day .lbl{font-size:.5rem;letter-spacing:.04em}.day.today .n::after{content:" •"}}
.booked-msg{margin:0 0 1rem;background:var(--olive);color:var(--on-olive);padding:1.3rem 1.4rem;display:grid;gap:.7rem;border-left:4px solid var(--gold)}
.booked-msg h3{color:#fff;font-size:1.4rem}
.booked-msg p{color:#d9d3bf}
.booked-msg .acts{display:flex;flex-wrap:wrap;gap:.6rem}
.booked-msg .btn-line{border-color:var(--gold-soft);color:var(--gold-soft)}
.booked-msg .btn-line:hover{background:var(--gold-soft);color:var(--olive)}
.legend{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.9rem;font-size:.74rem;color:var(--muted)}
.legend i{display:inline-block;width:14px;height:14px;vertical-align:-3px;margin-right:.4em;border:1px solid var(--line)}
.legend .lo{background:#fff;border-color:#c9cfae}
.legend .lb{background:repeating-linear-gradient(135deg,#f3ede1 0 3px,#ece4d4 3px 6px)}
.legend .lc{background:transparent}
.slots{margin-top:1.4rem;display:grid;gap:.8rem}
.slots h3{font-size:1.25rem;color:var(--olive)}
.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(98px,1fr));gap:.5rem}
.slot{border:1px solid var(--olive);background:#fff;color:var(--olive);padding:.55rem .4rem;font:inherit;font-weight:600;font-size:.86rem;cursor:pointer;border-radius:2px}
.slot:hover{background:var(--paper)}
.slot[aria-pressed="true"]{background:var(--olive);color:var(--on-olive)}
form.req{margin-top:1.4rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding-top:1.4rem;border-top:1px solid var(--line)}
form.req h3{grid-column:1/-1;color:var(--olive);font-size:1.25rem}
form.req .summary{grid-column:1/-1;background:var(--paper);border:1px solid var(--line);padding:.8rem 1rem;font-size:.92rem}
form.req .summary b{color:var(--olive)}
@media (max-width:560px){form.req{grid-template-columns:1fr}}
.done{margin-top:1.4rem;padding:1.4rem;border:1.5px solid var(--gold);background:#fff;display:grid;gap:.6rem}
.done h3{color:var(--olive)}
.status-list{display:grid;gap:0;margin-top:1.4rem;border-top:1px solid var(--line)}
.status-list div{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--line);font-size:.93rem}
.status-list a{text-decoration:none;color:var(--olive);font-weight:600}
.status-list a:hover{color:var(--gold)}
.checks label{white-space:nowrap}
.cards.panels img{aspect-ratio:5/4}
#done,#slots,#req,#cal{scroll-margin-top:100px}
.grid7{grid-template-columns:repeat(7,minmax(0,1fr))}
.day{min-width:0;overflow:hidden}
.svc-select{display:none;font:inherit;font-size:1rem;padding:.75em .8em;border:1.5px solid var(--olive);background:#fff;color:var(--ink);border-radius:2px;width:100%}
@media (max-width:900px){.svc-select{display:block}#svc-list{display:none}}
@media (max-width:560px){.cal{padding:.8rem}.grid7{gap:3px}.cal-head h2{font-size:1.35rem}}
