:root{--font:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--display:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--ink:#1b2430;--bg:#ffffff;--link:#0b4f8a;--focus:#c25100;--header-bg:#0f2a44;--header-ink:#ffffff;--line:#d5dbe3;--btn:#a84400;--btn-hover:#7f3300;--btn-ink:#ffffff;--hero-bg:#eef3f8;--hero-ink:#0f2a44;--accent:#a84400;--accent-ink:#8a3800;--h2:#0f2a44;--alt-bg:#f5f7fa;--card-bg:#ffffff;--field:#5b6675;--muted:#4a5462;--footer-bg:#0f2a44;--footer-ink:#ffffff;--footer-line:#3b5672;--radius:6px;--radius-lg:10px}
/* Mobile-first, no framework. Colours chosen for WCAG AA (4.5:1 body text, 3:1 large text/UI). */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-size:1.0625rem;line-height:1.6;color:var(--ink);background:var(--bg)}
img,video{max-width:100%;height:auto;display:block}
a{color:var(--link)}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-999px;top:0;background:#000;color:#fff;padding:.75rem 1rem;z-index:100}
.skip:focus{left:1rem;top:1rem}
.wrap{width:100%;max-width:72rem;margin:0 auto;padding:0 1.25rem}
.concept-banner{background:#1a1a1a;color:#fff;font-size:.875rem;text-align:center;padding:.5rem 1rem}
.concept-banner strong{color:#fff}
.site-header{background:var(--header-bg);color:var(--header-ink);border-bottom:1px solid var(--line)}
.site-header>.wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;padding-top:.85rem;padding-bottom:.85rem}
.brand{font-weight:700;font-size:1.15rem;color:var(--header-ink);text-decoration:none;display:flex;align-items:center;gap:.6rem}
.brand svg{flex:none}
.nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.25rem 1.1rem}
.nav a{color:var(--header-ink);text-decoration:none;padding:.35rem 0;display:inline-block;border-bottom:2px solid transparent}
.nav a:hover{border-bottom-color:currentColor}
.btn{display:inline-block;font:inherit;font-weight:700;text-decoration:none;padding:.8rem 1.25rem;border-radius:var(--radius);border:2px solid var(--btn);background:var(--btn);color:var(--btn-ink);cursor:pointer;min-height:44px;text-align:center}
.btn:hover{background:var(--btn-hover);border-color:var(--btn-hover)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.hero{background:var(--hero-bg)}
.hero-grid{display:grid;gap:1.5rem;padding-top:2rem;padding-bottom:2.5rem}
.hero h1{font-family:var(--display);font-size:clamp(1.9rem,6vw,3.1rem);line-height:1.15;margin:.25rem 0 1rem;color:var(--hero-ink)}
.eyebrow{font-size:.9rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink);margin:0}
.lede{font-size:1.15rem;color:var(--hero-ink);max-width:36rem}
.cta-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}
.media{position:relative;margin:0;border-radius:var(--radius-lg);overflow:hidden;background:var(--line)}
.media img,.media video{width:100%;aspect-ratio:16/9;object-fit:cover}
.ai-label{position:absolute;left:.6rem;bottom:.6rem;background:rgba(0,0,0,.78);color:#fff;font-size:.8rem;font-weight:700;padding:.2rem .55rem;border-radius:4px;letter-spacing:.02em}
.media-ctrl{position:absolute;right:.6rem;bottom:.6rem;background:rgba(0,0,0,.78);color:#fff;border:2px solid #fff;border-radius:4px;font:inherit;font-size:.85rem;font-weight:700;padding:.3rem .7rem;min-height:36px;cursor:pointer}
section{padding:2.75rem 0}
section h2{font-family:var(--display);font-size:clamp(1.5rem,4.5vw,2.1rem);line-height:1.2;margin:0 0 1rem;color:var(--h2)}
.alt{background:var(--alt-bg)}
.cards{display:grid;gap:1rem;list-style:none;padding:0;margin:1.25rem 0 0}
.card{background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.25rem}
.card h3{margin:.25rem 0 .5rem;font-size:1.15rem}
.card p{margin:0}
.price{font-weight:700;color:var(--accent-ink)}
.note{font-size:.95rem;border-left:4px solid var(--accent);background:var(--card-bg);padding:.85rem 1rem;margin:1.25rem 0 0;border-radius:0 var(--radius) var(--radius) 0}
.steps{counter-reset:s;list-style:none;padding:0;display:grid;gap:1rem}
.steps li{counter-increment:s;padding-left:3rem;position:relative}
.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--btn);color:var(--btn-ink);font-weight:700;display:grid;place-items:center}
.contact-grid{display:grid;gap:1.5rem}
form{display:grid;gap:.9rem}
label{font-weight:700;display:block;margin-bottom:.25rem}
input,textarea,select{font:inherit;width:100%;padding:.65rem .75rem;border:2px solid var(--field);border-radius:var(--radius);background:#fff;color:#1a1a1a;min-height:44px}
.hint{font-size:.9rem;color:var(--muted);margin:.2rem 0 0}
.check{display:flex;gap:.6rem;align-items:flex-start}
.check input{width:1.3rem;height:1.3rem;min-height:0;margin-top:.2rem;flex:none}
.check label{font-weight:400}
.form-status{font-weight:700}
dl.facts{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0}
dl.facts dt{font-weight:700}
dl.facts dd{margin:0}
.site-footer{background:var(--footer-bg);color:var(--footer-ink);padding:2.25rem 0 1.5rem;font-size:.95rem}
.site-footer a{color:var(--footer-ink)}
.site-footer h2{font-size:1.05rem;margin:0 0 .5rem;color:var(--footer-ink)}
.foot-grid{display:grid;gap:1.5rem}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin:.25rem 0}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer;min-height:0}
.concept-foot{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--footer-line)}
/* Cookie notice */
.cookie{position:fixed;left:0;right:0;bottom:0;z-index:50;background:#fff;color:#1a1a1a;border-top:3px solid var(--btn);box-shadow:0 -6px 24px rgba(0,0,0,.15);padding:.85rem 0;max-height:70vh;overflow:auto}
.cookie[hidden]{display:none}
.cookie h2{font-size:1.1rem;margin:0 0 .35rem;color:#1a1a1a}
.cookie p{margin:0 0 .6rem;font-size:.9rem;line-height:1.45}
.cookie fieldset{border:1px solid #767676;border-radius:8px;margin:0 0 .6rem;padding:.35rem .8rem .5rem}
.cookie legend{font-weight:700;padding:0 .25rem}
.cookie .row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.cookie .row .btn{padding:.6rem .5rem}
.cookie .row #ck-save{grid-column:1 / -1}
.cookie .btn-eq{background:#fff;color:#1a1a1a;border-color:#1a1a1a}
.cookie .btn-eq:hover{background:#1a1a1a;color:#fff}
.prose{max-width:46rem}
.prose h2{margin-top:2rem}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (min-width:48rem){
  .cookie .row{grid-template-columns:1fr 1fr 1fr}
  .cookie .row #ck-save{grid-column:auto}
  .hero-grid{grid-template-columns:1.05fr 1fr;align-items:center;padding-top:3.5rem;padding-bottom:3.5rem}
  .cards{grid-template-columns:repeat(3,1fr)}
  .contact-grid{grid-template-columns:1.2fr 1fr}
  .foot-grid{grid-template-columns:1.4fr 1fr 1fr}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.site-footer :focus-visible,.concept-banner :focus-visible{outline-color:#ffffff}

/* site-specific */
.site-header :focus-visible{outline-color:#ffffff}.hero h1{letter-spacing:-.01em}.card{border-top:4px solid var(--btn)}

/* CSP-safe concept edits (script-src none): disabled demo form, no-cookie note */
.form-off{border:0;margin:0;padding:0;min-width:0;display:grid;gap:.9rem}
.form-note{font-weight:700;padding:0;margin:0 0 1rem}
.btn:disabled{opacity:.6;cursor:not-allowed}
.cookie-line{margin-top:1rem}
