/* Diferenciales premium - agregado sin modificar el visor 360 */
:root{--premium-glow:rgba(18,119,149,.18)}
body.dark-mode{--bg:#08151b;--surface:#0e222b;--surface-2:#12303b;--text:#edf8fb;--muted:#a9c1ca;--line:rgba(255,255,255,.12);--primary:#69d4ef;--primary-dark:#b3edfa;background:#08151b;color:#edf8fb}
body.dark-mode .site-header,body.dark-mode .filter-panel,body.dark-mode .room-card,body.dark-mode .service-card,body.dark-mode .faq-item,body.dark-mode .premium-panel,body.dark-mode dialog>*,body.dark-mode .chat-window{background:#0e222b;color:#edf8fb}
.premium-tools{display:flex;align-items:center;gap:.5rem;margin-left:auto}.icon-tool{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;font-size:1rem}.header-inner .premium-tools+.header-cta{margin-left:.25rem}
.site-loader{position:fixed;inset:0;z-index:99999;background:#06161d;display:grid;place-items:center;transition:opacity .65s,visibility .65s}.site-loader.done{opacity:0;visibility:hidden}.loader-inner{text-align:center;color:white}.loader-inner img{width:74px;animation:floatLogo 1.5s ease-in-out infinite}.loader-inner h2{margin:.9rem 0 .2rem}.loader-line{width:180px;height:3px;background:rgba(255,255,255,.2);overflow:hidden;border-radius:9px}.loader-line span{display:block;height:100%;width:45%;background:white;animation:loadingLine 1.1s infinite}
@keyframes loadingLine{from{transform:translateX(-120%)}to{transform:translateX(260%)}}@keyframes floatLogo{50%{transform:translateY(-8px)}}
.premium-section{padding:5.5rem 0;background:linear-gradient(180deg,var(--surface),var(--bg))}.premium-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.premium-panel{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:1.35rem;box-shadow:0 18px 45px rgba(4,40,53,.08)}.premium-panel h3{margin:.35rem 0}.weather-now{font-size:3rem;font-weight:800}.weather-meta{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}.weather-meta span,.nearby-chip{padding:.55rem .75rem;border-radius:999px;background:var(--surface-2);font-size:.85rem}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-top:1rem}.countdown div{text-align:center;background:var(--surface-2);border-radius:15px;padding:.8rem .35rem}.countdown strong{display:block;font-size:1.5rem}.countdown small{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.nearby-list{display:grid;gap:.65rem;margin-top:1rem}.nearby-place{display:flex;align-items:center;justify-content:space-between;padding:.7rem;border-bottom:1px solid var(--line)}
.compare-bar{position:fixed;left:50%;bottom:20px;transform:translate(-50%,130%);z-index:1500;width:min(760px,calc(100% - 24px));background:#08222d;color:white;border-radius:20px;padding:.8rem 1rem;display:flex;align-items:center;justify-content:space-between;box-shadow:0 20px 70px rgba(0,0,0,.35);transition:.35s}.compare-bar.visible{transform:translate(-50%,0)}.compare-items{display:flex;gap:.5rem;flex-wrap:wrap}.compare-pill{padding:.45rem .7rem;border:1px solid rgba(255,255,255,.25);border-radius:999px}.compare-toggle{position:absolute;top:16px;right:72px;z-index:4;display:inline-flex;align-items:center;justify-content:center;min-height:42px;background:rgba(255,255,255,.96);border:0;border-radius:999px;padding:.5rem .8rem;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.15)}.room-card{position:relative}.room-card.personalized{outline:3px solid var(--primary);box-shadow:0 24px 65px var(--premium-glow)}
.comparison-table{width:100%;border-collapse:collapse}.comparison-table th,.comparison-table td{padding:.9rem;border-bottom:1px solid var(--line);text-align:center}.comparison-table th:first-child,.comparison-table td:first-child{text-align:left}.yes{color:#16834f;font-weight:800}.no{color:#a55}
.live-calculator{position:sticky;top:100px}.calc-total{font-size:2.25rem;font-weight:800;color:var(--primary-dark)}.calc-lines{display:grid;gap:.6rem;margin:1rem 0}.calc-lines div{display:flex;justify-content:space-between;border-bottom:1px dashed var(--line);padding-bottom:.5rem}.saving-badge{display:inline-block;padding:.55rem .8rem;background:#dcf8e8;color:#14633b;border-radius:999px;font-weight:700}
.gallery-toolbar{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin:1rem 0 1.5rem}.gallery-filter{border:1px solid var(--line);background:var(--surface);padding:.65rem 1rem;border-radius:999px;cursor:pointer}.gallery-filter.active{background:var(--primary);color:white}.gallery-item.gallery-hidden{display:none}
.nearby-map-overlay{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.55rem}.nearby-chip{border:1px solid var(--line)}
.user-access-card{display:grid;grid-template-columns:1fr auto;gap:.7rem}.user-reservation-result{margin-top:1rem;padding:1rem;background:var(--surface-2);border-radius:16px}.user-reservation-result dl{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.user-reservation-result dt{font-size:.75rem;color:var(--muted)}.user-reservation-result dd{margin:0;font-weight:700}
.guide-overlay{position:fixed;inset:0;background:rgba(0,0,0,.56);z-index:9000;display:grid;place-items:center;padding:20px}.guide-card{width:min(460px,100%);background:white;border-radius:26px;padding:1.5rem;box-shadow:0 30px 90px rgba(0,0,0,.35)}.guide-progress{height:5px;background:#e6eef1;border-radius:99px;margin:1rem 0}.guide-progress span{display:block;height:100%;background:#127795;border-radius:99px}.guide-actions{display:flex;justify-content:space-between;gap:.7rem}.tour-highlight{position:relative;z-index:9001;outline:5px solid #8ce7ff;outline-offset:5px;border-radius:12px}
.sound-toast{position:fixed;right:20px;bottom:95px;z-index:1400}.personalized-banner{display:none;background:linear-gradient(100deg,#072c3b,#116982);color:white;padding:.8rem 1rem;text-align:center}.personalized-banner.visible{display:block}.personalized-banner button{margin-left:.7rem;background:none;border:0;color:white;text-decoration:underline;cursor:pointer}
.admin-premium-dashboard{display:grid;grid-template-columns:1.15fr .85fr;gap:1rem;margin:1rem 0 1.5rem}.chart-card,.occupancy-calendar-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:1.2rem}.bar-chart{display:grid;gap:.8rem;margin-top:1rem}.bar-row{display:grid;grid-template-columns:100px 1fr 44px;gap:.7rem;align-items:center}.bar-track{height:12px;background:var(--surface-2);border-radius:99px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,#1686a6,#65d1e5);border-radius:99px}.occupancy-mini{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem;margin-top:1rem}.occ-day{aspect-ratio:1;display:grid;place-items:center;border-radius:9px;font-size:.72rem;background:#dff5e8;color:#17633b}.occ-day.medium{background:#fff1c7;color:#7c5b06}.occ-day.high{background:#ffd8d8;color:#8c2424}.admin-insights{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-top:1rem}.insight{background:var(--surface-2);border-radius:15px;padding:.8rem}.insight small{display:block;color:var(--muted)}
@media(max-width:900px){.premium-grid,.admin-premium-dashboard{grid-template-columns:1fr}.premium-tools{margin-left:0}.header-inner .premium-tools{order:3}.admin-insights{grid-template-columns:1fr}.comparison-table{font-size:.82rem}.user-access-card{grid-template-columns:1fr}.compare-toggle{top:68px;right:16px;padding:.48rem .72rem;font-size:.92rem}}
@media(prefers-reduced-motion:reduce){.site-loader,.compare-bar{transition:none}.loader-inner img,.loader-line span{animation:none}}

/* Correcciones de controles premium */
.icon-tool{position:relative;display:grid;place-items:center;flex:0 0 42px;transition:transform .2s,background .2s,color .2s,border-color .2s}
.icon-tool:hover{transform:translateY(-2px)}
.icon-tool.active{background:var(--blue-700);border-color:var(--blue-700);color:#fff}
.icon-tool[data-state="off"]::after{content:"";position:absolute;width:22px;height:2px;background:currentColor;transform:rotate(-45deg);border-radius:2px}
.site-header:not(.scrolled) .icon-tool{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.32);color:#fff;backdrop-filter:blur(12px)}
.site-header:not(.scrolled) .icon-tool.active{background:rgba(24,175,208,.9)}

/* Tema oscuro completo: usa las variables reales del proyecto */
body.dark-mode{
  --white:#08171e;
  --ink:#edf8fb;
  --muted:#a9c1ca;
  --line:rgba(255,255,255,.13);
  --blue-50:#0c2029;
  --blue-100:#10303b;
  --sand:#17272c;
  background:#08171e;
  color:#edf8fb;
  color-scheme:dark;
}
body.dark-mode p{color:var(--muted)}
body.dark-mode .site-header.scrolled{background:rgba(8,23,30,.9);color:#edf8fb;box-shadow:0 1px 0 rgba(255,255,255,.1)}
body.dark-mode .premium-section,
body.dark-mode .section,
body.dark-mode .rooms-section,
body.dark-mode .services-section,
body.dark-mode .reviews-section,
body.dark-mode .faq-section,
body.dark-mode .contact-section{background-color:#08171e}
body.dark-mode .room-card,
body.dark-mode .service-card,
body.dark-mode .faq-item,
body.dark-mode .review-card,
body.dark-mode .filter-panel,
body.dark-mode .premium-panel,
body.dark-mode .booking-panel,
body.dark-mode .booking-summary,
body.dark-mode .contact-card,
body.dark-mode .gallery-filter,
body.dark-mode .management-form-card,
body.dark-mode .success-card,
body.dark-mode .user-reservation-result,
body.dark-mode .chat-window{background:#0e222b;color:#edf8fb;border-color:rgba(255,255,255,.12)}
body.dark-mode input,
body.dark-mode select,
body.dark-mode textarea,
body.dark-mode .field{background:#0a1b22;color:#edf8fb;border-color:rgba(255,255,255,.16)}
body.dark-mode input::placeholder,body.dark-mode textarea::placeholder{color:#78939e}
body.dark-mode .room-meta span,
body.dark-mode .amenity,
body.dark-mode .weather-meta span,
body.dark-mode .nearby-chip,
body.dark-mode .countdown div{background:#12303b;color:#d9f2f8}
body.dark-mode .guide-card{background:#0e222b;color:#edf8fb;border:1px solid rgba(255,255,255,.14)}
body.dark-mode .guide-progress{background:#23404a}
body.dark-mode .modal::backdrop{background:rgba(0,0,0,.72)}

/* Tour guiado corregido: tarjeta inferior y foco estable */
.guide-overlay{display:block;background:rgba(0,0,0,.4);pointer-events:none;overflow:hidden}
.guide-card{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:9003;pointer-events:auto;width:min(520px,calc(100% - 28px));max-height:calc(100vh - 44px);overflow:auto}
.tour-highlight{position:relative;z-index:auto;outline:4px solid #8ce7ff;outline-offset:5px;border-radius:12px;box-shadow:0 0 0 9999px rgba(0,0,0,.42)!important}
body.guide-active{overflow:hidden}
@media(max-width:900px){.premium-tools{gap:.35rem}.icon-tool{width:38px;height:38px;flex-basis:38px}.guide-card{bottom:10px}.tour-highlight{outline-width:3px}}


/* Ajustes finales solicitados */
.personalized-banner{display:none!important}
.room-image .favorite-room,
.room-image .compare-toggle{top:auto;right:auto;bottom:16px;z-index:8}
.room-image .favorite-room{left:16px}
.room-image .compare-toggle{left:68px;min-height:42px;padding:.5rem .82rem;background:rgba(255,255,255,.96);color:#123746;border:1px solid rgba(9,48,64,.1);backdrop-filter:blur(10px)}
.room-image .compare-toggle:hover,.room-image .favorite-room:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.24)}

/* Modo noche refinado: azul petróleo, mejor contraste y superficies diferenciadas */
body.dark-mode{
  --white:#0b1820;
  --ink:#f3f8fa;
  --muted:#abc0c9;
  --line:rgba(194,226,237,.13);
  --blue-50:#102630;
  --blue-100:#15313d;
  --blue-700:#47b8d2;
  --sand:#17272d;
  --surface:#10242d;
  --surface-2:#17323d;
  --bg:#0a171e;
  --text:#f3f8fa;
  --primary:#55c6de;
  --primary-dark:#9ce2ef;
  background:linear-gradient(180deg,#08151c 0%,#0b1a22 48%,#09161d 100%);
  color:#f3f8fa;
}
body.dark-mode .section,
body.dark-mode .rooms-section,
body.dark-mode .services-section,
body.dark-mode .reviews-section,
body.dark-mode .faq-section,
body.dark-mode .contact-section,
body.dark-mode .premium-section{background:transparent}
body.dark-mode .room-card,
body.dark-mode .service-card,
body.dark-mode .faq-item,
body.dark-mode .review-card,
body.dark-mode .filter-panel,
body.dark-mode .premium-panel,
body.dark-mode .booking-panel,
body.dark-mode .booking-summary,
body.dark-mode .contact-card,
body.dark-mode .management-form-card,
body.dark-mode .success-card,
body.dark-mode .user-reservation-result,
body.dark-mode .favorite-card,
body.dark-mode .chat-window{
  background:linear-gradient(145deg,#102630,#0d2028);
  border-color:rgba(167,214,229,.14);
  box-shadow:0 18px 50px rgba(0,0,0,.22);
}
body.dark-mode .site-header.scrolled{background:rgba(7,20,27,.92);border-bottom:1px solid rgba(176,220,233,.12);backdrop-filter:blur(18px)}
body.dark-mode .promo-band{background:linear-gradient(120deg,#123847,#0c2530)}
body.dark-mode .promo-card{background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.12)}
body.dark-mode .site-footer{background:#061219}
body.dark-mode .button-secondary{background:#17333e;color:#eaf7fa;border-color:rgba(180,222,235,.18)}
body.dark-mode .button-secondary:hover{background:#204552}
body.dark-mode .button-primary{box-shadow:0 10px 28px rgba(37,155,184,.22)}
body.dark-mode input,
body.dark-mode select,
body.dark-mode textarea,
body.dark-mode .field{background:#0a1b22;color:#f3f8fa;border-color:rgba(176,220,233,.18)}
body.dark-mode input:focus,
body.dark-mode select:focus,
body.dark-mode textarea:focus{border-color:#55c6de;box-shadow:0 0 0 3px rgba(85,198,222,.14)}
body.dark-mode .room-image::after{background:linear-gradient(transparent,rgba(3,15,21,.58))}
body.dark-mode .room-image .favorite-room,
body.dark-mode .room-image .compare-toggle{background:rgba(12,31,40,.9);color:#eef9fb;border-color:rgba(207,237,245,.18)}
body.dark-mode .room-image .favorite-room.active{color:#ff8d9b}
body.dark-mode .gallery-filter.active{background:#48b8d2;color:#07151c}
body.dark-mode .nearby-chip,
body.dark-mode .weather-meta span,
body.dark-mode .countdown div,
body.dark-mode .room-meta span,
body.dark-mode .amenity{background:#17343f;color:#e3f5f9;border-color:rgba(183,225,237,.1)}
body.dark-mode .favorites-section{background:linear-gradient(180deg,transparent,rgba(12,31,40,.65))}
body.dark-mode .map-place-card{background:rgba(8,25,33,.92);color:#f3f8fa;border-color:rgba(182,225,237,.15)}
@media(max-width:560px){.room-image .favorite-room{left:12px;bottom:12px}.room-image .compare-toggle{left:62px;bottom:12px;font-size:.86rem;padding:.45rem .68rem}}


/* Corrección final: comparador integrado en la página */
.inline-compare{margin:34px 0 10px;padding:26px;border:1px solid var(--line);border-radius:24px;background:var(--white);box-shadow:0 18px 55px rgba(12,48,64,.09);scroll-margin-top:110px}
.inline-compare[hidden]{display:none!important}
.inline-compare-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.inline-compare-head h2{margin:.15rem 0 0}
.comparison-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:16px}
.comparison-table{min-width:680px;background:var(--white)}
.comparison-table thead th{background:var(--blue-50)}
.comparison-table tbody tr:last-child td{border-bottom:0}

/* Galería: filtros claros y categorías coherentes */
.gallery-toolbar{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px}
.gallery-filter{appearance:none;border:1px solid #c9d9df;background:#eef5f7;color:#173b49;border-radius:999px;padding:.65rem 1rem;font:inherit;font-weight:700;cursor:pointer;transition:.2s}
.gallery-filter:hover{background:#dfecef;transform:translateY(-1px)}
.gallery-filter.active{background:#176f8c;color:#fff;border-color:#176f8c;box-shadow:0 8px 22px rgba(23,111,140,.22)}

/* Inputs nocturnos: etiquetas transparentes, controles legibles */
body.dark-mode .field{background:transparent!important;border:0!important;color:#eef8fb!important;box-shadow:none!important}
body.dark-mode .field>span,body.dark-mode label>span,body.dark-mode legend{color:#d7e9ee!important}
body.dark-mode input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
body.dark-mode select,
body.dark-mode textarea{
  background:#102b35!important;
  color:#f5fbfd!important;
  border:1px solid rgba(178,220,233,.24)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03)!important;
}
body.dark-mode select option{background:#102b35;color:#f5fbfd}
body.dark-mode input[type="date"]{color-scheme:dark}
body.dark-mode input:disabled,body.dark-mode select:disabled,body.dark-mode textarea:disabled{background:#0c2028!important;color:#87a5af!important}
body.dark-mode .booking-panel .field,
body.dark-mode .booking-summary .field,
body.dark-mode .quick-search .field{background:transparent!important}
body.dark-mode .booking-panel,
body.dark-mode .booking-summary{background:linear-gradient(145deg,#122b35,#0d2028)!important}
body.dark-mode .price-box{background:#16333e!important;border:1px solid rgba(180,222,235,.12)}
body.dark-mode .price-box strong,
body.dark-mode .room-price strong,
body.dark-mode #priceOutput,
body.dark-mode #bookingTotal,
body.dark-mode #asideTotal,
body.dark-mode #staySubtotal,
body.dark-mode #extrasSubtotal{color:#fff!important}

/* Texto sobre imagen en El hotel */
body.dark-mode .visual-badge{background:rgba(5,20,27,.9)!important;color:#fff!important;border:1px solid rgba(220,243,248,.18);backdrop-filter:blur(10px)}
body.dark-mode .visual-badge strong,body.dark-mode .visual-badge span{color:#fff!important;text-shadow:0 1px 8px rgba(0,0,0,.55)}

/* Comparación y galería en modo nocturno */
body.dark-mode .inline-compare{background:linear-gradient(145deg,#102630,#0d2028);border-color:rgba(176,220,233,.16)}
body.dark-mode .comparison-table{background:#102630;color:#eef8fb}
body.dark-mode .comparison-table thead th{background:#173744;color:#fff}
body.dark-mode .comparison-table td,body.dark-mode .comparison-table th{border-color:rgba(176,220,233,.13)}
body.dark-mode .gallery-filter{background:#17343f;color:#e7f5f8;border-color:rgba(183,225,237,.15)}
body.dark-mode .gallery-filter:hover{background:#204552}
body.dark-mode .gallery-filter.active{background:#55c6de;color:#07171e;border-color:#55c6de}

@media(max-width:700px){.inline-compare{padding:18px}.inline-compare-head{display:grid}.inline-compare-head .button{width:100%}}


/* --- Dark mode refinement: hero quick search and section separation --- */
body.dark-mode .hero-quick-search,
body.dark-mode .quick-search {
  background: linear-gradient(145deg, rgba(20,45,56,.96), rgba(12,28,36,.96)) !important;
  border: 1px solid rgba(192,230,240,.16) !important;
  box-shadow: 0 18px 50px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.04) !important;
  color: #eef8fb !important;
  backdrop-filter: blur(18px);
}
body.dark-mode .hero-quick-search label,
body.dark-mode .quick-search label {
  background: transparent !important;
  border-right: 1px solid rgba(192,230,240,.12) !important;
}
body.dark-mode .hero-quick-search label span,
body.dark-mode .quick-search label span {
  color: #cfe6ec !important;
}
body.dark-mode .hero-quick-search input,
body.dark-mode .hero-quick-search select,
body.dark-mode .quick-search input,
body.dark-mode .quick-search select {
  background: transparent !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
body.dark-mode .hero-quick-search input::placeholder,
body.dark-mode .quick-search input::placeholder { color: #a8c3cb !important; }
body.dark-mode .hero-quick-search .button,
body.dark-mode .quick-search .button {
  box-shadow: 0 10px 24px rgba(60,179,205,.22);
}
body.dark-mode .hero-quick-search input[type="date"]::-webkit-calendar-picker-indicator,
body.dark-mode .quick-search input[type="date"]::-webkit-calendar-picker-indicator {
  filter: invert(1) brightness(1.25);
}

body.dark-mode .section,
body.dark-mode .rooms-section,
body.dark-mode .services-section,
body.dark-mode .reviews-section,
body.dark-mode .faq-section,
body.dark-mode .contact-section,
body.dark-mode .premium-section,
body.dark-mode .gallery-section,
body.dark-mode .immersive360-section {
  position: relative;
  border-top: 1px solid rgba(189,228,237,.08);
  border-bottom: 1px solid rgba(4,12,16,.24);
}
body.dark-mode .about-section,
body.dark-mode section#quienes-somos,
body.dark-mode .section:nth-of-type(odd),
body.dark-mode .premium-section:nth-of-type(odd) {
  background: linear-gradient(180deg, #0b1820, #0d1d26) !important;
}
body.dark-mode .rooms-section,
body.dark-mode .services-section,
body.dark-mode .gallery-section,
body.dark-mode .reviews-section,
body.dark-mode .contact-section,
body.dark-mode .section:nth-of-type(even),
body.dark-mode .premium-section:nth-of-type(even) {
  background: linear-gradient(180deg, #0f2028, #10242d) !important;
}
body.dark-mode .immersive360-section {
  background: linear-gradient(180deg, #0a151c, #0d1b23) !important;
}
body.dark-mode .promo-band {
  border-top: 1px solid rgba(189,228,237,.08);
  border-bottom: 1px solid rgba(4,12,16,.24);
}
body.dark-mode .section-heading,
body.dark-mode .section-heading p,
body.dark-mode .section-heading h2 {
  position: relative;
  z-index: 1;
}
@media (max-width: 700px) {
  body.dark-mode .hero-quick-search label,
  body.dark-mode .quick-search label {
    border-bottom: 1px solid rgba(192,230,240,.12) !important;
  }
}
