/* ============================================================
   InterligaMed — estilos das páginas internas (blocos nativos)
   ============================================================ */

/* Banner de topo das páginas internas */
.page-hero {
  position: relative; isolation: isolate; overflow: hidden;
  background: linear-gradient(155deg, #0C3216 0%, #134A1A 60%, #18601F 100%);
  color: #fff;
  padding: clamp(3rem, 6vw, 4.75rem) 0;
}
/* Páginas com imagem de fundo no hero (foto + sobreposição verde + logo) */
.imed-has-herobg .page-hero { background-size: cover; background-position: center; }
.imed-has-herobg .page-hero::before { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(155deg, rgba(12,50,22,.93) 0%, rgba(19,74,26,.83) 55%, rgba(24,96,31,.66) 100%); }
.imed-has-herobg .page-hero::after { content: ""; position: absolute; right: -28px; top: 50%; transform: translateY(-50%); width: 300px; height: 300px; background: url('logo-white-clean.png') no-repeat center / contain; opacity: .08; z-index: 1; pointer-events: none; }
.imed-has-herobg .page-hero .container { position: relative; z-index: 2; }
.imed-page-servicos .page-hero { background-image: url('page-hero/servicos.jpg'); }
.imed-page-solucoes .page-hero { background-image: url('page-hero/solucoes.jpg'); }
.imed-page-atuacao  .page-hero { background-image: url('page-hero/atuacao.jpg'); }
.imed-page-contato  .page-hero { background-image: url('page-hero/contato.jpg'); }
.imed-page-sobre    .page-hero { background-image: url('page-hero/sobre.jpg'); }
.imed-page-blog     .page-hero { background-image: url('page-hero/blog.jpg'); }

/* ---------- Mural de hospitais (cards com selo + 3D no hover) ---------- */
.partner-wall { list-style: none; padding: 0; margin: 2.4rem 0 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.1rem; }
.partner-wall .pw-card { position: relative; overflow: hidden; display: flex; align-items: center; gap: .9rem; background: #fff; border: 1px solid var(--sage-100); border-radius: 14px; padding: 1.05rem 1.15rem; box-shadow: var(--shadow-sm); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; will-change: transform; }
.partner-wall .pw-card:hover { box-shadow: 0 18px 42px rgba(8,38,25,.18); border-color: #CFE0D5; }
/* brilho que segue o mouse */
.partner-wall .pw-card::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(255,255,255,.35), transparent 42%); opacity: 0; transition: opacity .3s ease; pointer-events: none; }
.partner-wall .pw-card:hover::after { opacity: 1; }
/* selo (slot do logo) */
.pw-badge { flex: 0 0 auto; width: 52px; height: 52px; border-radius: 13px; background: var(--sage-100); color: #169A2A; display: grid; place-items: center; transition: background .25s ease, color .25s ease; }
.pw-badge svg { width: 26px; height: 26px; }
.partner-wall .pw-card:hover .pw-badge { background: linear-gradient(135deg, #0E3B23, #1CB832); color: #fff; }
/* quando houver logo oficial: <span class="pw-badge"><img ...></span> */
.pw-badge img { max-width: 80%; max-height: 80%; object-fit: contain; }
.pw-badge:has(img) { background: #fff; border: 1px solid var(--sage-100); }
.pw-badge:has(img) svg { display: none; }
.pw-name { font-family: var(--font-display); font-weight: 600; color: var(--brand-dark); font-size: .98rem; line-height: 1.25; }
@media (max-width: 980px) { .partner-wall { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .partner-wall { grid-template-columns: 1fr; } }
.page-hero .container { width: 100%; max-width: 1180px; margin-inline: auto; padding-inline: 24px; }
.page-hero .eyebrow { color: var(--brand-vivid); text-transform: uppercase; letter-spacing: .16em; font-size: .8rem; font-weight: 700; margin-bottom: .8rem; }
.page-hero h1 { color: #fff; margin: 0 0 .7rem; }
.page-hero p { color: rgba(255,255,255,.82); max-width: 640px; margin: 0; }
.breadcrumb { font-size: .85rem; color: rgba(255,255,255,.6); margin-bottom: 1rem; }
.breadcrumb a { color: rgba(255,255,255,.8); }

/* Garante que grupos full-width com .section/.container fiquem certos como bloco */
.wp-block-group.section { padding-block: clamp(3.5rem, 7vw, 6rem); }
.wp-block-group.container { width: 100%; max-width: 1180px; margin-inline: auto; padding-inline: 24px; }

/* Missão / Visão / Valores */
.mv-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 2.6rem; }
.mv-card { background: #fff; border: 1px solid var(--sage-100); border-radius: var(--radius); padding: 1.9rem; box-shadow: var(--shadow-sm); }
.mv-card h3 { color: var(--brand-vivid-600); margin-bottom: .6rem; }
.mv-card p { color: var(--muted); margin: 0; }

/* Diferenciais */
.dif-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.1rem; margin-top: 2.4rem; }
.dif-item { background: var(--sage-50); border: 1px solid var(--sage-100); border-radius: var(--radius-sm); padding: 1.3rem; font-weight: 600; color: var(--brand-dark); }

@media (max-width: 940px) {
  .mv-grid { grid-template-columns: 1fr; }
  .dif-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
  .dif-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   Polimento global (Home + páginas internas)
   ============================================================ */

/* Neutraliza o block-gap do WordPress dentro dos grids nativos (senão os cards 2+ descem 24px e desalinham) */
.mv-grid > *, .dif-grid > * { margin-block-start: 0 !important; margin-top: 0 !important; }

/* Cards com altura igual */
.feature-grid, .legal-grid, .serv-grid, .blog-grid, .mv-grid, .ps-grid { align-items: stretch; }
.feature, .legal-card, .serv-card, .blog-card, .mv-card, .ps-card {
  height: 100%;
  display: flex;
  flex-direction: column;
}
.serv-card .link-arrow, .blog-card .blog-soon { margin-top: auto; }

/* Logo do rodapé já é branco limpo (sem filtro) */
.footer-logo { filter: none; height: 50px; }

/* Hover mais consistente */
.feature, .mv-card, .legal-card, .ps-card, .blog-card, .serv-card {
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.feature:hover, .mv-card:hover, .legal-card:hover, .ps-card:hover, .blog-card:hover, .serv-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
}
.dif-item { transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease), background .25s; }
.dif-item:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); background: #fff; border-color: var(--brand-vivid); }

/* Separador sutil entre seções claras consecutivas */
.section + .section { border-top: 1px solid var(--sage-100); }

/* Reveal ao rolar a página */
.r-anim { opacity: 0; transform: translateY(28px); transition: opacity .7s var(--ease), transform .7s var(--ease); will-change: opacity, transform; }
.r-anim.in-view { opacity: 1; transform: none; }
/* Cards: fade puro (sem deslocamento) para nunca desalinharem durante o scroll */
.r-fade { opacity: 0; transition: opacity .6s var(--ease); will-change: opacity; }
.r-fade.in-view { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .r-anim, .r-fade { opacity: 1 !important; transform: none !important; }
}

/* ---------- Cabeçalho inteligente: some ao descer, volta ao subir / mouse no topo ---------- */
/* O template-part envolve o header num <div> que "prende" o sticky; display:contents
   remove esse wrapper do layout e faz o header ancorar no viewport corretamente. */
.wp-block-template-part { display: contents; }
.site-header { transition: transform .35s ease; }
body.hdr-hidden .site-header { transform: translateY(-100%); }

/* ---------- Barra de rolagem discreta (some quando não usada) ---------- */
/* Firefox */
html { scrollbar-width: thin; scrollbar-color: transparent transparent; }
html:hover { scrollbar-color: rgba(20, 63, 27, .35) transparent; }
/* Chrome / Edge / Safari */
::-webkit-scrollbar { width: 9px; height: 9px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: transparent; border-radius: 10px; transition: background .3s ease; }
html:hover::-webkit-scrollbar-thumb, body:hover::-webkit-scrollbar-thumb { background: rgba(20, 63, 27, .32); }
::-webkit-scrollbar-thumb:hover { background: rgba(20, 63, 27, .6); }

/* ---------- Home: cards de blog dinâmicos ---------- */
.blog-card h3 a { color: inherit; text-decoration: none; }
.blog-card h3 a:hover { color: var(--brand-vivid-600); }
.blog-card .blog-link { margin-top: auto; align-self: flex-start; color: var(--brand-vivid-600); font-weight: 600; text-decoration: none; }
.blog-card .blog-link:hover { text-decoration: underline; }

/* ---------- Blog: índice ---------- */
.blog-grid.wp-block-post-template { list-style: none; padding: 0; margin-top: 2.6rem; gap: 1.5rem; }
.blog-post-card { background: #fff; border: 1px solid var(--sage-100); border-radius: var(--radius); padding: 1.6rem; box-shadow: var(--shadow-sm); height: 100%; display: flex; flex-direction: column; gap: .55rem; transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.blog-post-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
.blog-post-card .wp-block-post-terms { align-self: flex-start; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; background: var(--sage-100); padding: .3rem .7rem; border-radius: 999px; }
.blog-post-card .wp-block-post-terms a { color: var(--brand-vivid-600); text-decoration: none; }
.blog-post-card h2 { font-size: 1.15rem; line-height: 1.25; }
.blog-post-card h2 a { color: var(--brand-dark); text-decoration: none; }
.blog-post-card h2 a:hover { color: var(--brand-vivid-600); }
.blog-post-card .wp-block-post-excerpt { color: var(--muted); font-size: .92rem; flex: 1; margin: 0; }
.blog-post-card .wp-block-post-excerpt__more-link { color: var(--brand-vivid-600); font-weight: 600; display: inline-block; margin-top: .4rem; text-decoration: none; }
.blog-date { font-size: .8rem; color: var(--muted); margin-top: auto; }
.wp-block-query-pagination { margin-top: 2.6rem; gap: .6rem; }
.wp-block-query-pagination a, .wp-block-query-pagination .current { color: var(--brand-dark); font-weight: 600; }

/* ---------- Blog: artigo (single) ---------- */
.page-hero .post-meta { color: rgba(255,255,255,.7); font-size: .9rem; margin-top: .6rem; }
.page-hero .wp-block-post-terms { margin-bottom: .6rem; }
.page-hero .wp-block-post-terms a { color: var(--brand-vivid); text-decoration: none; font-weight: 600; }
.article-body { width: min(760px, 100% - 48px); margin-inline: auto; }
.article-body p, .article-body li { font-size: 1.08rem; line-height: 1.8; color: var(--ink); }
.article-body h2 { font-size: 1.55rem; color: var(--brand-dark); margin: 2.2rem 0 .8rem; }
.article-body h3 { font-size: 1.25rem; color: var(--brand-dark); margin: 1.6rem 0 .6rem; }
.article-body ul, .article-body ol { padding-left: 1.3rem; margin: 1rem 0; }
.article-body strong { color: var(--brand-dark); }
.back-blog { margin-top: 2.5rem; }
.back-blog a { color: var(--brand-vivid-600); font-weight: 600; text-decoration: none; }

/* ---------- FAQ (Serviços) ---------- */
.faq { background: #fff; border: 1px solid var(--sage-100); border-radius: var(--radius-sm); padding: 1rem 1.3rem; margin-bottom: .8rem; box-shadow: var(--shadow-sm); }
.faq summary { cursor: pointer; font-weight: 600; color: var(--brand-dark); font-family: var(--font-display); list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq[open] summary { color: var(--brand-vivid-600); margin-bottom: .5rem; }
.faq p { color: var(--muted); margin: 0; }

/* ---------- GEO: bloco de resposta direta + FAQ injetado ---------- */
.geo-block { background: var(--sage-100); }
.geo-block .kicker { color: var(--brand-vivid-600); }
.geo-answer { font-size: 1.12rem; line-height: 1.65; color: var(--brand-dark); background: #fff; border-left: 4px solid var(--brand-vivid-600); padding: 1.1rem 1.4rem; border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); margin: .3rem 0 1.8rem; max-width: 780px; }

/* ---------- Post: autor (byline + caixa Sobre o autor) ---------- */
.page-hero .post-meta { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; }
.page-hero .post-byline { color: rgba(255,255,255,.9); font-size: .9rem; }
.page-hero .post-byline::before { content: "Por "; opacity: .7; }
.page-hero .post-byline a { color: inherit; text-decoration: none; font-weight: 600; }
.page-hero .post-byline a:hover { text-decoration: underline; }
.page-hero .post-meta .wp-block-post-date { position: relative; padding-left: .8rem; }
.page-hero .post-meta .wp-block-post-date::before { content: "·"; position: absolute; left: 0; opacity: .6; }
.wp-block-post-author.author-box { margin-top: 2.6rem; padding: 1.3rem 1.5rem; background: var(--sage-100); border-radius: var(--radius-sm); display: block; }
.wp-block-post-author.author-box .wp-block-post-author__byline { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--brand-vivid-600); font-weight: 700; margin: 0 0 .25rem; }
.wp-block-post-author.author-box .wp-block-post-author__name { font-family: var(--font-display); font-weight: 700; color: var(--brand-dark); }
.wp-block-post-author.author-box .wp-block-post-author__bio { color: var(--muted); font-size: .92rem; line-height: 1.55; margin-top: .35rem; }

/* ---------- Tabela comparativa ---------- */
.article-body .wp-block-table, .cmp-table { margin: 1.8rem 0; overflow-x: auto; }
.cmp-table table { width: 100%; border-collapse: collapse; font-size: .93rem; }
.cmp-table th, .cmp-table td { border: 1px solid #CFE0D5; padding: .7rem .9rem; text-align: left; vertical-align: top; }
.cmp-table thead th { background: var(--brand-dark); color: #fff; font-family: var(--font-display); font-weight: 600; }
.cmp-table tbody tr:nth-child(even) { background: var(--sage-100); }
.cmp-table td:first-child { font-weight: 600; color: var(--brand-dark); }
/* Celular: 3 colunas cabem (quebram em linha) em vez de cortar/rolar */
@media (max-width: 560px) {
  .cmp-table table { table-layout: fixed; font-size: .78rem; }
  .cmp-table th, .cmp-table td { padding: .5rem .4rem; overflow-wrap: break-word; hyphens: auto; }
  .cmp-table th:first-child, .cmp-table td:first-child { width: 38%; }
}

/* ---------- Hero: carrossel de imagens de fundo ---------- */
.hero-bg { position: absolute; inset: 0; z-index: 0; }
.hero-slide { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transition: opacity 1.4s ease; will-change: opacity; }
.hero-slide.is-active { opacity: 1; }
.hero-slide:nth-child(1) { background-image: url('hero/1.jpg'); }
.hero-slide:nth-child(2) { background-image: url('hero/2.jpg'); }
.hero-slide:nth-child(3) { background-image: url('hero/3.jpg'); }
/* Sobreposicao verde (mantem o texto branco legivel sobre as fotos) */
.hero-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(150deg, rgba(10,41,19,.90) 0%, rgba(19,74,26,.80) 48%, rgba(24,96,31,.64) 100%); }
.hero .hero-inner { position: relative; z-index: 2; }

/* ---------- Imagens do blog (cards + artigo) ---------- */
.blog-thumb { display: block; aspect-ratio: 16 / 9; border-radius: 10px; overflow: hidden; margin-bottom: 1rem; background: linear-gradient(135deg, #0E3B23, #18601F 60%, #1CB832); }
.blog-thumb-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.blog-thumb-ph { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, #0E3B23, #18601F 60%, #1CB832); }
.blog-post-thumb { aspect-ratio: 16 / 9; border-radius: 10px; overflow: hidden; margin: 0 0 1rem; }
.blog-post-thumb a, .blog-post-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.article-feat { margin: 0 0 1.8rem; border-radius: 14px; overflow: hidden; }
.article-feat img { width: 100%; height: auto; display: block; }

/* ---------- Contato ---------- */
.contato-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 2.5rem; align-items: start; }
.contact-form { display: flex; flex-direction: column; gap: 1rem; }
.cf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.cf-field { display: flex; flex-direction: column; gap: .4rem; font-size: .85rem; font-weight: 600; color: var(--brand-dark); }
.cf-field input, .cf-field select, .cf-field textarea { font-family: var(--font-body); font-size: 1rem; padding: .75rem .9rem; border: 1.5px solid var(--sage-200); border-radius: 10px; background: #fff; color: var(--ink); width: 100%; }
.cf-field input:focus, .cf-field select:focus, .cf-field textarea:focus { outline: none; border-color: var(--brand-vivid); box-shadow: 0 0 0 3px rgba(28,184,50,.15); }
.cf-field .req { color: #C2410C; margin-left: 2px; }
.cf-consent { display: flex; gap: .6rem; align-items: flex-start; font-size: .85rem; color: var(--muted); }
.cf-consent input { margin-top: .25rem; }
.contact-info { background: var(--sage-50); border: 1px solid var(--sage-100); border-radius: var(--radius); padding: 1.8rem; }
.contact-info h3 { margin-bottom: 1rem; }
.contact-info p { color: var(--muted); margin: 0 0 1rem; }
.contact-info a { color: var(--brand-vivid-600); font-weight: 600; }
.map-section { width: 100%; }
.map-embed { width: 100%; height: 380px; border: 0; display: block; }
@media (max-width: 860px) { .contato-grid { grid-template-columns: 1fr; } .cf-row { grid-template-columns: 1fr; } }
