/* Bradesco Convênio Médico — identidade Bradesco Saúde (vermelho Bradesco, bordô dos banners, cinzas neutros) */
@font-face { font-family: "Nunito Sans"; src: url("fontes/nunito-sans-latin.woff2") format("woff2"); font-weight: 300 800; font-style: normal; font-display: swap; }
:root {
	--vermelho: #cc092f;
	--vermelho-esc: #a5001f;
	--bordo: #7a0b2e;
	--bordo-esc: #4b0820;
	--texto: #4a4a4a;
	--titulo: #2b2b2b;
	--suave: #6b6b6b;
	--cinza: #f4f4f4;
	--cinza-2: #ebebeb;
	--borda: #dedede;
	--rosa: #fcf0f2;
	--raio: 8px;
	--largura: 1180px;
	--lateral: max(16px, calc((100% - var(--largura)) / 2));
	--fonte: "Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 96px; }
body { margin: 0; font-family: var(--fonte); font-size: 17px; line-height: 1.65; color: var(--texto); background: #fff; overflow-x: hidden; }
img, svg, picture { max-width: 100%; height: auto; display: block; }
a { color: var(--vermelho); text-underline-offset: 3px; }
a:hover { color: var(--vermelho-esc); }
h1, h2, h3, h4 { line-height: 1.22; color: var(--titulo); margin: 0 0 .6em; }
h2 { font-size: clamp(1.5rem, 1.15rem + 1.3vw, 2.05rem); font-weight: 700; letter-spacing: -.01em; }
h3 { font-size: 1.16rem; font-weight: 700; }
h4 { font-size: 1.03rem; font-weight: 700; }
p { margin: 0 0 1em; }
ul, ol { margin: 0 0 1.1em; padding-left: 1.3em; }
li { margin-bottom: .35em; }
strong { font-weight: 700; color: var(--titulo); }
.i { width: 1.1em; height: 1.1em; display: inline-block; vertical-align: -.15em; }
:focus-visible { outline: 3px solid #1a73e8; outline-offset: 2px; }
.pular { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--titulo); color: #fff; padding: 8px 14px; border-radius: 6px; }
.pular:focus { left: 8px; }

/* Botões (padrão Bradesco: vermelho, cantos levemente arredondados) */
.botao, .botao-vazado { display: inline-flex; align-items: center; justify-content: center; gap: .45em; padding: .8em 1.5em; border-radius: 6px; font: 700 .97rem/1.2 var(--fonte); text-decoration: none; border: 2px solid var(--vermelho); background: var(--vermelho); color: #fff; cursor: pointer; transition: background .2s, border-color .2s, color .2s; }
.botao:hover { background: var(--vermelho-esc); border-color: var(--vermelho-esc); color: #fff; }
.botao.grande { padding: .95em 1.8em; font-size: 1.03rem; }
.botao.branco { background: #fff; color: var(--vermelho); border-color: #fff; }
.botao.branco:hover { background: var(--rosa); color: var(--vermelho-esc); }
.botao-vazado { background: transparent; border-color: currentColor; color: inherit; }
.botao-vazado:hover { background: rgba(255, 255, 255, .12); color: inherit; }

/* Topo: faixa de identificação da corretora + barra branca com logo e filete vermelho */
.topo { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 3px solid var(--vermelho); }
.faixa-topo { background: var(--cinza); color: var(--suave); font-size: .8rem; border-bottom: 1px solid var(--cinza-2); }
.faixa-in { max-width: var(--largura); margin: 0 auto; padding: 5px 16px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.faixa-in p { margin: 0; font-weight: 600; }
.faixa-in a { color: var(--vermelho); font-weight: 800; text-decoration: none; white-space: nowrap; }
.faixa-in a:hover { text-decoration: underline; }
@media (max-width: 560px) { .faixa-in p span { display: none; } }
.barra { max-width: var(--largura); margin: 0 auto; padding: 10px 16px; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 70px; }
.logo { display: inline-flex; align-items: center; text-decoration: none; flex: none; }
.logo-img { width: 168px; height: auto; }
@media (min-width: 1080px) { .logo-img { width: 192px; } }
.menu-abrir { display: inline-flex; align-items: center; gap: 6px; background: none; border: 1px solid var(--borda); border-radius: 6px; padding: 8px 12px; font: 700 .9rem var(--fonte); color: var(--titulo); cursor: pointer; }
.menu-abrir .i { width: 22px; height: 22px; }
.nav { display: none; }
.nav.aberto { display: block; position: fixed; inset: 0; top: var(--topo-alt, 110px); background: #fff; overflow-y: auto; padding: 8px 16px 32px; }
.menu { list-style: none; margin: 0; padding: 0; }
.menu > li { margin: 0; border-bottom: 1px solid var(--cinza-2); display: flex; flex-wrap: wrap; align-items: center; }
.menu > li > a { flex: 1; display: block; padding: 14px 4px; color: var(--titulo); font-weight: 700; text-decoration: none; }
.sub-abrir { background: none; border: 0; padding: 12px; color: var(--suave); cursor: pointer; }
.sub-abrir[aria-expanded="true"] .i { transform: rotate(180deg); }
.menu .sub-menu { display: none; list-style: none; margin: 0 0 10px; padding: 0 0 0 12px; width: 100%; }
.menu li.sub-aberto > .sub-menu { display: block; }
.menu .sub-menu a { display: block; padding: 8px 4px; color: var(--texto); text-decoration: none; font-weight: 600; }
.menu .sub-menu a:hover, .menu > li > a:hover { color: var(--vermelho); }
.nav-cta { margin-top: 18px; width: 100%; }
@media (min-width: 1080px) {
	.menu-abrir { display: none; }
	.nav { display: flex; align-items: center; gap: 16px; }
	.menu { display: flex; align-items: center; }
	.menu > li { border: 0; position: relative; flex-wrap: nowrap; }
	.menu > li > a { padding: 22px 8px; font-size: .94rem; font-weight: 600; }
	.menu > li.menu-item-has-children > a { padding-right: 0; }
	.sub-abrir { padding: 8px 8px 8px 2px; }
	.sub-abrir .i { width: 15px; height: 15px; }
	.menu .sub-menu { position: absolute; top: 100%; left: 0; min-width: 260px; background: #fff; border: 1px solid var(--cinza-2); border-top: 3px solid var(--vermelho); box-shadow: 0 12px 30px rgba(0, 0, 0, .12); padding: 8px; margin: 0; }
	.menu > li:hover > .sub-menu, .menu > li:focus-within > .sub-menu, .menu li.sub-aberto > .sub-menu { display: block; }
	.menu .sub-menu a { padding: 9px 12px; font-size: .93rem; border-radius: 4px; }
	.menu .sub-menu a:hover { background: var(--cinza); }
	.nav-cta { margin: 0; width: auto; padding: .7em 1.3em; font-size: .92rem; }
}

/* 1ª dobra */
.hero { position: relative; isolation: isolate; overflow: hidden; background: var(--cor, var(--bordo)); color: #fff; }
.hero-in { position: relative; z-index: 2; width: 100%; max-width: var(--largura); margin: 0 auto; padding: 28px 16px 34px; }
.hero h1 { color: inherit; font-size: clamp(1.8rem, 1.15rem + 2.4vw, 2.9rem); font-weight: 300; letter-spacing: -.01em; margin-bottom: .45em; }
.hero .lead { font-size: clamp(1.02rem, .96rem + .3vw, 1.18rem); color: inherit; opacity: .95; margin-bottom: 1.4em; }
.hero-acoes { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.hero-foto { position: relative; height: 240px; }
.hero-foto img { width: 100%; height: 100%; object-fit: cover; object-position: var(--foco, 70% 40%); }
.modo-banner .hero-foto img { object-position: 88% 50%; }
.hero.tom-claro .hero-in { color: var(--titulo); }
.hero.tom-claro .botao-vazado:hover { background: rgba(0, 0, 0, .06); }
.migalhas ol { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 0; font-size: .84rem; }
.migalhas li { margin: 0; opacity: .9; }
.migalhas li + li::before { content: "›"; margin: 0 8px; opacity: .7; }
.migalhas a { color: inherit; text-decoration: none; font-weight: 700; }
.migalhas a:hover { text-decoration: underline; color: inherit; }
.hero-foto .arco { display: none; }
.hero-foto::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 28px; background: var(--cor, var(--bordo)); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.hero-foto { margin-bottom: -1px; }
@media (min-width: 900px) {
	.hero { display: flex; align-items: center; min-height: clamp(420px, 31.25vw, 560px); }
	.hero-home { min-height: clamp(460px, 33vw, 600px); }
	.hero-in { padding: 56px 16px; }
	.hero h1, .hero .lead, .migalhas { max-width: 540px; }
	.hero-foto::after { display: none; }
	/* banner oficial: imagem inteira atrás, texto no lado livre */
	.modo-banner .hero-foto { position: absolute; inset: 0; height: auto; z-index: -1; }
	.modo-banner .hero-foto img { object-position: right center; }
	.modo-banner.tom-escuro::before { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(90deg, rgba(40, 0, 12, .55) 0%, rgba(40, 0, 12, .2) 40%, transparent 60%); }
	/* foto no quadro bordô com curva branca, como nos banners da Bradesco */
	.hero:not(.modo-banner) { background: linear-gradient(115deg, #a8002f 0%, var(--bordo) 42%, var(--bordo-esc) 100%); }
	.hero:not(.modo-banner) .hero-foto { position: absolute; top: 0; right: 0; bottom: 0; width: 56%; height: auto; z-index: 0; }
	.hero:not(.modo-banner) .hero-foto img { -webkit-mask: radial-gradient(ellipse 100% 78% at 100% 50%, #000 99.4%, transparent 100%); mask: radial-gradient(ellipse 100% 78% at 100% 50%, #000 99.4%, transparent 100%); }
	.hero:not(.modo-banner) .arco { display: block; position: absolute; left: 0; top: -28%; width: 200%; height: 156%; border-radius: 50%; border: 6px solid #fff; pointer-events: none; }
	.hero:not(.modo-banner) .arco-2 { left: -26px; top: -32%; height: 164%; width: calc(200% + 52px); border-width: 2px; border-color: rgba(255, 255, 255, .55); }
}

/* Conteúdo: cada <section class="bloco"> é uma faixa de largura total */
.conteudo:focus { outline: none; }
.bloco { padding: 56px var(--lateral); }
.bloco > :where(h2, h3, h4, p, ul, ol, blockquote, details, .destaque) { max-width: 860px; }
.bloco > h2 { position: relative; padding-bottom: .5em; }
.bloco > h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 48px; height: 3px; background: var(--vermelho); }
.bloco > * + h3 { margin-top: 1.4em; }
.bloco .intro { font-size: 1.1rem; }
.cinza { background: var(--cinza); }
.rosa { background: var(--rosa); }
.vermelho { background: linear-gradient(115deg, #a8002f 0%, var(--bordo) 50%, var(--bordo-esc) 100%); color: #fff; }
.vermelho :where(h2, h3, h4, strong) { color: #fff; }
.vermelho > h2::after { background: #fff; }
.vermelho a:not(.botao):not(.mais) { color: #fff; }
.vermelho .botao { background: #fff; color: var(--vermelho); border-color: #fff; }
@media (min-width: 900px) { .bloco { padding-top: 72px; padding-bottom: 72px; } }

/* Cartões */
.cards { display: grid; gap: 16px; grid-template-columns: 1fr; margin: 26px 0 8px; padding: 0; }
@media (min-width: 640px) { .cards, .cards.quatro { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { .cards { grid-template-columns: repeat(3, 1fr); } .cards.duas { grid-template-columns: repeat(2, 1fr); } .cards.quatro { grid-template-columns: repeat(4, 1fr); } }
.card { background: #fff; border: 1px solid var(--borda); border-radius: var(--raio); padding: 24px 22px; display: flex; flex-direction: column; transition: border-color .2s, box-shadow .2s; }
.card:hover { border-color: var(--vermelho); box-shadow: 0 6px 18px rgba(0, 0, 0, .07); }
.cinza .card, .rosa .card { border-color: #fff; }
.card h3 { font-size: 1.1rem; margin-bottom: .45em; }
.card p { color: var(--texto); font-size: .97rem; margin-bottom: .8em; }
.card p:last-child { margin-bottom: 0; }
.card .mais { margin-top: auto; font-weight: 700; text-decoration: none; font-size: .95rem; color: var(--vermelho); }
.card .mais::after { content: " ›"; font-weight: 800; }
.vermelho .card { color: var(--texto); }
.vermelho .card :where(h3, strong) { color: var(--titulo); }

/* Ícones (traço vermelho, como os ícones da Bradesco) */
.ico { display: block; width: 44px; height: 44px; margin-bottom: 14px; position: relative; flex: none; }
.ico::before { content: ""; position: absolute; inset: 0; background: var(--vermelho); -webkit-mask: var(--m) center / contain no-repeat; mask: var(--m) center / contain no-repeat; }
.ico-hospital { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18M5 21V7l7-4 7 4v14M10 9h4M12 7v4M9 21v-5h6v5'/%3E%3C/svg%3E"); }
.ico-medico { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3v6a5 5 0 0 0 10 0V3M6 3H4M16 3h2M11 14v2a5 5 0 0 0 10 0v-3'/%3E%3Ccircle cx='21' cy='11' r='2'/%3E%3C/svg%3E"); }
.ico-familia { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='7' cy='5' r='2.5'/%3E%3Ccircle cx='17' cy='5' r='2.5'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3Cpath d='M3 21v-6a4 4 0 0 1 8 0M13 15a4 4 0 0 1 8 0v6M9 21v-3a3 3 0 0 1 6 0v3'/%3E%3C/svg%3E"); }
.ico-empresa { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18M5 21V4h10v17M15 9h4v12M8 8h1M11 8h1M8 12h1M11 12h1M8 16h1M11 16h1'/%3E%3C/svg%3E"); }
.ico-mei { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='18' height='13' rx='2'/%3E%3Cpath d='M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M3 13h18M11 13v2h2v-2'/%3E%3C/svg%3E"); }
.ico-dente { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5c-2-2-7-2-7 3 0 3 1 4 1.5 7S7 21 8.5 21s2-4 3.5-4 2 4 3.5 4 2-3 2.5-6S19 11 19 8c0-5-5-5-7-3z'/%3E%3C/svg%3E"); }
.ico-coracao { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.8 5.6a5.5 5.5 0 0 0-7.8 0L12 6.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 22l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8z'/%3E%3Cpath d='M6 12h3l1.5-2 2 4 1.5-2H18'/%3E%3C/svg%3E"); }
.ico-escudo { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E"); }
.ico-mapa { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13S3 17 3 10a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.ico-documento { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M8 13h8M8 17h8M8 9h2'/%3E%3C/svg%3E"); }
.ico-calculadora { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='2' width='16' height='20' rx='2'/%3E%3Cpath d='M8 6h8M8 11h.01M12 11h.01M16 11h.01M8 15h.01M12 15h.01M16 15v3M8 18h.01M12 18h.01'/%3E%3C/svg%3E"); }
.ico-relogio { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E"); }
.ico-telemedicina { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='13' rx='2'/%3E%3Cpath d='M8 21h8M12 17v4M12 7.5v6M9 10.5h6'/%3E%3C/svg%3E"); }
.ico-bebe { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9 10h.01M15 10h.01M9.5 15a3.5 3.5 0 0 0 5 0M12 3a2 2 0 0 0 2 2'/%3E%3C/svg%3E"); }
.ico-idoso { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='4' r='2'/%3E%3Cpath d='M9 22l2-7-2-3 1-4h2l2 3 3 1M18 12v10M9 12l-3 3'/%3E%3C/svg%3E"); }
.ico-laboratorio { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 2h6M10 2v6L4.5 18.5A2 2 0 0 0 6.3 21h11.4a2 2 0 0 0 1.8-2.5L14 8V2M7 15h10'/%3E%3C/svg%3E"); }
.ico-reembolso { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 3-6.7L3 8M3 3v5h5'/%3E%3Cpath d='M14.5 9.5c-.5-1-1.5-1.5-2.5-1.5-1.4 0-2.5.8-2.5 2s1 1.6 2.5 2 2.5.9 2.5 2-1.1 2-2.5 2c-1 0-2-.5-2.5-1.5M12 6.5V8M12 16v1.5'/%3E%3C/svg%3E"); }
.ico-check { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M7.5 12.5l3 3 6-6.5'/%3E%3C/svg%3E"); }
.ico-estrela { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2l3.1 6.3 6.9 1-5 4.9 1.2 6.8L12 17.8 5.8 21l1.2-6.8-5-4.9 6.9-1z'/%3E%3C/svg%3E"); }
.ico-pessoas { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M1 21v-2a6 6 0 0 1 12 0v2M16 3.1a4 4 0 0 1 0 7.8M23 21v-2a6 6 0 0 0-4-5.6'/%3E%3C/svg%3E"); }
.ico-ambulancia { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 17V7a1 1 0 0 1 1-1h11v11M14 9h4l4 4v4h-2M6 17H2M14 17h-4M7 10v4M5 12h4'/%3E%3Ccircle cx='8' cy='18' r='2'/%3E%3Ccircle cx='18' cy='18' r='2'/%3E%3C/svg%3E"); }
.ico-remedio { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.5 20.5a5 5 0 0 1-7-7l10-10a5 5 0 0 1 7 7z'/%3E%3Cpath d='M8.5 8.5l7 7'/%3E%3C/svg%3E"); }
.ico-gestante { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='4' r='2'/%3E%3Cpath d='M10 8c-2 1-2 4-1 6l-1 8M12 8c2 0 4 2 4 5s-2 3-4 3l1 6'/%3E%3C/svg%3E"); }
.ico-olho { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8S1 12 1 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }
.ico-cerebro { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3a3 3 0 0 0-3 3 3 3 0 0 0-2 5 3 3 0 0 0 1 5 3 3 0 0 0 4 3 3 3 0 0 0 3-1V4a3 3 0 0 0-3-1zM15 3a3 3 0 0 1 3 3 3 3 0 0 1 2 5 3 3 0 0 1-1 5 3 3 0 0 1-4 3 3 3 0 0 1-3-1'/%3E%3C/svg%3E"); }
.ico-osso { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 10c.7-.7 1.7-.4 2.7-.5a2.5 2.5 0 1 0-2.2-2.2 2.5 2.5 0 1 0-3.1-3.1c0 1.1.4 2.1-.4 2.8L7 14c-.7.7-1.7.4-2.7.5a2.5 2.5 0 1 0 2.2 2.2 2.5 2.5 0 1 0 3.1 3.1c0-1.1-.4-2.1.4-2.8z'/%3E%3C/svg%3E"); }

/* Listas especiais */
.checks { list-style: none; padding: 0; }
.checks li { position: relative; padding-left: 30px; margin-bottom: .6em; }
.checks li::before { content: ""; position: absolute; left: 0; top: .28em; width: 20px; height: 20px; background: var(--vermelho); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M7.5 12.5l3 3 6-6.5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M7.5 12.5l3 3 6-6.5'/%3E%3C/svg%3E") center / contain no-repeat; }
.checks.claro li::before, .vermelho .checks li::before, .cotacao .checks li::before { background: #fff; }
.passos { list-style: none; padding: 0; counter-reset: passo; display: grid; gap: 16px; margin: 26px 0; max-width: none !important; }
@media (min-width: 900px) { .passos { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); } }
.passos > li { counter-increment: passo; position: relative; background: #fff; border-radius: var(--raio); padding: 62px 22px 20px; border: 1px solid var(--borda); margin: 0; }
.cinza .passos > li { border-color: #fff; }
.passos > li::before { content: counter(passo); position: absolute; top: 18px; left: 22px; width: 32px; height: 32px; border-radius: 50%; border: 2px solid var(--vermelho); color: var(--vermelho); font-weight: 800; display: grid; place-items: center; font-size: .95rem; }
.passos h3 { font-size: 1.04rem; margin-bottom: .4em; }
.passos p { margin: 0; font-size: .97rem; }

/* Tabela */
.tabela { overflow-x: auto; margin: 22px 0 26px; border: 1px solid var(--borda); border-radius: var(--raio); background: #fff; -webkit-overflow-scrolling: touch; }
.tabela table { width: 100%; border-collapse: collapse; min-width: 560px; font-size: .94rem; }
.tabela caption { text-align: left; padding: 14px 16px 8px; font-weight: 700; color: var(--titulo); }
.tabela th { background: var(--cinza); color: var(--titulo); text-align: left; padding: 12px 14px; font-weight: 800; border-bottom: 2px solid var(--vermelho); white-space: nowrap; }
.tabela td { padding: 11px 14px; border-top: 1px solid var(--cinza-2); vertical-align: top; }
.tabela tbody tr:hover td { background: #fafafa; }

/* Destaque */
.destaque { border-left: 4px solid var(--vermelho); background: var(--cinza); padding: 18px 22px; margin: 22px 0; }
.cinza .destaque { background: #fff; }
.destaque p:last-child { margin: 0; }
.destaque.alerta { border-color: #d98e00; background: #fff8e6; }

/* Foto + texto */
.lado { display: grid; gap: 28px; align-items: center; margin: 28px 0; }
.lado figure { margin: 0; }
.lado img { width: 100%; max-height: 520px; object-fit: cover; border-radius: var(--raio); }
@media (min-width: 860px) {
	.lado { grid-template-columns: minmax(260px, 5fr) 7fr; gap: 48px; }
	.lado.invertido { grid-template-columns: 7fr minmax(260px, 5fr); }
	.lado.invertido figure { order: 2; }
}

/* Chamada no meio do texto: faixa bordô com curva, como os banners */
.cta { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 16px; align-items: flex-start; justify-content: space-between; background: linear-gradient(115deg, #a8002f 0%, var(--bordo) 55%, var(--bordo-esc) 100%); color: #fff; border-radius: var(--raio); padding: 26px; margin: 30px 0; }
.cta::after { content: ""; position: absolute; right: -120px; top: -60%; width: 380px; height: 220%; border-radius: 50%; border: 3px solid rgba(255, 255, 255, .35); pointer-events: none; }
.cta > * { position: relative; z-index: 1; }
.cta h3 { color: #fff; margin: 0 0 .3em; font-size: 1.22rem; }
.cta p { margin: 0; opacity: .95; }
.cta .botao { background: #fff; color: var(--vermelho); border-color: #fff; flex: none; }
.cta .botao:hover { background: var(--rosa); }
@media (min-width: 760px) { .cta { flex-direction: row; align-items: center; padding: 30px 36px; } }

/* Rede */
.lista-rede { list-style: none; padding: 0; display: grid; gap: 12px; margin: 22px 0; max-width: none !important; }
@media (min-width: 700px) { .lista-rede { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1040px) { .lista-rede { grid-template-columns: repeat(3, 1fr); } }
.lista-rede li { background: #fff; border: 1px solid var(--borda); border-top: 3px solid var(--vermelho); border-radius: var(--raio); padding: 14px 16px; margin: 0; display: flex; flex-direction: column; gap: 3px; }
.lista-rede strong { color: var(--titulo); font-size: 1rem; line-height: 1.3; }
.lista-rede span { color: var(--suave); font-size: .9rem; line-height: 1.45; }
.grade-links { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; margin: 22px 0; max-width: none !important; }
.grade-links li { margin: 0; }
.grade-links a { display: flex; align-items: center; justify-content: space-between; gap: 6px; background: #fff; border: 1px solid var(--borda); border-radius: 6px; padding: 11px 14px; text-decoration: none; color: var(--titulo); font-weight: 600; font-size: .95rem; transition: border-color .2s, color .2s; }
.grade-links a::after { content: "›"; color: var(--vermelho); font-weight: 800; }
.grade-links a:hover { border-color: var(--vermelho); color: var(--vermelho); }
.numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; margin: 24px 0; }
.numeros > div { background: #fff; border: 1px solid var(--borda); border-radius: var(--raio); padding: 20px; text-align: center; }
.numeros strong { display: block; font-size: 2.2rem; line-height: 1.1; color: var(--vermelho); font-weight: 300; }
.numeros span { color: var(--suave); font-size: .92rem; }
blockquote { margin: 22px 0; padding: 16px 22px; border-left: 4px solid var(--borda); color: var(--suave); font-style: italic; }

/* FAQ */
.faq details { background: #fff; border-bottom: 1px solid var(--borda); }
.faq details:first-of-type { border-top: 1px solid var(--borda); }
.faq summary { cursor: pointer; list-style: none; padding: 18px 48px 18px 0; font-weight: 700; color: var(--titulo); position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; position: absolute; right: 8px; top: 50%; width: 10px; height: 10px; border-right: 2px solid var(--vermelho); border-bottom: 2px solid var(--vermelho); transform: translateY(-70%) rotate(45deg); transition: transform .2s; }
.faq details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.faq details[open] summary { color: var(--vermelho); }
.faq details > :not(summary) { padding-right: 40px; }
.faq details > :last-child { padding-bottom: 14px; margin-bottom: 0; }
.cinza.faq details, .faq.cinza details { background: transparent; }

/* Veja também */
.veja { background: var(--cinza); }
.veja-lista { list-style: none; padding: 0; display: grid; gap: 12px; margin: 24px 0 0; max-width: none !important; }
@media (min-width: 680px) { .veja-lista { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1020px) { .veja-lista { grid-template-columns: repeat(3, 1fr); } }
.veja-lista li { margin: 0; }
.veja-lista a { display: flex; flex-direction: column; gap: 6px; height: 100%; background: #fff; border-radius: var(--raio); padding: 18px 20px; text-decoration: none; color: var(--texto); border: 1px solid #fff; transition: border-color .2s; }
.veja-lista a:hover { border-color: var(--vermelho); }
.veja-lista strong { color: var(--titulo); font-size: 1.02rem; }
.veja-lista strong::after { content: " ›"; color: var(--vermelho); font-weight: 800; }
.veja-lista span { color: var(--suave); font-size: .92rem; line-height: 1.5; }

/* Cotação: faixa bordô com as curvas brancas do banner institucional */
.cotacao { position: relative; overflow: hidden; background: linear-gradient(115deg, #a8002f 0%, var(--bordo) 45%, var(--bordo-esc) 100%); color: #fff; padding: 56px var(--lateral); }
.cotacao::before, .cotacao::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.cotacao::before { left: -30%; bottom: -104%; width: 120%; height: 120%; border: 5px solid rgba(255, 255, 255, .9); border-color: rgba(255, 255, 255, .9) transparent transparent transparent; }
.cotacao::after { left: -32%; bottom: -110%; width: 124%; height: 124%; border: 2px solid rgba(255, 255, 255, .45); border-color: rgba(255, 255, 255, .45) transparent transparent transparent; }
@media (max-width: 959px) { .cotacao::before, .cotacao::after { display: none; } }
.cotacao-in { position: relative; z-index: 1; display: grid; gap: 30px; align-items: start; }
@media (min-width: 960px) { .cotacao-in { grid-template-columns: 5fr 7fr; gap: 56px; align-items: center; } .cotacao { padding-top: 76px; padding-bottom: 76px; } }
.cotacao h2 { color: #fff; font-weight: 300; font-size: clamp(1.7rem, 1.2rem + 1.6vw, 2.4rem); }
.cotacao-txt p { font-size: 1.06rem; opacity: .95; }
.cotacao .checks li { color: #fff; }
.form-cotacao { background: #fff; color: var(--texto); border-radius: var(--raio); padding: 24px 20px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px 14px; box-shadow: 0 18px 50px rgba(0, 0, 0, .25); }
@media (min-width: 600px) { .form-cotacao { padding: 30px 28px; } }
.form-cotacao .campo { grid-column: span 4; display: flex; flex-direction: column; gap: 4px; }
@media (min-width: 600px) { .form-cotacao .campo { grid-column: span 2; } .form-cotacao .campo.meio { grid-column: span 2; } .form-cotacao .campo.quarto { grid-column: span 1; } }
.form-cotacao .inteiro { grid-column: 1 / -1; }
.form-cotacao label { font-size: .86rem; font-weight: 700; color: var(--titulo); }
.form-cotacao input, .form-cotacao select, .form-cotacao textarea { width: 100%; font: 400 1rem var(--fonte); color: var(--titulo); padding: 11px 12px; border: 1px solid #c9c9c9; border-radius: 6px; background: #fff; }
.form-cotacao input:focus, .form-cotacao select:focus, .form-cotacao textarea:focus { border-color: var(--vermelho); outline: none; box-shadow: 0 0 0 3px rgba(204, 9, 47, .14); }
.form-cotacao .campo.erro input, .form-cotacao .campo.erro select { border-color: var(--vermelho); }
.form-cotacao .aceite { margin: 0; font-size: .85rem; color: var(--suave); }
.form-cotacao .aceite label { font-weight: 400; color: var(--suave); display: flex; gap: 8px; align-items: flex-start; }
.form-cotacao .aceite input { width: auto; margin-top: 4px; }
.form-cotacao button { width: 100%; }
.form-cotacao button[disabled] { opacity: .65; cursor: wait; }
.form-msg { margin: 0; font-weight: 700; font-size: .95rem; }
.form-msg.ok { color: #0f7a3d; }
.form-msg.falha { color: var(--vermelho); }
.pote { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Rodapé claro, como o da Bradesco Seguros */
.rodape { background: var(--cinza); color: var(--texto); border-top: 1px solid var(--cinza-2); }
.rodape-in { max-width: var(--largura); margin: 0 auto; padding: 48px 16px 32px; display: grid; gap: 30px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .rodape-in { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1040px) { .rodape-in { grid-template-columns: 1.4fr repeat(4, 1fr); } }
.rodape-marca p { font-size: .94rem; margin: 14px 0 18px; }
.rodape-col h2 { color: var(--titulo); font-size: .98rem; margin-bottom: .9em; font-weight: 800; }
.rodape-col h2::after { display: none; }
.rodape-menu { list-style: none; padding: 0; margin: 0; }
.rodape-menu li { margin-bottom: .5em; }
.rodape-menu a { color: var(--texto); text-decoration: none; font-size: .93rem; }
.rodape-menu a:hover { color: var(--vermelho); text-decoration: underline; }
.rodape-menu .sub-menu { display: none; }
.rodape-legal { background: var(--cinza-2); color: var(--suave); font-size: .82rem; padding: 20px var(--lateral); }
.rodape-legal p { max-width: 980px; margin: 0 auto .6em; text-align: center; }
.rodape-legal a { color: var(--titulo); }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
