/* ============================================================
   AR PRESSURE & SOFT WASHING — The Field Ticket
   ============================================================ */

:root{
  /* ink + ground */
  --ink:      #0E141B;
  --ink-2:    #33414F;
  --ink-3:    #5E6E7D;
  --paper:    #F7F9FB;
  --paper-2:  #FFFFFF;
  --paper-3:  #EAEFF4;

  /* brand, off the logo */
  --blue:     #1583C4;
  --blue-dk:  #0F5FA8;
  --blue-deep:#123C66;
  --blue-lt:  #D7ECF9;
  --chrome:   #A0A3A5;
  --chrome-lt:#E2E5E7;
  --stamp:    #C0392B;

  /* ruling */
  --rule:     #C9D6E0;
  --rule-hard:#0E141B;

  --r:  3px;
  --r-lg: 4px;

  --shadow-1: 0 1px 2px rgba(14,20,27,.06), 0 4px 12px rgba(14,20,27,.06);
  --shadow-2: 0 2px 4px rgba(14,20,27,.08), 0 14px 34px rgba(14,20,27,.12);

  --disp: 'Saira Condensed', sans-serif;
  --body: 'Saira Semi Condensed', sans-serif;
  --mono: 'Spline Sans Mono', ui-monospace, monospace;

  --pad: clamp(1.25rem, 4vw, 4rem);
  --maxw: 1360px;
  --ease: cubic-bezier(.16,.84,.34,1);
}

*,*::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;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--body);
  font-size:clamp(1rem, .96rem + .22vw, 1.125rem);
  line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* --- browser surfaces carry the design --- */
::selection{ background:var(--blue); color:#fff; }
:focus-visible{
  outline:2px solid var(--blue);
  outline-offset:3px;
  border-radius:2px;
}
html{ scrollbar-color:var(--chrome) var(--paper-3); scrollbar-width:thin; }
::-webkit-scrollbar{ width:12px; height:12px; }
::-webkit-scrollbar-track{ background:var(--paper-3); }
::-webkit-scrollbar-thumb{
  background:var(--chrome);
  border:3px solid var(--paper-3);
  border-radius:99px;
}
::-webkit-scrollbar-thumb:hover{ background:var(--ink-3); }

a{ color:inherit; text-decoration-thickness:1px; text-underline-offset:3px; }

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

h1,h2,h3{
  font-family:var(--disp);
  font-weight:800;
  line-height:.94;
  letter-spacing:-.02em;
  text-wrap:balance;
  margin:0;
}

.mono{
  font-family:var(--mono);
  font-size:.75rem;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink-3);
}

.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--ink); color:#fff; padding:.75rem 1.25rem;
  font-family:var(--mono); font-size:.75rem;
}
.skip:focus{ left:0; }

.ic{ width:1.1em; height:1.1em; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex:none; }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  --bg:var(--ink); --fg:#fff;
  display:inline-flex; align-items:center; gap:.6rem;
  background:var(--bg); color:var(--fg);
  border:1px solid var(--bg);
  padding:.7rem 1.1rem;
  font-family:var(--disp);
  font-size:1rem; font-weight:700;
  letter-spacing:.01em;
  text-decoration:none;
  border-radius:var(--r);
  cursor:pointer;
  transition:transform .18s var(--ease), background .18s var(--ease), box-shadow .18s var(--ease);
  box-shadow:var(--shadow-1);
}
.btn:hover{ transform:translateY(-1px); box-shadow:var(--shadow-2); }
.btn:active{ transform:translateY(0) scale(.994); }

.btn--call{
  --bg:var(--blue-dk);
  flex-direction:column; align-items:flex-start; gap:0;
  padding:.5rem .95rem;
  position:relative;
}
.btn--call .ic{ position:absolute; right:.9rem; top:50%; transform:translateY(-50%); opacity:.5; width:1.4em; height:1.4em; }
.btn__l{ font-family:var(--mono); font-size:.6875rem; letter-spacing:.16em; text-transform:uppercase; opacity:.8; font-weight:500; }
.btn__n{ font-size:1.125rem; line-height:1.1; padding-right:1.9rem; }

.btn--big{ --bg:var(--blue-dk); font-size:1.15rem; padding:.95rem 1.4rem; }
.btn--ghost{
  --bg:transparent; --fg:var(--ink);
  border-color:var(--rule-hard);
  box-shadow:none;
}
.btn--ghost:hover{ --bg:var(--ink); --fg:#fff; }
.btn--onDark{ --bg:var(--blue); }
.btn--onDark:hover{ --bg:#1a96de; }

/* ============================================================
   TICKET HEADER
   ============================================================ */
.tkt-head{
  position:sticky; top:0; z-index:60;
  background:color-mix(in srgb, var(--paper-2) 88%, transparent);
  backdrop-filter:saturate(1.4) blur(10px);
  -webkit-backdrop-filter:saturate(1.4) blur(10px);
}
.tkt-head__in{
  max-width:var(--maxw); margin-inline:auto;
  padding:.6rem var(--pad);
  display:flex; align-items:center; gap:clamp(1rem,3vw,2.5rem);
}
.tkt-head__rule{
  height:3px;
  background:
    linear-gradient(90deg, var(--ink) 0 38%, var(--blue) 38% 46%, var(--ink) 46% 100%);
}

.brand{ display:flex; align-items:center; gap:.7rem; text-decoration:none; margin-right:auto; }
.brand__mark{ width:46px; height:46px; object-fit:contain; }
.brand__txt{ display:flex; flex-direction:column; line-height:1.05; }
.brand__txt strong{
  font-family:var(--disp); font-weight:800; font-size:1.05rem;
  letter-spacing:-.01em; text-transform:uppercase;
}
.brand__sub{
  font-family:var(--mono); font-size:.6875rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-3); margin-top:.15rem;
}

.tkt-nav{ display:flex; gap:1.4rem; }
.tkt-nav a{
  font-family:var(--mono); font-size:.75rem; letter-spacing:.13em;
  text-transform:uppercase; text-decoration:none; color:var(--ink);
  font-weight:500;
  padding:.35rem 0; position:relative;
}
.tkt-nav a::after{
  content:''; position:absolute; left:0; right:100%; bottom:0; height:2px;
  background:var(--blue); transition:right .28s var(--ease);
}
.tkt-nav a:hover::after, .tkt-nav a:focus-visible::after{ right:0; }

/* --- corner burn-in --- */
.burn{
  position:fixed; right:0; bottom:0; z-index:55;
  display:flex; align-items:baseline; gap:.5rem;
  padding:.5rem .8rem;
  background:var(--ink);
  color:var(--chrome-lt);
  font-family:var(--mono); font-size:.6875rem; letter-spacing:.14em; text-transform:uppercase;
  border-top-left-radius:var(--r);
  pointer-events:none;
}
.burn__v{ color:#fff; font-weight:600; }
.burn__d{ color:#4FB3E8; }

/* ============================================================
   HERO
   ============================================================ */
.hero{
  padding:0 0 clamp(3rem,6vw,5rem);
}

/* --- live footage stage: edge to edge, full screen --- */
.hero__stage{
  position:relative;
  width:100%;
  /* fill the screen under the sticky header */
  min-height:calc(100svh - 62px);
  display:flex; flex-direction:column; justify-content:flex-end;
  overflow:hidden;
  background:var(--ink);
  isolation:isolate;
}
.hero__media{ position:absolute; inset:0; z-index:0; }
.hero__vid{
  width:100%; height:100%;
  object-fit:cover;
  object-position:50% 46%;
  display:block;
}
/* Ink scrim: the footage is bright sky, so the type needs its own ground.
   Heavier on the left where the headline sits. */
.hero__scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(to top,
      rgba(6,11,16,.94) 0%,
      rgba(6,11,16,.86) 22%,
      rgba(6,11,16,.55) 48%,
      rgba(6,11,16,.28) 72%,
      rgba(6,11,16,.42) 100%);
}
.hero__inner{
  position:relative; z-index:1;
  width:100%;
  max-width:var(--maxw);
  margin-inline:auto;
  padding:0 var(--pad);
  margin-top:auto;
}

.h-shout{
  font-size:clamp(2.75rem, 1.2rem + 7vw, 6.5rem);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:-.035em;
  line-height:.86;
}
.h-shout__a{ display:block; color:#8FA3B4; }
.h-shout__b{ display:block; color:#fff; }

.hero__foot{
  position:relative; z-index:1;
  width:100%; max-width:var(--maxw); margin-inline:auto;
  padding:clamp(1.5rem,3vw,2.25rem) var(--pad) clamp(1.25rem,2.5vw,1.75rem);
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}
.hero__note{
  margin:0;
  font-size:.95rem; font-style:italic; color:#B9C7D3;
  max-width:52ch; line-height:1.45;
}
.hero__scroll{
  display:flex; align-items:center; gap:.55rem; flex:none;
}
.hero__scroll .mono{ color:#8FA3B4; }
.hero__scroll::after{
  content:''; width:1px; height:26px;
  background:linear-gradient(to bottom, #8FA3B4, transparent);
  animation:drop 2.2s var(--ease) infinite;
}
@keyframes drop{
  0%{ transform:scaleY(0); transform-origin:top; opacity:0; }
  40%{ transform:scaleY(1); transform-origin:top; opacity:1; }
  70%{ transform:scaleY(1); transform-origin:bottom; opacity:1; }
  100%{ transform:scaleY(0); transform-origin:bottom; opacity:0; }
}

.hero__lede{
  max-width:46ch;
  margin:1.35rem 0 0;
  font-size:clamp(1.05rem,1rem + .3vw,1.2rem);
  color:#D5E0E9;
}
.hero__acts{ display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.75rem; }
.btn--onGlass{
  --fg:#fff;
  border-color:rgba(255,255,255,.55);
  background:rgba(255,255,255,.07);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
.btn--onGlass:hover{ --bg:#fff; --fg:var(--ink); border-color:#fff; }

/* --- the hanging tag --- */
.tag{
  position:relative;
  background:var(--paper-2);
  border-top:3px solid var(--ink);
  border-radius:var(--r-lg);
  padding:2rem 1.25rem 1.25rem;
  box-shadow:0 10px 30px rgba(6,11,16,.42);
}
.tag__hole{
  position:absolute; top:.85rem; left:50%; transform:translateX(-50%);
  width:38px; height:9px; border-radius:99px;
  background:var(--paper-3);
  box-shadow:inset 0 1px 2px rgba(14,20,27,.35);
}
.tag__fields{ margin:0; display:grid; gap:0; }
.fld{
  display:grid; grid-template-columns:auto 1fr; gap:.75rem; align-items:baseline;
  padding:.5rem 0;
  border-bottom:1px dashed var(--rule);
}
.fld:last-child{ border-bottom:0; }
.fld dt{
  font-family:var(--mono); font-size:.6875rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-3);
}
.fld dd{
  margin:0; font-family:var(--disp); font-weight:700; font-size:1rem;
  line-height:1.25; text-align:right;
}
.tag--dark{
  background:rgba(255,255,255,.05);
  border-top-color:var(--blue);
  box-shadow:none;
}
.tag--dark .fld{ border-bottom-color:rgba(226,229,231,.2); }
.tag--dark .fld dt{ color:var(--chrome); }
.tag--dark .fld dd{ color:#fff; }
.tag--dark .tag__hole{ background:rgba(0,0,0,.4); box-shadow:inset 0 1px 2px rgba(0,0,0,.6); }
.tag--dark .tag__note{ color:var(--chrome-lt); border-top-color:rgba(226,229,231,.2); }

.tag__note{
  margin:1rem 0 0; padding-top:.9rem;
  border-top:1px solid var(--rule);
  font-size:.9rem; font-style:italic; color:var(--ink-2); line-height:1.45;
}

/* ============================================================
   BEFORE / AFTER SLIDER  (signature)
   ============================================================ */
.ba{
  max-width:1040px;
  margin:clamp(2.5rem,6vw,4rem) auto 0;
  padding-inline:var(--pad);
}
.ba__stage{
  --p:50%;
  position:relative;
  border:1px solid var(--rule);
  border-radius:var(--r-lg);
  overflow:hidden;
  background:var(--paper-3);
  touch-action:pan-y;
  isolation:isolate;
}
.ba__img{ width:100%; height:auto; display:block; user-select:none; -webkit-user-drag:none; }
.ba__clip{
  position:absolute; inset:0;
  width:var(--p);
  overflow:hidden;
  will-change:width;
}
.ba__clip .ba__img{
  position:absolute; top:0; left:0; height:100%;
  width:var(--stage-w, 100%);
  max-width:none;
  object-fit:cover;
}
.ba__lbl{
  position:absolute; bottom:.85rem; z-index:3;
  font-family:var(--mono); font-size:.6875rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  padding:.4rem .7rem; border-radius:2px;
  background:rgba(14,20,27,.82); color:#fff;
  backdrop-filter:blur(4px);
  transition:opacity .2s var(--ease);
}
.ba__lbl--b{ left:.85rem; }
.ba__lbl--a{ right:.85rem; background:var(--blue-dk); }

/* the wash-line handle */
.ba__handle{
  position:absolute; top:0; bottom:0; left:var(--p);
  width:3px; margin-left:-1.5px; z-index:4;
  background:#fff;
  box-shadow:0 0 0 1px rgba(14,20,27,.28), 0 2px 12px rgba(14,20,27,.34);
  pointer-events:none;
}
.ba__grip{
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:46px; height:46px; border-radius:50%;
  background:#fff;
  border:2px solid var(--ink);
  box-shadow:0 2px 10px rgba(14,20,27,.3);
  display:grid; place-items:center;
}
.ba__grip::before,
.ba__grip::after{
  content:''; position:absolute;
  width:0; height:0;
  border-block:5px solid transparent;
}
.ba__grip::before{ left:11px; border-right:7px solid var(--ink); }
.ba__grip::after{ right:11px; border-left:7px solid var(--ink); }

.ba__range{
  position:absolute; inset:0; z-index:6;
  width:100%; height:100%;
  margin:0; padding:0;
  opacity:0;
  cursor:ew-resize;
  -webkit-appearance:none; appearance:none;
  background:transparent;
}
.ba__range::-webkit-slider-thumb{ -webkit-appearance:none; width:52px; height:100vh; cursor:ew-resize; }
.ba__range::-moz-range-thumb{ width:52px; height:100vh; border:0; background:transparent; cursor:ew-resize; }
.ba__range:focus-visible{ outline:none; }
.ba__range:focus-visible ~ .ba__handle{
  box-shadow:0 0 0 2px var(--blue), 0 2px 14px rgba(14,20,27,.4);
}

/* the stamp */
.stamp{
  position:absolute; top:1.1rem; right:1.1rem; z-index:5;
  transform:rotate(-11deg) scale(1);
  opacity:0;
  transition:opacity .35s var(--ease), transform .35s var(--ease);
  pointer-events:none;
}
.ba__stage[data-revealed] .stamp{ opacity:1; }
.stamp__in{
  display:block;
  font-family:var(--disp); font-weight:800; font-size:1.1rem;
  letter-spacing:.11em; text-transform:uppercase;
  color:var(--stamp);
  border:3px solid var(--stamp);
  border-radius:var(--r);
  padding:.3rem .75rem;
  background:rgba(255,255,255,.14);
  box-shadow:inset 0 0 0 1px rgba(192,57,43,.35);
}

.ba__cap{
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  margin-top:.75rem;
}
.ba__hint{
  font-family:var(--mono); font-size:.6875rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--blue-dk);
  display:flex; align-items:center; gap:.4rem;
}
.ba__hint::before{
  content:''; width:22px; height:1px; background:currentColor;
  animation:slide 2.6s var(--ease) infinite;
}
@keyframes slide{ 0%,100%{ transform:translateX(0); } 50%{ transform:translateX(6px); } }

/* ============================================================
   SECTIONS
   ============================================================ */
.sec{
  max-width:var(--maxw); margin-inline:auto;
  padding:clamp(3.25rem,7vw,6rem) var(--pad);
}
.sec__head{ margin-bottom:clamp(1.75rem,4vw,2.75rem); }
.sec__head h2{
  font-size:clamp(2.25rem,1.3rem + 3.6vw,4rem);
  text-transform:uppercase;
  letter-spacing:-.03em;
}
.sec__head p{
  margin:.8rem 0 0; max-width:56ch;
  color:var(--ink-2); font-size:1.05rem;
}

/* --- services as ticket rows --- */
.svc{
  list-style:none; margin:0; padding:0;
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(270px,1fr));
  border-top:2px solid var(--rule-hard);
}
.svc__i{
  position:relative;
  padding:1.5rem 1.25rem 1.5rem 0;
  border-bottom:1px solid var(--rule);
  border-right:1px dashed var(--rule);
  transition:background .25s var(--ease);
}
.svc__i:hover{ background:var(--paper-2); }
.svc__no{
  display:block; color:var(--blue-dk); font-weight:600; margin-bottom:.5rem;
}
.svc__i h3{
  font-size:1.5rem; text-transform:uppercase; letter-spacing:-.015em;
  margin-bottom:.45rem;
}
.svc__i p{ margin:0; color:var(--ink-2); font-size:.975rem; max-width:40ch; }
.svc__tick{
  position:absolute; top:1.5rem; right:1.25rem;
  width:20px; height:20px;
  border:1.5px solid var(--rule);
  border-radius:2px;
  transition:border-color .25s var(--ease), background .25s var(--ease);
}
.svc__tick::after{
  content:''; position:absolute; left:5px; top:1px;
  width:6px; height:11px;
  border:solid var(--blue-dk); border-width:0 2.5px 2.5px 0;
  transform:rotate(45deg) scale(0);
  transform-origin:center;
  transition:transform .3s var(--ease);
}
.svc__i[data-on] .svc__tick{ border-color:var(--blue-dk); background:var(--blue-lt); }
.svc__i[data-on] .svc__tick::after{ transform:rotate(45deg) scale(1); }

/* --- proof --- */
.sec--proof{ background:var(--paper-2); max-width:none; }
.sec--proof > *{ max-width:var(--maxw); margin-inline:auto; }
.proof{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:clamp(1.25rem,3vw,2rem);
}
.proof__i{ margin:0; }
.proof__i figcaption{ margin-top:.6rem; }
.ba__stage--sm{ aspect-ratio:4/5; }
.ba__stage--sm .ba__img{ height:100%; object-fit:cover; }
.ba__stage--sm .ba__grip{ width:38px; height:38px; }
.ba__stage--sm .ba__grip::before{ left:9px; border-right-width:6px; }
.ba__stage--sm .ba__grip::after{ right:9px; border-left-width:6px; }

.strip{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr));
  gap:clamp(.9rem,2vw,1.35rem);
  margin-top:clamp(1.5rem,4vw,2.5rem);
  padding-top:clamp(1.75rem,4vw,2.75rem);
  border-top:1px dashed var(--rule);
}
.strip__i{ margin:0; }
.strip__i img{
  width:100%; height:auto; object-fit:contain;
  background:var(--paper-3);
  border:1px solid var(--rule); border-radius:var(--r);
  transition:transform .4s var(--ease);
}
.strip__i:hover img{ transform:scale(1.015); }
.strip__i figcaption{ margin-top:.55rem; }

/* --- method --- */
.sec--how{ max-width:none; background:var(--ink); color:var(--paper); }
.how{
  max-width:var(--maxw); margin-inline:auto;
  display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
  gap:clamp(1.75rem,4vw,3.5rem);
  align-items:start;
}
.how__copy h2{
  font-size:clamp(2rem,1.2rem + 3.1vw,3.5rem);
  text-transform:uppercase; color:#fff; letter-spacing:-.03em;
}
.how__lede{
  margin:1.1rem 0 2rem; max-width:54ch;
  color:var(--chrome-lt); font-size:1.075rem;
}
.how__pair{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:1.5rem;
  padding:1.5rem 0;
  border-block:1px solid rgba(226,229,231,.22);
}
.meth h3{
  font-size:1.35rem; text-transform:uppercase; color:#fff;
  display:flex; flex-direction:column; gap:.35rem; margin-bottom:.5rem;
}
.meth__k{ color:var(--blue); font-size:.6875rem; }
.meth p{ margin:0; color:var(--chrome-lt); font-size:.95rem; }
.how__list{
  list-style:none; margin:1.5rem 0 0; padding:0;
  display:grid; gap:.7rem;
}
.how__list li{
  position:relative; padding-left:1.6rem;
  color:var(--chrome-lt); font-size:.975rem;
}
.how__list li::before{
  content:''; position:absolute; left:0; top:.55em;
  width:8px; height:8px; border-radius:1px;
  background:var(--blue);
}
.how__side{ display:grid; gap:1.25rem; }
.how__fig{ margin:0; }
.how__fig img{
  width:100%; max-height:620px; object-fit:cover; object-position:center 28%;
  border-radius:var(--r-lg);
  border:1px solid rgba(226,229,231,.25);
}
.how__fig figcaption{ margin-top:.6rem; color:var(--chrome); }

/* --- reels --- */
.vh{
  position:absolute; width:1px; height:1px; margin:-1px;
  padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.reels{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:clamp(1rem,2.5vw,1.75rem);
}
.reel{ margin:0; }
.reel__frame{
  position:relative;
  aspect-ratio:9/16;
  border-radius:var(--r-lg);
  overflow:hidden;
  background:var(--ink);
}
.reel__vid{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
}
.reel__sound{
  position:absolute; right:.6rem; bottom:.6rem; z-index:2;
  width:38px; height:38px;
  display:grid; place-items:center;
  border:1px solid rgba(255,255,255,.45);
  border-radius:50%;
  background:rgba(8,14,20,.6);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  color:#fff;
  cursor:pointer;
  transition:background .18s var(--ease), transform .18s var(--ease);
}
.reel__sound:hover{ background:rgba(8,14,20,.85); transform:scale(1.06); }
.reel__sound .ic{ width:19px; height:19px; grid-area:1/1; }
.reel__sound .ic--on{ display:none; }
.reel__sound[aria-pressed="true"] .ic--off{ display:none; }
.reel__sound[aria-pressed="true"] .ic--on{ display:block; }
.reel figcaption{ margin-top:.55rem; }

/* --- gallery --- */
.gal{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(255px,1fr));
  gap:clamp(.9rem,2vw,1.4rem);
}
.gal__i{ margin:0; }
.gal__i img{
  width:100%; height:100%; aspect-ratio:4/3; object-fit:cover;
  border:1px solid var(--rule); border-radius:var(--r);
  transition:transform .45s var(--ease);
}
.gal__i--tall img{ aspect-ratio:3/4; }
.gal__i:hover img{ transform:scale(1.015); }
.gal__i figcaption{ margin-top:.55rem; }

/* ============================================================
   ESTIMATE
   ============================================================ */
.sec--est{ max-width:none; background:var(--blue-deep); color:#fff; }
.est{
  max-width:var(--maxw); margin-inline:auto;
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:clamp(2rem,5vw,4rem);
  align-items:start;
}
.est__intro h2{
  font-size:clamp(2.25rem,1.3rem + 3.6vw,4rem);
  text-transform:uppercase; color:#fff; letter-spacing:-.03em;
}
.est__intro > p{
  margin:1.1rem 0 1.85rem; max-width:44ch;
  color:#CFE4F2; font-size:1.075rem;
}
.est__mail{ margin:1.15rem 0 0; color:#CFE4F2; font-size:.95rem; }
.est__mail a{ color:#fff; }

.form{
  background:var(--paper-2);
  color:var(--ink);
  border-radius:var(--r-lg);
  padding:clamp(1.25rem,3vw,2rem);
  display:grid; gap:1.1rem;
}
.form__head{
  display:flex; justify-content:space-between; align-items:center;
  padding-bottom:.85rem; margin-bottom:.15rem;
  border-bottom:2px solid var(--rule-hard);
}
.form__head .mono{ color:var(--ink); font-weight:600; }
.form__no{ color:var(--blue-dk) !important; }

.f{ display:grid; gap:.4rem; }
.f label, .f legend{
  font-family:var(--mono); font-size:.6875rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-2); padding:0;
}
.opt{ text-transform:none; letter-spacing:0; color:var(--ink-3); font-size:.75rem; }

.f input, .f textarea{
  font-family:var(--body); font-size:1rem; color:var(--ink);
  background:var(--paper);
  border:1px solid var(--rule);
  border-bottom-width:2px;
  border-radius:var(--r);
  padding:.7rem .8rem;
  width:100%;
  transition:border-color .2s var(--ease), background .2s var(--ease);
}
.f input::placeholder, .f textarea::placeholder{ color:#7C8A97; }
.f input:hover, .f textarea:hover{ border-color:var(--chrome); }
.f input:focus, .f textarea:focus{
  outline:none; background:var(--paper-2);
  border-color:var(--blue-dk);
}
.f textarea{ resize:vertical; min-height:80px; }

.f--set{ border:0; margin:0; padding:0; }
.f--set legend{ margin-bottom:.55rem; }
.chips{ display:flex; flex-wrap:wrap; gap:.45rem; }
.chip{ position:relative; }
.chip input{
  position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer;
}
.chip span{
  display:block;
  font-family:var(--disp); font-weight:600; font-size:.925rem;
  padding:.5rem .85rem;
  border:1px solid var(--rule);
  border-radius:var(--r);
  background:var(--paper);
  transition:all .18s var(--ease);
  user-select:none;
}
.chip:hover span{ border-color:var(--chrome); }
.chip input:checked + span{
  background:var(--blue-dk); border-color:var(--blue-dk); color:#fff;
}
.chip input:focus-visible + span{ outline:2px solid var(--blue); outline-offset:2px; }

.err{
  margin:0; min-height:0;
  font-family:var(--mono); font-size:.6875rem; letter-spacing:.06em;
  color:var(--stamp);
}
.f--invalid input, .f--invalid textarea{ border-color:var(--stamp); }

.btn--submit{
  --bg:var(--ink);
  width:100%; justify-content:center;
  font-size:1.1rem; padding:.9rem 1.2rem;
  margin-top:.25rem;
}
.btn--submit:hover{ --bg:var(--blue-dk); }
.btn--submit[data-busy]{ opacity:.7; pointer-events:none; }

.form__foot{ margin:0; text-align:center; }
.form__status{
  margin:0; font-family:var(--mono); font-size:.72rem; letter-spacing:.06em;
  text-align:center; color:var(--blue-dk); min-height:1.2em;
}
.form__status[data-err]{ color:var(--stamp); }

/* ============================================================
   FOOTER
   ============================================================ */
.foot{ background:var(--ink); color:var(--chrome-lt); }
.foot__in{
  max-width:var(--maxw); margin-inline:auto;
  padding:clamp(2.25rem,5vw,3.5rem) var(--pad);
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(1.75rem,4vw,3rem);
  align-items:start;
}
.foot__brand{ display:flex; gap:1rem; align-items:flex-start; }
.foot__brand img{ width:60px; height:60px; object-fit:contain; flex:none; }
.foot__brand strong{
  font-family:var(--disp); font-weight:800; font-size:1.2rem;
  text-transform:uppercase; color:#fff; display:block;
}
.foot__brand p{
  margin:.5rem 0 0; font-size:.925rem; font-style:italic;
  color:var(--chrome); max-width:36ch; line-height:1.5;
}
.foot__fields{ margin:0; display:grid; }
.foot .fld{ border-bottom-color:rgba(226,229,231,.2); }
.foot .fld dt{ color:var(--chrome); }
.foot .fld dd{ color:#fff; }
.foot .fld dd a{ text-decoration:none; }
.foot .fld dd a:hover{ color:var(--blue); text-decoration:underline; }
.foot__bar{
  border-top:1px solid rgba(226,229,231,.2);
}
.foot__bar{
  max-width:var(--maxw); margin-inline:auto;
  padding:1rem var(--pad);
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
}
.foot__bar .mono{ color:var(--chrome); }

/* ============================================================
   MOBILE CALL BAR
   ============================================================ */
.callbar{
  position:fixed; left:0; right:0; bottom:0; z-index:70;
  display:none; align-items:center; justify-content:center; gap:.6rem;
  padding:.85rem 1rem calc(.85rem + env(safe-area-inset-bottom));
  background:var(--blue-dk); color:#fff;
  font-family:var(--disp); font-weight:700; font-size:1.05rem;
  text-decoration:none;
  box-shadow:0 -2px 18px rgba(14,20,27,.28);
}

/* ============================================================
   REVEAL
   ============================================================ */
[data-rv]{
  opacity:0;
  transform:translateY(14px);
  transition:opacity .6s var(--ease), transform .6s var(--ease);
}
[data-rv][data-in]{ opacity:1; transform:none; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1100px){
  .how__side{ max-width:560px; }
  .tag__fields{ grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:0 1.75rem; }
  .how{ grid-template-columns:1fr; }
  .how__fig{ max-width:520px; }
  .est{ grid-template-columns:1fr; }
}

@media (max-width:860px){
  .tkt-nav{ display:none; }
  .foot__in{ grid-template-columns:1fr; }
}

@media (max-width:860px){
  .hero__foot{ flex-direction:column; align-items:flex-start; gap:.9rem; }
  .hero__scroll{ display:none; }
}

@media (max-width:640px){
  body{ padding-bottom:64px; }
  .hero__stage{ min-height:calc(100svh - 56px); }
  .callbar{ display:flex; }
  .burn{ display:none; }
  .btn--call{ display:none; }
  .brand__mark{ width:40px; height:40px; }
  .brand__txt strong{ font-size:.95rem; }
  .hero__acts .btn{ width:100%; justify-content:center; }
  .ba__lbl{ font-size:.6875rem; padding:.25rem .45rem; }
  .ba__grip{ width:40px; height:40px; }
  .stamp__in{ font-size:.85rem; border-width:2px; }
  .svc__i{ padding-right:1rem; border-right:0; }
  .fld dd{ font-size:.95rem; }
  .foot__bar{ justify-content:flex-start; }
}

@media (max-width:400px){
  .chips{ gap:.35rem; }
  .chip span{ font-size:.875rem; padding:.38rem .6rem; }
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  [data-rv]{ opacity:1; transform:none; }
  .stamp{ opacity:1; }
  .ba__hint::before{ animation:none; }
}

@media print{
  .tkt-head, .callbar, .burn, .ba__range, .ba__handle{ display:none; }
  body{ background:#fff; }
}
