:root{--brand:#0b63ce;--brand-dark:#073b79;--accent:#f58220;--ink:#172033;--muted:#6b7280;--surface:#fff;--soft:#f5f7fb;--border:#e6ebf2}
body{background:var(--soft);color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.bg-primary{background:linear-gradient(90deg,#0968e8,#0a55bd)!important}.navbar{box-shadow:0 4px 18px rgba(11,51,104,.12)}.navbar-brand{letter-spacing:-.02em}.btn{border-radius:10px;font-weight:600}.btn-primary{background:var(--accent);border-color:var(--accent)}.btn-primary:hover{background:#d96c12;border-color:#d96c12}.hero{background:radial-gradient(circle at 85% 10%,rgba(255,255,255,.16),transparent 28%),linear-gradient(135deg,#082f63,#0968e8);color:white;padding:82px 0}.hero-kicker,.eyebrow{display:inline-block;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:800;color:var(--accent);margin-bottom:.55rem}.hero-kicker{color:#ffd4ad}.hero-stat{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);border-radius:24px;padding:28px;backdrop-filter:blur(8px);display:grid;gap:2px}.hero-stat strong{font-size:3rem;line-height:1}.hero-stat span{font-size:1.15rem;font-weight:700}.hero-stat small{opacity:.82;margin-top:8px}.card,.review-card,.business-content,.company-hero{background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:0 12px 32px rgba(15,36,64,.07)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:18px}.section-heading h2{margin:0;font-weight:750;letter-spacing:-.02em}.promo-carousel{border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 16px 42px rgba(15,36,64,.10)}.promo-feature{display:grid;grid-template-columns:1.05fr .95fr;min-height:430px}.promo-media{background:#edf2f8;display:flex;align-items:center;justify-content:center}.promo-media img{width:100%;height:430px;object-fit:contain}.promo-copy{padding:42px;display:flex;flex-direction:column;justify-content:center}.promo-copy h3{font-size:2rem;margin-top:14px}.brand-line{display:flex;align-items:center;gap:10px;margin-top:20px;color:var(--muted);font-weight:700}.brand-line img{width:42px;height:42px;border-radius:12px;object-fit:contain;background:#fff;border:1px solid var(--border);padding:4px}.content-type,.viz-badge-local{display:inline-flex;width:max-content;background:#fff1e5;color:#a84c00;border:1px solid #ffd9b7;border-radius:999px;padding:5px 10px;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.price-line{display:flex;align-items:baseline;gap:12px;margin:4px 0 12px}.price-line del{color:var(--muted)}.price-line strong{font-size:1.8rem;color:#0a7a45}.carousel-control-prev,.carousel-control-next{width:52px}.carousel-control-prev-icon,.carousel-control-next-icon{background-color:rgba(7,59,121,.75);border-radius:50%;background-size:48%;width:38px;height:38px}.carousel-indicators [data-bs-target]{background-color:var(--brand-dark)}#map{height:560px;border-radius:24px;border:1px solid var(--border);box-shadow:0 14px 36px rgba(15,36,64,.10)}.leaflet-popup-content-wrapper{border-radius:18px!important;padding:0!important;overflow:hidden;box-shadow:0 18px 42px rgba(15,36,64,.24)!important}.leaflet-popup-content{margin:0!important;width:auto!important}.map-popup-card{padding:16px}.popup-head{display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border);margin-bottom:12px}.popup-head img{width:58px;height:58px;border-radius:14px;object-fit:contain;border:1px solid var(--border);padding:4px;background:#fff}.popup-head strong{display:block;font-size:1rem}.popup-head span{font-size:.82rem;color:var(--muted)}.map-popup-card p{font-size:.88rem;line-height:1.45;margin:0 0 12px}.popup-info{display:flex;gap:8px;font-size:.82rem;margin:7px 0;color:#4b5563}.popup-actions{display:grid;grid-template-columns:1fr;gap:7px;margin-top:14px}.popup-btn{text-decoration:none!important;text-align:center;padding:9px 10px;border-radius:9px;font-weight:700;font-size:.84rem}.popup-whatsapp{background:#118c4f;color:white!important}.popup-profile{background:#edf4ff;color:#0753ad!important}.company-hero{padding:32px;display:flex;justify-content:space-between;align-items:center;gap:28px}.company-brand{display:flex;align-items:center;gap:24px}.company-logo-large{width:128px;height:128px;object-fit:contain;border:1px solid var(--border);border-radius:24px;background:#fff;padding:8px}.company-brand h1{margin:0 0 8px;font-weight:800}.company-brand p{margin:0;max-width:720px;color:var(--muted)}.company-actions{display:flex;gap:8px;flex-wrap:wrap}.business-content{overflow:hidden}.business-content>img{width:100%;height:470px;object-fit:contain;background:#eef2f7}.contact-card{position:sticky;top:88px}.contact-row{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--border)}.contact-row p{margin:3px 0 0;color:var(--muted)}.empty-state{background:#fff;border:1px dashed #cbd5e1;border-radius:18px;padding:34px;text-align:center;color:var(--muted)}.promo-img{height:260px;object-fit:cover}.company-logo{width:74px;height:74px;object-fit:contain;background:#fff;border-radius:14px;padding:6px}.privacy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.small-cover{height:220px;object-fit:contain;background:#eef2f7}.badge-soft{background:#e8f0fa;color:#0a376d}.admin-sidebar{min-height:100vh;background:#0a376d}.admin-sidebar a{color:#dbe7f5;text-decoration:none;display:block;padding:10px 14px;border-radius:8px}.admin-sidebar a:hover{background:rgba(255,255,255,.12)}.admin-thumb{width:48px;height:48px;object-fit:contain;border:1px solid var(--border);border-radius:12px;background:#fff;padding:3px}.admin-table td{padding-top:14px;padding-bottom:14px}.status-pill{display:inline-flex;padding:5px 10px;border-radius:999px;font-size:.78rem;font-weight:800}.status-pendiente{background:#fff5d6;color:#8a6200}.status-aprobada{background:#dcf7e8;color:#08713e}.status-rechazada{background:#ffe3e6;color:#a51f31}.review-card{overflow:hidden}.review-cover{width:100%;height:230px;object-fit:contain;background:#eef2f7}
@media(max-width:991px){.promo-feature{grid-template-columns:1fr}.promo-media img{height:360px}.promo-copy{padding:30px}.company-hero{align-items:flex-start}.contact-card{position:static}}
@media(max-width:767px){.hero{padding:58px 0}.promo-copy h3{font-size:1.55rem}.promo-media img,.business-content>img{height:330px}.section-heading{align-items:flex-start;flex-direction:column}.company-hero,.company-brand{flex-direction:column;align-items:flex-start}.company-logo-large{width:100px;height:100px}#map{height:500px}.promo-copy{padding:24px}}

/* Fase 1.2: mapa dinámico, marcadores y formulario responsive */
.map-status{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:.9rem}
.business-marker-wrapper{background:transparent;border:0}
.business-marker{--marker-color:#0B63CE;display:block;position:relative;width:36px;height:46px;background:var(--marker-color);border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 7px 18px rgba(15,36,64,.28)}
.business-marker>span{position:absolute;width:12px;height:12px;background:#fff;border-radius:50%;left:9px;top:9px}
.leaflet-popup{margin-bottom:8px}.leaflet-popup-content-wrapper{max-width:calc(100vw - 34px)}
.map-popup-card{width:310px;max-width:100%;padding:16px;background:#fff}
.popup-media{display:block;position:relative;background:#eef2f7;border-radius:12px;overflow:hidden;margin:0 0 12px;text-decoration:none!important}
.popup-media img{display:block;width:100%;height:145px;object-fit:contain;background:#eef2f7}
.popup-media span{display:block;padding:7px 10px;background:#f8fafc;color:#334155;font-size:.76rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.registration-shell{display:grid;grid-template-columns:minmax(250px,.72fr) minmax(0,1.4fr);gap:28px;align-items:start}
.registration-intro{position:sticky;top:98px;padding:28px;border-radius:24px;background:linear-gradient(145deg,#073b79,#0b63ce);color:#fff}
.registration-intro h1{font-weight:800;letter-spacing:-.03em}.registration-intro p{color:rgba(255,255,255,.82)}
.registration-benefits{display:grid;gap:9px;margin-top:22px;font-weight:650}.registration-card{border-radius:24px}
.form-section-title{font-size:1.05rem;margin:8px 0 0;padding-bottom:9px;border-bottom:1px solid var(--border);font-weight:800;color:var(--brand-dark)}
.form-hint{font-size:.8rem;color:var(--muted);margin-top:6px;margin-bottom:0}.form-control,.form-select{min-height:46px;border-radius:12px;border-color:#d9e0ea}.form-control:focus{border-color:var(--brand);box-shadow:0 0 0 .22rem rgba(11,99,206,.12)}textarea.form-control{min-height:94px}
.color-control{min-height:46px;display:flex;align-items:center;gap:10px;padding:6px 12px;border:1px solid #d9e0ea;border-radius:12px;background:#fff}.color-control input{width:42px;height:32px;border:0;padding:0;background:transparent}.color-control span{font-size:.9rem;color:var(--muted)}
.privacy-option{padding:12px 14px 12px 48px!important;border:1px solid var(--border);border-radius:12px;background:#f8fafc;margin:0;min-height:50px;display:flex;align-items:center}.privacy-option .form-check-input{margin-left:-35px}

@media(max-width:991px){.registration-shell{grid-template-columns:1fr}.registration-intro{position:static}.navbar-collapse{padding:12px 0}.navbar-nav{gap:2px}.navbar-nav .nav-link{padding:9px 10px;border-radius:8px}.navbar-nav .nav-link:hover{background:rgba(255,255,255,.1)}}
@media(max-width:767px){#map{height:70vh;min-height:430px;border-radius:18px}.map-status{width:100%;justify-content:space-between}.map-popup-card{width:270px;padding:13px}.popup-head img{width:50px;height:50px}.popup-media img{height:120px}.popup-actions{grid-template-columns:1fr}.hero .btn{width:100%;margin:4px 0}.registration-intro{padding:22px}.registration-card{padding:16px!important}.privacy-grid{grid-template-columns:1fr}}
@media(max-width:420px){#map{height:64vh;min-height:390px}.leaflet-popup-content-wrapper{max-width:calc(100vw - 20px)}.map-popup-card{width:245px}.popup-head{align-items:flex-start}.popup-head strong{font-size:.94rem}.popup-media img{height:105px}.section-heading h2{font-size:1.5rem}}
.marker-color-dot{display:inline-block;width:15px;height:15px;border-radius:50%;background:var(--dot-color,#0B63CE);border:2px solid #fff;box-shadow:0 0 0 1px #cbd5e1}.public-flyer img{height:auto!important;max-height:720px;object-fit:contain}
.logo-marker-wrapper{background:transparent!important;border:0!important}.logo-marker{width:54px;height:54px;border:4px solid var(--marker-color);border-radius:50% 50% 50% 8px;background:#fff;display:grid;place-items:center;transform:rotate(-45deg);box-shadow:0 8px 18px rgba(0,0,0,.25)}.logo-marker img{width:39px;height:39px;border-radius:50%;object-fit:cover;transform:rotate(45deg)}.popup-logo-fallback{width:54px;height:54px;border-radius:16px;background:#edf4ff;color:#0b63ce;display:grid;place-items:center;font-size:1.4rem;font-weight:800}.popup-stars{color:#f2a900;font-size:.9rem;margin-top:.2rem}.popup-stars small{color:#6b7280;margin-left:.35rem}.admin-table td{vertical-align:middle}.admin-table .btn{white-space:nowrap}@media(max-width:767px){.admin-table thead{display:none}.admin-table,.admin-table tbody,.admin-table tr,.admin-table td{display:block;width:100%}.admin-table tr{padding:1rem 0;border-bottom:1px solid #dee2e6}.admin-table td{border:0;padding:.35rem 0}.map-popup-card{max-width:280px}.leaflet-popup-content{margin:10px!important}.logo-marker{width:46px;height:46px}.logo-marker img{width:33px;height:33px}}
