
/* ============================================================
   TOKENS
   ============================================================ */
:root{
  --ink:        #050505;
  --graphite:   #121214;
  --panel:      #17171a;
  --paper:      #f2efe9;
  --paper-dim:  #e7e3da;
  --steel:      #8f8d87;
  --steel-2:    #5c5b57;
  --line:       rgba(245,243,239,.13);
  --line-2:     rgba(245,243,239,.24);
  --red:        #c51724;
  --red-2:      #e3262e;
  --red-dim:    #5b1118;

  --display: "Barlow Condensed", sans-serif;
  --body: "Inter", system-ui, sans-serif;

  --max: 1360px;
  --pad: clamp(20px, 4.4vw, 72px);
  --rail: 1px;

  --ease-out: cubic-bezier(.16,.9,.2,1);
  --ease-in-out: cubic-bezier(.6,0,.2,1);
}

*{ box-sizing: border-box; }
html{
  background: var(--ink);
  color-scheme: dark;
}
body{
  margin: 0;
  overflow-x: clip;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  cursor: default;
}
body.lenis, html.lenis{ height: auto; }
body.menu-open{ overflow: hidden; }
section[id], form[id]{scroll-margin-top:76px}
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
::selection{ background:var(--red); color:var(--paper); }

:focus-visible{
  outline: 2px solid var(--red-2);
  outline-offset: 3px;
  border-radius: 2px;
}

.container{
  width: min(var(--max), calc(100% - var(--pad) * 2));
  margin-inline: auto;
}

.tnum{ font-variant-numeric: tabular-nums; }

.sr-only{
  position:absolute; width:1px; height:1px;
  padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

.eyebrow{
  margin:0;
  font: 600 11.5px/1 var(--body);
  letter-spacing:.2em;
  text-transform:uppercase;
  color: var(--steel);
}
.eyebrow em{
  font-style:normal;
  color: var(--red-2);
}

/* ============================================================
   BOOT
   ============================================================ */
.boot{
  position:fixed; inset:0; z-index:9999;
  display:grid; place-items:center;
  background:var(--ink);
  transition: opacity .7s var(--ease-in-out), visibility .7s;
}
.boot.is-done{ opacity:0; visibility:hidden; pointer-events:none; }
.boot__mark{
  font-family:var(--display);
  font-weight:800;
  font-style:normal;
  font-size:clamp(40px,7vw,64px);
  letter-spacing:.02em;
  color:var(--paper);
  display:flex; align-items:center; gap:14px;
}
.boot__mark i{
  display:inline-block; width:34px; height:2px; background:var(--red);
  transform-origin:left center;
  animation: bootline 1.1s var(--ease-in-out) infinite alternate;
}
@keyframes bootline{ from{ width:8px; } to{ width:46px; } }
.boot__pct{
  position:absolute; bottom:clamp(24px,5vw,52px); left:0; right:0;
  display:flex; justify-content:space-between;
  padding-inline:var(--pad);
  font:600 11px/1 var(--body); letter-spacing:.18em; text-transform:uppercase;
  color:var(--steel);
}

/* ============================================================
   SIGNATURE RAIL — the continuous spine through the page
   ============================================================ */
.rail{
  position:absolute; left:0; right:0; top:0;
  height:var(--rail);
  background: linear-gradient(90deg, transparent, var(--line-2) 12%, var(--line-2) 88%, transparent);
  transform-origin:left center;
  pointer-events:none;
}
.rail--active{
  background: linear-gradient(90deg, transparent, var(--red) 12%, var(--red) 88%, transparent);
}

/* ============================================================
   MEDIA
   ============================================================ */
.media-slot{
  position:relative;
  border:1px solid var(--line-2);
  background:
    repeating-linear-gradient(135deg, transparent 0 18px, rgba(245,243,239,.025) 18px 19px),
    var(--graphite);
  overflow:hidden;
  isolation:isolate;
}
.media-slot::before{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(var(--line) 1px, transparent 1px) 0 0/100% 25%,
    linear-gradient(90deg, var(--line) 1px, transparent 1px) 0 0/25% 100%;
  opacity:.35;
}
.media-slot__tag{
  position:absolute; top:14px; left:14px;
  display:flex; align-items:center; gap:8px;
  font:600 10.5px/1 var(--body); letter-spacing:.16em; text-transform:uppercase;
  color:var(--steel);
  z-index:2;
}
.media-slot__tag i{
  width:6px; height:6px; border-radius:50%;
  background:var(--red); flex:none;
}
.media-slot__ratio{
  position:absolute; bottom:14px; right:14px;
  font:600 10.5px/1 var(--body); letter-spacing:.14em;
  color:var(--steel-2);
  z-index:2;
}
.media-slot__corner{
  position:absolute; width:18px; height:18px; z-index:2;
  border-color:var(--line-2); opacity:.9;
}
.media-slot__corner.tl{ top:-1px; left:-1px; border-top:1px solid; border-left:1px solid; }
.media-slot__corner.tr{ top:-1px; right:-1px; border-top:1px solid; border-right:1px solid; }
.media-slot__corner.bl{ bottom:-1px; left:-1px; border-bottom:1px solid; border-left:1px solid; }
.media-slot__corner.br{ bottom:-1px; right:-1px; border-bottom:1px solid; border-right:1px solid; }

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:500;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px var(--pad);
  mix-blend-mode:normal;
}
.site-header::before{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(5,5,5,.85) 0%, transparent 100%);
  pointer-events:none;
  opacity:0; transition:opacity .4s;
}
.site-header.is-scrolled::before{ opacity:1; }

.brand{
  display:flex; align-items:center; gap:11px;
  font-family:var(--display); position:relative; z-index:2;
}
.brand__symbol{
  width:30px; height:30px; display:grid; place-items:center;
  border:1px solid var(--line-2);
  font-weight:800; font-size:15px; font-style:italic;
  color:var(--red-2);
}
.brand__text{ display:flex; flex-direction:column; line-height:1; }
.brand__text strong{ font-weight:800; font-size:16px; letter-spacing:.03em; }
.brand__text small{ font:600 8.5px var(--body); letter-spacing:.16em; color:var(--steel); margin-top:3px; }

.nav{
  display:flex; gap:30px;
  font:600 12.5px/1 var(--body); letter-spacing:.03em;
  position:relative; z-index:2;
}
.nav a{
  color:var(--paper); opacity:.72; position:relative; padding-bottom:3px;
  transition:opacity .25s;
}
.nav a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:var(--red-2); transition:width .3s var(--ease-out);
}
.nav a:hover{ opacity:1; }
.nav a:hover::after{ width:100%; }

.header-cta{
  display:flex; align-items:center; gap:8px;
  font:600 12px/1 var(--body); letter-spacing:.02em;
  border:1px solid var(--line-2); padding:10px 16px;
  position:relative; z-index:2;
  transition:border-color .25s, background .25s;
}
.header-cta svg{ width:13px; height:13px; stroke:currentColor; fill:none; stroke-width:2; transition:transform .25s; }
.header-cta:hover{ border-color:var(--red-2); background:rgba(197,23,36,.08); }
.header-cta:hover svg{ transform:translateX(3px); }

.menu-toggle{ display:none; z-index:2; width:30px; height:22px; position:relative; }
.menu-toggle span{
  position:absolute; left:0; right:0; height:1.5px; background:var(--paper);
  transition:transform .3s var(--ease-in-out), opacity .3s;
}
.menu-toggle span:first-child{ top:2px; }
.menu-toggle span:last-child{ bottom:2px; }
body.menu-open .menu-toggle span:first-child{ transform:translateY(9px) rotate(45deg); }
body.menu-open .menu-toggle span:last-child{ transform:translateY(-9px) rotate(-45deg); }

.mobile-nav{
  position:fixed; inset:0; z-index:400;
  background:var(--ink);
  display:flex; flex-direction:column; justify-content:center; gap:22px;
  padding:var(--pad);
  transform:translateY(-100%);
  transition:transform .5s var(--ease-in-out);
}
body.menu-open .mobile-nav{ transform:translateY(0); }
.mobile-nav a{
  font-family:var(--display); font-weight:700; font-size:clamp(30px,9vw,48px);
  color:var(--paper); border-bottom:1px solid var(--line); padding-bottom:14px;
}
.mobile-nav .header-cta{ align-self:flex-start; margin-top:10px; }

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding-top:120px;
  overflow:hidden;
}
.hero__field{
  position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(120% 90% at 82% 8%, rgba(197,23,36,.16), transparent 55%),
    radial-gradient(90% 70% at 10% 100%, rgba(197,23,36,.08), transparent 60%),
    var(--ink);
}
.hero__media{
  position:absolute; inset:0 0 0 auto; z-index:0;
  width:min(70vw,1080px);
  overflow:hidden;
  opacity:.98;
  clip-path:polygon(6% 0,100% 0,100% 100%,0 100%);
}
.hero__media img{
  width:100%; height:100%; object-fit:cover; object-position:50% 40%;
  filter:saturate(.9) contrast(1.06) brightness(.9);
  transform:scale(1.012);
}
.hero__media::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(90deg,var(--ink) 0%,rgba(5,5,5,.88) 15%,rgba(5,5,5,.3) 50%,rgba(5,5,5,.03) 100%),
    linear-gradient(0deg,var(--ink) 0%,rgba(5,5,5,.72) 17%,transparent 42%,rgba(5,5,5,.08) 100%);
}
.hero__media-label{
  position:absolute; z-index:2; right:var(--pad); top:184px;
  display:flex; align-items:center; gap:9px;
  font:600 9px/1 var(--body); letter-spacing:.17em; text-transform:uppercase;
  color:rgba(245,243,239,.56);
}
.hero__media-label::before{content:"";width:20px;height:1px;background:var(--red-2)}
.hero__grid{
  position:absolute; inset:0; z-index:0; opacity:.5;
  background:
    linear-gradient(var(--line) 1px, transparent 1px) 0 0/100% 12.5%,
    linear-gradient(90deg, var(--line) 1px, transparent 1px) 0 0/8.333% 100%;
  mask-image: linear-gradient(to bottom, black, transparent 85%);
}
.hero__coords{
  position:absolute; top:130px; left:var(--pad); z-index:2;
  font:600 10.5px/1.6 var(--body); letter-spacing:.12em;
  color:var(--steel-2);
}
.hero__coords span{ display:block; }

.hero__content{
  position:relative; z-index:2;
  padding-bottom:clamp(28px,5vw,56px);
}
.hero__title{
  margin:0 0 clamp(20px,3vw,34px);
  font-family:var(--display);
  font-weight:800;
  font-size:clamp(46px, 10.6vw, 148px);
  line-height:.86;
  letter-spacing:-.01em;
  text-transform:uppercase;
}
.hero__title .line{ display:block; overflow:hidden; }
.hero__title .line span{ display:inline-block; will-change:transform; }
.hero__title .line--accent span{ color:var(--red-2); font-style:italic; }
.hero__title .line--outline span{
  color:transparent;
  -webkit-text-stroke:1.4px var(--paper);
}

.hero__bottom{
  display:grid;
  grid-template-columns:1.15fr auto;
  gap:clamp(28px,5vw,72px);
  align-items:end;
  padding-top:14px;
  border-top:1px solid var(--line);
}
.hero__copy{ padding-top:20px; max-width:44ch; }
.hero__copy p{
  margin:0; font-size:15px; line-height:1.6; color:var(--steel);
}
.hero__copy strong{ color:var(--paper); font-weight:600; }

.hero__actions{
  display:flex; flex-direction:column; align-items:flex-start; gap:16px;
  padding-top:20px;
}
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font:700 13px/1 var(--body); letter-spacing:.03em;
  padding:16px 24px;
  white-space:nowrap;
  position:relative;
  isolation:isolate;
}
.btn svg{ width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2; transition:transform .3s var(--ease-out); }
.btn--primary{
  background:var(--red); color:var(--paper);
  overflow:hidden;
}
.btn--primary::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--red-2);
  transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease-out);
}
.btn--primary:hover::before{ transform:scaleX(1); }
.btn--primary:hover svg{ transform:translateX(4px); }
.btn--ghost{
  border:1px solid var(--line-2); color:var(--paper);
  transition:border-color .25s, color .25s;
}
.btn--ghost:hover{ border-color:var(--red-2); color:var(--red-2); }

.hero__scrollcue{
  position:absolute; bottom:22px; right:var(--pad); z-index:2;
  display:flex; align-items:center; gap:10px;
  font:600 10px/1 var(--body); letter-spacing:.18em; text-transform:uppercase;
  color:var(--steel);
}
.hero__scrollcue i{
  width:1px; height:34px; background:var(--line-2); position:relative; overflow:hidden;
}
.hero__scrollcue i::after{
  content:""; position:absolute; left:0; top:-100%; width:100%; height:100%;
  background:var(--red-2);
  animation:scrolldrip 1.8s var(--ease-in-out) infinite;
}
@keyframes scrolldrip{ 0%{ top:-100%; } 60%,100%{ top:100%; } }

/* rating strip pinned to the rail at hero base */
.hero__proof{
  position:absolute; top:112px; right:var(--pad); z-index:3;
  transform:none;
  display:flex; align-items:center; gap:14px;
  background:rgba(5,5,5,.64);
  backdrop-filter:blur(12px);
  padding:10px 16px;
  border:1px solid var(--line-2);
}
.hero__proof .stars{ color:var(--red-2); font-size:13px; letter-spacing:1px; }
.hero__proof strong{ font-family:var(--display); font-weight:700; font-size:20px; }
.hero__proof small{ display:block; font:600 9.5px/1.3 var(--body); color:var(--steel); letter-spacing:.05em; }
.hero__proof .div{ width:1px; height:26px; background:var(--line-2); }

/* ============================================================
   STATION HEADER — shared by scroll "stations"
   ============================================================ */
.station{ position:relative; }
.station__head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:24px;
  padding-block:clamp(20px,4vw,32px);
  border-top:1px solid var(--line);
}
.station__mark{
  display:flex; align-items:center; gap:12px;
  font-family:var(--display); font-weight:700;
}
.station__mark i{
  width:8px; height:8px; background:var(--red); flex:none;
}
.station__mark span{ font-size:13px; letter-spacing:.28em; text-transform:uppercase; color:var(--steel); }
.station__title{
  font-family:var(--display); font-weight:800; text-transform:uppercase;
  font-size:clamp(30px,4.6vw,58px); line-height:.92; letter-spacing:-.005em;
  margin:0;
}
.station__title em{ font-style:italic; color:var(--red-2); }

/* ============================================================
   MANIFESTO
   ============================================================ */
.manifesto{
  background:var(--ink);
  padding-block:clamp(82px,12vw,150px) clamp(54px,8vw,96px);
}
.manifesto__grid{
  display:grid;
  grid-template-columns:.9fr 1.6fr;
  gap:clamp(30px,5vw,80px);
}
.manifesto__lead{ position:sticky; top:120px; align-self:start; }
.manifesto__lead p{
  font-size:14px; color:var(--steel); line-height:1.7; max-width:32ch; margin-top:16px;
}
.manifesto__display{
  font-family:var(--display); font-weight:700; text-transform:uppercase;
  font-size:clamp(30px,5.2vw,64px); line-height:1.02; letter-spacing:-.005em;
}
.manifesto__display .fade-word{ opacity:.22; transition:opacity .1s linear; }
.manifesto__display em{ font-style:italic; color:var(--red-2); }

.manifesto__stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(22px,4vw,48px);
  margin-top:clamp(40px,6vw,64px);
  padding-top:24px;
  border-top:1px solid var(--line);
}
.manifesto__stat{min-width:0}
.manifesto__stat--since strong{color:var(--red-2)}
.manifesto__stat-kicker{display:block;margin-bottom:5px;color:var(--steel-2);font:700 9px/1 var(--body);letter-spacing:.16em;text-transform:uppercase}
.manifesto__stat strong{
  display:block; font-family:var(--display); font-weight:800; font-size:clamp(34px,4vw,46px);
  line-height:1; color:var(--paper);
}
.manifesto__stat strong sup{ font-size:.4em; color:var(--red-2); top:-.6em; }
.manifesto__stat small{ display:block; margin-top:8px; font:600 10.5px/1.4 var(--body); letter-spacing:.1em; text-transform:uppercase; color:var(--steel); }

.manifesto__rail{
  margin-top:clamp(34px,5vw,54px);
  border-block:1px solid var(--line);
  overflow:hidden;
  padding:13px 0 14px;
  mask-image:linear-gradient(90deg,transparent,black 8%,black 92%,transparent);
}
.manifesto__rail-track{
  display:flex; align-items:center; gap:24px; width:max-content;
  white-space:nowrap; animation:manifestoRail 28s linear infinite;
}
.manifesto__rail-track span{
  font:italic 700 clamp(18px,2.3vw,28px)/1 var(--display);
  color:rgba(245,243,239,.17); text-transform:uppercase; letter-spacing:.02em;
}
.manifesto__rail-track i{width:5px;height:5px;background:var(--red);transform:rotate(45deg);flex:none}
@keyframes manifestoRail{to{transform:translateX(-50%)}}

/* ============================================================
   SERVICES — horizontal inspection pass
   ============================================================ */
.services{
  position:relative;
  height:420vh;
  min-height:2600px;
  background:var(--ink);
  overflow:clip;
}
.services__sticky{
  position:sticky;
  top:0;
  height:100vh;
  height:100svh;
  min-height:600px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  background:var(--ink);
}
.services__grid{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.72;
  background:
    linear-gradient(rgba(245,243,239,.022) 1px,transparent 1px),
    linear-gradient(90deg,rgba(245,243,239,.022) 1px,transparent 1px);
  background-size:80px 80px;
  mask-image:linear-gradient(90deg,transparent,black 16%,black 84%,transparent);
}
.services__headwrap{
  position:relative;
  z-index:2;
  flex:none;
  padding-top:clamp(64px,9vh,96px);
}
.services__intro{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:clamp(28px,5vw,72px);
  align-items:end;
  padding-block:clamp(14px,2vh,22px) clamp(22px,3.5vh,36px);
}
.services__intro-copy{max-width:62ch}
.services__intro p{color:var(--steel);font-size:14.5px;line-height:1.65;margin-top:12px;max-width:54ch}
.services__counter{
  display:flex;
  align-items:center;
  gap:12px;
  padding-bottom:5px;
  font-family:var(--display);
  font-variant-numeric:tabular-nums;
}
.services__counter-current{
  min-width:34px;
  color:var(--red-2);
  font-size:30px;
  font-weight:700;
  line-height:1;
}
.services__counter-line{
  position:relative;
  width:72px;
  height:1px;
  background:var(--line-2);
  overflow:hidden;
}
.services__counter-line i{
  position:absolute;
  inset:0 auto 0 0;
  width:12.5%;
  background:var(--red-2);
  transform-origin:left center;
}
.services__counter-total{color:var(--steel-2);font-size:15px;font-weight:600}
.services__viewport{
  position:relative;
  z-index:2;
  flex:1;
  min-height:0;
  overflow:hidden;
}
.services__track{
  display:flex;
  align-items:stretch;
  width:max-content;
  height:auto;
  gap:14px;
  padding:0 var(--pad) clamp(24px,4vh,40px);
  will-change:transform;
}
.service-card{
  position:relative;
  width:clamp(330px,29vw,420px);
  height:auto;
  min-height:0;
  flex:none;
  display:grid;
  grid-template-rows:clamp(185px,21vw,230px) auto;
  border:1px solid var(--line);
  background:linear-gradient(145deg,rgba(23,23,26,.98),rgba(10,10,12,1));
  overflow:hidden;
  transition:border-color .35s var(--ease-out),background .35s var(--ease-out),transform .35s var(--ease-out);
}
.service-card::before{
  content:"";
  position:absolute;
  z-index:4;
  left:0;
  top:0;
  width:72px;
  height:2px;
  background:var(--red-2);
  transform:scaleX(.32);
  transform-origin:left;
  opacity:.76;
  transition:transform .45s var(--ease-out),opacity .35s;
}
.service-card::after{
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  border:1px solid transparent;
  pointer-events:none;
  transition:border-color .35s var(--ease-out);
}
.service-card:hover,
.service-card.is-current{
  border-color:rgba(227,38,46,.48);
  background:linear-gradient(145deg,rgba(30,24,28,.98),rgba(11,11,13,.98));
}
.service-card:hover::after,
.service-card.is-current::after{border-color:rgba(227,38,46,.15)}
.service-card:hover::before,
.service-card.is-current::before{transform:scaleX(1);opacity:1}
.service-card__media{
  position:relative;
  min-height:0;
  overflow:hidden;
  background:var(--graphite);
  border-bottom:1px solid var(--line);
}
.service-card__media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(5,5,5,.04),rgba(5,5,5,.08) 60%,rgba(5,5,5,.62));
  pointer-events:none;
}
.service-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:var(--media-pos,50% 50%);
  filter:saturate(.84) contrast(1.05);
  transform:scale(1.015);
  transition:transform .8s var(--ease-out),filter .5s;
}
.service-card:hover .service-card__media img,
.service-card.is-current .service-card__media img{transform:scale(1.055);filter:saturate(.98) contrast(1.06)}
.service-card__media-label{
  position:absolute;
  z-index:2;
  left:18px;
  bottom:14px;
  padding:6px 8px;
  border:1px solid rgba(245,243,239,.2);
  background:rgba(5,5,5,.46);
  backdrop-filter:blur(8px);
  color:rgba(245,243,239,.74);
  font:600 8.5px/1 var(--body);
  letter-spacing:.15em;
  text-transform:uppercase;
}
.service-card__media--placeholder{
  display:grid;
  place-items:center;
  background:
    linear-gradient(rgba(245,243,239,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(245,243,239,.035) 1px,transparent 1px),
    linear-gradient(145deg,#18181b,#0c0c0e);
  background-size:42px 42px,42px 42px,auto;
}
.service-card__media--placeholder span{
  color:var(--steel-2);
  font:600 9px/1 var(--body);
  letter-spacing:.16em;
  text-transform:uppercase;
}
.service-card__body{
  position:relative;
  z-index:3;
  min-height:0;
  display:flex;
  flex-direction:column;
  padding:clamp(16px,1.6vw,20px);
  background:linear-gradient(145deg,rgba(23,23,26,.99),rgba(10,10,12,1));
}
.service-card__top{display:flex;align-items:center;justify-content:space-between;gap:18px}
.service-card__num{
  font:700 11px/1 var(--body);
  letter-spacing:.16em;
  color:var(--steel-2);
}
.service-card__tag{
  font:600 9px/1 var(--body);
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--red-2);
  border:1px solid var(--red-dim);
  padding:5px 8px;
}
.service-card__name{
  margin:12px 0 0;
  font-family:var(--display);
  font-size:clamp(29px,2.35vw,36px);
  line-height:.9;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:-.015em;
  max-width:10ch;
}
.service-card__desc{
  margin:9px 0 0;
  max-width:34ch;
  color:var(--steel);
  font-size:12px;
  line-height:1.42;
}
.service-card__cta{
  margin-top:14px;
  align-self:flex-start;
  display:flex;
  align-items:center;
  gap:9px;
  padding:10px 14px;
  border:1px solid var(--line-2);
  font:700 12px/1 var(--body);
  transition:border-color .25s,color .25s,background .25s;
}
.service-card__cta svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2;transition:transform .25s}
.service-card__cta:hover{border-color:var(--red-2);color:var(--red-2);background:rgba(197,23,36,.07)}
.service-card__cta:hover svg{transform:translate(2px,-2px)}
.services__foot{
  position:relative;
  z-index:2;
  flex:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding-bottom:clamp(18px,2.5vh,28px);
  color:var(--steel-2);
  font:600 9.5px/1 var(--body);
  letter-spacing:.14em;
  text-transform:uppercase;
}
.services__foot-line{height:1px;flex:1;max-width:220px;background:linear-gradient(90deg,var(--red-dim),var(--line))}

.services-more{
  position:relative;
  background:var(--ink);
  border-top:1px solid var(--line);
  padding-block:clamp(56px,8vw,96px);
}
.services-more__bar{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:32px;
}
.services-more__bar .eyebrow{margin-bottom:16px}
.services-more__toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-width:140px;
  padding:16px 20px;
  border:1px solid var(--red-2);
  color:var(--paper);
  font:700 12.5px/1 var(--body);
  transition:background .25s,color .25s;
}
.services-more__toggle:hover{background:var(--red-2)}
.services-more__toggle svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;transition:transform .35s var(--ease-out)}
.services-more__toggle[aria-expanded="true"] svg{transform:rotate(45deg)}
.services-more__panel{
  max-height:0;
  overflow:hidden;
  opacity:0;
  visibility:hidden;
  transition:max-height .75s var(--ease-out),opacity .4s ease,visibility .4s;
}
.services-more.is-open .services-more__panel{max-height:1400px;opacity:1;visibility:visible}
.services-more__list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 clamp(28px,5vw,72px);
  margin-top:clamp(40px,6vw,72px);
  border-top:1px solid var(--line-2);
}
.service-row{
  min-width:0;
  display:grid;
  grid-template-columns:38px minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  padding:22px 0;
  border-bottom:1px solid var(--line);
}
.service-row__num{color:var(--red-2);font:700 12px/1 var(--body);letter-spacing:.08em}
.service-row h3{margin:0;font:700 clamp(22px,2.2vw,30px)/1 var(--display);text-transform:uppercase}
.service-row p{margin:8px 0 0;color:var(--steel);font-size:12.5px;line-height:1.55;max-width:45ch}
.service-row button{padding:10px 0 10px 14px;color:var(--steel);font:700 11px/1 var(--body);white-space:nowrap;transition:color .2s}
.service-row button:hover{color:var(--red-2)}

/* ============================================================
   TRANSFORMATION — wipe divider signature moment
   ============================================================ */
.transformation{
  position:relative;
  background:var(--paper);
  color:var(--ink);
  padding-block:clamp(78px,11vw,132px);
  overflow:hidden;
}
.transformation .station__mark span,
.transformation .eyebrow{ color:var(--steel-2); }
.transformation .station__title{ color:var(--ink); }

.wipe{
  position:relative;
  margin-top:clamp(50px,8vw,90px);
  aspect-ratio:16/8;
  border:1px solid rgba(5,5,5,.16);
  overflow:hidden;
}
.wipe__before, .wipe__after{
  position:absolute; inset:0;
}
.wipe__before{
  background:
    repeating-linear-gradient(135deg, transparent 0 16px, rgba(5,5,5,.05) 16px 17px),
    var(--paper-dim);
}
.wipe__after{
  background:
    repeating-linear-gradient(135deg, transparent 0 16px, rgba(245,243,239,.045) 16px 17px),
    var(--graphite);
  clip-path: inset(0 50% 0 0);
}
.wipe__label{
  position:absolute; bottom:16px;
  font:700 11px/1 var(--body); letter-spacing:.16em; text-transform:uppercase;
}
.wipe__label--before{ left:16px; color:var(--steel-2); }
.wipe__label--after{ right:16px; color:var(--steel); }
.wipe__handle{
  position:absolute; top:0; bottom:0; left:50%; width:1px;
  background:var(--ink);
  transform:translateX(-50%);
}
.wipe__handle::before{
  content:""; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:38px; height:38px; border-radius:50%;
  background:var(--ink); display:grid; place-items:center;
}
.wipe__handle::after{
  content:"◂ ▸"; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  font-size:10px; letter-spacing:3px; color:var(--paper);
}

.transformation__copy{
  margin-top:clamp(28px,4vw,40px);
  max-width:58ch;
  font-size:15px; line-height:1.65; color:var(--steel-2);
}

.real-media{
  margin-top:clamp(40px,6vw,68px);
  display:grid;
  grid-template-columns:minmax(0,560px);
  gap:12px;
  align-items:stretch;
  justify-content:center;
  max-width:min(720px,100%);
  margin-inline:auto;
}
.real-media__card{
  position:relative; overflow:hidden; margin:0;
  border:1px solid rgba(5,5,5,.16); background:#111; isolation:isolate;
}
.real-media__card--tall,.real-media__card--video{
  aspect-ratio:9 / 16;
  min-height:clamp(420px,55vw,760px);
}
.real-media__card img,
.real-media__card video{
  width:100%; height:100%; object-fit:cover; position:absolute; inset:0;
  filter:saturate(.86) contrast(1.05); transition:transform .9s var(--ease-out),filter .5s;
}
.real-media__card--video video{ object-position:center center; background:#0b0b0c; }
.real-media__sound{
  position:absolute;
  z-index:4;
  top:15px;
  right:15px;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border:1px solid rgba(245,243,239,.18);
  background:rgba(5,5,5,.3);
  color:var(--paper);
  opacity:.48;
  backdrop-filter:blur(10px);
  transition:opacity .2s,border-color .2s,background .2s;
}
.real-media__sound:hover,
.real-media__sound:focus-visible{opacity:1;border-color:rgba(245,243,239,.46);background:rgba(5,5,5,.56);outline:0}
.real-media__sound svg{width:15px;height:15px;fill:currentColor;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.real-media__sound .real-media__sound-wave{fill:none;transition:opacity .2s}
.real-media__sound.is-muted .real-media__sound-wave{opacity:0}
.real-media__sound.is-muted::after{content:"";position:absolute;width:17px;height:1px;background:currentColor;transform:rotate(-45deg)}
.real-media__card--video::before{
  content:"vídeo"; position:absolute; top:16px; left:16px; z-index:2;
  padding:8px 10px; border:1px solid rgba(245,243,239,.18);
  background:rgba(5,5,5,.38); backdrop-filter:blur(10px);
  font:700 10px/1 var(--body); letter-spacing:.14em; text-transform:uppercase; color:var(--paper);
}
.real-media__card--place img{ object-position:50% 48%; transform:scale(1.02); }
.real-media__card::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(0deg,rgba(5,5,5,.82),rgba(5,5,5,.06) 54%,rgba(5,5,5,.02));
}
.real-media__card:hover img,
.real-media__card:hover video{ transform:scale(1.045); filter:saturate(.98) contrast(1.04); }
.real-media__meta{
  position:absolute; z-index:2; left:20px; right:20px; bottom:18px;
  display:flex; align-items:flex-end; justify-content:space-between; gap:16px; color:var(--paper);
}
.real-media__meta small{display:block;font:600 9px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:rgba(245,243,239,.56);margin-bottom:7px}
.real-media__meta strong{font:700 clamp(24px,3vw,38px)/.9 var(--display);text-transform:uppercase}
.real-media__meta span{font:600 9px/1.4 var(--body);letter-spacing:.08em;text-transform:uppercase;color:rgba(245,243,239,.6);text-align:right}
.real-media__note{
  display:flex; justify-content:space-between; gap:28px; align-items:flex-start;
  margin-top:20px; padding-top:18px; border-top:1px solid rgba(5,5,5,.15);
}
.real-media__note p{margin:0;max-width:62ch;font-size:14.5px;line-height:1.65;color:var(--steel-2)}
.real-media__note strong{color:var(--ink);font-weight:650}
.real-media__note span{font:600 10px/1.5 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--red);white-space:nowrap}

/* ============================================================
   PROOF / STUDIO
   ============================================================ */
.proof{
  background:
    radial-gradient(72% 110% at 0 42%,rgba(227,38,46,.34),transparent 60%),
    linear-gradient(135deg,#591118 0%,#21090c 48%,#09090b 100%);
  color:var(--paper);
  padding-block:clamp(90px,12vw,146px);
  position:relative;
  overflow:hidden;
}
.proof::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.32;
  background:
    linear-gradient(rgba(245,243,239,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(245,243,239,.035) 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(90deg,black,transparent 76%);
}
.proof::after{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--red-2),var(--red-dim) 44%,transparent 86%)}
.proof .container{position:relative;z-index:1}
.proof__panel{
  position:relative;
  display:grid;
  grid-template-columns:minmax(300px,.9fr) minmax(360px,1.1fr);
  align-items:center;
  gap:clamp(46px,7vw,108px);
  min-height:clamp(510px,47vw,650px);
  padding:clamp(34px,5vw,76px);
  border:1px solid rgba(245,243,239,.3);
  background:rgba(8,5,7,.4);
  box-shadow:0 34px 90px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.04);
  backdrop-filter:blur(8px);
  overflow:hidden;
}
.proof__panel-quote{position:absolute;right:clamp(20px,4vw,58px);top:clamp(-42px,-2.5vw,-16px);color:rgba(245,243,239,.12);font:800 clamp(170px,19vw,300px)/1 var(--display);pointer-events:none}
.proof__score{
  position:relative;
  z-index:1;
  align-self:center;
  font:800 italic clamp(190px,25vw,380px)/.7 var(--display);
  letter-spacing:-.035em;
  color:var(--paper);
  text-shadow:0 12px 38px rgba(0,0,0,.32);
}
.proof__score sup{font-size:.22em;color:#ff4148;font-style:normal;position:relative;top:-1.25em;margin-left:4px}
.proof__meta{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.proof__stars{color:#ff4148;font-size:22px;letter-spacing:5px;white-space:nowrap}
.proof__count{margin:18px 0 0;font:700 clamp(25px,2.8vw,40px)/.94 var(--display);text-transform:uppercase;letter-spacing:.01em}
.proof__count strong{display:block;margin-bottom:12px;color:var(--paper);font-size:clamp(68px,8vw,116px);line-height:.68;font-style:italic}
.proof__carousel{width:100%;margin-top:clamp(26px,3vw,38px);padding:22px 0 18px;border-block:1px solid rgba(245,243,239,.15)}
.proof__carousel-stage{display:grid;min-height:clamp(190px,18vw,255px)}
.proof__testimonial{grid-area:1 / 1;align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:16px;margin:0;visibility:hidden;opacity:0;transform:translateY(12px);transition:opacity .45s var(--ease-out),transform .45s var(--ease-out),visibility .45s}
.proof__testimonial.is-active{visibility:visible;opacity:1;transform:none}
.proof__testimonial p{margin:0;max-width:40ch;color:rgba(245,243,239,.88);font:600 clamp(18px,1.5vw,24px)/1.3 var(--display)}
.proof__testimonial cite{color:#ff4148;font:700 10px/1 var(--body);font-style:normal;letter-spacing:.12em;text-transform:uppercase}
.proof__testimonial cite::before{content:"— ";color:rgba(245,243,239,.48)}
.proof__carousel-controls{display:flex;align-items:center;justify-content:flex-end;gap:20px;margin-top:18px}
.proof__carousel-controls > div{display:flex;gap:8px}
.proof__carousel-controls button{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(245,243,239,.2);color:var(--paper);transition:border-color .2s,background .2s,color .2s}
.proof__carousel-controls button:hover{border-color:#ff4148;background:rgba(227,38,46,.14);color:#ff4148}
.proof__carousel-controls svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}
.proof__link{display:inline-flex;align-items:center;gap:8px;width:max-content;margin-top:22px;font:700 11px/1 var(--body);letter-spacing:.05em;color:var(--paper);border-bottom:1px solid rgba(245,243,239,.24);padding-bottom:6px}
.proof__link svg{width:13px;height:13px;stroke:#ff4148;fill:none;stroke-width:2}

/* ============================================================
   ESTIMATE — orçamento wizard
   ============================================================ */
.estimate{
  position:relative;
  background:var(--panel);
  padding-block:clamp(70px,10vw,130px);
  border-top:1px solid var(--line);
  overflow:hidden;
}
.estimate::before,.estimate::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.estimate::before{width:620px;height:620px;right:-300px;top:-90px;border:1px solid rgba(197,23,36,.11);box-shadow:0 0 110px rgba(197,23,36,.035)}
.estimate::after{width:360px;height:360px;right:-170px;top:40px;border:1px solid rgba(197,23,36,.08)}
.estimate__grid{position:relative;z-index:1}
.estimate__grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:clamp(36px,5vw,80px);
}
.estimate__intro p{ color:var(--steel); font-size:14.5px; line-height:1.65; margin-top:14px; max-width:38ch; }
.estimate__intro-proof{
  margin-top:28px; padding-top:20px; border-top:1px solid var(--line);
  display:flex; align-items:center; gap:12px;
}
.estimate__intro-proof .stars{ color:var(--red-2); font-size:13px; letter-spacing:1px; }
.estimate__intro-proof span{ font:600 12px/1.4 var(--body); color:var(--steel); }
.estimate__intro-proof strong{ color:var(--paper); }

.wizard{
  background:var(--ink); border:1px solid var(--line-2);
  padding:clamp(24px,3.4vw,40px);
}
.wizard__steps{
  display:flex; gap:6px; margin-bottom:28px;
}
.wizard__steps i{
  flex:1; height:2px; background:var(--line-2); position:relative; overflow:hidden;
}
.wizard__steps i::after{
  content:""; position:absolute; inset:0; background:var(--red);
  transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease-out);
}
.wizard__steps i.is-done::after,
.wizard__steps i.is-active::after{ transform:scaleX(1); }

.wizard__panel{ display:none; }
.wizard__panel.is-active{ display:block; animation:panelin .4s var(--ease-out); }
@keyframes panelin{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:translateY(0); } }

.wizard__label{
  font:600 11px/1 var(--body); letter-spacing:.16em; text-transform:uppercase; color:var(--steel);
  margin-bottom:16px; display:block;
}
.wizard__hint{display:block;margin:-8px 0 16px;color:var(--steel-2);font-size:11.5px;line-height:1.4}
.wizard__options{
  display:grid; grid-template-columns:repeat(4,1fr); gap:10px;
}
.wizard__options.two{ grid-template-columns:repeat(2,1fr); }
.wopt{
  display:flex; flex-direction:column; align-items:center; gap:10px;
  padding:18px 8px;
  border:1px solid var(--line-2);
  font:600 11.5px/1.2 var(--body); text-align:center;
  transition:border-color .2s, background .2s, color .2s;
}
.wopt svg{ width:24px; height:24px; stroke:var(--steel); fill:none; stroke-width:1.5; transition:stroke .2s; }
.wopt:hover{ border-color:var(--line-2); background:rgba(245,243,239,.03); }
.wopt.is-selected{ border-color:var(--red-2); background:rgba(197,23,36,.1); color:var(--paper); }
.wopt.is-selected svg{ stroke:var(--red-2); }

.wizard__list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  max-height:440px;
  overflow-y:auto;
  padding-right:6px;
  scrollbar-color:var(--red-dim) transparent;
  scrollbar-width:thin;
}
.wlist-item{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 16px; border:1px solid var(--line-2);
  min-width:0;
  font:600 12.5px/1.15 var(--body);
  text-align:left;
  transition:border-color .2s, background .2s;
}
.wlist-item span small{ display:block; margin-top:5px; font:500 11px/1 var(--body); color:var(--steel); letter-spacing:0; text-transform:none; }
.wlist-item i{
  width:17px; height:17px; border:1px solid var(--line-2); flex:none;
  position:relative;
}
.wlist-item i::after{
  content:""; position:absolute; width:8px;height:4px;left:3px;top:4px;
  border-left:2px solid var(--paper);border-bottom:2px solid var(--paper);
  transform:rotate(-45deg) scale(0); transition:transform .2s var(--ease-out);
}
.wlist-item.is-selected{ border-color:var(--red-2); background:rgba(197,23,36,.08); }
.wlist-item.is-selected i{background:var(--red-2);border-color:var(--red-2)}
.wlist-item.is-selected i::after{ transform:rotate(-45deg) scale(1); }
.wlist-item:hover{ border-color:var(--line-2); background:rgba(245,243,239,.03); }
.wlist-item--help{grid-column:1/-1}

.wizard__fields{ display:flex; flex-direction:column; gap:14px; }
.wfield label{
  display:block; font:600 11px/1 var(--body); letter-spacing:.1em; text-transform:uppercase; color:var(--steel); margin-bottom:8px;
}
.wfield input{
  width:100%; background:transparent; border:1px solid var(--line-2); color:var(--paper);
  padding:14px 16px; font:500 14.5px/1 var(--body);
  transition:border-color .2s;
}
.wfield input::placeholder{ color:var(--steel-2); }
.wfield input:focus{ border-color:var(--red-2); outline:none; }

.wizard__summary{
  background:var(--panel); border:1px solid var(--line);
  padding:18px 20px; margin-top:4px;
  font-size:13px; color:var(--steel); line-height:1.7;
}
.wizard__summary strong{ color:var(--paper); }
.wizard__summary b{ color:var(--red-2); font-weight:700; }

.wizard__nav{
  display:flex; justify-content:space-between; align-items:center;
  margin-top:26px; padding-top:22px; border-top:1px solid var(--line);
}
.wnav-btn{
  display:flex; align-items:center; gap:8px;
  font:700 12.5px/1 var(--body); letter-spacing:.03em;
  padding:14px 20px;
}
.wnav-btn svg{ width:13px; height:13px; stroke:currentColor; fill:none; stroke-width:2; }
.wnav-back{ color:var(--steel); }
.wnav-back:hover{ color:var(--paper); }
.wnav-next{ background:var(--red); color:var(--paper); }
.wnav-next:hover{ background:var(--red-2); }
.wnav-next:disabled{ opacity:.35; pointer-events:none; }
.wnav-next.is-final{ background:var(--red); }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{
  position:relative;
  background:#050506;
  border-top:1px solid var(--line);
  padding-block:clamp(64px,8vw,100px) 28px;
  overflow:hidden;
}
.site-footer::before{content:"";position:absolute;width:520px;height:520px;right:-260px;top:-260px;border:1px solid rgba(227,38,46,.1);transform:rotate(45deg);pointer-events:none}
.site-footer .container{position:relative;z-index:1}
.footer__grid{
  display:grid;
  grid-template-columns:minmax(240px,1.22fr) minmax(130px,.58fr) minmax(190px,.76fr) minmax(210px,.92fr);
  gap:clamp(36px,5.5vw,86px);
  padding-bottom:clamp(48px,6vw,72px);
}
.footer__identity p{color:var(--steel);font-size:14px;line-height:1.75;max-width:38ch;margin:24px 0 0}
.footer__column{min-width:0;color:var(--steel);font-size:14px;line-height:1.72}
.footer__heading{
  font:700 11px/1 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--paper);
  margin-bottom:26px;display:block;
}
.footer__nav{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.footer__nav .footer__heading{margin-bottom:8px}
.footer__nav a{color:var(--steel);font-size:14px;transition:color .2s}
.footer__nav a:hover{color:var(--paper)}
.footer__detail + .footer__detail{margin-top:22px}
.footer__detail strong{display:block;margin-bottom:4px;color:var(--paper);font-weight:650}
.footer__detail a,.footer__detail p{margin:0;color:var(--steel);transition:color .2s}
.footer__detail a:hover{color:var(--paper)}
.footer__contact p{margin:0;max-width:26ch;color:var(--steel)}
.footer__phone{display:inline-block;margin-top:17px;color:var(--paper);font:700 21px/1 var(--display);transition:color .2s}
.footer__phone:hover{color:var(--red-2)}
.footer__channels{display:flex;align-items:center;gap:12px;margin-top:18px}
.footer__identity > .footer__channels{align-self:flex-start}
.footer__channel{
  display:grid;place-items:center;width:50px;height:50px;border-radius:50%;color:var(--paper);
  border:1px solid transparent;box-shadow:0 12px 28px rgba(0,0,0,.32);transition:transform .25s var(--ease-out),box-shadow .25s,filter .25s,background .25s,border-color .25s;
}
.footer__channel svg{width:21px;height:21px}
.footer__channel--whatsapp{background:var(--red)}
.footer__channel--whatsapp svg{fill:currentColor}
.footer__channel--instagram{background:var(--graphite);border-color:var(--red-dim)}
.footer__channel--instagram svg{fill:none;stroke:currentColor;stroke-width:1.8}
.footer__channel--instagram .footer__channel-dot{fill:currentColor;stroke:none}
.footer__channel:hover{transform:translateY(-3px);background:var(--red-2);border-color:var(--red-2);filter:brightness(1.05);box-shadow:0 16px 34px rgba(0,0,0,.42),0 0 20px rgba(227,38,46,.16)}

.footer__bottom{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding-top:26px;border-top:1px solid var(--line);flex-wrap:wrap;
}
.footer__legal{ font:500 11.5px/1.6 var(--body); color:var(--steel-2); }
.footer__credit{ font:500 11.5px/1.6 var(--body); color:var(--steel-2); }
.footer__credit a{ color:var(--steel); border-bottom:1px solid var(--line-2); transition:color .2s, border-color .2s; }
.footer__credit a:hover{ color:var(--red-2); border-color:var(--red-2); }

/* ============================================================
   FLOATING WHATSAPP
   ============================================================ */
.wa-float{
  position:fixed; z-index:300;
  right:var(--pad); bottom:var(--pad);
  display:flex; align-items:center; gap:10px;
  background:#25d366;color:#fff;
  padding:15px 20px;
  box-shadow:0 10px 30px rgba(0,0,0,.4),0 0 22px rgba(37,211,102,.22);
  transform:translateY(0);
  transition:transform .35s var(--ease-out), opacity .35s, background .25s, box-shadow .25s;
}
.wa-float__icon{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:#fff;box-shadow:0 4px 12px rgba(0,0,0,.16)}
.wa-float__icon svg{width:19px;height:19px;fill:#25d366}
.wa-float > span:last-child{font:700 12.5px/1 var(--body);letter-spacing:.02em;white-space:nowrap}
.wa-float:hover{ background:#20bd5a; box-shadow:0 12px 34px rgba(0,0,0,.42),0 0 28px rgba(37,211,102,.32); }
.wa-float.is-hidden{ transform:translateY(20px) scale(.9); opacity:0; pointer-events:none; }
.wa-float.is-compact > span:last-child{display:none}
.wa-float.is-compact{ padding:14px; }

@keyframes wa-neon-pulse{
  0%,100%{box-shadow:0 14px 34px rgba(0,0,0,.42),0 0 0 5px rgba(37,211,102,.12),0 0 24px rgba(37,211,102,.42)}
  50%{box-shadow:0 16px 38px rgba(0,0,0,.46),0 0 0 7px rgba(37,211,102,.16),0 0 38px rgba(37,211,102,.66)}
}

/* ============================================================
   CURSOR (desktop pointer:fine only)
   ============================================================ */
.cursor-dot{
  position:fixed; z-index:9000; top:0; left:0;
  width:8px; height:8px; border-radius:50%;
  background:var(--red-2);
  pointer-events:none;
  transform:translate(-50%,-50%);
  will-change:transform;
  transition:opacity .2s;
}
.cursor-ring{
  position:fixed; z-index:8999; top:0; left:0;
  width:34px; height:34px; border-radius:50%;
  border:1px solid var(--line-2);
  pointer-events:none;
  transform:translate(-50%,-50%);
  will-change:transform, width, height;
  transition:width .25s var(--ease-out), height .25s var(--ease-out), border-color .25s, opacity .2s;
}
.cursor-ring.is-active{ width:56px; height:56px; border-color:var(--red-2); }

/* ============================================================
   REVEAL UTILITIES
   ============================================================ */
[data-reveal]{ opacity:0; transform:translateY(24px); }
.is-reduced-motion [data-reveal]{ opacity:1; transform:none; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
/* Desktop com pouca altura: preserva o card inteiro dentro da estação sticky. */
@media (min-width: 881px) and (max-height: 820px){
  .services__headwrap{padding-top:clamp(38px,5.5vh,48px)}
  .services .station__head{padding-block:14px}
  .services__intro{padding-block:10px 16px;gap:24px}
  .services .station__title{font-size:clamp(34px,3.6vw,48px)}
  .services__intro p{font-size:13.5px;line-height:1.5;margin-top:8px;max-width:50ch}
  .services__track{padding-bottom:18px}
  .service-card{grid-template-rows:170px auto}
  .service-card__body{padding:15px 18px}
  .service-card__name{font-size:clamp(28px,2.3vw,34px);margin-top:10px}
  .service-card__desc{font-size:11.5px;line-height:1.38;margin-top:8px}
  .service-card__cta{padding:10px 14px}
  .services__foot{padding-bottom:12px}
}

@media (max-width: 1080px){
  .manifesto__grid{ grid-template-columns:1fr; }
  .manifesto__lead{ position:static; }
  .stop__body{ grid-template-columns:1fr; row-gap:14px; }
  .stop__cta{ justify-self:start; }
  .estimate__grid{ grid-template-columns:1fr; }
  .footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width: 880px){
  .services{height:auto!important;min-height:0;overflow:hidden;padding-block:56px 70px}
  .services__sticky{position:relative;top:auto;height:auto;min-height:0;overflow:visible;background:transparent}
  .services__grid{opacity:.42}
  .services__headwrap{padding-top:0}
  .services__intro{grid-template-columns:1fr;align-items:start;padding-bottom:26px}
  .services__counter{justify-self:start}
  .services__viewport{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-left:var(--pad);-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none}
  .services__viewport::-webkit-scrollbar{display:none}
  .services__track{height:auto;min-height:0;transform:none!important;padding:0 var(--pad) 18px;gap:12px;will-change:auto}
  .service-card{width:min(84vw,390px);height:auto;min-height:0;grid-template-rows:220px auto;scroll-snap-align:start;scroll-snap-stop:always}
  .service-card__name{font-size:clamp(34px,10vw,44px)}
  .services__foot{padding-top:16px;padding-bottom:0}
  .services__foot span:first-child::after{content:" · deslize para o lado"}
  .hero__media{width:100%;height:62%;top:0;bottom:auto;opacity:.82;clip-path:none}
  .hero__media img{object-position:46% 50%;filter:saturate(.94) contrast(1.04) brightness(.96)}
  .hero__media::after{background:linear-gradient(0deg,var(--ink) 0%,rgba(5,5,5,.9) 13%,rgba(5,5,5,.28) 40%,rgba(5,5,5,.04) 72%),linear-gradient(90deg,rgba(5,5,5,.18),rgba(5,5,5,.02))}
  .hero__media-label{display:none}
  .nav, .header-cta{ display:none; }
  .menu-toggle{ display:block; }
  .site-header.is-scrolled::before{background:rgba(5,5,5,.93);backdrop-filter:blur(16px)}
  .hero__bottom{ grid-template-columns:1fr; }
  .hero__proof{ display:none; }
  .wizard__options{ grid-template-columns:repeat(2,1fr); }
  .wizard__list{grid-template-columns:1fr;max-height:460px}
  .wlist-item--help{grid-column:auto}
  .services-more__list{grid-template-columns:1fr}
  .cursor-dot, .cursor-ring{ display:none; }
  .proof__panel{grid-template-columns:1fr;min-height:0;align-items:start}
  .proof__score{font-size:clamp(180px,38vw,300px)}
  .proof__meta{width:100%}
  .wa-float,
  .wa-float.is-compact{
    right:22px;bottom:max(22px,env(safe-area-inset-bottom));
    width:76px;height:76px;padding:0;border-radius:50%;justify-content:center;
    border:1px solid rgba(255,255,255,.38);
    animation:wa-neon-pulse 2.25s ease-in-out infinite;
  }
  .wa-float__icon{width:40px;height:40px}
  .wa-float__icon svg{width:24px;height:24px}
  .wa-float.is-hidden{transform:translateY(20px) scale(.78)}
}

@media (max-width: 560px){
  .hero{min-height:max(930px,112svh);padding-top:0}
  .hero__media{top:-62px;height:min(61svh,530px);opacity:1}
  .hero__media img{object-position:44% 50%;transform:none}
  .hero__content{padding-bottom:34px}
  .hero__title{font-size:clamp(44px,15.5vw,70px);line-height:.88}
  .hero__bottom{gap:18px}
  .manifesto__rail{margin:26px calc(var(--pad) * -1) 0;padding:10px var(--pad)}
  .manifesto__stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}
  .services-more__bar{grid-template-columns:1fr;align-items:start}
  .services-more__toggle{justify-self:start}
  .service-row{grid-template-columns:30px minmax(0,1fr);gap:14px}
  .service-row button{grid-column:2;padding-left:0;justify-self:start}
  .real-media{grid-template-columns:1fr;gap:12px;max-width:none;margin-inline:0}
  .real-media__card--tall,.real-media__card--video{aspect-ratio:9 / 16;min-height:420px}
  .real-media__note{display:block}
  .real-media__note span{display:block;margin-top:12px}
  .transformation{padding-block:66px 74px}
  .hero__coords{ display:none; }
  .service-card__body{padding:16px}
  .service-card__name{font-size:clamp(29px,8.2vw,34px);margin-top:10px}
  .service-card__desc{font-size:11.5px;line-height:1.38;margin-top:8px}
  .service-card__cta{margin-top:12px;padding:9px 13px}
  .wa-float > span:last-child{display:none}
  .wa-float,.wa-float.is-compact{right:18px;bottom:max(18px,env(safe-area-inset-bottom));width:76px;height:76px}
  .proof{padding-block:76px 86px}
  .proof__panel{padding:28px 22px 32px;gap:30px}
  .proof__panel-quote{right:8px;top:-28px;font-size:165px}
  .proof__score{font-size:54vw}
  .proof__stars{font-size:17px;letter-spacing:3px}
  .proof__count{font-size:clamp(25px,8vw,34px)}
  .proof__count strong{font-size:20vw}
  .proof__carousel{margin-top:24px;padding-block:20px 16px}
  .proof__carousel-stage{min-height:clamp(300px,92vw,390px)}
  .proof__testimonial p{font-size:clamp(18px,5.7vw,23px);line-height:1.3}
  .footer__grid{grid-template-columns:1fr;gap:40px}
  .footer__heading{margin-bottom:18px}
  .footer__identity p{margin-top:18px}
  .footer__bottom{ flex-direction:column; align-items:flex-start; gap:10px; }
}

@media (max-height: 560px) and (orientation: landscape){
  .hero{ min-height:auto; padding-block:140px 40px; }
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
.is-motion-fallback .services{height:auto!important;min-height:0!important;padding-block:56px 70px}
.is-motion-fallback .services__sticky{position:relative;top:auto;height:auto;min-height:0;overflow:visible}
.is-motion-fallback .services__headwrap{padding-top:0}
.is-motion-fallback .services__viewport{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scrollbar-width:none}
.is-motion-fallback .services__viewport::-webkit-scrollbar{display:none}
.is-motion-fallback .services__track{height:auto;min-height:0;transform:none!important}
.is-motion-fallback .service-card{height:auto;min-height:0;grid-template-rows:220px auto;scroll-snap-align:start}

@media (prefers-reduced-motion: reduce){
  .services{height:auto!important;min-height:0!important;padding-block:56px 70px}
  .services__sticky{position:relative;height:auto;min-height:0;overflow:visible}
  .services__headwrap{padding-top:0}
  .services__viewport{overflow-x:auto;scroll-snap-type:x proximity}
  .services__track{height:auto;min-height:0;transform:none!important}
  .service-card{height:auto;min-height:0;grid-template-rows:220px auto;scroll-snap-align:start}
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  [data-reveal]{ opacity:1 !important; transform:none !important; }
}


/* ============================================================
   BRAND ASSETS
   ============================================================ */
.brand__logo{display:block;width:auto;height:32px;max-width:190px;object-fit:contain;}
.footer__logo{display:block;width:auto;height:86px;max-width:300px;object-fit:contain;}
@media (max-width:560px){.brand__logo{height:28px;max-width:165px}.footer__logo{height:72px;max-width:260px}}
