:root {
    --red: #dc2626;
    --red-dark: #b91c1c;
    --red-soft: rgba(220, 38, 38, .08);
    --red-mid: rgba(220, 38, 38, .18);
    --wh: #25D366;
    --ink: #0f172a;
    --text: #111827;
    --muted: #64748b;
    --line: rgba(15, 23, 42, .10);
    --soft: #f8fafc;
    --card: #ffffff;
    --radius: 22px;
    --radius-xl: 38px;
    --shadow: 0 18px 35px -18px rgba(2, 6, 23, .32);
    --shadow-red: 0 18px 30px -16px rgba(220, 38, 38, .45);
    --nmc-wrap-max: 1360px;
    --nmc-wide-max: 1440px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
    font-family: 'Figtree', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    background: #f9fafb;
    color: var(--text);
    line-height: 1.5;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; }
button, input { font: inherit; }
.wrap { max-width: var(--nmc-wrap-max, 1360px); margin: 0 auto; padding: 0 20px; }
.skip-link { position: absolute; left: -999px; top: 12px; background: var(--ink); color: white; padding: 10px 14px; border-radius: 12px; z-index: 500; }
.skip-link:focus { left: 12px; }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 3px solid rgba(220, 38, 38, .45); outline-offset: 3px; }

.top-banner { background: var(--red); color: white; text-align: center; padding: 12px 20px; font-weight: 800; font-size: .95rem; box-shadow: 0 2px 10px rgba(220, 38, 38, .25); }
.site-header { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 28px 20px 34px; flex-wrap: wrap; }
.logo-text { font-weight: 900; font-size: 2rem; letter-spacing: -.04em; color: var(--red); line-height: 1; }
.main-nav { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; }
.main-nav a { padding: 9px 12px; border-radius: 999px; color: #334155; font-weight: 800; font-size: .92rem; }
.main-nav a:hover, .main-nav a.active, .main-nav a[aria-current="page"] { background: var(--red-soft); color: var(--red-dark); }
.contact-buttons { display: flex; gap: 12px; flex-wrap: wrap; }
.btn-contact { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 22px; border-radius: 999px; font-weight: 800; font-size: .95rem; transition: .2s; border: 1.5px solid transparent; }
.btn-contact.phone { background: #fff; color: #1f2937; border-color: #e5e7eb; }
.btn-contact.phone:hover { background: #f3f4f6; }
.btn-contact.whatsapp { background: var(--wh); color: white; box-shadow: 0 10px 18px rgba(37, 211, 102, .25); }
.btn-contact.whatsapp:hover { transform: translateY(-2px); filter: brightness(.96); }

.hero-banner, .slogan-banner, .center-detail-hero { border-radius: var(--radius-xl); padding: 48px 40px; color: white; display: grid; grid-template-columns: 1.5fr .8fr; align-items: center; gap: 30px; box-shadow: 0 25px 35px -15px rgba(0,0,0,.3); }
.hero-banner, .center-detail-hero { background: linear-gradient(135deg, #1e293b, #0f172a); }
.hero-text h1, .center-detail-copy h1 { font-size: clamp(2rem, 5vw, 3.35rem); font-weight: 900; line-height: 1.05; letter-spacing: -.045em; margin-bottom: 16px; }
.hero-text p, .center-detail-copy p { font-size: 1.1rem; color: #cbd5e1; max-width: 680px; margin-bottom: 20px; }
.hero-small { font-size: .85rem !important; color: #94a3b8 !important; margin-top: 8px; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.hero-btn, .note-btn, .investors-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; background: var(--red); color: white; padding: 15px 28px; border-radius: 999px; font-weight: 900; font-size: 1rem; transition: .2s; box-shadow: var(--shadow-red); border: 0; cursor: pointer; }
.hero-btn:hover, .note-btn:hover { background: var(--red-dark); transform: translateY(-2px); }
.hero-btn.secondary { background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.22); box-shadow: none; }
.hero-btn.secondary:hover { background: rgba(255,255,255,.16); }
.hero-image, .investors-image { background: rgba(255,255,255,.06); border-radius: 30px; padding: 30px; text-align: center; border: 1px solid rgba(255,255,255,.12); }
.emoji-big { font-size: 5rem; line-height: 1; }
.hero-image p, .investors-image p { color: #94a3b8; margin-top: 12px; font-weight: 700; }

.section { margin: 62px auto 42px; }
.page-main { min-height: 52vh; }
.page-hero.compact { background: white; border: 1px solid #e5e7eb; border-radius: var(--radius-xl); padding: 42px 34px; box-shadow: var(--shadow); }
.page-hero h1 { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.05; letter-spacing: -.04em; font-weight: 900; margin-bottom: 14px; }
.page-hero p { color: var(--muted); max-width: 760px; font-size: 1.1rem; margin-bottom: 22px; }
.section-head.centered { text-align: center; max-width: 780px; margin: 0 auto 26px; }
.eyebrow { display: inline-flex; align-items: center; gap: 6px; padding: 5px 13px; border-radius: 999px; border: 1px solid var(--red-mid); background: var(--red-soft); color: var(--red-dark); font-weight: 900; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 12px; }
.sh { font-size: clamp(1.65rem, 4vw, 2.5rem); font-weight: 900; letter-spacing: -.045em; margin-bottom: 8px; line-height: 1.08; color: var(--ink); }
.sp { color: var(--muted); font-size: 1rem; max-width: 680px; margin-bottom: 26px; }
.centered .sp { margin-left: auto; margin-right: auto; }

.note-card { background: #fffbeb; border-left: 8px solid #f59e0b; border-radius: 24px; padding: 26px 30px; display: flex; align-items: center; justify-content: space-between; gap: 18px; box-shadow: var(--shadow); }
.note-highlight { margin-top: 26px; }
.note-content h2 { font-size: clamp(1.4rem, 3vw, 2rem); color: #92400e; font-weight: 900; letter-spacing: -.03em; margin-bottom: 6px; }
.note-content p { color: #92400e; max-width: 720px; }
.note-btn { background: #f59e0b; color: #1e293b; box-shadow: 0 12px 28px rgba(245,158,11,.25); white-space: nowrap; }
.note-btn:hover { background: #d97706; color: white; }

.city-filter { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 22px 0 12px; }
.city-btn { padding: 10px 20px; border-radius: 999px; border: 1.5px solid #e5e7eb; background: white; font-weight: 900; font-size: .9rem; color: #4b5563; cursor: pointer; transition: .15s; }
.city-btn:hover { border-color: var(--red); color: var(--red); }
.city-btn.active { background: var(--red); border-color: var(--red); color: white; box-shadow: 0 8px 16px rgba(220,38,38,.2); }
.filter-summary { text-align: center; color: #6b7280; font-size: .9rem; margin: 10px 0 22px; font-weight: 800; }
.centros-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 22px; }
.compact-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.centro-card { background: white; border-radius: 28px; padding: 22px; box-shadow: 0 20px 30px -18px rgba(0,0,0,.18); border: 1px solid #f0f0f0; transition: .2s; display: flex; flex-direction: column; min-height: 100%; }
.centro-card:hover { transform: translateY(-3px); box-shadow: 0 25px 40px -18px rgba(220,38,38,.25); border-color: #fecaca; }
.centro-card.hidden { display: none; }
.centro-header { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.centro-icon { width: 54px; height: 54px; background: #fee2e2; border-radius: 18px; display: flex; align-items: center; justify-content: center; font-size: 26px; }
.centro-nombre { flex: 1; min-width: 0; }
.centro-topline { display: flex; align-items: start; justify-content: space-between; gap: 8px; }
.centro-nombre h3 { font-size: 1.25rem; font-weight: 900; letter-spacing: -.02em; }
.centro-nombre p { color: #6b7280; font-weight: 700; font-size: .9rem; }
.status-badge { display: inline-flex; align-items: center; padding: 5px 9px; border-radius: 999px; font-size: .72rem; font-weight: 900; white-space: nowrap; }
.status-badge.open { background: #dcfce7; color: #166534; }
.status-badge.upcoming { background: #fef9c3; color: #854d0e; }
.tamanos { margin: 12px 0; background: #f3f4f6; border-radius: 999px; padding: 10px 14px; text-align: center; font-weight: 800; color: #1f2937; border: 1px solid #e5e7eb; }
.tamanos span { color: var(--red); }
.price-pill { text-align: center; background: #fff7ed; color: #9a3412; border: 1px solid #fed7aa; border-radius: 999px; padding: 9px 12px; font-weight: 800; margin-bottom: 12px; }
.price-pill small { display: block; font-size: .68rem; color: #a16207; font-weight: 700; }
.servicios { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 14px; }
.servicio-badge { background: #f3f4f6; border-radius: 999px; padding: 5px 11px; font-size: .75rem; font-weight: 900; color: #374151; border: 1px solid #e5e7eb; }
.servicio-badge.parking { background: #dbeafe; color: #1e40af; border-color: #bfdbfe; }
.servicio-badge.wh { background: #d1fae5; color: #065f46; border-color: #a7f3d0; }
.servicio-badge.proxima { background: #fef9c3; color: #854d0e; border-color: #fde047; }
.servicio-badge.seguro { background: #fee2e2; color: #b91c1c; border-color: #fecaca; }
.servicio-badge.escaleras { background: #fed7aa; color: #7b341e; border-color: #fdba74; }
.servicio-badge.ascensor { background: #dcfce7; color: #166534; border-color: #86efac; }
.centro-desc { color: #64748b; font-size: .92rem; margin-bottom: 16px; }
.centro-footer { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line); }
.btn-card { padding: 11px 8px; border-radius: 999px; font-weight: 900; font-size: .82rem; text-align: center; background: #f1f5f9; border: 1px solid #d1d5db; color: #374151; transition: .15s; }
.btn-card:hover { transform: translateY(-1px); }
.btn-card.reserva { background: var(--red); border-color: var(--red); color: white; }
.btn-card.whatsapp { background: var(--wh); border-color: var(--wh); color: white; }

.cases-grid { display: grid; gap: 14px; grid-template-columns: repeat(3, 1fr); }
.cases-grid.four { grid-template-columns: repeat(4, 1fr); }
.case-card, .service-card, .process-card, .testimonial-card { background: white; border: 1.5px solid var(--line); border-radius: var(--radius); padding: 22px; transition: .2s; }
.case-card:hover, .service-card:hover, .process-card:hover { border-color: rgba(220,38,38,.25); box-shadow: var(--shadow); transform: translateY(-2px); }
.case-ico { font-size: 1.9rem; margin-bottom: 9px; display: block; }
.case-title { font-size: 1rem; font-weight: 900; margin-bottom: 5px; }
.case-desc { font-size: .88rem; color: var(--muted); line-height: 1.6; }
.center-cta { display: flex; justify-content: center; margin-top: 24px; }

.slogan-banner { background: linear-gradient(135deg, var(--red), var(--red-dark)); margin-top: 60px; }
.slogan-text h2 { font-size: clamp(2rem, 4vw, 2.7rem); font-weight: 900; line-height: 1.08; letter-spacing: -.04em; margin-bottom: 12px; }
.slogan-text p { color: rgba(255,255,255,.88); font-size: 1.15rem; }
.slogan-highlight { background: rgba(255,255,255,.12); border-radius: 28px; padding: 22px 28px; border: 1px solid rgba(255,255,255,.22); text-align: center; min-width: 250px; }
.slogan-highlight span { display: block; color: #fde047; font-size: 1.7rem; font-weight: 900; margin-bottom: 8px; }
.slogan-highlight small { display: block; color: rgba(255,255,255,.75); margin-top: 6px; }

.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.process-card { text-align: center; }
.process-number { width: 48px; height: 48px; border-radius: 50%; background: var(--red); color: white; display: grid; place-items: center; margin: 0 auto 16px; font-size: 1.4rem; font-weight: 900; }
.process-card h3 { margin-bottom: 6px; font-size: 1.05rem; }
.process-card p { color: var(--muted); font-size: .9rem; }
.services-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 16px; }
.service-card { text-align: center; padding: 24px 16px; }
.service-icon { font-size: 2.3rem; margin-bottom: 10px; }
.service-card p { font-weight: 800; color: #1f2937; }

.faq-grid { display: flex; flex-direction: column; gap: 8px; max-width: 820px; margin: 0 auto; }
.faq-item { border: 1.5px solid var(--line); border-radius: 16px; background: white; overflow: hidden; }
.faq-question { width: 100%; border: 0; background: white; padding: 16px 20px; font-weight: 900; cursor: pointer; display: flex; justify-content: space-between; align-items: center; text-align: left; color: var(--ink); }
.faq-question:hover { color: var(--red); }
.faq-answer { max-height: 0; padding: 0 20px; overflow: hidden; transition: .25s ease; background: #f8fafc; color: #475569; }
.faq-item.open .faq-answer { max-height: 220px; padding: 16px 20px; border-top: 1px solid var(--line); }
.final-cta { background: linear-gradient(135deg, #1e293b, #0f172a); color: white; border-radius: var(--radius-xl); padding: 44px 32px; text-align: center; margin-top: 60px; }
.final-cta h2 { font-size: clamp(1.8rem, 4vw, 2.6rem); letter-spacing: -.04em; margin-bottom: 10px; }
.final-cta p { color: #cbd5e1; margin-bottom: 22px; }

.center-detail-hero { margin-top: 0; }
.detail-tags { display: flex; gap: 10px; flex-wrap: wrap; margin: 18px 0 24px; }
.detail-tags span:not(.status-badge) { background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.18); color: #e2e8f0; padding: 7px 11px; border-radius: 999px; font-weight: 800; }
.detail-card { background: white; color: var(--ink); border-radius: 28px; padding: 26px; box-shadow: var(--shadow); }
.detail-card h2 { margin-bottom: 14px; font-size: 1.25rem; }
.detail-card dl { display: grid; grid-template-columns: 1fr; gap: 8px; }
.detail-card dt { font-weight: 900; color: var(--red-dark); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.detail-card dd { margin-bottom: 8px; color: #334155; }
.guarantees-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.guarantee-item { background: white; border-radius: 999px; padding: 12px 22px; border: 1px solid #e2e8f0; display: flex; align-items: center; gap: 8px; font-weight: 800; }
.guarantee-item span { color: var(--red); font-weight: 900; }

.investors-section { background: #1e293b; border-radius: var(--radius-xl); padding: 48px 40px; color: white; display: grid; grid-template-columns: 1.3fr .7fr; align-items: center; gap: 30px; box-shadow: 0 30px 40px -20px rgba(0,0,0,.3); }
.investors-section.standalone { margin: 0 auto; }
.investors-content h1, .investors-content h2 { font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 900; letter-spacing: -.04em; margin-bottom: 14px; }
.investors-content p { color: #cbd5e1; font-size: 1.08rem; margin-bottom: 24px; }
.investors-stats { display: flex; flex-wrap: wrap; gap: 24px; margin-bottom: 26px; }
.stat-number { color: #fbbf24; font-size: 2rem; font-weight: 900; line-height: 1; }
.stat-label { color: #94a3b8; font-size: .82rem; text-transform: uppercase; letter-spacing: .05em; }
.investors-btn { background: #fbbf24; color: #1e293b; }
.investors-btn:hover { background: #f59e0b; transform: translateY(-2px); }

.footer { background: #0f172a; color: #94a3b8; padding: 48px 0 32px; margin-top: 70px; }
.footer a { color: #94a3b8; transition: .15s; }
.footer a:hover { color: white; }
.footer-container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.footer-grid { display: grid; grid-template-columns: 1.2fr repeat(3, 1fr); gap: 32px; margin-bottom: 36px; }
.footer h4 { color: white; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 10px; }
.footer-logo { color: white; }
.footer-text { margin-top: 10px; font-size: .9rem; line-height: 1.6; }
.footer-bottom { border-top: 1px solid #1e293b; padding-top: 22px; text-align: center; font-size: .78rem; }
.sticky-wa { position: fixed; bottom: 22px; right: 22px; z-index: 199; }
.sticky-wa a { width: 54px; height: 54px; border-radius: 50%; background: linear-gradient(135deg,#2ecc71,var(--wh)); color: white; display: grid; place-items: center; box-shadow: 0 8px 24px rgba(37,211,102,.38); transition: .2s; }
.sticky-wa a:hover { transform: scale(1.07); }
.mobile-cta-bar { display: none; }
.legal-page { min-height: 50vh; }

@media (max-width: 960px) {
    .hero-banner, .slogan-banner, .center-detail-hero, .investors-section { grid-template-columns: 1fr; }
    .cases-grid, .cases-grid.four { grid-template-columns: repeat(2, 1fr); }
    .process-grid { grid-template-columns: repeat(2, 1fr); }
    .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
    .wrap { padding: 0 16px; }
    .site-header { padding: 22px 16px 26px; }
    .logo-text { font-size: 1.8rem; }
    .main-nav { order: 3; width: 100%; justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; }
    .contact-buttons { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
    .btn-contact { padding: 11px 12px; }
    .hero-banner, .slogan-banner, .center-detail-hero, .investors-section, .page-hero.compact, .final-cta { border-radius: 26px; padding: 32px 22px; }
    .hero-actions { display: grid; grid-template-columns: 1fr; }
    .hero-btn, .note-btn { width: 100%; }
    .note-card { align-items: flex-start; flex-direction: column; border-radius: 22px; padding: 22px; }
    .centro-card { border-radius: 24px; padding: 19px; }
    .centro-footer { grid-template-columns: 1fr; }
    .cases-grid, .cases-grid.four, .process-grid { grid-template-columns: 1fr; }
    .footer-grid { grid-template-columns: 1fr; }
    .sticky-wa { display: none; }
    .mobile-cta-bar { position: fixed; bottom: 0; left: 0; right: 0; z-index: 300; display: grid; grid-template-columns: 1fr 1fr; background: white; border-top: 1px solid #e5e7eb; box-shadow: 0 -8px 20px rgba(0,0,0,.08); }
    .mobile-cta-bar a { padding: 14px; text-align: center; font-weight: 900; }
    .mobile-cta-bar a:last-child { background: var(--wh); color: white; }
    body { padding-bottom: 58px; }
}
@media (prefers-reduced-motion: reduce) {
    * { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Mejoras página individual de centro */
.breadcrumbs {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #64748b;
    font-size: .9rem;
    font-weight: 800;
    margin-top: -12px;
    margin-bottom: 18px;
}
.breadcrumbs a:hover { color: var(--red); }
.breadcrumbs strong { color: var(--ink); }
.improved-detail-hero { align-items: stretch; }
.upgraded-detail-card {
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 30px;
    padding: 26px;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
.detail-status-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
}
.detail-status-line strong { color: #fff; font-size: 1.25rem; line-height: 1.1; }
.detail-list {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 10px 14px;
    margin: 0;
}
.detail-list dt {
    color: #94a3b8;
    font-weight: 900;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.detail-list dd { color: #fff; font-weight: 800; margin: 0; }
.detail-list a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.detail-card-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 22px;
}
.detail-card-actions .btn-card { display: inline-flex; justify-content: center; align-items: center; }
.hero-btn.secondary.dark {
    background: white;
    color: var(--red-dark);
    border: 1px solid #fecaca;
    box-shadow: none;
}
.hero-btn.secondary.dark:hover { background: #fff1f2; }
.detail-feature-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 245px), 1fr));
    gap: 16px;
}
.detail-feature-card {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 24px;
    padding: 20px;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    box-shadow: 0 18px 30px -24px rgba(15,23,42,.35);
}
.detail-feature-card:hover {
    border-color: rgba(220,38,38,.28);
    box-shadow: 0 22px 34px -24px rgba(220,38,38,.35);
    transform: translateY(-2px);
}
.detail-feature-icon {
    width: 46px;
    height: 46px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    background: #fee2e2;
    flex: 0 0 auto;
    font-size: 1.5rem;
}
.detail-feature-label {
    color: #64748b;
    font-weight: 900;
    font-size: .75rem;
    letter-spacing: .07em;
    text-transform: uppercase;
    margin-bottom: 4px;
}
.detail-feature-card h3 {
    font-size: 1.25rem;
    color: var(--ink);
    margin-bottom: 4px;
    letter-spacing: -.02em;
}
.detail-feature-card p:last-child { color: #64748b; font-size: .9rem; line-height: 1.55; }
.detail-two-col-section {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 22px;
}
.detail-panel {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 30px;
    padding: 30px;
    box-shadow: var(--shadow);
}
.detail-panel h2 {
    color: var(--ink);
    font-size: clamp(1.45rem, 3vw, 2rem);
    font-weight: 900;
    letter-spacing: -.035em;
    margin-bottom: 10px;
}
.detail-panel p { color: #64748b; margin-bottom: 18px; }
.availability-steps {
    display: grid;
    gap: 10px;
    margin: 20px 0 22px;
}
.availability-steps div {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    padding: 12px 14px;
}
.availability-steps strong {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--red);
    color: white;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}
.availability-steps span { font-weight: 800; color: #334155; }
.map-preview {
    min-height: 210px;
    border-radius: 26px;
    background: radial-gradient(circle at top left, #fee2e2, #f8fafc 45%, #e2e8f0 100%);
    border: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 8px;
    padding: 24px;
    transition: .2s;
}
.map-preview:hover {
    transform: translateY(-2px);
    border-color: rgba(220,38,38,.35);
    box-shadow: 0 18px 30px -24px rgba(220,38,38,.45);
}
.map-preview span { font-size: 3rem; }
.map-preview strong { color: var(--ink); font-size: 1.1rem; }
.map-preview small { color: #64748b; font-weight: 800; }
.size-guide-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
    gap: 16px;
}
.size-guide-card {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 24px;
    padding: 22px;
    box-shadow: 0 18px 30px -24px rgba(15,23,42,.35);
}
.size-guide-card span { font-size: 2rem; display: block; margin-bottom: 10px; }
.size-guide-card h3 { color: var(--red-dark); font-size: 1.35rem; font-weight: 900; margin-bottom: 6px; }
.size-guide-card p { color: #64748b; font-size: .92rem; line-height: 1.6; }
.dual-cta { gap: 12px; flex-wrap: wrap; }
.detail-final-cta { margin-bottom: 54px; }

@media (max-width: 900px) {
    .detail-two-col-section { grid-template-columns: 1fr; }
    .improved-detail-hero { grid-template-columns: 1fr; }
    .upgraded-detail-card { align-self: auto; }
}
@media (max-width: 640px) {
    .breadcrumbs { margin-top: -6px; font-size: .82rem; overflow-x: auto; white-space: nowrap; padding-bottom: 4px; }
    .detail-list { grid-template-columns: 1fr; gap: 3px 0; }
    .detail-list dt { margin-top: 8px; }
    .detail-card-actions { grid-template-columns: 1fr; }
    .detail-panel { padding: 22px; border-radius: 24px; }
    .detail-feature-card { padding: 18px; }
    .hero-actions .hero-btn { width: 100%; }
}


/* =========================================================
   FIX VISUAL CENTRO V3 - evita que la ficha de centro caiga
   en modo lista si el navegador conserva CSS antiguo en cache.
   ========================================================= */
main .wrap.section {
    width: 100%;
}
main .section-head.centered {
    text-align: center;
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
}
main .detail-feature-grid {
    width: 100%;
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)) !important;
    gap: 18px !important;
    align-items: stretch !important;
}
main .detail-feature-card {
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 26px !important;
    padding: 22px !important;
    display: flex !important;
    align-items: flex-start !important;
    gap: 15px !important;
    min-height: 150px !important;
    box-shadow: 0 20px 34px -24px rgba(15,23,42,.42) !important;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}
main .detail-feature-card:hover {
    transform: translateY(-3px) !important;
    border-color: rgba(220,38,38,.34) !important;
    box-shadow: 0 24px 42px -26px rgba(220,38,38,.45) !important;
}
main .detail-feature-icon {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    border-radius: 18px !important;
    display: grid !important;
    place-items: center !important;
    background: linear-gradient(135deg, #fee2e2, #fff7ed) !important;
    color: #b91c1c !important;
    font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif !important;
    font-size: 1.55rem !important;
    line-height: 1 !important;
}
main .detail-feature-label {
    color: #64748b !important;
    font-weight: 900 !important;
    font-size: .72rem !important;
    line-height: 1.1 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    margin: 0 0 6px !important;
}
main .detail-feature-card h3 {
    color: #0f172a !important;
    font-size: clamp(1.15rem, 2vw, 1.35rem) !important;
    line-height: 1.12 !important;
    font-weight: 900 !important;
    letter-spacing: -.025em !important;
    margin: 0 0 7px !important;
}
main .detail-feature-card p:last-child {
    color: #64748b !important;
    font-size: .93rem !important;
    line-height: 1.55 !important;
    margin: 0 !important;
}
main .detail-two-col-section {
    display: grid !important;
    grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr) !important;
    gap: 24px !important;
    align-items: stretch !important;
}
main .detail-panel {
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 30px !important;
    padding: 30px !important;
    box-shadow: 0 20px 34px -24px rgba(15,23,42,.42) !important;
}
main .availability-steps {
    display: grid !important;
    gap: 11px !important;
    margin: 20px 0 24px !important;
}
main .availability-steps div {
    display: flex !important;
    align-items: center !important;
    gap: 13px !important;
    background: #f8fafc !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 18px !important;
    padding: 13px 15px !important;
}
main .availability-steps strong {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    border-radius: 50% !important;
    background: #dc2626 !important;
    color: #fff !important;
    display: grid !important;
    place-items: center !important;
    font-weight: 900 !important;
}
main .size-guide-grid {
    width: 100%;
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)) !important;
    gap: 18px !important;
}
main .size-guide-card {
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 24px !important;
    padding: 22px !important;
    box-shadow: 0 18px 30px -24px rgba(15,23,42,.35) !important;
}
main .size-guide-card span {
    font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif !important;
    font-size: 2rem !important;
    line-height: 1 !important;
    display: block !important;
    margin-bottom: 12px !important;
}
main .center-detail-hero.improved-detail-hero {
    margin-bottom: 46px !important;
}
@media (max-width: 900px) {
    main .detail-feature-grid,
    main .detail-two-col-section,
    main .size-guide-grid {
        grid-template-columns: 1fr !important;
    }
}

/* =========================================================
   BLOG V1
   ========================================================= */
.blog-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
    gap: 26px;
    align-items: stretch;
    background: linear-gradient(135deg, #1e293b, #0f172a);
    color: white;
    border-radius: var(--radius-xl);
    padding: 48px 40px;
    box-shadow: 0 25px 35px -15px rgba(0,0,0,.3);
}
.blog-hero h1 {
    font-size: clamp(2.1rem, 5vw, 3.5rem);
    line-height: 1.02;
    letter-spacing: -.05em;
    font-weight: 900;
    margin-bottom: 16px;
}
.blog-hero p {
    color: #cbd5e1;
    font-size: 1.12rem;
    max-width: 720px;
    margin-bottom: 22px;
}
.blog-hero-card {
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 30px;
    padding: 26px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.blog-hero-card strong {
    color: white;
    font-size: 1.25rem;
    font-weight: 900;
    margin-bottom: 14px;
}
.blog-tags {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.blog-tags span,
.blog-category {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: var(--red-soft);
    color: var(--red-dark);
    border: 1px solid var(--red-mid);
    font-weight: 900;
    font-size: .74rem;
    text-transform: uppercase;
    letter-spacing: .07em;
    padding: 6px 10px;
}
.blog-hero-card .blog-tags span {
    background: rgba(255,255,255,.10);
    color: #f8fafc;
    border-color: rgba(255,255,255,.16);
}
.blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
    gap: 20px;
}
.blog-grid.featured {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
}
.blog-card.upgraded {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 28px;
    padding: 24px;
    box-shadow: 0 18px 30px -24px rgba(15,23,42,.35);
    display: flex;
    flex-direction: column;
    min-height: 100%;
    transition: .2s;
}
.blog-card.upgraded:hover {
    transform: translateY(-3px);
    border-color: rgba(220,38,38,.35);
    box-shadow: 0 24px 42px -26px rgba(220,38,38,.42);
}
.blog-card-top,
.blog-card-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}
.blog-card-top time,
.blog-card-bottom span {
    color: #64748b;
    font-size: .85rem;
    font-weight: 800;
}
.blog-card.upgraded h3 {
    margin: 16px 0 10px;
    font-size: 1.35rem;
    line-height: 1.16;
    letter-spacing: -.03em;
    color: var(--ink);
}
.blog-card.upgraded h3 a:hover { color: var(--red); }
.blog-card.upgraded p {
    color: #64748b;
    line-height: 1.6;
    margin-bottom: 22px;
}
.blog-card-bottom {
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid #eef2f7;
}
.blog-card-bottom a {
    color: var(--red-dark);
    font-weight: 900;
}
.blog-publish-box {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: center;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-left: 8px solid #f59e0b;
    border-radius: 28px;
    padding: 28px;
    box-shadow: var(--shadow);
    margin-top: 46px;
}
.blog-publish-box h2 {
    color: #7c2d12;
    font-weight: 900;
    letter-spacing: -.03em;
    font-size: clamp(1.4rem, 3vw, 2rem);
    margin-bottom: 8px;
}
.blog-publish-box p { color: #9a3412; line-height: 1.65; }
.blog-publish-box code {
    background: rgba(255,255,255,.7);
    border: 1px solid #fed7aa;
    border-radius: 8px;
    padding: 2px 6px;
    font-weight: 800;
}
.blog-breadcrumbs { margin-top: 0; }
.blog-post-layout { max-width: 1180px; }
.blog-post-header {
    max-width: 860px;
    margin: 0 auto 28px;
    text-align: center;
}
.blog-post-header h1 {
    margin: 14px 0 14px;
    font-size: clamp(2.1rem, 5vw, 4rem);
    line-height: 1.02;
    letter-spacing: -.055em;
    color: var(--ink);
    font-weight: 900;
}
.blog-post-header p {
    color: #64748b;
    font-size: 1.15rem;
    line-height: 1.65;
    margin-bottom: 14px;
}
.blog-post-meta {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    color: #64748b;
    font-weight: 800;
    font-size: .92rem;
}
.blog-post-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 28px;
    align-items: start;
}
.blog-post-content {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 30px;
    padding: clamp(24px, 4vw, 44px);
    box-shadow: var(--shadow);
}
.blog-post-content p,
.blog-post-content li {
    color: #334155;
    font-size: 1.05rem;
    line-height: 1.85;
}
.blog-post-content p + p { margin-top: 16px; }
.blog-post-content h2 {
    color: var(--ink);
    font-size: clamp(1.35rem, 3vw, 2rem);
    line-height: 1.14;
    letter-spacing: -.035em;
    font-weight: 900;
    margin: 30px 0 12px;
}
.blog-post-content h3 {
    color: var(--ink);
    font-size: 1.25rem;
    font-weight: 900;
    margin: 24px 0 10px;
}
.blog-post-content ul,
.blog-post-content ol { padding-left: 22px; margin: 14px 0; }
.blog-post-content strong { color: var(--ink); }
.blog-sidebar {
    display: grid;
    gap: 16px;
    position: sticky;
    top: 18px;
}
.blog-side-card {
    background: linear-gradient(135deg, #1e293b, #0f172a);
    color: white;
    border-radius: 28px;
    padding: 24px;
    box-shadow: var(--shadow);
}
.blog-side-card.light {
    background: white;
    color: var(--ink);
    border: 1px solid #e5e7eb;
}
.blog-side-card h2 {
    font-size: 1.35rem;
    font-weight: 900;
    letter-spacing: -.03em;
    margin-bottom: 8px;
}
.blog-side-card p {
    color: #cbd5e1;
    line-height: 1.6;
    margin-bottom: 18px;
}
.blog-side-card.light p { color: #64748b; }
.blog-side-card ul { list-style: none; display: grid; gap: 10px; }
.blog-side-card li a {
    display: block;
    padding: 10px 12px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    font-weight: 900;
    color: #334155;
}
.blog-side-card li a:hover { color: var(--red); border-color: #fecaca; }

@media (max-width: 960px) {
    .blog-hero,
    .blog-post-shell,
    .blog-publish-box {
        grid-template-columns: 1fr;
    }
    .blog-sidebar { position: static; }
}
@media (max-width: 640px) {
    .blog-hero { border-radius: 26px; padding: 32px 22px; }
    .blog-post-header { text-align: left; }
    .blog-post-meta { justify-content: flex-start; }
    .blog-post-content { border-radius: 24px; }
    .blog-card-top,
    .blog-card-bottom { align-items: flex-start; flex-direction: column; }
}

/* Growth v1: blog categories, city SEO pages, calculator, leads and admin */
.blog-tags a {
    display: inline-flex;
    align-items: center;
    padding: 8px 12px;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    font-weight: 800;
    font-size: .85rem;
    color: #334155;
}
.blog-tags a.active,
.blog-tags a:hover {
    background: #fee2e2;
    color: #b91c1c;
    border-color: #fecaca;
}
.compact-category-hero {
    align-items: center;
}
.city-hero,
.calculator-hero {
    text-align: center;
    max-width: 980px;
}
.subsection-title {
    font-size: 1.25rem;
    font-weight: 900;
    margin: 26px 0 14px;
    letter-spacing: -.02em;
}
.seo-copy-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}
.calculator-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
    gap: 24px;
    align-items: start;
}
.calculator-card,
.calculator-result,
.lead-form,
.admin-card,
.admin-login-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 28px;
    padding: 26px;
    box-shadow: 0 18px 38px rgba(15,23,42,.08);
}
.calculator-card h2,
.calculator-result h2,
.lead-form h2 {
    font-size: 1.55rem;
    margin-bottom: 8px;
    letter-spacing: -.03em;
}
.calc-options {
    display: grid;
    gap: 10px;
    margin-top: 18px;
}
.calc-options label,
.lead-form label {
    display: grid;
    gap: 7px;
    font-weight: 800;
    color: #0f172a;
}
.calc-options label {
    grid-template-columns: auto 1fr;
    align-items: center;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 12px 14px;
    cursor: pointer;
}
.calc-options input {
    width: 18px;
    height: 18px;
    accent-color: #dc2626;
}
.calc-extra {
    margin-top: 20px;
}
.calc-extra input,
.lead-form input,
.lead-form select,
.lead-form textarea,
.admin-login-card input {
    width: 100%;
    border: 1.5px solid #d1d5db;
    border-radius: 14px;
    padding: 13px 14px;
    font: inherit;
    background: #fff;
}
.calc-extra input:focus,
.lead-form input:focus,
.lead-form select:focus,
.lead-form textarea:focus,
.admin-login-card input:focus {
    outline: 3px solid rgba(220,38,38,.18);
    border-color: #dc2626;
}
.calculator-result {
    position: sticky;
    top: 20px;
    background: linear-gradient(135deg, #1e293b, #0f172a);
    color: white;
}
.calculator-result p,
.calculator-result small {
    color: #cbd5e1;
}
.hero-btn.disabled {
    opacity: .55;
    pointer-events: none;
}
.lead-form-section {
    max-width: 920px;
}
.lead-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.lead-form label:nth-child(6),
.lead-form .checkbox-line,
.lead-form button,
.compact-lead-form label:nth-child(5) {
    grid-column: 1 / -1;
}
.checkbox-line {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: flex-start;
    gap: 10px !important;
    font-weight: 600 !important;
    color: #475569 !important;
    font-size: .9rem;
}
.checkbox-line input {
    width: auto !important;
    margin-top: 4px;
}
.hp-field {
    position: absolute !important;
    left: -9999px !important;
    opacity: 0 !important;
}
.admin-login-screen {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 24px;
    background: radial-gradient(circle at top left, #fee2e2 0, #f8fafc 42%, #e2e8f0 100%);
}
.admin-login-card {
    width: min(100%, 430px);
    display: grid;
    gap: 16px;
}
.admin-login-card h1 {
    font-size: 2rem;
    font-weight: 900;
    letter-spacing: -.04em;
}
.admin-error,
.admin-warning {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
    padding: 12px 14px;
    border-radius: 16px;
    font-weight: 700;
}
.admin-dashboard {
    max-width: 1180px;
    margin: 0 auto;
    padding: 34px 20px 70px;
}
.admin-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
}
.admin-topbar h1 {
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 900;
    letter-spacing: -.05em;
}
.admin-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin: 22px 0;
}
.admin-kpi-grid article {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 22px;
    padding: 20px;
    box-shadow: 0 10px 26px rgba(15,23,42,.07);
}
.admin-kpi-grid span {
    display: block;
    color: #64748b;
    font-weight: 800;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.admin-kpi-grid strong {
    display: block;
    font-size: 2.25rem;
    color: #dc2626;
    font-weight: 900;
    line-height: 1;
    margin: 10px 0 6px;
}
.admin-kpi-grid small {
    color: #64748b;
}
.admin-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin: 18px 0;
}
.admin-card h2 {
    font-size: 1.3rem;
    margin-bottom: 14px;
}
.admin-card table {
    width: 100%;
    border-collapse: collapse;
}
.admin-card th,
.admin-card td {
    padding: 10px 8px;
    border-bottom: 1px solid #eef2f7;
    text-align: left;
    vertical-align: top;
}
.admin-card th {
    color: #64748b;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.admin-bars {
    display: grid;
    gap: 10px;
}
.admin-bars div {
    display: grid;
    grid-template-columns: 90px 1fr 40px;
    align-items: center;
    gap: 10px;
}
.admin-bars span {
    font-size: .8rem;
    color: #64748b;
}
.admin-bars strong {
    display: block;
    height: 12px;
    border-radius: 999px;
    background: linear-gradient(90deg, #dc2626, #fb7185);
}
.admin-bars em {
    font-style: normal;
    font-weight: 800;
    text-align: right;
}
.wide-table {
    font-size: .9rem;
}
@media (max-width: 900px) {
    .calculator-layout,
    .seo-copy-grid,
    .admin-grid-2,
    .lead-form {
        grid-template-columns: 1fr;
    }
    .calculator-result {
        position: static;
    }
    .admin-kpi-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 560px) {
    .admin-kpi-grid {
        grid-template-columns: 1fr;
    }
    .admin-topbar {
        align-items: flex-start;
        flex-direction: column;
    }
    .admin-card {
        overflow-x: auto;
    }
}

/* Admin editor v1 */
.admin-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
}
.admin-actions .hero-btn {
    padding: 10px 18px;
    font-size: .9rem;
}
.admin-success {
    background: #dcfce7;
    color: #166534;
    border: 1px solid #86efac;
    border-radius: 18px;
    padding: 14px 18px;
    font-weight: 800;
    margin-bottom: 18px;
}
.admin-warning,
.admin-error {
    background: #fef2f2;
    color: #991b1b;
    border: 1px solid #fecaca;
    border-radius: 18px;
    padding: 14px 18px;
    font-weight: 800;
    margin-bottom: 18px;
}
.admin-editor {
    max-width: 1180px;
}
.admin-edit-table small,
.admin-form small {
    color: #64748b;
    font-size: .78rem;
}
.admin-mini-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border-radius: 999px;
    background: #fee2e2;
    color: #b91c1c;
    font-weight: 900;
    font-size: .82rem;
    border: 1px solid #fecaca;
}
.admin-mini-btn:hover {
    background: #dc2626;
    color: #fff;
}
.admin-pill {
    display: inline-flex;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 900;
}
.admin-pill.ok {
    background: #dcfce7;
    color: #166534;
}
.admin-pill.muted {
    background: #f1f5f9;
    color: #475569;
}
.admin-form {
    display: grid;
    gap: 18px;
}
.admin-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.admin-form-grid.compact {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}
.admin-form label {
    display: grid;
    gap: 6px;
    font-weight: 800;
    color: #0f172a;
}
.admin-form input,
.admin-form select,
.admin-form textarea {
    width: 100%;
    border: 1.5px solid #e2e8f0;
    border-radius: 14px;
    padding: 12px 14px;
    font: inherit;
    color: #0f172a;
    background: #fff;
    outline: none;
}
.admin-form input:focus,
.admin-form select:focus,
.admin-form textarea:focus {
    border-color: #dc2626;
    box-shadow: 0 0 0 4px rgba(220,38,38,.10);
}
.admin-form input[readonly] {
    background: #f8fafc;
    color: #64748b;
}
.admin-check-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    padding: 14px;
    border: 1.5px solid #e2e8f0;
    border-radius: 16px;
}
.admin-check-row label {
    display: inline-flex;
    align-items: center;
    grid-template-columns: auto 1fr;
    gap: 8px;
}
.admin-check-row input {
    width: auto;
}
.code-editor {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace !important;
    line-height: 1.6;
}
.admin-submit-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    padding-top: 8px;
}
.admin-help-card {
    background: #f8fafc;
}
.status-badge {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: .76rem;
    font-weight: 900;
}
.status-badge.open {
    background: #dcfce7;
    color: #166534;
}
.status-badge.upcoming {
    background: #fef9c3;
    color: #854d0e;
}
@media (max-width: 960px) {
    .admin-form-grid,
    .admin-form-grid.compact {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 560px) {
    .admin-actions {
        width: 100%;
        justify-content: stretch;
    }
    .admin-actions .hero-btn {
        flex: 1;
        justify-content: center;
    }
    .admin-submit-row .hero-btn {
        width: 100%;
        justify-content: center;
    }
}

/* Admin Pro v2: navegación, CRM, SEO, seguridad y mejoras visuales */
body:has(.admin-dashboard), body:has(.admin-login-screen) {
    background: radial-gradient(circle at top left, #fff1f2 0, #f8fafc 38%, #eef2f7 100%);
}
.admin-dashboard { max-width: 1240px; }
.admin-topbar {
    padding: 6px 0 4px;
    position: relative;
}
.admin-topbar p { max-width: 760px; color: #475569; }
.admin-actions .hero-btn.secondary,
.admin-submit-row .hero-btn.secondary {
    background: #fff !important;
    color: #b91c1c !important;
    border: 1px solid #fecaca !important;
    box-shadow: 0 10px 20px rgba(15,23,42,.05) !important;
}
.admin-actions .hero-btn.secondary:hover,
.admin-submit-row .hero-btn.secondary:hover {
    background: #fee2e2 !important;
    color: #991b1b !important;
}
.admin-actions .hero-btn.secondary.dark {
    color: #0f172a !important;
    border-color: #cbd5e1 !important;
}
.admin-nav {
    position: sticky;
    top: 0;
    z-index: 50;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin: 0 0 26px;
    padding: 10px;
    background: rgba(255,255,255,.88);
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    backdrop-filter: blur(10px);
    box-shadow: 0 18px 38px rgba(15,23,42,.06);
}
.admin-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 9px 14px;
    border-radius: 999px;
    font-weight: 900;
    color: #475569;
    font-size: .9rem;
}
.admin-nav a:hover { background: #f1f5f9; color: #0f172a; }
.admin-nav a.active { background: #dc2626; color: #fff; }
.admin-nav a.logout { margin-left: auto; border: 1px solid #fecaca; color: #b91c1c; background: #fff; }
.admin-nav a.logout:hover { background: #fee2e2; }
.admin-kpi-grid article {
    position: relative;
    overflow: hidden;
}
.admin-kpi-grid article::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 4px;
    background: linear-gradient(90deg, #dc2626, #fb7185);
    opacity: .8;
}
.admin-filter-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin: 14px 0 18px;
}
.admin-filter-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.admin-filter-pills a,
.admin-tool-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #e2e8f0;
    color: #334155;
    font-weight: 900;
    font-size: .86rem;
}
.admin-filter-pills a.active,
.admin-filter-pills a:hover,
.admin-tool-link:hover { background: #fee2e2; border-color: #fecaca; color: #991b1b; }
.admin-metric-note { color: #64748b; font-size: .9rem; }
.admin-funnel {
    display: grid;
    gap: 12px;
}
.admin-funnel-row {
    display: grid;
    grid-template-columns: 160px 1fr 80px;
    gap: 12px;
    align-items: center;
}
.admin-funnel-row span { font-weight: 900; color: #334155; }
.admin-funnel-row strong {
    display: block;
    height: 14px;
    border-radius: 999px;
    background: linear-gradient(90deg, #dc2626, #fb7185);
    min-width: 8px;
}
.admin-funnel-row em { font-style: normal; font-weight: 900; text-align: right; }
.admin-crm-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin: 0 0 16px;
}
.admin-search-form {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.admin-search-form input,
.admin-search-form select {
    border: 1.5px solid #dbe3ef;
    border-radius: 999px;
    padding: 10px 14px;
    font: inherit;
    min-width: 170px;
    background: #fff;
}
.admin-search-form button {
    border: 0;
    border-radius: 999px;
    background: #dc2626;
    color: #fff;
    font-weight: 900;
    padding: 10px 16px;
    cursor: pointer;
}
.lead-status {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    font-weight: 900;
    font-size: .76rem;
}
.lead-status.nuevo { background: #fee2e2; color: #991b1b; }
.lead-status.contactado { background: #dbeafe; color: #1e40af; }
.lead-status.visita { background: #fef9c3; color: #854d0e; }
.lead-status.ganado { background: #dcfce7; color: #166534; }
.lead-status.perdido { background: #f1f5f9; color: #475569; }
.admin-form .full { grid-column: 1 / -1; }
.admin-note-box {
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    border-radius: 18px;
    padding: 14px 16px;
    color: #475569;
}
.admin-check-list {
    display: grid;
    gap: 10px;
}
.admin-check-item {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    padding: 13px 14px;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #fff;
}
.admin-check-item div strong { display: block; color: #0f172a; }
.admin-check-item div small { color: #64748b; }
.admin-check-ok { color: #166534; background: #dcfce7; border: 1px solid #86efac; border-radius: 999px; padding: 5px 10px; font-weight: 900; }
.admin-check-warn { color: #991b1b; background: #fee2e2; border: 1px solid #fecaca; border-radius: 999px; padding: 5px 10px; font-weight: 900; }
.admin-seo-score {
    display: inline-flex;
    min-width: 42px;
    justify-content: center;
    padding: 6px 10px;
    border-radius: 999px;
    font-weight: 900;
}
.admin-seo-score.good { background: #dcfce7; color: #166534; }
.admin-seo-score.mid { background: #fef9c3; color: #854d0e; }
.admin-seo-score.bad { background: #fee2e2; color: #991b1b; }
.backup-list { display: grid; gap: 10px; }
.backup-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 13px 14px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid #e2e8f0;
}
.backup-item strong { color: #0f172a; }
.backup-item small { color: #64748b; display: block; }
@media (max-width: 760px) {
    .admin-nav { border-radius: 22px; position: static; }
    .admin-nav a.logout { margin-left: 0; }
    .admin-funnel-row { grid-template-columns: 1fr; gap: 6px; }
    .admin-funnel-row em { text-align: left; }
    .admin-check-item, .backup-item { align-items: flex-start; flex-direction: column; }
}


/* Admin app URL checker */
.compact-form { display: grid; gap: 16px; max-width: 780px; }
.app-check-selected { display: grid; gap: 6px; background: #f8fafc; border: 1px solid #e5e7eb; border-radius: 16px; padding: 14px; }
.app-check-selected code { white-space: normal; overflow-wrap: anywhere; color: #334155; }
.warning-card { border-color: rgba(245, 158, 11, .45) !important; background: #fffbeb !important; }
.warning-card ul { margin: 10px 0 0 20px; color: #92400e; }
.app-check-kpis article strong { font-size: clamp(1.25rem, 2.6vw, 1.9rem); }
.text-sample-box { background: #0f172a; color: #e5e7eb; border-radius: 16px; padding: 16px; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: .86rem; line-height: 1.7; overflow-wrap: anywhere; }

/* Chatbot comercial NoMásCaos */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}
.nmc-chatbot {
    position: fixed;
    left: 20px;
    bottom: 22px;
    z-index: 420;
    font-family: inherit;
}
.nmc-chatbot-toggle {
    border: 0;
    border-radius: 999px;
    padding: 12px 18px;
    background: #111827;
    color: #fff;
    box-shadow: 0 18px 40px rgba(15,23,42,.25);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 900;
    cursor: pointer;
}
.nmc-chatbot-toggle:hover { transform: translateY(-2px); }
.nmc-chatbot-panel {
    position: absolute;
    left: 0;
    bottom: 62px;
    width: min(380px, calc(100vw - 32px));
    max-height: min(680px, calc(100vh - 110px));
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 28px;
    box-shadow: 0 28px 70px rgba(15,23,42,.22);
    overflow: hidden;
    display: none;
}
.nmc-chatbot[data-open="true"] .nmc-chatbot-panel { display: flex; flex-direction: column; }
.nmc-chatbot-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
    background: linear-gradient(135deg, #dc2626, #991b1b);
    color: #fff;
}
.nmc-chatbot-header strong { display: block; font-size: 1rem; }
.nmc-chatbot-header span { display: block; font-size: .78rem; opacity: .9; margin-top: 2px; }
.nmc-chatbot-close {
    border: 1px solid rgba(255,255,255,.35);
    background: rgba(255,255,255,.12);
    color: #fff;
    border-radius: 999px;
    width: 34px;
    height: 34px;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
}
.nmc-chatbot-messages {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    overflow-y: auto;
    min-height: 220px;
    max-height: 360px;
    background: #f8fafc;
}
.nmc-chatbot-msg { display: flex; }
.nmc-chatbot-msg.user { justify-content: flex-end; }
.nmc-chatbot-bubble {
    max-width: 86%;
    border-radius: 18px;
    padding: 11px 13px;
    font-size: .93rem;
    line-height: 1.45;
    white-space: pre-line;
}
.nmc-chatbot-msg.bot .nmc-chatbot-bubble {
    background: #fff;
    border: 1px solid #e5e7eb;
    color: #111827;
}
.nmc-chatbot-msg.user .nmc-chatbot-bubble {
    background: #dc2626;
    color: #fff;
    border-bottom-right-radius: 6px;
}
.nmc-chatbot-typing .nmc-chatbot-bubble { color: #64748b; font-style: italic; }
.nmc-chatbot-quick {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 12px 14px;
    border-top: 1px solid #e5e7eb;
    background: #fff;
}
.nmc-chatbot-chip {
    display: inline-flex;
    border: 1px solid #e5e7eb;
    background: #fff;
    color: #111827;
    border-radius: 999px;
    padding: 8px 10px;
    font-weight: 800;
    font-size: .78rem;
    cursor: pointer;
}
.nmc-chatbot-chip.primary { background: #dc2626; border-color: #dc2626; color: #fff; }
.nmc-chatbot-chip.whatsapp { background: #25D366; border-color: #25D366; color: #fff; }
.nmc-chatbot-form {
    display: flex;
    gap: 8px;
    padding: 12px;
    border-top: 1px solid #e5e7eb;
    background: #fff;
}
.nmc-chatbot-form input {
    flex: 1;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    padding: 12px 14px;
    font: inherit;
    outline: none;
}
.nmc-chatbot-form input:focus { border-color: #dc2626; box-shadow: 0 0 0 3px rgba(220,38,38,.12); }
.nmc-chatbot-form button {
    border: 0;
    border-radius: 999px;
    background: #111827;
    color: #fff;
    padding: 0 14px;
    font-weight: 900;
    cursor: pointer;
}
.nmc-chatbot-note {
    margin: 0;
    padding: 0 14px 14px;
    font-size: .72rem;
    color: #64748b;
    background: #fff;
}
.admin-chat-message {
    display: grid;
    gap: 8px;
    padding: 14px 0;
    border-bottom: 1px solid #e5e7eb;
}
.admin-chat-message:last-child { border-bottom: 0; }
.admin-chat-message strong { color: #0f172a; }
.admin-chat-message small { color: #64748b; }
.admin-chat-message code { white-space: normal; overflow-wrap: anywhere; background: #f8fafc; padding: 8px; border-radius: 12px; }
@media (max-width: 640px) {
    .nmc-chatbot { left: 12px; bottom: 70px; }
    .nmc-chatbot-panel { width: calc(100vw - 24px); bottom: 58px; border-radius: 24px; }
    .nmc-chatbot-messages { max-height: 330px; }
    .nmc-chatbot-toggle strong { display: none; }
}

/* Chatbot humano v2 */
.nmc-chatbot-toggle {
    background: linear-gradient(135deg, #111827, #0f172a);
}
.nmc-chatbot-toggle span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 999px;
    background: rgba(255,255,255,.12);
}
.nmc-chatbot-bubble {
    overflow-wrap: anywhere;
}
.nmc-chatbot-msg.bot .nmc-chatbot-bubble {
    box-shadow: 0 8px 18px rgba(15,23,42,.04);
}
.nmc-chatbot-dots {
    color: #dc2626;
    letter-spacing: 2px;
    animation: nmcChatPulse 1.1s infinite ease-in-out;
}
@keyframes nmcChatPulse {
    0%, 100% { opacity: .35; }
    50% { opacity: 1; }
}
.nmc-chatbot-chip:hover {
    transform: translateY(-1px);
    border-color: rgba(220,38,38,.35);
    box-shadow: 0 8px 16px rgba(15,23,42,.08);
}
.nmc-chatbot-note {
    border-top: 1px solid #f1f5f9;
    padding-top: 10px;
}

/* Web pulido v6 */
.commercial-page-hero { background: linear-gradient(135deg,#fff 0%,#fff5f5 55%,#f8fafc 100%); border: 1px solid #fee2e2; }
.centered-note { text-align:center; color: var(--muted); margin-top: 18px; }
.price-table-grid { display:grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:18px; }
.price-center-card { background:#fff; border:1px solid #e5e7eb; border-radius:24px; padding:22px; box-shadow:0 14px 30px rgba(15,23,42,.06); display:flex; flex-direction:column; gap:16px; }
.price-center-card h3 { margin:10px 0 4px; font-size:1.25rem; }
.price-center-card p { color:#64748b; font-size:.92rem; }
.price-center-card dl { display:grid; grid-template-columns: 1fr 1fr; gap:8px 12px; padding:14px; border-radius:18px; background:#f8fafc; }
.price-center-card dt { color:#64748b; font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.price-center-card dd { font-weight:800; }
.trust-explain-grid { display:grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,250px),1fr)); gap:18px; }
.trust-explain-grid article { background:#fff; border:1px solid #e5e7eb; border-radius:24px; padding:24px; box-shadow:0 12px 28px rgba(15,23,42,.06); }
.trust-explain-grid article span { font-size:2rem; display:block; margin-bottom:10px; }
.trust-explain-grid article h3 { font-size:1.1rem; margin-bottom:8px; }
.trust-explain-grid article p { color:#64748b; line-height:1.65; }
.trust-explain-grid.large { grid-template-columns: repeat(auto-fit,minmax(min(100%,300px),1fr)); }
.expanded-faq { max-width: 920px; }
.center-gallery-grid { display:grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:14px; }
.center-gallery-item { display:block; overflow:hidden; border-radius:22px; border:1px solid #e5e7eb; background:#f8fafc; aspect-ratio:4/3; box-shadow:0 12px 24px rgba(15,23,42,.07); }
.center-gallery-item img { width:100%; height:100%; object-fit:cover; display:block; transition:.2s; }
.center-gallery-item:hover img { transform:scale(1.04); }
.empty-gallery-card { border:1.5px dashed #fecaca; background:#fff7f7; border-radius:24px; padding:32px; text-align:center; color:#7f1d1d; max-width:700px; margin:0 auto; }
.empty-gallery-card span { font-size:2.5rem; display:block; margin-bottom:8px; }
.real-reviews-grid .testimonial-card { min-height: 220px; }
.admin-quicklinks { display:flex; flex-wrap:wrap; gap:10px; margin:18px 0 26px; }
.admin-quicklinks a { background:#fff; color:#0f172a; border:1px solid #e5e7eb; border-radius:999px; padding:10px 14px; font-weight:800; box-shadow:0 8px 20px rgba(15,23,42,.06); }
.admin-inline-form { display:flex; gap:12px; align-items:end; flex-wrap:wrap; margin-bottom:18px; }
.admin-inline-form label { display:flex; flex-direction:column; gap:6px; font-weight:800; color:#334155; }
.admin-inline-form select, .admin-form select { border:1px solid #cbd5e1; border-radius:14px; padding:12px; font:inherit; background:#fff; }
.media-upload-form { margin-top:12px; }
.admin-media-grid { grid-template-columns: repeat(auto-fit,minmax(140px,1fr)); }
.legal-small { font-size:.82rem; color:#64748b; }
@media (max-width: 760px) { .main-nav { overflow:auto; padding-bottom:6px; justify-content:flex-start; } .price-center-card dl { grid-template-columns:1fr; } }


/* Admin media manager v7 */
.media-manager-card .media-manager-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}
.media-upload-form {
    display: grid;
    grid-template-columns: minmax(220px, 1.2fr) minmax(180px, .7fr) minmax(260px, 1fr) auto;
    gap: 14px;
    align-items: end;
}
.media-upload-form input[type="file"] {
    padding: 12px;
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    border-radius: 16px;
}
.admin-gallery-list {
    display: grid;
    gap: 16px;
}
.admin-gallery-item {
    display: grid;
    grid-template-columns: 190px 1fr auto;
    gap: 18px;
    align-items: start;
    padding: 14px;
    border: 1px solid #e5e7eb;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15,23,42,.05);
}
.admin-gallery-item.is-muted {
    opacity: .65;
    background: #f8fafc;
}
.admin-gallery-thumb {
    position: relative;
    overflow: hidden;
    border-radius: 18px;
    background: #f1f5f9;
    aspect-ratio: 4 / 3;
}
.admin-gallery-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.media-pill {
    position: absolute;
    left: 10px;
    top: 10px;
    display: inline-flex;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 900;
    color: white;
    background: #0f172a;
    box-shadow: 0 6px 16px rgba(0,0,0,.18);
}
.media-pill.cover {
    background: #dc2626;
}
.media-pill.muted {
    top: auto;
    bottom: 10px;
    background: #64748b;
}
.admin-gallery-fields {
    display: grid;
    gap: 10px;
}
.admin-gallery-fields strong {
    font-size: .85rem;
    color: #334155;
    word-break: break-all;
}
.admin-gallery-row {
    display: grid;
    grid-template-columns: minmax(160px, 1fr) 100px;
    gap: 12px;
}
.admin-gallery-checks {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
    padding-top: 4px;
}
.admin-gallery-checks label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 800;
    color: #334155;
}
.admin-gallery-actions {
    display: flex;
    justify-content: flex-end;
}
.admin-sticky-actions {
    position: sticky;
    bottom: 12px;
    z-index: 5;
    margin-top: 20px;
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    padding: 14px;
    border: 1px solid #e5e7eb;
    border-radius: 22px;
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(8px);
    box-shadow: 0 18px 40px rgba(15,23,42,.12);
}
.admin-sticky-actions span {
    color: #64748b;
    font-weight: 700;
    font-size: .9rem;
}
.admin-danger-zone {
    margin-top: 28px;
    padding: 18px;
    border: 1px dashed #fecaca;
    border-radius: 22px;
    background: #fff7f7;
}
.admin-danger-zone h3 {
    color: #991b1b;
    margin: 0 0 6px;
}
.admin-trash-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}
.btn-card.danger {
    border-color: #fecaca;
    color: #991b1b;
    background: #fff;
    cursor: pointer;
}
.btn-card.danger:hover {
    background: #fee2e2;
}

@media (max-width: 900px) {
    .media-upload-form {
        grid-template-columns: 1fr;
    }
    .admin-gallery-item {
        grid-template-columns: 1fr;
    }
    .admin-gallery-thumb {
        max-width: 360px;
        width: 100%;
    }
    .admin-gallery-actions {
        justify-content: flex-start;
    }
}
@media (max-width: 560px) {
    .admin-gallery-row {
        grid-template-columns: 1fr;
    }
    .admin-sticky-actions {
        bottom: 68px;
    }
}

/* V8: fotos externas de Google en galerías */
.admin-gallery-thumb .media-pill:nth-of-type(2) { top: 42px; }
.admin-gallery-thumb .media-pill:nth-of-type(3) { top: 74px; }
.media-url-small {
    display: block;
    max-width: 100%;
    color: #64748b;
    font-size: .78rem;
    word-break: break-all;
    line-height: 1.35;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 7px 9px;
}
.media-upload-form input[type="url"] {
    min-width: 280px;
}

/* V9: mapas mejorados */
.improved-map-panel {
    overflow: hidden;
}
.map-embed-card,
.admin-map-preview {
    position: relative;
    width: 100%;
    min-height: 280px;
    border-radius: 24px;
    overflow: hidden;
    border: 1px solid #e5e7eb;
    background: #f8fafc;
    box-shadow: 0 14px 34px rgba(15,23,42,.08);
    margin: 16px 0;
}
.map-embed-card iframe,
.admin-map-preview iframe {
    width: 100%;
    height: 100%;
    min-height: 280px;
    border: 0;
    display: block;
}
.map-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}
.map-actions .btn-card {
    cursor: pointer;
    border: 1px solid #d1d5db;
}
.copy-address {
    font-family: inherit;
    font-size: .85rem;
}
.map-warning {
    margin-top: 12px;
    color: #92400e;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 16px;
    padding: 10px 12px;
    font-weight: 700;
    font-size: .9rem;
}
.inline-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}
.inline-form {
    display: inline;
}
.table-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}
.admin-help-list {
    margin-top: 14px;
    display: grid;
    gap: 8px;
    color: #475569;
}
.admin-help-list p {
    margin: 0;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    padding: 10px 12px;
}
@media (max-width: 700px) {
    .map-actions {
        display: grid;
        grid-template-columns: 1fr;
    }
    .map-embed-card,
    .admin-map-preview {
        min-height: 230px;
        border-radius: 18px;
    }
    .map-embed-card iframe,
    .admin-map-preview iframe {
        min-height: 230px;
    }
}

/* v10 marketing / CRM extras */
.promo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
    gap: 20px;
    margin-top: 22px;
}
.promo-card {
    background: #fff;
    border: 1px solid #fee2e2;
    border-radius: 28px;
    padding: 24px;
    box-shadow: 0 18px 35px rgba(15,23,42,.08);
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.promo-card h2 { margin: 0; font-size: 1.35rem; letter-spacing: -.02em; }
.promo-card strong { color: #dc2626; font-size: 1.1rem; }
.promo-card small { color: #64748b; line-height: 1.5; }
.promo-code {
    display: inline-flex;
    width: fit-content;
    background: #fef2f2;
    color: #b91c1c;
    border: 1px dashed #ef4444;
    border-radius: 999px;
    padding: 6px 12px;
    font-weight: 900;
    letter-spacing: .08em;
    font-size: .78rem;
}
.admin-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}
@media (max-width: 760px) { .admin-grid-3 { grid-template-columns: 1fr; } }
.copy-input {
    width: min(100%, 420px);
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 8px 10px;
    font-size: .82rem;
    background: #f8fafc;
}
.row-warning td { background: #fffbeb; }
.admin-card code { white-space: normal; word-break: break-word; }

/* v11 inventory, quality and QR */
.inline-form { display:inline-flex; margin:0 4px 4px 0; }
.row-warning { background:#fffbeb; }
.inventory-warning-detail td { background:#fff7ed; color:#9a3412; font-size:.9rem; }
.inventory-table small, .muted-small { color:#64748b; font-size:.82rem; }
.warning-text { color:#b45309; font-weight:700; }
.inventory-public-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:22px; margin:34px 0 50px; }
.inventory-public-card { background:#fff; border:1px solid #e5e7eb; border-radius:28px; padding:22px; box-shadow:0 18px 40px rgba(15,23,42,.07); }
.inventory-public-head { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin-bottom:18px; }
.inventory-public-head h2 { margin:.35rem 0 .15rem; font-size:1.35rem; }
.inventory-public-head p { color:#64748b; margin:0; }
.inventory-public-head > strong { min-width:74px; height:74px; border-radius:22px; display:flex; align-items:center; justify-content:center; background:#fee2e2; color:#dc2626; font-size:2rem; font-weight:900; }
.inventory-public-kpis { display:grid; grid-template-columns:1fr; gap:10px; margin:14px 0; }
.inventory-public-kpis span { background:#f8fafc; border:1px solid #e2e8f0; border-radius:16px; padding:10px 12px; color:#0f172a; }
.inventory-public-kpis b { display:block; color:#64748b; font-size:.75rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom:2px; }
.size-pills { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 6px; }
.size-pills a { background:#dc2626; color:#fff; border-radius:999px; padding:8px 12px; font-size:.86rem; font-weight:800; box-shadow:0 8px 18px rgba(220,38,38,.16); }
.status-badge { display:inline-flex; padding:5px 10px; border-radius:999px; font-size:.75rem; font-weight:900; }
.status-badge.open { background:#dcfce7; color:#166534; }
.status-badge.upcoming { background:#fef9c3; color:#854d0e; }
.admin-quality-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr)); gap:18px; }
.quality-card.good { border-color:#bbf7d0; }
.quality-card.medium { border-color:#fde68a; }
.quality-card.bad { border-color:#fecaca; }
.quality-head { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; }
.quality-head h2 { margin:0 0 4px; }
.quality-head p { margin:0; color:#64748b; }
.quality-head strong { font-size:2rem; color:#dc2626; }
.quality-bar { height:9px; background:#f1f5f9; border-radius:999px; margin:14px 0 16px; overflow:hidden; }
.quality-bar span { display:block; height:100%; background:linear-gradient(90deg,#ef4444,#22c55e); border-radius:999px; }
.quality-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.quality-list li { display:flex; gap:10px; align-items:flex-start; padding:9px 10px; border-radius:14px; background:#f8fafc; border:1px solid #e2e8f0; }
.quality-list li.ok { background:#f0fdf4; border-color:#dcfce7; }
.quality-list li.ko { background:#fff7ed; border-color:#fed7aa; }
.quality-list strong { display:block; font-size:.92rem; }
.quality-list small { display:block; color:#64748b; margin-top:2px; }
.admin-actions-inline { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.qr-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:18px; }
.qr-grid.small { grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr)); }
.qr-card { background:#fff; border:1px solid #e5e7eb; border-radius:24px; padding:18px; text-align:center; box-shadow:0 12px 28px rgba(15,23,42,.06); }
.qr-card h3 { margin:0 0 4px; }
.qr-card p { color:#64748b; margin:0 0 12px; font-size:.9rem; }
.qr-card img { width:100%; max-width:220px; height:auto; border-radius:18px; border:1px solid #e5e7eb; background:#fff; padding:8px; }
.qr-links { display:flex; justify-content:center; gap:10px; flex-wrap:wrap; margin:10px 0; }
.qr-links a, .qr-card > a { color:#dc2626; font-weight:800; }
.qr-mini-row { display:flex; justify-content:center; gap:12px; margin-top:10px; }
.qr-mini-row img { max-width:120px; }
.qr-mini-row small { display:block; color:#64748b; }
.poster-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; }
.mini-poster { background:#fff; color:#0f172a; border:3px solid #dc2626; border-radius:28px; padding:24px; text-align:center; break-inside:avoid; }
.mini-poster h3 { font-size:1.6rem; margin:10px 0; }
.mini-poster p { color:#334155; font-weight:700; }
.mini-poster img { width:210px; height:210px; }
.mini-poster strong { display:block; margin:10px 0; font-size:1.05rem; }
@media print {
  .admin-nav,.admin-topbar,.admin-card:not(.printable-poster-section) { display:none !important; }
  body { background:#fff !important; }
  .mini-poster { page-break-inside:avoid; box-shadow:none; }
}

/* v12 cron inventario */
.admin-code-block {
    display: block;
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-word;
    background: #0f172a;
    color: #e5e7eb;
    border-radius: 18px;
    padding: 16px;
    font-size: .88rem;
    line-height: 1.55;
    border: 1px solid rgba(255,255,255,.08);
}
.admin-success {
    background: #dcfce7;
    color: #166534;
    border: 1px solid #86efac;
    border-radius: 18px;
    padding: 14px 18px;
    margin: 16px 0;
    font-weight: 800;
}

/* v13 portales y directorios */
.portals-section { position: relative; }
.portal-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
    gap: 14px;
    margin: 24px 0 10px;
}
.portal-pill {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    padding: 12px 14px;
    box-shadow: 0 12px 30px rgba(15,23,42,.06);
    transition: .18s ease;
    min-height: 66px;
}
.portal-pill:hover {
    transform: translateY(-2px);
    border-color: rgba(220,38,38,.45);
    box-shadow: 0 16px 36px rgba(220,38,38,.14);
}
.portal-pill b,
.portal-card h2 { display: block; color: #0f172a; }
.portal-pill small,
.portal-card p { color: #64748b; }
.portal-logo {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex: 0 0 auto;
}
.portal-logo.big { width: 54px; height: 54px; border-radius: 18px; }
.portal-logo img { width: 34px; height: 34px; object-fit: contain; border-radius: 8px; }
.portal-logo.big img { width: 44px; height: 44px; }
.portal-logo strong { display: none; color: #dc2626; font-weight: 900; font-size: .8rem; letter-spacing: -.03em; }
.portal-logo.no-img strong,
.portal-logo:not(:has(img)) strong { display: inline; }
.portal-grid-full {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
    gap: 18px;
}
.portal-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 28px;
    padding: 20px;
    box-shadow: 0 16px 36px rgba(15,23,42,.07);
}
.portal-card-head { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.portal-card h2 { margin: 0 0 3px; font-size: 1.18rem; }
.portal-card p { margin: 0 0 14px; line-height: 1.55; }
.portal-admin-form label { display: block; font-weight: 800; color: #334155; margin: 10px 0; }
.portal-admin-form input[type="text"],
.portal-admin-form input[type="url"],
.portal-admin-form input[type="number"] {
    width: 100%;
    margin-top: 6px;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    padding: 11px 12px;
    font: inherit;
    font-weight: 600;
    background: #fff;
}
.portal-admin-list { display: grid; gap: 16px; }
.portal-admin-row { border: 1px solid #e2e8f0; border-radius: 22px; padding: 16px; background: #f8fafc; }
.portal-admin-row legend { font-weight: 900; color: #dc2626; padding: 0 8px; }
.admin-grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.admin-check-row { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 10px; }
.admin-check-row label { margin: 0; display: inline-flex; align-items: center; gap: 8px; }
.admin-help-box { background:#eff6ff; border:1px solid #bfdbfe; color:#1e3a8a; border-radius:18px; padding:14px 16px; margin-bottom:18px; }
@media (max-width: 820px) { .admin-grid-4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .admin-grid-4 { grid-template-columns: 1fr; } .portal-pill { border-radius: 22px; } }


/* v14 redes sociales en footer */
.footer-socials {
    margin-top: 18px;
}
.footer-socials > strong {
    display: block;
    color: #fff;
    font-size: .78rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 10px;
}
.footer-social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}
.footer-social-links a {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: #111827;
    border: 1px solid #263247;
    color: #e5e7eb;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: .18s ease;
}
.footer-social-links a:hover {
    color: #fff;
    border-color: rgba(220,38,38,.7);
    background: #dc2626;
    transform: translateY(-2px);
}
.footer-social-links svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
}
.footer-social-links span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}
.social-admin-form label { display: block; font-weight: 800; color: #334155; margin: 10px 0; }
.social-admin-form input[type="text"],
.social-admin-form input[type="url"],
.social-admin-form input[type="number"],
.social-admin-form select {
    width: 100%;
    margin-top: 6px;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    padding: 11px 12px;
    font: inherit;
    font-weight: 600;
    background: #fff;
}
.social-admin-list { display: grid; gap: 16px; }
.social-admin-row { border: 1px solid #e2e8f0; border-radius: 22px; padding: 16px; background: #f8fafc; }
.social-admin-row legend { font-weight: 900; color: #dc2626; padding: 0 8px; }
.social-preview { display:inline-flex; align-items:center; gap:8px; color:#0f172a; font-weight:900; }
.social-preview svg { width:22px; height:22px; fill:#dc2626; }

/* Version estable v1: alertas, sistema y mantenimiento */
.backup-item.alert-high { border-left: 6px solid #dc2626; }
.backup-item.alert-medium { border-left: 6px solid #f59e0b; }
.backup-item.alert-low { border-left: 6px solid #64748b; }
.admin-code {
    display: block;
    background: #0f172a;
    color: #e5e7eb;
    border-radius: 16px;
    padding: 16px;
    overflow-x: auto;
    font-size: .85rem;
    line-height: 1.6;
}
.admin-editor label input[type="number"] {
    margin-top: 8px;
}

/* Home slider estable v1.1 */
.home-slider {
    position: relative;
    margin-top: 0;
    padding-left: 20px;
    padding-right: 20px;
}
.home-slider-track {
    position: relative;
    min-height: 440px;
}
.home-slide {
    position: absolute;
    inset: 0;
    width: calc(100% - 40px);
    margin: 0 20px;
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px) scale(.985);
    transition: opacity .35s ease, transform .35s ease;
    overflow: hidden;
}
.home-slide::before {
    content: "";
    position: absolute;
    inset: -35%;
    background:
        radial-gradient(circle at 12% 18%, rgba(255,255,255,.16), transparent 25%),
        radial-gradient(circle at 82% 26%, rgba(220,38,38,.22), transparent 22%),
        radial-gradient(circle at 80% 92%, rgba(37,211,102,.10), transparent 22%);
    pointer-events: none;
}
.home-slide > * { position: relative; z-index: 1; }
.home-slide.active {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}
.home-slide.theme-dark { background: linear-gradient(135deg, #172033 0%, #0f172a 58%, #111827 100%); }
.home-slide.theme-red { background: linear-gradient(135deg, #991b1b 0%, #dc2626 52%, #7f1d1d 100%); }
.home-slide.theme-slate { background: linear-gradient(135deg, #0f172a 0%, #334155 58%, #111827 100%); }
.home-slide.theme-light {
    background: linear-gradient(135deg, #ffffff 0%, #fff5f5 50%, #f8fafc 100%);
    color: #0f172a;
    border: 1px solid #fee2e2;
}
.home-slide.theme-light .hero-text p,
.home-slide.theme-light .hero-small,
.home-slide.theme-light .hero-image p { color: #475569 !important; }
.home-slide.theme-light .hero-btn.secondary { color: #0f172a; border-color: #e2e8f0; background: #fff; }
.home-slide .hero-text h1 { max-width: 760px; }
.home-slide .hero-image {
    min-height: 205px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.slide-media-img {
    width: 100%;
    max-height: 230px;
    object-fit: cover;
    border-radius: 22px;
    box-shadow: 0 16px 36px rgba(0,0,0,.22);
}
.slider-controls {
    position: absolute;
    left: 50%;
    bottom: 18px;
    transform: translateX(-50%);
    z-index: 5;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 999px;
    background: rgba(15,23,42,.52);
    border: 1px solid rgba(255,255,255,.18);
    backdrop-filter: blur(10px);
}
.slider-arrow,
.slider-dot {
    border: 0;
    cursor: pointer;
    color: white;
}
.slider-arrow {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: rgba(255,255,255,.15);
    font-size: 22px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.slider-arrow:hover { background: rgba(255,255,255,.26); }
.slider-dots { display: inline-flex; gap: 7px; align-items: center; }
.slider-dot {
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: rgba(255,255,255,.45);
    padding: 0;
    transition: .2s;
}
.slider-dot.active {
    width: 26px;
    background: #fff;
}
.slider-admin-row,
.portal-admin-row {
    border: 1px solid #e2e8f0;
    border-radius: 24px;
    padding: 20px;
    margin-bottom: 18px;
    background: #fff;
}
.slider-admin-row legend,
.portal-admin-row legend {
    padding: 0 10px;
    font-weight: 900;
    color: #0f172a;
}
.slider-admin-form textarea,
.slider-admin-form input,
.slider-admin-form select {
    width: 100%;
}
.slider-admin-form textarea {
    resize: vertical;
    min-height: 92px;
}

@media (max-width: 960px) {
    .home-slider-track { min-height: 620px; }
    .home-slide { width: calc(100% - 40px); }
}
@media (max-width: 640px) {
    .home-slider { padding-left: 0; padding-right: 0; }
    .home-slider-track { min-height: 640px; }
    .home-slide {
        margin: 0 20px;
        width: calc(100% - 40px);
        padding-bottom: 78px;
    }
    .slider-controls { bottom: 16px; }
}

/* v16: cabecera pública, contacto mejor colocado y panel admin ordenado */
.top-banner-smart { padding: 0; background: linear-gradient(90deg, #dc2626, #b91c1c); }
.top-banner-inner { display:flex; align-items:center; justify-content:center; gap:14px; min-height:42px; font-size:.92rem; }
.top-banner-inner a { color:#fff; border:1px solid rgba(255,255,255,.35); border-radius:999px; padding:5px 11px; font-size:.78rem; font-weight:900; white-space:nowrap; background:rgba(255,255,255,.12); }
.top-banner-inner a:hover { background:#fff; color:#b91c1c; }
.site-header { padding: 18px 20px 22px; gap: 12px; }
.site-header-main { width:100%; display:grid; grid-template-columns: minmax(190px,.75fr) minmax(260px,1fr) minmax(360px,.95fr); gap:18px; align-items:center; background:rgba(255,255,255,.86); border:1px solid #e5e7eb; border-radius:28px; padding:14px 16px; box-shadow:0 16px 38px rgba(15,23,42,.08); backdrop-filter: blur(8px); }
.brand-block { display:grid; gap:5px; min-width:0; }
.brand-block .logo-text { font-size:2rem; }
.brand-tagline { color:#64748b; font-weight:800; font-size:.86rem; }
.header-trust { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.header-trust span { display:inline-flex; align-items:center; background:#f8fafc; border:1px solid #e2e8f0; color:#334155; border-radius:999px; padding:7px 11px; font-size:.8rem; font-weight:900; }
.header-contact-card { display:flex; align-items:center; justify-content:flex-end; gap:12px; min-width:0; }
.header-contact-copy { display:grid; gap:2px; text-align:right; min-width:150px; }
.header-contact-copy strong { color:#0f172a; font-weight:900; }
.header-contact-copy span { color:#64748b; font-size:.78rem; font-weight:700; line-height:1.25; }
.site-header .contact-buttons { flex-wrap:nowrap; gap:8px; }
.site-header .btn-contact { padding:12px 18px; white-space:nowrap; }
.site-header .btn-contact.phone { background:#f8fafc; }
.site-header .btn-contact.whatsapp { min-width:135px; }
.site-header .main-nav { width:100%; background:#fff; border:1px solid #e5e7eb; border-radius:999px; padding:8px; box-shadow:0 10px 28px rgba(15,23,42,.05); }
.site-header .main-nav a { font-size:.86rem; padding:8px 11px; }
.home-contact-panel { margin-top:-18px; margin-bottom:38px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:22px; background:#fff; border:1px solid #e5e7eb; border-radius:30px; padding:24px 28px; box-shadow:0 18px 38px rgba(15,23,42,.08); }
.home-contact-panel h2 { font-size:clamp(1.4rem,3vw,2rem); letter-spacing:-.04em; margin-bottom:6px; color:#0f172a; }
.home-contact-panel p { color:#64748b; max-width:680px; }
.home-contact-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:10px; min-width:300px; }
.hero-btn.secondary.dark { color:#0f172a; background:#f8fafc; border:1px solid #e2e8f0; }
.home-contact-link { color:#b91c1c; font-weight:900; font-size:.9rem; padding:8px 2px; }

.admin-nav.admin-nav-organized { display:grid; grid-template-columns: 170px repeat(4, minmax(0,1fr)) auto; gap:12px; align-items:stretch; position:static; border-radius:28px; padding:14px; margin-bottom:28px; background:rgba(255,255,255,.96); border:1px solid #e5e7eb; box-shadow:0 18px 38px rgba(15,23,42,.08); }
.admin-nav-brand { display:grid; align-content:center; border-radius:20px; background:linear-gradient(135deg,#0f172a,#1e293b); color:#fff; padding:14px; }
.admin-nav-brand strong { font-size:1.05rem; letter-spacing:-.03em; }
.admin-nav-brand span { color:#cbd5e1; font-size:.78rem; font-weight:800; }
.admin-nav-section { display:grid; gap:8px; min-width:0; }
.admin-nav-label { color:#64748b; font-size:.68rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; padding-left:4px; }
.admin-nav-links { display:flex; flex-wrap:wrap; gap:6px; align-content:flex-start; }
.admin-nav.admin-nav-organized a { margin:0; padding:8px 10px; font-size:.78rem; border-radius:999px; background:#f8fafc; border:1px solid #e5e7eb; color:#334155; }
.admin-nav.admin-nav-organized a:hover { background:#fee2e2; border-color:#fecaca; color:#991b1b; }
.admin-nav.admin-nav-organized a.active { background:#dc2626; border-color:#dc2626; color:#fff; }
.admin-nav.admin-nav-organized a.logout { align-self:center; justify-self:end; background:#fff; color:#b91c1c; border-color:#fecaca; font-weight:900; }
.admin-home-grid { display:grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap:16px; margin:22px 0 26px; }
.admin-home-card { background:#fff; border:1px solid #e5e7eb; border-radius:26px; padding:20px; box-shadow:0 16px 36px rgba(15,23,42,.07); }
.admin-home-card.priority { border-color:#fecaca; background:linear-gradient(180deg,#fff,#fff7f7); }
.admin-home-card.preview { background:linear-gradient(135deg,#f8fafc,#ffffff); }
.admin-home-card > span { display:inline-flex; color:#b91c1c; background:#fee2e2; border:1px solid #fecaca; border-radius:999px; padding:4px 9px; font-size:.7rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; margin-bottom:10px; }
.admin-home-card h2 { font-size:1.18rem; letter-spacing:-.03em; margin-bottom:12px; color:#0f172a; }
.admin-home-links { display:flex; flex-wrap:wrap; gap:8px; }
.admin-home-links a { display:inline-flex; align-items:center; gap:6px; padding:9px 11px; border:1px solid #e5e7eb; background:#f8fafc; border-radius:999px; font-weight:900; font-size:.82rem; color:#334155; }
.admin-home-links a:hover { background:#dc2626; color:#fff; border-color:#dc2626; }

@media (max-width: 1100px) {
    .site-header-main { grid-template-columns:1fr; }
    .header-contact-card { justify-content:space-between; }
    .header-contact-copy { text-align:left; }
    .admin-nav.admin-nav-organized { grid-template-columns:1fr 1fr; }
    .admin-nav-brand { grid-column:1 / -1; }
    .admin-nav.admin-nav-organized a.logout { justify-self:start; }
    .admin-home-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
    .top-banner-inner { justify-content:flex-start; overflow-x:auto; }
    .site-header { padding:14px 14px 18px; }
    .site-header-main { border-radius:22px; padding:14px; }
    .brand-block .logo-text { font-size:1.8rem; }
    .header-trust { justify-content:flex-start; overflow-x:auto; flex-wrap:nowrap; padding-bottom:2px; }
    .header-contact-card { display:grid; gap:10px; }
    .site-header .contact-buttons { display:grid; grid-template-columns:1fr 1fr; width:100%; }
    .site-header .btn-contact { min-width:0; padding:11px 10px; }
    .site-header .main-nav { border-radius:20px; overflow-x:auto; flex-wrap:nowrap; justify-content:flex-start; }
    .home-contact-panel { margin-top:0; grid-template-columns:1fr; padding:20px; border-radius:24px; }
    .home-contact-actions { min-width:0; justify-content:flex-start; }
    .home-contact-actions .hero-btn { width:100%; }
    .admin-nav.admin-nav-organized, .admin-home-grid { grid-template-columns:1fr; }
    .admin-nav-links { overflow-x:auto; flex-wrap:nowrap; padding-bottom:2px; }
}

/* v17: cabecera limpia, ventajas fuera del header y panel admin más respirable */
.site-header-main {
    grid-template-columns: minmax(210px, 1fr) minmax(420px, auto) !important;
    gap: 18px !important;
}
.header-trust { display: none !important; }
.header-contact-card {
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 22px;
    padding: 10px 12px;
}
.header-contact-copy { min-width: 190px; }
.site-header .contact-buttons { flex-shrink: 0; }

.home-benefits-strip {
    margin-top: -26px;
    margin-bottom: 24px;
    position: relative;
    z-index: 8;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.home-benefit-item {
    display: flex;
    align-items: center;
    gap: 10px;
    background: rgba(255,255,255,.96);
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    padding: 14px 16px;
    box-shadow: 0 14px 32px rgba(15,23,42,.08);
    min-width: 0;
}
.home-benefit-item span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 999px;
    background: #dcfce7;
    color: #166534;
    font-weight: 900;
    flex: 0 0 auto;
}
.home-benefit-item strong {
    color: #0f172a;
    font-weight: 900;
    font-size: .95rem;
    white-space: normal;
    line-height: 1.15;
}
.home-contact-panel { margin-top: 0 !important; }

.admin-nav.admin-nav-organized {
    grid-template-columns: 190px repeat(2, minmax(0, 1fr)) !important;
    align-items: start;
}
.admin-nav-brand {
    min-height: 100%;
}
.admin-nav.admin-nav-organized a.logout {
    grid-column: 1 / -1;
    justify-self: end;
    padding-left: 18px;
    padding-right: 18px;
}
.admin-nav-section {
    background: #f8fafc;
    border: 1px solid #eef2f7;
    border-radius: 18px;
    padding: 10px;
}
.admin-nav-links a {
    white-space: nowrap;
}
.admin-topbar.compact-admin-topbar {
    align-items: center;
    background: linear-gradient(135deg, #fff, #f8fafc);
    border: 1px solid #e5e7eb;
    border-radius: 30px;
    padding: 22px;
    box-shadow: 0 16px 36px rgba(15,23,42,.06);
}
.admin-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 28px 0 14px;
}
.admin-section-title h2 {
    font-size: 1.3rem;
    letter-spacing: -.03em;
    color: #0f172a;
}
.admin-section-title p {
    color: #64748b;
    font-size: .92rem;
}
.checklist-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 22px 0;
}
.checklist-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 24px;
    padding: 18px;
    box-shadow: 0 14px 30px rgba(15,23,42,.06);
}
.checklist-card.ok { border-color: #bbf7d0; }
.checklist-card.warn { border-color: #fed7aa; }
.checklist-card.bad { border-color: #fecaca; }
.checklist-card h3 {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1rem;
    margin-bottom: 8px;
}
.checklist-card p { color: #64748b; font-size: .92rem; }
.checklist-card a { margin-top: 12px; display: inline-flex; font-weight: 900; color: #b91c1c; }

@media (max-width: 1100px) {
    .site-header-main { grid-template-columns: 1fr !important; }
    .header-contact-card { justify-content: space-between; }
    .admin-nav.admin-nav-organized { grid-template-columns: 1fr 1fr !important; }
    .admin-nav-brand { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
    .home-benefits-strip { grid-template-columns: 1fr; margin-top: 14px; }
    .home-benefit-item { padding: 12px 14px; }
    .header-contact-card { display: grid; gap: 10px; }
    .header-contact-copy { min-width: 0; }
    .checklist-grid { grid-template-columns: 1fr; }
    .admin-nav.admin-nav-organized { grid-template-columns: 1fr !important; }
    .admin-nav.admin-nav-organized a.logout { justify-self: start; }
}

/* Admin v18: panel ordenado y centro de mando */
body:has(.admin-dashboard-v18) {
    background: radial-gradient(circle at top left, #fff1f2 0, #f8fafc 42%, #eef2f7 100%);
}
.admin-dashboard-v18 {
    max-width: 1480px !important;
    display: grid;
    grid-template-columns: 286px minmax(0, 1fr);
    gap: 24px;
    align-items: start;
    padding: 24px 20px 80px !important;
}
.admin-dashboard-v18 > :not(.admin-nav) {
    grid-column: 2;
}
.admin-dashboard-v18 > .admin-nav-organized {
    grid-column: 1;
    grid-row: 1 / span 100;
}
.admin-nav-organized {
    position: sticky !important;
    top: 18px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 14px !important;
    width: 100%;
    max-height: calc(100vh - 36px);
    overflow: auto;
    padding: 16px !important;
    border-radius: 28px !important;
    background: rgba(255,255,255,.94) !important;
    border: 1px solid rgba(203,213,225,.9) !important;
    box-shadow: 0 26px 60px rgba(15,23,42,.10) !important;
    backdrop-filter: blur(16px);
}
.admin-nav-organized .admin-nav-brand {
    padding: 22px 18px;
    border-radius: 24px;
    background: linear-gradient(135deg, #111827, #172033);
    color: #fff;
    box-shadow: 0 18px 32px rgba(15,23,42,.16);
}
.admin-nav-organized .admin-nav-brand strong {
    display: block;
    font-size: 1.12rem;
    letter-spacing: -.03em;
}
.admin-nav-organized .admin-nav-brand span {
    display: block;
    margin-top: 3px;
    color: #cbd5e1;
    font-size: .82rem;
    font-weight: 700;
}
.admin-nav-organized .admin-nav-section {
    border: 1px solid #e5e7eb;
    border-radius: 22px;
    padding: 12px;
    background: #f8fafc;
}
.admin-nav-organized .admin-nav-label {
    display: block;
    color: #64748b;
    font-size: .72rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .1em;
    margin: 0 4px 9px;
}
.admin-nav-organized .admin-nav-links {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
}
.admin-nav-organized a {
    display: flex !important;
    justify-content: flex-start !important;
    width: 100%;
    padding: 10px 12px !important;
    border-radius: 15px !important;
    color: #334155 !important;
    background: transparent !important;
    font-size: .88rem !important;
    line-height: 1.2;
    border: 1px solid transparent;
}
.admin-nav-organized a:hover {
    background: #fff !important;
    border-color: #e2e8f0;
    color: #0f172a !important;
    transform: translateX(2px);
}
.admin-nav-organized a.active {
    color: #fff !important;
    background: linear-gradient(135deg, #dc2626, #ef4444) !important;
    border-color: transparent;
    box-shadow: 0 12px 24px rgba(220,38,38,.22);
}
.admin-nav-organized a.logout {
    margin-left: 0 !important;
    margin-top: 4px;
    justify-content: center !important;
    color: #b91c1c !important;
    background: #fff !important;
    border: 1px solid #fecaca !important;
}
.admin-nav-organized a.logout:hover {
    background: #fee2e2 !important;
    transform: none;
}
.admin-hero-panel {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 22px;
    padding: 30px;
    border-radius: 32px;
    background: linear-gradient(135deg, #111827 0%, #172033 55%, #273244 100%);
    color: #fff;
    box-shadow: 0 28px 60px rgba(15,23,42,.18);
    overflow: hidden;
    position: relative;
}
.admin-hero-panel::after {
    content: "";
    position: absolute;
    inset: auto -80px -100px auto;
    width: 240px;
    height: 240px;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(220,38,38,.36), rgba(220,38,38,0) 70%);
}
.admin-hero-panel > * { position: relative; z-index: 1; }
.admin-hero-panel .eyebrow {
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.18);
    color: #fecaca;
}
.admin-hero-panel h1 {
    margin: 10px 0 8px;
    font-size: clamp(2rem, 4vw, 3.6rem);
    line-height: .95;
    letter-spacing: -.065em;
    font-weight: 950;
}
.admin-hero-panel p {
    margin: 0;
    max-width: 720px;
    color: #cbd5e1;
    font-size: 1rem;
}
.admin-hero-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
    min-width: 260px;
}
.admin-hero-actions .hero-btn.secondary {
    background: rgba(255,255,255,.08) !important;
    color: #fff !important;
    border-color: rgba(255,255,255,.22) !important;
}
.admin-today-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}
.admin-today-card {
    display: grid;
    gap: 8px;
    padding: 18px;
    border-radius: 24px;
    background: #fff;
    border: 1px solid #e5e7eb;
    box-shadow: 0 14px 30px rgba(15,23,42,.07);
    position: relative;
    overflow: hidden;
}
.admin-today-card::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 4px;
    background: #94a3b8;
}
.admin-today-card.ok::after { background: #22c55e; }
.admin-today-card.warning::after { background: #f59e0b; }
.admin-today-card.danger::after { background: #dc2626; }
.admin-today-card span {
    color: #64748b;
    font-weight: 950;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.admin-today-card strong {
    display: block;
    color: #0f172a;
    font-size: 2.15rem;
    line-height: 1;
    font-weight: 950;
}
.admin-today-card p {
    margin: 0;
    color: #64748b;
    font-size: .88rem;
}
.admin-today-card a {
    color: #dc2626;
    font-weight: 900;
    font-size: .88rem;
}
.admin-filter-row-v18 {
    background: rgba(255,255,255,.72);
    border: 1px solid #e5e7eb;
    border-radius: 22px;
    padding: 12px 14px;
    box-shadow: 0 10px 24px rgba(15,23,42,.04);
}
.admin-kpi-grid-v18 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
.admin-kpi-grid-v18 article {
    border-radius: 24px !important;
    padding: 18px !important;
}
.admin-kpi-grid-v18 strong {
    font-size: 2rem !important;
}
.admin-command-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.admin-command-card {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 16px;
    padding: 22px;
    border-radius: 28px;
    background: #fff;
    border: 1px solid #e5e7eb;
    box-shadow: 0 16px 34px rgba(15,23,42,.07);
}
.admin-command-card.priority {
    border-color: rgba(220,38,38,.25);
    background: linear-gradient(135deg, #fff, #fff5f5);
}
.admin-command-icon {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 20px;
    background: #f1f5f9;
    font-size: 1.7rem;
}
.admin-command-card span {
    color: #64748b;
    font-size: .74rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .08em;
}
.admin-command-card h2 {
    margin: 5px 0 5px;
    font-size: 1.24rem;
}
.admin-command-card p {
    margin: 0 0 14px;
    color: #64748b;
    font-size: .92rem;
}
.admin-command-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.admin-command-links a {
    display: inline-flex;
    padding: 8px 11px;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #334155;
    font-weight: 900;
    font-size: .82rem;
}
.admin-command-links a:hover {
    background: #fee2e2;
    border-color: #fecaca;
    color: #991b1b;
}
.admin-card-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    margin-bottom: 14px;
}
.admin-card-head h2 { margin: 0; }
.admin-priority-list {
    display: grid;
    gap: 10px;
}
.admin-priority-item {
    display: grid;
    gap: 3px;
    padding: 12px 14px;
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    background: #f8fafc;
}
.admin-priority-item:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(15,23,42,.06);
}
.admin-priority-item.high,
.admin-priority-item.danger { background: #fff1f2; border-color: #fecaca; }
.admin-priority-item.medium { background: #fffbeb; border-color: #fde68a; }
.admin-priority-item.low { background: #f8fafc; border-color: #e2e8f0; }
.admin-priority-item strong { color: #0f172a; }
.admin-priority-item small { color: #64748b; line-height: 1.45; }
.admin-opportunity-list { display: grid; gap: 18px; }
.admin-opportunity-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 28px;
    padding: 22px;
    box-shadow: 0 16px 36px rgba(15,23,42,.07);
}
.admin-opportunity-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
}
.admin-opportunity-head h2 {
    display: inline-block;
    margin: 0 0 4px 10px;
    vertical-align: middle;
}
.admin-opportunity-head p { margin: 4px 0 0; color: #64748b; }
.admin-opportunity-metrics {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}
.admin-opportunity-metrics span {
    display: inline-flex;
    padding: 7px 10px;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #334155;
    font-weight: 900;
    font-size: .82rem;
}
@media (max-width: 1180px) {
    .admin-dashboard-v18 {
        grid-template-columns: 1fr;
    }
    .admin-dashboard-v18 > :not(.admin-nav),
    .admin-dashboard-v18 > .admin-nav-organized {
        grid-column: 1;
        grid-row: auto;
    }
    .admin-nav-organized {
        position: static !important;
        max-height: none;
    }
    .admin-nav-organized .admin-nav-links {
        grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    }
}
@media (max-width: 920px) {
    .admin-today-grid,
    .admin-kpi-grid-v18,
    .admin-command-grid,
    .admin-grid-v18 {
        grid-template-columns: 1fr 1fr !important;
    }
    .admin-hero-panel,
    .admin-opportunity-head {
        align-items: flex-start;
        flex-direction: column;
    }
    .admin-hero-actions {
        justify-content: flex-start;
        min-width: 0;
    }
}
@media (max-width: 620px) {
    .admin-dashboard-v18 {
        padding: 14px 12px 70px !important;
    }
    .admin-today-grid,
    .admin-kpi-grid-v18,
    .admin-command-grid,
    .admin-grid-v18 {
        grid-template-columns: 1fr !important;
    }
    .admin-command-card {
        grid-template-columns: 1fr;
    }
    .admin-hero-panel {
        padding: 24px 18px;
        border-radius: 26px;
    }
    .admin-nav-organized {
        border-radius: 24px !important;
    }
}


/* Admin v19: menú lateral permanente en todo el panel */
body:has(.admin-nav-organized),
body:has(.admin-login-screen) {
    background: radial-gradient(circle at top left, #fff1f2 0, #f8fafc 38%, #eef2f7 100%);
}
main.admin-dashboard:has(.admin-nav-organized) {
    max-width: 1500px !important;
    width: 100%;
    margin: 0 auto !important;
    display: grid !important;
    grid-template-columns: 300px minmax(0, 1fr) !important;
    gap: 24px !important;
    align-items: start !important;
    padding: 24px 20px 86px !important;
}
main.admin-dashboard:has(.admin-nav-organized) > .admin-nav-organized {
    grid-column: 1 !important;
    grid-row: 1 / span 200 !important;
}
main.admin-dashboard:has(.admin-nav-organized) > :not(.admin-nav-organized) {
    grid-column: 2 !important;
    min-width: 0;
}
.admin-nav-organized {
    position: sticky !important;
    top: 16px !important;
    align-self: start;
    height: calc(100vh - 32px);
    max-height: calc(100vh - 32px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    scrollbar-width: thin;
    padding: 16px !important;
    border-radius: 30px !important;
    background: rgba(255,255,255,.95) !important;
    border: 1px solid rgba(203,213,225,.95) !important;
    box-shadow: 0 28px 70px rgba(15,23,42,.12) !important;
    backdrop-filter: blur(18px);
}
.admin-nav-organized::-webkit-scrollbar { width: 8px; }
.admin-nav-organized::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 999px; }
.admin-nav-organized .admin-nav-brand {
    position: relative;
    overflow: hidden;
    padding: 22px 18px !important;
    border-radius: 24px !important;
    background: linear-gradient(135deg, #0f172a 0%, #172033 70%, #253148 100%) !important;
}
.admin-nav-organized .admin-nav-brand::after {
    content: "";
    position: absolute;
    right: -28px;
    bottom: -34px;
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background: rgba(220,38,38,.32);
}
.admin-nav-organized .admin-nav-section {
    background: #f8fafc !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 22px !important;
    padding: 12px !important;
}
.admin-nav-organized .admin-nav-label {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px !important;
    font-size: .7rem !important;
    letter-spacing: .12em !important;
    color: #64748b !important;
}
.admin-nav-organized .admin-nav-links {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 6px !important;
}
.admin-nav-organized a {
    min-height: 40px;
    padding: 10px 12px !important;
    border-radius: 15px !important;
    justify-content: flex-start !important;
    text-align: left !important;
    font-size: .89rem !important;
    font-weight: 900 !important;
    color: #334155 !important;
    border: 1px solid transparent !important;
    background: transparent !important;
    white-space: normal;
}
.admin-nav-organized a:hover {
    background: #fff !important;
    border-color: #e2e8f0 !important;
    color: #0f172a !important;
    transform: translateX(2px);
}
.admin-nav-organized a.active {
    background: linear-gradient(135deg, #dc2626, #ef4444) !important;
    color: #fff !important;
    border-color: transparent !important;
    box-shadow: 0 12px 24px rgba(220,38,38,.24) !important;
}
.admin-nav-organized a.logout {
    margin: 2px 0 0 !important;
    justify-content: center !important;
    color: #b91c1c !important;
    background: #fff !important;
    border: 1px solid #fecaca !important;
}
.admin-nav-organized a.logout:hover {
    background: #fee2e2 !important;
    transform: none !important;
}
.admin-topbar {
    background: rgba(255,255,255,.82);
    border: 1px solid #e2e8f0;
    border-radius: 28px;
    padding: 24px !important;
    box-shadow: 0 18px 44px rgba(15,23,42,.08);
}
.admin-topbar h1 {
    font-size: clamp(2rem, 3.2vw, 3.2rem) !important;
}
.admin-actions a[href$="logout.php"] {
    display: none !important;
}
.admin-card,
.admin-help-card,
.admin-warning,
.admin-success,
.admin-error,
.admin-grid-2 > article,
.admin-command-card,
.admin-today-card,
.admin-kpi-grid article,
.admin-kpi-grid-v18 article {
    box-shadow: 0 18px 44px rgba(15,23,42,.07);
}
.admin-card {
    border-radius: 28px !important;
}
/* Compatibilidad: si algún navegador no soporta :has, el panel sigue usable en vertical. */
@supports not selector(:has(*)) {
    main.admin-dashboard {
        max-width: 1240px !important;
        display: block !important;
    }
    .admin-nav-organized {
        position: static !important;
        height: auto !important;
        max-height: none !important;
        margin-bottom: 24px !important;
    }
}
@media (max-width: 1180px) {
    main.admin-dashboard:has(.admin-nav-organized) {
        grid-template-columns: 1fr !important;
        max-width: 1180px !important;
    }
    main.admin-dashboard:has(.admin-nav-organized) > .admin-nav-organized,
    main.admin-dashboard:has(.admin-nav-organized) > :not(.admin-nav-organized) {
        grid-column: 1 !important;
        grid-row: auto !important;
    }
    .admin-nav-organized {
        position: static !important;
        height: auto !important;
        max-height: none !important;
        border-radius: 26px !important;
    }
    .admin-nav-organized .admin-nav-links {
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
    }
}
@media (max-width: 700px) {
    main.admin-dashboard:has(.admin-nav-organized) {
        padding: 14px 12px 76px !important;
        gap: 16px !important;
    }
    .admin-nav-organized {
        padding: 12px !important;
    }
    .admin-nav-organized .admin-nav-brand {
        padding: 18px 16px !important;
    }
    .admin-nav-organized .admin-nav-section {
        padding: 10px !important;
    }
    .admin-nav-organized .admin-nav-links {
        grid-template-columns: 1fr !important;
    }
    .admin-topbar {
        padding: 20px 16px !important;
        border-radius: 24px;
    }
}

/* V20: home blocks y admin lateral compacto */
.home-newsletter-v20 {
    background: linear-gradient(135deg,#0f172a,#172033);
    color: #fff;
    border-radius: 34px;
    padding: clamp(28px,4vw,48px);
    text-align: center;
    box-shadow: 0 24px 58px rgba(15,23,42,.18);
}
.home-newsletter-v20 h2 { font-size: clamp(1.8rem,4vw,2.7rem); margin: 0 0 10px; letter-spacing: -.04em; }
.home-newsletter-v20 p { color: #cbd5e1; max-width: 620px; margin: 0 auto 20px; line-height: 1.65; }
.newsletter-form-v20 { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0; max-width:620px; margin:0 auto; border-radius:999px; overflow:hidden; background:#fff; border:1px solid rgba(255,255,255,.18); }
.newsletter-form-v20 input[type=email] { border:0; padding:17px 22px; font: inherit; outline:0; min-width:0; }
.newsletter-form-v20 button { border:0; background:#dc2626; color:#fff; font-weight:900; padding:0 28px; cursor:pointer; }
.newsletter-form-v20 button:hover { background:#b91c1c; }
.newsletter-consent { grid-column:1 / -1; color:#cbd5e1; background:#101b2d; padding:10px 18px; text-align:left; font-size:.82rem; display:flex; gap:8px; align-items:flex-start; }
.newsletter-consent a { color:#fff; text-decoration:underline !important; }
.home-newsletter-v20 small { display:block; color:#94a3b8; margin-top:12px; }
.trust-strip-v20 { display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin:38px auto 16px; }
.trust-pill-v20 { display:inline-flex; align-items:center; gap:10px; background:#fff; border:1px solid #e2e8f0; border-radius:999px; padding:12px 22px; box-shadow:0 12px 28px rgba(15,23,42,.06); color:#0f172a; }
.trust-pill-v20 span { font-size:1.35rem; line-height:1; }
.trust-pill-v20 strong { font-size:.95rem; }
.home-stats-v20 { background: radial-gradient(circle at top left,#fff1f2,#f8fafc 48%,#eef2f7); border-radius: 34px; padding: clamp(34px,5vw,54px) clamp(18px,4vw,34px); }
.home-stats-grid-v20 { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.home-stats-grid-v20 article { background:#fff; border:1px solid #e2e8f0; border-radius:24px; padding:24px 18px; box-shadow:0 18px 40px rgba(15,23,42,.08); position:relative; overflow:hidden; }
.home-stats-grid-v20 article::after { content:""; position:absolute; left:0; right:0; bottom:0; height:4px; background:linear-gradient(90deg,#dc2626,#fb7185); }
.home-stats-grid-v20 span { display:inline-flex; background:#fee2e2; color:#dc2626; padding:5px 10px; border-radius:999px; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; font-weight:900; margin-bottom:12px; }
.home-stats-grid-v20 strong { display:block; color:#dc2626; font-size:clamp(2rem,4vw,3.2rem); line-height:1; letter-spacing:-.05em; margin-bottom:8px; }
.home-stats-grid-v20 p { color:#64748b; margin:0; line-height:1.5; }
.comparison-card-v20 { max-width:920px; margin:0 auto; background:#fff; border:1px solid #e2e8f0; border-radius:28px; padding:20px; box-shadow:0 18px 40px rgba(15,23,42,.06); }
.comparison-row-v20 { display:grid; grid-template-columns:1.2fr .9fr .9fr; gap:12px; align-items:center; padding:15px 10px; border-bottom:1px solid #eef2f7; }
.comparison-row-v20:last-child { border-bottom:0; }
.comparison-row-v20.head { color:#64748b; text-transform:uppercase; letter-spacing:.08em; font-size:.75rem; font-weight:900; }
.comparison-row-v20 .yes { color:#059669; }
.comparison-row-v20 .no { color:#b91c1c; }

/* Admin lateral v20: mas compacto y con todas las opciones visibles */
main.admin-dashboard:has(.admin-nav-organized) {
    grid-template-columns: 330px minmax(0, 1fr) !important;
    gap: 22px !important;
    max-width: 1560px !important;
}
.admin-nav-organized {
    display:flex !important;
    flex-direction:column !important;
    gap:10px !important;
    height: calc(100dvh - 24px) !important;
    max-height: calc(100dvh - 24px) !important;
    top: 12px !important;
    padding: 12px !important;
    border-radius: 28px !important;
    overscroll-behavior: contain;
}
.admin-nav-organized .admin-nav-brand { padding:16px 14px !important; border-radius:20px !important; min-height:72px; }
.admin-nav-organized .admin-nav-section { padding:9px !important; border-radius:18px !important; }
.admin-nav-organized .admin-nav-label { margin-bottom:6px !important; font-size:.64rem !important; }
.admin-nav-organized .admin-nav-links { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:5px !important; }
.admin-nav-organized a { min-height:31px !important; padding:7px 8px !important; border-radius:12px !important; font-size:.76rem !important; line-height:1.12 !important; white-space:normal !important; }
.admin-nav-organized a.logout { margin-top:0 !important; min-height:36px !important; }
.admin-sticky-actions { position:sticky; bottom:12px; z-index:10; display:flex; justify-content:flex-end; padding:14px; background:rgba(255,255,255,.82); border:1px solid #e2e8f0; border-radius:22px; backdrop-filter:blur(12px); box-shadow:0 16px 38px rgba(15,23,42,.10); }
.admin-form-wide textarea { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size:.88rem; }

@media (max-width: 1180px) {
    main.admin-dashboard:has(.admin-nav-organized) { grid-template-columns:1fr !important; }
    .admin-nav-organized { position:static !important; height:auto !important; max-height:none !important; }
    .admin-nav-organized .admin-nav-links { grid-template-columns:repeat(auto-fit,minmax(140px,1fr)) !important; }
}
@media (max-width: 760px) {
    .newsletter-form-v20 { grid-template-columns:1fr; border-radius:24px; }
    .newsletter-form-v20 button { padding:15px; }
    .home-stats-grid-v20 { grid-template-columns:1fr; }
    .comparison-row-v20 { grid-template-columns:1fr; gap:6px; }
    .comparison-row-v20.head { display:none; }
    .trust-strip-v20 { justify-content:flex-start; overflow-x:auto; flex-wrap:nowrap; padding-bottom:8px; }
    .trust-pill-v20 { flex:0 0 auto; }
    .admin-nav-organized .admin-nav-links { grid-template-columns:1fr !important; }
}
@media (max-width: 980px) {
    .home-stats-grid-v20 { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* === NoMasCaos v21: admin full sidebar + search === */
body.admin-body {
    background: linear-gradient(135deg, #fff7f7 0%, #f8fafc 42%, #eef2f7 100%);
}
body.admin-body .skip-link:focus { z-index: 10000; }
main.admin-dashboard {
    width: min(1520px, calc(100% - 28px));
    max-width: 1520px;
    margin: 18px auto;
    padding: 0;
    display: grid !important;
    grid-template-columns: 315px minmax(0, 1fr) !important;
    gap: 22px !important;
    align-items: start !important;
}
main.admin-dashboard > .admin-nav-organized {
    grid-column: 1 !important;
    grid-row: 1 / span 999 !important;
}
main.admin-dashboard > :not(.admin-nav-organized) {
    grid-column: 2 !important;
    min-width: 0;
}
.admin-nav-organized.admin-sidebar-v21 {
    position: sticky !important;
    top: 16px !important;
    height: calc(100vh - 32px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    padding: 14px !important;
    border-radius: 30px !important;
    background: rgba(255,255,255,.96) !important;
    border: 1px solid #e5e7eb !important;
    box-shadow: 0 24px 50px rgba(15,23,42,.10) !important;
    backdrop-filter: blur(10px);
}
.admin-sidebar-v21 .admin-nav-brand {
    border-radius: 22px;
    padding: 18px 16px;
    min-height: auto;
    background: radial-gradient(circle at 10% 0%, #334155, #101827 72%);
    color: #fff;
}
.admin-sidebar-v21 .admin-nav-brand strong {
    display: block;
    font-size: 1.26rem;
    letter-spacing: -.04em;
}
.admin-sidebar-v21 .admin-nav-brand span,
.admin-sidebar-v21 .admin-nav-brand small {
    display: block;
    color: #cbd5e1;
    font-weight: 800;
    font-size: .76rem;
    margin-top: 4px;
}
.admin-nav-quick {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.admin-nav-quick a {
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 999px;
    padding: 9px 10px;
    background: #fee2e2;
    border: 1px solid #fecaca;
    color: #991b1b;
    font-weight: 900;
    font-size: .76rem;
}
.admin-sidebar-v21 .admin-nav-section {
    display: block !important;
    padding: 10px;
    border-radius: 20px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
}
.admin-sidebar-v21 .admin-nav-section.current {
    background: #fff7f7;
    border-color: #fecaca;
}
.admin-sidebar-v21 .admin-nav-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 0 8px;
    padding: 0 2px;
    color: #64748b;
    font-size: .66rem;
    font-weight: 950;
    letter-spacing: .11em;
    text-transform: uppercase;
}
.admin-sidebar-v21 .admin-nav-links {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 7px !important;
    overflow: visible !important;
    padding: 0 !important;
}
.admin-sidebar-v21 .admin-nav-links a,
.admin-sidebar-v21 a.logout {
    min-height: 36px;
    display: flex !important;
    align-items: center;
    gap: 5px;
    padding: 8px 9px !important;
    border-radius: 13px !important;
    background: #fff !important;
    color: #334155 !important;
    border: 1px solid #e5e7eb !important;
    box-shadow: 0 6px 14px rgba(15,23,42,.03);
    font-size: .72rem !important;
    font-weight: 900 !important;
    line-height: 1.12;
    white-space: normal !important;
}
.admin-sidebar-v21 .admin-nav-links a:hover {
    transform: translateY(-1px);
    border-color: #fecaca !important;
    color: #991b1b !important;
    background: #fff7f7 !important;
}
.admin-sidebar-v21 .admin-nav-links a.active {
    background: linear-gradient(135deg,#ef2222,#dc2626) !important;
    color: #fff !important;
    border-color: #dc2626 !important;
    box-shadow: 0 12px 22px rgba(220,38,38,.20);
}
.admin-sidebar-v21 a.logout {
    width: 100%;
    justify-content: center;
    margin: 0 !important;
    color: #b91c1c !important;
    border-color: #fecaca !important;
}
.admin-sidebar-v21::-webkit-scrollbar { width: 8px; }
.admin-sidebar-v21::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 999px; }
.admin-topbar,
.admin-hero-panel,
.admin-card,
.admin-today-card,
.admin-result-card {
    box-shadow: 0 18px 44px rgba(15,23,42,.07);
}
.admin-search-form,
.public-search-form {
    display: flex;
    gap: 10px;
    align-items: stretch;
}
.admin-search-form input,
.public-search-form input,
.header-search input {
    width: 100%;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    padding: 14px 18px;
    font: inherit;
    font-weight: 700;
    outline: none;
}
.admin-search-form input:focus,
.public-search-form input:focus,
.header-search input:focus {
    border-color: #ef4444;
    box-shadow: 0 0 0 4px rgba(239,68,68,.12);
}
.admin-results-list {
    display: grid;
    gap: 10px;
}
.admin-result-card {
    display: grid;
    grid-template-columns: 90px minmax(0,1fr) auto auto;
    gap: 12px;
    align-items: center;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 22px;
    padding: 14px;
}
.admin-result-card h3 { margin: 0 0 4px; }
.admin-result-card p { margin: 0; color: #64748b; font-size: .9rem; }
.result-type,
.status-badge.soft,
.score-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 10px;
    border-radius: 999px;
    background: #fee2e2;
    color: #991b1b;
    font-size: .72rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.score-pill {
    min-width: 42px;
    height: 42px;
    background: #dc2626;
    color: #fff;
    font-size: 1rem;
}
.hot-leads-table small { color:#64748b; }
.header-search {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) auto;
    gap: 8px;
    margin-top: 12px;
    max-width: 620px;
    margin-left: auto;
}
.header-search input { padding: 10px 14px; font-size: .9rem; background:#fff; }
.header-search button {
    border: 0;
    border-radius: 999px;
    padding: 10px 18px;
    background:#0f172a;
    color:#fff;
    font-weight:900;
    cursor:pointer;
}
.search-hero {
    background: linear-gradient(135deg,#0f172a,#1e293b);
    color: #fff;
    border-radius: 34px;
    padding: 44px;
    margin-top: 28px;
    box-shadow: 0 24px 44px rgba(15,23,42,.16);
}
.search-hero p { color:#cbd5e1; max-width:640px; }
.search-results-grid {
    display: grid;
    gap: 16px;
    margin-top: 34px;
}
.search-result-public {
    background:#fff;
    border:1px solid #e5e7eb;
    border-radius:24px;
    padding:22px;
    box-shadow:0 14px 34px rgba(15,23,42,.06);
}
.search-result-public h3 { margin: 6px 0 8px; font-size:1.25rem; }
.search-result-public p { color:#64748b; }
@media (max-width: 1120px) {
    main.admin-dashboard { grid-template-columns: 1fr !important; width: min(100% - 20px, 1040px); }
    main.admin-dashboard > .admin-nav-organized,
    main.admin-dashboard > :not(.admin-nav-organized) { grid-column: 1 !important; grid-row:auto !important; }
    .admin-nav-organized.admin-sidebar-v21 { position: static !important; height:auto !important; max-height:none !important; }
    .admin-sidebar-v21 .admin-nav-links { grid-template-columns: repeat(4, minmax(0,1fr)); }
}
@media (max-width: 720px) {
    .admin-sidebar-v21 .admin-nav-links { grid-template-columns: 1fr 1fr; }
    .admin-result-card { grid-template-columns: 1fr; }
    .admin-search-form,
    .public-search-form,
    .header-search { grid-template-columns:1fr; display:grid; }
    .search-hero { padding: 28px 20px; border-radius: 24px; }
}
@media (max-width: 480px) {
    .admin-sidebar-v21 .admin-nav-links { grid-template-columns: 1fr; }
}

/* v22 email/contact polish */
.contact-form-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(280px, .7fr);
    gap: 24px;
    align-items: start;
}
.contact-side-card {
    background: #0f172a;
    color: #fff;
    border-radius: 28px;
    padding: 28px;
    box-shadow: 0 24px 50px rgba(15,23,42,.18);
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.contact-side-card p { color: rgba(255,255,255,.78); }
.contact-side-card ul { padding-left: 18px; color: rgba(255,255,255,.84); line-height: 1.8; }
.admin-form-card, .admin-card {
    background: #fff;
    border: 1px solid rgba(15,23,42,.09);
    border-radius: 24px;
    padding: 24px;
    box-shadow: 0 14px 36px rgba(15,23,42,.06);
    margin-bottom: 22px;
}
.admin-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.admin-form-grid label, .admin-form-grid fieldset { display: flex; flex-direction: column; gap: 6px; }
.admin-form-grid textarea, .admin-form-grid input, .admin-form-grid select {
    border: 1px solid rgba(15,23,42,.14);
    border-radius: 14px;
    padding: 12px 14px;
    font: inherit;
    background: #fff;
}
.admin-fieldset {
    border: 1px solid rgba(15,23,42,.12);
    border-radius: 18px;
    padding: 14px;
    grid-column: 1 / -1;
}
.admin-fieldset legend { padding: 0 8px; font-weight: 900; }
.checkbox-line { flex-direction: row !important; align-items: center; gap: 9px !important; }
.admin-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.code-block {
    display: block;
    white-space: normal;
    word-break: break-word;
    background: #f8fafc;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 14px;
    padding: 12px;
    font-size: .85rem;
}
.table-scroll { overflow-x: auto; }
.status-badge.sent { color: #047857; background: #d1fae5; }
.status-badge.failed { color: #b91c1c; background: #fee2e2; }
.status-badge.skipped { color: #92400e; background: #fef3c7; }
@media (max-width: 820px) {
    .contact-form-layout, .admin-form-grid, .admin-grid-2 { grid-template-columns: 1fr; }
}

/* V24: Admin sidebar real, compacto y operativo */
body.admin-body {
    background: radial-gradient(circle at top left, #fff1f2 0, #f8fafc 34%, #eef2f7 100%) !important;
}
main.admin-dashboard:has(.admin-sidebar-v24) {
    max-width: 1540px !important;
    width: 100% !important;
    margin: 0 auto !important;
    display: grid !important;
    grid-template-columns: 322px minmax(0, 1fr) !important;
    gap: 24px !important;
    align-items: start !important;
    padding: 22px 20px 86px !important;
}
main.admin-dashboard:has(.admin-sidebar-v24) > .admin-sidebar-v24 {
    grid-column: 1 !important;
    grid-row: 1 / span 500 !important;
}
main.admin-dashboard:has(.admin-sidebar-v24) > :not(.admin-sidebar-v24) {
    grid-column: 2 !important;
    min-width: 0 !important;
}
.admin-sidebar-v24 {
    position: sticky !important;
    top: 14px !important;
    height: calc(100vh - 28px) !important;
    max-height: calc(100vh - 28px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 12px !important;
    border-radius: 28px !important;
    background: rgba(255,255,255,.96) !important;
    border: 1px solid rgba(203,213,225,.9) !important;
    box-shadow: 0 26px 72px rgba(15,23,42,.14) !important;
    backdrop-filter: blur(18px);
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    scrollbar-width: thin;
}
.admin-sidebar-v24::-webkit-scrollbar { width: 8px; }
.admin-sidebar-v24::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 999px; }
.admin-sidebar-head {
    display: grid;
    gap: 10px;
    padding: 4px 4px 2px;
}
.admin-sidebar-logo {
    display: grid !important;
    grid-template-columns: 48px minmax(0,1fr) !important;
    gap: 12px !important;
    align-items: center !important;
    min-height: 68px !important;
    padding: 12px !important;
    border-radius: 22px !important;
    background: linear-gradient(135deg, #0f172a 0%, #172033 72%, #26344e 100%) !important;
    color: #fff !important;
    border: 0 !important;
    box-shadow: 0 16px 34px rgba(15,23,42,.22) !important;
}
.admin-sidebar-logo:hover { transform: none !important; }
.admin-sidebar-logo .mark {
    width: 48px;
    height: 48px;
    border-radius: 18px;
    background: #dc2626;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .82rem;
    font-weight: 950;
    letter-spacing: -.03em;
}
.admin-sidebar-logo strong {
    display: block;
    font-size: 1.06rem;
    line-height: 1.05;
    letter-spacing: -.04em;
}
.admin-sidebar-logo small,
.admin-sidebar-date {
    display: block;
    color: #cbd5e1;
    font-size: .75rem;
    font-weight: 800;
}
.admin-sidebar-date {
    color: #64748b;
    padding: 0 10px;
}
.admin-sidebar-search {
    display: grid;
    grid-template-columns: minmax(0,1fr) 42px;
    gap: 6px;
    padding: 0 4px;
}
.admin-sidebar-search input {
    width: 100%;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    border-radius: 15px;
    padding: 11px 12px;
    font: inherit;
    font-weight: 800;
    outline: 0;
}
.admin-sidebar-search input:focus {
    border-color: #fecaca;
    box-shadow: 0 0 0 3px rgba(220,38,38,.08);
    background: #fff;
}
.admin-sidebar-search button {
    border: 1px solid #e2e8f0;
    background: #fff;
    border-radius: 15px;
    cursor: pointer;
    font-weight: 900;
}
.admin-sidebar-fast {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
    padding: 0 4px;
}
.admin-sidebar-fast a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 40px !important;
    padding: 9px 10px !important;
    border-radius: 15px !important;
    background: #fff !important;
    border: 1px solid #e2e8f0 !important;
    color: #334155 !important;
    font-size: .82rem !important;
    font-weight: 950 !important;
    text-align: center !important;
}
.admin-sidebar-fast a:hover { background: #fee2e2 !important; border-color: #fecaca !important; color: #991b1b !important; transform: none !important; }
.admin-sidebar-v24 .admin-nav-section {
    background: #f8fafc !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 20px !important;
    padding: 10px !important;
    display: grid !important;
    gap: 8px !important;
}
.admin-sidebar-v24 .admin-nav-section.current {
    background: #fff !important;
    border-color: #fecaca !important;
    box-shadow: inset 4px 0 0 #dc2626, 0 12px 26px rgba(220,38,38,.06) !important;
}
.admin-sidebar-v24 .admin-nav-label {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 0 4px !important;
    margin: 0 !important;
    color: #64748b !important;
    font-size: .68rem !important;
    font-weight: 950 !important;
    letter-spacing: .11em !important;
    text-transform: uppercase !important;
}
.admin-sidebar-v24 .admin-nav-label::after {
    content: "";
    height: 1px;
    flex: 1;
    background: #e2e8f0;
}
.admin-sidebar-v24 .admin-nav-links {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 4px !important;
}
.admin-sidebar-v24 .admin-side-link,
.admin-sidebar-v24 a.admin-side-link {
    position: relative;
    display: grid !important;
    grid-template-columns: 34px minmax(0,1fr) auto !important;
    gap: 9px !important;
    align-items: center !important;
    min-height: 48px !important;
    padding: 7px 9px !important;
    margin: 0 !important;
    border-radius: 15px !important;
    background: transparent !important;
    border: 1px solid transparent !important;
    color: #334155 !important;
    text-align: left !important;
    font-weight: 900 !important;
    white-space: normal !important;
}
.admin-sidebar-v24 .admin-side-link:hover {
    background: #fff !important;
    border-color: #e2e8f0 !important;
    color: #0f172a !important;
    transform: translateX(2px) !important;
}
.admin-sidebar-v24 .admin-side-link.active {
    background: linear-gradient(135deg,#dc2626,#ef4444) !important;
    color: #fff !important;
    border-color: transparent !important;
    box-shadow: 0 12px 24px rgba(220,38,38,.24) !important;
}
.admin-sidebar-v24 .nav-icon {
    width: 34px;
    height: 34px;
    border-radius: 13px;
    background: #fff;
    border: 1px solid #e2e8f0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}
.admin-sidebar-v24 .admin-side-link.active .nav-icon {
    background: rgba(255,255,255,.18);
    border-color: rgba(255,255,255,.28);
}
.admin-sidebar-v24 .nav-copy {
    min-width: 0;
    display: block;
}
.admin-sidebar-v24 .nav-copy strong {
    display: block;
    color: inherit;
    font-size: .88rem;
    line-height: 1.1;
}
.admin-sidebar-v24 .nav-copy small {
    display: block;
    color: #64748b;
    font-size: .68rem;
    line-height: 1.15;
    font-weight: 800;
    margin-top: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-sidebar-v24 .admin-side-link.active .nav-copy small { color: rgba(255,255,255,.78); }
.admin-sidebar-v24 .nav-badge {
    min-width: 24px;
    height: 24px;
    padding: 0 7px;
    border-radius: 999px;
    background: #dc2626;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .72rem;
    font-weight: 950;
    box-shadow: 0 8px 18px rgba(220,38,38,.22);
}
.admin-sidebar-v24 .admin-side-link.active .nav-badge {
    background: #fff;
    color: #dc2626;
}
.admin-sidebar-bottom {
    position: sticky;
    bottom: -12px;
    margin-top: auto;
    padding: 10px 4px 4px;
    background: linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,.98) 22%);
}
.admin-sidebar-v24 .logout {
    background: #fff !important;
    border-color: #fecaca !important;
    color: #b91c1c !important;
    justify-content: stretch !important;
}
.admin-sidebar-v24 .logout:hover { background: #fee2e2 !important; color: #991b1b !important; transform: none !important; }
.admin-sidebar-v24 .logout .nav-icon { color: #b91c1c; background: #fee2e2; border-color: #fecaca; }
.admin-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.admin-topbar .eyebrow { margin-bottom: 8px; }
.admin-topbar h1 { margin-bottom: 8px !important; }
@supports not selector(:has(*)) {
    main.admin-dashboard { max-width: 1240px !important; display: block !important; padding: 20px !important; }
    .admin-sidebar-v24 { position: static !important; height: auto !important; max-height: none !important; margin-bottom: 22px !important; }
}
@media (max-width: 1180px) {
    main.admin-dashboard:has(.admin-sidebar-v24) {
        grid-template-columns: 1fr !important;
        padding: 16px 12px 76px !important;
    }
    main.admin-dashboard:has(.admin-sidebar-v24) > .admin-sidebar-v24,
    main.admin-dashboard:has(.admin-sidebar-v24) > :not(.admin-sidebar-v24) {
        grid-column: 1 !important;
        grid-row: auto !important;
    }
    .admin-sidebar-v24 {
        position: static !important;
        height: auto !important;
        max-height: none !important;
    }
    .admin-sidebar-v24 .admin-nav-links {
        grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)) !important;
    }
    .admin-sidebar-bottom {
        position: static;
        background: transparent;
        padding-top: 0;
    }
}
@media (max-width: 720px) {
    .admin-sidebar-v24 .admin-nav-links,
    .admin-sidebar-fast {
        grid-template-columns: 1fr !important;
    }
    .admin-sidebar-v24 .nav-copy small {
        white-space: normal;
    }
    .admin-topbar {
        display: block;
    }
}

/* Compatibilidad plugin FacturaScripts root */
.nmc-public .site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.96); border-bottom: 1px solid #e5e7eb; backdrop-filter: blur(10px); }
.nmc-public .header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 0; }
.nmc-public .brand { display: inline-flex; align-items: center; gap: .55rem; font-weight: 800; text-decoration: none; color: #111827; }
.nmc-public .brand-mark { display: inline-flex; width: 2.35rem; height: 2.35rem; border-radius: .85rem; align-items: center; justify-content: center; background: #111827; color: #fff; font-size: .8rem; }
.nmc-public .main-nav { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; }
.nmc-public .main-nav a { text-decoration: none; color: #374151; font-weight: 600; font-size: .95rem; }
.nmc-public .nav-cta { display: inline-flex; align-items: center; justify-content: center; padding: .65rem .9rem; border-radius: 999px; background: #16a34a; color: #fff; text-decoration: none; font-weight: 700; }
.nmc-public .site-footer { margin-top: 3rem; padding: 2rem 0; background: #111827; color: #e5e7eb; }
.nmc-public .site-footer a { color: #fff; }
.nmc-public .footer-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.nmc-public .grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.nmc-public .card, .nmc-public .center-card { background: #fff; border: 1px solid #e5e7eb; border-radius: 1rem; padding: 1.25rem; box-shadow: 0 8px 24px rgba(15,23,42,.06); }
.nmc-public .centers-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; }
.nmc-public .check-list { padding-left: 1.2rem; }
@media (max-width: 800px) { .nmc-public .header-inner, .nmc-public .main-nav { align-items: flex-start; } .nmc-public .header-inner { flex-direction: column; } .nmc-public .footer-grid, .nmc-public .grid-2 { grid-template-columns: 1fr; } }

/* Header/logo v1.1: logo textual estilo web original y enlace seguro a home pública. */
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 22px; width: 100%; }
.brand-block { display: inline-flex; flex-direction: column; align-items: flex-start; justify-content: center; min-width: 170px; text-decoration: none; }
.brand-block:hover .logo-text { color: var(--red-dark); }
.logo-text { font-weight: 900; font-size: 2rem; letter-spacing: -.04em; color: var(--red); line-height: 1; }
.brand-tagline { margin-top: 4px; font-size: .82rem; font-weight: 800; color: var(--muted); line-height: 1.1; white-space: nowrap; }
.nav-cta { display: inline-flex; align-items: center; justify-content: center; padding: 11px 18px; border-radius: 999px; background: var(--wh); color: white; font-weight: 900; box-shadow: 0 10px 18px rgba(37, 211, 102, .22); }
@media (max-width: 860px) {
    .header-inner { justify-content: center; text-align: center; }
    .brand-block { align-items: center; width: 100%; }
    .brand-tagline { white-space: normal; }
}

/* v1.2: logo publico sin slogan */
.brand-logo-only { min-width: auto; }
.brand-logo-only .logo-text { display: inline-flex; align-items: center; line-height: 1; }
.brand-logo-only .brand-tagline { display: none !important; }


/* v1.5 menú público agrupado */
.main-nav.grouped{position:relative;gap:10px}.nav-group{position:relative}.nav-group>button{border:0;background:transparent;padding:9px 12px;border-radius:999px;color:#334155;font-weight:900;font-size:.92rem;cursor:pointer}.nav-group>button:after{content:'▾';font-size:.65rem;margin-left:6px}.nav-group:hover>button,.nav-group:focus-within>button{background:var(--red-soft);color:var(--red-dark)}.nav-menu{position:absolute;top:calc(100% + 8px);left:0;min-width:220px;background:white;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:8px;z-index:50;display:none}.nav-group:hover .nav-menu,.nav-group:focus-within .nav-menu{display:block}.nav-menu a{display:block;border-radius:12px;padding:10px 12px;white-space:nowrap}.nav-highlight{background:var(--red)!important;color:#fff!important}.nav-highlight:hover{background:var(--red-dark)!important}.footer a{text-decoration:none}@media(max-width:860px){.main-nav.grouped{align-items:stretch}.nav-group{width:100%}.nav-group>button{width:100%;text-align:left;background:#fff}.nav-menu{position:static;display:block;box-shadow:none;border:0;background:transparent;padding:0 0 4px 12px}.nav-menu a{padding:7px 10px}.nav-highlight{display:inline-flex;justify-content:center}}


/* v1.6: menú público rediseñado + móvil usable */
.mobile-nav-toggle { display: none; }
.site-header { position: sticky; top: 0; z-index: 180; background: rgba(255,255,255,.96); backdrop-filter: blur(16px); border-bottom: 1px solid rgba(15,23,42,.08); }
.site-header-main { gap: 18px; padding-top: 16px; padding-bottom: 10px; }
.header-contact-card { margin-left: auto; }
.main-nav.nmc-menu-v16 { display: flex; align-items: center; justify-content: center; gap: 8px; background: #fff; border: 1px solid #e5e7eb; border-radius: 999px; padding: 8px; box-shadow: 0 12px 30px rgba(15,23,42,.06); margin-top: 8px; }
.main-nav.nmc-menu-v16 > a, .main-nav.nmc-menu-v16 summary { min-height: 40px; display: inline-flex; align-items: center; gap: 6px; padding: 9px 13px; border-radius: 999px; color: #334155; font-weight: 900; font-size: .9rem; cursor: pointer; list-style: none; white-space: nowrap; }
.main-nav.nmc-menu-v16 summary::-webkit-details-marker { display: none; }
.main-nav.nmc-menu-v16 summary::after { content: "▾"; font-size: .72rem; color: #94a3b8; }
.main-nav.nmc-menu-v16 > a:hover, .main-nav.nmc-menu-v16 .nav-group:hover > summary, .main-nav.nmc-menu-v16 .nav-group[open] > summary { background: #fee2e2; color: #991b1b; }
.main-nav.nmc-menu-v16 .nav-highlight { background: #dc2626; color: #fff; box-shadow: 0 10px 22px rgba(220,38,38,.24); }
.main-nav.nmc-menu-v16 .nav-highlight:hover { background: #b91c1c; color: #fff; }
.main-nav.nmc-menu-v16 .nav-group { position: relative; }
.main-nav.nmc-menu-v16 .nav-menu { position: absolute; top: calc(100% + 10px); left: 0; min-width: 250px; display: none; padding: 10px; border-radius: 22px; background: #fff; border: 1px solid #e5e7eb; box-shadow: 0 24px 55px rgba(15,23,42,.16); }
.main-nav.nmc-menu-v16 .nav-group:hover .nav-menu, .main-nav.nmc-menu-v16 .nav-group[open] .nav-menu { display: grid; gap: 4px; }
.main-nav.nmc-menu-v16 .nav-menu a { display: flex; align-items: center; min-height: 40px; padding: 10px 12px; border-radius: 14px; color: #334155; font-weight: 850; }
.main-nav.nmc-menu-v16 .nav-menu a:hover { background: #f8fafc; color: #dc2626; }
@media (max-width: 860px) {
    .top-banner-smart { font-size: .78rem; }
    .top-banner-inner { justify-content: center; text-align: center; gap: 8px; }
    .site-header { padding: 0; }
    .site-header-main { display: grid; grid-template-columns: 1fr auto; align-items: center; padding: 12px 16px; }
    .brand-block.brand-logo-only { min-width: 0; }
    .logo-text { font-size: 1.65rem; letter-spacing: -.05em; }
    .header-contact-card { grid-column: 1 / -1; width: 100%; margin-left: 0; display: grid; grid-template-columns: 1fr; gap: 10px; padding: 12px; border-radius: 18px; background: #f8fafc; }
    .header-contact-copy span { display: none; }
    .contact-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
    .btn-contact { min-height: 44px; justify-content: center; padding: 10px 12px; }
    .mobile-nav-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid #e5e7eb; background: #fff; color: #0f172a; border-radius: 999px; min-height: 44px; padding: 0 14px; font-weight: 900; box-shadow: 0 10px 22px rgba(15,23,42,.08); }
    .mobile-nav-toggle i, .mobile-nav-toggle i::before, .mobile-nav-toggle i::after { display:block; width:18px; height:2px; background:#0f172a; border-radius:999px; content:""; }
    .mobile-nav-toggle i { position: relative; }
    .mobile-nav-toggle i::before { position:absolute; top:-6px; left:0; }
    .mobile-nav-toggle i::after { position:absolute; top:6px; left:0; }
    .main-nav.nmc-menu-v16 { display: none; position: fixed; z-index: 500; left: 12px; right: 12px; top: 82px; max-height: calc(100vh - 155px); overflow: auto; margin: 0; padding: 12px; border-radius: 24px; box-shadow: 0 30px 80px rgba(15,23,42,.24); align-items: stretch; justify-content: flex-start; flex-direction: column; gap: 7px; }
    body.nmc-menu-open .main-nav.nmc-menu-v16 { display: flex; }
    body.nmc-menu-open .mobile-nav-toggle { background: #dc2626; color: #fff; border-color: #dc2626; }
    body.nmc-menu-open .mobile-nav-toggle i, body.nmc-menu-open .mobile-nav-toggle i::before, body.nmc-menu-open .mobile-nav-toggle i::after { background: #fff; }
    .main-nav.nmc-menu-v16 > a, .main-nav.nmc-menu-v16 summary { width: 100%; justify-content: space-between; min-height: 48px; padding: 12px 14px; border-radius: 16px; background: #f8fafc; }
    .main-nav.nmc-menu-v16 .nav-group { width: 100%; }
    .main-nav.nmc-menu-v16 .nav-menu { position: static; display: grid; min-width: 0; box-shadow: none; border: 0; background: transparent; padding: 5px 0 6px 10px; }
    .main-nav.nmc-menu-v16 .nav-menu a { min-height: 44px; background: #fff; border: 1px solid #e5e7eb; margin-bottom: 5px; }
    .hero-banner { margin-top: 18px; }
    .hero-text h1 { font-size: clamp(2.1rem, 11vw, 3.15rem); }
    .hero-text p { font-size: 1rem; }
    .hero-actions, .contact-buttons, .center-cta { width: 100%; }
    .hero-btn, .btn-card, .note-btn { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }
    .centro-card, .card, .case-card, .service-card, .process-card, .testimonial-card { box-shadow: 0 10px 28px rgba(15,23,42,.07); }
    .mobile-cta-bar { grid-template-columns: repeat(3, 1fr) !important; }
    .mobile-cta-bar a { min-height: 56px; display: grid; place-items: center; font-size: .88rem; }
    .mobile-cta-bar a:first-child { background: #0f172a; color: #fff; }
    body { padding-bottom: 64px; }
}


/* v1.7 revisión general: navegación más clara, móvil más usable y piezas de conversión */
.top-banner-v17 { background: linear-gradient(90deg, #991b1b, #dc2626); color: #fff; }
.top-banner-v17 .top-banner-inner { display: flex; justify-content: center; align-items: center; gap: 14px; min-height: 38px; font-weight: 850; }
.top-banner-v17 a { color: #fff; text-decoration: underline; text-underline-offset: 3px; font-weight: 950; }
.site-header .brand-logo-only .logo-text { font-size: clamp(1.65rem, 4vw, 2.2rem); }
.header-contact-card { display: flex; align-items: center; gap: 14px; border: 1px solid #e5e7eb; border-radius: 22px; padding: 10px 12px; background: #fff; box-shadow: 0 12px 28px rgba(15,23,42,.06); }
.header-contact-copy strong { display: block; font-size: .95rem; color: #0f172a; }
.header-contact-copy span { color: #64748b; font-size: .82rem; }
.main-nav.nmc-menu-v17 { display:flex; align-items:center; justify-content:center; gap:8px; background:#fff; border:1px solid #e5e7eb; border-radius:999px; padding:8px; box-shadow:0 12px 30px rgba(15,23,42,.06); margin-top:8px; }
.main-nav.nmc-menu-v17 > a, .main-nav.nmc-menu-v17 summary { min-height:42px; display:inline-flex; align-items:center; gap:6px; padding:9px 14px; border-radius:999px; color:#334155; font-weight:950; font-size:.92rem; cursor:pointer; list-style:none; white-space:nowrap; }
.main-nav.nmc-menu-v17 summary::-webkit-details-marker { display:none; }
.main-nav.nmc-menu-v17 summary::after { content:"▾"; font-size:.72rem; color:#94a3b8; }
.main-nav.nmc-menu-v17 > a:hover, .main-nav.nmc-menu-v17 .nav-group:hover > summary, .main-nav.nmc-menu-v17 .nav-group[open] > summary { background:#fee2e2; color:#991b1b; }
.main-nav.nmc-menu-v17 .nav-highlight { background:#dc2626; color:#fff; box-shadow:0 10px 22px rgba(220,38,38,.24); }
.main-nav.nmc-menu-v17 .nav-highlight:hover { background:#b91c1c; color:#fff; }
.main-nav.nmc-menu-v17 .nav-group { position:relative; }
.main-nav.nmc-menu-v17 .nav-menu { position:absolute; top:calc(100% + 12px); left:0; min-width:245px; display:none; padding:10px; border-radius:24px; background:#fff; border:1px solid #e5e7eb; box-shadow:0 28px 70px rgba(15,23,42,.18); z-index:600; }
.main-nav.nmc-menu-v17 .nav-menu-wide { min-width: 380px; grid-template-columns: 1fr 1fr; }
.main-nav.nmc-menu-v17 .nav-group:hover .nav-menu, .main-nav.nmc-menu-v17 .nav-group[open] .nav-menu { display:grid; gap:5px; }
.main-nav.nmc-menu-v17 .nav-menu a { display:flex; flex-direction:column; gap:2px; min-height:44px; padding:10px 12px; border-radius:16px; color:#334155; font-weight:900; }
.main-nav.nmc-menu-v17 .nav-menu a:hover { background:#f8fafc; color:#dc2626; }
.main-nav.nmc-menu-v17 .nav-menu small { color:#64748b; font-size:.76rem; font-weight:700; line-height:1.25; }
.mobile-menu-backdrop { display:none; }
body.nmc-menu-open { overflow:hidden; }
.hero-banner.wrap, .center-detail-hero.wrap { width: min(100% - 28px, 1200px); }
.hero-banner .hero-actions .hero-btn { min-width: 178px; }
.card, .centro-card, .center-card { overflow-wrap: anywhere; }
.mobile-cta-v17 { grid-template-columns: repeat(4, 1fr) !important; }
.mobile-cta-v17 a { min-height: 58px; }
.mobile-cta-v17 a:nth-child(4) { background: var(--wh); color:#fff; }
.mobile-cta-v17 a:nth-child(3) { background:#0f172a; color:#fff; }
@media (max-width: 980px) {
    .site-header-main { grid-template-columns: 1fr auto !important; }
    .header-contact-card { grid-column: 1 / -1; width:100%; justify-content:space-between; }
    .main-nav.nmc-menu-v17 { display:none; position:fixed; z-index:700; left:12px; right:12px; top:86px; max-height:calc(100dvh - 160px); overflow:auto; margin:0; padding:12px; border-radius:24px; box-shadow:0 30px 80px rgba(15,23,42,.28); align-items:stretch; justify-content:flex-start; flex-direction:column; gap:7px; }
    body.nmc-menu-open .main-nav.nmc-menu-v17 { display:flex; }
    body.nmc-menu-open .mobile-menu-backdrop { display:block; position:fixed; inset:0; background:rgba(15,23,42,.42); z-index:650; }
    .main-nav.nmc-menu-v17 > a, .main-nav.nmc-menu-v17 summary { width:100%; justify-content:space-between; min-height:50px; padding:13px 14px; border-radius:16px; background:#f8fafc; }
    .main-nav.nmc-menu-v17 .nav-group { width:100%; }
    .main-nav.nmc-menu-v17 .nav-menu, .main-nav.nmc-menu-v17 .nav-menu-wide { position:static; display:grid; min-width:0; grid-template-columns:1fr; box-shadow:none; border:0; background:transparent; padding:6px 0 8px 10px; }
    .main-nav.nmc-menu-v17 .nav-menu a { min-height:48px; background:#fff; border:1px solid #e5e7eb; margin-bottom:5px; }
}
@media (max-width: 640px) {
    body { padding-bottom: 64px; }
    .top-banner-v17 .top-banner-inner { flex-direction:column; gap:2px; padding:7px 12px; font-size:.78rem; line-height:1.25; }
    .site-header-main { padding: 10px 14px !important; }
    .header-contact-card { display:none; }
    .mobile-nav-toggle { min-width: 96px; }
    .hero-banner, .center-detail-hero { padding: 30px 20px !important; border-radius: 28px !important; grid-template-columns: 1fr !important; }
    .hero-actions { display:grid; grid-template-columns:1fr; }
    .hero-btn, .note-btn, .btn-card { width:100%; }
    .centro-footer { grid-template-columns: 1fr !important; }
    .footer-grid { gap: 28px; }
    .mobile-cta-v17 a { font-size: .78rem; padding: 10px 4px; }
}


/* v1.8: cabecera pública simple y comercial */
.top-banner-v18 {
    background: #b91c1c;
    color: #fff;
    font-size: .82rem;
    font-weight: 850;
}
.top-banner-inner-v18 {
    min-height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    white-space: nowrap;
}
.nmc-header-v18 {
    position: sticky;
    top: 0;
    z-index: 180;
    display: block !important;
    padding: 0 !important;
    background: rgba(255, 255, 255, .98);
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 10px 26px rgba(15, 23, 42, .055);
    backdrop-filter: blur(14px);
}
.header-shell-v18 {
    min-height: 74px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 22px;
    padding-top: 0;
    padding-bottom: 0;
}
.brand-v18 {
    display: inline-flex;
    align-items: center;
    min-width: 160px;
}
.brand-v18 .logo-text,
.nmc-header-v18 .logo-text {
    font-size: clamp(1.65rem, 2.2vw, 2rem) !important;
    font-weight: 950;
    letter-spacing: -.055em;
    color: #dc2626;
}
.nmc-menu-v18 {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 2px;
    width: 100%;
    min-width: 0;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.nmc-menu-v18 > a,
.nmc-menu-v18 summary {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 12px;
    border-radius: 12px;
    color: #1f2937;
    font-weight: 900;
    font-size: .9rem;
    cursor: pointer;
    list-style: none;
    white-space: nowrap;
    transition: background .15s ease, color .15s ease;
}
.nmc-menu-v18 summary::-webkit-details-marker { display: none; }
.nmc-menu-v18 summary::after {
    content: "";
    width: 6px;
    height: 6px;
    border-right: 2px solid #94a3b8;
    border-bottom: 2px solid #94a3b8;
    transform: rotate(45deg) translateY(-2px);
    margin-left: 2px;
}
.nmc-menu-v18 > a:hover,
.nmc-menu-v18 > a[aria-current="page"],
.nmc-menu-v18 .nav-group:hover > summary,
.nmc-menu-v18 .nav-group[open] > summary {
    background: #fee2e2;
    color: #991b1b;
}
.nmc-menu-v18 .nav-group { position: relative; }
.nmc-menu-v18 .nav-menu {
    position: absolute;
    top: calc(100% + 12px);
    left: 0;
    min-width: 245px;
    display: none;
    padding: 10px;
    border-radius: 20px;
    background: #fff;
    border: 1px solid #e5e7eb;
    box-shadow: 0 28px 70px rgba(15,23,42,.17);
    z-index: 700;
}
.nmc-menu-v18 .nav-menu-wide {
    min-width: 410px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.nmc-menu-v18 .nav-group:hover .nav-menu,
.nmc-menu-v18 .nav-group[open] .nav-menu {
    display: grid;
    gap: 5px;
}
.nmc-menu-v18 .nav-menu a {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-height: 44px;
    padding: 10px 12px;
    border-radius: 14px;
    color: #334155;
    font-weight: 900;
}
.nmc-menu-v18 .nav-menu a:hover {
    background: #f8fafc;
    color: #dc2626;
}
.nmc-menu-v18 .nav-menu small {
    color: #64748b;
    font-size: .76rem;
    font-weight: 700;
    line-height: 1.25;
}
.header-actions-v18 {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    white-space: nowrap;
}
.header-actions-v18 a {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 10px 14px;
    font-weight: 950;
    font-size: .88rem;
    line-height: 1;
    transition: transform .15s ease, background .15s ease, color .15s ease;
}
.header-actions-v18 a:hover { transform: translateY(-1px); }
.header-phone-v18 {
    color: #0f172a;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
}
.header-wa-v18 {
    color: #fff;
    background: #25D366;
    border: 1px solid #25D366;
    box-shadow: 0 10px 20px rgba(37, 211, 102, .22);
}
.header-cta-v18 {
    color: #fff;
    background: #dc2626;
    border: 1px solid #dc2626;
    box-shadow: 0 12px 22px rgba(220, 38, 38, .2);
}
.header-cta-v18:hover { background: #b91c1c; }
.nmc-header-v18 .mobile-nav-toggle-v18 { display: none; }

@media (max-width: 1120px) {
    .header-shell-v18 { gap: 14px; }
    .nmc-menu-v18 > a,
    .nmc-menu-v18 summary { padding-left: 9px; padding-right: 9px; font-size: .86rem; }
    .header-phone-v18 { display: none !important; }
}
@media (max-width: 940px) {
    .top-banner-inner-v18 { justify-content: flex-start; overflow-x: auto; padding: 0 16px; gap: 14px; }
    .header-shell-v18 {
        min-height: 64px;
        grid-template-columns: 1fr auto auto;
        gap: 10px;
    }
    .nmc-header-v18 .mobile-nav-toggle-v18 {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        gap: 8px;
        border: 1px solid #e5e7eb;
        background: #fff;
        color: #0f172a;
        border-radius: 999px;
        min-height: 42px;
        padding: 0 14px;
        font-weight: 950;
        box-shadow: 0 10px 22px rgba(15,23,42,.08);
    }
    .nmc-header-v18 .mobile-nav-toggle-v18 i,
    .nmc-header-v18 .mobile-nav-toggle-v18 i::before,
    .nmc-header-v18 .mobile-nav-toggle-v18 i::after {
        display: block;
        width: 18px;
        height: 2px;
        background: #0f172a;
        border-radius: 999px;
        content: "";
    }
    .nmc-header-v18 .mobile-nav-toggle-v18 i { position: relative; }
    .nmc-header-v18 .mobile-nav-toggle-v18 i::before { position: absolute; top: -6px; left: 0; }
    .nmc-header-v18 .mobile-nav-toggle-v18 i::after { position: absolute; top: 6px; left: 0; }
    body.nmc-menu-open .nmc-header-v18 .mobile-nav-toggle-v18 {
        background: #dc2626;
        color: #fff;
        border-color: #dc2626;
    }
    body.nmc-menu-open .nmc-header-v18 .mobile-nav-toggle-v18 i,
    body.nmc-menu-open .nmc-header-v18 .mobile-nav-toggle-v18 i::before,
    body.nmc-menu-open .nmc-header-v18 .mobile-nav-toggle-v18 i::after { background: #fff; }
    .nmc-menu-v18 {
        display: none !important;
        position: fixed;
        left: 12px;
        right: 12px;
        top: 96px;
        max-height: calc(100dvh - 168px);
        overflow: auto;
        z-index: 720;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 8px;
        background: #fff !important;
        border: 1px solid #e5e7eb !important;
        border-radius: 24px !important;
        box-shadow: 0 30px 80px rgba(15,23,42,.30) !important;
        padding: 12px !important;
    }
    body.nmc-menu-open .nmc-menu-v18 { display: flex !important; }
    body.nmc-menu-open .mobile-menu-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(15, 23, 42, .42);
        z-index: 650;
    }
    .nmc-menu-v18 > a,
    .nmc-menu-v18 summary {
        width: 100%;
        min-height: 50px;
        justify-content: space-between;
        padding: 13px 14px;
        border-radius: 16px;
        background: #f8fafc;
        font-size: .94rem;
    }
    .nmc-menu-v18 .nav-group { width: 100%; }
    .nmc-menu-v18 .nav-menu,
    .nmc-menu-v18 .nav-menu-wide {
        position: static;
        display: grid;
        min-width: 0;
        grid-template-columns: 1fr;
        box-shadow: none;
        border: 0;
        background: transparent;
        padding: 6px 0 8px 10px;
    }
    .nmc-menu-v18 .nav-menu a {
        min-height: 48px;
        background: #fff;
        border: 1px solid #e5e7eb;
        margin-bottom: 5px;
    }
    .header-actions-v18 { gap: 6px; }
    .header-actions-v18 .header-wa-v18 { display: none; }
    .header-actions-v18 .header-cta-v18 { padding-left: 13px; padding-right: 13px; }
}
@media (max-width: 560px) {
    .top-banner-v18 { display: none; }
    .header-shell-v18 { min-height: 62px; padding-left: 14px; padding-right: 14px; }
    .brand-v18 { min-width: 0; }
    .brand-v18 .logo-text,
    .nmc-header-v18 .logo-text { font-size: 1.55rem !important; }
    .header-actions-v18 { display: none; }
    .header-shell-v18 { grid-template-columns: 1fr auto; }
    .nmc-menu-v18 { top: 74px; max-height: calc(100dvh - 138px); }
}

/* v1.13 SEO + Conversión */
.center-hero-conversion {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) 390px;
    gap: 28px;
    align-items: stretch;
    margin-bottom: 34px;
}
.center-hero-copy {
    background: linear-gradient(135deg, #111827, #1e293b 52%, #7f1d1d);
    color: #fff;
    border-radius: 34px;
    padding: clamp(28px, 5vw, 54px);
    box-shadow: 0 24px 50px -24px rgba(15,23,42,.55);
}
.center-hero-copy h1 {
    font-size: clamp(2.1rem, 5vw, 4rem);
    line-height: .98;
    letter-spacing: -.06em;
    font-weight: 950;
    margin: 0 0 16px;
}
.center-hero-copy p { color: #e5e7eb; font-size: 1.09rem; max-width: 760px; margin-bottom: 22px; }
.center-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.trust-strip { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 24px; }
.trust-strip span { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); border-radius: 999px; padding: 8px 12px; font-weight: 900; font-size: .86rem; }
.conversion-card {
    background: #fff;
    border: 1px solid #fee2e2;
    border-radius: 30px;
    padding: 26px;
    box-shadow: 0 24px 42px -26px rgba(220,38,38,.42);
    position: sticky;
    top: 18px;
    align-self: start;
}
.conversion-price { background: #fff7ed; border: 1px solid #fed7aa; border-radius: 24px; padding: 18px; text-align: center; margin-bottom: 18px; color: #9a3412; }
.conversion-price small, .conversion-price span { display: block; font-weight: 800; font-size: .8rem; }
.conversion-price strong { display: block; font-size: clamp(2rem, 5vw, 3.1rem); line-height: 1; color: #dc2626; margin: 5px 0; }
.conversion-card dl { display: grid; gap: 10px; margin: 0 0 18px; }
.conversion-card dl div { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid #f1f5f9; padding-bottom: 9px; }
.conversion-card dt { color: #64748b; font-weight: 900; }
.conversion-card dd { color: #0f172a; font-weight: 950; text-align: right; }
.conversion-primary { display: flex; justify-content: center; align-items: center; width: 100%; background: var(--red); color: #fff; border-radius: 999px; padding: 14px 16px; font-weight: 950; box-shadow: var(--shadow-red); }
.detail-panel { background: #fff; border: 1px solid #e5e7eb; border-radius: 28px; padding: 28px; box-shadow: var(--shadow); }
.detail-panel h2 { font-size: 1.6rem; line-height: 1.1; letter-spacing: -.03em; margin-bottom: 10px; color: var(--ink); }
.panel-actions { margin-top: 18px; }
.hero-btn.secondary.dark { background: #111827; color: #fff; border-color: #111827; }
.feature-grid, .conversion-feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.feature-card { background: #fff; border: 1px solid #e5e7eb; border-radius: 26px; padding: 24px; box-shadow: var(--shadow); }
.feature-card span { font-size: 2rem; display: inline-block; margin-bottom: 10px; }
.feature-card h3 { font-size: 1.18rem; font-weight: 950; color: var(--ink); margin-bottom: 8px; }
.feature-card p { color: #64748b; }
.center-cta-band { display: flex; align-items: center; justify-content: space-between; gap: 22px; background: linear-gradient(135deg, #fee2e2, #fff); border: 1px solid #fecaca; border-radius: 34px; padding: 30px; box-shadow: var(--shadow); }
.center-cta-band h2 { font-size: clamp(1.5rem,3vw,2.35rem); font-weight: 950; letter-spacing: -.04em; margin-bottom: 8px; color: var(--ink); }
.center-cta-band p { color: #64748b; max-width: 720px; }
.center-cta-actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.seo-copy-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,280px),1fr)); gap: 18px; }
@media (max-width: 980px) {
    .center-hero-conversion { grid-template-columns: 1fr; }
    .conversion-card { position: static; }
    .feature-grid, .conversion-feature-grid { grid-template-columns: 1fr; }
    .center-cta-band { align-items: stretch; flex-direction: column; }
    .center-cta-actions { justify-content: stretch; }
}
@media (max-width: 640px) {
    .center-hero-copy, .conversion-card, .detail-panel, .center-cta-band { border-radius: 24px; padding: 22px; }
    .center-hero-actions, .center-cta-actions { display: grid; grid-template-columns: 1fr; }
    .center-hero-actions .hero-btn, .center-cta-actions .hero-btn { width: 100%; }
    .conversion-card dl div { display: block; }
    .conversion-card dd { text-align: left; margin-top: 2px; }
}


/* v1.14 · captación y usabilidad */
.lead-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 460px);
    gap: 26px;
    align-items: stretch;
    margin-top: 28px;
}
.lead-hero-copy {
    background: radial-gradient(circle at 0 0, rgba(220,38,38,.24), transparent 34%), linear-gradient(135deg, #111827, #0f172a);
    color: #fff;
    border-radius: var(--radius-xl);
    padding: clamp(30px, 5vw, 58px);
    box-shadow: var(--shadow);
}
.lead-hero-copy h1 { font-size: clamp(2.1rem, 5vw, 4rem); line-height: 1; letter-spacing: -.055em; margin-bottom: 18px; font-weight: 950; }
.lead-hero-copy p { color: #cbd5e1; font-size: 1.1rem; max-width: 720px; }
.lead-trust-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.lead-trust-row span { background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.16); border-radius: 999px; padding: 8px 12px; font-weight: 900; font-size: .88rem; }
.lead-form-card, .quick-lead-panel {
    background: #fff;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 30px;
    padding: 24px;
    box-shadow: 0 28px 50px -30px rgba(15,23,42,.55);
}
.lead-form-card { display: grid; gap: 13px; }
.lead-form-card label { display: grid; gap: 6px; color: #334155; font-weight: 900; font-size: .88rem; }
.lead-form-card input, .lead-form-card select, .lead-form-card textarea,
.quick-lead-form input, .quick-lead-form textarea {
    width: 100%; border: 1px solid #dbe3ef; background: #f8fafc; border-radius: 16px; padding: 13px 14px; color: #0f172a;
}
.lead-form-card textarea, .quick-lead-form textarea { resize: vertical; min-height: 104px; }
.lead-form-card .full { grid-column: 1 / -1; }
.form-submit { width: 100%; }
.form-legal { color: #64748b; font-size: .82rem; line-height: 1.4; }
.quick-choice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.quick-choice { background: white; border: 1px solid rgba(15,23,42,.08); border-radius: 24px; padding: 22px; box-shadow: var(--shadow); }
.quick-choice strong { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; border-radius: 14px; background: var(--red); color: white; margin-bottom: 12px; }
.quick-choice h2 { font-size: 1.2rem; letter-spacing: -.025em; margin-bottom: 6px; }
.quick-choice p { color: #64748b; }
.quick-lead-panel { display: grid; grid-template-columns: .9fr 1.1fr; gap: 22px; align-items: center; background: linear-gradient(135deg, #fff, #fff7f7); }
.quick-lead-panel h2 { font-size: clamp(1.55rem, 3vw, 2.35rem); line-height: 1.05; letter-spacing: -.045em; margin-bottom: 10px; }
.quick-lead-panel p { color: #64748b; }
.quick-lead-form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.quick-lead-form textarea, .quick-lead-form button { grid-column: 1 / -1; }
.availability-page .page-hero.compact { margin-top: 28px; }
.header-actions-v18 .header-cta-v18 { box-shadow: 0 14px 22px -14px rgba(220,38,38,.55); }
@media (max-width: 880px) {
    .lead-hero-grid, .quick-lead-panel { grid-template-columns: 1fr; }
    .quick-choice-grid { grid-template-columns: 1fr; }
    .quick-lead-form { grid-template-columns: 1fr; }
    .lead-form-card, .quick-lead-panel { border-radius: 24px; padding: 18px; }
    .lead-hero-copy { border-radius: 28px; }
}

/* v1.15 - reservas siempre mediante portal del centro */
.portal-notice {
    margin: 12px 0 14px;
    padding: 10px 12px;
    border-radius: 14px;
    background: #ecfdf5;
    border: 1px solid #bbf7d0;
    color: #166534;
    font-size: .88rem;
    line-height: 1.35;
    font-weight: 800;
}
.portal-notice.warning {
    background: #fff7ed;
    border-color: #fed7aa;
    color: #9a3412;
}
.btn-card.reserva[href^="http"] { font-weight: 950; }
.center-cta-actions { align-items: center; }

/* v1.16 identidad social + confianza pública */
.nmc-public-trust-strip {
    background: #fff;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 6px 18px rgba(15, 23, 42, .035);
}
.nmc-public-trust-inner {
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    color: #334155;
    font-size: .88rem;
    font-weight: 800;
}
.nmc-public-trust-inner span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 10px;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}
.nmc-public-trust-inner span::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: #22c55e;
    box-shadow: 0 0 0 4px rgba(34,197,94,.12);
}
.footer-socials {
    margin-top: 20px;
}
.footer-socials > strong {
    display: block;
    color: #fff;
    font-size: .75rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    margin-bottom: 10px;
}
.footer-social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}
.footer-social-links a.footer-social-link {
    position: relative;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.14);
    color: #f8fafc;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
    overflow: hidden;
    text-decoration: none;
}
.footer-social-links a.footer-social-link:hover,
.footer-social-links a.footer-social-link:focus-visible {
    color: #fff;
    background: #dc2626;
    border-color: #dc2626;
    transform: translateY(-2px);
    outline: none;
}
.footer-social-links a.footer-social-instagram:hover { background: linear-gradient(135deg, #f97316, #dc2626 45%, #7c3aed); border-color: transparent; }
.footer-social-links a.footer-social-facebook:hover { background: #1877f2; border-color: #1877f2; }
.footer-social-links a.footer-social-linkedin:hover { background: #0a66c2; border-color: #0a66c2; }
.footer-social-links a.footer-social-tiktok:hover { background: #111827; border-color: #38bdf8; }
.footer-social-links a.footer-social-youtube:hover { background: #ff0033; border-color: #ff0033; }
.footer-social-links a.footer-social-link svg {
    width: 22px;
    height: 22px;
    display: block;
    fill: currentColor;
    stroke: currentColor;
    stroke-width: 1.8;
}
.footer-social-links a.footer-social-instagram svg,
.footer-social-links a.footer-social-youtube svg {
    fill: none;
}
.footer-social-links a.footer-social-youtube svg path {
    fill: currentColor;
    stroke: none;
}
.footer-social-links a.footer-social-link span {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
}
@media (max-width: 720px) {
    .nmc-public-trust-strip { display: none; }
    .footer-social-links a.footer-social-link { width: 46px; height: 46px; }
}

/* v1.17 public conversion polish */
.nmc-public .nmc-public-trust-strip{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid rgba(15,23,42,.08);box-shadow:0 10px 24px -24px rgba(15,23,42,.45)}
.nmc-public .nmc-public-trust-inner{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap;padding:8px 16px;font-weight:850;color:#334155;font-size:.88rem}.nmc-public .nmc-public-trust-inner span{display:inline-flex;align-items:center;gap:6px}.nmc-public .nmc-public-trust-inner span:before{content:"✓";color:#16a34a;font-weight:950}.nmc-public .header-cta-v18{box-shadow:0 12px 24px -18px rgba(220,38,38,.7)}
.nmc-public .center-hero-conversion{align-items:stretch}.nmc-public .conversion-card{border:1px solid rgba(220,38,38,.18);box-shadow:0 28px 55px -38px rgba(220,38,38,.6)}.nmc-public .conversion-primary{transition:transform .16s ease,box-shadow .16s ease}.nmc-public .conversion-primary:hover{transform:translateY(-1px);box-shadow:0 18px 30px -20px rgba(220,38,38,.8)}
.nmc-public .quick-lead-panel{background:linear-gradient(135deg,#fff,#fff7f7);border:1px solid #fecaca}.nmc-public .quick-lead-form input,.nmc-public .quick-lead-form textarea,.nmc-public .lead-form-card input,.nmc-public .lead-form-card select,.nmc-public .lead-form-card textarea{font-size:16px}.nmc-public .footer-social-link svg{stroke:currentColor;fill:none;stroke-width:1.9;width:22px;height:22px}.nmc-public .footer-social-link.footer-social-facebook svg,.nmc-public .footer-social-link.footer-social-linkedin svg,.nmc-public .footer-social-link.footer-social-tiktok svg,.nmc-public .footer-social-link.footer-social-x svg,.nmc-public .footer-social-link.footer-social-twitter svg{fill:currentColor;stroke:none}.nmc-public .footer-social-link{min-width:44px;min-height:44px;justify-content:center}.nmc-public .footer-social-link span{font-weight:900}.nmc-public .footer-social-instagram:hover{color:#c13584}.nmc-public .footer-social-facebook:hover{color:#1877f2}.nmc-public .footer-social-tiktok:hover{color:#111827}.nmc-public .footer-social-linkedin:hover{color:#0a66c2}
.nmc-public .mobile-cta-v17{box-shadow:0 -12px 26px -22px rgba(15,23,42,.7)}
@media (max-width: 760px){.nmc-public .top-banner-inner-v18 span:nth-child(n+2){display:none}.nmc-public .nmc-public-trust-inner{justify-content:flex-start;overflow:auto;flex-wrap:nowrap}.nmc-public .nmc-public-trust-inner span{white-space:nowrap}.nmc-public .header-shell-v18{min-height:58px}.nmc-public .brand-v18 .logo-text{font-size:1.28rem}.nmc-public .center-hero-actions,.nmc-public .hero-actions,.nmc-public .center-cta-actions{display:grid;grid-template-columns:1fr;gap:10px}.nmc-public .hero-btn,.nmc-public .conversion-primary,.nmc-public .form-submit{width:100%;justify-content:center;text-align:center;min-height:48px}.nmc-public .quick-lead-form{grid-template-columns:1fr}.nmc-public .quick-lead-panel{padding:18px;border-radius:20px}.nmc-public .footer-social-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.nmc-public .footer-social-link{justify-content:flex-start}}


/* v1.21 - panel, portales visibles y reserva por portal */
.center-portal-mini { margin: 10px 0 0; border-radius: 14px; padding: 8px 10px; font-size: .86rem; font-weight: 800; }
.center-portal-mini.ok { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.center-portal-mini.warn { background: #fff7ed; color: #9a3412; border: 1px solid #fed7aa; }
.portal-reservation-section { padding-top: 18px; }
.portal-reservation-card { border: 1px solid #e5e7eb; border-radius: 28px; background: #fff; box-shadow: 0 20px 60px rgba(15, 23, 42, .08); padding: clamp(22px, 4vw, 34px); display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, .7fr); gap: 24px; align-items: center; }
.visible-portal-card { border-color: rgba(34, 197, 94, .32); background: linear-gradient(135deg, #ffffff 0%, #f0fdf4 100%); }
.portal-missing-card { border-color: rgba(245, 158, 11, .36); background: linear-gradient(135deg, #ffffff 0%, #fffbeb 100%); }
.portal-reservation-card h2 { margin: 8px 0 10px; font-size: clamp(1.45rem, 3vw, 2.1rem); color: #0f172a; letter-spacing: -.04em; }
.portal-reservation-card p { color: #475569; line-height: 1.65; margin: 0 0 14px; }
.portal-check-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.portal-check-list li { color: #0f172a; font-weight: 700; }
.portal-check-list li::before { content: "✓"; display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 999px; background: #dcfce7; color: #15803d; margin-right: 8px; font-weight: 900; }
.portal-reservation-actions { display: grid; gap: 12px; }
.portal-main-cta { justify-content: center; text-align: center; }
.portals-public-page .portal-center-list { display: grid; gap: 12px; }
.portal-center-row { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(180px, .7fr) auto; gap: 14px; align-items: center; border: 1px solid #e5e7eb; border-radius: 18px; padding: 14px; background: #fff; }
.portal-center-row strong { display: block; color: #0f172a; font-size: 1.02rem; }
.portal-center-row small { display: block; color: #64748b; margin-top: 3px; }
.portal-status { display: inline-flex; align-items: center; border-radius: 999px; padding: 4px 10px; font-size: .78rem; font-weight: 900; text-transform: uppercase; letter-spacing: .05em; }
.portal-status.ok { background: #dcfce7; color: #166534; }
.portal-status.warn { background: #fef3c7; color: #92400e; }
.public-portal-card .hero-btn { width: fit-content; }
@media (max-width: 780px) {
  .portal-reservation-card { grid-template-columns: 1fr; border-radius: 22px; }
  .portal-center-row { grid-template-columns: 1fr; }
  .portal-reservation-actions .hero-btn { width: 100%; justify-content: center; }
}

/* v1.22 - pagina como funciona y acciones de producto */
.how-it-works-page .how-hero {
    background: radial-gradient(circle at 14% 0%, rgba(220,38,38,.12), transparent 32%), linear-gradient(135deg, #fff, #f8fafc);
    border: 1px solid #e5e7eb;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .08);
}
.process-grid-v122 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.process-card-v122 {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 24px;
    padding: 22px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .06);
}
.process-card-v122 strong {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    display: inline-grid;
    place-items: center;
    background: #dc2626;
    color: #fff;
    font-weight: 950;
    box-shadow: 0 14px 28px -18px rgba(220, 38, 38, .9);
}
.process-card-v122 h2 {
    margin: 14px 0 8px;
    color: #0f172a;
    letter-spacing: -.035em;
    font-size: 1.22rem;
}
.process-card-v122 p {
    margin: 0;
    color: #475569;
    line-height: 1.6;
}
.portal-explain-v122 {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr);
    gap: 24px;
    align-items: center;
    background: #111827;
    color: #fff;
    border-radius: 30px;
    padding: clamp(24px, 5vw, 44px);
    box-shadow: 0 30px 80px rgba(15, 23, 42, .18);
}
.portal-explain-v122 h2 { color: #fff; margin: 8px 0 10px; font-size: clamp(1.5rem, 3vw, 2.25rem); letter-spacing: -.04em; }
.portal-explain-v122 p { color: #cbd5e1; margin: 0; line-height: 1.7; }
.portal-explain-v122 .portal-check-list li { color: #f8fafc; }
@media (max-width: 980px) {
    .process-grid-v122 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .portal-explain-v122 { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
    .process-grid-v122 { grid-template-columns: 1fr; }
    .process-card-v122 { border-radius: 20px; padding: 18px; }
}

/* v1.23 SEO Factory */
.seo-factory-page .seo-factory-hero {
    position: relative;
    overflow: hidden;
}
.seo-factory-page .seo-factory-hero::after {
    content: "";
    position: absolute;
    right: -80px;
    top: -80px;
    width: 220px;
    height: 220px;
    border-radius: 999px;
    background: rgba(220, 38, 38, .08);
    pointer-events: none;
}
.seo-factory-page .detail-panel {
    min-height: 220px;
}


/* v1.24 - Blog publico y CMS legacy */
.cms-page-v124 { padding: clamp(28px, 5vw, 72px) 0; }
.cms-content-v124 {
    max-width: 980px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 28px;
    padding: clamp(22px, 5vw, 48px);
    box-shadow: 0 24px 70px rgba(15, 23, 42, .07);
    color: #111827;
}
.cms-content-v124 h1 { font-size: clamp(2rem, 5vw, 3.4rem); line-height: 1.05; letter-spacing: -.055em; margin: 0 0 18px; }
.cms-content-v124 h2 { font-size: clamp(1.35rem, 3vw, 2rem); letter-spacing: -.035em; margin: 28px 0 10px; }
.cms-content-v124 h3 { font-size: 1.18rem; margin: 20px 0 8px; }
.cms-content-v124 p, .cms-content-v124 li { color: #334155; line-height: 1.75; font-size: 1.02rem; }
.cms-content-v124 a { color: #dc2626; font-weight: 800; }
.blog-hero-v124 {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(260px, .55fr);
    gap: clamp(18px, 4vw, 36px);
    align-items: stretch;
    margin-top: 32px;
    padding: clamp(28px, 6vw, 54px);
    border-radius: 34px;
    background: radial-gradient(circle at 12% 0%, rgba(220,38,38,.14), transparent 35%), linear-gradient(135deg, #111827, #172033 68%, #2b1119);
    color: #fff;
    box-shadow: 0 34px 90px rgba(15, 23, 42, .18);
}
.blog-hero-v124.compact { grid-template-columns: 1fr; }
.blog-hero-copy-v124 h1 { color: #fff; font-size: clamp(2.2rem, 6vw, 4.2rem); line-height: .98; letter-spacing: -.07em; margin: 12px 0 18px; }
.blog-hero-copy-v124 p { color: #dbeafe; max-width: 820px; font-size: 1.06rem; line-height: 1.7; }
.blog-hero-panel-v124 {
    display: grid;
    align-content: center;
    gap: 10px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 24px;
    padding: 20px;
}
.blog-hero-panel-v124 strong { color: #fff; text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; }
.blog-hero-panel-v124 a { color: #fff; text-decoration: none; background: rgba(255,255,255,.1); border-radius: 14px; padding: 10px 12px; font-weight: 850; }
.blog-grid-v124 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.blog-card-v124 {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 24px;
    padding: 22px;
    box-shadow: 0 20px 55px rgba(15, 23, 42, .065);
    display: flex;
    flex-direction: column;
    min-height: 280px;
}
.blog-card-top-v124, .blog-card-bottom-v124 { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.blog-card-top-v124 span { background: #fee2e2; color: #991b1b; border-radius: 999px; padding: 5px 10px; font-size: .78rem; font-weight: 950; }
.blog-card-top-v124 time, .blog-card-bottom-v124 span { color: #64748b; font-size: .86rem; }
.blog-card-v124 h2 { font-size: 1.35rem; line-height: 1.14; letter-spacing: -.04em; margin: 18px 0 10px; }
.blog-card-v124 h2 a { color: #0f172a; text-decoration: none; }
.blog-card-v124 p { color: #475569; line-height: 1.65; margin: 0 0 20px; }
.blog-card-bottom-v124 { margin-top: auto; padding-top: 16px; border-top: 1px solid #f1f5f9; }
.blog-card-bottom-v124 a { color: #dc2626; font-weight: 900; text-decoration: none; }
.blog-post-shell-v124 { padding-top: 28px; }
.blog-post-header-v124 {
    max-width: 940px;
    margin: 0 auto 26px;
    text-align: center;
    padding: clamp(26px, 6vw, 58px);
    border-radius: 34px;
    background: linear-gradient(135deg, #fff, #f8fafc);
    border: 1px solid #e5e7eb;
    box-shadow: 0 26px 75px rgba(15,23,42,.075);
}
.blog-post-header-v124 h1 { font-size: clamp(2rem, 5vw, 4rem); line-height: 1; letter-spacing: -.07em; margin: 12px 0 16px; }
.blog-post-header-v124 p { color: #475569; font-size: 1.08rem; line-height: 1.7; max-width: 780px; margin: 0 auto; }
.blog-meta-v124 { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 9px; margin-top: 18px; color: #64748b; font-weight: 700; }
.blog-post-grid-v124 { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 28px; align-items: start; }
.blog-content-v124 {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 28px;
    padding: clamp(24px, 5vw, 48px);
    box-shadow: 0 24px 70px rgba(15,23,42,.065);
}
.blog-content-v124 h2 { font-size: clamp(1.45rem, 3vw, 2.15rem); letter-spacing: -.04em; margin: 34px 0 12px; }
.blog-content-v124 h2:first-child { margin-top: 0; }
.blog-content-v124 p, .blog-content-v124 li { color: #334155; line-height: 1.78; font-size: 1.04rem; }
.blog-sidebar-v124 { position: sticky; top: 110px; display: grid; gap: 16px; }
.blog-side-card-v124 { background: #fff; border: 1px solid #e5e7eb; border-radius: 24px; padding: 20px; box-shadow: 0 20px 55px rgba(15,23,42,.06); }
.blog-side-card-v124.strong { background: #111827; color: #fff; }
.blog-side-card-v124.strong h2 { color: #fff; }
.blog-side-card-v124.strong p { color: #cbd5e1; }
.blog-side-card-v124 h2 { font-size: 1.18rem; margin: 0 0 10px; }
.blog-side-card-v124 a:not(.hero-btn) { display: block; color: #0f172a; text-decoration: none; font-weight: 850; padding: 9px 0; border-bottom: 1px solid #f1f5f9; }
.priority-landing-v124 .detail-panel { min-height: 240px; }
@media (max-width: 980px) {
    .blog-hero-v124, .blog-post-grid-v124 { grid-template-columns: 1fr; }
    .blog-grid-v124 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .blog-sidebar-v124 { position: static; }
}
@media (max-width: 640px) {
    .blog-grid-v124 { grid-template-columns: 1fr; }
    .blog-hero-v124 { border-radius: 24px; padding: 24px; }
    .blog-post-header-v124, .blog-content-v124, .cms-content-v124 { border-radius: 22px; }
}

/* v1.25: más ancho útil en desktop + menú público editable */
@media (min-width: 1280px) {
    .wrap,
    .footer-container {
        max-width: var(--nmc-wrap-max, 1360px);
    }
    .blog-post-shell-v124,
    .blog-hero-v124,
    .lead-hero-grid,
    .center-detail-hero,
    .improved-detail-hero,
    .page-hero.compact,
    .final-cta,
    .portals-public-page .wrap {
        max-width: var(--nmc-wrap-max, 1360px);
    }
    .centros-grid {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 350px), 1fr));
    }
    .blog-grid-v124 {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
    }
}
@media (min-width: 1520px) {
    .wrap,
    .footer-container {
        max-width: var(--nmc-wide-max, 1440px);
    }
}
.nmc-menu-editable .nav-menu a strong {
    display: block;
    font-weight: 950;
}
.nmc-menu-editable .nav-menu a small {
    display: block;
}
.nmc-menu-editable .nav-menu a.nav-highlight,
.nmc-menu-editable > a.nav-highlight {
    background: #dc2626 !important;
    color: #fff !important;
}
.nmc-menu-editable .nav-menu a.nav-highlight small {
    color: rgba(255,255,255,.85) !important;
}


/* v1.26: ajustes visuales editables desde FacturaScripts */
.nmc-public .top-banner-inner-v18 span:empty,
.nmc-public .nmc-public-trust-inner span:empty { display: none; }
.nmc-public .footer-text { max-width: 34rem; }


/* v1.27 - Reputación y confianza */
.reviews-page .reviews-hero { background: linear-gradient(135deg, #fff, #fff7f7); }
.reputation-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.reputation-metrics article { background: #fff; border: 1px solid var(--line); border-radius: 24px; padding: 20px; box-shadow: var(--shadow); }
.reputation-metrics strong { display: block; font-size: 1.15rem; font-weight: 950; color: var(--ink); letter-spacing: -.02em; margin-bottom: 5px; }
.reputation-metrics span { display: block; color: var(--muted); font-weight: 700; font-size: .92rem; }
.review-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.review-card { background: white; border: 1px solid #f0f0f0; border-radius: 28px; padding: 24px; box-shadow: 0 20px 30px -20px rgba(2, 6, 23, .22); min-height: 100%; }
.review-card h2 { font-size: 1.2rem; font-weight: 950; letter-spacing: -.025em; margin: 8px 0 10px; color: var(--ink); }
.review-card p { color: #475569; margin-bottom: 12px; }
.review-card small { color: var(--muted); font-weight: 850; }
.review-stars { color: #f59e0b; letter-spacing: .08em; font-size: 1.1rem; font-weight: 900; }
.review-empty { border-style: dashed; background: #fffafa; }
.reputation-cta { margin-top: 40px; }
@media (max-width: 900px) {
    .reputation-metrics, .review-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
    .reputation-metrics, .review-grid { grid-template-columns: 1fr; }
}

/* v1.28 - Motor de crecimiento: recomendador de tamaño */
.size-recommender-page-v128 .size-hero-v128 { background: linear-gradient(135deg, #fff7f7, #ffffff 55%, #f8fafc); }
.recommender-grid-v128 { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); gap: 24px; align-items: start; }
.size-recommender-form-v128,
.size-result-card-v128 { background: #fff; border: 1px solid var(--line, #e5e7eb); border-radius: 28px; padding: clamp(20px, 4vw, 34px); box-shadow: 0 24px 70px rgba(15,23,42,.08); }
.size-recommender-form-v128 { display: grid; gap: 18px; }
.form-block-v128 { display: grid; gap: 12px; border: 1px solid #f1f5f9; border-radius: 22px; padding: 18px; background: #fcfcfd; }
.form-block-v128 h2 { margin: 0 0 6px; font-size: 1.25rem; letter-spacing: -.025em; }
.form-block-v128 label { display: flex; align-items: center; gap: 10px; font-weight: 850; color: #0f172a; }
.form-block-v128 input[type="checkbox"] { width: 18px; height: 18px; accent-color: #dc2626; }
.two-cols-v128 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.two-cols-v128 label { display: grid; align-items: start; gap: 7px; }
.size-recommender-form-v128 input:not([type="checkbox"]),
.size-recommender-form-v128 select,
.size-recommender-form-v128 textarea { width: 100%; border: 1px solid #dbe1ea; border-radius: 16px; padding: 12px 14px; font: inherit; background: #fff; }
.size-result-card-v128 { position: sticky; top: 110px; }
.size-result-card-v128 h2 { font-size: clamp(1.55rem, 3vw, 2.3rem); line-height: 1.05; letter-spacing: -.05em; margin: 10px 0; }
.size-result-card-v128 p, .size-result-card-v128 li { color: #475569; line-height: 1.6; }
.size-meter-v128 { width: 100%; height: 12px; border-radius: 999px; background: #fee2e2; overflow: hidden; margin: 18px 0; }
.size-meter-v128 span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #ef4444, #b91c1c); transition: width .2s ease; }
.size-result-card-v128 .disabled { pointer-events: none; opacity: .45; }
.opportunity-strip-v128 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.opportunity-strip-v128 article { background: #111827; color: #fff; border-radius: 24px; padding: 22px; box-shadow: 0 24px 70px rgba(15,23,42,.16); }
.opportunity-strip-v128 strong { display: block; font-size: 1.08rem; margin-bottom: 5px; }
.opportunity-strip-v128 span { color: #cbd5e1; }
@media (max-width: 980px) { .recommender-grid-v128 { grid-template-columns: 1fr; } .size-result-card-v128 { position: static; } }
@media (max-width: 640px) { .two-cols-v128, .opportunity-strip-v128 { grid-template-columns: 1fr; } .form-block-v128 { padding: 14px; } }

/* v1.28.1: menu publico movil colapsable y estable, inspirado en el fix de Faciltel. */
@media (max-width: 940px) {
    .nmc-public .nmc-menu-v18 .nav-group:not([open]) .nav-menu,
    .nmc-public .nmc-menu-v18 .nav-group:not([open]) .nav-menu-wide {
        display: none !important;
    }
    .nmc-public .nmc-menu-v18 .nav-group[open] .nav-menu,
    .nmc-public .nmc-menu-v18 .nav-group[open] .nav-menu-wide {
        display: grid !important;
    }
    .nmc-public .nmc-menu-v18 summary {
        user-select: none;
    }
    .nmc-public .nmc-menu-v18[data-open="true"] {
        overscroll-behavior: contain;
    }
    .nmc-public .mobile-menu-backdrop {
        cursor: pointer;
    }
}


/* v1.29.0 - Home premium NoMasCaos: menos duplicidad, más confianza y mejor jerarquía visual */
:root {
    --nmc-premium-ink: #0b1220;
    --nmc-premium-cream: #fff7ed;
    --nmc-premium-gold: #f59e0b;
    --nmc-premium-line: rgba(15, 23, 42, .10);
}
.premium-home-v129 {
    position: relative;
    overflow: hidden;
}
.premium-home-v129::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 12% 8%, rgba(220,38,38,.10), transparent 32rem),
        radial-gradient(circle at 88% 16%, rgba(245,158,11,.12), transparent 28rem),
        linear-gradient(180deg, #fff, #f8fafc 35%, #fff);
    z-index: -1;
}
.premium-hero-v129 {
    margin-top: 28px;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
    gap: clamp(22px, 4vw, 42px);
    align-items: stretch;
    padding-top: clamp(26px, 4vw, 46px);
    padding-bottom: clamp(26px, 4vw, 46px);
}
.premium-hero-copy,
.premium-hero-panel,
.premium-faq-cta-v129 {
    border: 1px solid rgba(255,255,255,.16);
    background: linear-gradient(135deg, rgba(15,23,42,.98), rgba(30,41,59,.96));
    color: white;
    border-radius: clamp(28px, 4vw, 44px);
    box-shadow: 0 34px 90px rgba(15,23,42,.22);
}
.premium-hero-copy {
    padding: clamp(30px, 6vw, 72px);
    position: relative;
    overflow: hidden;
}
.premium-hero-copy::after {
    content: "";
    position: absolute;
    right: -8rem;
    top: -8rem;
    width: 22rem;
    height: 22rem;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(220,38,38,.38), transparent 70%);
}
.premium-kicker {
    display: inline-flex;
    margin-bottom: 18px;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.16);
    background: rgba(255,255,255,.08);
    color: #fed7aa;
    font-weight: 950;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .12em;
}
.premium-hero-v129 h1 {
    position: relative;
    z-index: 1;
    max-width: 880px;
    margin: 0 0 20px;
    font-size: clamp(2.65rem, 6vw, 5.65rem);
    line-height: .94;
    letter-spacing: -.075em;
    font-weight: 950;
}
.premium-lead {
    position: relative;
    z-index: 1;
    max-width: 760px;
    color: #cbd5e1;
    font-size: clamp(1.05rem, 1.8vw, 1.25rem);
    line-height: 1.65;
    margin-bottom: 28px;
}
.premium-hero-actions,
.premium-final-actions {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}
.premium-primary {
    background: linear-gradient(135deg, #ef4444, #b91c1c) !important;
    color: #fff !important;
    box-shadow: 0 18px 42px rgba(220,38,38,.36) !important;
}
.premium-secondary {
    background: rgba(255,255,255,.10) !important;
    color: #fff !important;
    border-color: rgba(255,255,255,.22) !important;
}
.premium-link {
    color: #fed7aa;
    font-weight: 950;
    padding: 12px 4px;
}
.premium-proof-row {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 34px;
}
.premium-proof-row span {
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.12);
    color: #e2e8f0;
    font-weight: 900;
    font-size: .9rem;
}
.premium-hero-panel {
    padding: clamp(22px, 4vw, 34px);
    display: grid;
    gap: 16px;
    align-content: center;
    background:
        linear-gradient(135deg, rgba(255,255,255,.95), rgba(255,247,237,.92));
    color: var(--nmc-premium-ink);
    border-color: rgba(15,23,42,.08);
}
.premium-panel-card.main {
    padding: 28px;
    border-radius: 30px;
    background: var(--nmc-premium-ink);
    color: white;
    box-shadow: 0 20px 60px rgba(15,23,42,.20);
}
.premium-panel-card.main span,
.premium-panel-card.main small {
    display: block;
    color: #cbd5e1;
    font-weight: 850;
}
.premium-panel-card.main strong {
    display: block;
    margin: 8px 0;
    color: #fbbf24;
    font-size: clamp(2.4rem, 4vw, 3.8rem);
    line-height: .95;
    letter-spacing: -.06em;
}
.premium-panel-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.premium-panel-grid div {
    padding: 18px;
    border-radius: 24px;
    background: #fff;
    border: 1px solid var(--nmc-premium-line);
}
.premium-panel-grid strong {
    display: block;
    font-size: 1.9rem;
    letter-spacing: -.05em;
    color: #b91c1c;
    line-height: 1;
}
.premium-panel-grid span {
    display: block;
    margin-top: 6px;
    color: #64748b;
    font-weight: 800;
    font-size: .86rem;
}
.premium-panel-cta {
    display: flex;
    justify-content: center;
    padding: 15px 18px;
    border-radius: 999px;
    background: #25D366;
    color: #fff;
    font-weight: 950;
    box-shadow: 0 18px 38px rgba(37,211,102,.25);
}
.premium-section {
    margin-top: clamp(52px, 7vw, 92px);
}
.premium-section-head {
    max-width: 820px;
    margin: 0 auto 28px;
    text-align: center;
}
.premium-section-head.left { margin-left: 0; text-align: left; }
.premium-section-head h2,
.premium-faq-cta-v129 h2 {
    margin: 0 0 12px;
    color: var(--nmc-premium-ink);
    font-size: clamp(2rem, 4.5vw, 3.35rem);
    line-height: 1.02;
    letter-spacing: -.06em;
    font-weight: 950;
}
.premium-section-head p,
.premium-faq-cta-v129 p {
    color: #64748b;
    font-size: 1.05rem;
    line-height: 1.7;
}
.premium-center-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}
.premium-center-card,
.premium-mini-grid article {
    background: rgba(255,255,255,.92);
    border: 1px solid var(--nmc-premium-line);
    border-radius: 30px;
    padding: 24px;
    box-shadow: 0 24px 70px rgba(15,23,42,.07);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.premium-center-card:hover,
.premium-mini-grid article:hover {
    transform: translateY(-4px);
    border-color: rgba(220,38,38,.22);
    box-shadow: 0 32px 80px rgba(15,23,42,.11);
}
.premium-center-card h3,
.premium-mini-grid h3 {
    margin: 12px 0 8px;
    font-size: 1.28rem;
    font-weight: 950;
    letter-spacing: -.035em;
    color: var(--nmc-premium-ink);
}
.premium-center-card p,
.premium-mini-grid p { color: #64748b; line-height: 1.62; }
.premium-center-card a {
    display: inline-flex;
    margin-top: 18px;
    color: #b91c1c;
    font-weight: 950;
}
.premium-badge {
    display: inline-flex;
    border-radius: 999px;
    padding: 6px 10px;
    font-size: .72rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.premium-badge.open { background: #dcfce7; color: #166534; }
.premium-badge.mixed { background: #dbeafe; color: #1e40af; }
.premium-badge.upcoming { background: #fef3c7; color: #92400e; }
.premium-split-v129 {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(22px, 4vw, 42px);
    align-items: center;
    padding: clamp(28px, 5vw, 50px);
    border-radius: 42px;
    background: linear-gradient(135deg, #fff, #fff7ed);
    border: 1px solid var(--nmc-premium-line);
    box-shadow: 0 24px 70px rgba(15,23,42,.07);
}
.premium-mini-grid {
    display: grid;
    gap: 16px;
}
.premium-mini-grid strong {
    color: #dc2626;
    font-size: .88rem;
    letter-spacing: .16em;
}
.premium-cases-grid .case-card,
.premium-process-grid .process-card {
    box-shadow: 0 20px 60px rgba(15,23,42,.06);
    border-radius: 28px;
}
.premium-process-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.premium-faq-cta-v129 {
    margin-top: clamp(56px, 8vw, 96px);
    padding: clamp(30px, 5vw, 54px);
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 28px;
    align-items: center;
}
.premium-faq-cta-v129 h2 { color: white; }
.premium-faq-cta-v129 p { color: #cbd5e1; max-width: 720px; }
.premium-faq-cta-v129 .eyebrow {
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.16);
    color: #fed7aa;
}
@media (max-width: 980px) {
    .premium-hero-v129,
    .premium-split-v129,
    .premium-faq-cta-v129 { grid-template-columns: 1fr; }
    .premium-center-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .premium-final-actions { justify-content: flex-start; }
}
@media (max-width: 680px) {
    .premium-hero-v129 { margin-top: 8px; padding-left: 14px; padding-right: 14px; }
    .premium-hero-copy,
    .premium-hero-panel,
    .premium-split-v129,
    .premium-faq-cta-v129 { border-radius: 28px; }
    .premium-hero-v129 h1 { font-size: clamp(2.35rem, 12vw, 3.25rem); }
    .premium-center-grid,
    .premium-panel-grid,
    .premium-process-grid { grid-template-columns: 1fr; }
    .premium-hero-actions .hero-btn,
    .premium-final-actions .hero-btn,
    .premium-panel-cta { width: 100%; }
    .premium-link { width: 100%; text-align: center; }
}


/* v1.29.7 - Fix menu movil produccion: neutraliza CSS legacy, evita doble scroll y estados fantasma. */
@media (max-width: 940px) {
    html:has(body.nmc-menu-open) { overflow: hidden; }
    body.nmc-menu-open { overflow: hidden !important; touch-action: none; }
    .nmc-public .nmc-header-v18 { z-index: 900 !important; }
    .nmc-public .nmc-header-v18 .header-shell-v18 {
        position: relative;
        z-index: 930;
    }
    .nmc-public .nmc-header-v18 #nmc-main-menu.nmc-menu-v18,
    .nmc-public .nmc-header-v18 .main-nav.nmc-menu-v18 {
        display: none !important;
        position: fixed !important;
        left: 12px !important;
        right: 12px !important;
        top: calc(env(safe-area-inset-top, 0px) + 84px) !important;
        width: auto !important;
        max-width: none !important;
        max-height: min(72dvh, calc(100dvh - 142px)) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        overscroll-behavior: contain !important;
        -webkit-overflow-scrolling: touch;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 8px !important;
        margin: 0 !important;
        padding: 12px !important;
        border-radius: 24px !important;
        background: #fff !important;
        border: 1px solid rgba(15,23,42,.10) !important;
        box-shadow: 0 30px 80px rgba(15,23,42,.32) !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transform: translateY(-8px) !important;
        transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
    }
    .nmc-public body.nmc-menu-open .nmc-header-v18 #nmc-main-menu.nmc-menu-v18,
    body.nmc-menu-open .nmc-public .nmc-header-v18 #nmc-main-menu.nmc-menu-v18,
    body.nmc-menu-open .nmc-header-v18 #nmc-main-menu.nmc-menu-v18,
    .nmc-public .nmc-header-v18 #nmc-main-menu.nmc-menu-v18[data-open="true"] {
        display: flex !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: translateY(0) !important;
    }
    .nmc-public .nmc-header-v18 .mobile-menu-backdrop,
    .mobile-menu-backdrop {
        display: none !important;
        position: fixed !important;
        inset: 0 !important;
        background: rgba(15,23,42,.48) !important;
        z-index: 890 !important;
    }
    body.nmc-menu-open .mobile-menu-backdrop {
        display: block !important;
    }
    .nmc-public .nmc-header-v18 #nmc-main-menu.nmc-menu-v18 > a,
    .nmc-public .nmc-header-v18 #nmc-main-menu.nmc-menu-v18 summary {
        width: 100% !important;
        min-height: 52px !important;
        justify-content: space-between !important;
        white-space: normal !important;
        line-height: 1.15 !important;
        border-radius: 16px !important;
        background: #f8fafc !important;
    }
    .nmc-public .nmc-header-v18 #nmc-main-menu.nmc-menu-v18 .nav-group { width: 100% !important; }
    .nmc-public .nmc-header-v18 #nmc-main-menu.nmc-menu-v18 .nav-group:not([open]) .nav-menu,
    .nmc-public .nmc-header-v18 #nmc-main-menu.nmc-menu-v18 .nav-group:not([open]) .nav-menu-wide {
        display: none !important;
    }
    .nmc-public .nmc-header-v18 #nmc-main-menu.nmc-menu-v18 .nav-group[open] .nav-menu,
    .nmc-public .nmc-header-v18 #nmc-main-menu.nmc-menu-v18 .nav-group[open] .nav-menu-wide {
        display: grid !important;
        position: static !important;
        min-width: 0 !important;
        width: 100% !important;
        grid-template-columns: 1fr !important;
        box-shadow: none !important;
        border: 0 !important;
        background: transparent !important;
        padding: 6px 0 8px 8px !important;
        gap: 6px !important;
    }
    .nmc-public .nmc-header-v18 #nmc-main-menu.nmc-menu-v18 .nav-menu a {
        min-height: 46px !important;
        background: #fff !important;
        border: 1px solid #e5e7eb !important;
        margin: 0 !important;
    }
    .nmc-public .nmc-header-v18 .mobile-nav-toggle-v18 {
        position: relative !important;
        z-index: 940 !important;
        touch-action: manipulation;
    }
}
@media (max-width: 560px) {
    .nmc-public .nmc-header-v18 #nmc-main-menu.nmc-menu-v18,
    .nmc-public .nmc-header-v18 .main-nav.nmc-menu-v18 {
        top: calc(env(safe-area-inset-top, 0px) + 72px) !important;
        left: 10px !important;
        right: 10px !important;
        max-height: min(74dvh, calc(100dvh - 126px)) !important;
        border-radius: 22px !important;
    }
}

/* v1.29.8 - formularios producción y portal de reserva práctico */
.nmc-hp-field{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.lead-form-card input[type="email"],.quick-lead-form input[type="email"],.size-recommender-form-v128 input[type="email"]{width:100%}
.form-errors{margin:18px 0;padding:16px 18px 16px 34px;background:#fff1f2;border:1px solid rgba(220,38,38,.25);border-radius:18px;color:#7f1d1d}.form-errors li{margin:6px 0}.form-result.success{border-color:rgba(22,163,74,.25)}.form-result.error{border-color:rgba(220,38,38,.25)}.lead-result-note{margin-top:14px;padding:12px 14px;border-radius:14px;background:#f8fafc;color:#334155}.lead-result-note.ok{background:#ecfdf5;color:#166534}.form-submit.is-loading,.hero-btn.is-loading{opacity:.7;pointer-events:none}.portal-bridge-page{padding-bottom:48px}.portal-bridge-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);gap:28px;align-items:stretch;padding-top:36px;padding-bottom:36px}.portal-bridge-copy,.portal-bridge-card{background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 22px 70px rgba(15,23,42,.08);border-radius:28px;padding:34px}.portal-bridge-copy h1{font-size:clamp(2rem,4vw,4rem);line-height:1.02;margin:10px 0 16px}.portal-bridge-copy p{font-size:1.08rem;color:#475569;max-width:760px}.portal-bridge-card{background:linear-gradient(180deg,#111827,#0f172a);color:#fff}.portal-bridge-card strong{font-size:1.05rem}.portal-bridge-card ul{margin:18px 0;padding-left:22px}.portal-bridge-card li{margin:10px 0;color:#e5e7eb}.portal-bridge-card p{color:#cbd5e1}.portal-open-now{box-shadow:0 16px 38px rgba(220,38,38,.28)}
@media (max-width: 860px){.portal-bridge-hero{grid-template-columns:1fr;padding-top:18px}.portal-bridge-copy,.portal-bridge-card{padding:24px;border-radius:22px}.portal-bridge-copy .hero-actions{display:grid;grid-template-columns:1fr;gap:10px}.lead-form-card label,.size-recommender-form-v128 label{min-width:0}}
