/* ========== MEDCLIN - CSS DE ADIÇÕES ========== */

/* ---- BOTÕES REUTILIZÁVEIS ---- */
.btn-primary { display:inline-flex; align-items:center; gap:8px; padding:12px 26px; background:linear-gradient(135deg, var(--primary-color), var(--secondary-color)); color:#fff; border-radius:30px; font-weight:600; text-decoration:none; transition:all .3s; border:none; cursor:pointer; font-family:inherit; font-size:15px; }
.btn-primary:hover { transform:translateY(-3px); box-shadow:0 8px 20px rgba(0,122,130,.35); }
.btn-outline { display:inline-flex; align-items:center; gap:8px; padding:12px 26px; border:2px solid var(--primary-color); color:var(--primary-color); border-radius:30px; font-weight:600; text-decoration:none; transition:all .3s; background:transparent; cursor:pointer; font-family:inherit; font-size:15px; }
.btn-outline:hover { background:var(--primary-color); color:#fff; transform:translateY(-2px); }
.text-center { text-align:center; }
.mt-10 { margin-top:10px; }
.empty-state { text-align:center; padding:60px 20px; color:var(--text-color); }
.empty-state i { font-size:48px; color:var(--border-color); margin-bottom:15px; }
.empty-state h3 { font-size:20px; margin-bottom:8px; }
.pagination { display:flex; justify-content:center; gap:8px; margin-top:30px; }
.page-btn { padding:8px 14px; border-radius:8px; background:var(--card-bg); border:1px solid var(--border-color); color:var(--text-color); text-decoration:none; font-weight:500; }
.page-btn.active { background:var(--primary-color); color:#fff; border-color:var(--primary-color); }

/* ---- SECTION COMMONS ---- */
.section-header { text-align:center; margin-bottom:50px; }
.section-tag { display:inline-block; background:rgba(15,174,170,.12); color:var(--secondary-color); padding:6px 18px; border-radius:20px; font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:1px; margin-bottom:12px; }
.section-title { font-size:36px; font-weight:700; color:var(--text-color); margin-bottom:12px; }
.section-subtitle { font-size:16px; color:var(--text-color); opacity:.7; max-width:600px; margin:0 auto; }
.section-cta { text-align:center; margin-top:40px; }
@media(max-width:768px) { .section-title { font-size:26px; } }

/* ---- SEARCH OVERLAY ---- */
.search-overlay { position:fixed; inset:0; background:rgba(0,43,41,.92); z-index:2000; display:none; align-items:center; justify-content:center; backdrop-filter:blur(6px); }
.search-overlay.open { display:flex; animation:fadeIn .2s ease; }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
.search-overlay-inner { width:100%; max-width:700px; padding:20px; position:relative; }
.search-overlay-close { position:absolute; top:-50px; right:20px; background:none; border:none; color:#fff; font-size:28px; cursor:pointer; }
.search-overlay-form { display:flex; background:#fff; border-radius:50px; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.4); }
.search-overlay-form input { flex:1; border:none; padding:18px 25px; font-size:18px; font-family:inherit; outline:none; color:#222; }
.search-overlay-form button { background:linear-gradient(135deg, var(--primary-color), var(--secondary-color)); border:none; color:#fff; padding:0 30px; font-size:20px; cursor:pointer; }
.search-hint { color:rgba(255,255,255,.6); text-align:center; margin-top:15px; font-size:14px; }
.search-btn { background:none; border:none; color:var(--text-color); font-size:18px; cursor:pointer; padding:8px; transition:color .2s; }
.search-btn:hover { color:var(--secondary-color); }

/* ---- SEARCH HERO FORM (search.php) ---- */
.search-hero-form { display:flex; background:rgba(255,255,255,.15); border-radius:50px; overflow:hidden; max-width:600px; margin:20px auto 0; border:2px solid rgba(255,255,255,.3); }
.search-hero-form input { flex:1; background:none; border:none; padding:14px 22px; font-size:16px; color:#fff; outline:none; font-family:inherit; }
.search-hero-form input::placeholder { color:rgba(255,255,255,.7); }
.search-hero-form button { background:rgba(255,255,255,.2); border:none; color:#fff; padding:0 25px; font-size:16px; cursor:pointer; font-weight:600; transition:background .2s; }
.search-hero-form button:hover { background:rgba(255,255,255,.35); }
.search-results-container { padding:40px 20px; max-width:900px; }
.search-count { font-size:15px; color:var(--text-color); margin-bottom:30px; opacity:.8; }
.search-group { margin-bottom:35px; }
.search-group-title { font-size:16px; font-weight:700; color:var(--primary-color); margin-bottom:15px; display:flex; align-items:center; gap:8px; padding-bottom:10px; border-bottom:2px solid var(--border-color); }
.search-group-count { background:var(--secondary-color); color:#fff; border-radius:20px; padding:2px 10px; font-size:12px; }
.search-item { display:block; padding:15px 18px; background:var(--card-bg); border-radius:10px; border:1px solid var(--border-color); margin-bottom:8px; text-decoration:none; transition:all .2s; }
.search-item:hover { border-color:var(--secondary-color); transform:translateX(4px); }
.search-item-title { font-weight:600; color:var(--text-color); margin-bottom:4px; }
.search-item-desc { font-size:13px; color:var(--text-color); opacity:.7; }
.search-item mark { background:rgba(61,248,242,.3); color:var(--primary-color); border-radius:3px; padding:0 2px; }

/* ---- NAV DROPDOWN ---- */
.nav-dropdown { position:relative; }
.nav-dropdown .dropdown-menu { display:none; position:absolute; top:calc(100% + 15px); left:50%; transform:translateX(-50%); background:var(--card-bg); border-radius:12px; box-shadow:0 10px 40px rgba(0,0,0,.15); border:1px solid var(--border-color); min-width:200px; padding:8px 0; z-index:500; }
.nav-dropdown:hover .dropdown-menu { display:block; animation:fadeIn .15s; }
.dropdown-menu li a { display:block; padding:10px 20px; color:var(--text-color) !important; font-size:14px; transition:background .15s; }
.dropdown-menu li a:hover { background:var(--light-bg); color:var(--primary-color) !important; }
.dropdown-menu li a::after { display:none !important; }
.nav-arrow { font-size:10px; margin-left:4px; }
.mobile-search { margin-bottom:20px; }
.mobile-search form { display:flex; border:1px solid var(--border-color); border-radius:8px; overflow:hidden; }
.mobile-search input { flex:1; border:none; padding:10px 15px; font-size:14px; outline:none; background:var(--light-bg); color:var(--text-color); }
.mobile-search button { background:var(--primary-color); border:none; color:#fff; padding:0 15px; cursor:pointer; }

/* ---- CONVENIOS CARROSSEL ---- */
.section-convenios { padding:70px 0; background:var(--light-bg); }
.convenios-track-wrap { overflow:hidden; position:relative; }
.convenios-track-wrap::before, .convenios-track-wrap::after { content:''; position:absolute; top:0; bottom:0; width:60px; z-index:2; pointer-events:none; }
.convenios-track-wrap::before { left:0; background:linear-gradient(to right, var(--light-bg), transparent); }
.convenios-track-wrap::after { right:0; background:linear-gradient(to left, var(--light-bg), transparent); }
.convenios-track { display:flex; gap:20px; animation:scrollLeft 30s linear infinite; }
.convenios-track:hover { animation-play-state:paused; }
@keyframes scrollLeft { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
.convenio-item { flex-shrink:0; }
.convenio-placeholder { background:var(--card-bg); border-radius:12px; padding:15px 25px; display:flex; flex-direction:column; align-items:center; gap:8px; min-width:130px; box-shadow:0 2px 10px rgba(0,0,0,.06); border:1px solid var(--border-color); transition:transform .3s; }
.convenio-placeholder:hover { transform:translateY(-3px); }
.convenio-placeholder i { font-size:28px; color:var(--secondary-color); }
.convenio-placeholder span { font-size:13px; font-weight:600; color:var(--text-color); white-space:nowrap; }
.convenio-item img { height:85px; object-fit:contain; border-radius:10px; background:#fff; padding:10px; border:1px solid var(--border-color); }
.convenio-placeholder { min-width:160px; padding:18px 28px; }
.convenio-placeholder i { font-size:34px; }
.convenio-placeholder span { font-size:14px; }
.convenios-note { text-align:center; margin-top:25px; color:var(--text-color); opacity:.7; font-size:14px; }
.convenios-note a { color:var(--secondary-color); font-weight:600; }

/* ---- CHECKUP CAROUSEL ---- */
.section-checkups { padding:80px 0; background:var(--bg-color); }
.checkup-carousel-wrap { position:relative; display:flex; align-items:center; gap:10px; }
.carousel-btn { flex-shrink:0; width:46px; height:46px; border-radius:50%; background:var(--primary-color); color:#fff; border:none; cursor:pointer; font-size:16px; transition:all .3s; display:flex; align-items:center; justify-content:center; z-index:1; }
.carousel-btn:hover { background:var(--secondary-color); transform:scale(1.1); }
.checkup-carousel { display:flex; gap:25px; overflow:hidden; flex:1; }
.checkup-card { flex:0 0 calc(33.333% - 17px); background:var(--card-bg); border-radius:20px; overflow:hidden; box-shadow:0 4px 20px rgba(0,0,0,.07); border:1px solid var(--border-color); transition:all .3s; position:relative; }
.checkup-card:hover { transform:translateY(-6px); box-shadow:0 12px 35px rgba(0,0,0,.12); }
.checkup-destaque { border-color:var(--secondary-color); box-shadow:0 4px 20px rgba(15,174,170,.2); }
.checkup-badge { position:absolute; top:15px; right:15px; background:var(--secondary-color); color:#fff; padding:4px 12px; border-radius:20px; font-size:11px; font-weight:700; z-index:1; }
.checkup-img { height:150px; background:linear-gradient(135deg, var(--primary-color), var(--secondary-color)); background-size:cover; background-position:center; }
.checkup-img-default { display:flex; align-items:center; justify-content:center; }
.checkup-img-default i { font-size:50px; color:rgba(255,255,255,.6); }
.checkup-body { padding:22px; }
.checkup-categoria { font-size:11px; text-transform:uppercase; letter-spacing:1px; color:var(--secondary-color); font-weight:700; }
.checkup-body h3 { font-size:18px; margin:6px 0 8px; color:var(--text-color); }
.checkup-desc { font-size:13px; color:var(--text-color); opacity:.7; margin-bottom:15px; }
.checkup-exames { margin-bottom:15px; }
.checkup-exames-title { font-size:12px; font-weight:700; color:var(--text-color); margin-bottom:8px; }
.checkup-exames ul { list-style:none; }
.checkup-exames li { font-size:12px; color:var(--text-color); opacity:.8; padding:2px 0; display:flex; align-items:center; gap:6px; }
.checkup-exames li i { color:var(--secondary-color); font-size:10px; }
.checkup-more { font-weight:600; color:var(--secondary-color) !important; opacity:1 !important; }
.checkup-preco { margin-bottom:15px; }
.preco-label { font-size:11px; color:var(--text-color); opacity:.6; display:block; }
.preco-valor { font-size:22px; font-weight:700; color:var(--primary-color); }
.checkup-btn { display:flex; align-items:center; justify-content:center; gap:8px; padding:12px; background:linear-gradient(135deg, #25d366, #128c7e); color:#fff; border-radius:12px; font-weight:600; font-size:14px; text-decoration:none; transition:all .3s; }
.checkup-btn:hover { transform:translateY(-2px); box-shadow:0 6px 15px rgba(37,211,102,.4); }
.carousel-dots { display:flex; justify-content:center; gap:8px; margin-top:25px; }
.carousel-dot { width:10px; height:10px; border-radius:50%; background:var(--border-color); border:none; cursor:pointer; transition:all .3s; }
.carousel-dot.active { background:var(--primary-color); transform:scale(1.3); }
@media(max-width:900px) { .checkup-card { flex:0 0 calc(50% - 13px); } }
@media(max-width:600px) { .checkup-card { flex:0 0 100%; } }

/* ---- PROGRAMAÇÕES ---- */
.section-programacoes { padding:80px 0; background:var(--light-bg); }
.programacoes-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:30px; }
.prog-card { background:var(--card-bg); border-radius:20px; padding:30px; box-shadow:0 4px 20px rgba(0,0,0,.07); border:1px solid var(--border-color); border-top:5px solid var(--prog-color); position:relative; transition:transform .3s; }
.prog-card:hover { transform:translateY(-5px); }
.prog-hoje { box-shadow:0 8px 30px rgba(0,0,0,.15); }
.prog-hoje-badge { position:absolute; top:15px; right:15px; background:gold; color:#333; padding:4px 12px; border-radius:20px; font-size:11px; font-weight:700; }
.prog-header { display:flex; align-items:center; gap:15px; margin-bottom:15px; }
.prog-icon { width:55px; height:55px; border-radius:15px; background:var(--prog-color); color:#fff; display:flex; align-items:center; justify-content:center; font-size:22px; flex-shrink:0; }
.prog-dia { font-size:12px; text-transform:uppercase; letter-spacing:1px; color:var(--text-color); opacity:.6; display:block; }
.prog-nome { font-size:18px; font-weight:700; color:var(--text-color); }
.prog-descricao { font-size:14px; color:var(--text-color); opacity:.75; margin-bottom:18px; line-height:1.6; }
.prog-desconto { text-align:center; margin:15px 0; background:rgba(0,0,0,.04); border-radius:12px; padding:15px; }
.desconto-num { display:block; font-size:42px; font-weight:800; color:var(--prog-color); line-height:1; }
.desconto-label { font-size:14px; color:var(--text-color); opacity:.7; }
.prog-exames { margin-bottom:18px; }
.prog-exames p { font-size:13px; font-weight:700; color:var(--text-color); margin-bottom:8px; }
.prog-exames-tags { display:flex; flex-wrap:wrap; gap:6px; }
.prog-exames-tags span { background:rgba(0,0,0,.05); padding:4px 10px; border-radius:20px; font-size:12px; color:var(--text-color); }
.prog-btn { display:flex; align-items:center; justify-content:center; gap:8px; padding:13px; background:linear-gradient(135deg, #25d366, #128c7e); color:#fff; border-radius:12px; font-weight:600; text-decoration:none; transition:all .3s; font-size:14px; }
.prog-btn:hover { transform:translateY(-2px); box-shadow:0 6px 15px rgba(37,211,102,.4); }
.prog-sexta_rosa { --prog-color: #e91e8c; }

/* ---- FAQ ---- */
.section-faq { padding:80px 0; background:var(--bg-color); }
.faq-tabs { display:flex; gap:8px; flex-wrap:wrap; justify-content:center; margin-bottom:35px; }
.faq-tab { padding:10px 22px; border-radius:25px; border:2px solid var(--border-color); background:var(--card-bg); color:var(--text-color); cursor:pointer; font-size:14px; font-weight:500; transition:all .3s; display:flex; align-items:center; gap:8px; font-family:inherit; }
.faq-tab.active, .faq-tab:hover { background:var(--primary-color); color:#fff; border-color:var(--primary-color); }
.faq-content-tab { display:none; }
.faq-content-tab.active { display:block; }
.faq-item { border:1px solid var(--border-color); border-radius:12px; margin-bottom:12px; overflow:hidden; background:var(--card-bg); }
.faq-question { width:100%; padding:18px 22px; background:none; border:none; text-align:left; font-size:15px; font-weight:600; color:var(--text-color); cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:15px; font-family:inherit; transition:background .2s; }
.faq-question:hover { background:var(--light-bg); }
.faq-question.active { color:var(--primary-color); }
.faq-icon { flex-shrink:0; transition:transform .3s; font-size:13px; }
.faq-question.active .faq-icon { transform:rotate(180deg); }
.faq-answer { padding:0 22px; max-height:0; overflow:hidden; transition:max-height .35s ease, padding .35s; }
.faq-answer.active { max-height:500px; padding:0 22px 18px; }
.faq-answer p { color:var(--text-color); opacity:.8; line-height:1.7; }
.faq-footer { text-align:center; margin-top:30px; font-size:15px; color:var(--text-color); opacity:.8; }
.faq-footer a { color:var(--secondary-color); font-weight:600; }

/* ---- VALORES ---- */
.section-valores { padding:80px 0; background:var(--light-bg); }
.valores-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:25px; margin-bottom:30px; }
.valor-card { background:var(--card-bg); border-radius:16px; padding:28px; text-align:center; box-shadow:0 3px 15px rgba(0,0,0,.06); border:1px solid var(--border-color); transition:transform .3s; }
.valor-card:hover { transform:translateY(-5px); }
.valor-icon { width:65px; height:65px; border-radius:18px; background:linear-gradient(135deg, var(--primary-color), var(--secondary-color)); color:#fff; display:flex; align-items:center; justify-content:center; font-size:26px; margin:0 auto 18px; }
.valor-card h3 { font-size:17px; font-weight:700; margin-bottom:10px; color:var(--text-color); }
.valor-card p { font-size:14px; color:var(--text-color); opacity:.7; line-height:1.6; }
.valores-cta { text-align:center; }

/* ---- INFO DIFERENCIAIS ---- */
.section-info-diferenciais { padding:60px 0; background:linear-gradient(135deg, var(--primary-color), var(--secondary-color)); }
.info-diferenciais-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:30px; }
.info-diferencial { display:flex; align-items:flex-start; gap:18px; }
.info-dif-icon { width:50px; height:50px; background:rgba(255,255,255,.15); border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:22px; color:#fff; flex-shrink:0; }
.info-dif-text h4 { font-size:16px; font-weight:700; color:#fff; margin-bottom:5px; }
.info-dif-text p { font-size:13px; color:rgba(255,255,255,.85); line-height:1.5; }

/* ---- APP / DIGITAL ---- */
.section-app { padding:80px 0; background:var(--bg-color); }
.app-content { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.app-text h2 { font-size:32px; font-weight:700; color:var(--text-color); margin:12px 0 15px; }
.app-text p { font-size:15px; color:var(--text-color); opacity:.75; margin-bottom:25px; line-height:1.7; }
.app-features { list-style:none; margin-bottom:30px; }
.app-features li { padding:7px 0; font-size:14px; color:var(--text-color); display:flex; align-items:center; gap:10px; }
.app-features li i { color:var(--secondary-color); width:18px; }
/* App section — usa imagem real (sem fundo gerado) */
.app-mockup {
  background: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  width: auto !important;
  box-shadow: none !important;
  display: flex;
  justify-content: center;
  align-items: center;
}
.app-image {
  max-width: 380px !important;
  width: 100% !important;
}
@media(max-width:768px) { .app-content { flex-direction:column; } .app-image { max-width:240px !important; } }

/* ---- UNIDADES ---- */
.section-units { padding:80px 0; background:var(--light-bg); }
.unidades-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:25px; }
.unidade-card { background:var(--card-bg); border-radius:16px; padding:25px; box-shadow:0 3px 15px rgba(0,0,0,.07); border:1px solid var(--border-color); display:flex; flex-direction:column; gap:15px; transition:transform .3s; }
.unidade-card:hover { transform:translateY(-4px); }
.unidade-icon { width:50px; height:50px; background:linear-gradient(135deg, var(--primary-color), var(--secondary-color)); border-radius:12px; color:#fff; display:flex; align-items:center; justify-content:center; font-size:20px; }
.unidade-info h3 { font-size:16px; font-weight:700; color:var(--text-color); margin-bottom:8px; }
.unidade-info p { font-size:13px; color:var(--text-color); opacity:.75; display:flex; align-items:flex-start; gap:8px; margin-bottom:4px; }
.unidade-info a { color:var(--text-color); }
.unidade-actions { display:flex; gap:10px; flex-wrap:wrap; }
.btn-whatsapp-sm { display:inline-flex; align-items:center; gap:6px; padding:9px 16px; background:#25d366; color:#fff; border-radius:20px; font-size:13px; font-weight:600; text-decoration:none; transition:all .3s; }
.btn-whatsapp-sm:hover { background:#128c7e; }
.btn-maps { display:inline-flex; align-items:center; gap:6px; padding:9px 16px; background:var(--primary-color); color:#fff; border-radius:20px; font-size:13px; font-weight:600; text-decoration:none; transition:all .3s; }
.btn-maps:hover { background:var(--secondary-color); }

/* ---- BLOG PREVIEW / BLOG ---- */
.section-blog-preview { padding:80px 0; background:var(--light-bg); }
.blog-preview-grid, .blog-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:25px; }
.blog-card { background:var(--card-bg); border-radius:16px; overflow:hidden; box-shadow:0 3px 15px rgba(0,0,0,.07); border:1px solid var(--border-color); transition:transform .3s; }
.blog-card:hover { transform:translateY(-5px); }
.blog-card-img-link { display:block; position:relative; }
.blog-card-img { height:200px; background:linear-gradient(135deg, var(--primary-color), var(--secondary-color)); background-size:cover; background-position:center; }
.blog-card-img-default { display:flex; align-items:center; justify-content:center; }
.blog-card-img-default i { font-size:48px; color:rgba(255,255,255,.5); }
.blog-destaque-badge { position:absolute; top:12px; left:12px; background:var(--secondary-color); color:#fff; padding:4px 12px; border-radius:20px; font-size:11px; font-weight:700; }
.blog-card-body { padding:22px; }
.blog-card-cat { display:inline-block; background:rgba(15,174,170,.12); color:var(--secondary-color); padding:4px 12px; border-radius:20px; font-size:11px; font-weight:700; text-transform:uppercase; margin-bottom:10px; }
.blog-card-body h3 { font-size:17px; font-weight:700; margin-bottom:8px; line-height:1.4; }
.blog-card-body h3 a { color:var(--text-color); text-decoration:none; }
.blog-card-body h3 a:hover { color:var(--primary-color); }
.blog-card-resumo { font-size:13px; color:var(--text-color); opacity:.75; margin-bottom:12px; line-height:1.6; }
.blog-card-meta { display:flex; gap:15px; font-size:12px; color:var(--text-color); opacity:.6; margin-bottom:15px; flex-wrap:wrap; }
.blog-card-link { font-size:13px; font-weight:600; color:var(--primary-color); text-decoration:none; display:inline-flex; align-items:center; gap:6px; }
.blog-card-link:hover { color:var(--secondary-color); }
.blog-filtros, .exames-filtros { margin-bottom:30px; }
.blog-form, .exames-form { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.blog-form input, .blog-form select, .exames-form select { padding:10px 15px; border:2px solid var(--border-color); border-radius:8px; font-size:14px; font-family:inherit; background:var(--card-bg); color:var(--text-color); }
.blog-form input, .exames-form input { flex:1; min-width:200px; }
.blog-form input:focus, .exames-form input:focus, .exames-form select:focus { outline:none; border-color:var(--secondary-color); }

/* ---- EXAMES PAGE ---- */
.exames-filtros { background:var(--card-bg); padding:20px; border-radius:14px; box-shadow:0 2px 10px rgba(0,0,0,.06); border:1px solid var(--border-color); }
.exames-search-box { flex:1; min-width:250px; position:relative; }
.exames-search-box i { position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--text-color); opacity:.5; }
.exames-search-box input { width:100%; padding:12px 15px 12px 40px; border:2px solid var(--border-color); border-radius:8px; font-size:14px; font-family:inherit; background:var(--card-bg); color:var(--text-color); }
.exames-search-box input:focus { outline:none; border-color:var(--secondary-color); }
.exames-form select { padding:12px 15px; border:2px solid var(--border-color); border-radius:8px; font-family:inherit; font-size:14px; background:var(--card-bg); color:var(--text-color); }
.exames-count { font-size:14px; color:var(--text-color); opacity:.7; margin-bottom:20px; }
.exames-table-wrap { overflow-x:auto; border-radius:12px; border:1px solid var(--border-color); }
.exames-table { width:100%; border-collapse:collapse; background:var(--card-bg); }
.exames-table thead th { background:var(--light-bg); color:var(--text-color); font-size:12px; text-transform:uppercase; letter-spacing:.5px; padding:13px 15px; font-weight:700; border-bottom:2px solid var(--border-color); white-space:nowrap; }
.exames-table tbody tr { border-bottom:1px solid var(--border-color); transition:background .15s; cursor:pointer; }
.exames-table tbody tr:hover { background:rgba(15,174,170,.04); }
.exames-table tbody td { padding:14px 15px; font-size:14px; vertical-align:middle; }
.exame-sinonimo { display:block; font-size:11px; color:var(--text-color); opacity:.55; margin-top:2px; }
.exame-cat-badge { background:rgba(15,174,170,.1); color:var(--secondary-color); padding:3px 10px; border-radius:20px; font-size:11px; font-weight:600; white-space:nowrap; }
.badge-jejum-sim { background:rgba(231,76,60,.1); color:#e74c3c; padding:4px 10px; border-radius:20px; font-size:12px; font-weight:600; white-space:nowrap; }
.badge-jejum-nao { background:rgba(39,174,96,.1); color:#27ae60; padding:4px 10px; border-radius:20px; font-size:12px; font-weight:600; white-space:nowrap; }
.badge-conv-sim { background:rgba(39,174,96,.1); color:#27ae60; padding:4px 10px; border-radius:20px; font-size:12px; }
.badge-conv-nao { background:rgba(231,76,60,.1); color:#e74c3c; padding:4px 10px; border-radius:20px; font-size:12px; }
.btn-wpp-table { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; background:#25d366; color:#fff; border-radius:8px; font-size:16px; text-decoration:none; transition:all .2s; }
.btn-wpp-table:hover { background:#128c7e; transform:scale(1.1); }
.exame-row-open { background:rgba(15,174,170,.04) !important; }
.exame-detail-row td { padding:0; }
.exame-detail { padding:20px 25px; background:var(--light-bg); display:grid; grid-template-columns:repeat(auto-fit, minmax(250px, 1fr)); gap:20px; }
.detail-bloco h4 { font-size:13px; font-weight:700; color:var(--primary-color); margin-bottom:6px; display:flex; align-items:center; gap:6px; }
.detail-bloco p { font-size:13px; color:var(--text-color); opacity:.8; line-height:1.6; }
.exames-cards-mobile { display:none; }
.exame-card-mobile { background:var(--card-bg); border-radius:12px; border:1px solid var(--border-color); margin-bottom:12px; overflow:hidden; }
.exame-card-header { display:flex; align-items:center; justify-content:space-between; padding:15px 18px; cursor:pointer; gap:10px; }
.exame-card-header strong { font-size:15px; color:var(--text-color); display:block; margin-bottom:4px; }
.exame-card-header i { transition:transform .3s; color:var(--text-color); opacity:.5; flex-shrink:0; }
.exame-card-mobile.open .exame-card-header i { transform:rotate(180deg); }
.exame-card-body { display:none; padding:15px 18px; border-top:1px solid var(--border-color); }
.exame-card-mobile.open .exame-card-body { display:block; }
.exame-card-info { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.exame-card-info span { background:var(--light-bg); padding:5px 12px; border-radius:20px; font-size:12px; color:var(--text-color); }
@media(max-width:768px) { .exames-table-wrap { display:none; } .exames-cards-mobile { display:block; } }

/* ---- PAGE LAYOUT (sobre, blog-post, etc) ---- */
.page-main { min-height:70vh; }
.page-hero { padding:70px 20px; color:#fff; text-align:center; }
.page-hero h1 { font-size:36px; font-weight:800; margin-bottom:10px; }
.page-hero p { font-size:17px; opacity:.9; margin-bottom:20px; }
.breadcrumb { display:inline-flex; align-items:center; gap:8px; font-size:13px; opacity:.8; }
.breadcrumb a { color:#fff; text-decoration:none; }
.breadcrumb a:hover { opacity:.7; }
.page-content { max-width:900px; margin:0 auto; padding:50px 20px; }
.pagina-updated { font-size:13px; color:var(--text-color); opacity:.6; margin-bottom:30px; display:flex; align-items:center; gap:6px; }
.pagina-corpo h2 { font-size:22px; font-weight:700; color:var(--primary-color); margin:30px 0 12px; }
.pagina-corpo h3 { font-size:18px; font-weight:600; color:var(--text-color); margin:25px 0 10px; }
.pagina-corpo p { font-size:15px; color:var(--text-color); opacity:.85; line-height:1.8; margin-bottom:15px; }
.pagina-corpo ul { padding-left:20px; margin-bottom:15px; }
.pagina-corpo ul li { font-size:15px; color:var(--text-color); opacity:.85; margin-bottom:6px; line-height:1.6; }

/* ---- SOBRE PAGE ---- */
.sobre-historia { padding:70px 20px; }
.sobre-historia-inner { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.sobre-historia-text h2 { font-size:30px; font-weight:700; color:var(--text-color); margin-bottom:18px; }
.sobre-historia-text p { font-size:15px; color:var(--text-color); opacity:.8; line-height:1.8; margin-bottom:25px; }
.sobre-numeros { display:flex; gap:30px; flex-wrap:wrap; }
.sobre-numero { text-align:center; }
.sobre-numero .num { display:block; font-size:36px; font-weight:800; color:var(--primary-color); }
.sobre-numero .label { font-size:12px; color:var(--text-color); opacity:.6; text-transform:uppercase; letter-spacing:1px; }
.sobre-img-placeholder { background:linear-gradient(135deg, var(--primary-color), var(--secondary-color)); border-radius:24px; height:280px; display:flex; flex-direction:column; align-items:center; justify-content:center; color:rgba(255,255,255,.6); }
.sobre-img-placeholder i { font-size:60px; margin-bottom:15px; }
.sobre-mvv { padding:70px 20px; }
.mvv-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(250px, 1fr)); gap:25px; }
.mvv-card { background:var(--card-bg); border-radius:16px; padding:30px; text-align:center; border:1px solid var(--border-color); box-shadow:0 3px 15px rgba(0,0,0,.06); }
.mvv-icon { width:60px; height:60px; background:linear-gradient(135deg, var(--primary-color), var(--secondary-color)); border-radius:16px; color:#fff; display:flex; align-items:center; justify-content:center; font-size:24px; margin:0 auto 18px; }
.mvv-card h3 { font-size:20px; font-weight:700; color:var(--text-color); margin-bottom:12px; }
.mvv-card p { font-size:14px; color:var(--text-color); opacity:.75; line-height:1.7; }
.sobre-valores { padding:60px 20px; }
.sobre-cta { padding:60px 20px; background:linear-gradient(135deg, var(--primary-color), var(--secondary-color)); }
.cta-box { text-align:center; color:#fff; }
.cta-box h2 { font-size:30px; font-weight:700; margin-bottom:12px; }
.cta-box p { font-size:16px; opacity:.9; margin-bottom:25px; }
@media(max-width:768px) { .sobre-historia-inner { grid-template-columns:1fr; } }

/* ---- BLOG POST PAGE ---- */
.post-hero { min-height:350px; background-size:cover; background-position:center; display:flex; align-items:flex-end; }
.post-hero-overlay { background:linear-gradient(to top, rgba(0,43,41,.85), transparent); padding:50px 20px 40px; width:100%; }
.post-hero-overlay .container { max-width:900px; }
.post-cat-badge { background:var(--secondary-color); color:#fff; padding:5px 15px; border-radius:20px; font-size:12px; font-weight:700; display:inline-block; margin-bottom:12px; }
.post-hero-overlay h1 { font-size:32px; font-weight:800; color:#fff; margin-bottom:12px; line-height:1.3; }
.post-meta { display:flex; gap:20px; flex-wrap:wrap; font-size:13px; color:rgba(255,255,255,.8); margin-bottom:15px; }
.post-container { display:grid; grid-template-columns:1fr 300px; gap:40px; padding:40px 20px; max-width:1200px; }
.post-content { }
.post-lead { font-size:17px; font-weight:500; color:var(--text-color); opacity:.85; margin-bottom:25px; line-height:1.7; padding:20px; background:var(--light-bg); border-radius:12px; border-left:4px solid var(--primary-color); }
.post-body { font-size:15px; color:var(--text-color); line-height:1.9; }
.post-body h2, .post-body h3 { color:var(--primary-color); margin:25px 0 12px; }
.post-body p { margin-bottom:16px; opacity:.85; }
.post-body ul { padding-left:20px; margin-bottom:15px; }
.post-body ul li { margin-bottom:8px; opacity:.85; }
.post-share { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:35px; padding-top:25px; border-top:2px solid var(--border-color); }
.post-share span { font-size:14px; font-weight:600; color:var(--text-color); }
.share-btn { display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border-radius:20px; font-size:13px; font-weight:600; text-decoration:none; transition:all .3s; }
.share-btn.whatsapp { background:#25d366; color:#fff; }
.share-btn.facebook { background:#1877f2; color:#fff; }
.post-sidebar { }
.sidebar-widget { background:var(--card-bg); border-radius:14px; padding:22px; border:1px solid var(--border-color); margin-bottom:20px; box-shadow:0 2px 10px rgba(0,0,0,.06); }
.sidebar-widget h4 { font-size:15px; font-weight:700; color:var(--text-color); margin-bottom:12px; }
.sidebar-widget p { font-size:13px; color:var(--text-color); opacity:.7; margin-bottom:15px; }
@media(max-width:900px) { .post-container { grid-template-columns:1fr; } .post-sidebar { display:none; } }

/* ---- CHECKUPS CAROUSEL (novo) ---- */
.checkup-carousel-wrapper { position:relative; display:flex; align-items:flex-start; gap:12px; }
.checkup-nav { flex-shrink:0; width:44px; height:44px; border-radius:50%; background:var(--primary-color); color:#fff; border:none; cursor:pointer; font-size:16px; display:flex; align-items:center; justify-content:center; transition:all .3s; z-index:1; margin-top:80px; }
.checkup-nav:hover { background:var(--secondary-color); transform:scale(1.1); }
/* O track precisa de overflow:hidden para esconder os cards fora da view */
.checkups-carousel-track { display:flex; gap:24px; overflow:hidden; flex:1; transition:transform .4s ease; }
/* Dentro do novo carrossel, o JS controla min/max-width — remove o flex fixo */
.checkups-carousel-track .checkup-card { flex:0 0 auto; }
.checkup-dots { display:flex; justify-content:center; gap:8px; margin-top:22px; }
.checkup-dot { width:10px; height:10px; border-radius:50%; background:var(--border-color); border:none; cursor:pointer; transition:all .3s; padding:0; }
.checkup-dot.active { background:var(--primary-color); transform:scale(1.3); }
@media(max-width:960px) { .checkup-nav { width:36px; height:36px; font-size:14px; } }
@media(max-width:600px) { .checkup-carousel-wrapper { gap:6px; } .checkup-nav { display:none; } }

/* ---- CONVENIOS (fallback sem logo) ---- */
.convenio-nome-fallback { background:var(--card-bg); border-radius:10px; padding:12px 20px; display:flex; flex-direction:column; align-items:center; gap:6px; min-width:120px; border:1px solid var(--border-color); }
.convenio-nome-fallback i { font-size:24px; color:var(--secondary-color); }
.convenio-nome-fallback span { font-size:12px; font-weight:600; color:var(--text-color); text-align:center; }
.convenios-contato { text-align:center; margin-top:20px; font-size:14px; color:var(--text-color); opacity:.75; }
.convenios-contato a { color:var(--secondary-color); font-weight:600; margin-left:4px; }

/* ---- FOOTER DEV ---- */
.footer-dev { margin-top:8px; font-size:12px; opacity:.65; }
.footer-dev a { color:#fff; text-decoration:none; font-weight:600; opacity:1; transition:color .2s; }
.footer-dev a:hover { color:var(--accent-color); }

/* ================================================================
   BARRA DE ACESSIBILIDADE
================================================================ */
.accessibility-bar {
  background: #002b29;
  padding: 6px 0;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.accessibility-content {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.accessibility-label {
  font-size: 11px;
  color: rgba(255,255,255,.5);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .5px;
  margin-right: 4px;
  display: flex;
  align-items: center;
  gap: 5px;
}
.ac-btn {
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.15);
  color: rgba(255,255,255,.85);
  padding: 3px 10px;
  border-radius: 5px;
  font-size: 12px;
  cursor: pointer;
  font-family: inherit;
  transition: all .2s;
  display: flex;
  align-items: center;
  gap: 5px;
  line-height: 1.4;
}
.ac-btn:hover { background: rgba(255,255,255,.2); color: #fff; }
.ac-btn.ac-btn-active { background: var(--secondary-color); border-color: var(--secondary-color); color: #fff; }
.ac-divider { width: 1px; height: 16px; background: rgba(255,255,255,.15); margin: 0 4px; }
.language-selector-inline { display: flex; align-items: center; }
.ac-lang-select {
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.15);
  color: rgba(255,255,255,.9);
  padding: 4px 10px;
  border-radius: 5px;
  font-size: 12px;
  font-family: inherit;
  cursor: pointer;
  outline: none;
}
.ac-lang-select option { background: #002b29; color: #fff; }
/* Alto contraste */
body.high-contrast { filter: contrast(1.5) saturate(0.5); }

/* ================================================================
   VALORES — REDESIGN MODERNO DARK
================================================================ */
.valores-nova-section {
  padding: 90px 0;
  background: linear-gradient(135deg, #002b29 0%, #004d52 40%, #007a82 100%);
  position: relative;
  overflow: hidden;
}
.valores-deco-circle {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.valores-deco-1 {
  width: 500px; height: 500px;
  background: rgba(255,255,255,.04);
  top: -200px; right: -100px;
}
.valores-deco-2 {
  width: 300px; height: 300px;
  background: rgba(61,248,242,.06);
  bottom: -100px; left: -80px;
}
.valores-tag { background: rgba(255,255,255,.12); color: var(--accent-color); }
.valores-title { color: #fff !important; }
.valores-subtitle { color: rgba(255,255,255,.7) !important; }
.valores-nova-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.vcard {
  background: rgba(255,255,255,.07);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 20px;
  padding: 36px 26px;
  text-align: center;
  transition: all .35s;
  position: relative;
  overflow: hidden;
}
.vcard:hover {
  background: rgba(255,255,255,.13);
  transform: translateY(-8px);
  border-color: rgba(61,248,242,.35);
  box-shadow: 0 20px 50px rgba(0,0,0,.3);
}
.vcard-top-line {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--accent-color), transparent);
  border-radius: 20px 20px 0 0;
  opacity: 0;
  transition: opacity .35s;
}
.vcard:hover .vcard-top-line { opacity: 1; }
.vcard-icon {
  width: 70px; height: 70px;
  background: rgba(255,255,255,.1);
  border-radius: 18px;
  display: flex; align-items: center; justify-content: center;
  font-size: 28px; color: var(--accent-color);
  margin: 0 auto 20px;
  transition: all .35s;
}
.vcard:hover .vcard-icon {
  background: var(--accent-color);
  color: #002b29;
  transform: scale(1.1) rotate(-5deg);
}
.vcard h3 { font-size: 19px; font-weight: 700; color: #fff; margin-bottom: 14px; }
.vcard p { font-size: 14px; color: rgba(255,255,255,.72); line-height: 1.75; }
.vcard-list { list-style: none; text-align: left; display: inline-block; margin: 0 auto; }
.vcard-list li { font-size: 14px; color: rgba(255,255,255,.8); padding: 4px 0; display: flex; align-items: center; gap: 8px; }
.vcard-list li i { color: var(--accent-color); font-size: 13px; }
@media(max-width:900px) { .valores-nova-grid { grid-template-columns: repeat(2, 1fr); } }
@media(max-width:480px) { .valores-nova-grid { grid-template-columns: 1fr; gap: 14px; } }

/* ================================================================
   CHECKUPS — CARROSSEL SCROLL-SNAP (sem cálculo de offsetWidth)
================================================================ */
.checkups-section { padding: 80px 0; background: var(--light-bg); }

/* Wrapper externo com setas */
.ckp-outer {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
/* Setas de navegação */
.ckp-arrow {
  flex-shrink: 0;
  width: 46px; height: 46px;
  border-radius: 50%;
  background: var(--primary-color);
  color: #fff;
  border: none;
  cursor: pointer;
  font-size: 16px;
  display: flex; align-items: center; justify-content: center;
  transition: all .3s;
  z-index: 1;
  align-self: center;
  margin-top: 0;
}
.ckp-arrow:hover { background: var(--secondary-color); transform: scale(1.1); }
/* Área de scroll */
.ckp-scroll {
  flex: 1;
  display: flex;
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 12px 4px 20px;
}
.ckp-scroll::-webkit-scrollbar { display: none; }
/* Hint de scroll */
.ckp-hint { text-align: center; font-size: 13px; color: var(--text-color); opacity: .5; margin-top: 4px; display: flex; align-items: center; justify-content: center; gap: 6px; }
/* Cards dentro do scroll */
.ckp-scroll .checkup-novo-card {
  flex: 0 0 calc(33.333% - 16px);
  scroll-snap-align: start;
}
@media(max-width:960px) { .ckp-scroll .checkup-novo-card { flex: 0 0 calc(50% - 12px); } }
@media(max-width:600px)  { .ckp-scroll .checkup-novo-card { flex: 0 0 calc(100% - 4px); } .ckp-arrow { display: none; } }

/* Estrutura do card (compartilhada com grid) */
.checkups-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-bottom: 40px;
}
.checkup-novo-card {
  background: var(--card-bg);
  border-radius: 20px;
  padding: 32px 26px;
  border: 1px solid var(--border-color);
  box-shadow: 0 4px 20px rgba(0,0,0,.06);
  transition: all .35s;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.checkup-novo-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 16px 45px rgba(0,122,130,.15);
  border-color: var(--secondary-color);
}
.checkup-novo-destaque {
  border: 2px solid var(--secondary-color);
  border-top: 5px solid var(--secondary-color);
  padding-top: 48px;
}
.checkup-novo-badge {
  position: absolute;
  top: 12px; left: 50%; transform: translateX(-50%);
  background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
  color: #fff;
  padding: 5px 18px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
  display: flex; align-items: center; gap: 5px;
}
.checkup-novo-cat {
  display: inline-block;
  background: rgba(15,174,170,.12);
  color: var(--secondary-color);
  padding: 3px 12px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.checkup-novo-icon {
  width: 56px; height: 56px;
  background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
  border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px; color: #fff;
}
.checkup-novo-card h3 { font-size: 20px; font-weight: 700; color: var(--text-color); margin: 0; }
.checkup-novo-exames {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.checkup-novo-exames span {
  background: var(--light-bg);
  border: 1px solid var(--border-color);
  border-radius: 20px;
  padding: 4px 11px;
  font-size: 12px;
  color: var(--text-color);
  display: flex; align-items: center; gap: 5px;
}
.checkup-novo-exames span i { color: var(--secondary-color); font-size: 10px; }
.checkup-mais { background: rgba(15,174,170,.12) !important; color: var(--secondary-color) !important; font-weight: 600; }
.checkup-novo-benefits {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 14px;
  background: rgba(15,174,170,.06);
  border-radius: 12px;
  border: 1px solid rgba(15,174,170,.12);
}
.benefit-item { font-size: 13px; color: var(--text-color); display: flex; align-items: center; gap: 8px; }
.benefit-item i { color: var(--secondary-color); width: 16px; text-align: center; }
.checkup-novo-price { margin-top: auto; }
.price-label { display: block; font-size: 11px; color: var(--text-color); opacity: .55; text-transform: uppercase; letter-spacing: .5px; margin-bottom: 2px; }
.price-value { font-size: 28px; font-weight: 800; color: var(--primary-color); }
.checkup-novo-note { font-size: 11px; color: var(--text-color); opacity: .5; margin: 0; }
.checkup-novo-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.checkup-novo-actions .btn-primary,
.checkup-novo-actions .btn-outline { flex: 1; justify-content: center; font-size: 13px; padding: 10px 14px; }
/* Modal de checkup */
.checkup-modal-content { max-width: 580px; }
.checkup-modal-header { display: flex; align-items: center; gap: 18px; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 2px solid var(--border-color); }
.checkup-modal-icon { width: 56px; height: 56px; background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); border-radius: 16px; display: flex; align-items: center; justify-content: center; font-size: 22px; color: #fff; flex-shrink: 0; }
.checkup-modal-header h2 { font-size: 22px; font-weight: 700; color: var(--text-color); margin: 0 0 6px; }
.checkup-modal-desc { color: var(--text-color); opacity: .8; font-size: 15px; line-height: 1.7; margin-bottom: 20px; }
.checkup-modal-exames h4, .checkup-modal-benefits h4 { font-size: 14px; font-weight: 700; color: var(--primary-color); margin-bottom: 12px; display: flex; align-items: center; gap: 7px; }
.checkup-modal-exames-grid { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.checkup-modal-exames-grid span { background: var(--light-bg); border: 1px solid var(--border-color); border-radius: 20px; padding: 5px 13px; font-size: 13px; color: var(--text-color); display: flex; align-items: center; gap: 6px; }
.checkup-modal-exames-grid span i { color: var(--secondary-color); font-size: 11px; }
.checkup-modal-benefits-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 20px; }
.checkup-modal-benefits-grid div { font-size: 13px; color: var(--text-color); display: flex; align-items: center; gap: 8px; padding: 10px 14px; background: rgba(15,174,170,.06); border-radius: 10px; border: 1px solid rgba(15,174,170,.12); }
.checkup-modal-benefits-grid div i { color: var(--secondary-color); width: 16px; text-align: center; }
.checkup-modal-price { display: flex; align-items: baseline; gap: 10px; padding: 16px 20px; background: linear-gradient(135deg, rgba(0,122,130,.08), rgba(15,174,170,.08)); border-radius: 14px; border: 1px solid rgba(15,174,170,.2); }
.checkup-modal-price span { font-size: 28px; font-weight: 800; color: var(--primary-color); }
.checkup-modal-price small { font-size: 12px; color: var(--text-color); opacity: .55; }
@media(max-width:960px) { .checkups-cards-grid { grid-template-columns: repeat(2, 1fr); } }
@media(max-width:600px) { .checkups-cards-grid { grid-template-columns: 1fr; } .checkup-modal-benefits-grid { grid-template-columns: 1fr; } }

/* ================================================================
   SELOS / CERTIFICAÇÕES
================================================================ */
.selos-section { padding: 70px 0; background: var(--bg-color); }
.selos-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px;
}
.selo-item {
  text-align: center;
  transition: all .3s;
}
.selo-link { text-decoration: none; display: block; }
.selo-img-wrap {
  width: 110px; height: 110px;
  background: var(--card-bg);
  border-radius: 18px;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 20px rgba(0,0,0,.08);
  border: 1px solid var(--border-color);
  padding: 14px;
  margin: 0 auto 10px;
  transition: all .35s;
}
.selo-item:hover .selo-img-wrap {
  transform: translateY(-6px);
  box-shadow: 0 12px 35px rgba(0,122,130,.18);
  border-color: var(--secondary-color);
}
.selo-img-wrap img { width: 100%; height: 100%; object-fit: contain; }
.selo-nome { display: block; font-size: 13px; font-weight: 700; color: var(--text-color); }
.selo-desc { display: block; font-size: 11px; color: var(--text-color); opacity: .6; margin-top: 2px; }

/* ================================================================
   UNIDADES — REDESIGN CLEAN & MODERNO
================================================================ */
.und-section { padding: 80px 0; background: var(--light-bg); }

/* ── BLOCO SEDE (MATRIZ) ── */
.und-matriz {
  background: linear-gradient(135deg, #001f1e 0%, #004d52 55%, #007a82 100%);
  border-radius: 24px;
  padding: 40px 48px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 16px 56px rgba(0,43,41,.28);
  margin-bottom: 56px;
}
.und-matriz::before {
  content: '';
  position: absolute;
  width: 420px; height: 420px;
  border-radius: 50%;
  background: rgba(255,255,255,.04);
  top: -160px; right: -100px;
  pointer-events: none;
}
.und-matriz-badge {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.2);
  color: #a7f3d0;
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .8px;
  padding: 5px 14px; border-radius: 20px;
  margin-bottom: 24px;
}
.und-matriz-body {
  display: grid;
  grid-template-columns: 2fr auto 1.2fr auto 1fr auto;
  gap: 0; align-items: start;
  position: relative; z-index: 1;
}
.und-m-sep {
  width: 1px; background: rgba(255,255,255,.15);
  align-self: stretch; margin: 0 36px;
}
.und-m-col {}
.und-m-nome { display: flex; align-items: flex-start; gap: 16px; }
.und-m-icon-wrap {
  width: 52px; height: 52px; flex-shrink: 0;
  background: rgba(255,255,255,.12);
  border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px; color: #a7f3d0;
}
.und-m-col h3 { font-size: 20px; font-weight: 700; color: #fff; margin: 0 0 8px; line-height: 1.2; }
.und-m-end { font-size: 13px; color: rgba(255,255,255,.7); display: flex; align-items: flex-start; gap: 7px; margin: 0; }
.und-m-end i { margin-top: 2px; color: #a7f3d0; }
.und-m-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .7px; color: #a7f3d0; margin-bottom: 10px; display: flex; align-items: center; gap: 6px; }
.und-m-horario { font-size: 13px; color: rgba(255,255,255,.85); padding: 5px 0; border-bottom: 1px solid rgba(255,255,255,.08); }
.und-m-horario:last-child { border-bottom: none; }
.und-m-link {
  display: flex; align-items: center; gap: 9px;
  font-size: 13px; color: rgba(255,255,255,.85) !important;
  text-decoration: none !important;
  padding: 5px 0;
  transition: color .2s;
}
.und-m-link:hover { color: #a7f3d0 !important; }
.und-m-link i { color: #a7f3d0; width: 16px; text-align: center; }
.und-m-wpp i { color: #25d366 !important; }
.und-m-actions {
  display: flex; flex-direction: column; gap: 8px;
  align-self: center; margin-left: 8px;
}

/* ── TÍTULOS DE GRUPO ── */
.und-group-titulo {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 24px;
}
.und-group-titulo span {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--card-bg);
  border: 1.5px solid var(--border-color);
  color: var(--secondary-color);
  font-size: 13px; font-weight: 700;
  padding: 7px 18px; border-radius: 30px;
}
.und-group-titulo::after {
  content: ''; flex: 1; height: 1px;
  background: var(--border-color);
}

/* ── GRID DESTAQUES ── */
.und-destaques-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
  gap: 22px;
  margin-bottom: 48px;
}

/* ── GRID DEMAIS ── */
.und-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

/* ── CARD BASE ── */
.und-card {
  background: var(--card-bg);
  border-radius: 18px;
  border: 1.5px solid var(--border-color);
  box-shadow: 0 2px 10px rgba(0,0,0,.04);
  overflow: hidden;
  display: flex;
  transition: transform .28s, box-shadow .28s, border-color .28s;
}
.und-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 40px rgba(0,122,130,.13);
  border-color: var(--secondary-color);
}
.und-card-acento {
  width: 5px; flex-shrink: 0;
  background: linear-gradient(to bottom, var(--primary-color), var(--secondary-color));
  border-radius: 18px 0 0 18px;
}
.und-card-destaque .und-card-acento {
  background: linear-gradient(to bottom, #f59e0b, #10b981);
  width: 6px;
}
.und-card-inner { flex: 1; padding: 20px 22px 18px; display: flex; flex-direction: column; gap: 12px; }

.und-card-topo { display: flex; align-items: flex-start; gap: 12px; }
.und-card-icon {
  width: 42px; height: 42px; flex-shrink: 0;
  background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 17px; color: #fff;
}
.und-card-destaque .und-card-icon { background: linear-gradient(135deg, #007a82, #10b981); }
.und-card-title-wrap { flex: 1; min-width: 0; }
.und-card-title-wrap h3 { font-size: 15px; font-weight: 700; color: var(--text-color); margin: 0 0 4px; line-height: 1.3; }
.und-card-bairro { font-size: 12px; color: var(--secondary-color); display: flex; align-items: center; gap: 5px; }
.und-badge-destaque {
  flex-shrink: 0;
  background: linear-gradient(135deg, #fbbf24, #f59e0b);
  color: #7c2d12;
  font-size: 10px; font-weight: 700;
  padding: 3px 10px; border-radius: 20px;
  display: flex; align-items: center; gap: 4px;
  white-space: nowrap;
}

.und-card-info-row {
  display: flex; align-items: flex-start; gap: 9px;
  font-size: 13px; color: var(--text-color);
  opacity: .8;
}
.und-card-info-row i { color: var(--secondary-color); margin-top: 2px; flex-shrink: 0; font-size: 12px; min-width: 14px; text-align: center; }

/* Pílulas de horário */
.und-card-horarios { display: flex; flex-direction: column; gap: 6px; }
.und-hor-pill {
  display: flex; align-items: baseline; gap: 8px;
  background: var(--light-bg);
  border-radius: 8px;
  padding: 7px 12px;
  font-size: 12px;
}
.und-hor-dia {
  font-weight: 700; color: var(--secondary-color);
  white-space: nowrap; font-size: 11px;
  text-transform: uppercase; letter-spacing: .4px;
  min-width: 48px;
}
.und-hor-dom .und-hor-dia { color: #f59e0b; }

/* Botões do card */
.und-card-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: auto; padding-top: 4px; }
.und-btn-wpp {
  flex: 1; min-width: 80px;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 9px 12px; background: #25d366; color: #fff !important;
  border-radius: 10px; font-size: 12px; font-weight: 700;
  text-decoration: none; transition: background .2s;
}
.und-btn-wpp:hover { background: #128c7e; }
.und-btn-maps {
  flex: 1; min-width: 60px;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 9px 12px; background: var(--primary-color); color: #fff !important;
  border-radius: 10px; font-size: 12px; font-weight: 700;
  text-decoration: none; transition: background .2s;
}
.und-btn-maps:hover { background: var(--secondary-color); }
.und-btn-info {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 9px 12px;
  background: transparent;
  border: 1.5px solid var(--border-color);
  color: var(--text-color); border-radius: 10px;
  font-size: 12px; font-weight: 600;
  cursor: pointer; font-family: inherit; transition: all .2s;
}
.und-btn-info:hover { border-color: var(--secondary-color); color: var(--secondary-color); }

/* ── MODAL ── */
.und-modal-overlay {
  display: none; position: fixed; inset: 0; z-index: 9000;
  background: rgba(0,0,0,.5);
  align-items: center; justify-content: center;
  padding: 16px;
}
.und-modal-box {
  background: var(--card-bg, #fff);
  border-radius: 22px;
  width: 100%; max-width: 500px;
  max-height: 90vh; overflow-y: auto;
  box-shadow: 0 32px 80px rgba(0,0,0,.22);
  animation: undModalIn .25s ease;
}
@keyframes undModalIn {
  from { opacity: 0; transform: translateY(16px) scale(.97); }
  to   { opacity: 1; transform: none; }
}
.und-modal-header {
  background: linear-gradient(135deg, #001f1e, #007a82);
  padding: 24px 24px 20px; position: relative;
}
.und-modal-close {
  position: absolute; top: 12px; right: 14px;
  background: rgba(255,255,255,.12); border: none;
  color: #fff; width: 30px; height: 30px;
  border-radius: 50%; cursor: pointer;
  font-size: 14px; display: flex; align-items: center; justify-content: center;
  transition: background .2s;
}
.und-modal-close:hover { background: rgba(255,255,255,.25); }
.und-modal-header-inner { display: flex; align-items: center; gap: 14px; }
.und-modal-icon {
  width: 48px; height: 48px; flex-shrink: 0;
  background: rgba(255,255,255,.14);
  border-radius: 13px;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; color: #fff;
}
.und-modal-nome { font-size: 18px; font-weight: 700; color: #fff; line-height: 1.3; }
.und-modal-loc { font-size: 13px; color: rgba(255,255,255,.65); margin-top: 3px; }
.und-modal-body { padding: 22px 24px 24px; }
.und-modal-bloco { margin-bottom: 20px; }
.und-modal-bloco-title {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .7px; color: var(--secondary-color);
  display: flex; align-items: center; gap: 7px;
  padding-bottom: 10px; margin-bottom: 10px;
  border-bottom: 1px solid var(--border-color);
}
.und-modal-hor-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 9px 14px;
  background: var(--light-bg); border-radius: 10px;
  margin-bottom: 6px; font-size: 13px;
}
.und-modal-hor-dia { color: var(--text-color); opacity: .65; display: flex; align-items: center; gap: 7px; }
.und-modal-hor-val { font-weight: 700; color: var(--text-color); }
.und-modal-end-text { font-size: 14px; color: var(--text-color); line-height: 1.7; }
.und-modal-dim { opacity: .55; }
.und-modal-contact {
  display: flex; align-items: center; gap: 10px;
  font-size: 14px; color: var(--text-color) !important;
  text-decoration: none !important;
  padding: 10px 14px; background: var(--light-bg); border-radius: 10px;
  margin-bottom: 8px; transition: background .2s;
}
.und-modal-contact:hover { background: var(--border-color); }
.und-modal-contact i { color: var(--secondary-color); width: 18px; text-align: center; }
.und-modal-wpp i { color: #25d366 !important; }
.und-modal-acoes { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 4px; }
.und-modal-btn-wpp {
  flex: 1; min-width: 140px;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 13px 18px; background: #25d366; color: #fff !important;
  border-radius: 12px; font-weight: 700; font-size: 14px;
  text-decoration: none; transition: background .2s;
}
.und-modal-btn-wpp:hover { background: #128c7e; }
.und-modal-btn-map {
  flex: 1; min-width: 140px;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 13px 18px; background: var(--primary-color); color: #fff !important;
  border-radius: 12px; font-weight: 700; font-size: 14px;
  text-decoration: none; transition: background .2s;
}
.und-modal-btn-map:hover { background: var(--secondary-color); }

/* ── RESPONSIVO ── */
@media (max-width: 900px) {
  .und-matriz { padding: 28px 24px; }
  .und-matriz-body { grid-template-columns: 1fr; }
  .und-m-sep { width: 100%; height: 1px; margin: 20px 0; }
  .und-m-actions { flex-direction: row; margin-left: 0; margin-top: 8px; }
  .und-destaques-grid { grid-template-columns: 1fr; }
  .und-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
  .und-modal-hor-row { flex-direction: column; align-items: flex-start; gap: 3px; }
}

/* ================================================================
   PROGRAMAÇÕES — SEXTA ROSA E SÁBADO COM SAÚDE
================================================================ */
/* Sexta Rosa — layout novo */
.prog-sexta-nova { border-top-width: 5px; }
.prog-sexta-nova .prog-header { align-items: flex-start; }
.prog-desconto-badge {
  margin-left: auto;
  flex-shrink: 0;
  background: var(--prog-color, #e91e8c);
  color: #fff;
  border-radius: 14px;
  padding: 8px 14px;
  text-align: center;
  min-width: 55px;
}
.prog-desconto-badge span { display: block; font-size: 22px; font-weight: 800; line-height: 1; }
.prog-desconto-badge small { font-size: 10px; text-transform: uppercase; letter-spacing: .5px; opacity: .85; }

/* Cards de exames Sexta Rosa */
.sexta-rosa-exames { margin: 16px 0; }
.sexta-rosa-exames-title { font-size: 13px; font-weight: 700; color: var(--text-color); margin-bottom: 12px; display: flex; align-items: center; gap: 7px; }
.sexta-rosa-exames-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.sexta-exame-card {
  background: var(--light-bg);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 14px 12px;
  text-align: center;
  transition: all .3s;
  position: relative;
}
.sexta-exame-card.sexta-exame-semana {
  background: linear-gradient(135deg, rgba(233,30,140,.08), rgba(233,30,140,.04));
  border-color: rgba(233,30,140,.35);
}
.sexta-semana-badge {
  position: absolute;
  top: -10px; left: 50%; transform: translateX(-50%);
  background: #e91e8c;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 20px;
  white-space: nowrap;
  display: flex; align-items: center; gap: 4px;
}
.sexta-exame-icon { font-size: 20px; color: #e91e8c; margin-bottom: 7px; }
.sexta-exame-card strong { display: block; font-size: 13px; font-weight: 700; color: var(--text-color); margin-bottom: 6px; line-height: 1.4; }
.sexta-exame-desconto {
  display: inline-block;
  background: rgba(233,30,140,.15);
  color: #e91e8c;
  font-size: 12px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 20px;
}
/* Sábado com Saúde */
.sabado-desconto-block {
  display: flex;
  align-items: center;
  gap: 16px;
  background: linear-gradient(135deg, rgba(0,122,130,.1), rgba(15,174,170,.08));
  border: 1px solid rgba(0,122,130,.2);
  border-radius: 14px;
  padding: 16px 20px;
  margin: 8px 0;
}
.sabado-desconto-num {
  font-size: 52px;
  font-weight: 900;
  color: var(--prog-color, #007a82);
  line-height: 1;
  flex-shrink: 0;
}
.sabado-desconto-info { display: flex; flex-direction: column; }
.sabado-desconto-info strong { font-size: 15px; font-weight: 700; color: var(--text-color); }
.sabado-desconto-info span { font-size: 12px; color: var(--text-color); opacity: .65; margin-top: 2px; }
.sabado-benefits { margin: 12px 0; }
.sabado-benefits-title { font-size: 13px; font-weight: 700; color: var(--text-color); margin-bottom: 10px; }
.sabado-benefits-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.sabado-benefit {
  display: flex; align-items: center; gap: 9px;
  background: var(--light-bg);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 13px; color: var(--text-color);
}
.sabado-benefit i { color: var(--prog-color, #007a82); width: 16px; text-align: center; }

/* ========== MOBILE MENU — LOJA + CONTA ========== */

/* Barra de conta no topo do menu mobile */
.mobile-conta-bar {
  background: var(--light-bg);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 14px;
}
.mobile-conta-info {
  display: flex; align-items: center; gap: 8px;
  font-weight: 700; font-size: 14px; color: var(--text-color);
  margin-bottom: 10px;
}
.mobile-conta-info i { font-size: 22px; color: var(--primary-color); }
.mobile-conta-links {
  display: flex; flex-direction: column; gap: 6px;
}
.mobile-conta-links a {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 14px !important;
  font-weight: 500;
  color: var(--text-color) !important;
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  text-decoration: none;
  transition: background .2s;
}
.mobile-conta-links a:hover { background: var(--light-bg); }
.mobile-conta-links a i { width: 16px; text-align: center; color: var(--primary-color); }
.mobile-conta-links a.mobile-sair { color: #c0392b !important; }
.mobile-conta-links a.mobile-sair i { color: #c0392b; }

/* Botão Entrar */
.mobile-btn-entrar {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  padding: 11px 16px;
  background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
  color: #fff !important;
  border-radius: 10px;
  font-size: 15px !important;
  font-weight: 700;
  text-decoration: none;
  transition: opacity .2s;
}
.mobile-btn-entrar:hover { opacity: .9; }

/* Botão destaque da Loja */
.mobile-loja-btn {
  display: flex; align-items: center; gap: 10px;
  padding: 13px 16px;
  background: linear-gradient(135deg, #007a82, #0faeaa);
  color: #fff !important;
  border-radius: 12px;
  font-size: 15px !important;
  font-weight: 700;
  text-decoration: none;
  margin-bottom: 14px;
  position: relative;
  transition: opacity .2s;
}
.mobile-loja-btn:hover { opacity: .9; }
.mobile-loja-btn i { font-size: 18px; }
.mobile-loja-btn span:first-of-type { flex: 1; }
.mobile-cart-badge {
  background: #ef4444;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  min-width: 20px;
  height: 20px;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  padding: 0 5px;
}

/* Links da nav mobile com ícones */
.mobile-menu nav a {
  display: flex; align-items: center; gap: 10px;
}
.mobile-menu nav a i { width: 18px; text-align: center; color: var(--primary-color); font-size: 15px; }

/* Aumentar padding do menu mobile para acomodar o novo conteúdo */
@media (max-width: 992px) {
  .mobile-menu { padding: 70px 18px 30px; width: 320px; overflow-y: auto; }
  .mobile-menu nav ul { gap: 14px; }
  .mobile-menu nav a { font-size: 15px !important; }
}

/* ========== CHECKOUT — AVISO IMPORTANTE + TERMOS ========== */

.chk-importante {
  background: #fff8e1;
  border: 1.5px solid #f59e0b;
  border-left: 5px solid #f59e0b;
  border-radius: 10px;
  padding: 20px 22px;
  margin-bottom: 0;
}
.chk-importante-titulo {
  display: flex; align-items: center; gap: 10px;
  font-size: 15px; font-weight: 800; color: #92400e;
  text-transform: uppercase; letter-spacing: .5px;
  margin-bottom: 14px;
}
.chk-importante-titulo i { font-size: 18px; color: #f59e0b; }
.chk-importante ul {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.chk-importante ul li {
  display: flex; align-items: flex-start; gap: 9px;
  font-size: 13px; color: #78350f; line-height: 1.5;
}
.chk-importante ul li i { color: #f59e0b; margin-top: 2px; flex-shrink: 0; font-size: 12px; }
.chk-importante-cancel {
  margin-top: 14px; padding-top: 14px;
  border-top: 1px solid #fcd34d;
}
.chk-importante-cancel strong {
  display: block; font-size: 13px; font-weight: 700;
  color: #92400e; margin-bottom: 4px;
}
.chk-importante-cancel p {
  font-size: 12.5px; color: #78350f; margin: 0; line-height: 1.5;
}

/* Bloco de aceite de termos */
.chk-termos-bloco {
  background: var(--card-bg);
  border: 1.5px solid var(--border-color);
  border-radius: 10px;
  padding: 18px 20px;
  display: flex; flex-direction: column; gap: 12px;
}
.chk-termo-check {
  display: flex; align-items: flex-start; gap: 12px;
  cursor: pointer;
}
.chk-termo-check input[type="checkbox"] {
  width: 18px; height: 18px; flex-shrink: 0; margin-top: 2px;
  accent-color: var(--primary-color); cursor: pointer;
}
.chk-termo-check span {
  font-size: 13.5px; color: var(--text-color); line-height: 1.5;
}
.chk-termo-check span a {
  color: var(--primary-color); font-weight: 600; text-decoration: underline;
}
.chk-termo-check span a:hover { opacity: .75; }
.chk-termos-erro {
  display: none;
  background: #fee2e2; border: 1px solid #fca5a5;
  border-radius: 8px; padding: 10px 14px;
  font-size: 13px; color: #991b1b;
  gap: 8px; align-items: center;
}
.chk-termos-erro.visivel { display: flex; }
.chk-termos-erro i { flex-shrink: 0; }

/* ========== BANNER DE ACEITE DE TERMOS — CANTO INFERIOR ESQUERDO ========== */

.termos-popup-overlay {
  position: fixed;
  bottom: 20px; left: 20px;
  z-index: 9999;
  width: 380px; max-width: calc(100vw - 40px);
  max-height: calc(100vh - 40px);
  display: flex; flex-direction: column;
  animation: tpSlideIn .35s cubic-bezier(.22,.68,0,1.2);
  pointer-events: auto;
}
@keyframes tpSlideIn {
  from { transform: translateY(30px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}

.termos-popup-box {
  background: var(--card-bg, #fff);
  border-radius: 16px;
  border: 1px solid var(--border-color, #e2e8f0);
  box-shadow: 0 8px 32px rgba(0,0,0,.18), 0 2px 8px rgba(0,0,0,.08);
  display: flex; flex-direction: column;
  overflow: hidden;
  max-height: calc(100vh - 40px);
}

.termos-popup-header {
  background: linear-gradient(135deg, var(--primary-color, #007a82), var(--secondary-color, #0fade6));
  padding: 14px 16px 12px;
  color: #fff;
  flex-shrink: 0;
}
.termos-popup-header h2 {
  font-size: 14px; font-weight: 800; margin: 0 0 2px;
  display: flex; align-items: center; gap: 8px;
}
.termos-popup-header p {
  font-size: 11.5px; opacity: .88; margin: 0;
}

.termos-popup-body {
  padding: 14px 16px;
  overflow-y: auto;
  flex: 1;
}

.termos-popup-avisos {
  background: #fffbeb;
  border-left: 4px solid #f59e0b;
  border-radius: 0 8px 8px 0;
  padding: 10px 12px;
  margin-bottom: 12px;
}
.termos-popup-avisos-titulo {
  font-size: 11px; font-weight: 800; color: #92400e;
  text-transform: uppercase; letter-spacing: .4px;
  display: flex; align-items: center; gap: 6px;
  margin-bottom: 7px;
}
.termos-popup-avisos ul {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 4px;
}
.termos-popup-avisos ul li {
  display: flex; align-items: flex-start; gap: 7px;
  font-size: 11.5px; color: #78350f; line-height: 1.4;
}
.termos-popup-avisos ul li i { color: #f59e0b; margin-top: 2px; flex-shrink: 0; font-size: 9px; }

.termos-popup-checks {
  display: flex; flex-direction: column; gap: 8px;
  margin-bottom: 12px;
}
.termos-popup-check {
  display: flex; align-items: flex-start; gap: 10px;
  cursor: pointer; padding: 9px 11px;
  background: var(--light-bg, #f8fafc);
  border: 1.5px solid var(--border-color, #e2e8f0);
  border-radius: 8px; transition: border-color .18s, background .18s;
}
.termos-popup-check:has(input:checked) {
  border-color: var(--primary-color, #007a82);
  background: rgba(0,122,130,.05);
}
.termos-popup-check input[type="checkbox"] {
  width: 16px; height: 16px; flex-shrink: 0; margin-top: 1px;
  accent-color: var(--primary-color, #007a82); cursor: pointer;
}
.termos-popup-check span {
  font-size: 12px; color: var(--text-color, #333); line-height: 1.45;
}
.termos-popup-check span a {
  color: var(--primary-color, #007a82); font-weight: 700;
  text-decoration: underline;
}
.termos-popup-check span a:hover { opacity: .75; }

.termos-popup-footer {
  padding: 0 16px 14px;
  flex-shrink: 0;
}
.termos-popup-btn {
  width: 100%; padding: 11px;
  background: linear-gradient(135deg, var(--primary-color, #007a82), var(--secondary-color, #0fade6));
  color: #fff; border: none; border-radius: 25px;
  font-size: 13px; font-weight: 700; cursor: pointer;
  transition: all .2s;
  display: flex; align-items: center; justify-content: center; gap: 7px;
  font-family: inherit;
}
.termos-popup-btn:disabled {
  opacity: .35; cursor: not-allowed; transform: none !important;
}
.termos-popup-btn:not(:disabled):hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0,122,130,.35);
}
.termos-popup-nota {
  font-size: 10.5px; color: var(--text-color, #888);
  text-align: center; opacity: .65; margin-top: 7px;
}

@media (max-width: 500px) {
  .termos-popup-overlay { bottom: 0; left: 0; right: 0; width: 100%; max-width: 100%; border-radius: 0; }
  .termos-popup-box { border-radius: 16px 16px 0 0; }
}

