/* ==========================================================================
   SafeZone Security — design system (single stylesheet)
   Foundation: dark navy. Identity: SafeZone blue. One accent: safety amber.
   Mobile-first. WCAG 2.2 AA. No external deps. Logical props for future RTL.
   ========================================================================== */

/* ---- 1. Tokens ---------------------------------------------------------- */
:root{
  --sz-navy-900:#0b1220; --sz-navy-800:#0f1a2e; --sz-navy-700:#152339; --sz-navy-600:#1d2f4a;
  --sz-line:#27384f;
  --sz-ink:#eef3f9; --sz-ink-soft:#b9c6d6; --sz-ink-muted:#8194a8;
  --sz-blue:#3b9eff; --sz-blue-strong:#1f6fd6; --sz-blue-050:#eaf3ff;
  --sz-amber:#f5b301; --sz-amber-strong:#d99a00; --sz-on-amber:#0b1220;
  --sz-paper:#f6f8fb; --sz-paper-2:#ffffff; --sz-paper-line:#e2e8f0;
  --sz-paper-ink:#0f1d30; --sz-paper-ink-soft:#46566b;
  --sz-success:#1f9d6b; --sz-danger:#d64545;

  --sz-font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;

  --sz-r-sm:8px; --sz-r:12px; --sz-r-lg:16px; --sz-r-chip:999px;
  --sz-shadow-1:0 1px 2px rgba(3,10,22,.4);
  --sz-shadow-2:0 8px 24px rgba(3,10,22,.35);

  --sz-w-content:1200px; --sz-w-wide:1320px; --sz-w-prose:720px;
  --sz-gutter:clamp(1rem,4vw,2rem);
  --sz-section:clamp(3.5rem,7vw,6rem);

  --sz-ease:cubic-bezier(.22,.61,.36,1);
  --sz-t:180ms var(--sz-ease);
}

/* ---- 2. Reset / base ---------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;font-family:var(--sz-font);font-size:1.0625rem;line-height:1.65;
  color:var(--sz-ink);background:var(--sz-navy-900);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img,svg,video{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{margin:0 0 .5em;line-height:1.15;font-weight:800;letter-spacing:-.02em}
h1{font-size:clamp(2.4rem,5.2vw,3.6rem)}
h2{font-size:clamp(2rem,4vw,2.85rem)}
h3{font-size:clamp(1.35rem,2vw,1.6rem);font-weight:700}
h4{font-size:1.125rem;font-weight:700}
p{margin:0 0 1rem}
a{color:var(--sz-blue);text-underline-offset:2px}
a:hover{text-decoration:none}
ul,ol{margin:0 0 1rem;padding-inline-start:1.25rem}
strong{font-weight:700}
:focus-visible{outline:3px solid var(--sz-amber);outline-offset:2px;border-radius:4px}
hr{border:0;border-top:1px solid var(--sz-line);margin:2rem 0}

/* ---- 3. Layout ---------------------------------------------------------- */
.sz-container{width:100%;max-width:var(--sz-w-content);margin-inline:auto;padding-inline:var(--sz-gutter)}
.sz-container--wide{max-width:var(--sz-w-wide)}
.sz-prose{max-width:var(--sz-w-prose);margin-inline:auto}
.sz-section{padding-block:var(--sz-section)}
.sz-section--tight{padding-block:clamp(2.5rem,5vw,3.5rem)}
.sz-section--paper{background:var(--sz-paper);color:var(--sz-paper-ink)}
.sz-section--paper h1,.sz-section--paper h2,.sz-section--paper h3,.sz-section--paper h4{color:var(--sz-paper-ink)}
.sz-section--paper a{color:var(--sz-blue-strong)}
.sz-section--navy-800{background:var(--sz-navy-800)}
.sz-stack>*+*{margin-block-start:1rem}
.sz-grid{display:grid;gap:clamp(1rem,2.5vw,1.75rem)}
.sz-grid--2{grid-template-columns:1fr}
.sz-grid--3{grid-template-columns:1fr}
.sz-grid--4{grid-template-columns:1fr}
.sz-eyebrow{display:inline-block;font-size:.8125rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--sz-blue);margin-bottom:.6rem}
.sz-section--paper .sz-eyebrow{color:var(--sz-blue-strong)}
.sz-lead{font-size:clamp(1.125rem,1.6vw,1.3rem);color:var(--sz-ink-soft)}
.sz-section--paper .sz-lead{color:var(--sz-paper-ink-soft)}
.sz-center{text-align:center}
.sz-measure{max-width:62ch}

/* ---- 4. Buttons --------------------------------------------------------- */
.sz-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font:inherit;font-weight:700;line-height:1.1;text-decoration:none;cursor:pointer;
  padding:.85rem 1.4rem;min-height:48px;border-radius:var(--sz-r);border:2px solid transparent;
  transition:background var(--sz-t),border-color var(--sz-t),transform var(--sz-t);
}
.sz-btn--lg{padding:1.05rem 1.8rem;font-size:1.0625rem;min-height:54px}
.sz-btn--block{display:flex;width:100%}
.sz-btn--primary{background:var(--sz-amber);color:var(--sz-on-amber);border-color:var(--sz-amber)}
.sz-btn--primary:hover{background:var(--sz-amber-strong);border-color:var(--sz-amber-strong)}
.sz-btn--secondary{background:transparent;color:var(--sz-ink);border-color:var(--sz-blue)}
.sz-btn--secondary:hover{background:rgba(59,158,255,.12)}
.sz-section--paper .sz-btn--secondary{color:var(--sz-blue-strong);border-color:var(--sz-blue-strong)}
.sz-section--paper .sz-btn--secondary:hover{background:var(--sz-blue-050)}
.sz-btn--call{background:transparent;color:var(--sz-ink);border-color:var(--sz-line)}
.sz-btn--call:hover{border-color:var(--sz-blue)}
.sz-btn--ghost{background:transparent;color:var(--sz-blue);border-color:transparent;padding-inline:.4rem}
.sz-btn--ghost:hover{text-decoration:underline}
@media (prefers-reduced-motion:no-preference){.sz-btn:active{transform:translateY(1px)}}

/* ---- 5. Promo bar ------------------------------------------------------- */
.sz-promo-bar{
  background:var(--sz-amber);color:var(--sz-on-amber);
  font-weight:600;font-size:.95rem;text-align:center;
  padding:.55rem var(--sz-gutter);
}
.sz-promo-bar a{color:var(--sz-on-amber);font-weight:800;text-underline-offset:3px}
.sz-promo-bar__inner{max-width:var(--sz-w-wide);margin-inline:auto;display:flex;gap:.4rem .9rem;align-items:center;justify-content:center;flex-wrap:wrap}
.sz-promo-bar__badge{display:inline-flex;align-items:center;gap:.35rem;font-weight:800}
.sz-promo-bar--expired{background:var(--sz-navy-700);color:var(--sz-ink-soft)}
.sz-promo-bar--expired a{color:var(--sz-blue)}

/* ---- 6. Header / nav ---------------------------------------------------- */
.sz-skip-link{position:absolute;top:-3rem;left:.5rem;z-index:1000;background:var(--sz-amber);color:var(--sz-on-amber);padding:.6rem 1rem;border-radius:0 0 8px 8px;font-weight:700;transition:top var(--sz-t)}
.sz-skip-link:focus{top:0}
.sz-header{position:sticky;top:0;z-index:60;background:rgba(11,18,32,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--sz-line)}
.sz-header__inner{display:flex;align-items:center;gap:.6rem;min-height:68px;max-width:var(--sz-w-wide);margin-inline:auto;padding-inline:var(--sz-gutter)}
.sz-brand{display:inline-flex;align-items:center;gap:.55rem;font-weight:800;font-size:1.25rem;color:var(--sz-ink);text-decoration:none;letter-spacing:-.02em}
.sz-brand__mark{width:30px;height:30px;flex:none}
.sz-nav{display:none}
.sz-nav__list{display:flex;gap:.2rem;list-style:none;margin:0;padding:0}
.sz-nav__link{display:inline-block;white-space:nowrap;color:var(--sz-ink-soft);text-decoration:none;font-weight:600;font-size:.95rem;padding:.55rem .55rem;border-radius:8px}
.sz-nav__link:hover{color:var(--sz-ink);background:rgba(255,255,255,.04)}
.sz-nav__link[aria-current="page"]{color:var(--sz-ink);box-shadow:inset 0 -2px 0 var(--sz-amber)}
.sz-header__cta{margin-inline-start:auto;display:none;align-items:center;gap:.5rem}
.sz-header__cta .sz-btn{padding:.6rem 1rem;min-height:44px;font-size:.95rem;white-space:nowrap}
.sz-header__call-text{display:none;white-space:nowrap}
.sz-nav-toggle{margin-inline-start:auto;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;background:transparent;border:1px solid var(--sz-line);border-radius:10px;color:var(--sz-ink);cursor:pointer}
.sz-nav-toggle svg{width:22px;height:22px}
/* mobile drawer */
/* drawer sized with viewport units: the header's backdrop-filter makes it the
   containing block for fixed descendants, so bottom:0 would collapse — use dvh height. */
.sz-nav--open{display:block;position:fixed;top:68px;left:0;right:0;height:calc(100vh - 68px);height:calc(100dvh - 68px);background:var(--sz-navy-900);border-top:1px solid var(--sz-line);padding:1rem var(--sz-gutter);overflow:auto;z-index:55}
.sz-nav--open .sz-nav__list{flex-direction:column;gap:.15rem}
.sz-nav--open .sz-nav__link{font-size:1.1rem;padding:.85rem .6rem;border-bottom:1px solid var(--sz-line)}
body.sz-nav-lock{overflow:hidden}

/* ---- 7. Mobile sticky CTA ---------------------------------------------- */
.sz-sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:1fr 1fr;gap:.5rem;padding:.55rem .6rem calc(.55rem + env(safe-area-inset-bottom));background:rgba(11,18,32,.96);border-top:1px solid var(--sz-line);backdrop-filter:blur(8px)}
.sz-sticky-cta .sz-btn{min-height:50px}
.sz-has-sticky{padding-bottom:84px}

/* ---- 8. Hero ------------------------------------------------------------ */
.sz-hero{position:relative;background:linear-gradient(180deg,var(--sz-navy-800),var(--sz-navy-900));border-bottom:1px solid var(--sz-line)}
.sz-hero__grid{display:grid;gap:clamp(1.5rem,4vw,3rem);align-items:center;padding-block:clamp(2.5rem,6vw,4.5rem)}
.sz-hero__promo{display:inline-flex;align-items:center;gap:.5rem;background:rgba(245,179,1,.12);border:1px solid rgba(245,179,1,.4);color:var(--sz-amber);font-weight:700;font-size:.9rem;padding:.4rem .8rem;border-radius:var(--sz-r-chip);margin-bottom:1rem}
.sz-hero h1{margin-bottom:.6rem}
.sz-hero__sub{font-size:clamp(1.1rem,1.7vw,1.3rem);color:var(--sz-ink-soft);max-width:34ch}
.sz-hero__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}
.sz-hero__media{position:relative;border-radius:var(--sz-r-lg);overflow:hidden;border:1px solid var(--sz-line);box-shadow:var(--sz-shadow-2)}
.sz-hero__media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.sz-hero__caption{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(0deg,rgba(11,18,32,.85),transparent);color:var(--sz-ink-soft);font-size:.85rem;padding:1.5rem .9rem .7rem}

/* ---- 9. Trust strip ----------------------------------------------------- */
.sz-trust{border-block:1px solid var(--sz-line);background:var(--sz-navy-800)}
.sz-trust__list{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.25rem;list-style:none;margin:0;padding:1.25rem 0}
.sz-trust__item{display:flex;align-items:center;gap:.6rem;color:var(--sz-ink-soft);font-weight:600;font-size:.95rem}
.sz-trust__item svg{width:22px;height:22px;color:var(--sz-blue);flex:none}

/* ---- 10. Pathways (residential / commercial) --------------------------- */
.sz-pathways{display:grid;gap:clamp(1rem,2.5vw,1.75rem)}
.sz-path{position:relative;border:1px solid var(--sz-line);border-radius:var(--sz-r-lg);overflow:hidden;background:var(--sz-navy-700);display:flex;flex-direction:column}
.sz-path img{aspect-ratio:16/10;object-fit:cover;width:100%}
.sz-path__body{padding:1.4rem}
.sz-path__body h3{margin-bottom:.4rem;color:var(--sz-ink)}
.sz-section--paper .sz-path__body h3{color:var(--sz-ink)}
.sz-path__body p{color:var(--sz-ink-soft)}

/* ---- 10b. Modern scene-photo treatment (NOT product/price images) -------- */
/* Unifies the real install/scene photos into one cohesive, premium brand look:
   a consistent grade, a subtle navy→blue wash, a refined frame, and a gentle hover zoom. */
.sz-photo{position:relative;border-color:rgba(59,158,255,.22);box-shadow:0 18px 44px rgba(3,10,22,.5)}
.sz-photo img{filter:saturate(1.07) contrast(1.06) brightness(.97);transition:transform .55s var(--sz-ease)}
.sz-photo::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:inherit;
  background:linear-gradient(150deg,rgba(11,18,32,.30) 0%,rgba(59,158,255,.10) 48%,rgba(11,18,32,.46) 100%)}
.sz-photo::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:inherit;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), inset 0 0 0 1px rgba(59,158,255,.12)}
.sz-photo .sz-hero__caption{z-index:3}
.sz-path img{filter:saturate(1.07) contrast(1.06) brightness(.97);transition:transform .55s var(--sz-ease)}
.sz-path{position:relative}
.sz-path::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(59,158,255,.08) 0%,transparent 38%);mix-blend-mode:screen}
.sz-path__body{position:relative;z-index:2}
@media (prefers-reduced-motion:no-preference){
  .sz-photo:hover img,.sz-path:hover img{transform:scale(1.045)}
}

/* ---- 11. Package cards -------------------------------------------------- */
.sz-pkg-grid{display:grid;gap:clamp(1rem,2.5vw,1.5rem);grid-template-columns:1fr}
.sz-pkg-card{display:flex;flex-direction:column;background:var(--sz-navy-700);border:1px solid var(--sz-line);border-radius:var(--sz-r-lg);overflow:hidden;transition:transform var(--sz-t),border-color var(--sz-t),box-shadow var(--sz-t)}
@media (prefers-reduced-motion:no-preference){.sz-pkg-card:hover{transform:translateY(-4px);border-color:var(--sz-blue);box-shadow:var(--sz-shadow-2)}}
.sz-pkg-card--featured{border-color:var(--sz-amber)}
.sz-pkg-card__media{position:relative;background:var(--sz-navy-800);aspect-ratio:4/3}
.sz-pkg-card__media img{width:100%;height:100%;object-fit:contain;padding:1rem}
.sz-pkg-card__badge{position:absolute;top:.7rem;inset-inline-start:.7rem;display:inline-flex;align-items:center;gap:.3rem;background:var(--sz-amber);color:var(--sz-on-amber);font-weight:800;font-size:.75rem;letter-spacing:.02em;padding:.3rem .6rem;border-radius:var(--sz-r-chip)}
.sz-pkg-card__free{position:absolute;top:.7rem;inset-inline-end:.7rem;background:rgba(11,18,32,.85);color:var(--sz-amber);border:1px solid rgba(245,179,1,.45);font-weight:700;font-size:.72rem;padding:.3rem .55rem;border-radius:var(--sz-r-chip)}
.sz-pkg-card__body{padding:1.25rem;display:flex;flex-direction:column;flex:1}
/* card internals are self-contained: never inherit a parent section's (e.g. paper) heading/link colors */
.sz-pkg-card__for{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--sz-blue)}
.sz-pkg-card h3{font-size:1.2rem;margin:.3rem 0 .5rem;color:var(--sz-ink)}
.sz-pkg-card__subtitle{color:var(--sz-ink-soft);font-size:.95rem;margin-bottom:.9rem}
.sz-section--paper .sz-pkg-card h3{color:var(--sz-ink)}
.sz-pkg-card .sz-btn--secondary{color:var(--sz-ink);border-color:var(--sz-blue)}
.sz-pkg-card .sz-btn--secondary:hover{background:rgba(59,158,255,.12)}
.sz-pkg-card__offer svg{width:16px;height:16px;flex:none}
.sz-pkg-card__specs{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:.4rem}
.sz-pkg-card__spec{display:flex;gap:.5rem;align-items:flex-start;font-size:.92rem;color:var(--sz-ink-soft)}
.sz-pkg-card__spec svg{width:18px;height:18px;color:var(--sz-success);flex:none;margin-top:2px}
.sz-pkg-card__price{margin-top:auto;padding-top:.5rem;border-top:1px solid var(--sz-line)}
.sz-pkg-card__price b{font-size:1.5rem;color:var(--sz-ink)}
.sz-pkg-card__price small{display:block;color:var(--sz-ink-muted);font-size:.82rem}
.sz-pkg-card__price--quote b{font-size:1.15rem;color:var(--sz-amber)}
.sz-pkg-card__actions{display:grid;gap:.5rem;margin-top:1rem}
.sz-pkg-card__offer{display:flex;gap:.4rem;align-items:center;color:var(--sz-amber);font-weight:700;font-size:.85rem;margin-top:.7rem}

/* ---- 12. Steps ---------------------------------------------------------- */
.sz-steps{counter-reset:step;display:grid;gap:1.25rem}
.sz-step{position:relative;background:var(--sz-navy-700);border:1px solid var(--sz-line);border-radius:var(--sz-r-lg);padding:1.4rem 1.4rem 1.4rem 4rem}
.sz-step::before{counter-increment:step;content:counter(step);position:absolute;left:1.1rem;top:1.2rem;width:2rem;height:2rem;display:grid;place-items:center;background:var(--sz-amber);color:var(--sz-on-amber);font-weight:800;border-radius:50%}
.sz-step h3{font-size:1.15rem;margin-bottom:.3rem}
.sz-step p{color:var(--sz-ink-soft);margin:0}

/* ---- 13. FAQ ------------------------------------------------------------ */
.sz-faq{display:grid;gap:.6rem;max-width:var(--sz-w-prose);margin-inline:auto}
.sz-faq__item{border:1px solid var(--sz-line);border-radius:var(--sz-r);background:var(--sz-navy-700);overflow:hidden}
.sz-faq__q{width:100%;text-align:left;background:transparent;border:0;color:var(--sz-ink);font:inherit;font-weight:700;font-size:1.05rem;padding:1.1rem 3rem 1.1rem 1.1rem;cursor:pointer;position:relative}
.sz-faq__q::after{content:"";position:absolute;right:1.1rem;top:50%;width:12px;height:12px;border-right:2px solid var(--sz-blue);border-bottom:2px solid var(--sz-blue);transform:translateY(-65%) rotate(45deg);transition:transform var(--sz-t)}
.sz-faq__q[aria-expanded="true"]::after{transform:translateY(-35%) rotate(225deg)}
.sz-faq__a{padding:0 1.1rem;max-height:0;overflow:hidden;color:var(--sz-ink-soft);transition:max-height var(--sz-t),padding var(--sz-t)}
.sz-faq__a[hidden]{display:block}
.sz-faq__item.is-open .sz-faq__a{max-height:600px;padding:0 1.1rem 1.1rem}
.sz-section--paper .sz-faq__item{background:var(--sz-paper-2);border-color:var(--sz-paper-line)}
.sz-section--paper .sz-faq__q{color:var(--sz-paper-ink)}
.sz-section--paper .sz-faq__a{color:var(--sz-paper-ink-soft)}

/* ---- 14. CTA band ------------------------------------------------------- */
.sz-cta-band{background:linear-gradient(135deg,var(--sz-navy-800),var(--sz-navy-700));border:1px solid var(--sz-line);border-radius:var(--sz-r-lg);padding:clamp(1.75rem,4vw,3rem);text-align:center}
.sz-cta-band h2{margin-bottom:.5rem}
.sz-cta-band p{color:var(--sz-ink-soft);max-width:52ch;margin-inline:auto}
.sz-cta-band__actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;margin-top:1.5rem}

/* ---- 15. Footer --------------------------------------------------------- */
.sz-footer{background:var(--sz-navy-800);border-top:1px solid var(--sz-line);padding-block:clamp(2.5rem,5vw,3.5rem) 1.5rem}
.sz-footer__grid{display:grid;gap:2rem;grid-template-columns:1fr}
.sz-footer h4{color:var(--sz-ink);font-size:.95rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.8rem}
.sz-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.sz-footer a{color:var(--sz-ink-soft);text-decoration:none}
.sz-footer a:hover{color:var(--sz-ink);text-decoration:underline}
.sz-footer__nap{color:var(--sz-ink-soft);font-style:normal;line-height:1.7}
.sz-footer__nap a{color:var(--sz-ink)}
.sz-footer__bottom{border-top:1px solid var(--sz-line);margin-top:2rem;padding-top:1.25rem;display:flex;gap:1rem;flex-wrap:wrap;justify-content:space-between;color:var(--sz-ink-muted);font-size:.85rem}
.sz-footer__social{display:flex;gap:.6rem}
.sz-footer__social a{display:inline-grid;place-items:center;width:40px;height:40px;border:1px solid var(--sz-line);border-radius:10px}
.sz-footer__social svg{width:20px;height:20px}

/* ---- 16. Breadcrumbs ---------------------------------------------------- */
.sz-breadcrumbs{font-size:.85rem;color:var(--sz-ink-muted);padding-block:.9rem}
.sz-breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:0}
.sz-breadcrumbs li::after{content:"/";margin-inline-start:.4rem;color:var(--sz-line)}
.sz-breadcrumbs li:last-child::after{content:""}
.sz-breadcrumbs a{color:var(--sz-ink-soft);text-decoration:none}
.sz-breadcrumbs [aria-current="page"]{color:var(--sz-ink)}
.sz-section--paper .sz-breadcrumbs a{color:var(--sz-paper-ink-soft)}

/* ---- 17. Chips / included ---------------------------------------------- */
.sz-chip{display:inline-flex;align-items:center;gap:.35rem;background:rgba(59,158,255,.12);color:var(--sz-blue);border:1px solid rgba(59,158,255,.3);font-size:.8rem;font-weight:600;padding:.25rem .6rem;border-radius:var(--sz-r-chip)}
.sz-included,.sz-excluded{display:flex;gap:.55rem;align-items:flex-start;margin:.35rem 0}
.sz-included svg{color:var(--sz-success)}.sz-excluded svg{color:var(--sz-ink-muted)}
.sz-included svg,.sz-excluded svg{width:20px;height:20px;flex:none;margin-top:2px}

/* ---- 17b. Spec table (package pages) ----------------------------------- */
.sz-spec-table{width:100%;border-collapse:collapse}
.sz-spec-table th,.sz-spec-table td{text-align:left;padding:.7rem .25rem;border-bottom:1px solid var(--sz-paper-line);vertical-align:top;font-size:.95rem}
.sz-section--paper .sz-spec-table th{color:var(--sz-paper-ink);width:42%;font-weight:700}
.sz-section--paper .sz-spec-table td{color:var(--sz-paper-ink-soft)}
.sz-spec-table th{color:var(--sz-ink);width:42%;font-weight:700;border-color:var(--sz-line)}
.sz-spec-table td{color:var(--sz-ink-soft);border-color:var(--sz-line)}

/* ---- 18. Quote form ----------------------------------------------------- */
.sz-quote-hero{background:linear-gradient(180deg,var(--sz-navy-800),var(--sz-navy-900));border-block:1px solid var(--sz-line)}
.sz-quote-hero__grid{display:grid;gap:clamp(1.5rem,4vw,3rem);align-items:center;padding-block:clamp(2rem,5vw,3.75rem)}
.sz-quote-hero__copy h1{margin-bottom:.75rem}
.sz-quote-hero__copy .sz-lead{max-width:38rem;color:var(--sz-ink-soft)}
.sz-quote-hero .sz-hero__media{min-height:240px}
.sz-quote-hero .sz-hero__media img{display:block;aspect-ratio:16/9;object-fit:cover}
.sz-quote{max-width:760px;margin-inline:auto}
.sz-quote__progress{display:flex;gap:.4rem;list-style:none;margin:0 0 1.5rem;padding:0;counter-reset:qs}
.sz-quote__progress li{flex:1;font-size:.78rem;color:var(--sz-ink-muted);text-align:center;padding-top:.6rem;border-top:3px solid var(--sz-line)}
.sz-quote__progress li[aria-current="step"]{color:var(--sz-amber);border-top-color:var(--sz-amber)}
.sz-quote__progress li.is-done{color:var(--sz-blue);border-top-color:var(--sz-blue)}
.sz-quote__step{background:var(--sz-navy-700);border:1px solid var(--sz-line);border-radius:var(--sz-r-lg);padding:clamp(1.25rem,3vw,2rem)}
.sz-quote__step h2{font-size:1.4rem}
.sz-quote__nav{display:flex;justify-content:space-between;gap:.75rem;margin-top:1.5rem}
.sz-field{margin-bottom:1.1rem}
.sz-field label,.sz-field legend{display:block;font-weight:600;margin-bottom:.4rem;color:var(--sz-ink)}
.sz-field .sz-hint{font-weight:400;color:var(--sz-ink-muted);font-size:.85rem}
.sz-field input[type=text],.sz-field input[type=tel],.sz-field input[type=email],.sz-field input[type=number],.sz-field input[type=date],.sz-field select,.sz-field textarea{
  width:100%;font:inherit;color:var(--sz-ink);background:var(--sz-navy-900);
  border:1px solid var(--sz-line);border-radius:var(--sz-r);padding:.75rem .85rem;min-height:48px;
}
.sz-field textarea{min-height:110px;resize:vertical}
.sz-field input:focus,.sz-field select:focus,.sz-field textarea:focus{border-color:var(--sz-blue);outline:3px solid rgba(59,158,255,.35);outline-offset:0}
.sz-field input[aria-invalid=true],.sz-field select[aria-invalid=true],.sz-field textarea[aria-invalid=true]{border-color:var(--sz-danger)}
.sz-field__error{display:block;color:#ff9b9b;font-size:.85rem;margin-top:.35rem}
.sz-field__error::before{content:"⚠ "}
.sz-options{display:grid;gap:.6rem;grid-template-columns:1fr 1fr;border:0;margin:0;padding:0}
.sz-option{position:relative}
.sz-option input{position:absolute;opacity:0;inset:0;cursor:pointer}
.sz-option span{display:flex;align-items:center;gap:.5rem;min-height:48px;padding:.6rem .8rem;border:1px solid var(--sz-line);border-radius:var(--sz-r);background:var(--sz-navy-900);color:var(--sz-ink-soft);font-weight:600}
.sz-option input:checked+span{border-color:var(--sz-amber);color:var(--sz-ink);background:rgba(245,179,1,.08)}
.sz-option input:focus-visible+span{outline:3px solid var(--sz-amber);outline-offset:2px}
.sz-consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.92rem;color:var(--sz-ink-soft)}
.sz-consent input{margin-top:.25rem;width:20px;height:20px;flex:none}
.sz-quote__eligible{display:flex;gap:.6rem;background:rgba(245,179,1,.1);border:1px solid rgba(245,179,1,.4);border-radius:var(--sz-r);padding:.8rem 1rem;color:var(--sz-amber);font-weight:600}
.sz-honeypot{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* ---- 19. Notice / alert ------------------------------------------------- */
.sz-notice{border:1px solid var(--sz-line);border-left:4px solid var(--sz-amber);background:var(--sz-navy-700);border-radius:var(--sz-r);padding:1rem 1.1rem;color:var(--sz-ink-soft)}
.sz-notice--error{border-left-color:var(--sz-danger)}
.sz-notice--draft{border-left-color:var(--sz-blue);font-size:.9rem}

/* ---- 20. Utilities ------------------------------------------------------ */
.sz-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.sz-mt-0{margin-top:0}.sz-mb-0{margin-bottom:0}
.sz-flex{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}

/* ---- 21. Responsive ----------------------------------------------------- */
@media (min-width:48em){
  .sz-grid--2{grid-template-columns:repeat(2,1fr)}
  .sz-grid--3{grid-template-columns:repeat(2,1fr)}
  .sz-grid--4{grid-template-columns:repeat(2,1fr)}
  .sz-pathways{grid-template-columns:repeat(2,1fr)}
  .sz-pkg-grid{grid-template-columns:repeat(2,1fr)}
  .sz-trust__list{grid-template-columns:repeat(4,1fr)}
  .sz-steps{grid-template-columns:repeat(3,1fr)}
  .sz-footer__grid{grid-template-columns:1.4fr 1fr 1fr 1fr}
  .sz-hero__grid{grid-template-columns:1.05fr .95fr}
  .sz-quote-hero__grid{grid-template-columns:1.05fr .95fr}
}
@media (min-width:64em){
  .sz-nav{display:block}
  .sz-nav-toggle{display:none}
  .sz-sticky-cta{display:none}
  .sz-has-sticky{padding-bottom:0}
  .sz-header__cta{display:flex}
  .sz-nav__link{font-size:.9rem;padding:.5rem .45rem}
  .sz-grid--3{grid-template-columns:repeat(3,1fr)}
  .sz-grid--4{grid-template-columns:repeat(4,1fr)}
  .sz-pkg-grid{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:86em){
  .sz-header__call-text{display:inline}
  .sz-nav__link{font-size:.95rem;padding:.55rem .55rem}
}
@media (min-width:90em){
  .sz-pkg-grid--4{grid-template-columns:repeat(4,1fr)}
}

/* ---- 22. Print ---------------------------------------------------------- */
@media print{.sz-promo-bar,.sz-sticky-cta,.sz-nav-toggle,.sz-header__cta{display:none}body{background:#fff;color:#000}}
