/* ============================================================
   GEO CRITICAL CSS — Geolocated Landing Pages (Premium V6)
   ============================================================ */

h1, h2, h3, h4, h5, h6, nav, .navbar, button, .btn-primary {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
}
body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
}

/* ── FAQ ── */
.faq-list { max-width: 860px; margin: 0 auto; display: flex; flex-direction: column; gap: .75rem; }
.faq-item { border-radius: 14px; border: 1.5px solid #e2e8f0; box-shadow: 0 1px 6px rgba(0,0,0,.06); overflow: hidden; background: #fff; opacity: 1 !important; transform: none !important; contain: layout style; }
.faq-item[open] { border-color: rgba(15,76,129,.3); box-shadow: 0 4px 20px rgba(15,76,129,.1); }
.faq-question { display: flex; justify-content: space-between; align-items: center; padding: 1.15rem 1.5rem; font-weight: 600; font-size: 1rem; color: var(--primary,#0f4c81); gap: 1rem; cursor: pointer; list-style: none; font-family: inherit; transition: background .2s; }
.faq-question::-webkit-details-marker, .faq-question::marker { display: none; }
.faq-question:hover { background: #f0f7ff; }
.faq-icon { width: 28px; height: 28px; flex-shrink: 0; border-radius: 50%; background: var(--primary,#0f4c81); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 1.3rem; line-height: 1; transition: transform .3s, background .25s; user-select: none; }
.faq-item[open] .faq-icon { transform: rotate(45deg); background: var(--accent,#e63946); }
.faq-answer-inner { padding: .5rem 1.5rem 1.4rem; display: flex; gap: 1.5rem; align-items: flex-start; }
.faq-text { flex: 1; color: #475569; line-height: 1.85; font-size: .97rem; }
.faq-img-wrap { flex-shrink: 0; width: 220px; }
.faq-img { width: 100%; height: 150px; object-fit: cover; border-radius: 10px; box-shadow: 0 3px 14px rgba(0,0,0,.13); display: block; }
@media (max-width: 640px) {
  .faq-answer-inner { flex-direction: column; }
  .faq-img-wrap { width: 100%; }
  .faq-img { height: 180px; }
}

/* ── Brands ── */
.brands-section { background: var(--bg2,#f1f5f9); padding: 2.5rem 0; }
.brands-carousel-wrap { overflow: hidden; position: relative; height: 100px; contain: strict; }
.brands-carousel-wrap::before, .brands-carousel-wrap::after { content: ''; position: absolute; top: 0; width: 80px; height: 100%; z-index: 2; pointer-events: none; }
.brands-carousel-wrap::before { left: 0; background: linear-gradient(to right, var(--bg2,#f1f5f9), transparent); }
.brands-carousel-wrap::after { right: 0; background: linear-gradient(to left, var(--bg2,#f1f5f9), transparent); }
.brands-track { display: flex; gap: 2rem; align-items: center; width: max-content; animation: brandsScroll 30s linear infinite; will-change: transform; isolation: isolate; }
.brands-track:hover { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .brands-track { animation: none; } }
.brand-logo-item { flex-shrink: 0; display: flex; align-items: center; justify-content: center; padding: .75rem 1.25rem; background: #fff; border-radius: 10px; box-shadow: 0 1px 4px rgba(0,0,0,.08); }
@media (hover: hover) {
  .brand-logo-item:hover { transform: translateY(-2px); transition: transform .25s; }
  .brand-logo-item:hover img { opacity: .85; transition: opacity .25s; }
}
.brand-logo-item img { max-width: 140px; max-height: 70px; width: auto; height: auto; object-fit: contain; }
@keyframes brandsScroll { to { transform: translateX(-50%); } }

/* ── Contención de layout ── */
.item-card, .product-card, .blog-card, .gallery-item { contain: layout style; }
.hero-slider { background: #0f4c81; }
.item-card:not(.visible), .product-card:not(.visible), .blog-card:not(.visible) { transition: none !important; }
@media (hover: hover) { .cov-list-panel ul li a { transition: background .18s, border-color .18s, color .18s; } }

.home-section:not(#cobertura) { content-visibility: auto; contain-intrinsic-size: 0 600px; }
.brands-section { content-visibility: auto; contain-intrinsic-size: 0 160px; }
.stats-section { content-visibility: auto; contain-intrinsic-size: 0 140px; }

#coverage-map {
  background: var(--bg2,#f1f5f9) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24' fill='%2394a3b8'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E") center/40px no-repeat;
}

/* ── Cobertura/mapa ── */
.cov-wrap { display: grid; grid-template-columns: 1fr 280px; gap: 1.5rem; align-items: start; }
#coverage-map { height: 400px; border-radius: 14px; overflow: hidden; border: 1px solid var(--border,#e2e8f0); min-height: 300px; }
.cov-list-panel { background: var(--bg2,#f8fafc); border: 1px solid var(--border,#e2e8f0); border-radius: 14px; padding: 1.25rem 1.4rem; max-height: 400px; overflow-y: auto; }
.cov-list-panel h3 { font-size: .82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .6px; color: var(--primary,#0f4c81); margin-bottom: 1rem; padding-bottom: .6rem; border-bottom: 2px solid var(--primary-light,#e8f1fb); }
.cov-list-panel ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .45rem; }
.cov-list-panel ul li a { display: flex; align-items: center; gap: .55rem; padding: .55rem .75rem; border-radius: 8px; background: #fff; border: 1px solid var(--border,#e2e8f0); font-size: .9rem; font-weight: 500; color: var(--text,#0f172a); text-decoration: none; }
.cov-list-panel ul li a:hover { background: var(--primary,#0f4c81); border-color: var(--primary,#0f4c81); color: #fff; }
.cov-pin { font-size: .95rem; flex-shrink: 0; }
.cov-empty { font-size: .85rem; color: var(--text-muted,#64748b); padding: .5rem 0; }
@media (max-width: 700px) {
  .cov-wrap { grid-template-columns: 1fr; }
  #coverage-map { height: 260px; }
  .cov-list-panel { max-height: 220px; }
}
