:root{
  --white:#FFFFFF; --wash:#EEF6FC; --blue:#A9D3F0; --blue-deep:#5E9CC9;
  --gold:#C9A227; --gold-ink:#8A6D10; --ink:#1F2E44; --muted:#4F5F75; --line:#D9E6F1;
  --bg:var(--white); --surface:var(--wash); --text:var(--ink); --sub:var(--muted);
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){ --bg:#14202F; --surface:#1B2B3E; --text:#EAF3FA; --sub:#B5C6D6; --line:#2C4058; --gold-ink:#E2C15A; }
}
:root[data-theme="dark"]{ --bg:#14202F; --surface:#1B2B3E; --text:#EAF3FA; --sub:#B5C6D6; --line:#2C4058; --gold-ink:#E2C15A; }
html{scroll-padding-top:env(safe-area-inset-top,0px); scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--text);font:400 1.0625rem/1.6 "Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif}
h1,h2,h3{font-family:"Archivo","Arial Narrow",Arial,sans-serif;font-stretch:112%;line-height:1.05;margin:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--blue-deep);outline-offset:3px}
.wrap{max-width:68rem;margin:0 auto;padding:0 1.25rem}

/* Pinstripe: the one signature element */
.stripe{height:14px;position:relative}
.stripe::before,.stripe::after{content:"";position:absolute;left:0;right:0;height:3px;background:var(--gold)}
.stripe::before{top:2px}
.stripe::after{bottom:2px;height:2px;background:var(--blue)}

/* Header */
header.top{display:flex;justify-content:space-between;align-items:center;padding:1rem 0}
.brand{font-family:"Archivo",sans-serif;font-weight:800;font-stretch:112%;text-decoration:none;font-size:1.05rem}
.top nav a{margin-left:1.25rem;text-decoration:none;color:var(--sub);font-weight:600}
.top nav a:hover{color:var(--text)}
@media (max-width:560px){header.top{flex-wrap:wrap;gap:.5rem}.top nav{display:flex;flex-wrap:wrap;gap:.25rem 1rem}.top nav a{margin-left:0}}

/* Hero */
.home .hero{min-height:calc(100vh - 12rem);display:flex;flex-direction:column;justify-content:center}
.page-top{padding-top:2.5rem}
.top nav a[aria-current="page"]{color:var(--text);box-shadow:inset 0 -2px 0 var(--gold)}
.hero{padding:3.5rem 0 4rem}
.hero h1{font-weight:900;font-stretch:125%;font-size:clamp(2.6rem,8vw,5.5rem);letter-spacing:-.01em;max-width:12ch}
.hero p.lede{font-size:1.25rem;color:var(--sub);max-width:36ch;margin:1.25rem 0 2rem}
.ctas{display:flex;flex-wrap:wrap;gap:.75rem}
.btn{display:inline-block;padding:.9rem 1.4rem;border-radius:6px;font-weight:600;text-decoration:none;border:2px solid transparent;font-size:1rem;cursor:pointer;font-family:inherit}
.btn-gold{background:var(--gold);color:#1F2E44}
.btn-gold:hover{background:#B8921C}
.btn-line{border-color:var(--text);color:var(--text);background:transparent}
.btn-line:hover{background:var(--surface)}
.hero .price{margin-top:2rem;font-weight:600;color:var(--gold-ink)}

/* Services */
section{padding:4rem 0}
.alt{background:var(--surface)}
h2{font-weight:800;font-size:clamp(1.8rem,4vw,2.6rem);margin-bottom:2rem}
.pkg-intro{margin:-1.25rem 0 2rem;color:var(--sub)}
.pkgs{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;align-items:start}
@media (max-width:900px){.pkgs{grid-template-columns:1fr;max-width:34rem}}
.pkg{background:var(--bg);border-top:4px solid var(--gold);padding:1.75rem 1.5rem 1.75rem;display:flex;flex-direction:column}
.pkg-featured{border:2px solid var(--blue-deep);border-top:6px solid var(--gold);padding-top:1.25rem}
.badge{align-self:flex-start;background:var(--blue);color:#1F2E44;font-weight:600;font-size:.9rem;padding:.2rem .65rem;border-radius:999px;margin:0 0 .75rem}
.pkg h3{font-size:1.45rem;font-weight:800}
.amt{font-family:"Archivo",sans-serif;font-weight:900;font-stretch:125%;font-size:2.6rem;line-height:1;margin:.6rem 0 .4rem;color:var(--gold-ink)}
.pos{margin:0 0 1rem;color:var(--sub);font-size:1.05rem}
.upgrade{margin:0 0 1rem;padding:.6rem .8rem;background:var(--surface);border-left:3px solid var(--blue-deep);font-weight:600;font-size:.97rem}
.incl{font-weight:600;margin:.5rem 0 .35rem}
.pkg ul{margin:0 0 1rem;padding-left:1.15rem}
.pkg li{margin-bottom:.35rem}
.pkg .btn{margin-top:auto;text-align:center}
.fine{font-size:.93rem;color:var(--sub);margin:0 0 1.25rem}
.info{display:inline-grid;place-items:center;width:1.35rem;height:1.35rem;margin-left:.3rem;border-radius:50%;border:1.5px solid var(--blue-deep);background:transparent;color:var(--blue-deep);font:700 .8rem Georgia,serif;font-style:italic;cursor:pointer;vertical-align:middle;padding:0}
.info[aria-expanded="true"]{background:var(--blue-deep);color:#fff}
.note{margin:.5rem 0 .25rem;padding:.75rem .9rem;background:var(--surface);border-left:3px solid var(--blue-deep);font-size:.95rem}
.note p{margin:0 0 .5rem}.note p:last-child{margin:0}
.faq{margin-top:2.5rem;max-width:42rem}
.faq h3{font-size:1.15rem;margin-bottom:.35rem}
.faq p{margin:0;color:var(--sub)}

.rating{font-size:1.15rem;margin:-1rem 0 2rem}
.stars{color:var(--gold);letter-spacing:.1em;font-size:1.3rem}
.rating .sub{color:var(--sub)}
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:2rem;margin-bottom:2rem}
blockquote{margin:0;padding-left:1.1rem;border-left:3px solid var(--gold)}
blockquote p{margin:0 0 .5rem;font-size:1.1rem}
cite{font-style:normal;color:var(--sub);font-size:.95rem}

.about{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:start}
.about:has(.about-photo){grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}
@media (max-width:800px){.about:has(.about-photo){grid-template-columns:1fr}}
.about-photo{width:100%;height:auto;border-top:4px solid var(--gold);display:block}
.about-text{max-width:40rem}
.about-text p{margin:0 0 1rem}
.sig{font-family:"Archivo",sans-serif;font-weight:800;font-stretch:112%;font-size:1.3rem;color:var(--gold-ink)}

/* Steps — genuine sequence */
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:2rem}
.steps li{counter-increment:s}
.steps li::before{content:counter(s);display:block;font-family:"Archivo",sans-serif;font-weight:900;font-stretch:125%;font-size:2.4rem;color:var(--blue-deep);margin-bottom:.25rem}
.steps h3{font-size:1.15rem;margin-bottom:.35rem}
.steps p{margin:0;color:var(--sub)}

/* Booking */
.book-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:3rem;align-items:start}
@media (max-width:800px){.book-grid{grid-template-columns:1fr}}
form{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.full{grid-column:1/-1}
@media (max-width:520px){form{grid-template-columns:1fr}}
label{display:block;font-weight:600;font-size:.95rem;margin-bottom:.3rem}
input,select,textarea{width:100%;padding:.75rem;border:1.5px solid var(--line);border-radius:6px;font:inherit;background:var(--bg);color:var(--text)}
input:focus,select:focus,textarea:focus{border-color:var(--blue-deep);outline:none;box-shadow:0 0 0 3px rgba(94,156,201,.25)}
textarea{min-height:6rem;resize:vertical}
.date-row{display:flex;gap:.5rem}
.date-row input{flex:1;min-width:0}
.clear{padding:0 .9rem;border:1.5px solid var(--line);border-radius:6px;background:var(--bg);color:var(--sub);font:600 .95rem inherit;font-family:inherit;cursor:pointer}
.clear:hover{color:var(--text);border-color:var(--blue-deep)}
.err{color:#B3261E;font-weight:600;min-height:1.4em;margin:0}
.ok{display:none;padding:1rem;border-left:4px solid var(--gold);background:var(--surface)}
/* Veteran discount */
.vet{padding:.85rem 1rem;border:1.5px solid var(--line);border-radius:6px;background:var(--surface)}
label.check{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin:0;font-size:1rem;cursor:pointer}
label.check input{width:1.25rem;height:1.25rem;margin:0;padding:0;accent-color:var(--gold);flex:none}
.vet-tag{background:var(--gold);color:#1F2E44;font-size:.8rem;font-weight:700;padding:.1rem .55rem;border-radius:999px}
.vet-note{margin:.6rem 0 0;font-size:.95rem;color:var(--sub)}
.vet-note:not([hidden]){animation:noteIn .3s ease}
.total{margin:0;font-size:1.05rem;padding:.6rem .9rem;border-left:4px solid var(--gold);background:var(--surface)}
.total s{color:var(--sub)}
.total strong{font-family:"Archivo",sans-serif;font-weight:900;font-stretch:112%;font-size:1.35rem;color:var(--gold-ink);margin:0 .35rem}
.total span{color:var(--sub);font-size:.93rem}
/* Build your own */
fieldset.byo{border:1.5px solid var(--line);border-top:4px solid var(--gold);border-radius:6px;padding:1rem 1.1rem 1.1rem;margin:0;min-width:0}
.byo legend{font-family:"Archivo",sans-serif;font-weight:800;font-stretch:112%;font-size:1.15rem;padding:0 .4rem}
.byo-group{padding:.6rem 0 .8rem;border-bottom:1px solid var(--line)}
.byo-group h3{font-size:1rem;margin:.2rem 0 .6rem;color:var(--blue-deep);text-transform:uppercase;letter-spacing:.04em}
.byo-group h3 span{text-transform:none;letter-spacing:0;font-family:"Source Sans 3",sans-serif;font-weight:400;color:var(--sub);font-size:.9rem;margin-left:.35rem}
.byo-group .lock{display:none}
.byo-group.locked .lock{display:inline}
.byo-group.locked label.check{opacity:.45;cursor:not-allowed}
.byo label.check{margin:0 0 .45rem;font-weight:400}
.byo label.check b{margin-left:auto;color:var(--gold-ink)}
.byo-desc{margin:-.3rem 0 .55rem 1.85rem;font-size:.9rem;color:var(--sub)}
.byo-sum{margin:.8rem 0 0;font-weight:600}
.byo-sum strong{font-family:"Archivo",sans-serif;font-weight:900;font-size:1.25rem;color:var(--gold-ink)}
.nudge{margin-top:.8rem;padding:.75rem .9rem;background:var(--surface);border-left:3px solid var(--blue-deep)}
.nudge p{margin:0 0 .6rem;font-size:.97rem}
.nudge .btn{padding:.55rem 1rem;font-size:.95rem}
.byo-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:1.5rem;margin:1.25rem 0 1.5rem}
.byo-list h3{font-size:1rem;color:var(--blue-deep);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem}
.byo-list ul{list-style:none;padding:0;margin:0}
.byo-list li{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px dotted var(--line)}
.byo-list li b{color:var(--gold-ink)}
.byo-sec{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--line)}
.vet-banner{margin:2rem 0 0;padding:.9rem 1.1rem;max-width:42rem;border-left:4px solid var(--gold);background:var(--surface)}
.contact-list{list-style:none;padding:0;margin:1.5rem 0 0}
.contact-list li{margin-bottom:.6rem}
.contact-list a{font-weight:600}

/* Hero photo */
.hero{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:center}
.hero:has(.hero-photo){grid-template-columns:minmax(0,1fr) auto}
.hero-photo{margin:0;width:180px;align-self:end;justify-self:end;padding:8px 8px 0;background:#fff;border:1px solid var(--line);border-bottom:4px solid var(--gold);box-shadow:0 14px 30px -16px rgba(31,46,68,.4);transform:rotate(2deg)}
.hero-photo img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.hero-photo figcaption{padding:.45rem 0 .5rem;text-align:center;font-weight:600;color:var(--sub);font-size:.8rem}
@media (max-width:800px){.hero:has(.hero-photo){grid-template-columns:1fr}.hero-photo{width:140px}}

/* Motion */
.btn,.clear,.pkg,.top nav a{transition:background-color .25s ease,color .25s ease,border-color .25s ease,transform .25s ease,box-shadow .25s ease}
.btn:hover{transform:translateY(-2px)}
.btn-gold:hover{box-shadow:0 8px 18px -8px rgba(201,162,39,.7)}
.pkg:hover{transform:translateY(-4px);box-shadow:0 16px 30px -18px rgba(31,46,68,.35)}
.note:not([hidden]){animation:noteIn .3s ease}
@keyframes noteIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}
.js .hero-text > *,.js .hero-photo{opacity:0;transform:translateY(18px);animation:heroIn .8s cubic-bezier(.2,.7,.2,1) forwards}
.js .hero-text > *:nth-child(2){animation-delay:.12s}
.js .hero-text > *:nth-child(3){animation-delay:.24s}
.js .hero-text > *:nth-child(4){animation-delay:.36s}
.js .hero-photo{animation-delay:.3s}
@keyframes heroIn{to{opacity:1;transform:none}}
@keyframes photoIn{to{opacity:1;transform:rotate(2deg)}}
.js .hero-photo{animation-name:photoIn}
@media (prefers-reduced-motion: reduce){
  .js .reveal,.js .hero-text > *,.js .hero-photo{opacity:1;transform:none;animation:none;transition:none}
  .btn:hover,.pkg:hover{transform:none}
}

footer{padding:2rem 0 2.5rem;color:var(--sub);font-size:.95rem}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem}

/* Builder page */
.back{margin:0 0 1rem}.back a{color:var(--sub);text-decoration:none;font-weight:600}.back a:hover{color:var(--text)}
.builder{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:2rem;align-items:start}
@media (max-width:820px){.builder{grid-template-columns:1fr}}
.builder .byo{border:1.5px solid var(--line);border-top:4px solid var(--gold);border-radius:6px;padding:.4rem 1.1rem .6rem}
.builder .byo-group:last-child{border-bottom:0}
.byo label.check .nm{flex:1}
.byo label.check small{display:block;color:var(--sub);font-size:.85rem}
.cart{position:sticky;top:1rem;background:var(--surface);border-top:4px solid var(--gold);padding:1.25rem 1.25rem 1.4rem;border-radius:0 0 6px 6px}
.cart h3{font-size:1.2rem;margin-bottom:.75rem}
.cart ul,.byo-summary ul{list-style:none;padding:0;margin:0 0 .75rem}
.cart li,.byo-summary li{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px dotted var(--line);font-size:.97rem}
.cart li.base,.byo-summary li.base{font-weight:600}
.cart li.empty{color:var(--sub);border:0}
.cart li b,.byo-summary li b{color:var(--gold-ink)}
.cart-total{display:flex;justify-content:space-between;align-items:baseline;margin:.5rem 0 1rem;font-weight:600}
.cart-total strong{font-family:"Archivo",sans-serif;font-weight:900;font-stretch:112%;font-size:1.7rem;color:var(--gold-ink)}
.cart #checkout{width:100%}
.cart .err{margin:0 0 .5rem}
.cart .fine{margin:.75rem 0 0}
.cart .nudge{margin:0 0 1rem;background:var(--bg)}
@media (max-width:820px){.cart{position:static}}
.byo-summary{border:1.5px solid var(--line);border-top:4px solid var(--gold);border-radius:6px;padding:.9rem 1.1rem}
.byo-summary > p{margin:0 0 .75rem}
.sum-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}
.sum-head h3{font-size:1.1rem}
.sum-head a{font-weight:600;color:var(--blue-deep)}
.sum-label{margin:.25rem 0 .2rem;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--blue-deep)}
.byo-summary .cart-total{margin:.25rem 0 0}

/* Gallery */
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:2.5rem 2rem}
.ba h3{font-size:1.2rem;margin:.9rem 0 .3rem}
.ba p{margin:0;color:var(--sub)}
.ba-pair{display:grid;grid-template-columns:1fr 1fr;gap:6px;border-bottom:4px solid var(--gold)}
.ba-pair figure{margin:0;position:relative;overflow:hidden;background:var(--surface)}
.ba-pair img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform .5s ease}
.ba:hover .ba-pair img{transform:scale(1.03)}
.tag{position:absolute;top:.5rem;left:.5rem;padding:.15rem .55rem;border-radius:999px;font-weight:600;font-size:.8rem}
.tag-before{background:rgba(31,46,68,.82);color:#fff}
.tag-after{background:var(--gold);color:#1F2E44}
.ig{margin-top:3.5rem;padding:2rem 0 0;border-top:1px solid var(--line);max-width:40rem}
.ig h3{font-size:1.4rem;margin-bottom:.35rem}
.ig p{margin:0 0 1.25rem;color:var(--sub)}
@media (prefers-reduced-motion: reduce){.ba:hover .ba-pair img{transform:none}}

/* Promotions */
.promo-note{margin:0 0 2.5rem;font-size:.97rem}
.ath-top{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:2.5rem;align-items:center}
@media (max-width:760px){.ath-top{grid-template-columns:1fr;gap:1.5rem}}
.ath-hero{margin:0}
.ath-hero img{display:block;width:100%;height:auto;max-width:100%;aspect-ratio:1/1;object-fit:cover;object-position:50% 30%;border-bottom:5px solid var(--gold)}
.ath-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1.25rem}
.ath-photos figure{margin:0}
.ath-photos img{display:block;width:100%;max-width:100%;aspect-ratio:1/1;object-fit:cover;border-bottom:4px solid var(--gold)}
.ath-photos figcaption{margin-top:.5rem;color:var(--sub);font-size:.92rem;font-weight:600}
.athlete{display:grid;gap:2.25rem;border-top:6px solid var(--gold);padding-top:2rem}
.ath-head{display:grid;gap:.75rem}
.ath-where{margin:0;font-weight:600;color:var(--sub);letter-spacing:.06em;text-transform:uppercase;font-size:.85rem}
.ath-name{font-weight:900;font-stretch:125%;font-size:clamp(2.8rem,9vw,5rem);line-height:.95;text-wrap:balance}
.ath-thesis{margin:0;font-size:1.2rem;max-width:34ch;color:var(--sub)}
.ath-rank{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;margin:.25rem 0 0;padding:0}
.ath-rank li{background:var(--blue);color:#1F2E44;font-weight:600;font-size:.95rem;padding:.3rem .8rem;border-radius:999px}
.ath-titles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:2rem 2.5rem}
.ath-level h4,.ath-story h4{font-family:"Archivo",sans-serif;font-stretch:112%;font-weight:800;font-size:1.05rem;margin:0 0 .5rem;padding-bottom:.45rem;border-bottom:2px solid var(--text)}
.ath-level ul{list-style:none;margin:0;padding:0}
.ath-level li{display:grid;grid-template-columns:3.2rem 1fr;align-items:baseline;gap:.5rem;padding:.55rem 0;border-bottom:1px solid var(--line);font-weight:600}
.ath-level .n{font-family:"Archivo",sans-serif;font-weight:900;font-stretch:125%;font-size:1.7rem;line-height:1;color:var(--gold-ink);font-variant-numeric:tabular-nums}
.ath-intl{margin:0;padding:1rem 1.2rem;background:var(--surface);border-left:4px solid var(--blue-deep);font-size:1.05rem}
.ath-intl strong{font-family:"Archivo",sans-serif;font-weight:900;font-stretch:112%;font-size:1.4rem;color:var(--blue-deep);margin-right:.5rem}
.ath-story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2.5rem;align-items:start}
@media (max-width:760px){.ath-story{grid-template-columns:1fr;gap:1.5rem}}
.ath-story p{margin:0 0 1rem;max-width:38rem}
.ath-story .quotes{grid-template-columns:1fr;margin:0;gap:1.5rem}
.ath-closer{border:0;padding:1.75rem 1.5rem;background:var(--surface);border-top:4px solid var(--gold)}
.ath-closer p{font-family:"Archivo",sans-serif;font-weight:900;font-stretch:112%;font-size:clamp(1.5rem,4vw,2.2rem);line-height:1.1;margin:0 0 .6rem;max-width:28ch}

/* Booking v2 */
.opt{font-weight:400;color:var(--sub)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.avail{margin:0;font-size:.97rem;padding:.6rem .9rem;border-left:4px solid var(--blue-deep);background:var(--surface)}
.avail.bad{border-left-color:#B3261E}
.avail button{font:inherit;font-weight:600;color:var(--blue-deep);background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}
#bookBtn[disabled]{opacity:.6;cursor:wait}
.ok h3{font-size:1.2rem;margin-bottom:.4rem}
.ok p{margin:0 0 .4rem}

/* Winter promo */
.promo-bubble{display:inline-grid;grid-template-columns:auto auto;gap:.15rem 1.25rem;align-items:baseline;margin-top:1.75rem;padding:.9rem 1.25rem;border-radius:14px;background:var(--surface);border:2px solid var(--blue-deep);text-decoration:none;color:var(--text);max-width:100%}
.promo-bubble:hover{border-color:var(--gold);transform:translateY(-2px)}
.pb-tag{grid-column:1/-1;margin:0;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--blue-deep)}
.pb-name{font-family:"Archivo",sans-serif;font-weight:800;font-stretch:112%;font-size:1.2rem}
.pb-price s,.pc-price s{color:var(--sub);font-weight:600}
.pb-price strong,.pc-price strong{font-family:"Archivo",sans-serif;font-weight:900;font-stretch:125%;font-size:1.5rem;color:var(--gold-ink)}
.pb-note{grid-column:1/-1;font-size:.92rem;color:var(--sub);font-weight:600}
.promo-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:1.5rem 2.5rem;margin:0 0 2.5rem;padding:1.6rem 1.6rem 1.7rem;background:var(--bg);border:2px solid var(--blue-deep);border-top:6px solid var(--gold);border-radius:6px}
@media (max-width:760px){.promo-card{grid-template-columns:1fr}}
.promo-card h3{font-size:1.7rem;font-weight:900;font-stretch:112%;margin:.35rem 0 .5rem}
.pc-price{margin:0 0 .75rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem .6rem}
.pc-price strong{font-size:2.4rem}
.pc-price span{color:var(--sub);font-size:.93rem}
.pc-list ul{margin:0 0 .75rem;padding-left:1.15rem}
.pc-list li{margin-bottom:.35rem}

/* Warn note */
.pr{display:inline-flex;align-items:center;gap:.4rem}
.warn{position:relative;display:inline-grid;place-items:center;width:1.15rem;height:1.15rem;padding:0;margin:0 .35rem 0 0;border-radius:50%;border:1.5px solid var(--gold-ink);background:transparent;color:var(--gold-ink);font:800 .72rem/1 "Archivo",sans-serif;cursor:pointer;flex:none;vertical-align:middle}
.byo label.check .warn{margin-left:auto}
.byo label.check .warn + b{margin-left:0}
.warn::after{content:attr(data-tip);position:absolute;right:-.4rem;bottom:calc(100% + 8px);width:max-content;max-width:min(15rem,calc(100vw - 3rem));padding:.5rem .65rem;border-radius:6px;background:var(--text);color:var(--bg);font:400 .82rem/1.35 "Source Sans 3",sans-serif;text-align:left;white-space:normal;opacity:0;visibility:hidden;transform:translateY(3px);transition:opacity .15s,transform .15s;z-index:5;pointer-events:none;box-shadow:0 8px 20px -10px rgba(0,0,0,.4)}
.warn:hover::after,.warn:focus-visible::after,.warn.open::after{opacity:1;visibility:visible;transform:none}
.warn.open,.warn:hover{background:var(--gold-ink);color:var(--bg)}

/* Home v2 */
.home .proof{padding:0}
.hx{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:3rem;align-items:center;padding-block:3rem 3.5rem}
.hx h1{font-weight:900;font-stretch:125%;font-size:clamp(2.6rem,6.5vw,5rem);letter-spacing:-.01em;max-width:12ch}
.hx .lede{font-size:1.25rem;color:var(--sub);max-width:36ch;margin:1.25rem 0 2rem}
.hx .price{margin-top:1.75rem;font-weight:600;color:var(--gold-ink)}
.hx-video{margin:0;justify-self:end;width:100%;max-width:22rem}
.hx-video video{display:block;width:100%;max-width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px;border-bottom:5px solid var(--gold);background:var(--surface);box-shadow:0 24px 50px -28px rgba(31,46,68,.55)}
@media (max-width:820px){.hx{grid-template-columns:1fr;gap:2rem;padding-block:2rem 2.5rem}.hx-video{justify-self:stretch;max-width:none}.hx-video video{aspect-ratio:4/3}}
.proof{background:var(--text);color:var(--bg)}
.proof-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 2rem;padding-block:1.1rem}
.proof-rating{text-decoration:none;color:inherit;display:inline-flex;align-items:center;gap:.5rem}
.proof .stars{color:var(--gold);font-size:1.2rem;letter-spacing:.08em}
.proof-quote{margin:0;font-family:"Archivo",sans-serif;font-weight:800;font-stretch:112%;font-size:1.1rem}
.proof-where{margin:0;opacity:.75;font-weight:600}
.ba-home{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:3rem;align-items:center;padding-block:4.5rem!important}
@media (max-width:820px){.ba-home{grid-template-columns:1fr;gap:1.75rem;padding-block:3rem!important}}
.ba-copy h2{font-size:clamp(2.2rem,5vw,3.4rem);font-weight:900;font-stretch:125%;margin-bottom:1rem}
.ba-copy p{margin:0 0 1.5rem;color:var(--sub);max-width:34ch;font-size:1.1rem}
.flip-tabs{display:inline-flex;border:2px solid var(--text);border-radius:999px;padding:3px;margin-bottom:1.5rem}
.flip-tabs button{font:600 .95rem "Source Sans 3",sans-serif;border:0;background:transparent;color:var(--text);padding:.45rem 1.1rem;border-radius:999px;cursor:pointer;transition:background-color .2s,color .2s}
.flip-tabs button.on{background:var(--text);color:var(--bg)}
.ba-copy .btn{display:table}
.flip{position:relative;margin:0;border-radius:6px;overflow:hidden;border-bottom:5px solid var(--gold);aspect-ratio:4/5;max-width:100%;background:var(--surface)}
.flip img,.flip video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .45s ease}
.flip[data-state="before"] .f-after{opacity:0}
.flip-tag{position:absolute;top:.75rem;left:.75rem;font-weight:700;font-size:.85rem;padding:.25rem .75rem;border-radius:999px}
.flip[data-state="before"] .flip-tag{background:rgba(31,46,68,.85);color:#fff}
.flip[data-state="after"] .flip-tag{background:var(--gold);color:#1F2E44}
.flip[data-state="before"] .t-after,.flip[data-state="after"] .t-before{display:none}
.pk-home{background:var(--surface);padding-block:4rem!important}
.pk-home h2{font-size:clamp(1.9rem,4vw,2.6rem);margin-bottom:1.5rem}
.pk-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
@media (max-width:760px){.pk-row{grid-template-columns:1fr}}
.pk-mini{display:flex;flex-direction:column;gap:.3rem;padding:1.4rem 1.3rem;background:var(--bg);border-top:4px solid var(--gold);text-decoration:none;color:var(--text);transition:transform .2s ease,box-shadow .2s ease}
.pk-mini:hover{transform:translateY(-4px);box-shadow:0 16px 30px -18px rgba(31,46,68,.35)}
.pk-mini-feat{border:2px solid var(--blue-deep);border-top:6px solid var(--gold)}
.pk-mini .badge{margin-bottom:.35rem}
.pm-name{font-family:"Archivo",sans-serif;font-weight:800;font-stretch:112%;font-size:1.2rem}
.pm-price{font-family:"Archivo",sans-serif;font-weight:900;font-stretch:125%;font-size:2.2rem;line-height:1.05;color:var(--gold-ink)}
.pm-line{color:var(--sub)}
.pk-more{margin:1.25rem 0 0;font-weight:600}
.pk-more a{color:var(--blue-deep)}
.pk-home .promo-bubble{margin-top:2rem}
.closer-home{padding-block:4.5rem!important}
.closer-home .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem}
.closer-home p{margin:0;font-family:"Archivo",sans-serif;font-weight:900;font-stretch:125%;font-size:clamp(2rem,5.5vw,3.6rem);line-height:1;max-width:16ch}
.js .reveal{transform:translateY(18px);transition-duration:.5s}
@media (prefers-reduced-motion: reduce){.flip img,.flip video{transition:none}}

/* Fall theme: switched on in each page's <head> until Dec 1, then the site returns to white, gold and baby blue */
:root.fall{--surface:#FBF1E1;--line:#EBDCC4;--blue:#F2D2A6;--blue-deep:#A9532A;--sub:#5C5048}
.fall .stripe::after{background:#C8743A}
.fall .proof{background:#3B2A20;color:#FBF1E1}
.fall .proof .stars{color:#E2B34A}
.fall .closer-home{background:linear-gradient(180deg,var(--bg) 0%,#FBF1E1 100%)}
.fall input:focus,.fall select:focus,.fall textarea:focus{box-shadow:0 0 0 3px rgba(169,83,42,.22)}
.fall .promo-bubble{background:#FFF8EE}
.vet label.teach{margin-top:.7rem;padding-top:.7rem;border-top:1px solid var(--line)}

/* Terms of Service */
.tos{max-width:46rem}
.tos h2{margin-bottom:1.75rem}
.tos-toc{margin:0 0 2.5rem;padding:1rem 1.25rem;background:var(--surface);border-left:4px solid var(--gold)}
.tos-toc ol{margin:0;padding-left:1.4rem;columns:2 16rem;column-gap:2rem}
.tos-toc li{margin:.2rem 0;break-inside:avoid}
.tos-toc a{color:var(--blue-deep);font-weight:600}
.tos section{scroll-margin-top:1rem;margin:0 0 2.25rem}
.tos h3{font-size:1.2rem;margin:0 0 .8rem;padding-bottom:.4rem;border-bottom:2px solid var(--line)}
.tos h3 span{color:var(--gold-ink);margin-right:.25rem}
.tos p{margin:0 0 1rem}
.tos-list{list-style:none;padding:0;margin:0;counter-reset:tos}
.tos-list>li{counter-increment:tos;position:relative;padding-left:2.6rem;margin:0 0 .75rem}
.tos-list>li::before{content:var(--sec) "." counter(tos);position:absolute;left:0;top:0;font-weight:700;color:var(--gold-ink);font-variant-numeric:tabular-nums}
.tos-sub{list-style:lower-alpha;margin:.5rem 0 0;padding-left:1.4rem}
.tos-sub li{margin:.3rem 0;padding-left:.2rem}
.tos-sub li::marker{font-weight:700;color:var(--gold-ink)}
.tos-contact{padding:.8rem 1rem;background:var(--surface);border-left:4px solid var(--blue-deep)}
.tos-contact a{color:var(--blue-deep)}
.tos-cta{margin-top:1rem}

/* Booking: terms agreement */
.terms-box{border-color:var(--blue-deep)}
.terms-box a{color:var(--blue-deep);font-weight:600}
.terms-box.missing{border-color:#B3261E;box-shadow:0 0 0 3px rgba(179,38,30,.15)}

/* Cash discount + payment */
.cash-note{margin:-1rem 0 2rem;font-size:.95rem;color:var(--sub);font-weight:600}
form .cash-note{margin:0}
.pay{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}
.pay-h{font-weight:600}
.pay .ctas{margin:.25rem 0 .5rem}
.pay-due{margin:-.25rem 0 .5rem;font-size:.93rem;color:var(--sub)}

/* Paint correction add-on */
.addon-card{border-color:var(--blue-deep);border-top-color:var(--blue-deep);margin-top:2.5rem}
.addon-card .pc-price strong{color:var(--gold-ink)}
.addon-card .fine .warn{margin-right:.4rem}
.addon-box{padding-top:.2rem}
.addon-box label.check .warn{margin-left:.15rem}

/* Deposit + card notes (home) */
.dep-note{margin:.8rem 0 0;font-size:.92rem;color:var(--sub)}
.card-note{margin:.3rem 0 0;font-size:.92rem;color:var(--sub)}
.closer-cta{display:grid;gap:.1rem;max-width:22rem}
.closer-cta .dep-note{margin-top:.6rem}
.closer-home .closer-cta .dep-note{font:400 .95rem/1.4 "Source Sans 3",sans-serif;font-stretch:100%;max-width:none;color:var(--sub)}
.terms-box label.check{flex-wrap:nowrap;align-items:flex-start}
.terms-box label.check > span{flex:1;min-width:0}
.terms-box label.check input{margin-top:.1rem}

/* Biohazard disclosure */
.bio-box label.check{flex-wrap:nowrap;align-items:flex-start}
.bio-box label.check > span:not(.vet-tag){flex:1;min-width:0}
.bio-box label.check small{font-weight:400;color:var(--sub)}
.bio-box label.check input{margin-top:.15rem}
.cart .bio-box{margin:.25rem 0 1rem;font-size:.95rem}
