/* XLR8 Wellness official brand system, shared with xlr8well.life:
   Poppins headings / Inter body, logo mint #65d9a2, amber #ffae00. */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
:root{
  /* Palette taken from the rendered xlr8well.life homepage, not the logo file:
     the live site paints ink #0f172a, action green #18a07a / #0f7e5e, mint
     #6adda6 and gold #ffbd59. */
  --green:#18a07a; --green-btn:#0f7e5e; --green-btn-h:#0c6b50; --green-d:#0e7a5c;
  --green-l:#e8f7f3; --green-line:#b8e8da;
  --mint:#6adda6; --gold:#ffbd59; --gold-d:#f5ae42;
  --ink:#0f172a; --ink-2:#0a1525; --body:#4a6278; --muted:#6b7280;
  --gray:#f8f9fa; --border:#dde6ef; --radius:14px;
  --shadow:0 1px 2px rgba(15,23,42,.04),0 8px 24px rgba(15,23,42,.06);
  --shadow-lg:0 12px 40px rgba(15,23,42,.12);
  --max:1160px;
}
body{background:#fff;color:var(--body);font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;line-height:1.65;overflow-x:hidden}
h1,h2,h3,h4,.brand,.stat-n{font-family:'Poppins',-apple-system,sans-serif;color:var(--ink);line-height:1.2;letter-spacing:-.02em}
h1{font-size:clamp(2rem,5vw,3.4rem);font-weight:800}
h2{font-size:clamp(1.6rem,3.4vw,2.4rem);font-weight:700}
h3{font-size:1.15rem;font-weight:700}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.narrow{max-width:760px}
section{padding:72px 0}
.center{text-align:center}
.muted{color:var(--muted)}
.small{font-size:.875rem}
.tiny{font-size:.8125rem}
.mb0{margin-bottom:0}.mb8{margin-bottom:8px}.mb16{margin-bottom:16px}.mb24{margin-bottom:24px}.mb32{margin-bottom:32px}
.lede{font-size:1.125rem;color:var(--body);max-width:64ch}

/* topbar + nav */
.topbar{background:var(--ink);color:#fff;text-align:center;padding:10px 5%;font-size:13.5px;font-weight:500}
.topbar a{color:var(--gold);font-weight:700;text-decoration:underline;text-underline-offset:3px}
nav:not(.mobile-bar){position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.nav-inner{max-width:var(--max);margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px}
.brand{display:flex;align-items:center}
.brand img{height:40px;width:auto}
.brand-f img{height:44px;width:auto}
.nav-links{display:flex;align-items:center;gap:26px;font-size:14.5px;font-weight:600}
.nav-links a:hover{color:var(--green)}
@media(max-width:900px){.nav-links a.hide-sm{display:none}}
.nav-inner .brand{flex-shrink:0}
@media(max-width:520px){.nav-links a.hide-xs{display:none}.nav-links{gap:16px}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--green-btn);color:#fff;font-family:'Poppins',sans-serif;font-weight:700;font-size:15px;padding:14px 28px;border-radius:999px;border:0;cursor:pointer;transition:.18s;text-align:center}
.btn:hover{background:var(--green-btn-h);transform:translateY(-1px);box-shadow:0 10px 24px rgba(24,160,122,.35)}
.btn-gold{background:var(--gold);color:var(--ink)}
.btn-gold:hover{background:var(--gold-d);box-shadow:0 10px 24px rgba(255,189,89,.4)}
.btn-ghost{background:#fff;color:var(--ink);border:1px solid var(--border);border-radius:999px}
.btn-ghost:hover{background:var(--gray);border-color:var(--green);color:var(--green);box-shadow:none}
.btn-sm{padding:9px 18px;font-size:13.5px}
.btn-block{display:flex;width:100%}
.btn[disabled]{opacity:.5;pointer-events:none}

/* hero */
.hero{background:linear-gradient(160deg,#f2fbf6 0%,#fff 55%);border-bottom:1px solid var(--border);padding:64px 0 72px}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
@media(max-width:940px){.hero-grid{grid-template-columns:1fr;gap:36px}}
.pill{display:inline-flex;align-items:center;gap:8px;background:var(--green-l);color:var(--green-d);font-size:13px;font-weight:700;padding:7px 15px;border-radius:999px;margin-bottom:20px}
.trust{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:26px;font-size:13.5px;font-weight:600;color:var(--muted)}
.trust b{color:var(--ink)}

/* cards + grid */
.grid{display:grid;gap:20px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.g2,.g3,.g4{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:26px;transition:.18s}
.card-link:hover{border-color:var(--green);box-shadow:var(--shadow);transform:translateY(-2px)}

.card h3{margin-bottom:8px}
.card p{font-size:14.5px;color:var(--muted);line-height:1.6}
.tag{display:inline-block;background:var(--gray);border:1px solid var(--border);color:var(--muted);font-size:12px;font-weight:700;padding:4px 11px;border-radius:999px}
.tag-green{background:var(--green-l);border-color:#bfe8d3;color:var(--green-d)}
.tag-gold{background:#fff7e6;border-color:#ffe0a3;color:#9a6a00}
.tag-red{background:#fef2f2;border-color:#fecaca;color:#b91c1c}
.tag-row{display:flex;flex-wrap:wrap;gap:8px}

/* form */
.form-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:32px}
.field{margin-bottom:18px}
.field label{display:block;font-size:14px;font-weight:700;color:var(--ink);margin-bottom:7px}
.field .hint{font-size:12.5px;color:var(--muted);font-weight:400;margin-top:5px}
input[type=text],input[type=email],input[type=tel],input[type=date],input[type=url],select,textarea{
  width:100%;padding:13px 15px;border:1.5px solid var(--border);border-radius:10px;font-family:inherit;font-size:15px;color:var(--ink);background:#fff;transition:.15s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--green);box-shadow:0 0 0 3px rgba(24,160,122,.18)}
textarea{min-height:110px;resize:vertical}
.check{display:flex;gap:11px;align-items:flex-start;font-size:14px;line-height:1.55;cursor:pointer;margin-bottom:14px}
.check input{margin-top:3px;width:17px;height:17px;accent-color:var(--green);flex-shrink:0}
.opts{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.opt{position:relative}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt span{display:flex;align-items:center;gap:9px;border:1.5px solid var(--border);border-radius:10px;padding:13px 15px;font-size:14.5px;font-weight:600;cursor:pointer;height:100%;transition:.15s}
.opt input:checked+span{border-color:var(--green);background:var(--green-l);color:var(--green-d)}
.opt input:focus-visible+span{box-shadow:0 0 0 3px rgba(24,160,122,.22)}
.err{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;padding:13px 16px;border-radius:10px;font-size:14px;margin-bottom:18px}
.ok{background:var(--green-l);border:1px solid #bfe8d3;color:var(--green-d);padding:13px 16px;border-radius:10px;font-size:14px;margin-bottom:18px}
.note{background:var(--gray);border-left:3px solid var(--green);padding:14px 18px;border-radius:0 10px 10px 0;font-size:13.5px;color:var(--muted);line-height:1.6}

/* steps */
.steps{display:flex;gap:8px;margin-bottom:26px}
.step{flex:1;height:5px;border-radius:99px;background:var(--border)}
.step.on{background:var(--green)}

/* table */
.tbl{width:100%;border-collapse:collapse;font-size:14.5px}
.tbl th{text-align:left;font-family:'Poppins',sans-serif;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:11px 14px;border-bottom:1.5px solid var(--border);white-space:nowrap}
.tbl td{padding:14px;border-bottom:1px solid var(--border);vertical-align:top}
.tbl tr:last-child td{border-bottom:0}
.tbl-wrap{overflow-x:auto;background:#fff;border:1px solid var(--border);border-radius:var(--radius)}

/* stats */
.stats{display:flex;flex-wrap:wrap;gap:36px}
.stat-n{font-size:2.1rem;font-weight:800;color:var(--green)}
.stat-l{font-size:13px;color:var(--muted);font-weight:600}

/* portal */
.p-shell{display:grid;grid-template-columns:230px 1fr;gap:32px;align-items:start}
@media(max-width:860px){.p-shell{grid-template-columns:1fr}}
.p-nav{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:10px;position:sticky;top:96px}
@media(max-width:860px){.p-nav{position:static;display:flex;overflow-x:auto}}
.p-nav a{display:block;padding:11px 15px;border-radius:9px;font-size:14.5px;font-weight:600;color:var(--body);white-space:nowrap}
.p-nav a:hover{background:var(--gray)}
.p-nav a.on{background:var(--green-l);color:var(--green-d)}
.bal{background:linear-gradient(135deg,var(--ink),#111827);color:#fff;border-radius:var(--radius);padding:26px}
.bal .n{font-family:'Poppins',sans-serif;font-size:2.4rem;font-weight:800;color:#fff;line-height:1.1}

/* footer */
footer{background:var(--ink);color:#9ca3af;padding:56px 0 30px;font-size:14px}
footer h4{color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:14px}
footer a:hover{color:var(--mint)}
.f-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:36px}
@media(max-width:820px){.f-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.f-grid{grid-template-columns:1fr}}
.f-links{display:flex;flex-direction:column;gap:9px}
/* ── Booking card, basket and checkout ───────────────────────────────────
   The card is sticky beside the description, the way a booking widget behaves
   on any decent travel or retreat site: the price and the button stay on
   screen while you read down the page. */
.bk-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:0 10px 30px rgba(15,23,42,.08);overflow:hidden}
.bk-head{padding:20px 22px 16px;border-bottom:1px solid var(--border)}
.bk-head h3{font-size:1.15rem}
.bk-price{margin-top:8px;font-size:13px;color:var(--muted)}
.bk-price span{font-family:'Poppins',sans-serif;font-size:1.7rem;font-weight:800;color:var(--green-d);
  margin-right:5px}
.bk-body{padding:20px 22px}
.bk-label{display:block;font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:7px}
.bk-input{width:100%;border:1px solid var(--border);border-radius:10px;padding:11px 13px;
  font-size:14px;background:#fff;color:var(--ink)}
.bk-input:focus{outline:0;border-color:var(--green);box-shadow:0 0 0 3px rgba(24,160,122,.14)}
.bk-note{font-size:12px;line-height:1.6;color:var(--muted);margin-top:8px}
.bk-err{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:10px;
  padding:11px 14px;font-size:13.5px;line-height:1.6}
.bk-count{display:flex;align-items:center;justify-content:space-between;gap:12px;
  border:1px solid var(--border);border-radius:10px;padding:9px 12px}
.bk-count-l{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}
.bk-count-l svg{width:17px;height:17px}
.bk-stepper{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);
  border-radius:8px;padding:3px}
.bk-stepper output{min-width:30px;text-align:center;font-weight:800;font-size:14px}
.bk-step{width:26px;height:26px;border:0;border-radius:6px;background:transparent;cursor:pointer;
  font-size:16px;line-height:1;color:var(--ink)}
.bk-step:hover{background:var(--gray)}
.bk-rule{height:1px;background:var(--border);margin:20px 0 16px}
.bk-sum{display:flex;flex-direction:column;gap:9px;font-size:14px}
.bk-sum div{display:flex;justify-content:space-between;gap:14px;align-items:baseline}
.bk-sum dt{color:var(--muted)}
.bk-sum dd{margin:0;white-space:nowrap;font-variant-numeric:tabular-nums}
.bk-sum .bk-total{padding-top:11px;border-top:1px solid var(--border);font-weight:800;font-size:1.05rem}
.bk-sum .bk-total dt{color:var(--ink)}
.bk-foot{padding:0 22px 22px}

/* ── Product-style service page ──────────────────────────────────────────
   Light, read-then-decide layout: gallery and prose on the left, the booking
   card pinned on the right. Mirrors the xlr8well.life product page. */
.sp{padding:26px 0 72px;background:#fff}
.sp-back{display:inline-flex;align-items:center;gap:9px;font-size:14px;font-weight:600;
  color:var(--muted);margin-bottom:26px}
.sp-back:hover{color:var(--green-d)}
.sp-back svg{width:16px;height:16px}
.sp-grid{display:grid;grid-template-columns:1fr 370px;gap:36px;align-items:start}
@media(max-width:960px){.sp-grid{grid-template-columns:1fr;gap:28px}}
.sp-side .bk-card{position:sticky;top:96px}
@media(max-width:960px){.sp-side{order:-1}.sp-side .bk-card{position:static}}
.sp-badge{display:inline-block;padding:5px 13px;border-radius:999px;background:var(--green-l);
  color:var(--green-d);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.sp-h1{font-family:'Poppins',sans-serif;font-size:clamp(1.9rem,4vw,2.8rem);font-weight:800;
  letter-spacing:-.02em;line-height:1.1;color:var(--ink);margin-top:14px}
.sp-lede{font-size:1.1rem;color:var(--muted);line-height:1.65;margin-top:14px;max-width:46rem}
.sp-meta{display:flex;flex-wrap:wrap;gap:20px;margin-top:18px;font-size:13.5px;color:var(--muted)}
.sp-meta span{display:inline-flex;align-items:center;gap:7px}
.sp-meta svg{width:16px;height:16px;color:var(--green)}

.sp-gallery{margin-top:26px}
/* These are session photographs and most of them are PORTRAIT (roughly 3:5).
   They were originally poured into a box locked to 16/9 with object-fit:cover,
   which threw away about two thirds of every one; shown at their natural size
   instead, a 3:5 photo across the full column runs well over a screen tall.
   So: a fixed band of ordinary hero height, and the picture fitted INSIDE it
   with object-fit:contain. Nothing is cropped, nothing is enormous, and a
   portrait sits centred on the soft ground with the band height constant, so
   clicking a thumbnail never moves the page. The tag still carries the file's
   real width and height (lib/imagesize) so the ratio is known before it loads. */
.sp-hero{position:relative;display:flex;align-items:center;justify-content:center;
  height:clamp(320px,48vh,540px);border-radius:18px;overflow:hidden;background:var(--gray);
  box-shadow:0 18px 44px rgba(15,23,42,.16)}
.sp-hero img.sp-hero-main{width:auto;height:auto;max-width:100%;max-height:100%;
  object-fit:contain;display:block}
.sp-thumbs{display:flex;gap:12px;margin-top:12px;overflow-x:auto;padding-bottom:4px}
/* Square, and contain rather than cover: a thumbnail that crops is a thumbnail
   that misrepresents the photograph it is offering. */
.sp-thumb{position:relative;flex:none;width:96px;aspect-ratio:1;border:0;padding:0;cursor:pointer;
  border-radius:10px;overflow:hidden;opacity:.65;transition:opacity .2s,box-shadow .2s;
  background:var(--gray)}
.sp-thumb img{width:100%;height:100%;object-fit:contain;display:block}
.sp-thumb:hover{opacity:1}
.sp-thumb.on{opacity:1;box-shadow:0 0 0 2px var(--green),0 0 0 4px #fff}

.sp-block{margin-top:40px}
.sp-h2{display:flex;align-items:center;gap:10px;font-size:1.4rem;font-weight:800;
  font-family:'Poppins',sans-serif;color:var(--ink)}
.sp-h2 svg{width:22px;height:22px;color:var(--green)}
.sp-prose{margin-top:14px;font-size:15.5px;line-height:1.8;color:var(--muted);max-width:46rem}

/* Itinerary timeline */
.tl{list-style:none;padding:0;margin:22px 0 0;position:relative}
.tl::before{content:"";position:absolute;left:19px;top:8px;bottom:8px;width:2px;
  background:linear-gradient(to bottom,transparent,var(--border) 12%,var(--border) 88%,transparent)}
.tl-item{position:relative;display:flex;gap:18px;align-items:flex-start;padding-bottom:20px}
.tl-dot{position:relative;z-index:1;flex:none;width:40px;height:40px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:var(--green-l);
  color:var(--green-d);border:4px solid #fff;font-size:15px;
  box-shadow:0 1px 4px rgba(15,23,42,.12)}
.tl-card{flex:1;background:#fff;border:1px solid var(--border);border-radius:14px;padding:20px 22px;
  box-shadow:0 1px 3px rgba(15,23,42,.05);transition:box-shadow .25s}
.tl-card:hover{box-shadow:0 10px 26px rgba(15,23,42,.09)}
.tl-day{font-size:11.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--green-d)}
.tl-card h3{font-size:1.08rem;margin-top:7px}

/* Reviews */
.sp-stars{color:var(--gold);font-size:15px;letter-spacing:1px;font-weight:600}
.sp-empty{margin-top:16px;background:var(--gray);border-radius:14px;padding:26px;text-align:center;
  color:var(--muted);font-size:14px}
.sp-reviews{display:flex;flex-direction:column;gap:14px;margin-top:16px}
.sp-review{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 20px}
.sp-review-h{display:flex;justify-content:space-between;gap:12px;align-items:center}
.sp-review p{margin-top:8px;font-size:14.5px;line-height:1.7;color:var(--muted)}
.sp-write{margin-top:18px;border:1px solid var(--border);border-radius:14px;padding:0 20px}
.sp-write summary{cursor:pointer;padding:15px 0;font-weight:700;font-size:14px;color:var(--green-d)}
.sp-write form{padding-bottom:20px}

.nav-cart{position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:999px;border:1px solid var(--border);color:var(--ink);
  transition:border-color .2s,color .2s}
.nav-cart:hover{border-color:var(--green);color:var(--green-d)}
.nav-cart svg{width:18px;height:18px}
.nav-cart i{position:absolute;top:-5px;right:-5px;min-width:17px;height:17px;padding:0 4px;
  border-radius:999px;background:var(--green);color:#fff;font-size:10px;font-weight:800;
  font-style:normal;display:flex;align-items:center;justify-content:center;line-height:1}

.promo-edit{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:5px}
.promo-edit label{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;color:var(--muted)}
.promo-edit input{width:62px;border:1px solid var(--border);border-radius:6px;padding:3px 6px;font-size:11px}
.promo-edit input[type=date]{width:118px}
.promo-edit button{border:0;background:var(--ink);color:#fff;border-radius:6px;padding:4px 9px;
  font-size:10.5px;font-weight:700;cursor:pointer}
.promo-edit button:hover{background:var(--green)}

.promo-scope{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px 16px;
  border:1px solid var(--border);border-radius:10px;padding:12px 14px;max-height:210px;overflow-y:auto}

/* Checkout cards */
.co-h{font-size:1.1rem;font-weight:800;font-family:'Poppins',sans-serif;margin-bottom:16px}
.co-pay{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--border);border-radius:12px;
  padding:14px 16px;cursor:pointer;margin-bottom:10px;transition:border-color .2s,background .2s}
.co-pay:hover{border-color:#cfe6dc}
.co-pay.on{border-color:var(--green);background:var(--green-l)}
.co-pay input{margin-top:3px}
.co-pay strong{display:block;font-size:14.5px}
.co-pay em{display:block;font-style:normal;font-size:12.5px;line-height:1.6;color:var(--muted);margin-top:3px}
.co-lines{display:flex;flex-direction:column;gap:14px}
.co-line{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;
  padding-bottom:14px;border-bottom:1px solid var(--border)}
.co-line:last-child{border-bottom:0;padding-bottom:0}
.co-line-main strong{font-size:13.5px;line-height:1.4;display:block}
.co-line-main .tiny{margin-top:3px}
.co-line-tools{display:flex;align-items:center;gap:12px;margin-top:8px}
.co-qty{display:inline-flex;align-items:center;gap:3px;border:1px solid var(--border);border-radius:8px;padding:2px}
.co-qty button{width:22px;height:22px;border:0;background:transparent;cursor:pointer;font-size:14px;
  line-height:1;color:var(--ink);border-radius:5px}
.co-qty button:hover:not(:disabled){background:var(--gray)}
.co-qty button:disabled{opacity:.3;cursor:default}
.co-qty span{min-width:22px;text-align:center;font-weight:800;font-size:12.5px}
.co-bin{background:none;border:0;padding:0;font-size:12px;font-weight:700;color:#b91c1c;
  cursor:pointer;text-decoration:underline}
.co-line-money{font-weight:800;white-space:nowrap;font-size:14px;font-variant-numeric:tabular-nums}
/* Accreditation badges beside the pay button. Same white plates as the footer,
   for the same reason: the IPHM badge is a JPEG with a white background and
   would otherwise sit as a pale box on any other colour. */
.co-trust{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
.sp-side > .co-trust{margin-top:14px;padding:14px 18px 16px;border:1px solid var(--border);
  border-radius:var(--radius);background:#fff}
.co-trust p{font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);text-align:center;margin-bottom:10px}
.co-trust div{display:flex;flex-direction:column;align-items:stretch;gap:10px}
/* Stacked, one to a row and full width. Three logos squeezed into 74x46 boxes
   side by side were too small to read, which defeats the point of showing an
   accreditation at all. Full colour for the same reason: greyscale at that size
   made them illegible. */
.co-trust span{display:flex;align-items:center;justify-content:center;
  background:#fff;border:1px solid var(--border);border-radius:10px;padding:12px 16px;height:78px}
.co-trust img{max-height:100%;max-width:100%;width:auto;height:auto;
  transition:transform .3s}
.co-trust span:hover img{transform:scale(1.03)}

.co-offers{margin-top:18px;border:1px dashed #b8e8da;background:var(--green-l);border-radius:11px;padding:12px 13px}
.co-offers-h{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:var(--green-d);margin-bottom:9px}
.co-offer{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;
  background:#fff;border:1px solid #cfe6dc;border-radius:9px;padding:9px 11px;margin-bottom:7px;
  cursor:pointer;text-align:left;font-size:12.5px;color:var(--ink);transition:border-color .2s}
.co-offer:last-child{margin-bottom:0}
.co-offer:hover{border-color:var(--green)}
.co-offer strong{font-weight:800;letter-spacing:.03em}
.co-offer em{font-style:normal;font-weight:800;color:var(--green-d);white-space:nowrap}

.co-promo{display:flex;gap:8px;margin-top:18px}
.co-promo input{flex:1;min-width:0;border:1px solid var(--border);border-radius:9px;padding:9px 11px;font-size:13px}
.co-promo button{border:0;border-radius:9px;padding:0 15px;background:var(--ink);color:#fff;
  font-size:12.5px;font-weight:700;cursor:pointer}
.co-promo button:hover{background:var(--green)}

.cart-grid{display:grid;grid-template-columns:1fr 360px;gap:28px;align-items:start}
@media(max-width:900px){.cart-grid{grid-template-columns:1fr}}
.cart-lines{display:flex;flex-direction:column;gap:14px}
.cart-line{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;
  background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px}
.cart-line h3{font-size:1.02rem}
.cart-money{font-family:'Poppins',sans-serif;font-weight:800;font-size:1.1rem;white-space:nowrap}
.cart-x{background:none;border:0;padding:0;font-size:12.5px;font-weight:700;color:#b91c1c;
  cursor:pointer;text-decoration:underline}

/* The booking column beside a service description */
.svc-layout{display:grid;grid-template-columns:1fr 360px;gap:32px;align-items:start}
@media(max-width:900px){.svc-layout{grid-template-columns:1fr}}
.svc-layout .bk-card{position:sticky;top:96px}
@media(max-width:900px){.svc-layout .bk-card{position:static}}

/* Retreat programme lists */
.ret-list{margin-top:12px;display:flex;flex-direction:column;gap:9px;list-style:none;padding:0}
.ret-list li{position:relative;padding-left:18px;font-size:14px;line-height:1.65;color:var(--muted)}
.ret-list li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:50%;
  background:var(--green);opacity:.5}
.ret-list li strong{color:var(--ink)}

/* ── Split hero ──────────────────────────────────────────────────────────
   Copy on the left, a crossfading photograph on the right. On a phone the
   photograph goes FIRST, because a wall of text above the fold on a small
   screen reads as an article rather than a shop. */
.shero{border-bottom:1px solid var(--border);background:#fff}
.shero-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;min-height:88vh}
.shero-copy{display:flex;flex-direction:column;justify-content:center;padding:64px 0;order:1}
@media(min-width:901px){.shero-copy{padding-right:56px}}
.shero-eyebrow{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:22px;
  font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.shero-eyebrow .live{display:inline-flex;align-items:center;gap:7px;color:var(--green-d)}
.shero-eyebrow .live i{width:6px;height:6px;border-radius:50%;background:#18a07a;
  animation:shpulse 2s ease-in-out infinite}
.shero-eyebrow .sep{color:#cbd5e1;letter-spacing:0}
@keyframes shpulse{0%,100%{opacity:1}50%{opacity:.25}}
.shero-h1{font-family:'Poppins',sans-serif;font-weight:800;letter-spacing:-.025em;
  font-size:clamp(2.3rem,5.2vw,3.5rem);line-height:1.04;color:var(--ink);margin-bottom:24px}
.shero-h1 span{display:block}
.shero-h1 .g3{background:linear-gradient(90deg,#0e7a5c,#18a07a 45%,#f0a500);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.shero-sub{font-size:15.5px;line-height:1.75;color:var(--muted);max-width:34rem;margin-bottom:30px}

/* Search. The ghost layer types service names while the box is empty; the real
   input sits on top of it and hides it the moment anyone types. */
.shero-search{display:flex;align-items:center;gap:0;max-width:32rem;margin-bottom:26px;
  background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;
  box-shadow:0 4px 16px rgba(15,23,42,.07);transition:border-color .2s,box-shadow .2s}
.shero-search:focus-within{border-color:#18a07a;box-shadow:0 0 0 3px rgba(24,160,122,.16)}
.shero-search>svg{width:17px;height:17px;margin-left:16px;color:#9ca3af;flex:none}
.ss-field{position:relative;flex:1;height:50px;display:flex;align-items:center;min-width:0}
.ss-field input{position:absolute;inset:0;width:100%;border:0;outline:0;background:transparent;
  padding:0 12px;font-size:14px;color:var(--ink);z-index:2}
.ss-ghost{position:absolute;left:12px;display:flex;align-items:center;gap:5px;
  font-size:14px;font-weight:500;color:#9ca3af;pointer-events:none;white-space:nowrap;overflow:hidden}
.ss-ghost b{color:#0e7a5c;font-weight:700}
.ss-ghost i{width:2px;height:15px;background:#18a07a;display:inline-block;
  animation:shpulse 1.1s steps(1) infinite}
.shero-search.typing .ss-ghost{opacity:0}
.shero-search button{margin:6px;height:38px;padding:0 20px;border:0;border-radius:11px;
  background:var(--ink);color:#fff;font-size:12.5px;font-weight:700;cursor:pointer;flex:none;
  transition:background .2s}
.shero-search button:hover{background:#18a07a}

.shero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:38px}
.shero-cta .btn{display:inline-flex;align-items:center;gap:8px}
.btn-play{display:inline-flex;align-items:center;gap:9px;padding:12px 22px;border-radius:999px;
  border:1px solid var(--border);background:#fff;color:var(--ink);font-weight:600;font-size:14px;
  transition:border-color .2s,color .2s}
.btn-play:hover{border-color:rgba(24,160,122,.45);color:var(--green-d)}
.btn-play .pl{width:23px;height:23px;border-radius:50%;background:var(--ink);flex:none;
  display:inline-flex;align-items:center;justify-content:center}
.btn-play .pl::after{content:"";border-top:4px solid transparent;border-bottom:4px solid transparent;
  border-left:7px solid #fff;margin-left:2px}

.shero-stats{display:flex;align-items:center;flex-wrap:wrap;gap:2px}
.shero-stat .n{font-family:'Poppins',sans-serif;font-size:1.32rem;font-weight:800;
  color:var(--ink);line-height:1}
.shero-stat .l{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.shero-stats .sd{width:1px;height:30px;background:var(--border);margin:0 16px}

/* Photograph side */
.shero-media{position:relative;order:2;overflow:hidden;min-height:300px;background:var(--gray)}
.sh-slide{position:absolute;inset:0;opacity:0;transition:opacity 1s ease}
.sh-slide.on{opacity:1}
.sh-slide img{width:100%;height:100%;object-fit:cover;display:block}
.sh-fade-l{position:absolute;inset:0;width:30%;z-index:2;pointer-events:none;display:none;
  background:linear-gradient(to right,#fff,transparent)}
@media(min-width:901px){.sh-fade-l{display:block}}
.sh-fade-b{position:absolute;left:0;right:0;bottom:0;height:130px;z-index:2;pointer-events:none;
  background:linear-gradient(to top,rgba(15,23,42,.42),transparent)}
.sh-dots{position:absolute;left:0;right:0;bottom:12px;z-index:3;display:flex;justify-content:center;gap:2px}
.sh-dot{width:24px;height:24px;display:flex;align-items:center;justify-content:center;
  background:none;border:0;cursor:pointer;padding:0}
.sh-dot span{width:6px;height:6px;border-radius:999px;background:rgba(255,255,255,.55);
  transition:width .3s,background .3s;display:block}
.sh-dot.on span{width:20px;background:#fff}
.sh-card{position:absolute;left:20px;bottom:40px;z-index:3;display:none;
  background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.5);
  border-radius:13px;padding:10px 16px;box-shadow:0 8px 24px rgba(15,23,42,.14)}
@media(min-width:901px){.sh-card{display:block}}
.sh-card .k{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#18a07a}
.sh-card .v{font-size:13.5px;font-weight:700;color:var(--ink);margin-top:2px}

@media(max-width:900px){
  .shero-grid{grid-template-columns:1fr;min-height:0}
  .shero-copy{order:2;padding:38px 0 44px}
  .shero-media{order:1;aspect-ratio:16/10;min-height:0}
  .shero-h1{font-size:clamp(2rem,8vw,2.6rem)}
}
@media(prefers-reduced-motion:reduce){
  .sh-slide{transition:none}
  .shero-eyebrow .live i,.ss-ghost i{animation:none}
}

/* Own-service tiles reuse .tile from the marketplace grid. Only the second
   badge is new: the price already occupies .tile-badge, so a dated session with
   an empty diary needs the opposite corner. */
.tile-flag{position:absolute;top:12px;right:12px;z-index:2;
  font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;
  padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.92);color:#a86a00;
  box-shadow:0 1px 3px rgba(10,21,37,.2)}
.tile-badge{font-variant-numeric:tabular-nums}

.f-legal{margin-top:14px;padding-top:12px;border-top:1px solid rgba(31,41,55,.7);
  font-size:11.5px;line-height:1.7;color:#6b7280}
.f-accred{border-top:1px solid #1f2937;margin-top:44px;padding-top:38px;text-align:center}
.f-accred h4{color:#94a3b8;font-weight:700;letter-spacing:.2em;text-transform:uppercase;font-size:10px;margin-bottom:24px}
.f-accred-row{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}
.f-accred-item{flex:0 1 232px;display:flex;flex-direction:column;align-items:center;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:14px;
  padding:18px 18px 16px;transition:background .3s,border-color .3s,transform .3s}
.f-accred-item:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16);transform:translateY(-3px)}
/* One white plate per badge so the round seals and the landscape award banner share a
   baseline, and so the IPHM JPEG's own white background stops reading as a floating box. */
.f-accred-plate{display:flex;align-items:center;justify-content:center;width:100%;height:92px;
  background:#fff;border-radius:10px;padding:12px}
.f-accred-plate img{max-height:100%;max-width:100%;width:auto;height:auto;
  filter:grayscale(1);opacity:.55;transition:filter .4s,opacity .4s}
.f-accred-item:hover .f-accred-plate img{filter:grayscale(0);opacity:1}
.f-accred-item strong{display:block;margin-top:14px;color:#e2e8f0;font-size:11.5px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase}
.f-accred-sub{display:block;margin-top:6px;font-size:11px;line-height:1.6;color:#7d8794}
.f-accred-item:hover .f-accred-sub{color:#9ca3af}
.f-accred-note{margin:26px auto 0;font-size:11.5px;line-height:1.7;color:#6b7280;max-width:70ch}
@media(max-width:560px){.f-accred-item{flex:1 1 100%;max-width:300px}.f-accred-plate{height:80px}}
.f-bot{border-top:1px solid #1f2937;margin-top:36px;padding-top:24px;font-size:12.5px;line-height:1.7;color:#6b7280}
.f-bot .f-copy{margin-top:16px;padding-top:16px;border-top:1px solid rgba(31,41,55,.7);
  display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;justify-content:space-between}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips a{background:#fff;border:1px solid var(--border);border-radius:999px;padding:7px 15px;font-size:13.5px;font-weight:600;color:var(--body)}
.chips a:hover{border-color:var(--green);color:var(--green)}

/* ── Service card ──────────────────────────────────────────────────────────
   Matches the card on xlr8well.life so both properties feel like one brand:
   4:3 photo that scales on hover, the whole card lifts, and a "Learn more"
   affordance bottom-right. Radius is 8px (their --radius: 0.5rem), not the
   14px used elsewhere on this site. */
.svc{display:flex;flex-direction:column;height:100%;overflow:hidden;border:1px solid var(--border);
  border-radius:8px;background:#fff;box-shadow:0 1px 2px rgba(3,7,18,.05);
  transition:box-shadow .3s,transform .3s}
.svc:hover{box-shadow:0 20px 25px -5px rgba(3,7,18,.10),0 8px 10px -6px rgba(3,7,18,.10);transform:translateY(-4px)}
.svc:focus-within{outline:2px solid var(--green);outline-offset:2px}
.svc-img{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;background:var(--gray)}
.svc-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.svc:hover .svc-img img{transform:scale(1.05)}
.svc-body{display:flex;flex:1;flex-direction:column;padding:16px}
.svc-body h3{font-size:18px;font-weight:700;line-height:1.3;color:var(--ink);margin:0}
.svc-body p{flex:1;margin-top:8px;font-size:14px;line-height:1.55;color:var(--muted);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.svc-more{margin-top:16px;display:flex;justify-content:flex-end}
.svc-more span{display:inline-flex;align-items:center;gap:6px;font-family:'Poppins',sans-serif;
  font-size:14px;font-weight:600;color:var(--green)}
.svc-more svg{transition:transform .2s}
.svc:hover .svc-more svg{transform:translateX(3px)}
@media(prefers-reduced-motion:reduce){
  .svc,.svc-img img,.svc-more svg{transition:none}
  .svc:hover{transform:none}
  .svc:hover .svc-img img{transform:none}
}

/* Category / local-page hero photo, same 4:3 treatment as the cards. */
.hero-photo{border-radius:8px;overflow:hidden;border:1px solid var(--border);
  box-shadow:0 20px 25px -5px rgba(3,7,18,.08),0 8px 10px -6px rgba(3,7,18,.06);aspect-ratio:4/3}
.hero-photo img{width:100%;height:100%;object-fit:cover;display:block}
.hero-split{display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center}
@media(max-width:900px){.hero-split{grid-template-columns:1fr;gap:28px}}

/* ══ Components ported from the xlr8well.life homepage ══════════════════ */

/* Marquee ribbon under the nav */
@keyframes xw-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.ribbon{background:var(--ink);color:#fff;padding:10px 0;overflow:hidden}
.ribbon-track{display:flex;align-items:center;white-space:nowrap;width:max-content;
  font-size:13.5px;font-weight:500;letter-spacing:.01em;animation:xw-marquee 44s linear infinite}
.ribbon-track:hover{animation-play-state:paused}
.ribbon a{margin:0 16px;color:#fff}
.ribbon a:hover{color:var(--mint)}
.ribbon .dot{margin:0 4px;color:var(--green)}

/* Portrait service tile: the homepage card, not the 4:3 one */
.tile{position:relative;display:block;aspect-ratio:3/4;border-radius:16px;overflow:hidden;background:var(--gray)}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .7s cubic-bezier(.2,.6,.3,1)}
.tile:hover img{transform:scale(1.05)}
.tile::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(10,21,37,.88) 0%,rgba(10,21,37,.25) 45%,transparent 75%)}
.tile-badge{position:absolute;top:12px;left:12px;z-index:2;display:inline-flex;align-items:center;gap:5px;
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.92);color:var(--ink);
  box-shadow:0 1px 3px rgba(10,21,37,.2)}
.tile-badge.gold{background:var(--gold)}
.tile-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:16px;
  transform:translateY(4px);transition:transform .3s}
.tile:hover .tile-cap{transform:translateY(0)}
.tile-cap h3{font-size:15px;font-weight:700;color:#fff;line-height:1.35;margin:0 0 5px}
.tile-cap p{font-size:12px;font-weight:600;color:var(--mint);margin:0}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:1024px){.tiles{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.tiles{grid-template-columns:repeat(2,1fr);gap:12px}}
@media(prefers-reduced-motion:reduce){
  .tile img,.tile-cap{transition:none}
  .tile:hover img{transform:none}
  .ribbon-track{animation:none}
}

/* Section headers with the gradient rule */
.eyebrow{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--green-d)}
.grad{background:linear-gradient(90deg,var(--mint),var(--green));-webkit-background-clip:text;
  background-clip:text;color:transparent}
.rule{height:3px;width:80px;border-radius:99px;margin:12px 0 14px;
  background:linear-gradient(90deg,var(--gold),var(--mint))}

/* Filter pills */
.pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.pill-btn{padding:9px 18px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;
  border:1px solid var(--border);background:#fff;color:var(--body);transition:.2s;white-space:nowrap;
  font-family:'Inter',sans-serif}
.pill-btn:hover{border-color:var(--mint);color:var(--green)}
.pill-btn.on{background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:0 4px 12px rgba(15,23,42,.18)}
.pill-btn:focus-visible{outline:2px solid var(--green);outline-offset:2px}

/* Hero */
.hero-badges{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:22px;
  font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.hero-badges .live{display:inline-flex;align-items:center;gap:7px;color:var(--green-d);font-weight:700}
.hero-badges .dot{width:6px;height:6px;border-radius:50%;background:var(--green);display:inline-block}
@keyframes xw-pulse{0%,100%{opacity:1}50%{opacity:.35}}
.hero-badges .dot{animation:xw-pulse 2s ease-in-out infinite}
.hero-h1{font-size:clamp(2.2rem,5.4vw,3.5rem);font-weight:800;line-height:1.05;letter-spacing:-.03em}
.hero-h1 span{display:block}
.hero-stats{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin-top:34px}
.hero-stat{padding-right:22px}
.hero-stat + .hero-stat{border-left:1px solid var(--border);padding-left:22px}
.hero-stat .n{font-family:'Poppins',sans-serif;font-size:1.35rem;font-weight:800;color:var(--ink);line-height:1}
.hero-stat .l{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-top:4px;font-weight:600}
.hero-media{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/3;background:var(--gray)}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;
  transition:opacity 1s ease}
.hero-media img.on{opacity:1}
.hero-media::after{content:"";position:absolute;left:0;right:0;bottom:0;height:120px;z-index:1;
  background:linear-gradient(to top,rgba(15,23,42,.42),transparent);pointer-events:none}
.hero-float{position:absolute;left:16px;bottom:16px;z-index:2;background:rgba(255,255,255,.92);
  backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.5);border-radius:12px;padding:11px 16px;
  box-shadow:0 8px 24px rgba(15,23,42,.14)}
.hero-float .k{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--green)}
.hero-float .v{font-size:14px;font-weight:700;color:var(--ink);margin-top:2px}
.hero-dots{position:absolute;left:0;right:0;bottom:12px;z-index:2;display:flex;justify-content:center;gap:6px}
.hero-dots i{width:6px;height:6px;border-radius:99px;background:rgba(255,255,255,.55);transition:.3s}
.hero-dots i.on{width:20px;background:#fff}

/* Dark value-proposition band */
.band-dark{background:var(--ink);color:#cbd5e1;padding:64px 0;position:relative;overflow:hidden}
.band-dark h2{color:#fff}
.band-dark .glow{position:absolute;width:380px;height:380px;border-radius:50%;filter:blur(90px);pointer-events:none}
.vcards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:34px}
@media(max-width:960px){.vcards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.vcards{grid-template-columns:1fr}}
.vcard{border-radius:20px;padding:26px;border:1px solid}
.vcard-rule{display:block;width:34px;height:3px;border-radius:99px;margin-bottom:18px}
.vcard .k{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;margin-bottom:5px}
.vcard h3{font-size:1.15rem;margin-bottom:9px;color:var(--ink)}
.vcard p{font-size:13.5px;line-height:1.6;color:#52606d}
.statgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:32px}
@media(max-width:640px){.statgrid{grid-template-columns:repeat(2,1fr)}}
.statbox{text-align:center;padding:22px 14px;border-radius:16px;background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1)}
.statbox .n{font-family:'Poppins',sans-serif;font-size:1.7rem;font-weight:800;color:#fff}
.statbox .l{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:#94a3b8;margin-top:5px}

/* Floating contact button */
.fab{position:fixed;right:20px;bottom:20px;z-index:80;display:flex;align-items:center;gap:9px;
  background:var(--green-btn);color:#fff;font-family:'Poppins',sans-serif;font-weight:700;font-size:14px;
  padding:14px 20px;border-radius:999px;box-shadow:0 12px 30px rgba(15,126,94,.4);transition:.25s}
.fab:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(15,126,94,.5);background:var(--green-btn-h)}
@media(max-width:768px){.fab{bottom:76px;right:14px;padding:13px 17px;font-size:13px}}

/* Mobile bottom bar */
.mobile-bar{display:none}
@media(max-width:768px){
  .mobile-bar{display:flex;position:fixed;left:0;right:auto;top:auto;bottom:0;width:100%;z-index:70;height:62px;
    background:#fff;border-top:1px solid var(--border);box-shadow:0 -2px 14px rgba(15,23,42,.06)}
  .mobile-bar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:3px;font-size:10.5px;font-weight:600;color:var(--muted)}
  .mobile-bar a .ic{font-size:19px;line-height:1}
  .mobile-bar a.on{color:var(--green)}
  body{padding-bottom:62px}
}

/* Footer additions */
.f-badges{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.f-badges span{font-size:10px;font-weight:700;padding:4px 10px;border-radius:999px;
  background:rgba(24,160,122,.14);color:var(--mint);border:1px solid rgba(24,160,122,.3)}
.f-news{display:flex;gap:8px;max-width:330px;margin-top:16px}
.f-news input{flex:1;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13);
  color:#fff;border-radius:9px;padding:10px 13px;font-size:13.5px}
.f-news input::placeholder{color:#94a3b8}
.f-news button{background:var(--mint);color:var(--ink);border:0;border-radius:9px;padding:0 18px;
  font-family:'Poppins',sans-serif;font-weight:700;font-size:13.5px;cursor:pointer;white-space:nowrap}
.f-news button:hover{background:#5ec99a}

/* ══ Typographic markers ════════════════════════════════════════════════
   The site previously leant on emoji for hierarchy. These carry the same
   structure with numerals and rules, which reads as clinical rather than
   consumer-app. */
.step-n{display:inline-flex;align-items:center;justify-content:center;
  font-family:'Poppins',sans-serif;font-size:12px;font-weight:800;letter-spacing:.06em;
  color:var(--green-d);background:var(--green-l);border:1px solid var(--green-line);
  border-radius:8px;padding:0 10px;height:28px;flex-shrink:0;font-variant-numeric:tabular-nums}
.step-card{position:relative}
.step-card .step-n{margin-bottom:16px}

/* A feature card with a short accent rule instead of a pictograph. */
.card.feat{padding:22px;position:relative}
.card.feat::before{content:"";position:absolute;left:22px;top:0;width:30px;height:3px;
  border-radius:0 0 99px 99px;background:var(--green)}
.card.feat h3{margin-top:8px}

/* ══ Full-bleed hero ════════════════════════════════════════════════════
   Carried over from the launch page: the branded van on the Tyne Bridge,
   with the copy sitting on a dark wash over it. On narrow screens the photo
   becomes a banner above the text so the van is never cropped out. */
.hero-full{position:relative;overflow:hidden;background:var(--ink);display:block;padding:0}
@media(min-width:901px){
  .hero-full{min-height:min(86vh,640px);display:flex;flex-direction:column;justify-content:center}
}
.hero-full .hf-bg{position:absolute;inset:0;z-index:0}
.hero-full .hf-bg picture{display:block;width:100%;height:100%}
.hero-full .hf-bg img{width:100%;height:100%;object-fit:cover;object-position:58% 50%}
.hero-full .hf-wash{position:absolute;inset:0;z-index:1;
  background:linear-gradient(105deg,rgba(15,23,42,.95) 0%,rgba(15,23,42,.90) 38%,rgba(15,23,42,.72) 55%,rgba(15,23,42,.34) 78%,rgba(15,23,42,.12) 100%)}
.hero-full .wrap{position:relative;z-index:2;padding-top:56px;padding-bottom:56px}
.hf-inner{max-width:700px}
.hf-badge{display:inline-flex;align-items:center;gap:9px;padding:7px 16px;border-radius:999px;
  background:rgba(255,255,255,.11);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.22);
  font-size:11.5px;font-weight:700;color:#fff;letter-spacing:.11em;text-transform:uppercase;margin-bottom:22px}
.hf-badge i{width:7px;height:7px;border-radius:50%;background:var(--mint);display:inline-block;
  animation:xw-pulse 2s ease-in-out infinite}
.hf-h1{font-family:'Poppins',sans-serif;font-size:clamp(1.6rem,3.2vw,2.4rem);font-weight:800;
  line-height:1.14;letter-spacing:-.02em;color:#fff;margin:0 0 16px;text-wrap:balance}
.hf-h1 .g{background:linear-gradient(90deg,var(--gold),var(--mint));-webkit-background-clip:text;
  background-clip:text;color:transparent}
.hf-sub{font-size:1rem;color:rgba(255,255,255,.82);line-height:1.65;max-width:58ch;margin-bottom:22px}
.hf-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}
.hf-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:999px;
  background:rgba(255,255,255,.1);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.18);
  font-size:12px;font-weight:600;color:rgba(255,255,255,.9)}
.hf-chip i{width:5px;height:5px;border-radius:50%;background:var(--mint);display:inline-block}
.hf-form{background:rgba(255,255,255,.97);backdrop-filter:blur(10px);border-radius:14px;padding:18px;
  box-shadow:0 18px 50px rgba(0,0,0,.32);max-width:560px}
.hf-form form{display:grid;grid-template-columns:1fr 1fr auto;gap:10px}
@media(max-width:560px){.hf-form form{grid-template-columns:1fr}}
.hf-stats{display:flex;flex-wrap:wrap;align-items:center;margin-top:26px}
.hf-stat{padding-right:24px}
.hf-stat + .hf-stat{border-left:1px solid rgba(255,255,255,.2);padding-left:24px}
.hf-stat .n{font-family:'Poppins',sans-serif;font-size:1.4rem;font-weight:800;color:#fff;line-height:1}
.hf-stat .l{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:rgba(255,255,255,.6);
  margin-top:5px;font-weight:600}

@media(max-width:900px){
  /* Fixed-ratio banner with the image absolutely filling it, deterministic:
     rather than depending on how <picture> sizes its own box. */
  .hero-full .hf-bg{position:relative;inset:auto;aspect-ratio:16/10;overflow:hidden}
  .hero-full .hf-bg picture{position:absolute;inset:0;display:block}
  .hero-full .hf-bg img{position:absolute;inset:0;width:100%;height:100%;
    object-fit:cover;object-position:58% 50%}
  .hero-full .hf-wash{background:linear-gradient(180deg,rgba(15,23,42,0) 55%,rgba(15,23,42,.85) 100%)}
  .hero-full .wrap{padding-top:30px;padding-bottom:44px}
  .hf-inner{max-width:100%}
}

/* ══ Featured band ══════════════════════════════════════════════════════
   A declared, labelled placement. It is not dressed up as an editorial
   recommendation, because the site promises fair rotation and no commission,
   and an undisclosed house listing would undercut both. */
.feat-band{background:var(--gray);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:28px}
@media(max-width:820px){.feat-grid{grid-template-columns:1fr}}
.feat-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);
  border-radius:14px;overflow:hidden;transition:box-shadow .3s,transform .3s}
.feat-card:hover{box-shadow:0 20px 30px -8px rgba(15,23,42,.12);transform:translateY(-3px)}
.feat-img{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--gray)}
.feat-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.feat-card:hover .feat-img img{transform:scale(1.04)}
.feat-tag{position:absolute;top:12px;left:12px;z-index:2;font-size:10px;font-weight:700;
  text-transform:uppercase;letter-spacing:.09em;padding:5px 11px;border-radius:999px;
  background:var(--gold);color:var(--ink);box-shadow:0 1px 4px rgba(15,23,42,.18)}
.feat-body{display:flex;flex:1;flex-direction:column;padding:22px}
.feat-body h3{font-size:1.15rem;margin:0 0 4px}
.feat-kicker{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;
  color:var(--green-d);margin-bottom:9px}
.feat-body p{font-size:14.5px;line-height:1.6;color:var(--muted);flex:1}
.feat-meta{margin-top:14px;padding-top:14px;border-top:1px solid var(--rule,var(--border));
  font-size:12px;color:var(--muted);line-height:1.55}
.feat-body .btn{margin-top:16px;align-self:flex-start}

/* ── Order pool ─────────────────────────────────────────────────────────── */
/* A live job card. The left edge is the tell: green while the window belongs
   to this provider's tier, amber once it has opened to everyone below them. */
.pool-card { border-left:4px solid var(--green); transition:border-color .2s, box-shadow .2s; }
.pool-card.pool-urgent { border-left-color:#dc2626; box-shadow:0 0 0 1px rgba(220,38,38,.18), var(--shadow); }
.pool-card .countdown { display:inline-flex; align-items:baseline; gap:6px; }
.pool-card .countdown strong {
  font-family:'Poppins',system-ui,sans-serif; font-size:1.15rem; font-weight:800;
  font-variant-numeric:tabular-nums; color:var(--ink);
}
.pool-card .countdown strong.urgent { color:#dc2626; animation:pool-pulse 1s ease-in-out infinite; }
@keyframes pool-pulse { 0%,100% { opacity:1 } 50% { opacity:.45 } }
@media (prefers-reduced-motion:reduce) {
  .pool-card .countdown strong.urgent { animation:none; }
}
#pool-live { font-variant-numeric:tabular-nums; }
#pool-live::before {
  content:''; display:inline-block; width:7px; height:7px; border-radius:50%;
  background:var(--green); margin-right:5px; vertical-align:middle;
}
/* A booking made with this provider by name. Gold, not green: it is already
   theirs, and the clock is a deadline rather than a race. */
.pool-card.pool-direct { border-left-color: var(--gold); }


/* ── Printable invoice ───────────────────────────────────────────────────
   Built to print as much as to be read: A4-ish measure, no site chrome on
   paper, and nothing that depends on a background colour surviving the
   printer's default of not printing backgrounds. */
.inv-wrap{background:var(--gray);padding:26px 0 60px}
.inv{max-width:820px;margin:0 auto;background:#fff;border:1px solid var(--border);
  border-radius:var(--radius);padding:40px 44px}
.inv-actions{display:flex;gap:10px;flex-wrap:wrap;max-width:820px;margin:0 auto 18px}
.inv-head{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;
  padding-bottom:26px;border-bottom:2px solid var(--ink)}
.inv-logo{height:42px;width:auto;margin-bottom:12px}
.inv-head p{font-size:12.5px;line-height:1.6;color:var(--muted)}
.inv-co{font-weight:800;color:var(--ink)}
.inv-meta h1{font-family:'Poppins',sans-serif;font-size:2rem;font-weight:800;
  letter-spacing:-.02em;text-align:right;margin-bottom:10px}
.inv-meta table{font-size:12.5px;margin-left:auto}
.inv-meta th{text-align:left;padding:2px 14px 2px 0;color:var(--muted);font-weight:600}
.inv-meta td{text-align:right}
.inv-to{margin-top:26px}
.inv-label{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin-bottom:6px}
.inv-to p{font-size:13.5px;line-height:1.65}
.inv-items{width:100%;border-collapse:collapse;margin-top:28px;font-size:13.5px}
.inv-items th{text-align:left;font-size:10px;font-weight:800;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);padding:0 0 9px;border-bottom:1px solid var(--border)}
.inv-items td{padding:14px 0;border-bottom:1px solid var(--border);vertical-align:top}
.inv-items .r{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.inv-sub{display:block;font-size:11.5px;color:var(--muted);margin-top:4px}
.inv-items tfoot th{border-bottom:0;text-transform:none;font-size:13.5px;letter-spacing:0;
  color:var(--ink);padding:10px 0;text-align:left}
.inv-items tfoot td{border-bottom:0;padding:10px 0}
.inv-items .inv-total th,.inv-items .inv-total td{font-size:1.15rem;font-weight:800;
  border-top:2px solid var(--ink);padding-top:14px}
.inv-vat{margin-top:22px;font-size:12px;line-height:1.7;color:var(--muted);
  border:1px solid var(--border);border-radius:9px;padding:12px 14px}
.inv-foot{margin-top:26px;padding-top:18px;border-top:1px solid var(--border);
  font-size:12px;line-height:1.7;color:var(--muted)}

@media print{
  .ribbon,nav,footer,.fab,.mobile-bar,.no-print{display:none!important}
  body{padding:0!important;background:#fff!important}
  .inv-wrap{background:#fff;padding:0}
  .inv{max-width:none;border:0;border-radius:0;padding:0;box-shadow:none}
  @page{margin:16mm}
}


/* ── Long-form experience section ────────────────────────────────────────
   Reference-ish rather than marketing-ish: the density is the point. Somebody
   deciding whether to let a stranger into their house is reading, not skimming,
   so this is set for reading. */
.xp-centres{list-style:none;padding:0;margin:20px 0 0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--border);
  border:1px solid var(--border);border-radius:12px;overflow:hidden}
.xp-centres li{background:#fff;padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.xp-c-name{font-family:'Poppins',sans-serif;font-weight:800;font-size:1.02rem;color:var(--green-d)}
.xp-c-mean{font-size:13px;font-weight:600;color:var(--ink)}
.xp-c-where{font-size:12px;color:var(--muted)}

.xp-tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-top:20px}
.xp-tool{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 20px}
.xp-tool p:last-child{font-size:14px;line-height:1.7;color:var(--muted);margin-top:10px}
.xp-hz{font-family:'Poppins',sans-serif;font-size:1.45rem;font-weight:800;color:var(--ink);
  letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.xp-kind{font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--green-d);margin-top:3px}

/* The consent script. Set like a quotation because it is one: these are the
   words actually said in the room, and it should read that way. */
.xp-consent{margin:20px 0 18px;padding:22px 26px;border-left:3px solid var(--green);
  background:var(--green-l);border-radius:0 14px 14px 0;font-size:16px;line-height:1.8;
  color:var(--ink);font-style:italic}
.xp-consent::before{content:'\201C';font-family:Georgia,serif;font-size:2.4rem;line-height:0;
  color:var(--green);vertical-align:-.35em;margin-right:4px}
@media(max-width:560px){.xp-consent{padding:18px 20px;font-size:15px}}

/* Cookie consent. Only ever rendered when a pixel is actually configured, so
   the site keeps its promise not to show a banner for essential cookies. */
#xw-consent{position:fixed;left:12px;right:12px;bottom:12px;z-index:9999;
  background:#fff;border:1px solid #d9ded9;border-radius:16px;
  box-shadow:0 12px 40px rgba(16,32,20,.18);padding:16px 18px;max-width:720px;margin:0 auto}
#xw-consent .xwc-inner{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
#xw-consent p{margin:0;flex:1 1 320px;font-size:13.5px;line-height:1.5;color:#3f4b41}
#xw-consent a{color:#248f4b;text-decoration:underline}
#xw-consent .xwc-btns{display:flex;gap:8px;flex:0 0 auto}
#xw-consent .xwc-b{font:inherit;font-weight:600;font-size:13.5px;cursor:pointer;
  padding:10px 18px;border-radius:999px;border:1px solid #248f4b;background:#248f4b;color:#fff}
#xw-consent .xwc-b:hover{background:#1d7a3f;border-color:#1d7a3f}
#xw-consent .xwc-ghost{background:#fff;color:#3f4b41;border-color:#d9ded9}
#xw-consent .xwc-ghost:hover{background:#f4f6f4;border-color:#c4ccc5}
@media (max-width:560px){
  #xw-consent .xwc-btns{width:100%}
  #xw-consent .xwc-b{flex:1}
}

/* The plain-language heading under the hero. Deliberately quiet: the H1 above
   carries the personality, this one carries the words people search for. */
.shero-h2{font-family:'Inter',system-ui,sans-serif;font-size:17px;font-weight:600;
  line-height:1.5;letter-spacing:-.01em;color:var(--ink,#0f172a);
  max-width:32rem;margin:18px 0 22px}
@media (max-width:640px){ .shero-h2{font-size:15.5px;margin:14px 0 18px} }

/* ── Equinox Reset retreat (views/pages/equinox.js) ───────────────────── */
.eq-hero{position:relative;padding:0;min-height:640px;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.eq-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.eq-hero-wash{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,21,37,.25) 0%,rgba(10,21,37,.55) 45%,rgba(10,21,37,.92) 100%)}
.eq-hero-in{position:relative;padding-top:120px;padding-bottom:56px;width:100%}
.eq-kick{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:14px}
.eq-hero h1{color:#fff;font-size:clamp(2.6rem,7vw,4.6rem)}
.eq-sub{font-size:1.2rem;color:#e2e8f0;max-width:44ch;margin-top:12px}
.eq-chips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.18);border-radius:14px;overflow:hidden;margin-top:28px;max-width:860px}
.eq-chips div{background:rgba(10,21,37,.55);backdrop-filter:blur(6px);padding:14px 16px}
.eq-chips strong{display:block;font-family:'Poppins',sans-serif;font-size:1.05rem;color:#fff}
.eq-chips span{font-size:12.5px;color:#cbd5e1}
.eq-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.eq-ghost{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.4)}
.eq-ghost:hover{background:#fff;color:var(--ink)}
.eq-eb{font-size:13px;color:#cbd5e1;margin-top:14px}
.eq-sec{padding:84px 0}
.eq-grey{background:var(--gray)}
.eq-dark{background:var(--ink-2)}
.eq-two{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start}
.eq-two h2{margin:6px 0 16px}
.eq-two p{margin-bottom:14px}
.eq-lead{font-size:1.2rem;color:var(--ink);font-family:'Poppins',sans-serif;line-height:1.45}
.eq-host{border-left:3px solid var(--gold);padding:4px 0 4px 16px;margin-top:22px}
.eq-inc{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}
.eq-ticks{list-style:none;margin-top:14px;display:grid;gap:10px}
.eq-ticks li{position:relative;padding-left:26px;font-size:15px;color:var(--ink)}
.eq-ticks li::before{content:"";position:absolute;left:2px;top:.5em;width:12px;height:7px;border-left:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(-45deg)}
.eq-xp{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:22px;margin-top:30px}
.eq-xp-c{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.eq-xp-img{aspect-ratio:3/2;overflow:hidden;background:var(--ink-2)}
.eq-xp-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.eq-xp-c:hover .eq-xp-img img{transform:scale(1.04)}
.eq-more{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:22px}
.eq-more-c{background:var(--ink-2);border-radius:var(--radius);padding:24px 26px;border-top:3px solid var(--gold)}
.eq-more-c h3{color:#fff;margin-bottom:8px}.eq-more-c p{color:#cbd5e1}.eq-more-c .eq-when{color:var(--gold)}
.eq-xp-b{padding:20px 22px 24px}
.eq-when{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--green-d);font-weight:700;margin-bottom:6px}
.eq-xp-b h3{margin-bottom:8px}
.eq-prog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:30px}
.eq-day{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:#fff}
.eq-day-h{background:var(--ink-2);color:#fff;padding:18px 20px}
.eq-day-h span{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mint);font-weight:700}
.eq-day-h strong{font-family:'Poppins',sans-serif;font-size:1.4rem;margin-right:8px}
.eq-day-h em{color:#cbd5e1;font-style:normal;font-size:14px}
.eq-day ol{list-style:none;padding:8px 20px 14px}
.eq-day li{display:grid;grid-template-columns:52px 1fr;gap:10px;padding:9px 0;border-bottom:1px solid #eef1f4;font-size:14.5px;color:var(--ink)}
.eq-day li:last-child{border-bottom:0}
.eq-day time{font-weight:700;color:var(--green-d);font-variant-numeric:tabular-nums}
.eq-sk{align-items:center}
.eq-sk-img img{border-radius:var(--radius);aspect-ratio:4/5;object-fit:cover;width:100%}
.eq-sk-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.14);border-radius:12px;overflow:hidden;margin:20px 0}
.eq-sk-facts div{background:rgba(255,255,255,.05);padding:14px 16px}
.eq-sk-facts span{display:block;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:#94a3b8}
.eq-sk-facts strong{font-family:'Poppins',sans-serif;color:var(--gold);font-size:1.25rem}
.eq-slots{display:flex;flex-wrap:wrap;gap:8px}
.eq-slots span{border:1px solid rgba(106,221,166,.5);color:var(--mint);font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px}
.eq-slots span.gone{border-color:rgba(255,255,255,.15);color:#64748b;text-decoration:line-through}
.eq-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:22px}
.eq-facts div{border:1px solid var(--border);border-radius:12px;padding:12px}
.eq-facts strong{display:block;font-family:'Poppins',sans-serif;font-size:1.5rem;color:var(--ink)}
.eq-facts span{font-size:12.5px;color:var(--muted);line-height:1.3;display:block}
.eq-coast img{border-radius:var(--radius);width:100%;aspect-ratio:4/5;object-fit:cover}
.eq-prices .tbl td{vertical-align:top}
.eq-prices .eq-house td{background:var(--green-l);padding-top:12px;padding-bottom:12px}
.eq-pc{text-align:right;white-space:nowrap}
.eq-st{text-align:right}
.eq-was{display:inline-block;margin-left:8px;color:var(--muted);text-decoration:line-through;font-size:13px}
.eq-was-h{color:var(--muted);font-weight:400;text-decoration:line-through;margin-left:4px}
.eq-off .eq-rn,.eq-off .eq-pc strong{color:var(--muted)}
.eq-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.eq-three h3{margin-bottom:10px}
.eq-dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;text-align:left}
.eq-dl-c{grid-template-columns:1fr;gap:10px}
.eq-dl-a{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;border:1px solid var(--border);background:#fff;border-radius:12px;padding:14px 16px;transition:.15s}
.eq-dl-a:hover{border-color:var(--green);box-shadow:var(--shadow)}
.eq-dl-k{grid-column:1;font-size:11.5px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.eq-dl-a strong{grid-column:1;color:var(--ink);font-family:'Poppins',sans-serif;font-size:15px}
.eq-dl-go{grid-column:2;grid-row:1/3;background:var(--green-l);color:var(--green-d);font-weight:700;font-size:13px;padding:7px 12px;border-radius:999px}
/* booking */
.eq-bhead{background:linear-gradient(160deg,#f2fbf6 0%,#fff 60%);border-bottom:1px solid var(--border);padding:34px 0 30px}
.eq-bhead h1{font-size:clamp(1.8rem,4vw,2.6rem);margin:10px 0 8px}
.eq-book{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:36px;align-items:start}
.eq-form{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:30px}
.eq-step{display:flex;align-items:center;gap:12px;margin:30px 0 14px}
.eq-step:first-of-type{margin-top:0}
.eq-step h2{font-size:1.25rem}
.eq-opt{font-size:12px;font-weight:600;color:var(--muted);background:var(--gray);border:1px solid var(--border);padding:3px 9px;border-radius:999px;vertical-align:middle;margin-left:6px;font-family:'Inter',sans-serif}
.eq-rooms{display:grid;gap:10px}
.eq-hh{margin:10px 0 2px}
.eq-hh:first-child{margin-top:0}
.eq-room{position:relative;display:block;cursor:pointer}
.eq-room input{position:absolute;opacity:0;pointer-events:none}
.eq-room-b{display:grid;gap:4px;border:1.5px solid var(--border);border-radius:12px;padding:14px 16px;transition:.15s}
.eq-room input:checked+.eq-room-b{border-color:var(--green);background:var(--green-l)}
.eq-room input:focus-visible+.eq-room-b{box-shadow:0 0 0 3px rgba(24,160,122,.22)}
.eq-room.off{cursor:not-allowed}
.eq-room.off .eq-room-b{opacity:.55;background:var(--gray)}
.eq-room-t{display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--ink)}
.eq-room-p{font-size:14px;font-weight:700;color:var(--green-d)}
.eq-room-p s{color:var(--muted);font-weight:400}
.eq-skbox{border:1.5px solid var(--gold);background:#fffaf0;border-radius:12px;padding:18px}
.eq-skbox-h{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px;color:var(--ink)}
.eq-left{flex-shrink:0;background:var(--ink);color:var(--gold);font-weight:700;font-size:13px;padding:6px 12px;border-radius:999px}
.eq-left.none{background:#fef2f2;color:#b91c1c}
.eq-slotgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px}
.eq-slot{position:relative;cursor:pointer}
.eq-slot input{position:absolute;opacity:0;pointer-events:none}
.eq-slot span{display:grid;border:1.5px solid var(--border);background:#fff;border-radius:10px;padding:9px 11px;transition:.15s}
.eq-slot strong{font-size:14px;color:var(--ink)}
.eq-slot em{font-style:normal;font-size:12px;color:var(--green-d)}
.eq-slot input:checked+span{border-color:var(--green);background:var(--green-l)}
.eq-slot input:disabled+span{opacity:.5;cursor:not-allowed}
.eq-slot.off em{color:#b91c1c}
.eq-slot.off strong{text-decoration:line-through}
.eq-for{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:14px;color:var(--ink)}
.eq-for select{width:auto;padding:7px 10px}
.eq-side{position:sticky;top:96px;display:grid;gap:18px}
.eq-sum{background:var(--ink-2);color:#e2e8f0;border-radius:var(--radius);padding:24px}
.eq-sum h3{color:#fff;margin-bottom:12px}
.eq-sum-l{display:grid;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.12)}
.eq-sum-l span:first-child{color:#fff;font-weight:600}
.eq-sum-r{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:14px}
.eq-sum-r strong{color:#fff}
.eq-sum-r[hidden]{display:none}
.eq-sum-t{display:flex;justify-content:space-between;padding-top:12px;font-family:'Poppins',sans-serif;font-size:1.3rem;color:#fff}
.eq-sum-t strong{color:var(--gold)}
.eq-side-img img{border-radius:var(--radius);aspect-ratio:3/2;object-fit:cover;width:100%}
.eq-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.eq-kpis div{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px 16px}
.eq-kpis strong{display:block;font-family:'Poppins',sans-serif;font-size:1.4rem;color:var(--ink)}
.eq-kpis span{font-size:12.5px;color:var(--muted)}
.eq-tg{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid #eef1f4}
.eq-tg:last-child{border-bottom:0}
.eq-band{background:var(--ink-2);padding:0;overflow:hidden}
.eq-band-in{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.eq-band-img{min-height:340px;background-size:cover;background-position:center}
.eq-band-copy{padding:48px 48px;color:#cbd5e1}
.eq-band-copy h2{color:#fff;margin:8px 0 12px}
@media (max-width:900px){
  .eq-two,.eq-book,.eq-band-in{grid-template-columns:1fr;gap:32px}
  .eq-prog,.eq-three,.eq-more,#eqInv{grid-template-columns:1fr}
  .eq-chips{grid-template-columns:repeat(2,minmax(0,1fr))}
  .eq-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .eq-side{position:static}
  .eq-hero{min-height:600px}
  .eq-band-copy{padding:36px 20px}
  .eq-band-img{min-height:220px}
}
@media (max-width:560px){
  .eq-form{padding:20px 16px}
  .eq-dl{grid-template-columns:1fr}
  .eq-sec{padding:60px 0}
  .eq-prices .tbl th:nth-child(3),.eq-prices .tbl td.eq-st{display:none}
  .eq-sk-facts strong{font-size:1.05rem}
}

/* ── Equinox Reset, three-night update ─────────────────────────────────── */
.eq-prog.eq-prog4{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.eq-prog4 .eq-day li{grid-template-columns:46px 1fr;font-size:14px}
.eq-film video{display:block;border-radius:var(--radius);background:#000;margin-top:22px;box-shadow:0 20px 50px rgba(0,0,0,.35)}
.eq-film .caption{font-size:13px;color:#94a3b8;margin-top:12px}
.eq-std{color:var(--muted)}
.eq-room-std{font-weight:400;color:var(--muted);font-size:12.5px;margin-left:6px}
.eq-twoup{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
.eq-twoup h3{margin-bottom:10px}
.eq-faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 22px;margin-top:22px}
.eq-faq-i{border:1px solid var(--border);border-radius:12px;padding:18px 20px;background:#fff}
.eq-faq-i h3{font-size:1.02rem;margin-bottom:8px}
.eq-extra{margin-top:16px;padding-top:16px;border-top:1px dashed #e7cf9c}
.eq-pay{display:grid;gap:10px}
.eq-pay-o{position:relative;display:block;cursor:pointer}
.eq-pay-o input{position:absolute;opacity:0;pointer-events:none}
.eq-pay-o span{display:grid;gap:3px;border:1.5px solid var(--border);border-radius:12px;padding:13px 16px;transition:.15s}
.eq-pay-o strong{color:var(--ink);font-size:15px}
.eq-pay-o em{font-style:normal;font-size:13.5px;color:var(--muted)}
.eq-pay-o input:checked+span{border-color:var(--green);background:var(--green-l)}
.eq-pay-o input:focus-visible+span{box-shadow:0 0 0 3px rgba(24,160,122,.22)}
.eq-sum-due{border-bottom:0;padding-top:12px}
.eq-sum-due strong{font-size:1.1rem;color:var(--gold)}
.eq-sum-t{border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:12px}
@media (max-width:1100px){ .eq-prog.eq-prog4{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:900px){
  .eq-twoup,.eq-faq{grid-template-columns:1fr}
  .eq-prices .tbl td.eq-std,.eq-prices .tbl th:nth-child(3){display:none}
}
@media (max-width:640px){ .eq-prog.eq-prog4{grid-template-columns:1fr} }
