/* =========================================================
   OPTO VISÃO — Landing Page
   ========================================================= */

:root{
  --navy:        #0b1a4b;
  --navy-800:    #102359;
  --navy-700:    #17306f;
  --cyan:        #0fb0e8;
  --cyan-600:    #0d9bcd;
  --cyan-200:    #a8e4fa;
  --cyan-50:     #e8f7fe;
  --wa:          #25d366;
  --wa-dark:     #1da851;

  --ink:         #16213e;
  --muted:       #5c6a86;
  --line:        #e4ebf5;

  --bg:          #ffffff;
  --bg-soft:     #f3f8fd;

  --radius:      18px;
  --radius-lg:   26px;
  --shadow-sm:   0 2px 10px rgba(11,26,75,.06);
  --shadow:      0 12px 34px rgba(11,26,75,.09);
  --shadow-lg:   0 26px 60px rgba(11,26,75,.16);

  --container:   1180px;
  --header-h:    98px;
}

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

html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 12px); }

body{
  margin:0;
  font-family:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul,ol{ margin:0; padding:0; list-style:none; }

h1,h2,h3,h4{ margin:0; line-height:1.18; letter-spacing:-.02em; color:var(--navy); font-weight:800; }
p{ margin:0; }

svg{ width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.9;
     stroke-linecap:round; stroke-linejoin:round; }

.container{ width:min(100% - 40px, var(--container)); margin-inline:auto; }
.container--narrow{ width:min(100% - 40px, 820px); }

/* ---------------- Botões ---------------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 28px;
  border-radius:999px;
  font-weight:700; font-size:1rem; letter-spacing:-.01em;
  border:2px solid transparent;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
  white-space:nowrap;
}
.btn svg{ width:20px; height:20px; flex:none; }
.ico-wa{ fill:currentColor; stroke:none; }

.btn--primary{
  background:linear-gradient(135deg, var(--cyan) 0%, #0a86c9 100%);
  color:#fff;
  box-shadow:0 12px 26px rgba(15,176,232,.32);
}
.btn--primary:hover{ transform:translateY(-2px); box-shadow:0 18px 34px rgba(15,176,232,.42); }

.btn--ghost{
  background:transparent; color:var(--navy); border-color:#cfdcee;
}
.btn--ghost:hover{ background:var(--cyan-50); border-color:var(--cyan-200); transform:translateY(-2px); }

.btn--wa{
  background:linear-gradient(135deg, var(--wa) 0%, var(--wa-dark) 100%);
  color:#fff;
  box-shadow:0 14px 30px rgba(37,211,102,.35);
}
.btn--wa:hover{ transform:translateY(-2px); box-shadow:0 20px 40px rgba(37,211,102,.45); }

.btn--sm{ padding:11px 20px; font-size:.92rem; }
.btn--lg{ padding:18px 40px; font-size:1.08rem; }

/* ---------------- Header ---------------- */
/* Menu transparente sobre a primeira dobra; ganha fundo ao rolar */
.header{
  position:fixed; top:0; left:0; right:0; z-index:60;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:box-shadow .25s ease, border-color .25s ease, background .25s ease;
}
.header.is-stuck{
  --header-h:72px;
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(14px);
  border-color:var(--line);
  box-shadow:0 6px 24px rgba(11,26,75,.07);
}

.header__inner{
  height:var(--header-h);
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  transition:height .25s ease;
}
.brand img{ height:70px; width:auto; transition:height .25s ease; }
.header.is-stuck .brand img{ height:48px; }

.nav{ display:flex; align-items:center; gap:30px; }
.nav > a:not(.btn){
  font-weight:600; font-size:.96rem; color:var(--navy);
  position:relative; padding:6px 0;
  transition:color .18s ease;
}
.nav > a:not(.btn)::after{
  content:""; position:absolute; left:0; bottom:0; height:2px; width:0;
  background:var(--cyan); border-radius:2px; transition:width .22s ease;
}
.nav > a:not(.btn):hover{ color:var(--cyan-600); }
.nav > a:not(.btn):hover::after{ width:100%; }

.burger{
  display:none; width:46px; height:46px; border-radius:12px;
  border:1px solid var(--line); background:#fff; cursor:pointer;
  padding:12px; flex-direction:column; justify-content:space-between;
}
.burger span{ display:block; height:2px; background:var(--navy); border-radius:2px; transition:.25s ease; }
.burger.is-open span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.burger.is-open span:nth-child(2){ opacity:0; }
.burger.is-open span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }

/* ---------------- Hero ---------------- */
.hero{ position:relative; overflow:hidden;
       padding:calc(var(--header-h) + 46px) 0 96px;
       background:linear-gradient(180deg,#f7fbff 0%, #ffffff 100%); }
.hero__glow{
  position:absolute; inset:auto auto 0 50%; transform:translateX(-50%);
  width:1200px; height:1200px; border-radius:50%;
  background:radial-gradient(circle at 50% 30%, rgba(15,176,232,.16), rgba(15,176,232,0) 62%);
  pointer-events:none;
}
.hero__inner{
  position:relative;
  display:grid; grid-template-columns:1.05fr .95fr; gap:64px; align-items:center;
}

.hero h1{
  font-size:clamp(1.95rem, 3.2vw, 3.1rem);
  margin:0 0 18px;
  max-width:17ch;
}
.hero h1 .hl{
  color:var(--cyan-600);
  background:linear-gradient(180deg, transparent 62%, rgba(15,176,232,.20) 62%);
}
.lead{ font-size:1.12rem; color:var(--muted); max-width:56ch; }

.hero__pills{ display:flex; flex-wrap:wrap; gap:12px; margin:26px 0 32px; }
.hero__pills li{
  display:inline-flex; align-items:center; gap:9px;
  background:#fff; border:1px solid var(--line); border-radius:999px;
  padding:9px 18px; font-size:.92rem; font-weight:600; color:var(--navy);
  box-shadow:var(--shadow-sm);
}
.hero__pills svg{ width:17px; height:17px; color:var(--cyan); stroke-width:3; flex:none; }

.hero__actions{ display:flex; flex-wrap:wrap; gap:14px; }

.hero__trust{ display:flex; align-items:center; gap:14px; margin-top:32px; flex-wrap:wrap; }
.hero__trust p{ font-size:.94rem; color:var(--muted); }
.stars{ color:#f5a623; letter-spacing:2px; font-size:1.05rem; }

.hero__media{ position:relative; }
.hero__frame{
  position:relative;
  border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow-lg);
  border:8px solid #fff;
  aspect-ratio:4/4.2;
  background:var(--bg-soft);
}

/* Carrossel do hero */
.hero__slides{ position:absolute; inset:0; }
.hero__slides img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  opacity:0; transform:scale(1.04);
  transition:opacity .9s ease, transform 6s ease;
}
.hero__slides img.is-active{ opacity:1; transform:scale(1); }

.hero__dots{
  position:absolute; left:50%; bottom:16px; transform:translateX(-50%);
  display:flex; gap:9px; z-index:2;
  padding:8px 12px; border-radius:999px;
  background:rgba(11,26,75,.32); backdrop-filter:blur(8px);
}
.hero__dots button{
  width:9px; height:9px; padding:0; border:0; border-radius:999px;
  background:rgba(255,255,255,.5); cursor:pointer;
  transition:width .3s ease, background .3s ease;
}
.hero__dots button[aria-selected="true"]{ width:26px; background:#fff; }

.floatcard{
  position:absolute; display:flex; align-items:center; gap:12px;
  background:#fff; border-radius:16px; padding:13px 18px;
  box-shadow:var(--shadow); border:1px solid var(--line);
}
.floatcard strong{ display:block; font-size:.95rem; color:var(--navy); line-height:1.3; }
.floatcard span{ font-size:.8rem; color:var(--muted); }
.floatcard__ico{
  width:38px; height:38px; flex:none; border-radius:11px;
  background:var(--cyan-50); color:var(--cyan-600);
  display:grid; place-items:center; padding:9px;
}
.floatcard--a{ top:26px; left:-30px; animation:float 6s ease-in-out infinite; }
.floatcard--b{ bottom:34px; right:-26px; animation:float 6s ease-in-out infinite .8s; }

@keyframes float{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-9px); }
}

/* ---------------- Seções ---------------- */
.section{ padding:96px 0; }
.section--soft{ background:var(--bg-soft); }
.section--dark{
  background:linear-gradient(160deg, var(--navy) 0%, var(--navy-700) 100%);
  color:#dce6f7;
}
.section--dark h2, .section--dark h3{ color:#fff; }

.section__head{ max-width:720px; margin:0 auto 54px; text-align:center; }
.section__head h2{ font-size:clamp(1.8rem, 3.1vw, 2.5rem); margin:14px 0 14px; }
.section__head p{ color:var(--muted); font-size:1.05rem; }
.section__head--light p{ color:#b8c8e6; }

.eyebrow{
  display:inline-block;
  font-size:.8rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--cyan-600);
  background:var(--cyan-50); border-radius:999px; padding:7px 16px;
}
.eyebrow--light{ background:rgba(15,176,232,.16); color:var(--cyan-200); }

.section__cta{ display:flex; justify-content:center; margin-top:48px; }

/* ---------------- Grids / Cards ---------------- */
.grid{ display:grid; gap:22px; }
.grid--3{ grid-template-columns:repeat(3, 1fr); }
.grid--4{ grid-template-columns:repeat(4, 1fr); }

.card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:30px 26px;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.card:hover{ transform:translateY(-5px); box-shadow:var(--shadow); border-color:var(--cyan-200); }
.card h3{ font-size:1.1rem; margin-bottom:10px; }
.card p{ color:var(--muted); font-size:.96rem; }

.card__ico{
  width:52px; height:52px; border-radius:15px; padding:13px; margin-bottom:18px;
  background:linear-gradient(135deg, var(--cyan-50), #f2fbff);
  color:var(--cyan-600);
  display:grid; place-items:center;
}
.card--symptom .card__ico{ background:linear-gradient(135deg,#fff4e6,#fffaf3); color:#e8912a; }

.card--num{ position:relative; padding-top:34px; }
.num{
  display:inline-flex; align-items:center; justify-content:center;
  width:46px; height:46px; border-radius:13px; margin-bottom:16px;
  background:var(--navy); color:#fff;
  font-weight:800; font-size:1rem; letter-spacing:-.02em;
}
.card--num-accent{
  background:linear-gradient(160deg, #eefaff 0%, #ffffff 100%);
  border-color:var(--cyan-200);
}
.card--num-accent .num{ background:linear-gradient(135deg,var(--cyan),#0a86c9); }

/* ---------------- Foco / destaque com imagem ---------------- */
.focus{
  display:grid; grid-template-columns:.95fr 1.05fr; gap:52px; align-items:center;
  margin-top:64px;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:20px; box-shadow:var(--shadow-sm);
}
.focus__media{ border-radius:20px; overflow:hidden; aspect-ratio:4/3; }
.focus__media img{ width:100%; height:100%; object-fit:cover; }
.focus__content{ padding:14px 30px 14px 6px; }
.focus__content h3{ font-size:clamp(1.45rem,2.4vw,1.95rem); margin:16px 0 14px; }
.focus__content p{ color:var(--muted); margin-bottom:26px; }

/* ---------------- Especialista ---------------- */
.specialist{
  position:relative; overflow:hidden;
  display:grid; grid-template-columns:300px 1fr; gap:56px; align-items:center;
  margin-top:72px; padding:48px 56px;
  border-radius:var(--radius-lg);
  background:
    radial-gradient(circle at 12% 15%, rgba(15,176,232,.26), transparent 46%),
    linear-gradient(150deg, var(--navy) 0%, var(--navy-700) 100%);
  box-shadow:var(--shadow-lg);
}

.specialist__media{ position:relative; }
.specialist__photo{
  border-radius:22px; overflow:hidden;
  aspect-ratio:4/5;
  border:3px solid rgba(168,228,250,.28);
  box-shadow:0 22px 46px rgba(3,10,30,.45);
  background:#f2f6fb;
}
/* O PNG tem uma moldura preta embutida: o scale empurra a borda para fora do recorte. */
.specialist__photo img{
  width:100%; height:100%;
  object-fit:cover; object-position:center 22%;
  transform:scale(1.12);
}

.specialist__badge{
  position:absolute; bottom:-16px; left:50%; transform:translateX(-50%);
  display:inline-flex; align-items:center; white-space:nowrap;
  background:linear-gradient(135deg, var(--cyan), #0a86c9); color:#fff;
  font-weight:800; font-size:.92rem; letter-spacing:-.01em;
  padding:11px 24px; border-radius:999px;
  box-shadow:0 14px 28px rgba(15,176,232,.42);
}

.specialist__content h3{
  color:#fff;
  font-size:clamp(1.6rem,2.7vw,2.2rem);
  margin:18px 0 8px;
  max-width:22ch;
}
.specialist__role{
  display:inline-flex; align-items:center; gap:9px;
  color:var(--cyan-200); font-weight:700; font-size:1.02rem; letter-spacing:-.01em;
  margin-bottom:18px;
}
.specialist__role::before{
  content:""; width:26px; height:2px; border-radius:2px;
  background:var(--cyan); flex:none;
}
.specialist__content > p:not(.specialist__role){ color:#c3d3ee; font-size:1.04rem; max-width:56ch; }

.creds{ display:grid; gap:12px; margin:26px 0 30px; }
.creds li{
  display:flex; align-items:center; gap:12px;
  color:#e6eefb; font-size:.99rem; font-weight:500;
}
.creds svg{
  width:22px; height:22px; flex:none; padding:4px;
  border-radius:50%; background:rgba(15,176,232,.2);
  color:var(--cyan-200); stroke-width:3.2;
}

/* ---------------- Como funciona ---------------- */
.how{ display:grid; grid-template-columns:1.05fr .95fr; gap:60px; align-items:center; }
.how__list{ display:grid; gap:10px; }
.how__list li{
  display:flex; gap:20px; align-items:flex-start;
  padding:22px 24px; border-radius:var(--radius);
  border:1px solid transparent;
  transition:background .22s ease, border-color .22s ease, transform .22s ease;
}
.how__list li:hover{ background:#fff; border-color:var(--line); box-shadow:var(--shadow-sm); transform:translateX(4px); }
.how__num{
  flex:none; width:44px; height:44px; border-radius:50%;
  display:grid; place-items:center;
  background:linear-gradient(135deg, var(--cyan), #0a86c9); color:#fff;
  font-weight:800; font-size:1.05rem;
  box-shadow:0 8px 18px rgba(15,176,232,.3);
}
.how__list h3{ font-size:1.12rem; margin-bottom:6px; }
.how__list p{ color:var(--muted); font-size:.97rem; }
.how__media{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg);
             border:8px solid #fff; aspect-ratio:1/1.05; }
.how__media img{ width:100%; height:100%; object-fit:cover; }

/* ---------------- Convênios ---------------- */
.conv{ display:grid; grid-template-columns:1fr auto .82fr; gap:28px; align-items:stretch; }

.conv__cond, .conv__result{
  border:1px solid rgba(168,228,250,.22);
  border-radius:var(--radius-lg); padding:32px 32px 34px;
  backdrop-filter:blur(6px);
  background:rgba(255,255,255,.06);
}

/* Rótulo numerado que liga a condição ao benefício */
.conv__label{
  display:flex; align-items:center; gap:11px;
  color:#c6d6ef; font-size:.98rem; font-weight:600; line-height:1.4;
  margin-bottom:22px;
}
.conv__label em{
  flex:none; width:26px; height:26px; border-radius:50%;
  display:grid; place-items:center;
  background:rgba(15,176,232,.22); color:var(--cyan-200);
  font-style:normal; font-weight:800; font-size:.82rem;
}

/* Seta condição → benefício */
.conv__arrow{
  align-self:center; width:42px; height:42px; padding:9px;
  border-radius:50%; display:grid; place-items:center;
  background:rgba(15,176,232,.16); color:var(--cyan);
}

.conv__result{
  display:flex; flex-direction:column;
  background:
    radial-gradient(circle at 80% 0%, rgba(15,176,232,.3), transparent 62%),
    rgba(255,255,255,.06);
  border-color:rgba(168,228,250,.4);
}
.conv__pct{
  line-height:.88; font-weight:800; letter-spacing:-.05em;
  font-size:clamp(3.6rem, 7vw, 5.4rem);
  background:linear-gradient(160deg, #fff 20%, var(--cyan-200) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.conv__pct sup{ font-size:.42em; top:-.75em; margin-left:.05em; letter-spacing:0; }
.conv__result h3{ font-size:clamp(1.2rem,2vw,1.5rem); margin:6px 0 14px; }
.conv__result-text{ color:#c6d6ef; font-size:.99rem; }

/* Benefício sem vínculo com o desconto acima */
.conv__extra{
  margin-top:22px; padding:26px 32px;
  border:1px dashed rgba(168,228,250,.3); border-radius:var(--radius-lg);
  background:rgba(255,255,255,.03);
  display:flex; align-items:center; gap:20px; flex-wrap:wrap;
}
.conv__extra-tag{
  order:-1; flex:none;
  letter-spacing:.1em; text-transform:uppercase; font-size:.72rem; font-weight:800;
  color:var(--cyan-200); background:rgba(15,176,232,.16);
  padding:7px 14px; border-radius:999px;
}
.conv__extra-ico{
  width:44px; height:44px; flex:none; padding:11px; border-radius:13px;
  background:rgba(15,176,232,.16); color:var(--cyan-200); display:grid; place-items:center;
}
.conv__extra h3{ font-size:1.1rem; line-height:1.4; }

.partners{ display:grid; gap:14px; }
.partners li{
  display:flex; gap:14px; align-items:center;
  background:rgba(255,255,255,.05); border:1px solid rgba(168,228,250,.16);
  border-radius:14px; padding:16px 18px;
}
.partners__ico{ width:40px; height:40px; flex:none; padding:9px; border-radius:11px;
                background:rgba(15,176,232,.18); color:var(--cyan-200); display:grid; place-items:center; }
.partners strong{ display:block; color:#fff; font-size:.95rem; line-height:1.35; }
.partners span{ font-size:.83rem; color:#a9bcdb; }

/* ---------------- Depoimentos ---------------- */
.quote{
  margin:0; background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:30px 28px; display:flex; flex-direction:column; gap:16px;
  transition:transform .22s ease, box-shadow .22s ease;
}
.quote:hover{ transform:translateY(-5px); box-shadow:var(--shadow); }
.quote blockquote{ margin:0; color:var(--ink); font-size:1rem; line-height:1.7; flex:1; }
.quote figcaption{
  display:flex; align-items:center; gap:12px;
  font-size:.9rem; color:var(--muted); font-weight:600;
  border-top:1px solid var(--line); padding-top:16px;
}
.avatar{
  width:38px; height:38px; border-radius:50%; flex:none;
  display:grid; place-items:center;
  background:linear-gradient(135deg, var(--navy), var(--navy-700));
  color:#fff; font-size:.8rem; font-weight:800; letter-spacing:.03em;
}

/* ---------------- FAQ ---------------- */
.faq{ display:grid; gap:14px; }
.faq__item{
  background:#fff; border:1px solid var(--line); border-radius:16px;
  padding:4px 24px; transition:border-color .2s ease, box-shadow .2s ease;
}
.faq__item[open]{ border-color:var(--cyan-200); box-shadow:var(--shadow-sm); }
.faq__item summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding:20px 0; font-weight:700; color:var(--navy); font-size:1.03rem;
}
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary::after{
  content:"+"; flex:none;
  width:30px; height:30px; border-radius:50%;
  background:var(--cyan-50); color:var(--cyan-600);
  display:grid; place-items:center; font-size:1.25rem; font-weight:700; line-height:1;
  transition:transform .25s ease, background .25s ease, color .25s ease;
}
.faq__item[open] summary::after{ content:"−"; background:var(--cyan); color:#fff; transform:rotate(180deg); }
.faq__body{ padding:0 0 22px; color:var(--muted); font-size:.99rem; max-width:68ch; }

/* ---------------- Localização ---------------- */
.local{
  display:grid; grid-template-columns:.9fr 1.1fr; gap:26px; align-items:stretch;
}
.local__info{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:36px 34px; box-shadow:var(--shadow-sm);
  display:flex; flex-direction:column; gap:26px;
}
.local__row{ display:flex; gap:16px; align-items:flex-start; }
.local__ico{
  width:44px; height:44px; flex:none; padding:11px; border-radius:13px;
  background:linear-gradient(135deg, var(--cyan-50), #f2fbff);
  color:var(--cyan-600); display:grid; place-items:center;
}
.local__row strong{ display:block; color:var(--navy); font-size:1.02rem; margin-bottom:5px; }
.local__row p, .local__row address{
  color:var(--muted); font-size:.97rem; font-style:normal; line-height:1.65;
}
.local__phone{ color:var(--cyan-600); font-weight:700; }
.local__phone:hover{ text-decoration:underline; }

.local__actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:auto; padding-top:6px; }

.local__map{
  border-radius:var(--radius-lg); overflow:hidden;
  border:8px solid #fff; box-shadow:var(--shadow);
  min-height:420px; background:var(--bg-soft);
}
.local__map iframe{ width:100%; height:100%; min-height:404px; border:0; display:block; }

/* ---------------- CTA final ---------------- */
.cta-final{
  padding:96px 0;
  background:
    radial-gradient(circle at 15% 20%, rgba(15,176,232,.28), transparent 45%),
    radial-gradient(circle at 85% 80%, rgba(15,176,232,.18), transparent 45%),
    linear-gradient(150deg, var(--navy) 0%, var(--navy-700) 100%);
}
.cta-final__inner{ text-align:center; max-width:760px; }
.cta-final h2{ color:#fff; font-size:clamp(2rem,3.6vw,2.9rem); }
.cta-final p{ color:#c3d3ee; font-size:1.1rem; margin:18px auto 34px; max-width:56ch; }

/* ---------------- Footer ---------------- */
.footer{ background:#08132f; color:#9fb2d3; padding:66px 0 34px; font-size:.95rem; }
.footer h4{ color:#fff; font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:18px; }
.footer__inner{
  display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:48px;
  padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.09);
}
.footer__brand img{ height:64px; width:auto; background:#fff; border-radius:12px; padding:8px 12px; margin-bottom:18px; }
.footer__brand p{ max-width:34ch; }
.footer__brand strong{ color:#fff; }
.footer__links{ display:flex; flex-direction:column; gap:11px; align-items:flex-start; }
.footer__links a{ transition:color .18s ease; }
.footer__links a:hover{ color:var(--cyan-200); }
.footer__wa{
  display:inline-flex; align-items:center; gap:10px; color:#fff; font-weight:700;
  background:rgba(37,211,102,.14); border:1px solid rgba(37,211,102,.3);
  padding:11px 18px; border-radius:999px; transition:background .2s ease;
}
.footer__wa:hover{ background:rgba(37,211,102,.26); }
.footer__wa svg{ width:19px; height:19px; color:var(--wa); }
.footer__address{ margin-top:16px; font-style:normal; font-size:.88rem; line-height:1.75; }
.footer__notice{ margin-top:30px; font-size:.85rem; line-height:1.7; color:#7f93b6; max-width:90ch; }
.footer__notice strong{ color:#b6c8e6; }
.footer__copy{ margin-top:22px; font-size:.84rem; color:#66799a; }

/* ---------------- WhatsApp flutuante ---------------- */
.wa-float{
  position:fixed; right:22px; bottom:22px; z-index:70;
  display:inline-flex; align-items:center; gap:11px;
  background:linear-gradient(135deg, var(--wa), var(--wa-dark)); color:#fff;
  padding:14px 22px 14px 18px; border-radius:999px; font-weight:700; font-size:.96rem;
  box-shadow:0 14px 32px rgba(37,211,102,.42);
  transition:transform .2s ease, box-shadow .2s ease;
}
.wa-float svg{ width:24px; height:24px; fill:currentColor; stroke:none; flex:none; }
.wa-float:hover{ transform:translateY(-3px) scale(1.02); box-shadow:0 20px 42px rgba(37,211,102,.5); }

/* ---------------- Animação de entrada ---------------- */
.reveal{ opacity:0; transform:translateY(24px); }
.reveal.is-visible{ opacity:1; transform:none; transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.3,1); }

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
  .reveal{ opacity:1; transform:none; }
  html{ scroll-behavior:auto; }
}

/* =========================================================
   Responsivo
   ========================================================= */
@media (max-width:1080px){
  .grid--4{ grid-template-columns:repeat(2, 1fr); }
  .hero__inner{ gap:44px; }
  .floatcard--a{ left:-12px; }
  .floatcard--b{ right:-12px; }
}

@media (max-width:900px){
  :root{ --header-h:84px; }
  .header.is-stuck{ --header-h:68px; }
  .brand img{ height:54px; }
  .header.is-stuck .brand img{ height:42px; }

  .nav{
    position:fixed; inset:var(--header-h) 0 auto 0;
    flex-direction:column; align-items:stretch; gap:0;
    background:#fff; border-bottom:1px solid var(--line);
    padding:14px 20px 24px;
    box-shadow:0 20px 40px rgba(11,26,75,.12);
    transform:translateY(-130%); opacity:0; pointer-events:none;
    transition:transform .3s ease, opacity .3s ease;
    max-height:calc(100vh - var(--header-h)); overflow-y:auto;
  }
  .nav.is-open{ transform:translateY(0); opacity:1; pointer-events:auto; }
  .nav > a:not(.btn){ padding:15px 4px; border-bottom:1px solid var(--line); }
  .nav > a:not(.btn)::after{ display:none; }
  .nav__cta{ margin-top:18px; }
  .burger{ display:flex; }

  .hero{ padding:calc(var(--header-h) + 28px) 0 72px; }
  .hero__inner{ grid-template-columns:1fr; gap:46px; }
  .hero__media{ max-width:520px; margin-inline:auto; width:100%; }
  .hero__frame{ aspect-ratio:4/3.4; }
  .lead{ max-width:none; }

  .section{ padding:72px 0; }
  .grid--3{ grid-template-columns:repeat(2, 1fr); }

  .focus, .how, .local{ grid-template-columns:1fr; gap:28px; }
  .local__map{ min-height:340px; }
  .local__map iframe{ min-height:324px; }
  .focus__content{ padding:6px 18px 24px; }

  .specialist{ grid-template-columns:1fr; gap:44px; padding:40px 32px; text-align:center; }
  .specialist__media{ max-width:280px; margin-inline:auto; width:100%; }
  .specialist__content h3{ max-width:none; }
  .specialist__content > p:not(.specialist__role){ margin-inline:auto; }
  .specialist__role{ justify-content:center; }
  .creds{ max-width:330px; margin-inline:auto; }
  .creds li{ text-align:left; }
  .how__media{ order:-1; max-width:520px; margin-inline:auto; width:100%; aspect-ratio:4/3; }
  .conv{ grid-template-columns:1fr; gap:20px; }
  .conv__arrow{ justify-self:center; transform:rotate(90deg); }

  .footer__inner{ grid-template-columns:1fr 1fr; gap:36px; }
}

@media (max-width:640px){
  .container{ width:min(100% - 32px, var(--container)); }
  .grid--3, .grid--4{ grid-template-columns:1fr; }

  .hero h1{ font-size:1.95rem; max-width:none; }
  .lead{ font-size:1.02rem; }
  .hero__actions .btn{ width:100%; }
  .floatcard--a{ top:14px; left:8px; }
  .floatcard--b{ bottom:14px; right:8px; }
  .floatcard{ padding:10px 14px; }
  .floatcard strong{ font-size:.85rem; }
  .floatcard span{ font-size:.72rem; }

  .section{ padding:60px 0; }
  .section__head{ margin-bottom:38px; }
  .section__cta .btn{ width:100%; }

  .card{ padding:26px 22px; }
  .conv__cond, .conv__result, .conv__extra{ padding:26px 22px; }
  .conv__extra{ gap:16px; }
  .local__info{ padding:28px 22px; }
  .local__actions .btn{ width:100%; }
  .specialist{ padding:34px 22px; gap:38px; }
  .specialist__media{ max-width:230px; }
  .specialist .btn{ width:100%; }
  .how__list li{ padding:18px 16px; gap:16px; }

  .footer__inner{ grid-template-columns:1fr; }

  .wa-float{ right:14px; bottom:14px; padding:14px; }
  .wa-float span{ display:none; }
}
