/* ============================================================
   CONCRETO FIRME — sistema visual
   Paleta: cimento/concreto cru (cinzas frios) + óxido de vergalhão (cobre)
           + aço de equipamento (azul-acinzentado) + grafite
   Tipografia: Oswald (stencil/industrial) + Public Sans (corpo) + Space Mono (dados)
   ============================================================ */

*{box-sizing:border-box;}
html,body{margin:0; padding:0;}

/* ---------- scroll-reveal (anima toda vez que o bloco entra/sai da tela) ---------- */
@media (prefers-reduced-motion: no-preference){
  .js-ready .reveal{opacity:0; transform:translateY(26px); transition:opacity .6s ease, transform .6s ease;}
  .js-ready .reveal.is-visible{opacity:1; transform:translateY(0);}
  .js-ready .reveal-stagger.is-visible > *{transition-delay:calc(var(--i,0) * 70ms);}
}

:root{
  --bg:#EAE8E2;
  --bg-2:#DEDBD2;
  --surface:#F7F6F2;
  --surface-2:#EBE9E2;
  --ink:#1B1C1A;
  --ink-dim:#57564D;
  --ink-faint:#8A8879;
  --line:rgba(27,28,26,0.14);
  --line-strong:rgba(27,28,26,0.30);
  --accent:#AD5A28;
  --accent-ink:#FFFFFF;
  --accent-2:#3F6670;
  --rough:#A9A392;
  --smooth:#F8F6F0;
  --pale:#F7F4EC;
  --shadow:0 18px 40px -22px rgba(27,28,26,0.45);
  color-scheme:light;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#131413;
    --bg-2:#1B1C1A;
    --surface:#1E1F1D;
    --surface-2:#262723;
    --ink:#EDEBE2;
    --ink-dim:#B4B1A3;
    --ink-faint:#84816F;
    --line:rgba(237,235,226,0.13);
    --line-strong:rgba(237,235,226,0.26);
    --accent:#D98A4E;
    --accent-ink:#171208;
    --accent-2:#83AAB3;
    --rough:#343530;
    --smooth:#232420;
    --shadow:0 18px 44px -20px rgba(0,0,0,0.6);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#131413;
  --bg-2:#1B1C1A;
  --surface:#1E1F1D;
  --surface-2:#262723;
  --ink:#EDEBE2;
  --ink-dim:#B4B1A3;
  --ink-faint:#84816F;
  --line:rgba(237,235,226,0.13);
  --line-strong:rgba(237,235,226,0.26);
  --accent:#D98A4E;
  --accent-ink:#171208;
  --accent-2:#83AAB3;
  --rough:#343530;
  --smooth:#232420;
  --shadow:0 18px 44px -20px rgba(0,0,0,0.6);
  color-scheme:dark;
}

body{
  background:var(--bg);
  color:var(--ink);
  font-family:"Public Sans","Segoe UI",Arial,sans-serif;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  position:relative;
}

/* textura de grão de concreto sobre toda a página */
.grain{
  position:fixed; inset:0; z-index:2000; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity:.05;
  mix-blend-mode:multiply;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .grain{opacity:.08; mix-blend-mode:overlay;}
}
:root[data-theme="dark"] .grain{opacity:.08; mix-blend-mode:overlay;}

h1,h2,h3,.disp{
  font-family:"Oswald","Arial Narrow",Impact,sans-serif;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.01em;
  text-wrap:balance;
  margin:0;
  color:var(--ink);
}

.mono{font-family:"Space Mono","Courier New",monospace; font-variant-numeric:tabular-nums;}

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

.wrap{max-width:1180px; margin:0 auto; padding-inline:24px;}
@media (max-width:640px){ .wrap{padding-inline:18px;} }

.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:"Space Mono",monospace; font-size:12px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--accent);
}
.eyebrow::before{content:""; width:16px; height:2px; background:var(--accent); display:inline-block;}

/* ---------- header ---------- */
header{
  position:relative; z-index:10;
  border-bottom:1px solid var(--line);
  background:var(--bg);
}
header nav.wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding-block:18px;
}
.logo{
  font-family:"Oswald",sans-serif; font-weight:700; text-transform:uppercase;
  font-size:20px; letter-spacing:.02em; text-decoration:none; color:var(--ink);
  display:flex; align-items:center; gap:10px;
}
.logo .sq{width:14px; height:14px; background:var(--accent); flex:none;}
.logo span{color:var(--accent);}
.nav-phone{
  font-family:"Space Mono",monospace; font-size:14px; color:var(--ink-dim);
  text-decoration:none; border:1px solid var(--line-strong); padding:8px 14px;
  display:none;
}
@media (min-width:720px){ .nav-phone{display:inline-flex; align-items:center; gap:8px;} }
.nav-phone .dot{width:7px; height:7px; border-radius:50%; background:var(--accent-2); flex:none;}

/* ---------- hero ---------- */
.hero{position:relative; overflow:hidden; background:var(--bg);}
.hero .wrap{position:relative; z-index:1; padding-block:64px 56px;}
.hero-slab{
  position:absolute; inset:0; z-index:0;
  background:
    linear-gradient(180deg, transparent 0%, var(--bg-2) 100%),
    repeating-linear-gradient(90deg, rgba(27,28,26,.045) 0 1px, transparent 1px 140px);
  mask-image:linear-gradient(to bottom, black, transparent 92%);
}
.hero-grid{display:grid; grid-template-columns:1.12fr .88fr; gap:44px; align-items:center;}
@media (max-width:900px){ .hero-grid{grid-template-columns:1fr; gap:36px;} }
.hero h1{
  font-size:clamp(34px,5.4vw,64px);
  line-height:1.03;
  max-width:16ch;
}
.hero h1 em{font-style:normal; color:var(--accent);}
.hero .lede{
  max-width:56ch; font-size:18px; color:var(--ink-dim); margin-top:18px;
}
.hero-cta-row{display:flex; flex-wrap:wrap; gap:14px; margin-top:30px; align-items:center;}
.badge-row{
  display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:40px;
  padding-top:24px; border-top:1px solid var(--line);
}
.badge{
  display:flex; align-items:center; gap:8px;
  font-family:"Space Mono",monospace; font-size:12.5px; color:var(--ink-dim);
  letter-spacing:.02em;
}
.badge .ico{width:8px; height:8px; background:var(--accent-2); flex:none;}

/* ---------- ilustração hero: laje isométrica + vibrador ---------- */
.hero-art{
  position:relative; padding:26px;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size:28px 28px;
  background-position:center;
}
.hero-art svg{width:100%; height:auto; display:block; overflow:visible;}
.hero-art .ha-ripple{transform-box:fill-box; transform-origin:center; animation:haRipple 2.6s ease-out infinite;}
.hero-art .ha-ripple.r2{animation-delay:.85s;}
.hero-art .ha-ripple.r3{animation-delay:1.7s;}
@keyframes haRipple{
  0%{opacity:.85; transform:scale(.25);}
  100%{opacity:0; transform:scale(1.55);}
}
.hero-art .ha-dust{transform-box:fill-box; transform-origin:center; animation:haDust 5.4s ease-in-out infinite;}
.hero-art .ha-dust.d2{animation-delay:1.1s;}
.hero-art .ha-dust.d3{animation-delay:2.3s;}
.hero-art .ha-dust.d4{animation-delay:3.2s;}
@keyframes haDust{
  0%,100%{transform:translateY(0) scale(1); opacity:.55;}
  50%{transform:translateY(-9px) scale(1.15); opacity:.95;}
}
.hero-art .ha-wand{transform-box:fill-box; transform-origin:top center; animation:haWand 3.2s ease-in-out infinite;}
@keyframes haWand{
  0%,100%{transform:rotate(0deg);}
  50%{transform:rotate(1.4deg);}
}
.hero-art .ha-cap{
  position:absolute; left:26px; bottom:10px;
  font-family:"Space Mono",monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-faint);
}

/* ---------- buttons ---------- */
button.btn{appearance:none; -webkit-appearance:none; font:inherit;}
.btn{
  position:relative; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:"Space Mono",monospace; font-weight:700; font-size:14px;
  letter-spacing:.03em; text-transform:uppercase; text-decoration:none;
  padding:15px 26px; border:2px solid transparent; cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
.btn::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.35) 48%, transparent 66%);
  transform:translateX(-130%); transition:transform .7s ease;
}
.btn:hover::after{transform:translateX(130%);}
.btn-primary{background:var(--accent); color:var(--accent-ink);}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 14px 26px -12px rgba(225,78,15,.55);}
.btn-primary:active{transform:translateY(0); box-shadow:0 6px 14px -8px rgba(225,78,15,.5);}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--line-strong);}
.btn-ghost:hover{border-color:var(--ink); transform:translateY(-2px);}
.btn-ghost::after{background:linear-gradient(115deg, transparent 30%, rgba(0,0,0,.08) 48%, transparent 66%);}

/* ---------- marquee de dados técnicos ---------- */
.marquee-wrap{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:var(--surface); overflow:hidden;
}
.marquee-track{display:flex; width:max-content; animation:mq 30s linear infinite;}
@keyframes mq{from{transform:translateX(0);} to{transform:translateX(-50%);}}
.mq-item{
  display:flex; align-items:center; gap:12px; white-space:nowrap;
  padding:16px 36px; font-family:"Space Mono",monospace; font-size:13px; color:var(--ink-dim);
  border-right:1px solid var(--line);
}
.mq-item b{color:var(--ink); font-weight:700;}
.mq-item .tag{color:var(--accent);}

/* ---------- section shell ---------- */
section{padding-block:76px;}
@media (max-width:640px){ section{padding-block:52px;} }
.section-head{max-width:64ch; margin-bottom:44px;}
.section-head h2{font-size:clamp(26px,3.6vw,40px); margin-top:12px;}
.section-head p{color:var(--ink-dim); font-size:16.5px; margin-top:14px; max-width:58ch;}

/* ---------- comparativo manual vs mecânico ---------- */
.compare{
  display:grid; grid-template-columns:1fr 1fr; gap:2px;
  border:1px solid var(--line-strong); overflow:hidden;
}
@media (max-width:760px){ .compare{grid-template-columns:1fr;} }
.compare-col{padding:34px 30px; background:var(--surface);}
.compare-col.is-manual{
  background:
    radial-gradient(circle at 15% 20%, rgba(34,30,23,.10) 0 2px, transparent 2.4px),
    radial-gradient(circle at 55% 60%, rgba(34,30,23,.09) 0 2.6px, transparent 3px),
    radial-gradient(circle at 80% 30%, rgba(34,30,23,.08) 0 1.8px, transparent 2.2px),
    radial-gradient(circle at 35% 85%, rgba(34,30,23,.09) 0 2.2px, transparent 2.6px),
    var(--rough);
  color:var(--pale);
}
.compare-col.is-manual .compare-label,
.compare-col.is-manual h3,
.compare-col.is-manual li{color:var(--pale);}
.compare-col.is-manual .compare-label{opacity:.75;}
.compare-col.is-mecanico{background:var(--smooth);}
.compare-icon{width:38px; height:38px; margin-bottom:16px; display:block;}
.compare-col.is-manual .compare-icon{color:var(--pale); opacity:.9;}
.compare-col.is-mecanico .compare-icon{color:var(--accent-2);}
.compare-profile{width:100%; height:30px; margin-top:20px; display:block;}
.compare-label{
  font-family:"Space Mono",monospace; font-size:12px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-faint); display:block; margin-bottom:10px;
}
.compare-col h3{font-size:22px; margin-bottom:18px;}
.compare-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px;}
.compare-col li{display:flex; gap:12px; align-items:flex-start; font-size:15px;}
.compare-col li .mk{flex:none; width:20px; font-family:"Space Mono",monospace; font-weight:700;}
.compare-col.is-manual li .mk{color:#D8CDB4;}
.compare-col.is-mecanico li .mk{color:var(--accent);}
.compare-col .stat{
  margin-top:26px; padding-top:20px; border-top:1px solid rgba(255,255,255,.18);
  font-family:"Space Mono",monospace; font-size:13px;
}
.compare-col.is-mecanico .stat{border-top-color:var(--line);}

/* ---------- processo ---------- */
.process{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-strong); border:1px solid var(--line-strong);}
@media (max-width:900px){ .process{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .process{grid-template-columns:1fr;} }
.step{background:var(--surface); padding:28px 24px; position:relative; transition:background .22s ease, transform .22s ease;}
.step:hover{transform:translateY(-4px); background:var(--surface-2);}
.step .ic{
  width:42px; height:42px; display:flex; align-items:center; justify-content:center;
  background:var(--surface-2); border:1px solid var(--line-strong); color:var(--accent);
  transition:transform .22s ease, border-color .22s ease;
}
.step:hover .ic{transform:scale(1.08) rotate(-3deg); border-color:var(--accent);}
.step .ic svg{width:22px; height:22px;}
.step .num{display:block; margin-top:16px; font-family:"Space Mono",monospace; font-size:13px; color:var(--accent); letter-spacing:.06em;}
.step h3{font-size:17px; text-transform:none; letter-spacing:0; margin-top:10px; font-family:"Public Sans",sans-serif; font-weight:700;}
.step p{margin-top:10px; font-size:14.5px; color:var(--ink-dim);}

/* ---------- planos ---------- */
.plans{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
@media (max-width:900px){ .plans{grid-template-columns:1fr; max-width:440px; margin-inline:auto;} }
.plan{
  position:relative; background:var(--surface); border:1px solid var(--line-strong);
  padding:32px 28px; display:flex; flex-direction:column; box-shadow:var(--shadow);
}
.plan::before, .plan::after{
  content:""; position:absolute; width:9px; height:9px; border-radius:50%;
  background:var(--bg-2); border:1px solid var(--line-strong);
}
.plan::before{top:14px; left:14px;}
.plan::after{top:14px; right:14px;}
.plan .tipo{
  font-family:"Space Mono",monospace; font-size:12px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-faint);
}
.plan h3{font-size:24px; margin-top:8px;}
.plan .price{
  font-family:"Space Mono",monospace; font-size:clamp(26px,3vw,32px); font-weight:700;
  margin-top:20px; color:var(--ink);
}
.plan .price small{font-size:13px; font-weight:400; color:var(--ink-faint); display:block; margin-top:4px; letter-spacing:0; text-transform:none;}
.plan ul{list-style:none; margin:22px 0 0; padding:0; display:flex; flex-direction:column; gap:11px; flex:1;}
.plan li{display:flex; gap:10px; font-size:14.5px; color:var(--ink-dim); align-items:flex-start;}
.plan li .mk{color:var(--accent); font-family:"Space Mono",monospace; font-weight:700; flex:none;}
.plan .btn{margin-top:26px; width:100%;}
.plan{transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease; transform-style:preserve-3d; will-change:transform;}
.plan:hover{
  transform:perspective(1000px) rotateX(var(--tiltx,0deg)) rotateY(var(--tilty,0deg)) translateY(-6px);
  box-shadow:0 24px 46px -22px rgba(27,28,26,.5); border-color:var(--accent);
}
.plan.is-featured{border-color:var(--accent); border-width:2px;}
.plan .flag{
  position:absolute; top:-13px; left:28px; background:var(--accent); color:var(--accent-ink);
  font-family:"Space Mono",monospace; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase;
  padding:5px 12px;
}
.plans-note{
  margin-top:28px; font-size:13.5px; color:var(--ink-faint); text-align:center;
  font-family:"Space Mono",monospace;
}

/* ---------- porquês / benefícios ---------- */
.why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); border:1px solid var(--line);}
@media (max-width:760px){ .why-grid{grid-template-columns:1fr;} }
.why-card{background:var(--surface); padding:30px 26px; transition:background .22s ease, transform .22s ease;}
.why-card:hover{transform:translateY(-4px); background:var(--surface-2);}
.why-card .n{font-family:"Space Mono",monospace; font-size:34px; color:var(--accent); font-weight:700; transition:transform .22s ease;}
.why-card:hover .n{transform:scale(1.08);}
.why-card h3{font-size:17px; text-transform:none; letter-spacing:0; margin-top:12px; font-family:"Public Sans",sans-serif; font-weight:700;}
.why-card p{margin-top:8px; font-size:14.5px; color:var(--ink-dim);}

/* ---------- faq ---------- */
.faq{max-width:820px;}
details{
  border-bottom:1px solid var(--line); padding-block:18px;
}
details summary{
  cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:20px;
  font-weight:700; font-size:16.5px; color:var(--ink); align-items:center;
}
details summary::-webkit-details-marker{display:none;}
details summary::after{content:"+"; font-family:"Space Mono",monospace; font-size:20px; color:var(--accent); flex:none;}
details[open] summary::after{content:"–";}
details p{margin:14px 0 0; color:var(--ink-dim); font-size:15px; max-width:64ch;}

/* ---------- cta final ---------- */
.final-cta{
  background:var(--ink); color:var(--pale); text-align:center; padding-block:70px;
}
:root[data-theme="dark"] .final-cta{background:var(--surface-2);}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .final-cta{background:var(--surface-2);} }
.final-cta h2{color:var(--pale); font-size:clamp(26px,4vw,42px); max-width:20ch; margin-inline:auto;}
.final-cta p{color:#C9C2B0; margin-top:16px; font-size:16.5px;}
.final-cta .hero-cta-row{justify-content:center; margin-top:30px;}
.final-cta .btn-ghost{color:var(--pale); border-color:rgba(255,255,255,.3);}
.final-cta .btn-ghost:hover{border-color:var(--pale);}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line); padding-block:52px 26px; background:var(--ink); color:var(--pale);}
:root[data-theme="dark"] footer{background:var(--bg-2);}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) footer{background:var(--bg-2);} }
.foot-grid{
  display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:36px;
  padding-bottom:34px; border-bottom:1px solid rgba(255,255,255,.14);
}
@media (max-width:760px){ .foot-grid{grid-template-columns:1fr; gap:30px;} }
@media (max-width:560px){ footer{padding-bottom:96px;} }
.foot-brand .logo{color:var(--pale); font-size:19px;}
.foot-brand p{color:#B9B2A0; font-size:14px; margin-top:14px; max-width:38ch;}
.foot-col h4{
  font-family:"Space Mono",monospace; font-size:12px; letter-spacing:.1em; text-transform:uppercase;
  color:#8C8571; margin:0 0 14px;
}
.foot-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px;}
.foot-col a{color:#D8D2C2; text-decoration:none; font-size:14.5px;}
.foot-col a:hover{color:var(--accent); text-decoration:underline;}
.foot-col p{color:#D8D2C2; font-size:14.5px; margin:0;}
.foot-bottom{
  padding-top:22px; display:flex; flex-wrap:wrap; gap:10px 20px; justify-content:space-between; align-items:center;
  font-family:"Space Mono",monospace; font-size:12px; color:#8C8571;
}

/* ---------- botão flutuante whatsapp ---------- */
.wa-float{
  position:fixed; right:20px; bottom:20px; z-index:500;
  display:inline-flex; align-items:center; gap:10px;
  background:#25D366; color:#0B2E1A; text-decoration:none;
  padding:14px 18px 14px 14px; border-radius:999px;
  box-shadow:0 16px 32px -12px rgba(0,0,0,.45);
  font-family:"Public Sans",sans-serif; font-weight:700; font-size:14px;
  transition:transform .2s ease, box-shadow .2s ease;
  animation:waPulse 2.6s ease-in-out infinite;
}
.wa-float:hover{transform:translateY(-3px) scale(1.03); box-shadow:0 20px 38px -14px rgba(0,0,0,.5);}
.wa-float svg{width:26px; height:26px; flex:none;}
.wa-float .wa-txt{display:none;}
@media (min-width:560px){ .wa-float .wa-txt{display:inline;} }
@keyframes waPulse{
  0%,100%{box-shadow:0 16px 32px -12px rgba(0,0,0,.45), 0 0 0 0 rgba(37,211,102,.5);}
  50%{box-shadow:0 16px 32px -12px rgba(0,0,0,.45), 0 0 0 10px rgba(37,211,102,0);}
}

/* ---------- barra de progresso de rolagem ---------- */
.scroll-progress{
  position:fixed; top:0; left:0; height:3px; width:0%; z-index:3000;
  background:linear-gradient(90deg, var(--accent), var(--accent-2));
  transition:width .12s linear;
}

/* ---------- cascata de revelação (delays escalonados) ---------- */
@media (prefers-reduced-motion: no-preference){
  .js-ready .process .step:nth-child(1){transition-delay:0ms;}
  .js-ready .process .step:nth-child(2){transition-delay:80ms;}
  .js-ready .process .step:nth-child(3){transition-delay:160ms;}
  .js-ready .process .step:nth-child(4){transition-delay:240ms;}
  .js-ready .plans .plan:nth-child(1){transition-delay:0ms;}
  .js-ready .plans .plan:nth-child(2){transition-delay:100ms;}
  .js-ready .plans .plan:nth-child(3){transition-delay:200ms;}
  .js-ready .why-grid .why-card:nth-child(1){transition-delay:0ms;}
  .js-ready .why-grid .why-card:nth-child(2){transition-delay:100ms;}
  .js-ready .why-grid .why-card:nth-child(3){transition-delay:200ms;}
  .js-ready .compare .compare-col:nth-child(2){transition-delay:110ms;}
}

@media (prefers-reduced-motion: reduce){
  .marquee-track{animation:none;}
  .btn{transition:none;}
  .wa-float{animation:none;}
  .hero-art .ha-ripple, .hero-art .ha-dust, .hero-art .ha-wand{animation:none;}
  .scroll-progress{display:none;}
}

/* ---------- checkout (modal Pagar.me) ---------- */
.checkout-modal{
  position:fixed; inset:0; z-index:4000; display:none;
  align-items:flex-start; justify-content:center; padding:26px 16px; overflow-y:auto;
}
.checkout-modal.is-open{display:flex;}
.checkout-backdrop{position:fixed; inset:0; background:rgba(10,10,9,.6); backdrop-filter:blur(2px);}
.checkout-panel{
  position:relative; z-index:1; width:100%; max-width:560px;
  background:var(--surface); border:1px solid var(--line-strong); box-shadow:var(--shadow);
  padding:34px 30px 30px; margin-block:20px;
}
.checkout-close{
  position:absolute; top:14px; right:14px; width:34px; height:34px;
  border:1px solid var(--line-strong); background:var(--surface-2); color:var(--ink);
  font-size:20px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:border-color .18s ease, color .18s ease;
}
.checkout-close:hover{border-color:var(--accent); color:var(--accent);}
.checkout-summary{border-bottom:1px solid var(--line); padding-bottom:18px; margin-bottom:22px;}
.checkout-summary h3{font-size:22px; margin-top:6px;}
.checkout-price{font-family:"Space Mono",monospace; font-weight:700; font-size:20px; color:var(--accent); margin-top:6px;}
.checkout-form h4{
  font-family:"Oswald",sans-serif; font-weight:700; text-transform:uppercase; font-size:14px;
  letter-spacing:.04em; color:var(--ink-faint); margin:22px 0 12px;
}
.checkout-form h4:first-of-type{margin-top:0;}
.checkout-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.checkout-grid-card{grid-template-columns:1fr 1fr 1fr;}
@media (max-width:480px){ .checkout-grid, .checkout-grid-card{grid-template-columns:1fr;} }
.checkout-form label{
  display:flex; flex-direction:column; gap:6px; font-size:13px; color:var(--ink-dim);
  font-family:"Public Sans",sans-serif; margin-bottom:14px;
}
.checkout-full{grid-column:1/-1;}
.checkout-grid > label{min-width:0;}
.checkout-form input{
  width:100%; min-width:0;
  font:15px/1.4 "Public Sans",sans-serif; padding:11px 12px; border:1px solid var(--line-strong);
  background:var(--bg); color:var(--ink); border-radius:2px;
}
.checkout-form input:focus{outline:2px solid var(--accent-2); outline-offset:1px;}
.checkout-note{font-size:12.5px; color:var(--ink-faint); margin:6px 0 18px;}
.checkout-msg{font-size:13.5px; padding:10px 12px; margin-bottom:14px; border:1px solid var(--accent-2); color:var(--ink);}
.checkout-msg.is-error{border-color:#D14343; color:#D14343;}
.checkout-submit{width:100%;}

/* ---------- páginas legais ---------- */
.legal-header{padding-block:44px 8px; max-width:74ch;}
.legal-header + section{padding-top:20px;}
.back-link{
  font-family:"Space Mono",monospace; font-size:13px; color:var(--ink-dim);
  text-decoration:none; display:block; width:fit-content; margin-bottom:18px;
}
.back-link:hover{color:var(--accent);}
.legal-updated{font-family:"Space Mono",monospace; font-size:13px; color:var(--ink-faint); margin-top:10px;}
.placeholder{color:var(--accent); font-weight:700;}
.prose{max-width:74ch; padding-block:20px 60px;}
.prose h2{
  font-size:19px; text-transform:none; letter-spacing:0; font-family:"Public Sans",sans-serif; font-weight:700;
  margin-top:38px; margin-bottom:12px; padding-top:22px; border-top:1px solid var(--line);
}
.prose h2:first-of-type{border-top:none; padding-top:0; margin-top:0;}
.prose p, .prose li{color:var(--ink-dim); font-size:15.5px; line-height:1.7;}
.prose ul{padding-left:22px;}
.prose li{margin-bottom:8px;}
.prose strong{color:var(--ink);}
