/* Ghost Detail Autos - public site. Colour, type, grid and spacing come only from tokens.css.
   Layout rule: every block sits on .grid (12 columns). Spans: .c-full, .c-5, .c-7, .c-6, .c-8, .c-4 + start helpers.
   Vertical rhythm: sections use var(--section); heading-to-content gap is var(--block); all other gaps use --s-* only. */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + var(--s-3))}
body{background:var(--c-bg);color:var(--c-text);font-family:var(--f-sans);font-size:var(--fs-md);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
ul,ol{list-style:none}
:focus-visible{outline:2px solid var(--c-accent);outline-offset:3px}
.dark :focus-visible{outline-color:var(--c-dark-accent)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:var(--grid-margin);top:-80px;z-index:300;background:var(--c-text);color:var(--c-bg);padding:var(--s-1) var(--s-2)}
.skip:focus{top:var(--s-2)}

/* ---------- Grid ---------- */
.grid{display:grid;grid-template-columns:repeat(var(--grid-cols),minmax(0,1fr));column-gap:var(--grid-gutter);width:100%;max-width:calc(var(--grid-max) + 2 * var(--grid-margin));margin:0 auto;padding:0 var(--grid-margin)}
.grid > *{grid-column:1 / -1;min-width:0}
@media (min-width:1024px){
  .c-4{grid-column:span 4}.c-5{grid-column:span 5}.c-6{grid-column:span 6}.c-7{grid-column:span 7}.c-8{grid-column:span 8}
  .s-6{grid-column:6 / -1}.s-7{grid-column:7 / -1}.s-8{grid-column:8 / -1}.s-9{grid-column:9 / -1}
  .e-end{grid-column-end:-1}
}
.section{padding:var(--section) 0}
.alt{background:var(--c-surface)}
.dark{background:var(--c-dark);color:var(--c-on-dark)}
.rule-top{border-top:1px solid var(--c-line)}
.dark .rule-top{border-color:var(--c-dark-line)}
.stack > * + *{margin-top:var(--s-3)}
.block-gap{margin-bottom:var(--block)}

/* ---------- Type ---------- */
.h1,.h2{font-family:var(--f-display);font-weight:400;letter-spacing:-.02em}
.h1{font-size:var(--fs-h1);line-height:.92}
.h2{font-size:var(--fs-h2);line-height:.98}
.h3{font-family:var(--f-display);font-weight:400;font-size:var(--fs-h3);line-height:1.1;letter-spacing:-.01em}
.h4{font-size:var(--fs-md);font-weight:600;line-height:1.4}
.lede{font-size:var(--fs-lg);line-height:1.6;color:var(--c-muted);max-width:var(--measure)}
.dark .lede{color:var(--c-on-dark-muted)}
p{max-width:var(--measure)}
.muted{color:var(--c-muted)}
.dark .muted{color:var(--c-on-dark-muted)}
.kicker{font-size:var(--fs-sm);font-weight:500;color:var(--c-muted)}
.dark .kicker{color:var(--c-on-dark-muted)}
.cap{font-stretch:125%;font-size:var(--fs-xs);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--c-muted)}
.dark .cap{color:var(--c-on-dark-muted)}
.num{font-variant-numeric:tabular-nums lining-nums}
.price{font-weight:500;font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.01em}

/* ---------- Controls: one size ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;height:var(--control-h);padding:0 var(--s-3);border:1px solid var(--c-text);background:var(--c-text);color:var(--c-bg);font-size:var(--fs-sm);font-weight:600;letter-spacing:.01em;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.btn:hover{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-on-accent)}
.btn--ghost{background:transparent;color:var(--c-text)}
.btn--ghost:hover{background:var(--c-text);border-color:var(--c-text);color:var(--c-bg)}
.dark .btn{background:var(--c-on-dark);border-color:var(--c-on-dark);color:var(--c-dark)}
.dark .btn:hover{background:var(--c-dark-accent);border-color:var(--c-dark-accent)}
.dark .btn--ghost{background:transparent;color:var(--c-on-dark);border-color:rgba(245,242,236,.5)}
.dark .btn--ghost:hover{background:var(--c-on-dark);color:var(--c-dark)}
.btn--block{width:100%}
.btn[disabled]{opacity:.6;cursor:progress}
.actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.link{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;font-weight:500}
.link:hover{color:var(--c-accent)}
.dark .link:hover{color:var(--c-dark-accent)}
.arrow{text-decoration:none;font-weight:500;border-bottom:1px solid currentColor;padding-bottom:2px;white-space:nowrap}
.arrow::after{content:' \2192'}

/* ---------- Navigation ---------- */
.site-nav{position:fixed;inset:0 0 auto 0;z-index:100;height:var(--nav-h);background:color-mix(in srgb,var(--c-bg) 90%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(16px);backdrop-filter:saturate(1.4) blur(16px);border-bottom:1px solid var(--c-line)}
.site-nav .grid{height:100%;align-items:center}
.nav-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}
.brand{display:inline-flex;flex-direction:column;line-height:1;text-decoration:none}
.brand b{font-stretch:125%;font-weight:600;font-size:15px;letter-spacing:.2em}
.brand span{font-stretch:125%;font-size:10px;letter-spacing:.44em;color:var(--c-muted);margin-top:6px}
.nav-links{display:flex;gap:var(--s-4)}
.nav-links a{font-size:var(--fs-sm);font-weight:500;text-decoration:none;padding:var(--s-1) 0;border-bottom:1px solid transparent}
.nav-links a:hover,.nav-links a[aria-current="page"]{border-bottom-color:currentColor}
.nav-right{display:flex;align-items:center;gap:var(--s-1)}
.nav-toggle{display:none;width:var(--control-h);height:var(--control-h);border:0;background:none;cursor:pointer;align-items:center;justify-content:center}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{display:block;width:22px;height:1.5px;background:var(--c-text);position:relative;transition:transform var(--dur) var(--ease)}
.nav-toggle span::before,.nav-toggle span::after{content:'';position:absolute;left:0}
.nav-toggle span::before{top:-7px}.nav-toggle span::after{top:7px}
.nav-toggle[aria-expanded="true"] span{background:transparent}
.nav-toggle[aria-expanded="true"] span::before{transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span::after{transform:translateY(-7px) rotate(-45deg)}

/* ---------- Hero (home) with photo slot ---------- */
.hero{position:relative;min-height:100svh;max-height:1200px;display:flex;align-items:flex-end;color:var(--c-on-dark);background:var(--c-dark);isolation:isolate;padding:calc(var(--nav-h) + var(--s-8)) 0 var(--s-8)}
.hero-media{position:absolute;inset:0;z-index:-1;background:var(--c-dark)}
.hero-media img{width:100%;height:100%;object-fit:cover}
.hero-media::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,21,22,.15) 40%,rgba(20,21,22,.75) 100%)}
.hero .h1{max-width:11ch;margin-bottom:var(--s-4)}
.hero .lede{margin-bottom:var(--s-5)}
@media (min-width:1280px){.hero{padding-bottom:var(--s-12)}}

/* ---------- Page header (inner pages) ---------- */
.page-head{padding:calc(var(--nav-h) + var(--s-12)) 0 var(--section)}
.page-head .h1{margin-bottom:var(--s-4)}
@media (min-width:1280px){.page-head{padding-top:calc(var(--nav-h) + var(--s-16))}}

/* ---------- Spec table (services, add-ons, zones) ---------- */
.spec-table{width:100%;border-collapse:collapse;border-top:1px solid var(--c-text)}
.dark .spec-table{border-top-color:var(--c-on-dark)}
.spec-table th,.spec-table td{text-align:left;vertical-align:baseline;padding:var(--s-3) var(--s-2) var(--s-3) 0;border-bottom:1px solid var(--c-line)}
.spec-table thead th{padding:var(--s-2) var(--s-2) var(--s-2) 0;font-stretch:125%;font-size:var(--fs-xs);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--c-muted)}
.spec-table tbody th{font-family:var(--f-display);font-weight:400;font-size:var(--fs-h3);line-height:1.1;letter-spacing:-.01em}
.spec-table td{color:var(--c-muted);font-size:var(--fs-sm)}
.spec-table .t-price{text-align:right;color:var(--c-text);font-size:var(--fs-h3);font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
.spec-table .t-act{text-align:right;width:1%;white-space:nowrap;padding-right:0}
.spec-table .tag{display:block;margin-top:var(--s-1);font-family:var(--f-sans);font-size:var(--fs-xs);font-weight:600;color:var(--c-accent);letter-spacing:.02em}
@media (max-width:767px){
  .spec-table thead{display:none}
  .spec-table,.spec-table tbody,.spec-table tr,.spec-table th,.spec-table td{display:block;width:100%}
  .spec-table tr{display:grid;grid-template-columns:1fr auto;column-gap:var(--s-2);padding:var(--s-3) 0;border-bottom:1px solid var(--c-line)}
  .spec-table th,.spec-table td{border:0;padding:0}
  .spec-table tbody th{grid-column:1}
  .spec-table .t-price{grid-column:2;grid-row:1;text-align:right}
  .spec-table td:not(.t-price):not(.t-act){grid-column:1 / -1;margin-top:var(--s-1)}
  .spec-table .t-act{grid-column:1 / -1;width:100%;text-align:left;margin-top:var(--s-2)}
}

/* ---------- Definition list (studio, spec) ---------- */
.dl{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;border-top:1px solid var(--c-text)}
.dl dt,.dl dd{padding:var(--s-2) 0;border-bottom:1px solid var(--c-line)}
.dl dt{font-size:var(--fs-sm);font-weight:600;padding-right:var(--s-2)}
.dl dd{color:var(--c-muted)}
.dark .dl{border-top-color:var(--c-on-dark)}
.dark .dl dt,.dark .dl dd{border-color:var(--c-dark-line)}
.dark .dl dd{color:var(--c-on-dark-muted)}

/* ---------- Plate lookup ---------- */
.uk-plate{display:flex;align-items:stretch;background:var(--c-plate);border:2px solid #111;border-radius:4px;overflow:hidden;width:100%}
.plate-gb{background:#00309A;width:var(--s-6);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;flex-shrink:0}
.plate-stars{color:#FFD400;font-size:4px;letter-spacing:.5px;max-width:40px;overflow:hidden;white-space:nowrap}
.plate-gb-txt{color:#fff;font-weight:700;font-size:14px}
.plate-input-area{flex:1;display:flex;align-items:center;padding:0 var(--s-2)}
#plate-input{width:100%;background:transparent;border:0;outline:none;font-family:var(--f-plate);font-stretch:85%;font-size:clamp(36px,6vw,64px);font-weight:700;letter-spacing:.06em;color:#111;text-transform:uppercase;padding:var(--s-1) 0;text-align:center}
#plate-input::placeholder{color:rgba(17,17,17,.3)}
.uk-plate:focus-within{outline:2px solid var(--c-accent);outline-offset:4px}
.field-label{display:block;font-size:var(--fs-sm);font-weight:600;margin-bottom:var(--s-1)}
.plate-btn{margin-top:var(--s-2)}
.plate-err,.zone-err{display:none;margin-top:var(--s-2);padding:var(--s-2);border-left:2px solid var(--c-err);background:color-mix(in srgb,var(--c-err) 8%,transparent);color:var(--c-err);font-size:var(--fs-sm)}
.plate-err.show,.zone-err.show{display:block}
.plate-result,.zone-result{display:none;margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--c-text)}
.plate-result.show,.zone-result.show{display:block;animation:rise .4s var(--ease)}
.result-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-2);margin-bottom:var(--s-2)}
.r-lbl{font-size:var(--fs-xs);font-weight:600;color:var(--c-muted);margin-bottom:4px}
.r-val{font-family:var(--f-display);font-size:1.5rem;line-height:1.1}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- Nano Banana ---------- */
.nano-mark{font-family:var(--f-display);font-weight:400;font-size:clamp(5rem,2rem + 11vw,13rem);line-height:.82;letter-spacing:-.03em}
.nano-mark span{display:block;color:var(--c-nano)}

/* ---------- Ghost Pass plans: equal height, aligned rows via subgrid ---------- */
.plans{display:grid;grid-template-columns:1fr;gap:var(--grid-gutter)}
.plan{display:grid;grid-template-rows:subgrid;grid-row:span 6;row-gap:0;padding:var(--s-4);background:var(--c-surface-2);border:1px solid var(--c-line)}
.alt .plan{background:var(--c-bg)}
.plan > *{min-width:0}
.plan-name{font-size:var(--fs-sm);font-weight:600;padding-bottom:var(--s-4)}
.plan-badge{color:var(--c-muted);font-weight:500}
.plan .price{font-family:var(--f-display);font-weight:400;font-size:clamp(3.5rem,2.4rem + 3vw,5.5rem);line-height:.9;letter-spacing:-.02em}
.plan-per{font-size:var(--fs-sm);color:var(--c-muted);padding:var(--s-1) 0 var(--s-3)}
.plan-core{font-size:var(--fs-sm);color:var(--c-muted);padding-bottom:var(--s-3)}
.plan .ticks{padding-bottom:var(--s-4)}
.plan--featured{background:var(--c-dark)!important;color:var(--c-on-dark);border-color:var(--c-dark)}
.plan--featured .plan-per,.plan--featured .plan-core,.plan--featured .plan-badge{color:var(--c-on-dark-muted)}
.plan--featured .ticks li{border-color:var(--c-dark-line)}
.plan--featured .btn{background:var(--c-on-dark);border-color:var(--c-on-dark);color:var(--c-dark)}
.plan--featured .btn:hover{background:var(--c-dark-accent);border-color:var(--c-dark-accent)}
.plan .btn{align-self:end}
@media (min-width:1024px){.plans{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ticks{border-top:1px solid var(--c-line)}
.ticks li{font-size:var(--fs-sm);padding:12px 0;border-bottom:1px solid var(--c-line)}
.ticks--2{display:grid;grid-template-columns:1fr;column-gap:var(--grid-gutter)}
@media (min-width:768px){.ticks--2{grid-template-columns:1fr 1fr}}

/* ---------- Service detail (services page) ---------- */
.pkg{padding:var(--s-6) 0;border-top:1px solid var(--c-text);row-gap:var(--s-3)}
.pkg:last-child{border-bottom:1px solid var(--c-text)}
.pkg-meta{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-2);margin-top:var(--s-2)}
.pkg-meta .price{font-size:var(--fs-h3)}
.pkg .btn{margin-top:var(--s-3)}
.pkg .includes{margin-top:var(--s-3)}
@media (min-width:1024px){.pkg{padding:var(--s-8) 0}}

/* ---------- Ordered process ---------- */
.process{border-top:1px solid var(--c-text);counter-reset:s}
.process li{display:grid;grid-template-columns:var(--s-6) 1fr;column-gap:var(--s-2);padding:var(--s-3) 0;border-bottom:1px solid var(--c-line)}
.process li::before{counter-increment:s;content:counter(s);font-family:var(--f-display);font-size:var(--fs-h3);line-height:1.1;grid-row:span 2}
.process p{color:var(--c-muted);font-size:var(--fs-sm);margin-top:4px}

/* ---------- Comparison table ---------- */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.compare{width:100%;min-width:640px;border-collapse:collapse;font-size:var(--fs-sm)}
.compare th,.compare td{padding:var(--s-2);border-bottom:1px solid var(--c-line);text-align:left;vertical-align:baseline}
.compare th:first-child,.compare td:first-child{padding-left:0}
.compare tbody th{font-weight:500}
.compare thead th{font-weight:600;border-bottom:1px solid var(--c-text);width:22%}
.compare thead th:first-child{width:34%}
.compare .no{color:var(--c-muted)}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--c-text)}
.faq details{border-bottom:1px solid var(--c-line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:var(--s-3);align-items:baseline;padding:var(--s-3) 0;font-family:var(--f-display);font-size:var(--fs-h3);line-height:1.15}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';font-family:var(--f-sans);font-weight:300;font-size:24px;line-height:1;transition:transform var(--dur) var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding-bottom:var(--s-3);color:var(--c-muted)}

/* ---------- Booking ---------- */
.book{padding-top:calc(var(--nav-h) + var(--s-8));padding-bottom:var(--section)}
.book .h1{font-size:var(--fs-h2);margin-bottom:var(--s-6)}
.step{padding:var(--s-4) 0;border-top:1px solid var(--c-text)}
.step-head{display:flex;align-items:baseline;gap:var(--s-2);margin-bottom:var(--s-3)}
.step-head .n{font-family:var(--f-display);font-size:var(--fs-h3);line-height:1;color:var(--c-muted);min-width:var(--s-4)}
.step fieldset{border:0}
.service-opts{display:grid;grid-template-columns:1fr;gap:var(--s-1)}
@media (min-width:768px){.service-opts{grid-template-columns:1fr 1fr}}
.svc-opt{position:relative;display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-2);min-height:calc(var(--control-h) + var(--s-2));padding:var(--s-2);border:1px solid var(--c-line);background:var(--c-surface-2);cursor:pointer;transition:border-color var(--dur) var(--ease)}
.svc-opt input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.svc-opt-name{font-weight:500}
.svc-opt-price{font-variant-numeric:tabular-nums;color:var(--c-muted)}
.svc-opt:hover{border-color:var(--c-text)}
.svc-opt.selected{border-color:var(--c-text);box-shadow:inset 0 0 0 1px var(--c-text)}
.svc-opt.selected .svc-opt-price{color:var(--c-text)}
.svc-opt:focus-within{outline:2px solid var(--c-accent);outline-offset:2px}
.form-grid{display:grid;grid-template-columns:1fr;gap:var(--s-2);margin-bottom:var(--s-2)}
@media (min-width:768px){.form-grid{grid-template-columns:1fr 1fr}}
.form-full{margin-bottom:var(--s-2)}
.field-group{display:flex;flex-direction:column;gap:var(--s-1)}
.field-group label{font-size:var(--fs-sm);font-weight:600}
.field-group input,.field-group select,.field-group textarea,.check-input{width:100%;height:var(--control-h);background:var(--c-surface-2);border:1px solid var(--c-line);border-radius:0;padding:0 var(--s-2);font-size:var(--fs-md);color:var(--c-text);-webkit-appearance:none;appearance:none}
.field-group textarea{height:auto;min-height:calc(var(--control-h) * 2.5);padding:12px var(--s-2);resize:vertical}
.field-group input:hover,.field-group select:hover,.field-group textarea:hover,.check-input:hover{border-color:var(--c-muted)}
.field-group input:focus,.field-group select:focus,.field-group textarea:focus,.check-input:focus{border-color:var(--c-text);outline:2px solid var(--c-accent);outline-offset:1px}
.field-group select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235C6066' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--s-2) center;padding-right:var(--s-6)}
.submit-btn{margin-top:var(--s-1)}
.success-msg{display:none;margin-top:var(--s-2);padding:var(--s-2);border-left:2px solid var(--c-ok);background:color-mix(in srgb,var(--c-ok) 10%,transparent);color:var(--c-ok);font-weight:500}
.success-msg.show{display:block}
#error-msg{margin-top:var(--s-2);padding:var(--s-2);border-left:2px solid var(--c-err);background:color-mix(in srgb,var(--c-err) 8%,transparent);color:var(--c-err);font-size:var(--fs-sm)}
.book-aside{margin-top:var(--s-6)}
.book-aside-inner{position:sticky;top:calc(var(--nav-h) + var(--s-3))}
.book-aside .dl{margin-bottom:var(--s-4)}
.book-aside .dl dd{font-family:var(--f-display);font-size:1.375rem;line-height:1.2;color:var(--c-text)}
.book-aside .dl dd#sum-price{font-family:var(--f-sans);font-weight:500;font-variant-numeric:tabular-nums}
.trust-list{border-top:1px solid var(--c-line);margin-bottom:var(--s-4)}
.trust-list li{padding:12px 0;border-bottom:1px solid var(--c-line);font-size:var(--fs-sm);color:var(--c-muted)}
.cb-link{display:block;padding:4px 0;font-weight:500;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
@media (min-width:1024px){.book-aside{margin-top:0}}

/* ---------- Zone checker ---------- */
.check-field{display:flex;gap:var(--s-1)}
.check-input{flex:1;text-transform:uppercase;letter-spacing:.04em}
.check-input::placeholder{text-transform:none;letter-spacing:0;color:var(--c-muted)}
.zr-zone{font-size:var(--fs-sm);font-weight:600;margin-bottom:4px}
.zr-zone.free{color:var(--c-ok)}.zr-zone.charge{color:var(--c-warn)}.zr-zone.poa{color:var(--c-muted)}
.zr-name{font-family:var(--f-display);font-size:var(--fs-h3);margin-bottom:var(--s-1)}
.zr-desc{color:var(--c-muted);margin-bottom:var(--s-3)}

/* ---------- Legal ---------- */
.tab-nav{position:sticky;top:var(--nav-h);z-index:50;background:var(--c-bg);border-bottom:1px solid var(--c-line)}
.tab-row{display:flex;gap:var(--s-3);overflow-x:auto;-webkit-overflow-scrolling:touch}
.tab-btn{flex-shrink:0;height:calc(var(--control-h) + var(--s-1));background:none;border:0;border-bottom:2px solid transparent;font-size:var(--fs-sm);font-weight:500;color:var(--c-muted);cursor:pointer;white-space:nowrap}
.tab-btn:hover{color:var(--c-text)}
.tab-btn.active{color:var(--c-text);border-bottom-color:var(--c-text)}
.legal-body{padding:var(--section) 0}
.doc-section{display:none}
.doc-section.active{display:block}
.doc-h1{font-family:var(--f-display);font-weight:400;font-size:var(--fs-h2);line-height:1;letter-spacing:-.02em;margin-bottom:var(--s-2)}
.doc-updated{margin-bottom:var(--s-4);padding-bottom:var(--s-3);border-bottom:1px solid var(--c-line);font-size:var(--fs-sm);color:var(--c-muted)}
.doc-h2{font-family:var(--f-display);font-weight:400;font-size:var(--fs-h3);margin:var(--s-6) 0 var(--s-2)}
.doc-h3{font-size:var(--fs-sm);font-weight:600;margin:var(--s-4) 0 var(--s-1)}
.doc-p{color:var(--c-muted);margin-bottom:var(--s-2)}
.doc-ul{list-style:disc;margin:0 0 var(--s-2) var(--s-3);color:var(--c-muted);max-width:var(--measure)}
.doc-ul li{padding:4px 0}
.doc-ul strong{color:var(--c-text);font-weight:600}
.doc-highlight{border-left:2px solid var(--c-text);padding-left:var(--s-3);margin:var(--s-3) 0}
.doc-highlight p{font-size:var(--fs-lg);color:var(--c-text)}
.legal-body a{text-underline-offset:3px}

/* ---------- CTA ---------- */
.cta{align-items:end;row-gap:var(--s-4)}
.cta .actions{justify-content:flex-start}
@media (min-width:1024px){.cta .actions{justify-content:flex-end}}

/* ---------- Footer ---------- */
.site-footer{background:var(--c-dark);color:var(--c-on-dark);padding:var(--section) 0 var(--s-4)}
.site-footer .brand span{color:var(--c-on-dark-muted)}
.footer-top{row-gap:var(--s-5);padding-bottom:var(--s-8)}
.ftag{margin-top:var(--s-3);font-size:var(--fs-sm);color:var(--c-on-dark-muted);max-width:40ch}
.footer-col h2{font-size:var(--fs-sm);font-weight:600;margin-bottom:var(--s-2)}
.footer-col li{margin-bottom:var(--s-1);font-size:var(--fs-sm);color:var(--c-on-dark-muted)}
.footer-col a{text-decoration:none}
.footer-col a:hover{color:var(--c-on-dark);text-decoration:underline;text-underline-offset:4px}
.footer-bottom{border-top:1px solid var(--c-dark-line);padding-top:var(--s-3);row-gap:var(--s-2);font-size:var(--fs-xs);color:var(--c-on-dark-muted)}
.flinks{display:flex;gap:var(--s-3)}
.flinks a{text-decoration:none}
.flinks a:hover{color:var(--c-on-dark)}
@media (min-width:768px) and (max-width:1023px){.footer-col{grid-column:span 4}}
@media (min-width:1024px){.footer-col{grid-column:span 2}.footer-col.first{grid-column:7 / span 2}.flinks{justify-content:flex-end}}

/* ---------- WhatsApp ---------- */
.wa-float{position:fixed;right:max(var(--s-2),env(safe-area-inset-right));bottom:max(var(--s-2),env(safe-area-inset-bottom));z-index:90;width:var(--control-h);height:var(--control-h);border-radius:50%;background:#1F7A4D;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px -8px rgba(0,0,0,.4)}
.wa-float svg{width:24px;height:24px}

/* ---------- Help assistant ---------- */
.chat-launch{position:fixed;right:max(var(--s-2),env(safe-area-inset-right));bottom:max(var(--s-2),env(safe-area-inset-bottom));z-index:90;height:var(--control-h);padding:0 var(--s-2);display:inline-flex;align-items:center;gap:var(--s-1);border:1px solid var(--c-text);background:var(--c-text);color:var(--c-bg);font:600 var(--fs-sm)/1 var(--f-sans);cursor:pointer;box-shadow:0 8px 24px -8px rgba(0,0,0,.4)}
.chat-launch:focus-visible,.chat-panel :focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}
.chat-panel{position:fixed;right:max(var(--s-2),env(safe-area-inset-right));bottom:calc(max(var(--s-2),env(safe-area-inset-bottom)) + var(--control-h) + var(--s-1));z-index:91;width:min(400px,calc(100vw - 2 * var(--s-2)));max-height:min(560px,calc(100vh - 140px));display:flex;flex-direction:column;background:var(--c-bg);color:var(--c-text);border:1px solid var(--c-text);box-shadow:0 16px 48px -16px rgba(0,0,0,.45)}
.chat-panel[hidden]{display:none}
.chat-head{display:flex;justify-content:space-between;align-items:center;padding:var(--s-1) var(--s-2);border-bottom:1px solid var(--c-line)}
.chat-head h2{font-family:var(--f-display);font-size:var(--fs-h3);font-weight:400}
.chat-log{list-style:none;margin:0;padding:var(--s-2);overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:var(--s-2)}
.chat-msg{max-width:90%;font-size:var(--fs-sm);line-height:1.5}
.chat-msg p{white-space:pre-line}
.chat-msg--me{align-self:flex-end;background:var(--c-surface);padding:var(--s-1) var(--s-2)}
.chat-msg--bot .arrow{display:inline-block;margin-top:var(--s-1)}
.chat-form{display:flex;gap:var(--s-1);padding:var(--s-1) var(--s-2);border-top:1px solid var(--c-line)}
.chat-form input{flex:1;min-width:0;height:var(--control-h);padding:0 var(--s-2);border:1px solid var(--c-line);background:var(--c-surface-2);color:var(--c-text);font:inherit}
.chat-note{padding:0 var(--s-2) var(--s-1);font-size:var(--fs-xs);color:var(--c-muted)}
@media print{.chat-launch,.chat-panel{display:none}}

/* ---------- Reveal (progressive) ---------- */
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .reveal.in{opacity:1;transform:none}

/* ---------- Responsive ---------- */
@media (max-width:1023px){
  .nav-toggle{display:inline-flex}
  .nav-links{position:fixed;top:var(--nav-h);left:0;right:0;bottom:0;flex-direction:column;gap:0;padding:var(--s-2) var(--grid-margin);background:var(--c-bg);display:none;overflow-y:auto}
  .nav-links.active{display:flex}
  .nav-links li{border-bottom:1px solid var(--c-line)}
  .nav-links a{display:block;padding:var(--s-3) 0;font-family:var(--f-display);font-size:2.25rem;font-weight:400;border:0}
  .stack-sm > * + *{margin-top:var(--s-5)}
}
@media (max-width:560px){
  .nav-right .btn{padding:0 var(--s-2)}
  .brand b{font-size:13px;letter-spacing:.16em}
  .result-row{grid-template-columns:1fr 1fr}
  .check-field{flex-direction:column}
  .actions .btn{flex:1 1 100%}
  .dl{grid-template-columns:1fr}
  .dl dt{border-bottom:0;padding-bottom:0}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .js .reveal{opacity:1;transform:none}
}
@media print{.site-nav,.wa-float,.site-footer{display:none}.page-head,.book{padding-top:0}}

/* ---------- Header icons + search dialog ---------- */
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--control-h);height:var(--control-h);border:0;background:none;color:var(--c-text);cursor:pointer;text-decoration:none}
.icon-btn:hover{color:var(--c-accent)}
.icon-btn[aria-current="page"]{box-shadow:inset 0 -1px 0 currentColor}
.search{margin:calc(var(--nav-h) + var(--s-2)) auto auto;width:min(720px,calc(100% - 2 * var(--grid-margin)));max-height:min(640px,80svh);border:1px solid var(--c-line);background:var(--c-bg);color:var(--c-text);padding:0;box-shadow:0 30px 80px -30px rgba(0,0,0,.45)}
.search::backdrop{background:rgba(20,21,22,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.search-bar{display:flex;align-items:center;gap:var(--s-2);padding:0 var(--s-2) 0 var(--s-3);border-bottom:1px solid var(--c-line)}
.search-bar input{flex:1;height:calc(var(--control-h) + var(--s-2));border:0;background:none;outline:none;font-size:var(--fs-lg)}
.search-close{height:32px;padding:0 var(--s-1);border:1px solid var(--c-line);background:none;font-size:var(--fs-xs);cursor:pointer;color:var(--c-muted)}
#search-results{overflow-y:auto;max-height:calc(min(640px,80svh) - 80px);padding:var(--s-1) 0}
#search-results .sr-group{padding:var(--s-2) var(--s-3) var(--s-1);font-size:var(--fs-xs);font-weight:600;color:var(--c-muted)}
#search-results a{display:flex;justify-content:space-between;gap:var(--s-2);padding:12px var(--s-3);text-decoration:none}
#search-results small{color:var(--c-muted);font-size:var(--fs-sm);text-align:right}
#search-results [aria-selected="true"] a,#search-results a:hover{background:var(--c-surface)}
.sr-empty{padding:var(--s-3);color:var(--c-muted)}
@media (max-width:560px){.nav-right .icon-btn{width:40px}.nav-right .btn{display:none}}

/* ---------- Account ---------- */
.timeline{border-top:1px solid var(--c-text)}
.timeline li{display:grid;grid-template-columns:minmax(96px,1fr) 3fr auto;gap:var(--s-2);align-items:baseline;padding:var(--s-3) 0;border-bottom:1px solid var(--c-line)}
.timeline time{font-size:var(--fs-sm);color:var(--c-muted)}
.timeline .price{font-size:var(--fs-lg)}
.photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gutter)}
@media (min-width:1024px){.photos{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ph{margin:0}
.ph img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--c-surface)}
.ph figcaption{font-size:var(--fs-xs);color:var(--c-muted);padding-top:var(--s-1)}
.ph--empty{aspect-ratio:4/3;border:1px dashed var(--c-line);display:grid;place-items:center;color:var(--c-muted);font-size:var(--fs-sm)}

/* ---------- Pass 3: imagery + compact lists ---------- */
.media{display:block;overflow:hidden;background:var(--c-surface)}
.dark .media{background:var(--c-dark)}
.media img{width:100%;height:auto;display:block}
.hero-media .media{position:absolute;inset:0;background:var(--c-dark)}
.hero-media .media img{width:100%;height:100%;object-fit:cover;object-position:70% 80%}
.hero-media::after{background:linear-gradient(90deg,rgba(20,21,22,.85) 0%,rgba(20,21,22,.35) 55%,rgba(20,21,22,0) 100%)}
.svc-list{border-top:1px solid var(--c-text)}
.svc-line{display:grid;grid-template-columns:1fr auto;gap:4px var(--s-3);align-items:baseline;padding:var(--s-3) 0;border-bottom:1px solid var(--c-line);text-decoration:none}
.svc-line .svc-desc{grid-column:1;color:var(--c-muted);font-size:var(--fs-sm)}
.svc-line .price{grid-column:2;grid-row:1;font-size:var(--fs-h3)}
.svc-line:hover .svc-name{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
.page-head--short{padding-bottom:var(--s-8)}
.pkgs{padding-bottom:var(--section)}
.pkg{padding-top:var(--s-6);padding-bottom:var(--s-6);row-gap:var(--s-4);align-items:start;border:0}
.pkg + .pkg{border-top:0}
.pkg > div:last-child{border-top:1px solid var(--c-text);padding-top:var(--s-3)}
.pkg-top{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-2);margin-bottom:var(--s-1)}
.pkg-price{font-size:var(--fs-h3)}
.tag-inline{color:var(--c-accent);font-weight:600}
.more{margin-bottom:var(--s-3)}
.more summary{cursor:pointer;font-weight:600;font-size:var(--fs-sm);padding:var(--s-1) 0;list-style:none;display:inline-flex;gap:var(--s-1);align-items:center;min-height:44px}
.more summary::-webkit-details-marker{display:none}
.more summary::after{content:'+';font-weight:400;font-size:20px;line-height:1}
.more[open] summary::after{content:'\2212'}
.more .ticks{margin-top:var(--s-1)}
.spec-table--compact tbody th{font-size:var(--fs-lg);font-family:var(--f-sans);font-weight:600;letter-spacing:0}
.spec-table--compact .t-price{font-size:var(--fs-md)}
.footer-bottom{max-width:none}
@media (min-width:1024px){.pkg{padding-top:var(--s-8);padding-bottom:var(--s-8)}}
@media (max-width:767px){.spec-table--compact tr{grid-template-columns:1fr auto}}
/* QA fixes: tap targets and column inputs */
.nav-links a{display:inline-flex;align-items:center;min-height:44px}
.footer-col li{margin-bottom:0}
.footer-col a{display:inline-flex;align-items:center;min-height:44px}
.check-field .check-input{flex:1 1 auto;min-width:0}
@media (max-width:560px){.check-field .check-input{flex:none}}
