/* ============================================================
   Yorkshire VoIP — shared stylesheet
   A service of 2plus1 PC Services Ltd
   ============================================================ */

:root{
  --amber:#F7A800;
  --sky:#66B8DC;
  --grey:#B1B3B4;
  --ink:#15212B;
  --ink-2:#33424F;
  --paper:#FFFFFF;
  --mist:#F4F8FB;
  --sky-tint:#EAF4FA;
  --line:#E3E9ED;
  --shadow:0 1px 2px rgba(21,33,43,.04),0 8px 30px rgba(21,33,43,.06);
  --shadow-lg:0 20px 60px rgba(21,33,43,.12);
  --r:14px;
  /* theme-aware (overridden by dark theme below) */
  --dark:#15212B;                    /* fixed brand ink for dark bands */
  --card:#FFFFFF;
  --header-bg:rgba(255,255,255,.82);
  --ic-g-bg:rgba(21,33,43,.06);
  --sky-deep:#2E86AE;
  --amber-deep:#B87C00;
  --ok-fg:#1f6b3a;
  --err-fg:#a02626;
}

/* ---------- Dark theme (matches 2plus1.com toggle behaviour) ---------- */
:root[data-theme="dark"]{
  color-scheme:dark;
  --ink:#E8EDF2;
  --ink-2:#B9C5D0;
  --grey:#96A2AD;
  --paper:#0E161E;
  --mist:#0D1620;
  --sky-tint:#14293D;
  --line:#31455A;
  --card:#18242F;
  --header-bg:rgba(14,22,30,.85);
  --ic-g-bg:rgba(255,255,255,.07);
  --sky-deep:#6FBEE2;
  --amber-deep:#F0B23C;
  --ok-fg:#8AD8A8;
  --err-fg:#F09E9E;
  --shadow:0 1px 2px rgba(0,0,0,.35),0 8px 30px rgba(0,0,0,.35);
  --shadow-lg:0 20px 60px rgba(0,0,0,.5);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --ink:#E8EDF2;
    --ink-2:#B9C5D0;
    --grey:#96A2AD;
    --paper:#0E161E;
    --mist:#0D1620;
    --sky-tint:#14293D;
    --line:#31455A;
    --card:#18242F;
    --header-bg:rgba(14,22,30,.85);
    --ic-g-bg:rgba(255,255,255,.07);
    --sky-deep:#6FBEE2;
    --amber-deep:#F0B23C;
    --ok-fg:#8AD8A8;
    --err-fg:#F09E9E;
    --shadow:0 1px 2px rgba(0,0,0,.35),0 8px 30px rgba(0,0,0,.35);
    --shadow-lg:0 20px 60px rgba(0,0,0,.5);
  }
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',system-ui,sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.jost{font-family:'Jost',sans-serif;}
a{color:inherit;text-decoration:none}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
.eyebrow{
  font-family:'Jost',sans-serif;font-weight:600;font-size:.78rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--sky);
}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--dark);color:#fff;padding:10px 16px;border-radius:0 0 8px 0;z-index:200}
.skip-link:focus{left:0}

/* ---------- Logo ---------- */
.logo{display:flex;align-items:center;gap:12px}
.logo .mark{width:38px;height:38px;flex:none;display:block}
.logo .divider{width:1.5px;height:30px;background:var(--line)}
.logo .word{font-family:'Jost',sans-serif;font-weight:600;font-size:1.32rem;letter-spacing:-.01em;line-height:1;white-space:nowrap}
.logo .word .v{color:var(--sky)}
.logo .word .y{color:var(--ink)}
footer .logo .word .y{color:#fff}

/* ---------- Header ---------- */
header{
  position:sticky;top:0;z-index:60;
  background:var(--header-bg);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px}
.nav-links{display:flex;align-items:center;gap:34px}
.nav-links a{font-size:.94rem;font-weight:500;color:var(--ink-2);transition:color .18s}
.nav-links a:hover{color:var(--ink)}
.nav-links a.active{color:var(--ink)}
.nav-links a.active:not(.btn){position:relative}
.nav-links a.active:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--amber);border-radius:2px}
/* .nav-links a outguns .btn-primary on specificity — pin the CTA text colour */
.nav-links a.btn-primary,.nav-links a.btn-primary:hover{color:#15212B}
.btn{
  font-family:'Jost',sans-serif;font-weight:600;font-size:.95rem;
  display:inline-flex;align-items:center;gap:9px;
  padding:12px 22px;border-radius:100px;border:1.5px solid transparent;
  cursor:pointer;transition:transform .16s,box-shadow .16s,background .16s;
}
.btn-primary{background:var(--amber);color:#15212B}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(247,168,0,.32)}
.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink);transform:translateY(-2px)}
.btn-light{background:#fff;color:#15212B}
.btn-light:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.menu-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px}
.menu-toggle span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0;transition:.25s}

/* ---------- Hero (home) ---------- */
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--paper) 0%,var(--mist) 100%)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:88px 0 96px}
.hero h1{font-weight:600;font-size:clamp(2.5rem,5.2vw,4rem);line-height:1.03;letter-spacing:-.02em}
.hero h1 .accent{color:var(--amber)}
.hero p.lead{font-size:1.2rem;color:var(--ink-2);margin:22px 0 34px;max-width:36ch}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-visual{position:relative;height:400px;display:flex;align-items:center;justify-content:center}

/* signal animation */
.signal{position:relative;width:340px;height:340px}
.signal .core{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:118px;height:118px;border-radius:26px;background:var(--dark);
  display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);z-index:3;
}
.signal .core svg{width:54px;height:54px}
.ring{
  position:absolute;top:50%;left:50%;border-radius:50%;
  border:7px solid;transform:translate(-50%,-50%);
  animation:pulse 3.4s cubic-bezier(.4,0,.2,1) infinite;
}
.ring.r1{width:190px;height:190px;border-color:var(--amber);animation-delay:0s}
.ring.r2{width:250px;height:250px;border-color:var(--sky);animation-delay:.55s}
.ring.r3{width:320px;height:320px;border-color:var(--grey);animation-delay:1.1s}
@keyframes pulse{
  0%{opacity:.9;transform:translate(-50%,-50%) scale(.82)}
  70%{opacity:.18}
  100%{opacity:0;transform:translate(-50%,-50%) scale(1.06)}
}

/* ---------- Sub-page hero (interior pages) ---------- */
.page-hero{background:linear-gradient(180deg,var(--paper) 0%,var(--mist) 100%);border-bottom:1px solid var(--line)}
.page-hero .wrap{padding:72px 24px 60px}
.page-hero h1{font-weight:600;font-size:clamp(2.1rem,4.4vw,3.2rem);line-height:1.05;letter-spacing:-.02em;margin:14px 0 0;max-width:20ch}
.page-hero p{color:var(--ink-2);font-size:1.14rem;margin-top:18px;max-width:56ch}
.crumb{font-size:.85rem;color:var(--grey)}
.crumb a:hover{color:var(--ink-2)}

/* trust strip */
.trust{border-top:1px solid var(--line);background:var(--card)}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:26px 0}
.trust-item{text-align:center;padding:6px}
.trust-item .n{font-family:'Jost',sans-serif;font-weight:700;font-size:1.5rem;color:var(--ink)}
.trust-item .l{font-size:.82rem;color:var(--ink-2);letter-spacing:.02em}

/* ---------- Sections ---------- */
section.block{padding:96px 0}
.sec-head{max-width:560px;margin-bottom:52px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head h2{font-weight:600;font-size:clamp(1.9rem,3.6vw,2.7rem);line-height:1.08;letter-spacing:-.015em;margin:14px 0 0}
.sec-head p{color:var(--ink-2);font-size:1.08rem;margin-top:14px}

/* features */
.features{background:var(--mist)}
.feat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.feat-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.feat{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:26px 22px;
  box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;
}
.feat:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.feat .ic{width:44px;height:44px;border-radius:11px;display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.feat .ic svg{width:23px;height:23px;stroke-width:1.9}
.feat h3{font-weight:600;font-size:1.12rem;margin-bottom:7px}
.feat p{font-size:.93rem;color:var(--ink-2);line-height:1.55}
.ic.a{background:rgba(247,168,0,.14);color:var(--amber-deep)}
.ic.b{background:rgba(102,184,220,.16);color:var(--sky-deep)}
.ic.g{background:var(--ic-g-bg);color:var(--ink)}

/* feature detail rows (features page) */
.feat-rows{display:flex;flex-direction:column;gap:20px}
.feat-row{
  display:grid;grid-template-columns:56px 1fr;gap:22px;align-items:start;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:26px 28px;box-shadow:var(--shadow);
}
.feat-row .ic{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center}
.feat-row .ic svg{width:27px;height:27px;stroke-width:1.9}
.feat-row h3{font-weight:600;font-size:1.22rem;margin-bottom:6px}
.feat-row p{color:var(--ink-2)}
.feat-row .bene{display:inline-block;margin-top:10px;font-size:.86rem;font-weight:500;color:var(--sky-deep);background:var(--sky-tint);padding:4px 12px;border-radius:100px}

/* how it works */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:8px}
.step{position:relative;padding-top:30px}
.step .num{
  font-family:'Jost',sans-serif;font-weight:700;font-size:.95rem;letter-spacing:.14em;
  color:var(--sky);display:block;margin-bottom:16px;
}
.step .bar{height:3px;width:46px;background:var(--amber);border-radius:3px;margin-bottom:20px}
.step h3{font-weight:600;font-size:1.35rem;margin-bottom:10px}
.step p{color:var(--ink-2)}

/* why */
.why{background:var(--dark);color:#fff}
.why .sec-head h2{color:#fff}
.why .eyebrow{color:var(--amber)}
.why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.why-card{
  border:1px solid rgba(255,255,255,.12);border-radius:var(--r);padding:28px;
  background:rgba(255,255,255,.03);transition:background .2s,border-color .2s;
}
.why-card:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.22)}
.why-card h3{font-weight:600;font-size:1.2rem;margin-bottom:9px;display:flex;align-items:center;gap:11px}
.why-card h3 .dot{width:9px;height:9px;border-radius:50%;flex:none}
.why-card p{color:#B9C4CD;font-size:.98rem}

/* faq */
.faq-list{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.faq{border:1px solid var(--line);border-radius:var(--r);background:var(--card);box-shadow:var(--shadow);overflow:hidden}
.faq summary{
  cursor:pointer;list-style:none;padding:22px 26px;font-family:'Jost',sans-serif;
  font-weight:600;font-size:1.08rem;display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary .chev{width:22px;height:22px;flex:none;transition:transform .25s;color:var(--sky)}
.faq[open] summary .chev{transform:rotate(180deg)}
.faq .body{padding:0 26px 24px;color:var(--ink-2)}

/* callout band */
.band{background:var(--sky-tint);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.band .wrap{padding:64px 24px;text-align:center}
.band h2{font-weight:600;font-size:clamp(1.7rem,3.2vw,2.3rem);letter-spacing:-.015em}
.band p{color:var(--ink-2);font-size:1.08rem;margin:14px auto 26px;max-width:52ch}
.band .hero-cta{justify-content:center}

/* CTA / contact */
.contact{background:linear-gradient(180deg,var(--mist),var(--paper))}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.contact h2{font-weight:600;font-size:clamp(1.9rem,3.6vw,2.6rem);line-height:1.08;letter-spacing:-.015em}
.contact .lead{color:var(--ink-2);font-size:1.08rem;margin-top:16px;max-width:40ch}
.callbox{margin-top:32px;display:flex;flex-direction:column;gap:14px}
.callrow{display:flex;align-items:center;gap:14px}
.callrow .cic{width:44px;height:44px;border-radius:11px;background:var(--sky-tint);color:var(--sky-deep);display:flex;align-items:center;justify-content:center;flex:none}
.callrow .cic svg{width:21px;height:21px}
.callrow .lbl{font-size:.8rem;color:var(--ink-2)}
.callrow .val{font-family:'Jost',sans-serif;font-weight:600;font-size:1.15rem}
form.quote{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:30px;box-shadow:var(--shadow)}
form .field{margin-bottom:16px}
form label{display:block;font-size:.85rem;font-weight:500;margin-bottom:6px;color:var(--ink-2)}
form label .req{color:var(--amber)}
form input,form textarea,form select{
  width:100%;font-family:inherit;font-size:.96rem;padding:12px 14px;color:var(--ink);
  border:1.5px solid var(--line);border-radius:10px;background:var(--mist);transition:border-color .18s,background .18s;
}
form input:focus,form textarea:focus,form select:focus{outline:none;border-color:var(--sky);background:var(--card)}
form input::placeholder,form textarea::placeholder{color:var(--grey);opacity:1}
form textarea{resize:vertical;min-height:96px}
form .btn-primary{width:100%;justify-content:center;margin-top:6px}
.formnote{font-size:.78rem;color:var(--grey);margin-top:12px;text-align:center}
/* honeypot — hidden from humans, tempting to bots */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
/* form status messages */
.form-status{padding:14px 16px;border-radius:10px;font-size:.92rem;margin-bottom:16px;display:none}
.form-status.show{display:block}
.form-status.ok{background:rgba(90,180,120,.14);color:var(--ok-fg);border:1px solid rgba(90,180,120,.4)}
.form-status.err{background:rgba(220,90,90,.12);color:var(--err-fg);border:1px solid rgba(220,90,90,.35)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* ---------- Pricing ---------- */
.pricing{background:var(--mist)}
.pricing-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:34px;align-items:start}
.price-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.price-tile{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px 18px;box-shadow:var(--shadow);text-align:center}
.price-tile .amt{font-family:'Jost',sans-serif;font-weight:700;font-size:1.9rem;line-height:1}
.price-tile .amt small{font-size:.82rem;font-weight:500;color:var(--ink-2)}
.price-tile h3{font-weight:600;font-size:1.02rem;margin:10px 0 7px}
.price-tile p{font-size:.85rem;color:var(--ink-2);line-height:1.5}
.price-unl{grid-column:1/-1;display:flex;gap:18px;align-items:center;background:var(--dark);color:#fff;border-radius:var(--r);padding:20px 24px}
.price-unl .amt{font-family:'Jost',sans-serif;font-weight:700;font-size:1.5rem;color:var(--amber);white-space:nowrap;line-height:1.15}
.price-unl .amt small{display:block;font-size:.72rem;font-weight:500;color:#B9C4CD}
.price-unl h3{font-weight:600;font-size:1.05rem;margin-bottom:4px}
.price-unl p{color:#B9C4CD;font-size:.87rem;line-height:1.5}
.price-note{font-size:.82rem;color:var(--ink-2);margin-top:14px}

/* calculator */
.calc{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:var(--shadow)}
.calc h3{font-weight:600;font-size:1.3rem;margin-bottom:6px}
.calc .sub{font-size:.9rem;color:var(--ink-2);margin-bottom:14px}
.calc-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}
.calc-row .lab b{display:block;font-weight:600;font-size:.98rem}
.calc-row .lab span{font-size:.8rem;color:var(--ink-2)}
.stepper{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:100px;overflow:hidden;flex:none;background:var(--card)}
.stepper button{width:38px;height:38px;background:var(--mist);border:0;cursor:pointer;font-size:1.15rem;font-weight:600;color:var(--ink);transition:background .15s;line-height:1}
.stepper button:hover{background:var(--sky-tint)}
.stepper output{width:46px;text-align:center;font-family:'Jost',sans-serif;font-weight:600;font-size:1.05rem}
/* toggle switch */
.switch{position:relative;display:inline-block;width:46px;height:26px;flex:none}
.switch input{opacity:0;width:0;height:0}
.switch .sl{position:absolute;cursor:pointer;inset:0;background:var(--line);border-radius:100px;transition:.2s}
.switch .sl::before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.switch input:checked + .sl{background:var(--amber)}
.switch input:checked + .sl::before{transform:translateX(20px)}
.switch input:focus-visible + .sl{outline:2px solid var(--sky);outline-offset:2px}
.calc-breakdown{margin:16px 0 4px;display:flex;flex-direction:column;gap:6px}
.calc-breakdown .li{display:flex;justify-content:space-between;font-size:.9rem;color:var(--ink-2)}
.calc-breakdown .li b{font-weight:600;color:var(--ink)}
.calc-total{display:flex;justify-content:space-between;align-items:baseline;border-top:2px solid var(--ink);margin-top:10px;padding-top:12px}
.calc-total .t{font-family:'Jost',sans-serif;font-weight:600}
.calc-total .amt{font-family:'Jost',sans-serif;font-weight:700;font-size:1.75rem}
.calc-total .amt small{font-size:.8rem;font-weight:500;color:var(--ink-2)}
.calc-incvat{text-align:right;font-size:.8rem;color:var(--ink-2);margin-top:2px}
.calc-email{display:flex;gap:10px;margin-top:20px}
.calc-email input{flex:1}
.calc-email .btn{white-space:nowrap}
.calc-cta{margin-top:14px;text-align:center}
.calc-cta a{font-family:'Jost',sans-serif;font-weight:600;color:var(--sky-deep);font-size:.95rem}
.calc-cta a:hover{text-decoration:underline}

@media(max-width:900px){
  .pricing-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .price-tiles{grid-template-columns:1fr}
  .price-unl{flex-direction:column;align-items:flex-start;gap:8px}
  .calc-email{flex-direction:column}
}

/* ---------- Signup wizard ---------- */
.wizard{max-width:820px;margin:0 auto}
.wiz-progress{display:flex;gap:8px;margin-bottom:34px}
.wiz-progress .seg{flex:1;height:4px;border-radius:4px;background:var(--line);position:relative;overflow:hidden}
.wiz-progress .seg.done::after,.wiz-progress .seg.now::after{
  content:"";position:absolute;inset:0;background:var(--amber);border-radius:4px;
}
.wiz-progress .seg.now::after{background:var(--sky)}
.wiz-steplabel{font-family:'Jost',sans-serif;font-weight:600;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sky);margin-bottom:8px}
.wiz-panel{display:none;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:var(--shadow)}
.wiz-panel.now{display:block}
.wiz-panel h2{font-weight:600;font-size:1.55rem;letter-spacing:-.01em;margin-bottom:6px}
.wiz-panel .sub{color:var(--ink-2);margin-bottom:24px}
.wiz-nav{display:flex;justify-content:space-between;gap:14px;margin-top:28px}
.wiz-nav .spacer{flex:1}

/* choice cards (radio) */
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.choice{position:relative;display:block;cursor:pointer}
.choice input{position:absolute;opacity:0;pointer-events:none}
.choice .card{
  display:block;
  border:1.5px solid var(--line);border-radius:var(--r);padding:20px;height:100%;
  transition:border-color .18s,background .18s,box-shadow .18s;background:var(--mist);
}
.choice input:checked + .card{border-color:var(--amber);background:var(--card);box-shadow:0 0 0 3px rgba(247,168,0,.18)}
.choice input:focus-visible + .card{outline:2px solid var(--sky);outline-offset:2px}
.choice h4{font-family:'Jost',sans-serif;font-weight:600;font-size:1.05rem;display:flex;align-items:center;gap:9px;margin-bottom:6px}
.choice p{font-size:.88rem;color:var(--ink-2);line-height:1.5}
.choice .tick{width:19px;height:19px;border-radius:50%;border:1.5px solid var(--grey);flex:none;display:flex;align-items:center;justify-content:center}
.choice input:checked + .card .tick{background:var(--amber);border-color:var(--amber)}
.choice input:checked + .card .tick::after{content:"";width:7px;height:7px;border-radius:50%;background:#fff}

/* conditional sub-sections */
.subsection{display:none;margin-top:20px;padding-top:20px;border-top:1px dashed var(--line)}
.subsection.now{display:block}

/* seat rows */
.seat-rows{display:flex;flex-direction:column;gap:12px;margin-bottom:14px}
.seat-row{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) 42px;gap:12px;align-items:end;
  background:var(--mist);border:1px solid var(--line);border-radius:12px;padding:14px;
}
.seat-row label{font-size:.78rem}
.seat-row input,.seat-row select{background:var(--card)}
.seat-row .rm{
  background:none;border:1.5px solid var(--line);border-radius:10px;height:44px;cursor:pointer;
  color:var(--ink-2);font-size:1.1rem;line-height:1;transition:border-color .18s,color .18s;
}
.seat-row .rm:hover{border-color:var(--err-fg);color:var(--err-fg)}
.add-seat{
  font-family:'Jost',sans-serif;font-weight:600;font-size:.92rem;
  background:none;border:1.5px dashed var(--grey);border-radius:12px;
  padding:12px 18px;cursor:pointer;color:var(--ink-2);width:100%;transition:border-color .18s,color .18s;
}
.add-seat:hover{border-color:var(--amber);color:var(--ink)}

/* review summary */
.review dl{display:grid;grid-template-columns:190px 1fr;row-gap:12px;column-gap:18px}
.review dt{font-size:.85rem;font-weight:600;color:var(--ink-2)}
.review dd{font-size:.95rem}
.review .edit-link{font-size:.8rem;color:var(--sky-deep);margin-left:8px;cursor:pointer;background:none;border:none;text-decoration:underline;font-family:inherit}
.review ul{margin:2px 0 0 18px}
.review li{font-size:.92rem;color:var(--ink-2)}

/* success panel */
.wiz-done{text-align:center;padding:26px 10px}
.wiz-done .bigtick{
  width:74px;height:74px;border-radius:50%;background:rgba(90,180,120,.14);
  display:flex;align-items:center;justify-content:center;margin:0 auto 20px;
}
.wiz-done .bigtick svg{width:36px;height:36px;color:var(--ok-fg)}
.wiz-done h2{margin-bottom:10px}
.wiz-done p{color:var(--ink-2);max-width:46ch;margin:0 auto 8px}
.order-ref{font-family:'Jost',sans-serif;font-weight:700;font-size:1.2rem;color:var(--ink);background:var(--sky-tint);display:inline-block;padding:8px 20px;border-radius:100px;margin:12px 0}

@media(max-width:700px){
  .choice-grid{grid-template-columns:1fr}
  .seat-row{grid-template-columns:1fr;gap:10px}
  .seat-row .rm{height:40px}
  .wiz-panel{padding:24px 18px}
  .review dl{grid-template-columns:1fr;row-gap:2px}
  .review dd{margin-bottom:10px}
}

/* footer */
footer{background:var(--dark);color:#B9C4CD;padding:56px 0 30px}
.foot-top{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;flex-wrap:wrap;padding-bottom:34px;border-bottom:1px solid rgba(255,255,255,.1)}
.foot-brand{max-width:320px}
.foot-brand p{font-size:.9rem;margin-top:16px;color:var(--grey)}
.foot-links{display:flex;gap:40px;flex-wrap:wrap}
.foot-col h4{font-family:'Jost',sans-serif;font-weight:600;color:#fff;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px}
.foot-col a{display:block;font-size:.92rem;margin-bottom:9px;transition:color .18s}
.foot-col a:hover{color:#fff}
.foot-col .static{color:var(--grey);font-size:.9rem;margin-bottom:9px;line-height:1.5}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-top:24px;font-size:.84rem}
.foot-bottom a:hover{color:#fff}
.foot-bottom .parent{color:var(--grey)}
.foot-bottom .parent b{color:#D7DDE2;font-weight:600}

/* reveal */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* ---------- Responsive ---------- */
@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:20px;padding:56px 0 64px}
  .hero-visual{height:320px;order:-1}
  .feat-grid,.feat-grid.cols-3{grid-template-columns:repeat(2,1fr)}
  .trust-grid{grid-template-columns:repeat(2,1fr);gap:22px}
  .steps{grid-template-columns:1fr;gap:34px}
  .why-grid{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr;gap:36px}
  .field-row{grid-template-columns:1fr}
  .nav-links{
    position:fixed;inset:72px 0 auto 0;flex-direction:column;gap:0;
    background:var(--card);border-bottom:1px solid var(--line);padding:8px 0;
    transform:translateY(-140%);transition:transform .3s;box-shadow:var(--shadow-lg);
  }
  .nav-links.open{transform:none}
  .nav-links a{padding:15px 24px;width:100%}
  .nav-links a.active:not(.btn)::after{display:none}
  .nav-links .btn{margin:12px 24px;justify-content:center}
  .menu-toggle{display:block}
  section.block{padding:66px 0}
}
@media(max-width:520px){
  .feat-grid,.feat-grid.cols-3{grid-template-columns:1fr}
  .trust-grid{grid-template-columns:repeat(2,1fr)}
  .feat-row{grid-template-columns:1fr;gap:14px}
}
@media(prefers-reduced-motion:reduce){
  .ring{animation:none;opacity:.5}
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* ---------- Cookie consent banner ---------- */
.consent-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:100;
  background:var(--card);border-top:1px solid var(--line);
  box-shadow:0 -8px 30px rgba(21,33,43,.14);padding:16px 0;
}
.consent-bar .wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.consent-bar p{flex:1;min-width:260px;margin:0;font-size:.9rem;color:var(--ink-2)}
.consent-bar a{color:var(--sky-deep);text-decoration:underline}
.consent-actions{display:flex;gap:10px;flex-wrap:wrap}
.consent-bar .btn{padding:10px 18px;font-size:.9rem}
@media(max-width:560px){
  .consent-actions{width:100%}
  .consent-bar .btn{flex:1;justify-content:center}
}

/* ---------- Theme toggle (in header, next to the burger) ---------- */
.nav-links{margin-left:auto}
.nav-actions{display:flex;align-items:center;gap:10px;margin-left:26px}
.theme-toggle{
  display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:50%;border:1.5px solid var(--line);
  background:transparent;color:var(--ink-2);cursor:pointer;
  transition:color .18s,border-color .18s,transform .16s;
}
.theme-toggle:hover{color:var(--ink);border-color:var(--ink);transform:translateY(-1px)}
.theme-toggle .ico{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle .th-sun{display:none}
.theme-toggle .th-moon{display:block}
:root[data-theme="dark"] .theme-toggle .th-sun{display:block}
:root[data-theme="dark"] .theme-toggle .th-moon{display:none}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .theme-toggle .th-sun{display:block}
  :root:not([data-theme="light"]) .theme-toggle .th-moon{display:none}
}
