/* Modelos de exemplo da página para dentistas (profissionais fictícios). Cada página define --c, --c2 e --f. */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--f);color:#3B4A55;font-family:"Plus Jakarta Sans",system-ui,sans-serif;font-size:16.5px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3{font-family:"Fraunces",Georgia,serif;font-weight:400;color:#0E2233;letter-spacing:-.02em;line-height:1.1;text-wrap:balance}
h1{font-size:clamp(2.1rem,5vw,3.5rem)}
h1 em,h2 em{font-style:italic;color:var(--c)}
h2{font-size:clamp(1.6rem,3.4vw,2.4rem)}
h3{font-size:1.12rem;font-weight:500}
.in{width:min(1080px,calc(100% - 36px));margin:0 auto}
.aviso-topo{background:#0E2233;color:#fff;text-align:center;font-size:.8rem;padding:8px 14px}
.aviso-topo b{color:var(--c2)}
header{padding:16px 0;position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--f) 88%,transparent);backdrop-filter:blur(10px)}
header .in{display:flex;justify-content:space-between;align-items:center;gap:12px}
.marca b{display:block;font-family:"Fraunces",serif;font-size:1.22rem;color:#0E2233;font-weight:500;line-height:1.1}
.marca small{font-size:.74rem;color:#6B7A85}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 22px;border-radius:999px;background:var(--c);color:#fff;font-weight:700;text-decoration:none;box-shadow:0 14px 30px -14px var(--c);transition:transform .2s}
.btn:hover{transform:translateY(-2px)}
header .btn{min-height:40px;font-size:.86rem;padding:0 16px}
.heroi{padding:26px 0 70px;position:relative;overflow:hidden}
.heroi::before{content:"";position:absolute;inset:-20%;background:radial-gradient(420px 380px at 80% 30%,var(--c2),transparent 70%);animation:deriva 22s ease-in-out infinite alternate;pointer-events:none}
@keyframes deriva{to{transform:translate3d(4%,3%,0)}}
.heroi .in{position:relative;display:grid;gap:34px;align-items:center}
@media(min-width:900px){.heroi .in{grid-template-columns:1.1fr .9fr}}
.rot{font-size:.74rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--c);margin-bottom:12px}
.heroi p.lead{font-size:1.1rem;margin:16px 0 26px;max-width:46ch}
.cro{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:8px 14px;border-radius:999px;background:#fff;border:1px solid rgba(14,34,51,.1);font-size:.84rem;font-weight:700;color:#0E2233}
.cro i{width:8px;height:8px;border-radius:50%;background:var(--c)}
.foto{position:relative;justify-self:center;width:min(390px,80vw);border-radius:32px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 40px 80px -40px rgba(14,34,51,.6);background:var(--c2);animation:paira 8s ease-in-out infinite}
.foto img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.foto .selo{position:absolute;left:14px;bottom:14px;background:rgba(255,255,255,.94);border-radius:14px;padding:9px 13px;font-size:.78rem;line-height:1.3;color:#0E2233;font-weight:700}
.foto .selo small{display:block;font-weight:500;color:#6B7A85}
@keyframes paira{50%{transform:translateY(-10px)}}
@media(max-width:899px){.foto{order:-1;width:min(330px,78vw)}}
section.bloco{padding:60px 0;border-top:1px solid rgba(14,34,51,.07)}
.cabeca{max-width:620px;margin-bottom:28px}
.cabeca p{margin-top:10px}
.trat{display:grid;gap:14px}
@media(min-width:640px){.trat{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.trat{grid-template-columns:repeat(3,1fr)}}
.card{background:#fff;border:1px solid rgba(14,34,51,.08);border-radius:22px;padding:22px;transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-4px);box-shadow:0 24px 40px -28px rgba(14,34,51,.45)}
.card .ic{width:42px;height:42px;border-radius:12px;background:var(--c2);color:var(--c);display:grid;place-items:center;margin-bottom:12px;font-weight:800}
.card p{font-size:.95rem;margin-top:6px}
.dois{display:grid;gap:30px;align-items:center}
@media(min-width:860px){.dois{grid-template-columns:1fr 1fr;gap:56px}}
.consult{border-radius:26px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 30px 60px -36px rgba(14,34,51,.5)}
.consult img{width:100%;height:100%;object-fit:cover}
.lista{list-style:none;display:grid;gap:10px;margin-top:16px}
.lista li{position:relative;padding-left:26px}
.lista li::before{content:"";position:absolute;left:0;top:.55em;width:10px;height:10px;border-radius:50%;background:var(--c)}
.passos{display:grid;gap:12px;counter-reset:p}
@media(min-width:760px){.passos{grid-template-columns:repeat(3,1fr)}}
.passos li{list-style:none;background:#fff;border-radius:20px;padding:20px;border:1px solid rgba(14,34,51,.08)}
.passos li::before{counter-increment:p;content:counter(p);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--c);color:#fff;font-weight:800;margin-bottom:10px}
.local{display:grid;gap:14px}
@media(min-width:760px){.local{grid-template-columns:1.2fr .8fr}}
.mapa{border-radius:22px;min-height:220px;background:linear-gradient(135deg,var(--c2),#fff);position:relative;overflow:hidden;border:1px solid rgba(14,34,51,.08)}
.mapa::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(14,34,51,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(14,34,51,.06) 1px,transparent 1px);background-size:34px 34px}
.mapa .pino{position:absolute;left:50%;top:46%;width:30px;height:30px;border-radius:50% 50% 50% 0;background:var(--c);transform:translate(-50%,-50%) rotate(-45deg);box-shadow:0 10px 20px -8px var(--c);animation:pula 2.4s ease-in-out infinite}
@keyframes pula{50%{transform:translate(-50%,-70%) rotate(-45deg)}}
.horario{background:#fff;border-radius:22px;padding:22px;border:1px solid rgba(14,34,51,.08);font-size:.95rem}
.horario div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px dashed rgba(14,34,51,.1)}
.contato{background:var(--c);color:#fff;border-radius:30px;padding:clamp(28px,6vw,54px);text-align:center;margin:20px 0 34px}
.contato h2{color:#fff}
.contato p{margin:12px auto 22px;max-width:48ch;opacity:.9}
.contato .btn{background:#fff;color:var(--c);box-shadow:none}
.rodape{font-size:.82rem;color:#6B7A85;text-align:center;padding:6px 0 40px;line-height:1.7}
.ej{display:block;margin-top:14px;padding:14px;border-radius:16px;background:#0E2233;color:#fff;text-decoration:none;font-weight:700}
.ej small{display:block;font-weight:500;opacity:.75}
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1);transition-delay:var(--d,0s)}
.js .rv.vis{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important}.js .rv{opacity:1;transform:none;transition:none}}
/* dentro do celular da página de vendas: o aviso desce para não ficar atrás do recorte da câmera */
.emb .aviso-topo{padding-top:40px;font-size:.74rem}
