/* ============================================================
   VANTANO — direction C, "Three Screens" — shared stylesheet
   Palette: Chalk / Paper / Ink / Signal Red / Lift Blue / Screen Green
   Display: Fredoka   Body: IBM Plex Sans
   Extracted from concepts/c-three-screens/index.html and extended
   to the interior pages (features, pricing, installations, contact,
   legal, 404) per the design plan.
   ============================================================ */

:root{
  /* palette — the three saturated values are the logo mark's own */
  --chalk:#EFF1EC;
  --paper:#FFFFFF;
  --ink:#141B22;
  --red:#D60000;
  --blue:#2183B4;
  --green:#91B038;

  /* derived, for text-safe contrast only */
  --blue-deep:#17607F;
  --green-deep:#4E6A12;
  --red-deep:#A50B0B;
  --slate:#5A6670;
  --rule:#D7DBD3;
  --ink-soft:rgba(239,241,236,.74);
  --ink-hair:rgba(239,241,236,.18);

  --font-display:'Fredoka','Trebuchet MS','Avenir Next','Segoe UI',system-ui,sans-serif;
  --font-body:'IBM Plex Sans','Segoe UI','Helvetica Neue',Arial,sans-serif;

  --wrap:1220px;
  --pad:clamp(20px,4vw,44px);
  --band:clamp(60px,7.5vw,108px);
}

*,*::before,*::after{box-sizing:border-box}

/* mobile-safe root: overflow-x hidden is a safety net, not the fix */
html,body{max-width:100%;overflow-x:hidden}

body{
  margin:0;
  background:var(--chalk);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:clamp(1rem,.97rem + .18vw,1.0625rem);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img{max-width:100%;display:block}
a{color:inherit}

h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;margin:0;text-wrap:balance;letter-spacing:-.015em;line-height:1.06;overflow-wrap:break-word;word-break:normal}
p{margin:0;overflow-wrap:break-word}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}
.band{padding-block:var(--band)}

.eyebrow{
  font-family:var(--font-body);font-weight:600;font-size:.72rem;
  letter-spacing:.17em;text-transform:uppercase;margin:0 0 18px;
  display:flex;align-items:center;gap:10px;
}
.eyebrow::before{content:"";width:20px;height:13px;border-radius:4px;background:currentColor;flex:none}

.h-xl{font-size:clamp(1.72rem,1.05rem + 3.4vw,4.5rem);line-height:1.02;letter-spacing:-.024em}
.h-lg{font-size:clamp(1.8rem,1.2rem + 2.5vw,3.05rem);line-height:1.05;letter-spacing:-.02em}
.h-md{font-size:clamp(1.32rem,1.12rem + .8vw,1.65rem);line-height:1.15}

.lede{font-size:clamp(1.06rem,1rem + .35vw,1.22rem);line-height:1.6;max-width:62ch}
.prose{text-align:justify;text-justify:inter-word;hyphens:auto;max-width:64ch}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:var(--font-display);font-weight:600;font-size:1.02rem;
  padding:.86em 1.5em;border-radius:999px;text-decoration:none;border:2px solid transparent;
  transition:transform .16s ease, background-color .16s ease, color .16s ease;
  cursor:pointer;
}
.btn:hover{transform:translateY(-2px)}
.btn--red{background:var(--red);color:var(--paper)}
.btn--red:hover{background:var(--red-deep)}
.btn--ink{background:var(--ink);color:var(--chalk)}
.btn--outline{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn--outline:hover{background:var(--ink);color:var(--chalk)}
.btn--chalk{background:var(--chalk);color:var(--ink)}
.btn--chalk:hover{background:var(--paper)}
.btn--ghost{background:transparent;color:var(--chalk);border-color:var(--ink-hair)}
.btn--ghost:hover{background:rgba(239,241,236,.12)}
.btn--sm{font-size:.92rem;padding:.62em 1.15em}

.link-u{
  font-family:var(--font-display);font-weight:600;text-decoration:none;
  border-bottom:3px solid var(--green);padding-bottom:2px;color:var(--ink);
}
.link-u:hover{border-bottom-color:var(--ink)}
.link-u--blue{border-bottom-color:var(--blue)}
.link-u--red{border-bottom-color:var(--red)}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--blue-deep);outline-offset:3px;border-radius:4px}
.on-dark a:focus-visible,.on-dark button:focus-visible{outline-color:var(--chalk)}

.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--chalk);padding:12px 18px;z-index:99;border-radius:0 0 10px 0}
.skip:focus{left:0}

/* ---------- header ---------- */
.site-head{
  position:sticky;top:0;z-index:60;background:var(--chalk);
  border-bottom:1px solid var(--rule);
}
.head-in{display:flex;align-items:center;gap:18px;min-height:76px;padding-block:12px}
.brand{display:flex;align-items:center;text-decoration:none;color:var(--ink);flex:none}
.brand svg{height:32px;width:auto;display:block}
.head-spacer{flex:1}
.nav-panel{display:flex;align-items:center;gap:clamp(14px,2vw,30px)}
.nav-panel a.nav-l{
  font-family:var(--font-body);font-weight:500;font-size:.98rem;text-decoration:none;color:var(--ink);
  padding-bottom:3px;border-bottom:2px solid transparent;
}
.nav-panel a.nav-l:hover{border-bottom-color:var(--red)}
.nav-panel a.nav-l[aria-current="page"]{border-bottom-color:var(--red)}
.nav-acts{display:flex;align-items:center;gap:14px}
.nav-acts a.login{font-weight:600;font-size:.98rem;text-decoration:none;color:var(--slate)}
.nav-acts a.login:hover{color:var(--ink)}
.nav-toggle{
  display:none;font-family:var(--font-display);font-weight:600;font-size:.95rem;
  background:var(--ink);color:var(--chalk);border:0;border-radius:999px;padding:.6em 1.15em;cursor:pointer;
}

@media (max-width:960px){
  .nav-panel{
    display:none;position:absolute;left:0;right:0;top:100%;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--chalk);border-bottom:1px solid var(--rule);
    padding:8px var(--pad) 26px;
  }
  .nav-panel.is-open{display:flex}
  .nav-panel a.nav-l{padding:14px 0;border-bottom:1px solid var(--rule);font-size:1.1rem;font-family:var(--font-display);font-weight:500}
  .nav-panel a.nav-l:hover{border-bottom-color:var(--rule);color:var(--red-deep)}
  .nav-acts{margin-top:20px;flex-direction:column;align-items:stretch;gap:12px}
  .nav-acts .btn{width:100%}
  .nav-acts a.login{text-align:center;padding:6px 0}
  .nav-toggle{display:inline-block}
  .site-head{position:relative}
}

/* ---------- hero (home, the bold move) ---------- */
.hero{overflow:hidden;padding-block:clamp(48px,6vw,86px) clamp(56px,7vw,104px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:clamp(32px,5vw,72px);align-items:center}
.hero .eyebrow{color:var(--red-deep)}
.hero h1{margin-bottom:22px}
.hero .lede{color:var(--slate);margin-bottom:30px}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.trial{font-size:.9rem;color:var(--slate);margin-top:16px;display:flex;align-items:center;gap:9px}
.trial::before{content:"";width:14px;height:9px;border-radius:3px;background:var(--green);flex:none}

/* the mark as the layout */
.stage{position:relative;aspect-ratio:10/8.4;min-height:340px}
.scr{
  margin:0;position:absolute;display:flex;flex-direction:column;
  border-radius:24px;padding:13px;
  box-shadow:0 0 0 9px var(--chalk), 0 26px 50px -30px rgba(20,27,34,.7);
}
.scr img{flex:1;min-height:0;width:100%;object-fit:cover;border-radius:13px}
.scr figcaption{
  margin-top:11px;background:var(--paper);color:var(--ink);border-radius:9px;
  padding:7px 11px;font-size:.685rem;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;line-height:1.35;
}
.scr--g{top:0;right:0;width:70%;height:60%;background:var(--green);transform:rotate(-2.4deg);z-index:1}
.scr--b{left:7%;top:21%;width:55%;height:51%;background:var(--blue);transform:rotate(1.7deg);z-index:2}
.scr--r{left:0;bottom:0;width:42%;height:45%;background:var(--red);transform:rotate(-3.4deg);z-index:3}
.scr--r figcaption{background:var(--paper);color:var(--red-deep)}
.scr--b img{object-position:50% 26%}
.scr--r img{object-position:50% 42%}

@media (max-width:1000px){
  .hero-grid{grid-template-columns:minmax(0,1fr);gap:40px}
  .stage{aspect-ratio:auto;min-height:0;display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
  .scr{position:static;width:auto;height:auto;transform:none;box-shadow:0 12px 30px -22px rgba(20,27,34,.7)}
  .scr img{aspect-ratio:16/10;height:auto}
}
@media (min-width:601px) and (max-width:1000px){
  .stage{grid-template-columns:1fr 1fr}
  .scr--g{grid-column:1 / -1}
}

/* ---------- interior page hero (one screen panel) ---------- */
.phero{overflow:hidden;padding-block:clamp(44px,5.5vw,80px) clamp(48px,6vw,88px)}
.phero-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:clamp(30px,5vw,66px);align-items:center}
.phero h1{margin-bottom:20px}
.phero .lede{color:var(--slate);margin-bottom:28px}
.phero-cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.phero--blue .eyebrow{color:var(--blue-deep)}
.phero--green .eyebrow{color:var(--green-deep)}
.phero--red .eyebrow{color:var(--red-deep)}
.panel{
  margin:0;display:flex;flex-direction:column;border-radius:24px;padding:14px;
  box-shadow:0 0 0 9px var(--chalk),0 26px 50px -30px rgba(20,27,34,.7);
}
.panel img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:13px}
.panel figcaption{
  margin-top:12px;background:var(--paper);color:var(--ink);border-radius:9px;
  padding:8px 12px;font-size:.7rem;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;line-height:1.35;
}
.panel--blue{background:var(--blue)}
.panel--green{background:var(--green)}
.panel--red{background:var(--red)}
.panel--red figcaption{color:var(--red-deep)}
.panel--blue figcaption{color:var(--blue-deep)}
.panel--green figcaption{color:var(--green-deep)}
@media (max-width:900px){
  .phero-grid{grid-template-columns:minmax(0,1fr);gap:36px}
}

/* ---------- how it works (blue field) ---------- */
.steps{background:var(--blue-deep);color:var(--chalk)}
.steps .eyebrow{color:var(--chalk);opacity:.85}
.steps-top{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,4vw,56px);align-items:end;margin-bottom:clamp(32px,4vw,52px)}
.steps-top p{color:var(--ink-soft);margin-top:20px}
.duo{background:var(--blue);border-radius:22px;overflow:hidden;isolation:isolate;aspect-ratio:16/10}
.duo img{width:100%;height:100%;object-fit:cover;mix-blend-mode:luminosity;filter:grayscale(1) contrast(1.1) brightness(1.04)}
.step-row{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,20px)}
.step{background:var(--chalk);color:var(--ink);border-radius:20px;padding:clamp(22px,2.4vw,30px)}
.step .num{font-family:var(--font-display);font-weight:700;font-size:2.6rem;line-height:1;color:var(--blue);display:block;margin-bottom:14px}
.step h3{margin-bottom:10px}
.step p{color:var(--slate);font-size:.98rem}
.steps-foot{display:flex;flex-wrap:wrap;gap:22px;align-items:center;justify-content:space-between;margin-top:clamp(26px,3vw,38px)}
.note{font-size:.9rem;color:var(--ink-soft);max-width:60ch}
.steps.on-light{background:var(--blue-deep)}

/* ---------- features grid ---------- */
.feat .eyebrow{color:var(--green-deep)}
.feat-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:end;margin-bottom:clamp(32px,4vw,48px)}
.feat-head p{color:var(--slate)}
.grid9{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.cell{background:var(--paper);padding:clamp(22px,2.4vw,30px)}
.cell .glyph{width:26px;height:17px;border-radius:5px;background:var(--green);margin-bottom:16px}
.cell h3{font-size:1.12rem;margin-bottom:9px}
.cell p{font-size:.95rem;color:var(--slate)}
.feat-foot{margin-top:32px}

/* glyph colour variants for grouped grids on interior pages */
.glyph--blue{background:var(--blue) !important}
.glyph--green{background:var(--green) !important}
.glyph--red{background:var(--red) !important}

/* grouped feature block (features page) */
.fgroup{margin-top:clamp(40px,5vw,64px)}
.fgroup:first-of-type{margin-top:0}
.fgroup-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(20px,3vw,48px);align-items:baseline;margin-bottom:clamp(20px,2.5vw,30px)}
.fgroup-head h2{font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem)}
.fgroup-head p{color:var(--slate)}
.gridN{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.gridN.cols-3{grid-template-columns:repeat(3,1fr)}
.gridN.cols-2{grid-template-columns:repeat(2,1fr)}

/* a media panel that can sit inside interior sections */
.mpanel{margin:0;background:var(--paper);border-radius:20px;padding:12px;box-shadow:0 14px 34px -30px rgba(20,27,34,.9)}
.mpanel img{width:100%;height:auto;aspect-ratio:3/2;border-radius:12px;object-fit:cover}
.mpanel figcaption{padding:12px 6px 4px;font-size:.9rem;color:var(--slate)}
.media-row{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2.4vw,26px);margin-top:clamp(28px,3.5vw,44px);align-items:start}

/* ---------- industries (ink field) ---------- */
.ind{background:var(--ink);color:var(--chalk)}
.ind .eyebrow{color:var(--red)}
.ind-head{max-width:64ch;margin-bottom:clamp(32px,4vw,48px)}
.ind-head p{color:var(--ink-soft);margin-top:20px}
.ind-list{margin:0;border-top:1px solid var(--ink-hair)}
.ind-row{
  display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,.58fr);
  gap:16px;padding:22px 0;border-bottom:1px solid var(--ink-hair);align-items:baseline;
}
.ind-row dt{font-family:var(--font-display);font-weight:600;font-size:clamp(1.2rem,1.05rem + .5vw,1.5rem);display:flex;align-items:center;gap:12px;margin:0}
.ind-row dt::before{content:"";width:22px;height:14px;border-radius:4px;background:var(--red);flex:none}
.ind-row dd{margin:0;color:var(--ink-soft);font-size:1rem}

/* ---------- gallery ---------- */
.gal .eyebrow{color:var(--blue-deep)}
.gal-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:end;margin-bottom:clamp(30px,4vw,44px)}
.gal-head p{color:var(--slate)}
.gal-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(14px,1.6vw,22px)}
.shot{background:var(--paper);border-radius:20px;padding:11px;margin:0;box-shadow:0 14px 34px -30px rgba(20,27,34,.9)}
.shot img{width:100%;border-radius:12px;object-fit:cover;aspect-ratio:3/2}
.shot figcaption{padding:13px 5px 5px;font-size:.9rem;color:var(--slate);display:flex;gap:10px}
.shot figcaption::before{content:"";width:16px;height:11px;border-radius:3px;background:var(--blue);flex:none;margin-top:6px}
.shot--red figcaption::before{background:var(--red)}
/* portrait media (e.g. a portrait totem) keeps a 2:3 ratio, not the 3:2 default */
.shot--portrait img{aspect-ratio:2/3}
.s1{grid-column:span 3}.s2{grid-column:span 3}
.s3{grid-column:span 2}.s4{grid-column:span 2}.s5{grid-column:span 2}
.gal-foot{margin-top:32px}

/* even gallery (installations) */
.gal-grid.even{grid-template-columns:repeat(3,1fr)}
.gal-grid.even .shot{grid-column:auto}

.reveal{opacity:1}
.js-on .reveal{opacity:0;transform:translateY(20px)}
.js-on .reveal.in{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease}

/* ---------- case blocks (installations) ---------- */
.case{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,60px);align-items:center;margin-top:clamp(36px,4.5vw,64px)}
.case:first-of-type{margin-top:0}
.case.flip .case-media{order:2}
.case-body h3{font-size:clamp(1.4rem,1.15rem + 1vw,1.9rem);margin-bottom:16px}
.case-body p{color:var(--slate)}
.case-media{margin:0;background:var(--paper);border-radius:20px;padding:12px;box-shadow:0 18px 40px -32px rgba(20,27,34,.9)}
.case-media img{width:100%;height:auto;aspect-ratio:3/2;border-radius:12px;object-fit:cover}
.case-eyebrow{color:var(--red-deep)}

/* ---------- pricing table ---------- */
.price .eyebrow{color:var(--green-deep)}
.price-head{max-width:62ch;margin-bottom:clamp(30px,4vw,44px)}
.price-head p{color:var(--slate);margin-top:18px}
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,20px)}
.tier{background:var(--paper);border:1px solid var(--rule);border-radius:22px;padding:clamp(24px,2.6vw,34px);display:flex;flex-direction:column;gap:8px}
.tier .cap{font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--green-deep)}
.tier .amt{font-family:var(--font-display);font-weight:600;font-size:clamp(2rem,1.5rem + 1.6vw,2.7rem);line-height:1}
.tier .per{font-size:.95rem;color:var(--slate)}
.tier--mid{background:var(--ink);color:var(--chalk);border-color:var(--ink)}
.tier--mid .cap{color:var(--green)}
.tier--mid .per{color:var(--ink-soft)}
.price-foot{display:flex;flex-wrap:wrap;gap:18px 26px;align-items:center;margin-top:30px}
.price-foot .note2{font-size:.95rem;color:var(--slate);max-width:44ch}

/* full 8-row plans table */
.plans{border:1px solid var(--rule);background:var(--rule);display:grid;gap:1px;grid-template-columns:1fr;margin-top:8px}
.plan-row{background:var(--paper);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr) auto;gap:18px;align-items:center;padding:clamp(16px,2vw,22px) clamp(18px,2.4vw,28px)}
.plan-row .dev{font-family:var(--font-display);font-weight:600;font-size:clamp(1.05rem,.98rem + .4vw,1.28rem)}
.plan-row .prc{font-family:var(--font-display);font-weight:600;font-size:clamp(1.15rem,1rem + .8vw,1.6rem);font-variant-numeric:tabular-nums;color:var(--green-deep)}
.plan-row .prc.na{color:var(--slate);font-family:var(--font-body);font-weight:500;font-size:1rem}
.plan-row.feature{background:var(--ink);color:var(--chalk)}
.plan-row.feature .prc{color:var(--green)}
.plan-act{justify-self:end}
@media (max-width:640px){
  .plan-row{grid-template-columns:1fr;gap:10px;text-align:left}
  .plan-act{justify-self:start}
  .plan-act .btn{width:auto}
}

/* pricing supplementary blocks */
.pblocks{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(18px,2.5vw,28px);margin-top:clamp(30px,4vw,48px)}
.pblock{background:var(--paper);border:1px solid var(--rule);border-radius:20px;padding:clamp(24px,2.6vw,34px)}
.pblock h3{font-size:1.3rem;margin-bottom:12px}
.pblock p{color:var(--slate);margin-bottom:18px}
.notecard{background:var(--ink);color:var(--chalk);border-radius:20px;padding:clamp(24px,2.8vw,36px);margin-top:clamp(30px,4vw,48px)}
.notecard .eyebrow{color:var(--green)}
.notecard h3{font-size:clamp(1.4rem,1.15rem + 1vw,1.9rem);margin-bottom:14px}
.notecard p{color:var(--ink-soft);max-width:64ch}
.notecard .btn{margin-top:20px}

/* FAQ */
.faq{margin-top:clamp(36px,4.5vw,60px);border-top:1px solid var(--rule)}
.faq-item{border-bottom:1px solid var(--rule);padding:clamp(20px,2.6vw,28px) 0}
.faq-item h3{font-size:clamp(1.15rem,1.05rem + .5vw,1.4rem);margin-bottom:10px}
.faq-item p{color:var(--slate);max-width:70ch}

/* ---------- CTA band ---------- */
.cta{background:var(--red);color:var(--paper)}
.cta-in{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(26px,4vw,60px);align-items:center}
.cta p{color:rgba(255,255,255,.9);margin-top:18px}
.cta-btns{display:flex;flex-wrap:wrap;gap:14px}
.cta .btn--chalk{color:var(--red-deep)}
.cta .btn--ghost{color:var(--paper);border-color:rgba(255,255,255,.55)}
.cta .btn--ghost:hover{background:rgba(255,255,255,.14)}

/* ---------- contact strip ---------- */
.contact .eyebrow{color:var(--blue-deep)}
.contact-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:start}
.contact p{color:var(--slate);margin-top:18px}
.ways{display:grid;gap:20px}
.way{display:flex;flex-direction:column;gap:4px;padding-bottom:18px;border-bottom:1px solid var(--rule)}
.way .lbl{font-size:.74rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--slate)}
.way a,.way .val{font-family:var(--font-display);font-weight:600;font-size:clamp(1.25rem,1.1rem + .7vw,1.7rem);color:var(--blue-deep);text-decoration:none}
.way a:hover{color:var(--ink)}
.way .val{color:var(--ink)}

/* ---------- contact form ---------- */
.form-wrap{background:var(--paper);border:1px solid var(--rule);border-radius:22px;padding:clamp(24px,3vw,40px)}
.form-wrap h2{font-size:clamp(1.4rem,1.15rem + 1vw,1.9rem);margin-bottom:22px}
.field{margin-bottom:18px}
.field label{display:block;font-family:var(--font-display);font-weight:600;font-size:.95rem;margin-bottom:7px}
.field input,.field textarea{
  width:100%;font-family:var(--font-body);font-size:1rem;color:var(--ink);
  background:var(--chalk);border:1px solid var(--rule);border-radius:13px;
  padding:.8em .9em;line-height:1.5;
}
.field input:focus,.field textarea:focus{outline:2px solid var(--blue);outline-offset:1px;background:var(--paper)}
.field textarea{min-height:140px;resize:vertical}
.field .req{color:var(--red-deep)}
.field-error{color:var(--red-deep);font-size:.85rem;margin-top:6px;display:none}
.field.has-error input,.field.has-error textarea{border-color:var(--red);background:#fff4f4}
.field.has-error .field-error{display:block}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-note{font-size:.85rem;color:var(--slate);margin-top:14px}
.form-msg{margin-top:16px;padding:14px 16px;border-radius:13px;font-size:.97rem;display:none}
.form-msg.show{display:block}
.form-msg.ok{background:#eef5e2;color:var(--green-deep);border:1px solid #cde0ab}
.form-msg.err{background:#fdecec;color:var(--red-deep);border:1px solid #f2c4c4}
.contact-cols{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(30px,4vw,60px);align-items:start}
@media (max-width:820px){.contact-cols{grid-template-columns:minmax(0,1fr)}}

/* ---------- legal pages ---------- */
.legal{padding-block:clamp(40px,5vw,72px)}
.legal .eyebrow{color:var(--blue-deep)}
.legal h1{font-size:clamp(2rem,1.4rem + 2.5vw,3rem);margin-bottom:12px}
.legal .updated{color:var(--slate);font-size:.9rem;margin-bottom:clamp(28px,4vw,44px)}
.legal-body{max-width:66ch}
.legal-body h2{font-size:clamp(1.3rem,1.1rem + .9vw,1.7rem);margin:clamp(30px,3.5vw,44px) 0 14px}
.legal-body p{margin-bottom:16px;text-align:justify;text-justify:inter-word;hyphens:auto}
.legal-body p.intro{font-size:1.1rem;color:var(--slate)}
.legal-body .caps{font-size:.94rem}
.legal-rule{border:0;border-top:1px solid var(--rule);margin:clamp(28px,4vw,44px) 0}

/* ---------- 404 ---------- */
.nf{min-height:60vh;display:flex;align-items:center;padding-block:clamp(48px,7vw,110px)}
.nf .eyebrow{color:var(--red-deep);font-size:1rem}
.nf h1{font-size:clamp(2.4rem,1.6rem + 4vw,4.5rem);margin-bottom:18px}
.nf p{color:var(--slate);max-width:52ch;margin-bottom:26px}
.nf-links{display:flex;flex-wrap:wrap;gap:14px 22px;margin-bottom:22px}
.nf-links a{font-family:var(--font-display);font-weight:600;text-decoration:none;color:var(--ink);border-bottom:3px solid var(--blue);padding-bottom:2px}
.nf-links a:hover{border-bottom-color:var(--ink)}
.nf-sec{font-size:.95rem;color:var(--slate)}

/* ---------- footer ---------- */
.site-foot{background:var(--ink);color:var(--chalk);padding-block:clamp(48px,6vw,76px) 32px}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:clamp(28px,3.5vw,48px)}
.site-foot svg{height:34px;width:auto;display:block;margin-bottom:18px}
.foot-desc{color:var(--ink-soft);max-width:34ch;font-size:.97rem}
.foot-col h4{font-size:.74rem;font-family:var(--font-body);font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:14px}
.foot-col ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.foot-col a{text-decoration:none;color:var(--chalk);font-size:.97rem}
.foot-col a:hover{text-decoration:underline;text-underline-offset:4px}
.foot-bot{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;margin-top:clamp(36px,4vw,56px);padding-top:22px;border-top:1px solid var(--ink-hair);color:var(--ink-soft);font-size:.9rem}
.dots{display:flex;gap:7px}
.dots i{width:20px;height:13px;border-radius:4px;display:block}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .steps-top,.feat-head,.gal-head,.cta-in,.contact-in{grid-template-columns:minmax(0,1fr)}
  .steps-top{align-items:start}
  .grid9{grid-template-columns:repeat(2,1fr)}
  .gridN.cols-3{grid-template-columns:repeat(2,1fr)}
  .fgroup-head{grid-template-columns:minmax(0,1fr);gap:12px}
  .foot-grid{grid-template-columns:1fr 1fr}
  .media-row{grid-template-columns:minmax(0,1fr)}
  .case{grid-template-columns:minmax(0,1fr);gap:26px}
  .case.flip .case-media{order:0}
  .pblocks{grid-template-columns:minmax(0,1fr)}
  .gal-grid.even{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:820px){
  .step-row{grid-template-columns:minmax(0,1fr)}
  .tiers{grid-template-columns:minmax(0,1fr)}
  .gal-grid{grid-template-columns:repeat(2,1fr)}
  .s1,.s2,.s3,.s4,.s5{grid-column:span 1}
  .ind-row{grid-template-columns:minmax(0,1fr);gap:8px}
}
@media (max-width:560px){
  .grid9{grid-template-columns:minmax(0,1fr)}
  .gridN.cols-3,.gridN.cols-2{grid-template-columns:minmax(0,1fr)}
  .gal-grid,.gal-grid.even{grid-template-columns:minmax(0,1fr)}
  .foot-grid{grid-template-columns:minmax(0,1fr)}
  .prose,.legal-body p{text-align:left;hyphens:none}
  .btn{width:100%}
  .hero-cta .btn,.phero-cta .btn,.cta-btns .btn,.steps-foot .btn,.price-foot .btn,.nf-links{flex-wrap:wrap}
  .hero-cta .btn,.phero-cta .btn,.cta-btns .btn,.steps-foot .btn,.price-foot .btn{width:100%}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .btn:hover{transform:none}
  .js-on .reveal{opacity:1;transform:none}
}

/* --- 2026-08-28 fix: video-wall hero photos + landscape gallery tiles (no tall/narrow crops) --- */
.scr--g img{object-position:50% 45%}
.scr--b img{object-position:50% 46%}
.scr--r img{object-position:50% 48%}
.gal-grid,.gal-grid.even{grid-template-columns:repeat(3,minmax(0,1fr))}
.shot img,.shot--portrait img{aspect-ratio:3/2 !important;height:auto !important;object-position:50% 42%}
@media (max-width:900px){.gal-grid,.gal-grid.even{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.gal-grid,.gal-grid.even{grid-template-columns:minmax(0,1fr)}}

.scr--g img,.scr--b img,.scr--r img{object-position:50% 50%}

/* hero frames reshaped to landscape TV proportions so a whole video wall fits */
.scr--g{width:66%;height:41%;top:2%;right:0}
.scr--b{width:56%;height:35%;left:4%;top:26%}
.scr--r{width:47%;height:31%;left:0;bottom:4%}
.scr--g img,.scr--b img,.scr--r img{object-position:50% 50%}
.stage{aspect-ratio:10/8.8}

.scr img{object-fit:contain !important;background:#0b1016}

/* ===== 2026-08-28 hero rebuild: robust landscape screen-cards (overrides the fragile flex/%/absolute system) ===== */
.stage{position:relative;display:block;aspect-ratio:auto !important;min-height:0 !important}
.scr{position:absolute !important;height:auto !important;padding:8px !important;box-shadow:0 0 0 8px var(--chalk),0 22px 44px -28px rgba(20,27,34,.55) !important}
.scr img{flex:none !important;width:100% !important;height:auto !important;aspect-ratio:16/10 !important;object-fit:cover !important;object-position:50% 50% !important;display:block;min-height:0 !important;border-radius:11px}
.scr figcaption{display:none !important}
.scr--g{position:relative !important;width:66% !important;margin-left:34% !important;top:auto !important;right:auto !important;left:auto !important;bottom:auto !important;transform:rotate(-1.8deg)}
.scr--b{width:55% !important;left:0 !important;right:auto !important;top:19% !important;bottom:auto !important;transform:rotate(1.4deg)}
.scr--r{width:46% !important;left:7% !important;right:auto !important;top:47% !important;bottom:auto !important;transform:rotate(-3deg)}
@media (max-width:1000px){
  .scr{position:static !important;box-shadow:0 12px 30px -22px rgba(20,27,34,.7) !important}
  .scr--g,.scr--b,.scr--r{width:auto !important;margin:0 !important;transform:none !important}
  .scr img{aspect-ratio:16/10 !important}
}
