/* ==========================================================================
   Vigia Amigo
   Unidades: 1rem = 10 unidades do layout.
   Desktop: layout de 1024 de largura  -> html font-size = largura / 102.4
   Celular: layout de 255 de largura   -> html font-size = largura / 25.5
   (js/main.js recalcula sem a barra de rolagem; aqui fica o fallback em vw)
   ========================================================================== */

:root {
  --teal: #066f6a;
  --teal-card: #005c57;
  --mint: #16f5ba;
  --mint-2: #16f2b4;
  --mint-soft: #5cf6d8;
  --ink: #101010;
  --night: #0a0a11;
  --grad: linear-gradient(90deg, #05615d 0%, #056864 10%, #07736f 25%, #077d79 40%, #088580 50%, #077e79 60%, #06736e 75%, #056864 90%, #05615d 100%);
  --check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='10' fill='%232ff0c6'/%3E%3Cpath d='M5.6 10.4l2.900 2.900 5.900-6.300' fill='none' stroke='%230c2b30' stroke-width='2.300' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --f-saira: "Saira Condensed", "Barlow Condensed", sans-serif;
  --f-barlow: "Barlow", system-ui, sans-serif;
  --f-barlow-c: "Barlow Condensed", "Saira Condensed", sans-serif;
  --f-barlow-sc: "Barlow Semi Condensed", "Barlow", sans-serif;
  --f-roboto: "Roboto", "Barlow", sans-serif;
}

html {
  font-size: calc(min(100vw, 1920px) / 102.4);
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

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

body {
  margin: 0;
  background: #fff;
  color: #fff;
  font-family: var(--f-barlow);
  font-size: 1.2rem;
  line-height: 1.4;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, p, ul, ol, dl, dd, fieldset { margin: 0; padding: 0; }
ul, ol { list-style: none; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
fieldset { border: 0; min-width: 0; }
section { position: relative; }
main { overflow-x: clip; }
section[id], main[id] { scroll-margin-top: 1rem; }

.wrap { position: relative; width: 102.4rem; max-width: 100%; margin: 0 auto; }
.grad { background: var(--grad); }
.m-only { display: none; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

:focus-visible { outline: .2rem solid var(--mint-soft); outline-offset: .2rem; }

/* decor: manchas claras dos fundos */
.blob::after, .blob::before { content: ""; position: absolute; pointer-events: none; }

/* ---------- botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  height: 3.1rem; border-radius: .5rem;
  font: 700 1.11rem/1 var(--f-saira); letter-spacing: .01em; white-space: nowrap;
  box-shadow: 0 .3rem .7rem rgba(0, 0, 0, .28);
  transition: transform .18s ease, filter .18s ease, box-shadow .18s ease;
}
.btn:hover { transform: translateY(-.15rem); filter: brightness(1.08); box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .32); }
.btn--mint { width: 15.5rem; background: #00cfad; color: var(--night); }
.btn--dark { width: 10.6rem; background: #10111a; color: #fff; }
.btn--small {
  height: 2.7rem; padding: 0 1.2rem; background: #0e1017; color: #fff;
  border: .1rem solid rgba(255, 255, 255, .1);
  font: 700 .92rem/1 var(--f-barlow-sc); letter-spacing: 0;
}

/* ---------- header ---------- */
.header { position: absolute; top: 0; left: 0; right: 0; z-index: 30; }
.header__bar {
  position: relative; display: flex; align-items: center;
  width: 87.9rem; height: 7.9rem; margin: 0 auto; padding: 0 4.4rem 0 4.3rem;
  background: #fff; border-radius: 0 0 2.4rem 2.4rem;
}
.header__logo { width: 9.2rem; flex: none; }
.nav { display: flex; gap: 3.15rem; margin-left: 7.4rem; }
.nav a { font: 600 1.12rem/1 "Montserrat", sans-serif; color: var(--teal); transition: color .15s; }
.nav a:hover { color: #00a88c; }
.header__cta {
  display: inline-flex; align-items: center; justify-content: center;
  width: 15.6rem; height: 2.4rem; margin-left: auto; border-radius: .6rem;
  background: var(--teal); color: #fff; font: 700 .98rem/1 "Montserrat", sans-serif;
  transition: background .15s;
}
.header__cta:hover { background: #058078; }
.header__toggle { display: none; }

/* ---------- hero ---------- */
.hero {
  height: 57.6rem; overflow: hidden;
  background:
    linear-gradient(90deg, rgba(8, 84, 82, .86) 0%, rgba(11, 116, 113, .80) 50%, rgba(8, 92, 84, .86) 100%),
    url("../assets/img/hero-casa.webp") center 30% / cover no-repeat #0a5c58;
}
.hero .wrap { height: 100%; }
.hero__text { position: absolute; left: 11.8rem; top: 12.6rem; }
.badge {
  display: inline-flex; align-items: center; height: 2.6rem; padding: 0 .9rem;
  border: .15rem solid #00c2a3; border-radius: 1.3rem;
  font: 600 1.06rem/1 var(--f-barlow-c); letter-spacing: .06em; text-transform: uppercase; color: var(--mint);
}
.hero h1 { margin-top: .6rem; font: 700 3.84rem/3.8rem var(--f-saira); }
.hero h1 span { color: var(--mint); }
.hero__lead { margin-top: .9rem; font: 400 1.24rem/1.72rem "Source Sans 3", sans-serif; letter-spacing: .052em; white-space: nowrap; }
.hero__actions { display: flex; gap: 1.7rem; margin-top: 1.6rem; }

.hero__features { position: absolute; left: 11.5rem; top: 44.3rem; display: flex; }
.hero__features li { width: 9.25rem; display: flex; flex-direction: column; align-items: center; }
.hero__features img { width: 5.5rem; border-radius: 50%; box-shadow: 0 0 0 .7rem rgba(255, 255, 255, .28); }
.hero__features span {
  position: relative; margin-top: 1.5rem; padding-left: 1.1rem;
  font: 400 .96rem/1 var(--f-barlow-c); letter-spacing: .03em; text-align: center; white-space: nowrap;
}
.hero__features span::before { content: ""; position: absolute; left: 0; top: .25rem; width: .5rem; height: .5rem; border-radius: .12rem; background: #19e0b6; }

.hero__visual { position: absolute; left: 48rem; top: 6rem; width: 44em; height: 47em; font-size: 1rem; }
.hero__visual > * { position: absolute; }
.hero__glow { left: 1.5em; top: .5em; width: 43em; height: 43em; border-radius: 50%; background: radial-gradient(closest-side, rgba(38, 222, 196, .75), rgba(38, 222, 196, .28) 55%, rgba(38, 222, 196, 0) 100%); }
.hero__rings { left: 23em; top: 22.3em; }
.hero__rings i { position: absolute; border: .1em solid rgba(255, 255, 255, .42); border-radius: 50%; transform: translate(-50%, -50%); }
.hero__rings i:nth-child(1) { width: 17em; height: 17em; }
.hero__rings i:nth-child(2) { width: 22.1em; height: 22.1em; }
.hero__rings i:nth-child(3) { width: 28em; height: 28em; }
.hero__rings i:nth-child(4) { width: 34em; height: 34em; }
.hero__rings i:nth-child(5) { width: 39.8em; height: 39.8em; }
.hero__shield { left: 7.4em; top: 14.9em; width: 10.5em; }
.hero__camera { left: 19.4em; top: 6.1em; width: 23.5em; }
.hero__tech { left: 6.4em; top: 8.5em; width: 32.6em; }

.alert-card { left: 5.7em; top: 35.1em; width: 36.2em; height: 11.6em; background: #fff; border-radius: 1em; color: var(--night); box-shadow: 0 .4em 1.2em rgba(0, 0, 0, .18); }
.alert-card > * { position: absolute; }
.alert-card__check { left: 2.9em; top: 1.9em; width: 3.8em; }
.alert-card strong { left: 2.58em; top: 4.7em; font: 700 1.2em/1.2 var(--f-barlow-c); white-space: nowrap; }
.alert-card small { left: 3.875em; top: 9.25em; font: 400 .8em/1.05 var(--f-barlow-c); white-space: nowrap; }
.stats { left: 15.1em; top: 1.1em; display: grid; grid-template-columns: 9.5em 9.5em; gap: .8em .7em; }
.stats li {
  position: relative; height: 4.3em; border-radius: .5em; background: var(--teal-card); text-align: center;
}
.stats li::before {
  content: ""; position: absolute; left: .8em; top: .5em; width: 1.5em; height: 1.3em;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 26'%3E%3Crect x='1.5' y='4.5' width='20' height='20' fill='none' stroke='%23fff' stroke-width='2.4'/%3E%3Cpath d='M6 12l6 6L27 2.500' fill='none' stroke='%23fff' stroke-width='4'/%3E%3C/svg%3E") center / contain no-repeat;
}
.stats b { display: block; padding-top: .9em; font: 700 1.2em/1.2 var(--f-barlow-c); color: var(--mint); }
.stats span { display: block; margin-top: .25em; font: 400 .8em/1 var(--f-barlow-c); color: #fff; white-space: nowrap; }

/* ---------- títulos de seção ---------- */
.eyebrow { text-transform: uppercase; }

/* ---------- o problema ---------- */
.problema { height: 52.4rem; }
.problema .wrap { height: 100%; }
.problema__left { position: absolute; left: 10.9rem; top: 9.8rem; }
.problema .eyebrow { font: 700 1.43rem/1.6rem var(--f-saira); letter-spacing: .13em; }
.problema h2 { margin-top: .6rem; font: 700 2.94rem/3.4rem var(--f-saira); color: var(--mint-2); white-space: nowrap; }
.compare {
  position: relative; width: 37.2rem; height: 11.4rem; margin: 3.7rem 0 0 -.1rem; padding: 2.5rem 0 0 2.3rem;
  background: rgba(27, 27, 29, .34); border: .1rem solid rgba(255, 255, 255, .05); border-radius: 1.2rem;
  box-shadow: 0 .4rem 1.2rem rgba(0, 0, 0, .14);
}
.compare--vigia { margin-top: 3.7rem; }
.compare h3 { font: 700 1.6rem/1.9rem var(--f-saira); }
.compare--vigia h3 { color: var(--mint); }
.compare p { margin-top: .4rem; font: 400 1.3rem/1.92rem var(--f-saira); letter-spacing: .022em; white-space: nowrap; }
.compare__icon { position: absolute; }
.compare__icon--conv { right: 1.8rem; top: 2.2rem; width: 7.8rem; }
.compare__icon--vigia { right: 1rem; top: 1.3rem; width: 7.2rem; }
.problema__art { position: absolute; left: 57.1rem; top: -1.9rem; width: 24.3rem; z-index: 2; }
.problema__copy { position: absolute; left: 53.7rem; top: 25.6rem; font: 400 1.54rem/2.25rem var(--f-saira); letter-spacing: .03em; white-space: nowrap; }
.problema__copy p + p { margin-top: 2.25rem; }
.problema__copy .is-mint { color: var(--mint); }

/* ---------- cartão de passos + pílulas (compartilhados) ---------- */
.steps-card { color: #fff; background: rgba(15, 15, 20, .65); }
.steps-card__head { display: flex; align-items: center; gap: 1.6rem; }
.steps-card__head::before, .steps-card__head::after { content: ""; flex: 1; height: .18rem; background: var(--mint-soft); }
.steps-card__head img { width: 6.4rem; flex: none; }
.steps { counter-reset: passo; }
.steps li { position: relative; counter-increment: passo; font-weight: 300; white-space: nowrap; }
.steps li b { font-weight: 700; }
.steps li::before {
  content: counter(passo); position: absolute; top: .22em; display: flex; align-items: center; justify-content: center;
  width: 1.15em; height: 1.15em; border-radius: 50%; background: var(--mint-soft); color: #0b2a2e;
  font: 900 .82em/1 var(--f-barlow);
}

.pills { display: flex; flex-wrap: wrap; }
.pills li {
  display: inline-flex; align-items: center; white-space: nowrap; border-radius: 10rem; color: #fff;
  box-shadow: 0 .2rem .4rem rgba(0, 0, 0, .35), inset 0 0 0 .1rem rgba(255, 255, 255, .06);
}
.pills li::before { content: ""; flex: none; border-radius: 50%; background: var(--check) center / contain no-repeat; }

.kicker { text-transform: uppercase; }

/* ---------- soluções / poste ---------- */
.solucoes { height: 57.6rem; background: #fff; color: var(--ink); }
.solucoes::after {
  content: ""; position: absolute; right: 0; top: 0; width: 34rem; height: 28rem; pointer-events: none;
  background: radial-gradient(ellipse at 88% 18%, rgba(92, 246, 216, .42), rgba(92, 246, 216, .12) 38%, rgba(92, 246, 216, 0) 68%);
}
.solucoes__head { position: absolute; left: 10.5rem; top: 8.1rem; z-index: 1; }
.solucoes .eyebrow { font: 700 1.55rem/1.9rem var(--f-barlow-c); letter-spacing: .2em; color: var(--mint); }
.solucoes h2 { margin-top: .3rem; font: 700 3.21rem/3.9rem var(--f-barlow-c); color: var(--teal); }
.solucoes__head p:last-child { margin-top: .5rem; font: 300 1.29rem/1.6rem var(--f-barlow); }

.steps-card--green { position: absolute; left: 8.6rem; top: 21.8rem; width: 33.1rem; height: 23.4rem; padding: 1.6rem 0 0; background: var(--teal-card); border-radius: 2rem; }
.steps-card--green .steps-card__head { margin: 0 1.7rem 0 2.5rem; gap: 1.5rem; }
.steps-card--green .steps-card__head img { width: 5rem; }
.steps-card--green .steps { margin: .9rem 0 0 2.7rem; font-size: 1.13rem; line-height: 1.72rem; }
.steps-card--green .steps li { padding-left: 1.75rem; margin-bottom: .75rem; }
.steps-card--green .steps li::before { left: 0; }
.poste__img { position: absolute; left: 31rem; top: 17.2rem; width: 28rem; z-index: 1; }
.poste__copy { position: absolute; left: 50.3rem; top: 22.5rem; width: 40.6rem; z-index: 1; }
.poste__copy .kicker { width: 34rem; font: 700 1.03rem/1.8rem var(--f-barlow); }
.poste__copy h3 { margin-top: .5rem; font: 700 2.06rem/2.4rem var(--f-saira); color: var(--mint); }
.poste__copy .body { margin-top: .3rem; font: 300 1.17rem/1.8rem var(--f-barlow); }
.poste__copy .pills { width: 43rem; margin: 1.4rem 0 0 0; gap: .9rem 1rem; }
.poste__copy .pills li { height: 2.8rem; padding: 0 1.5rem 0 1rem; background: rgba(18, 19, 28, .74); font: 300 .97rem/1 var(--f-barlow); }
.poste__copy .pills li::before { width: 1.5rem; height: 1.5rem; margin-right: .9rem; }

/* ---------- câmeras com IA ---------- */
.banner { position: relative; width: 100%; z-index: 2; }
.cameras .banner { height: 30rem; object-fit: cover; object-position: center bottom; }
.cameras__body { position: relative; height: 27.6rem; }
.cameras .steps-card { position: absolute; left: 8.8rem; top: 3rem; width: 33.2rem; height: 21.2rem; padding-top: .3rem; border-radius: 1rem; }
.cameras .steps-card__head { margin: 0 1.8rem 0 2.5rem; }
.cameras .steps { margin: 1rem 0 0 2.7rem; font: 400 1.13rem/1.8rem var(--f-roboto); }
.cameras .steps li { padding-left: 1.9rem; margin-bottom: .55rem; font-weight: 400; }
.cameras .steps li::before { left: 0; }
.cameras__copy { position: absolute; left: 48.7rem; top: 3.4rem; width: 43.5rem; }
.cameras__copy .kicker { font: 700 .86rem/1.2rem var(--f-barlow-c); letter-spacing: .1em; }
.cameras__copy h3 { margin-top: .6rem; font: 700 1.87rem/2.3rem var(--f-saira); color: var(--mint); }
.cameras__copy .body { margin-top: .7rem; font: 300 1.18rem/1.85rem var(--f-barlow); }
.cameras__copy .pills { margin: 1.1rem 0 0 -.8rem; gap: .9rem 1.3rem; width: 44rem; }
.cameras__copy .pills li { height: 2.9rem; padding: 0 1.4rem 0 .8rem; background: rgba(15, 12, 18, .66); font: 400 .98rem/1 var(--f-roboto); }
.cameras__copy .pills li::before { width: 1.5rem; height: 1.5rem; margin-right: 1rem; }

/* ---------- interfone ---------- */
.interfone { height: 59.2rem; background: linear-gradient(90deg, #04756c 0%, #088a80 50%, #04756c 100%); }
.interfone .wrap { height: 100%; }
.interfone .banner { position: absolute; left: -.7rem; top: 0; width: 104.1rem; max-width: none; height: 41.1rem; object-fit: cover; object-position: center bottom; }
.interfone .steps-card, .interfone .panel, .tag .steps-card, .tag .panel { position: absolute; z-index: 3; }
.interfone .steps-card { left: 7rem; top: 29.6rem; width: 38.8rem; height: 21.6rem; padding-top: 1.4rem; border-radius: 1.2rem; background: rgba(17, 17, 27, .69); }
.interfone .steps-card__head { margin: 0 5.6rem 0 4.3rem; }
.interfone .steps-card__head img { width: 6.9rem; }
.interfone .steps { margin: 1.1rem 0 0 4.6rem; font-size: 1.16rem; line-height: 1.8rem; }
.interfone .steps li { padding-left: 1.75rem; margin-bottom: .95rem; }
.interfone .steps li::before { left: 0; }
.interfone .panel { left: 48.2rem; top: 29.3rem; width: 45rem; height: 25.3rem; padding: 3.1rem 0 0 1.7rem; border-radius: 1.2rem; background: rgba(17, 17, 27, .69); }
.interfone .kicker { font: 700 1.13rem/1.4rem var(--f-barlow-c); letter-spacing: .02em; }
.interfone h3 { margin-top: .3rem; font: 700 2.35rem/2.8rem var(--f-saira); color: var(--mint); }
.interfone .body { margin-top: 1.2rem; width: 42.8rem; font: 300 1.28rem/2rem var(--f-barlow); }
.interfone .pills { margin-top: 1.5rem; gap: .9rem .9rem; width: 40rem; }
.interfone .pills li { height: 3.2rem; padding: 0 1.6rem 0 1rem; background: rgba(16, 16, 25, .73); font: 500 1.09rem/1 var(--f-barlow); }
.interfone .pills li::before { width: 1.6rem; height: 1.6rem; margin-right: 1.1rem; }

/* ---------- tag localizadora ---------- */
.tag { height: 65.3rem; }
.tag .wrap { height: 100%; }
.tag .banner { position: absolute; left: -.1rem; top: 0; width: 102.6rem; max-width: none; height: 40.5rem; object-fit: cover; object-position: center bottom; }
.tag__phone { position: absolute; left: 47.4rem; top: 2.2rem; width: 22.5rem; z-index: 2; }
.tag .steps-card { left: 7rem; top: 38rem; width: 34.5rem; height: 23.4rem; padding-top: 1.3rem; border-radius: .2rem; background: rgba(15, 16, 23, .82); }
.tag .steps-card__head { margin: 0 3.4rem 0 2.2rem; }
.tag .steps-card__head img { width: 6.9rem; }
.tag .steps { margin: 1.1rem 0 0 5rem; width: 27.5rem; font: 400 1.16rem/1.7rem var(--f-barlow); }
.tag .steps li { padding-left: 2rem; margin-bottom: .85rem; font-weight: 400; }
.tag .steps li::before { left: 0; }
.tag .panel { left: 43.7rem; top: 34.2rem; width: 50.5rem; height: 27.1rem; padding: 3.3rem 0 0 2rem; border-radius: .2rem; background: rgba(15, 16, 23, .82); }
.tag .kicker { font: 700 .98rem/1.3rem var(--f-barlow); letter-spacing: .05em; }
.tag h3 { margin-top: .7rem; font: 700 1.87rem/2.2rem var(--f-saira); color: var(--mint-2); }
.tag .body { margin-top: .2rem; width: 45rem; font: 300 1.28rem/1.72rem var(--f-barlow); }
.tag .pills { margin: 1.7rem 0 0 0; gap: .9rem 1.2rem; width: 42rem; }
.tag .pills li { height: 3rem; padding: 0 1.4rem 0 1.6rem; background: rgba(14, 15, 23, .8); font: 400 .98rem/1 var(--f-barlow); }
.tag .pills li::before { width: 1.5rem; height: 1.5rem; margin-right: 1.5rem; }

/* ---------- para quem ---------- */
.quem { height: 44.1rem; background: #fff; }
.quem::before {
  content: ""; position: absolute; right: 0; top: 0; width: 30rem; height: 24rem; pointer-events: none;
  background: radial-gradient(ellipse at 92% 30%, rgba(92, 246, 216, .42), rgba(92, 246, 216, .1) 40%, rgba(92, 246, 216, 0) 68%);
}
.quem::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 20rem; height: 22rem; pointer-events: none;
  background: radial-gradient(ellipse at 18% 78%, rgba(92, 246, 216, .42), rgba(92, 246, 216, .1) 38%, rgba(92, 246, 216, 0) 66%);
}
.quem .wrap { height: 100%; z-index: 1; }
.quem__head { position: absolute; left: 12.7rem; top: 5.7rem; }
.quem .eyebrow { font: 700 1.18rem/1.4rem var(--f-barlow-sc); letter-spacing: .2em; color: var(--teal); }
.quem h2 { margin-top: .6rem; font: 900 2.66rem/3.1rem var(--f-saira); color: var(--teal); }
.quem__shield { position: absolute; left: 65.6rem; top: 2.4rem; width: 7.3rem; }
.quem__card {
  position: absolute; top: 12.2rem; left: 12.7rem; width: 37.8rem; height: 28.7rem; border-radius: 2rem;
  background: linear-gradient(155deg, #00675f 0%, #005c57 55%, #00524d 100%);
}
.quem__card--casas { left: 51.8rem; top: 12.4rem; }
.quem__card h3 { position: absolute; left: 2.3rem; top: 2.3rem; font: 900 1.52rem/1.8rem var(--f-barlow-sc); color: var(--mint-2); }
.quem__card > p { position: absolute; left: 3.6rem; top: 4.9rem; width: 28.5rem; font: 400 .91rem/1.5rem var(--f-barlow); }
.quem__card ul { position: absolute; left: 3.6rem; top: 9.2rem; width: 29rem; font: 400 .91rem/1.4rem var(--f-barlow); }
.quem__card li { margin-bottom: 1.45rem; }
.quem__card li b { color: var(--mint-2); font-weight: 700; }
.quem__card .btn { position: absolute; left: 1.9rem; top: 24.7rem; width: 11.1rem; padding: 0; }
.quem__card--casas > p { left: 3.8rem; top: 5rem; width: 32rem; font-size: 1.01rem; line-height: 1.6rem; }
.quem__card--casas ul { left: 3.8rem; top: 9.6rem; width: 30rem; }
.quem__card--casas .btn { left: 2.4rem; top: 21.7rem; width: 9.9rem; height: 2.6rem; }

/* ---------- como contratar / por que ---------- */
.contratar { height: 57.6rem; }
.contratar .wrap { height: 100%; padding: 5rem 0 0 12.5rem; }
.contratar .eyebrow { font: 700 1.07rem/1.4rem var(--f-saira); letter-spacing: .15em; color: var(--mint-2); }
.contratar h2 { margin-top: .2rem; font: 700 2.79rem/3.4rem var(--f-saira); }
.etapas { display: flex; gap: 1.3rem; margin-top: 3.3rem; }
.etapas li {
  width: 18.1rem; height: 11.8rem; padding: 1.6rem 1.5rem 0 1.6rem; border-radius: 1.2rem;
  background: rgba(24, 24, 26, .3); border: .1rem solid rgba(255, 255, 255, .04); box-shadow: 0 .4rem 1rem rgba(0, 0, 0, .1);
}
.etapas b { display: block; font: 700 2.01rem/2rem var(--f-saira); color: var(--mint); }
.etapas h3 { margin-top: .6rem; font: 700 1.18rem/1.5rem var(--f-saira); color: var(--mint); }
.etapas p { font: 400 1.06rem/1.9rem var(--f-roboto); white-space: nowrap; }
.contratar .eyebrow--porque { margin: 4.1rem 0 0 .3rem; font: 700 1.07rem/1.4rem var(--f-barlow-sc); letter-spacing: .2em; }
.contratar .porque__title { margin: .7rem 0 0 .3rem; font: 900 2.89rem/3.4rem var(--f-saira); }
.porque { display: grid; grid-template-columns: repeat(3, 25.2rem); gap: .95rem 1rem; margin: 2.3rem 0 0 .3rem; }
.porque li {
  display: flex; align-items: center; min-height: 4rem; padding: .9rem 1rem .9rem 1.8rem; border-radius: .8rem;
  background: rgba(20, 20, 30, .3); border: .1rem solid rgba(255, 255, 255, .03);
  font: 700 .87rem/1.6rem var(--f-barlow); letter-spacing: .05em;
}
.porque li::before { content: ""; flex: none; width: 1.5rem; height: 1.5rem; margin-right: 1.1rem; background: var(--check) center / contain no-repeat; }
.porque li:nth-child(n+4):nth-child(-n+6) { min-height: 5.5rem; }

/* ---------- identificação ---------- */
.identificacao { height: 37.8rem; background: #fff; }
.identificacao .wrap { height: 100%; }
.identificacao__copy { position: absolute; left: 12.1rem; top: 9.5rem; width: 43rem; }
.identificacao .eyebrow { font: 700 1.86rem/2.2rem var(--f-barlow-sc); letter-spacing: .22em; color: var(--mint); }
.identificacao h2 { margin-top: 2.9rem; font: 700 2.76rem/3.27rem var(--f-barlow); color: var(--teal); }
.identificacao img { position: absolute; left: 65.5rem; top: 3.1rem; width: 22.3rem; }

/* ---------- dúvidas ---------- */
.duvidas { height: 61.3rem; }
.duvidas .wrap { padding: 3.6rem 0 0 13rem; }
.duvidas .eyebrow { font: 700 1.52rem/1.8rem var(--f-saira); letter-spacing: .15em; color: var(--mint-2); }
.duvidas h2 { margin-top: .5rem; font: 700 2.87rem/3.4rem var(--f-saira); }
.faq { width: 73.5rem; margin-top: 1.9rem; }
.faq > div { position: relative; height: 7.15rem; padding-top: 1.35rem; border-top: .15rem solid rgba(16, 60, 62, .42); }
.faq > div::after {
  content: ""; position: absolute; right: 3.9rem; top: 2.2rem; width: 1.3rem; height: 1.3rem;
  background: linear-gradient(var(--mint-soft), var(--mint-soft)) center / 100% .17rem no-repeat, linear-gradient(var(--mint-soft), var(--mint-soft)) center / .17rem 100% no-repeat;
}
.faq dt { font: 700 1.2rem/1.5rem var(--f-barlow-sc); color: var(--mint-2); }
.faq dd { margin-top: 1.5rem; font: 400 1rem/1.4rem var(--f-barlow); }
.faq > div:nth-child(-n+2) dd { font-size: 1.07rem; }

/* ---------- contato + rodapé ---------- */
.contato { height: 47.5rem; }
.contato .wrap { height: 100%; }
.contato__camera { position: absolute; left: -1.3rem; top: -7rem; width: 59.2rem; max-width: none; pointer-events: none; }
.contato__card {
  position: absolute; left: 14.2rem; top: 5.9rem; width: 75.6rem; height: 29rem; border-radius: 1.4rem;
  background: linear-gradient(120deg, rgba(10, 36, 40, .84), rgba(10, 24, 30, .8)); border: .1rem solid rgba(255, 255, 255, .05);
  box-shadow: 0 .6rem 1.6rem rgba(0, 0, 0, .18);
}
.contato__copy { position: absolute; left: 3.7rem; top: 3.6rem; width: 30rem; }
.tagline {
  display: inline-flex; align-items: center; height: 2.2rem; padding: 0 .9rem 0 1.9rem; position: relative;
  border: .1rem solid rgba(0, 224, 173, .38); border-radius: 1.1rem; background: rgba(0, 212, 170, .09);
  font: 600 .88rem/1 var(--f-barlow-sc); letter-spacing: .12em; text-transform: uppercase;
}
.tagline::before { content: ""; position: absolute; left: 1rem; width: .5rem; height: .5rem; border-radius: 50%; background: var(--mint); }
.contato h2 { margin-top: 1.5rem; font: 900 2.4rem/2.8rem var(--f-saira); }
.contato__copy > p:not(.tagline) { margin-top: .7rem; font: 400 1.04rem/1.7rem var(--f-barlow); }
.checks { margin-top: 1.2rem; font: 400 1.03rem/1.5rem var(--f-barlow); }
.checks li { display: flex; align-items: center; margin-bottom: .6rem; }
.checks li::before { content: ""; flex: none; width: 1.5rem; height: 1.5rem; margin-right: .9rem; background: var(--check) center / contain no-repeat; }

.form { position: absolute; left: 39.4rem; top: 3.1rem; width: 32.4rem; display: flex; flex-direction: column; gap: .8rem; }
.form input[type="text"], .form input[type="tel"], .form textarea, .form__radios {
  width: 100%; height: 3.5rem; padding: 0 1.1rem; border: 0; border-radius: .4rem; background: #fff; color: var(--ink);
  font: 400 1.09rem/1.4 var(--f-barlow-sc);
}
.form textarea { height: 5rem; padding-top: .8rem; resize: none; }
.form ::placeholder { color: #4a4a4a; opacity: 1; }
.form input:focus, .form textarea:focus { outline: .2rem solid var(--mint-soft); outline-offset: 0; }
.form .is-invalid { box-shadow: inset 0 0 0 .2rem #e5484d; }
.form__radios { display: flex; align-items: center; }
.form__radios label { display: inline-flex; align-items: center; width: 14.3rem; cursor: pointer; }
.form__radios input { appearance: none; -webkit-appearance: none; width: 1.6rem; height: 1.6rem; margin: 0 .8rem 0 0; border: .2rem solid var(--teal); border-radius: 50%; background: #fff; cursor: pointer; }
.form__radios input:checked { background: radial-gradient(var(--teal) 0 45%, #fff 50%); }
.form button {
  height: 3.5rem; margin-top: -.3rem; border: 0; border-radius: .4rem; background: var(--mint-soft); color: var(--ink); cursor: pointer;
  font: 700 1.35rem/1 "Source Sans 3", sans-serif; transition: filter .15s, transform .15s;
}
.form button:hover { filter: brightness(1.07); transform: translateY(-.1rem); }
.form__status { position: absolute; left: 0; top: 100%; margin-top: .5rem; font: 500 1rem/1.3 var(--f-barlow); color: var(--mint-soft); }
.form__status.is-error { color: #ffb4b4; }

.footer { position: absolute; left: 0; top: 38.7rem; width: 100%; height: 6rem; }
.footer__logo { position: absolute; left: 14.4rem; top: 0; width: 8.3rem; }
.footer p { position: absolute; left: 26rem; top: 2.6rem; font: 400 .87rem/1.2rem var(--f-barlow); color: rgba(255, 255, 255, .66); white-space: nowrap; }
.footer__social { position: absolute; left: 82.6rem; top: 1.6rem; display: flex; gap: 1.6rem; color: var(--mint-soft); }
.footer__social a { width: 2.4rem; height: 2.4rem; transition: transform .15s, color .15s; }
.footer__social a:hover { transform: scale(1.1); color: #fff; }
.footer__social svg { display: block; width: 100%; height: 100%; }

/* ---------- animação de entrada ---------- */
.reveal { opacity: 0; transform: translateY(1.6rem); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .btn, .form button { transition: none; }
}

/* ==========================================================================
   CELULAR  (layout de 255 de largura; 1rem = 10 unidades)
   ========================================================================== */
@media (max-width: 720px) {
  html { font-size: calc(100vw / 25.5); }
  .wrap { width: 25.5rem; }
  .d-only { display: none; }
  .m-only { display: inline; }
  section[id], main[id] { scroll-margin-top: 0; }

  .btn { height: 1.83rem; border-radius: .25rem; font-size: .68rem; box-shadow: 0 .15rem .35rem rgba(0, 0, 0, .28); }

  /* header */
  .header__bar { width: 100%; height: 2.7rem; padding: 0 1.2rem 0 1.85rem; border-radius: 0; }
  .header__logo { width: 3.4rem; }
  .header__cta { width: 6rem; height: .92rem; margin-left: 5.05rem; border-radius: .2rem; font-size: .39rem; }
  .header__toggle {
    display: flex; flex-direction: column; justify-content: space-between; width: 1.75rem; height: 1.15rem; margin-left: auto; padding: 0;
    background: none; border: 0; cursor: pointer;
  }
  .header__toggle span { display: block; height: .13rem; border-radius: .1rem; background: var(--teal); transition: transform .2s, opacity .2s; }
  .header__toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(.51rem) rotate(45deg); }
  .header__toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .header__toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-.51rem) rotate(-45deg); }
  .nav {
    position: absolute; right: 1.2rem; top: 2.7rem; width: 10.1rem; margin: 0; padding: .95rem 0 1.4rem 1.15rem;
    flex-direction: column; gap: 1.05rem; background: rgba(255, 255, 255, .9);
    opacity: 0; visibility: hidden; transform: translateY(-.4rem); transition: opacity .2s, transform .2s, visibility .2s;
  }
  .nav.is-open { opacity: 1; visibility: visible; transform: none; }
  .nav a { font-size: .6rem; }

  /* hero */
  .hero { height: 35.9rem; background-position: 0 0, 62% 0; background-size: auto, auto 40rem; }
  .hero__text { left: 2.35rem; top: 3.7rem; }
  .badge { height: 1.1rem; padding: 0 .42rem; border-width: .07rem; border-radius: .55rem; font-size: .52rem; }
  .hero h1 { margin-top: 1.3rem; font-size: 1.75rem; line-height: 1.75rem; }
  .hero__lead { margin-top: .15rem; font-size: .69rem; line-height: .96rem; }
  .hero__actions { flex-direction: column; align-items: flex-start; gap: .55rem; margin-top: 1.85rem; }
  .btn--mint { width: 9.5rem; }
  .btn--dark { width: 6.5rem; }

  .hero__features { left: 2.3rem; top: 24.75rem; width: 9rem; flex-wrap: wrap; gap: .8rem 0; }
  .hero__features li { width: 4.2rem; }
  .hero__features li:nth-child(1) { width: 4.4rem; }
  .hero__features img { width: 2.45rem; box-shadow: 0 0 0 .3rem rgba(255, 255, 255, .28); }
  .hero__features span { margin-top: .75rem; padding-left: .5rem; font-size: .43rem; }
  .hero__features li:nth-child(n+3) span { font-size: .49rem; }
  .hero__features span::before { top: .1rem; width: .22rem; height: .22rem; border-radius: .05rem; }
  .hero__visual { left: 11.59rem; top: 20.05rem; font-size: .2818rem; }
  .alert-card { top: 37em; }
  .hero__rings i { border-width: .14em; }

  /* problema */
  .problema { height: auto; padding-bottom: 2.1rem; }
  .problema__left, .problema__art, .problema__copy { position: static; }
  .problema__left { padding: 2.7rem 0 0 2.3rem; }
  .problema .eyebrow { font-size: .65rem; line-height: .8rem; }
  .problema h2 { margin-top: .3rem; font-size: 1.34rem; line-height: 1.6rem; }
  .compare { width: 16.9rem; height: 5.1rem; margin: 1.35rem 0 0 1.9rem; padding: 1.1rem 0 0 1.1rem; border-radius: .5rem; border-width: .04rem; }
  .compare--vigia { margin-top: .8rem; }
  .compare h3 { font-size: .73rem; line-height: .9rem; }
  .compare p { margin-top: .2rem; font-size: .59rem; line-height: .9rem; }
  .compare__icon--conv { right: .9rem; top: 1rem; width: 3.5rem; }
  .compare__icon--vigia { right: .7rem; top: .7rem; width: 3rem; }
  .problema__art { width: 16.3rem; margin: -3.4rem 0 0 4.7rem; }
  .problema__copy { margin: 1.7rem 0 0 2.3rem; font-size: .75rem; line-height: 1.125rem; }
  br.d-only { display: none; }
  br.m-only { display: inline; }
  .problema__copy p + p { margin-top: 1.125rem; }

  /* soluções / poste */
  .solucoes { height: 36.7rem; overflow: hidden; }
  .solucoes::after { width: 8rem; height: 8rem; }
  .solucoes__head { left: 2.2rem; top: 2.3rem; }
  .solucoes .eyebrow { font-size: .54rem; line-height: .7rem; }
  .solucoes h2 { margin-top: .2rem; font-size: 1.11rem; line-height: 1.3rem; }
  .solucoes__head p:last-child { margin-top: .15rem; width: 18.5rem; font-size: .78rem; line-height: .8rem; }
  .poste__img { left: -6.9rem; top: 7.4rem; width: 20.4rem; max-width: none; }
  .steps-card--green { left: 6.8rem; top: 7.4rem; width: 15.7rem; height: 9.8rem; padding-top: .75rem; border-radius: .15rem; }
  .steps-card--green .steps-card__head { margin: 0 1rem 0 1.05rem; gap: 1.35rem; }
  .steps-card__head::before, .steps-card__head::after { height: .07rem; }
  .steps-card--green .steps-card__head img { width: 2.1rem; }
  .steps-card--green .steps { margin: .35rem 0 0 1.2rem; width: 13.2rem; font-size: .51rem; line-height: .75rem; }
  .steps-card--green .steps li { padding-left: .72rem; margin-bottom: .38rem; }
  .poste__copy { left: 7rem; top: 18.9rem; width: 15.7rem; }
  .poste__copy .kicker { width: 12rem; font-size: .55rem; line-height: .96rem; }
  .poste__copy h3 { margin-top: .5rem; font-size: 1.15rem; line-height: 1.3rem; }
  .poste__copy .body { margin-top: 0; font-size: .66rem; line-height: .74rem; }
  .poste__copy .pills { width: 15.5rem; margin: 1.05rem 0 0 0; gap: .38rem .38rem; }
  .poste__copy .pills li { height: 1.27rem; padding: 0 .65rem 0 .45rem; font-size: .43rem; }
  .poste__copy .pills li::before { width: .65rem; height: .65rem; margin-right: .5rem; }
  .pills li { box-shadow: 0 .1rem .2rem rgba(0, 0, 0, .35), inset 0 0 0 .04rem rgba(255, 255, 255, .06); }

  /* câmeras */
  .cameras .banner { height: 7.9rem; }
  .cameras__body { height: auto; display: flex; flex-direction: column; padding-bottom: 1.6rem; }
  .cameras .steps-card, .cameras__copy { position: static; }
  .cameras__copy { order: 1; width: 20rem; margin: 1.2rem 0 0 2.2rem; }
  .cameras__copy .kicker { font-size: .55rem; line-height: .7rem; }
  .cameras__copy h3 { margin-top: .5rem; font-size: 1.19rem; line-height: 1.4rem; }
  .cameras__copy .body { margin-top: .35rem; font-size: .68rem; line-height: 1.1rem; }
  .cameras__copy .pills { width: 17rem; margin: .45rem 0 0 .9rem; gap: .85rem .75rem; }
  .cameras__copy .pills li { height: 1.5rem; padding: 0 .55rem 0 .45rem; font-size: .51rem; }
  .cameras__copy .pills li::before { width: .75rem; height: .75rem; margin-right: .45rem; }
  .cameras .steps-card { order: 2; width: 21.2rem; height: 12.2rem; margin: 1.3rem 0 0 2rem; padding-top: 1.2rem; border-radius: 0; }
  .cameras .steps-card__head { margin: 0 2.7rem 0 2.8rem; gap: .6rem; }
  .cameras .steps-card__head img { width: 3.1rem; }
  .cameras .steps { margin: .65rem 0 0 2.8rem; font-size: .61rem; line-height: .98rem; }
  .cameras .steps li { padding-left: 1.1rem; margin-bottom: .4rem; }

  /* interfone */
  .interfone { height: auto; padding-bottom: 1.6rem; }
  .interfone .banner { position: relative; left: 0; width: 100%; height: 10.7rem; }
  .interfone .steps-card, .interfone .panel { position: static; }
  .interfone .steps-card { width: 19.6rem; height: 11.1rem; margin: 1.8rem 0 0 3rem; padding-top: .85rem; border-radius: .5rem; }
  .interfone .steps-card__head { margin: 0 2.8rem 0 2.1rem; gap: .35rem; }
  .interfone .steps-card__head img { width: 3.3rem; }
  .interfone .steps { margin: .35rem 0 0 2rem; font-size: .59rem; line-height: .92rem; }
  .interfone .steps li { padding-left: 1.1rem; margin-bottom: .48rem; }
  .interfone .panel { width: 19.6rem; height: 11.1rem; margin: 1rem 0 0 3rem; padding: 1rem 0 0 2.2rem; border-radius: .5rem; }
  .interfone .kicker { font-size: .49rem; line-height: .6rem; white-space: nowrap; }
  .interfone h3 { margin-top: .15rem; font-size: 1.01rem; line-height: 1.2rem; }
  .interfone .body { margin-top: .3rem; width: 14.3rem; font-size: .55rem; line-height: .86rem; }
  .interfone .pills { width: 17rem; margin: .45rem 0 0 -.3rem; gap: .25rem .3rem; }
  .interfone .pills li { height: 1.35rem; padding: 0 .45rem 0 .4rem; font-size: .47rem; }
  .interfone .pills li::before { width: .68rem; height: .68rem; margin-right: .4rem; }

  /* tag */
  .tag { height: auto; padding-bottom: 2.7rem; }
  .tag .banner { position: relative; left: 0; width: 100%; height: 10.3rem; }
  .tag__phone { left: 11.8rem; top: .55rem; width: 5.6rem; }
  .tag .steps-card, .tag .panel { position: static; }
  .tag .steps-card { position: relative; left: auto; top: auto; width: 20.8rem; height: 7.3rem; margin: 2.45rem 0 0 2.3rem; padding: 0; border-radius: 0; }
  .tag .steps-card__head { position: absolute; left: 2.05rem; top: 0; bottom: 0; margin: 0; flex-direction: column; gap: .65rem; }
  .tag .steps-card__head::before, .tag .steps-card__head::after { width: .07rem; height: auto; }
  .tag .steps-card__head img { width: 1.5rem; }
  .tag .steps { margin: 0; padding: 1.15rem 0 0 5.9rem; width: 20rem; font-size: .52rem; line-height: .68rem; }
  .tag .steps li { padding-left: 1rem; margin-bottom: .52rem; }
  .tag .panel { width: 20.8rem; height: 11.2rem; margin: 1.3rem 0 0 2.3rem; padding: 1.25rem 0 0 1.3rem; border-radius: 0; }
  .tag .kicker { font-size: .4rem; line-height: .5rem; }
  .tag h3 { margin-top: .3rem; font-size: .77rem; line-height: .9rem; }
  .tag .body { margin-top: .05rem; width: 18.5rem; font-size: .53rem; line-height: .7rem; }
  .tag .pills { width: 18rem; margin: .75rem 0 0 .1rem; gap: .3rem .25rem; }
  .tag .pills li { height: 1.25rem; padding: 0 .45rem 0 .65rem; font-size: .4rem; }
  .tag .pills li::before { width: .62rem; height: .62rem; margin-right: .6rem; }

  /* para quem */
  .quem { height: auto; padding-bottom: 2.25rem; }
  .quem::before { display: none; }
  .quem::after { width: 5rem; height: 5rem; }
  .quem .wrap { display: flex; flex-direction: column; }
  .quem__head, .quem__shield, .quem__card { position: static; }
  .quem__head { padding: 1.85rem 0 0 2.9rem; }
  .quem .eyebrow { font-size: .51rem; line-height: .6rem; }
  .quem h2 { margin-top: .15rem; font-size: 1.15rem; line-height: 1.4rem; }
  .quem__card { position: relative; left: auto; top: auto; width: 20.1rem; height: 11.9rem; margin: .5rem 0 0 2.9rem; border-radius: .15rem; }
  .quem__card h3 { left: .8rem; top: .8rem; font-size: .54rem; line-height: .7rem; }
  .quem__card > p { left: 1.3rem; top: 1.85rem; width: 16.5rem; font-size: .52rem; line-height: .63rem; }
  .quem__card ul { left: 1.3rem; top: 3.65rem; width: 17rem; font-size: .52rem; line-height: .63rem; }
  .quem__card li { margin-bottom: .6rem; }
  .quem__card .btn { left: .7rem; top: 10.2rem; width: 3.95rem; height: 1rem; border-radius: .15rem; border-width: .04rem; font-size: .33rem; }
  .quem__shield { width: 3.45rem; margin: 1.15rem 0 0 10.65rem; }
  .quem__card--casas { width: 19.9rem; height: 13rem; margin: .85rem 0 0 2.7rem; }
  .quem__card--casas h3 { left: .75rem; top: .75rem; }
  .quem__card--casas > p { left: 1.3rem; top: 1.75rem; width: 17.5rem; font-size: .55rem; line-height: .9rem; }
  .quem__card--casas ul { left: 1.3rem; top: 4.15rem; width: 17.5rem; font-size: .51rem; }
  .quem__card--casas li { margin-bottom: .97rem; }
  .quem__card--casas .btn { left: 1.55rem; top: 11.05rem; width: 3.5rem; height: .95rem; }

  /* como contratar / por que */
  .contratar { height: auto; padding-bottom: 2.3rem; }
  .contratar .wrap { padding: 2.5rem 0 0 2.95rem; }
  .contratar .eyebrow { font-size: .44rem; line-height: .6rem; }
  .contratar h2 { margin-top: .25rem; font-size: 1.1rem; line-height: 1.4rem; white-space: nowrap; }
  .etapas { flex-wrap: wrap; gap: .9rem .9rem; width: 20rem; margin: .9rem 0 0 -.15rem; }
  .etapas li { width: 9.2rem; height: 6.1rem; padding: .75rem .5rem 0 .8rem; border-radius: .5rem; border-width: .04rem; }
  .etapas b { font-size: 1.03rem; line-height: 1rem; }
  .etapas h3 { margin-top: .3rem; font-size: .6rem; line-height: .8rem; }
  .etapas p { font-size: .54rem; line-height: .95rem; }
  .contratar .eyebrow--porque { margin: 2.45rem 0 0 .1rem; font-size: .46rem; }
  .contratar .porque__title { margin: .35rem 0 0 .1rem; font-size: 1.14rem; line-height: 1.4rem; }
  .porque { grid-template-columns: 9.4rem 9.4rem; gap: .36rem .8rem; margin: .85rem 0 0 -.15rem; }
  .porque li { min-height: 1.52rem; padding: .25rem .2rem .25rem .6rem; border-radius: .25rem; border-width: .04rem; font: 700 .47rem/.75rem var(--f-barlow-c); letter-spacing: .01em; white-space: nowrap; }
  .porque li:nth-child(n+4):nth-child(-n+6) { min-height: 1.52rem; }
  .porque li::before { width: .58rem; height: .58rem; margin-right: .55rem; }
  .porque .o1 { order: 1; } .porque .o2 { order: 2; } .porque .o3 { order: 3; } .porque .o4 { order: 4; font: 700 .34rem/.6rem var(--f-barlow); letter-spacing: .04em; white-space: normal; }
  .porque .o5 { order: 5; } .porque .o6 { order: 6; } .porque .o7 { order: 7; }

  /* identificação */
  .identificacao { height: 14rem; }
  .identificacao__copy { left: 3rem; top: 4.7rem; width: 12.5rem; }
  .identificacao .eyebrow { font-size: .63rem; line-height: .8rem; letter-spacing: .2em; }
  .identificacao h2 { margin-top: .15rem; font-size: .93rem; line-height: 1.1rem; }
  .identificacao img { left: 16rem; top: 1.7rem; width: 7.55rem; }

  /* dúvidas */
  .duvidas { height: auto; padding-bottom: 1.7rem; }
  .duvidas .wrap { padding: 2.1rem 0 0 0; }
  .duvidas .eyebrow { margin-left: 2.9rem; font-size: .72rem; line-height: .9rem; }
  .duvidas h2 { margin: .3rem 0 0 2.9rem; font-size: 1.36rem; line-height: 1.6rem; }
  .faq { width: 100%; margin-top: 1.25rem; }
  .faq > div { height: auto; min-height: 2.4rem; padding: .5rem 6.5rem .45rem 2.9rem; border-top-width: .06rem; }
  .faq > div::after { right: 3.35rem; top: .85rem; width: .45rem; height: .45rem; background-size: 100% .07rem, .07rem 100%; }
  .faq dt { font-size: .44rem; line-height: .55rem; }
  .faq dd { margin-top: .05rem; font-size: .45rem; line-height: .65rem; }
  .faq > div:nth-child(-n+2) dd { font-size: .48rem; }
  .faq > div:nth-child(3) dd { font-size: .42rem; white-space: nowrap; }

  /* contato */
  .contato { height: auto; padding-bottom: .1rem; }
  .contato .wrap { height: auto; padding-top: 4rem; }
  .contato__camera { left: 0; top: -5rem; width: 37.1rem; }
  .contato__card { position: relative; left: auto; top: auto; width: 19.2rem; height: 24.8rem; margin-left: 3.6rem; border-radius: 0; border: 0; }
  .contato__copy { left: 2.75rem; top: 2.1rem; width: 12.5rem; }
  .tagline { height: .95rem; padding: 0 .4rem 0 .8rem; border-width: .04rem; border-radius: .5rem; font-size: .42rem; }
  .tagline::before { left: .4rem; width: .2rem; height: .2rem; }
  .contato h2 { margin-top: .55rem; font-size: 1rem; line-height: 1.1rem; }
  .contato__copy > p:not(.tagline) { margin-top: .35rem; font-size: .43rem; line-height: .8rem; }
  .checks { margin-top: .3rem; font-size: .47rem; line-height: .7rem; }
  .checks li { margin-bottom: .2rem; }
  .checks li::before { width: .62rem; height: .62rem; margin-right: .4rem; }
  .form { left: 2.8rem; top: 13rem; width: 13.6rem; gap: .35rem; }
  .form input[type="text"], .form input[type="tel"], .form textarea, .form__radios { height: 1.45rem; padding: 0 .5rem; border-radius: .05rem; font-size: .46rem; }
  .form textarea { height: 2.1rem; padding-top: .35rem; }
  .form__radios label { width: 6rem; }
  .form__radios input { width: .68rem; height: .68rem; margin-right: .3rem; border-width: .08rem; }
  .form button { height: 1.45rem; margin-top: -.1rem; border-radius: .05rem; font-size: .57rem; }
  .form__status { margin-top: .25rem; font-size: .46rem; }

  .footer { position: relative; top: auto; height: 7.3rem; margin-top: 2.4rem; }
  .footer__logo { left: 6.8rem; top: 0; width: 5.8rem; }
  .footer__social { left: 14.2rem; top: 1.65rem; gap: 1.05rem; flex-direction: row-reverse; }
  .footer__social a { width: 1.9rem; height: 1.9rem; }
  .footer p { left: 4.2rem; top: 4.8rem; width: 17rem; font-size: .52rem; line-height: .65rem; text-align: center; white-space: normal; }

  .reveal { transform: translateY(.8rem); }
}

/* ---------- aviso de cookies (px: independe da escala do layout) ---------- */
.footer__cookies { margin-left: .8em; text-decoration: underline; color: inherit; }
.footer__cookies:hover { color: #fff; }
.cookies {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 100; max-width: 760px; margin: 0 auto;
  display: flex; align-items: center; gap: 20px; padding: 18px 20px; border-radius: 12px;
  background: #0d1f24; border: 1px solid rgba(92, 246, 216, .28); box-shadow: 0 10px 30px rgba(0, 0, 0, .4);
  color: #e8f4f2; font: 400 14px/1.5 var(--f-barlow);
}
.cookies strong { display: block; margin-bottom: 2px; font: 700 17px/1.3 var(--f-saira); color: var(--mint); }
.cookies__actions { display: flex; gap: 10px; flex: none; }
.cookies__btn {
  height: 40px; padding: 0 16px; border-radius: 6px; border: 1px solid rgba(255, 255, 255, .35); background: transparent; color: #fff;
  font: 700 15px/1 var(--f-saira); white-space: nowrap; cursor: pointer; transition: filter .15s, background .15s;
}
.cookies__btn:hover { background: rgba(255, 255, 255, .08); }
.cookies__btn--ok { border-color: var(--mint-soft); background: var(--mint-soft); color: var(--ink); }
.cookies__btn--ok:hover { background: var(--mint-soft); filter: brightness(1.08); }
@media (max-width: 720px) {
  .cookies { flex-direction: column; align-items: stretch; gap: 14px; left: 10px; right: 10px; bottom: 10px; padding: 16px; }
  .cookies__btn { flex: 1; }
}