/* ==========================================================================
   Busca Plano — páginas internas (single / archive / footer)
   Escopo .bp para não afetar homepage/cotacao/buscador.
   ========================================================================== */
:root{
  --bp-ink:#15293f;
  --bp-brand:#1763b8;
  --bp-brand-d:#0f4a8f;
  --bp-green:#1a9c5b;
  --bp-green-bg:#e9f7ef;
  --bp-cta:#fac710;
  --bp-cta-ink:#3a2e00;
  --bp-surface:#f4f7fb;
  --bp-card:#ffffff;
  --bp-line:#e2e8f1;
  --bp-muted:#5a6b80;
  --bp-radius:14px;
  --bp-shadow:0 1px 2px rgba(21,41,63,.06), 0 8px 24px rgba(21,41,63,.06);
  --bp-maxw:1120px;
}

/* ---- base do bloco interno ---- */
.bp{ color:var(--bp-ink); font-size:17px; line-height:1.72; }
.bp *{ box-sizing:border-box; }
.bp .bp-wrap{ max-width:var(--bp-maxw); margin:0 auto; padding:0 20px; }

/* ---- HERO / cabeçalho do artigo ---- */
.bp-hero{
  background:linear-gradient(180deg,#f7faff 0%, #eef4fc 100%);
  border-bottom:1px solid var(--bp-line);
  padding:30px 0 26px;
  margin-bottom:34px;
}
.bp-hero .bp-wrap{ max-width:860px; }
.bp-hero #breadcrumbs{
  font-size:13px; color:var(--bp-muted); margin:0 0 14px; line-height:1.5;
}
.bp-hero #breadcrumbs a{ color:var(--bp-brand); text-decoration:none; }
.bp-hero #breadcrumbs a:hover{ text-decoration:underline; }
.bp-hero h1{
  font-size:clamp(1.65rem, 4.2vw, 2.35rem);
  line-height:1.18; font-weight:700; letter-spacing:-.015em;
  color:var(--bp-ink); margin:0;
}
.bp-kicker{
  display:inline-flex; align-items:center; gap:7px;
  font-size:12px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
  color:var(--bp-brand); margin:0 0 12px;
}
.bp-kicker::before{ content:""; width:22px; height:3px; border-radius:2px; background:var(--bp-green); }
.bp-meta{
  margin-top:16px; font-size:13.5px; color:var(--bp-muted);
  display:flex; flex-wrap:wrap; gap:8px 16px; align-items:center;
}
.bp-meta strong{ color:var(--bp-ink); font-weight:600; }

/* ---- LAYOUT artigo + rail ---- */
.bp-layout{
  max-width:var(--bp-maxw); margin:0 auto; padding:0 20px 10px;
  display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:48px;
  align-items:start;
}
.bp-content{ min-width:0; }
.bp-aside{ position:sticky; top:24px; }
@media (max-width:980px){
  .bp-layout{ grid-template-columns:1fr; gap:34px; }
  .bp-aside{ position:static; }
}

/* ==========================================================================
   TIPOGRAFIA DO CONTEÚDO (the_content)
   ========================================================================== */
.bp-content > p:first-of-type{ font-size:1.12em; color:#243a52; }
.bp-content p{ margin:0 0 1.15em; }
.bp-content a{ color:var(--bp-brand-d); text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px; }
.bp-content a:hover{ color:var(--bp-brand); }
.bp-content strong{ color:var(--bp-ink); font-weight:600; }

.bp-content h2{
  font-size:1.46rem; line-height:1.25; font-weight:700; letter-spacing:-.01em;
  color:var(--bp-ink); margin:2em 0 .7em; padding-left:15px;
  border-left:4px solid var(--bp-green); scroll-margin-top:90px;
}
.bp-content h3{
  font-size:1.16rem; line-height:1.3; font-weight:700; color:var(--bp-brand-d);
  margin:1.7em 0 .55em; scroll-margin-top:90px;
}
.bp-content h4{ font-size:1.02rem; font-weight:700; margin:1.4em 0 .4em; color:var(--bp-ink); }

.bp-content ul, .bp-content ol{ margin:0 0 1.25em; padding-left:0; }
.bp-content ul{ list-style:none; }
.bp-content ul > li{ position:relative; padding:0 0 .5em 28px; }
.bp-content ul > li::before{
  content:""; position:absolute; left:6px; top:.62em; width:8px; height:8px;
  border-radius:50%; background:var(--bp-green);
}
.bp-content ol{ counter-reset:bp; padding-left:0; list-style:none; }
.bp-content ol > li{ position:relative; padding:0 0 .55em 40px; counter-increment:bp; }
.bp-content ol > li::before{
  content:counter(bp); position:absolute; left:0; top:.05em;
  width:26px; height:26px; border-radius:8px; background:var(--bp-surface);
  border:1px solid var(--bp-line); color:var(--bp-brand-d);
  font-size:13px; font-weight:700; display:flex; align-items:center; justify-content:center;
}

.bp-content img{ max-width:100%; height:auto; border-radius:var(--bp-radius); margin:.5em 0; }

/* tabelas (coberturas/preços/comparativos) */
.bp-content table{
  width:100%; border-collapse:separate; border-spacing:0; margin:0 0 1.6em;
  font-size:15px; border:1px solid var(--bp-line); border-radius:var(--bp-radius);
  overflow:hidden; box-shadow:var(--bp-shadow);
}
.bp-content thead th{
  background:var(--bp-brand); color:#fff; font-weight:600; text-align:left;
  padding:11px 14px; font-size:14px;
}
.bp-content td, .bp-content th{ padding:11px 14px; border-bottom:1px solid var(--bp-line); vertical-align:top; }
.bp-content tbody tr:nth-child(even){ background:var(--bp-surface); }
.bp-content tbody tr:last-child td{ border-bottom:0; }
.bp-table-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }

/* blockquote */
.bp-content blockquote{
  margin:1.5em 0; padding:14px 20px; background:var(--bp-surface);
  border-left:4px solid var(--bp-brand); border-radius:0 10px 10px 0; color:#33485f;
}

/* ---- FAQ (h2 "Perguntas frequentes" + h3/p) ---- */
.bp-content .bp-faq{ margin:1.6em 0; }
.bp-faq details{
  border:1px solid var(--bp-line); border-radius:12px; background:var(--bp-card);
  margin-bottom:10px; overflow:hidden;
}
.bp-faq summary{
  cursor:pointer; list-style:none; padding:15px 18px; font-weight:600; color:var(--bp-ink);
  display:flex; justify-content:space-between; align-items:center; gap:12px;
}
.bp-faq summary::-webkit-details-marker{ display:none; }
.bp-faq summary::after{ content:"+"; color:var(--bp-brand); font-size:22px; line-height:1; font-weight:400; flex:none; }
.bp-faq details[open] summary::after{ content:"–"; }
.bp-faq details[open] summary{ border-bottom:1px solid var(--bp-line); }
.bp-faq .bp-faq-a{ padding:14px 18px 16px; color:#33485f; }
.bp-faq .bp-faq-a p{ margin:0; }

/* ---- "Leia também" / "Veja também" ---- */
.bp-content .bp-related{
  margin:2.2em 0 .5em; padding:20px 22px; background:var(--bp-surface);
  border:1px solid var(--bp-line); border-radius:var(--bp-radius);
}
.bp-related > h2, .bp-content h2.bp-related-title{
  border:0; padding:0; margin:0 0 12px; font-size:1.05rem; color:var(--bp-ink);
}
.bp-related ul{ margin:0; }
.bp-related ul > li{ padding:0 0 .35em 22px; }
.bp-related ul > li::before{ width:6px; height:6px; top:.7em; background:var(--bp-brand); }

/* ==========================================================================
   FICHA de contato (hospital) — assinatura
   ========================================================================== */
.bp-ficha{
  background:var(--bp-card); border:1px solid var(--bp-line); border-radius:var(--bp-radius);
  box-shadow:var(--bp-shadow); padding:6px 20px; margin:0 0 30px;
}
.bp-ficha .bp-ficha-row{
  display:flex; gap:14px; align-items:flex-start; padding:14px 0; border-bottom:1px solid var(--bp-line);
}
.bp-ficha .bp-ficha-row:last-child{ border-bottom:0; }
.bp-ficha .bp-ficha-ic{
  flex:none; width:38px; height:38px; border-radius:10px; background:var(--bp-surface);
  display:flex; align-items:center; justify-content:center; color:var(--bp-brand); font-size:18px;
}
.bp-ficha .bp-ficha-k{ font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--bp-muted); font-weight:700; margin-bottom:2px; }
.bp-ficha .bp-ficha-v{ font-size:16px; color:var(--bp-ink); }
.bp-ficha .bp-ficha-v a{ color:var(--bp-brand-d); }

/* ==========================================================================
   ASIDE / CTA
   ========================================================================== */
.bp-cta{
  background:linear-gradient(165deg,#103e74,#1763b8); color:#fff;
  border-radius:var(--bp-radius); padding:22px 22px 24px; box-shadow:var(--bp-shadow);
}
.bp-cta h3{ margin:0 0 8px; font-size:1.12rem; color:#fff; line-height:1.3; }
.bp-cta p{ margin:0 0 16px; font-size:14px; color:#d6e6fb; }
.bp-btn{
  display:block; text-align:center; background:var(--bp-cta); color:var(--bp-cta-ink);
  font-weight:700; padding:13px 18px; border-radius:10px; text-decoration:none; font-size:15px;
  transition:transform .12s ease, box-shadow .12s ease;
}
.bp-btn:hover{ transform:translateY(-1px); box-shadow:0 6px 18px rgba(250,199,16,.4); }
.bp-aside .bp-links{
  margin-top:18px; background:var(--bp-card); border:1px solid var(--bp-line);
  border-radius:var(--bp-radius); padding:16px 18px;
}
.bp-aside .bp-links h4{ margin:0 0 10px; font-size:13px; text-transform:uppercase; letter-spacing:.05em; color:var(--bp-muted); }
.bp-aside .bp-links a{ display:block; padding:7px 0; color:var(--bp-brand-d); text-decoration:none; font-size:14.5px; border-top:1px solid var(--bp-line); }
.bp-aside .bp-links a:first-of-type{ border-top:0; }
.bp-aside .bp-links a:hover{ color:var(--bp-brand); }

/* ==========================================================================
   ARCHIVE — grade de cards
   ========================================================================== */
.bp-archive .bp-wrap{ padding-top:8px; padding-bottom:20px; }
.bp-arch-intro{ max-width:760px; margin:0 0 26px; color:#33485f; }
.bp-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(250px,1fr)); gap:18px; }
.bp-card{
  display:flex; flex-direction:column; background:var(--bp-card); border:1px solid var(--bp-line);
  border-radius:var(--bp-radius); padding:18px 18px 16px; text-decoration:none; color:var(--bp-ink);
  box-shadow:var(--bp-shadow); transition:transform .12s ease, border-color .12s ease, box-shadow .12s ease;
}
.bp-card:hover{ transform:translateY(-2px); border-color:#bcd3ee; box-shadow:0 10px 28px rgba(21,41,63,.1); }
.bp-card .bp-card-tag{ font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--bp-brand); margin-bottom:8px; }
.bp-card h2, .bp-card h3{ font-size:1.02rem; line-height:1.3; margin:0; font-weight:600; color:var(--bp-ink); border:0; padding:0; }
.bp-card .bp-card-meta{ margin-top:auto; padding-top:12px; font-size:13px; color:var(--bp-muted); }
.bp-card .bp-card-go{ margin-top:12px; font-size:13.5px; font-weight:700; color:var(--bp-brand); }

/* hospitais agrupados por cidade */
.bp-city{ margin:0 0 34px; }
.bp-city > h2{
  font-size:1.15rem; font-weight:700; color:var(--bp-ink); margin:0 0 14px; padding:0 0 8px;
  border-bottom:2px solid var(--bp-line); display:flex; align-items:baseline; gap:10px;
}
.bp-city > h2 .bp-city-n{ font-size:13px; font-weight:600; color:var(--bp-muted); }
.bp-chips{ display:flex; flex-wrap:wrap; gap:9px; }
.bp-chip{
  display:inline-block; background:var(--bp-card); border:1px solid var(--bp-line); border-radius:999px;
  padding:8px 15px; font-size:14px; color:var(--bp-ink); text-decoration:none; transition:all .12s ease;
}
.bp-chip:hover{ border-color:var(--bp-brand); color:var(--bp-brand-d); background:#f3f8ff; }

/* card com thumbnail (guias) */
.bp-card .bp-card-thumb{ margin:-18px -18px 14px; aspect-ratio:16/9; overflow:hidden; background:var(--bp-surface); border-radius:var(--bp-radius) var(--bp-radius) 0 0; }
.bp-card .bp-card-thumb img{ width:100%; height:100%; object-fit:cover; display:block; border-radius:0; margin:0; }
/* seção SEO de intro no fim do archive */
.bp-arch-seo{ max-width:860px; margin:42px auto 0; padding-top:32px; border-top:1px solid var(--bp-line); }
.bp-arch-seo > :first-child{ margin-top:0; }
.bp-arch-seo--solo{ border-top:0; padding-top:0; margin-top:22px; }
/* esconde o heading "Paginação de posts" do leitor de tela (WP) */
.bp .screen-reader-text, .bp-archive .screen-reader-text{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* paginação */
.bp-archive .pagination{ margin:26px 0 8px; }
.bp-archive .pagination .nav-links{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.bp-archive .pagination .page-numbers{ display:inline-flex; min-width:38px; height:38px; align-items:center; justify-content:center; padding:0 13px; border:1px solid var(--bp-line); border-radius:9px; text-decoration:none; color:var(--bp-brand-d); font-size:14.5px; background:var(--bp-card); }
.bp-archive .pagination .page-numbers:hover{ background:#f3f8ff; border-color:#bcd3ee; }
.bp-archive .pagination .page-numbers.current{ background:var(--bp-brand); color:#fff; border-color:var(--bp-brand); }
.bp-archive .pagination .page-numbers.dots{ border:0; background:transparent; }

/* ==========================================================================
   FOOTER (global)
   ========================================================================== */
.bp-footer{ background:#0e2238; color:#c4d2e2; margin-top:64px; font-size:14.5px; line-height:1.7; }
.bp-footer .bp-wrap{ padding-top:46px; padding-bottom:24px; }
.bp-footer-grid{ display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:32px; }
.bp-footer h5{ font-size:12px; text-transform:uppercase; letter-spacing:.07em; color:#7d93ab; margin:0 0 14px; }
.bp-footer a{ color:#c4d2e2; text-decoration:none; display:block; padding:4px 0; }
.bp-footer a:hover{ color:#fff; }
.bp-footer .bp-foot-brand img{ width:170px; margin-bottom:14px; }
.bp-footer .bp-foot-brand p{ margin:0; color:#94a8be; max-width:280px; }
.bp-footer .bp-foot-cta{
  display:inline-block; margin-top:16px; background:var(--bp-cta); color:var(--bp-cta-ink);
  font-weight:700; padding:11px 20px; border-radius:10px; text-decoration:none;
}
.bp-footer-bottom{ border-top:1px solid #1d3a57; margin-top:34px; padding-top:18px; font-size:12.5px; color:#7d93ab; }
@media (max-width:860px){ .bp-footer-grid{ grid-template-columns:1fr 1fr; gap:26px; } }
@media (max-width:520px){ .bp-footer-grid{ grid-template-columns:1fr; } }

/* ---- acessibilidade ---- */
.bp a:focus-visible, .bp-footer a:focus-visible, .bp-btn:focus-visible, .bp-chip:focus-visible{
  outline:3px solid #79b0ec; outline-offset:2px; border-radius:6px;
}
@media (prefers-reduced-motion:reduce){
  .bp *, .bp-footer *{ transition:none !important; }
  html{ scroll-behavior:auto; }
}
