/* =========================================================
   Granadino Tour — CSS Unificado (Theme + Main)
   ========================================================= */

/* ── Variables ── */
:root{
  /* Marca */
  --brand-primary:#4484EC;
  --brand-primary-contrast:#ffffff;
  --brand-primary-10:#f8f1f3;
  --brand-hover:#f3d494;
  --brand-2:#f3d494;

  /* UI base */
  --ink:#0B1320;
  --secondary:#6B7280;
  --bg:#FAFBFC;
  --card:#FFFFFF;
  --border:#E6EAF0;

  /* Bootstrap bridges */
  --bs-body-bg:var(--bg);
  --bs-body-color:var(--ink);
  --bs-border-color:var(--border);
  --bs-primary:var(--brand-primary);
  --focus-ring:0 0 0 .2rem rgba(17,63,103,.25);

  /* radio/sombras */
  --brand-radius:.75rem;
  --radius:12px;
  --shadow:0 4px 16px rgba(10,18,32,.06);

  /* spacing fluido */
  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-5:1.25rem;
  --space-6:clamp(1.5rem,3vw,2rem);
  --space-7:clamp(2rem,4vw,2.75rem);

  /* gutters por defecto */
  --gutter-x:clamp(.75rem,2vw,1.25rem);
  --gutter-y:clamp(.75rem,2vw,1.25rem);

  /* Extras GT */
  --gt-primary:#4484EC;
  --gt-primary-600:#4484EC;
  --gt-accent:#7FC8A9;
  --gt-ink:#0B1320;
}

/* ── Tipografía / enlaces ── */
html{scroll-behavior:smooth}
body{font-family:'Poppins',system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif}
h1,h2,h3,h4,h5,h6{letter-spacing:-.01em;color:var(--ink);margin-bottom:.35rem;line-height:1.2}
.lead,.small,.form-text{color:var(--secondary)} .lead{margin-bottom:var(--space-4)}
a{color:var(--brand-primary);text-decoration:none;transition:color .2s ease,text-decoration .2s ease}
a:hover{color:var(--brand-hover);text-decoration:underline;text-underline-offset:2px}

/* UX: Indicador de foco visible y accesible */
*:focus-visible{
  outline:2px solid var(--brand-primary);
  outline-offset:2px;
  border-radius:2px;
}
button:focus-visible,a:focus-visible{
  outline:2px solid var(--brand-primary);
  outline-offset:3px;
}

/* ── Componentes base ── */
.btn{border-radius:var(--radius)}
.btn-primary,.btn-brand{
  --bs-btn-bg:var(--brand-primary);--bs-btn-border-color:var(--brand-primary);
  --bs-btn-focus-shadow-rgb:17,63,103;background:var(--brand-primary);
  border-color:var(--brand-primary);color:#fff;border-radius:var(--brand-radius)
}
.btn-primary:hover,.btn-brand:hover{background:var(--brand-hover);border-color:var(--brand-hover);color:#fff}
.btn-outline-primary,.btn-outline-brand{
  --bs-btn-color:var(--brand-primary);--bs-btn-border-color:var(--brand-primary);
  --bs-btn-hover-bg:color-mix(in srgb,var(--brand-primary) 10%,white);
  --bs-btn-hover-border-color:var(--brand-primary);
  --bs-btn-focus-shadow-rgb:17,63,103;--bs-btn-active-bg:var(--brand-primary);
  --bs-btn-active-border-color:var(--brand-primary);
  --bs-btn-disabled-color:var(--secondary);--bs-btn-disabled-border-color:var(--border);
  color:var(--brand-primary);border-color:var(--brand-primary);
  border-width:1.5px;border-radius:var(--brand-radius);transition:all .2s ease-in-out
}
.btn-outline-primary:hover,.btn-outline-brand:hover{color:var(--brand-hover);background-color:var(--bs-btn-hover-bg)}
.btn-outline-primary:active,.btn-outline-brand:active{color:#fff;background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}
.btn-outline-primary:focus-visible,.btn-outline-brand:focus-visible{outline:0;box-shadow:0 0 0 .2rem rgba(17,63,103,.25)}

.text-brand{color:var(--brand-primary)!important}
.bg-brand{background-color:var(--brand-primary)!important;color:var(--brand-primary-contrast)!important}
.bg-brand-subtle{background-color:var(--brand-primary-10)!important}
.badge-brand{background:var(--brand-primary-10);color:var(--brand-primary)}

.form-control,.form-select{border-color:var(--border);border-radius:calc(var(--radius) - 4px)}
.form-control:focus,.form-select:focus{border-color:var(--brand-primary);box-shadow:var(--focus-ring)}

.card{background:var(--card);border:1px solid var(--border);border-radius:var(--brand-radius);box-shadow:var(--shadow)}
.card .card-img-top{border-top-left-radius:var(--brand-radius);border-top-right-radius:var(--brand-radius)}
.card .card-body{padding:.9rem 1rem}

/* ── Header/Nav/Footer ── */
header{background:#fff;border-bottom:1px solid var(--border)}
footer{background:#fff;border-top:1px solid var(--border)}
.navbar .nav-link{color:var(--ink)}
.navbar .nav-link:hover{color:var(--brand-primary)}
.navbar .nav-link.active,.navbar .nav-link:focus{color:var(--brand-primary);font-weight:600}
.is-scrolled .navbar{box-shadow:0 10px 25px rgba(0,0,0,.08)!important}
@media (min-width: 992px){
  .navbar .navbar-nav{
    flex:1 1 auto;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:1rem;
  }
}

/* Mostrar dropdown por hover/focus en ≥992px (accesible) */
@media (min-width: 992px) {
  .dropdown-hover .dropdown-menu {
    display:block; opacity:0; visibility:hidden;
    transform: translateY(6px);
    transition: all .15s ease;
    margin-top:0;
  }
  .dropdown-hover:hover > .dropdown-menu,
  .dropdown-hover:focus-within > .dropdown-menu{
    opacity:1; visibility:visible; transform: translateY(0);
  }
}

/* Accesibilidad */
a:focus,button:focus,.btn:focus,.form-control:focus{outline:0;box-shadow:var(--focus-ring)}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important}
  .hero-wrap img{transition:none;transform:none}
}

/* UX: Mejoras en formularios */
.form-control:user-invalid,
.form-control.is-invalid{
  border-color:#dc3545;
  padding-right:calc(1.5em + .75rem);
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
  background-repeat:no-repeat;
  background-position:right calc(.375em + .1875rem) center;
  background-size:calc(.75em + .375rem) calc(.75em + .375rem);
}

.form-control:user-valid,
.form-control.is-valid{
  border-color:#198754;
  padding-right:calc(1.5em + .75rem);
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
  background-repeat:no-repeat;
  background-position:right calc(.375em + .1875rem) center;
  background-size:calc(.75em + .375rem) calc(.75em + .375rem);
}

/* Estados de carga */
.btn.loading{
  position:relative;
  color:transparent!important;
  pointer-events:none;
}
.btn.loading::after{
  content:"";
  position:absolute;
  width:1rem;
  height:1rem;
  top:50%;
  left:50%;
  margin-left:-0.5rem;
  margin-top:-0.5rem;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  animation:spinner-border .75s linear infinite;
  color:inherit;
}

@keyframes spinner-border{
  to{transform:rotate(360deg)}
}

/* Gutters utilitarios */
.gx-tight{ --bs-gutter-x: .75rem !important; }
.gx-tighter{ --bs-gutter-x: .5rem !important; }

/* Full-bleed medios */
.full-bleed{ width:100vw; margin-left:50%; transform:translateX(-50%); }

/* ── Hero promesa (home) ── */
#gt-hero-promesa{background:#fff;color:var(--gt-ink)}
#gt-hero-promesa .text-primary-emphasis{color:var(--gt-primary-600)!important}
#gt-hero-promesa .gt-grad{background:linear-gradient(90deg,var(--gt-primary) 0%,#2F80ED 60%,var(--gt-primary) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
#gt-hero-promesa .fw-extrabold{font-weight:800}
#gt-hero-promesa .tracking-tight{letter-spacing:.02em}
#gt-hero-promesa .gt-badge{position:relative;width:180px;height:180px}
#gt-hero-promesa .gt-badge-ring{position:absolute;inset:0;border-radius:50%;background:conic-gradient(#4484ec)}
#gt-hero-promesa .gt-badge-core{position:absolute;inset:18% 18%;border-radius:50%;background:var(--gt-primary);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8px 10px;line-height:1.1}
#gt-hero-promesa .gt-dot{width:8px;height:8px;border-radius:50%;background:var(--gt-primary);flex:0 0 auto}
#gt-hero-promesa .gt-bar{color:var(--gt-primary);font-weight:600}
#gt-hero-promesa .gt-hr{border:0;border-top:3px solid var(--gt-primary);opacity:1}
#gt-hero-promesa a{color:var(--gt-primary)}
#gt-hero-promesa a:hover{color:var(--gt-primary-600)}
@media (max-width: 767.98px){
  #gt-hero-promesa .vr{display:none!important}
  #gt-hero-promesa .gt-badge{width:140px;height:140px}
}

.py-6{padding-top:4.5rem;padding-bottom:4.5rem}

/* ── CTA final ── */
#cta-final{position:relative;color:#fff;overflow:hidden}
#cta-final::before{content:"";position:absolute;inset:0;background-size:auto,auto,auto,cover;background-position:center;background-repeat:no-repeat;opacity:.6;pointer-events:none}
#cta-final .container{position:relative;z-index:1}
#cta-final .btn{border-width:2px;border-radius:.8rem;padding:.9rem 1.4rem;font-weight:600;box-shadow:0 8px 24px rgba(0,0,0,.18);transition:transform .15s ease, box-shadow .15s ease, color .15s ease, background-color .15s ease, border-color .15s ease}
#cta-final .btn-light{color:#111;background:#fff;border-color:#fff}
#cta-final .btn-light:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(0,0,0,.22)}
#cta-final .btn-outline-light{color:#fff;border-color:rgba(255,255,255,.95);background:transparent}
#cta-final .btn-outline-light:hover{background:#fff;color:#111;border-color:#fff;transform:translateY(-1px);box-shadow:0 12px 28px rgba(0,0,0,.22)}
#cta-final .btn:focus-visible{outline:2px dashed #fff;outline-offset:3px}
@media (max-width:575.98px){
  #cta-final h2{font-size:1.6rem}
  #cta-final .lead{font-size:1.05rem}
}

/* =========================================================
   Ajustes y UX por página (antes en Main.css)
   ========================================================= */

/* Tipografía de contenidos largos */
.prose p{line-height:1.7}
.prose :where(h1,h2,h3){margin-top:.6em;margin-bottom:.35em;line-height:1.2}
.prose :where(ul,ol){padding-left:1.25rem;margin-bottom:.9em}

/* Breadcrumb mejorado */
.breadcrumb{
  --bs-breadcrumb-divider:'›';
  background:rgba(var(--bs-primary-rgb),.03);
  padding:.75rem 1rem;
  border-radius:8px;
  font-size:.9rem;
}
.breadcrumb-item+.breadcrumb-item::before{
  color:var(--secondary);
  opacity:.6;
}
.breadcrumb-item.active{
  color:var(--ink);
  font-weight:500;
}

/* Mejorar contraste y legibilidad */
.text-secondary{opacity:.85}
.text-muted{color:#6c757d!important;opacity:.9}

/* Utilitarios */
.rounded-2xl{border-radius:1.5rem!important}
.shadow-soft{box-shadow:0 20px 60px rgba(20,38,44,.12)!important}

/* WhatsApp flotante (safe-area iOS) - Mejorado para móvil */
.whatsapp-float{
  position:fixed;right:18px;bottom:max(18px,env(safe-area-inset-bottom,0px)+12px);
  width:56px;height:56px;border-radius:50%;
  background:#25D366;color:#fff;font-size:1.6rem;
  box-shadow:0 8px 24px rgba(0,0,0,.18);z-index:1050;
  transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease;
  display:flex;align-items:center;justify-content:center;
  /* Touch target mejorado */
  min-width:44px;min-height:44px;
}
.whatsapp-float:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.22);color:#fff;text-decoration:none}
.whatsapp-float:active{transform:scale(0.95)}
@media (max-width:575.98px){
  .whatsapp-float{width:64px;height:64px;font-size:1.8rem;right:16px;bottom:max(16px,env(safe-area-inset-bottom,0px)+16px)}
}
@media (prefers-reduced-motion:reduce){.whatsapp-float{transition:none}}

/* UX: Mejoras generales para móvil */
@media (max-width:767.98px){
  /* Touch targets más grandes */
  .btn{min-height:44px;padding:.65rem 1rem}
  .nav-link{min-height:44px;display:flex;align-items:center}
  
  /* Espaciado optimizado */
  .container{padding-left:1rem;padding-right:1rem}
  
  /* Tipografía móvil optimizada */
  h1,.h1{font-size:1.85rem!important}
  h2,.h2{font-size:1.5rem!important}
  .lead{font-size:1.05rem}
  
  /* Cards con mejor espaciado */
  .card-body{padding:1rem}
}

/* Categorías: botones compactos */
#categorias .btn{padding:.625rem .75rem;border-radius:12px}

/* Opiniones */
#opiniones blockquote{margin:0}
#opiniones .row{--bs-gutter-y:1rem}

/* Disponibilidad / Mapa */
#disponibilidad .p-4{padding:1rem!important}
#mapa iframe{border:0}

/* Booking (caja fija en móvil) */
.booking-box .display-6{font-weight:800}
.booking-box{position:sticky;top:1.25rem}
@media (max-width:991.98px){
  .booking-box{
    position:fixed;left:0;right:0;bottom:0;z-index:1030;
    border-radius:1rem 1rem 0 0;box-shadow:0 -8px 24px rgba(0,0,0,.12);
    padding-bottom:max(0px,env(safe-area-inset-bottom,0px));background:transparent
  }
  .booking-box .card-body{padding-top:.85rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px))}
}
.accordion-button .badge{border-radius:.8rem}

/* Home: pequeños ajustes de tipografía */
#hero h1,#hero .display-5,#hero .display-6{margin-bottom:.5rem;line-height:1.2}
.lead{margin-bottom:.85rem!important}

/* ===== Accordions mejorados - Diseño moderno ===== */

/* Contenedor general de acordeones */
.accordion{
  --bs-accordion-border-radius:12px;
  --bs-accordion-inner-border-radius:10px;
}

/* Items del acordeón con espaciado y bordes suaves */
.accordion-item{
  border:1px solid rgba(var(--bs-primary-rgb),.1);
  border-radius:12px!important;
  overflow:hidden;
  margin-bottom:1rem;
  background:#fff;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
  transition:all .3s ease;
}

.accordion-item:hover{
  border-color:rgba(var(--bs-primary-rgb),.2);
  box-shadow:0 4px 12px rgba(0,0,0,.08);
  transform:translateY(-2px);
}

/* Botones del acordeón con iconos de pregunta */
.accordion-button{
  font-weight:600;
  letter-spacing:-0.01em;
  padding:1rem 1.25rem;
  background-color:#fff;
  color:var(--ink);
  font-size:1rem;
  border:none;
  position:relative;
  padding-left:3.5rem;
  transition:all .25s ease;
}

/* Icono de pregunta antes del texto */
.accordion-button::before{
  content:"?";
  position:absolute;
  left:1rem;
  width:2rem;
  height:2rem;
  background:linear-gradient(135deg,var(--brand-primary),var(--brand-hover));
  color:#fff;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  font-size:1.1rem;
  box-shadow:0 2px 8px rgba(var(--bs-primary-rgb),.25);
  transition:all .3s ease;
}

.accordion-button:not(.collapsed){
  background-color:rgba(var(--bs-primary-rgb),.05);
  color:var(--brand-primary);
  border-bottom:1px solid rgba(var(--bs-primary-rgb),.1);
}

.accordion-button:not(.collapsed)::before{
  background:var(--brand-primary);
  transform:rotate(180deg) scale(1.1);
}

.accordion-button:hover{
  background-color:rgba(var(--bs-primary-rgb),.08);
}

.accordion-button:focus{
  box-shadow:none;
  border-color:rgba(var(--bs-primary-rgb),.2);
}

/* Icono chevron mejorado */
.accordion-button::after{
  flex-shrink:0;
  width:1.25rem;
  height:1.25rem;
  margin-left:auto;
  background-size:1.25rem;
  transition:transform .3s ease;
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%234484EC'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

.accordion-button:not(.collapsed)::after{
  transform:rotate(-180deg);
}

/* Cuerpo del acordeón con mejor formato */
.accordion-body{
  padding:1.25rem;
  padding-left:3.5rem;
  font-size:.95rem;
  line-height:1.7;
  color:#374151;
  background:#fff;
}

.accordion-body strong{
  color:var(--brand-primary);
  font-weight:600;
}

/* ===== FAQ específico (con marcadores Q/A) ===== */
.accordion-faq .accordion-button::before{
  content:"Q";
  font-family:'Georgia',serif;
  font-style:italic;
}

.accordion-faq .accordion-body::before{
  content:"A:";
  color:var(--brand-primary);
  font-weight:700;
  margin-right:.5rem;
  font-size:1rem;
}

/* Versión compacta para móvil */
@media (max-width:767.98px){
  .accordion-button{
    font-size:.9rem;
    padding:.85rem 1rem;
    padding-left:3rem;
  }
  .accordion-button::before{
    width:1.75rem;
    height:1.75rem;
    font-size:1rem;
    left:.85rem;
  }
  .accordion-body{
    padding:1rem;
    padding-left:3rem;
    font-size:.9rem;
  }
}

/* Marco general (info/destacados) */
.info-frame{
  border-radius:16px; overflow:hidden;
  border:1px solid rgba(17,24,39,.06); background:#fff;
}
.info-frame .card-header{
  border-bottom:1px solid rgba(17,24,39,.06)!important; padding:.9rem 1rem;
}

/* Píldoras */
.pill{
  display:inline-flex;align-items:center;gap:.35rem;
  font-weight:600;font-size:.875rem;padding:.25rem .55rem;border-radius:999px;
  border:1px solid transparent;background:#f6f7f9;color:#111827;
}
.pill-ok{
  background: rgba(var(--bs-success-rgb, 25,135,84), .12);
  color: var(--bs-success, #198754);
  border-color: rgba(var(--bs-success-rgb, 25,135,84), .2);
}
.pill-warn{
  background: rgba(var(--bs-danger-rgb, 220,53,69), .1);
  color: var(--bs-danger, #dc3545);
  border-color: rgba(var(--bs-danger-rgb, 220,53,69), .2);
}
.pill-info{background:rgba(17,24,39,.06);color:#111827;border-color:rgba(17,24,39,.08)}

/* ===== Mejora de etiquetas/tags en cards ===== */
.badge.rounded-pill{
  font-weight:500;
  font-size:.75rem;
  padding:.35rem .75rem;
  transition:all .2s ease;
  letter-spacing:.01em;
}

/* Etiquetas en listados de blog/categorías */
.badge.text-bg-light{
  background-color:rgba(var(--bs-primary-rgb),.08)!important;
  color:var(--brand-primary)!important;
  border:1px solid rgba(var(--bs-primary-rgb),.15)!important;
}

.badge.text-bg-light:hover{
  background-color:rgba(var(--bs-primary-rgb),.15)!important;
  border-color:rgba(var(--bs-primary-rgb),.25)!important;
  transform:translateY(-1px);
  box-shadow:0 2px 4px rgba(0,0,0,.05);
}

/* Contenedor de tags mejorado */
.d-flex.flex-wrap.gap-1{
  gap:.5rem!important;
  margin-top:.75rem;
}

/* Tags en artículos individuales */
.badge.bg-light{
  background-color:rgba(var(--bs-primary-rgb),.08)!important;
  color:var(--brand-primary)!important;
  border:1px solid rgba(var(--bs-primary-rgb),.15);
  font-weight:500;
  padding:.35rem .75rem;
  transition:all .2s ease;
}

.badge.bg-light:hover{
  background-color:var(--brand-primary)!important;
  color:#fff!important;
  border-color:var(--brand-primary);
  transform:translateY(-1px);
  box-shadow:0 2px 6px rgba(var(--bs-primary-rgb),.25);
}

/* Listas con check */
.list-check li{ margin:.3rem 0; }

/* ===== Galería mejorada ===== */
.gallery-grid .gallery-card{
  position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:12px;
  border:1px solid rgba(17,24,39,.06);background:#f8fafc;
}
.gallery-grid .gallery-card img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .4s ease, filter .4s ease;
}
.gallery-grid .gallery-card .overlay{
  position:absolute;left:0;right:0;bottom:0;padding:.55rem .65rem .6rem;
  background:linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0));
  color:#fff;opacity:0;transition:opacity .3s ease;
}
.gallery-grid .gallery-card .overlay .title{line-height:1.2}
.gallery-grid .gallery-card .overlay .credit{opacity:.85;font-size:.78rem}
.gallery-grid .gallery-card .zoom{
  position:absolute;top:.5rem;right:.5rem;border-radius:999px;padding:.35rem .5rem;
  font-weight:600;opacity:0;transition:opacity .3s ease;
}
.gallery-grid .gallery-card:hover img{transform:scale(1.05);filter:saturate(1.05)}
.gallery-grid .gallery-card:hover .overlay,
.gallery-grid .gallery-card:hover .zoom{opacity:1}
#galleryLightboxImg{max-height:85vh;object-fit:contain}

/* Input-group sin doble borde */
.input-group .form-control.border-start-0{border-left:0!important}
.input-group .input-group-text{border-right:0!important}

/* =========================================================
   Mega dropdown UNIFICADO y CENTRADO (según tu snippet)
   ========================================================= */

/* Hover/focus en desktop (ya arriba, se repite para asegurar especificidad mínima) */
@media (min-width: 992px){
  .dropdown-hover .dropdown-menu{
    display:block;opacity:0;visibility:hidden;
    transform: translateY(6px);
    transition: all .15s ease;
  }
  .dropdown-hover:hover > .dropdown-menu,
  .dropdown-hover:focus-within > .dropdown-menu{
    opacity:1;visibility:visible;transform: translateY(0);
  }
}

/* Full width del mega y centrado por el .container interno */
.navbar .dropdown-menu.dropdown-mega{
  left:0; right:0; margin:0; border-radius:0;
}

/* Unificar estilo de items */
.dropdown-mega .dropdown-item{ border-radius:.5rem; }
.dropdown-mega .dropdown-item:hover{
  /* Si tu navegador no soporta color-mix, el fallback ya existe más arriba con rgba() */
  background: color-mix(in srgb, var(--brand-primary) 8%, white);
}

/* Titulares y caja lateral coherentes */
.dropdown-mega h6{ letter-spacing:.06em; }

/* Ajustes móviles para respiración y ancho completo */
@media (max-width: 991.98px){
  .dropdown-mega{ width:100vw; border-radius:0; }
  .dropdown-mega .container{ padding-left:.75rem; padding-right:.75rem; }
}

/* Skip to content link (accessibility) */
.skip-to-content {
  position: absolute;
  top: -40px;
  left: 0;
  background: var(--brand-primary);
  color: white;
  padding: 8px 16px;
  text-decoration: none;
  z-index: 10000;
  border-radius: 0 0 4px 0;
}
.skip-to-content:focus {
  top: 0;
}

/* Main content wrapper - no extra spacing */
main#main-content {
  display: block;
  padding: 0;
  margin: 0;
  min-height: auto;
}

/* =========================================================
   Sugerencias de Mejora UI/UX (Implementadas)
   ========================================================= */

/* --- 1. Efecto "Lift" en elementos interactivos --- */
.card, .btn {
  transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out, background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(20, 38, 44, 0.1);
  cursor:pointer;
}

.card:active{
  transform:translateY(-2px);
}

.btn-brand:hover, .btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(var(--bs-primary-rgb), 0.25);
}

.btn-brand:active, .btn-primary:active{
  transform:translateY(0);
}

/* Efecto ripple sutil en botones */
.btn{
  position:relative;
  overflow:hidden;
}

.btn::before{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:0;
  height:0;
  border-radius:50%;
  background:rgba(255,255,255,.3);
  transform:translate(-50%,-50%);
  transition:width .6s,height .6s;
}

.btn:active::before{
  width:300px;
  height:300px;
}


/* --- 2. Mejoras en Mega Menú --- */
.dropdown-mega .dropdown-item:hover,
.dropdown-mega .dropdown-item:focus {
  color: var(--brand-primary);
  background-color: var(--brand-primary-10, #f0f6ff);
}

.dropdown-mega h6 {
  letter-spacing: .05em;
  border-bottom: 1px solid var(--border);
  padding-bottom: 0.5rem;
  margin-bottom: 0.75rem;
  color: var(--ink);
}


/* --- 3. Evitar CLS (Content Layout Shift) en imágenes --- */
.card .card-img-top {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  background-color: #f0f2f5;
}


/* --- 4. Animación para CTA principal "Reservar" --- */
@keyframes pulse-animation {
  0% {
    box-shadow: 0 0 0 0 rgba(var(--bs-primary-rgb), 0.4);
  }
  100% {
    box-shadow: 0 0 0 12px rgba(var(--bs-primary-rgb), 0);
  }
}

.navbar .btn-brand {
  animation: pulse-animation 2s infinite;
}

.navbar .btn-brand:hover,
.navbar .btn-brand:focus {
  animation: none;
}

/* =========================================================
   Progressive Enhancement - Animaciones de entrada
   ========================================================= */

.animate-in{
  opacity:1!important;
  transform:translateY(0)!important;
}

/* Skeleton loading para contenido dinámico */
.skeleton{
  background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);
  background-size:200% 100%;
  animation:skeleton-loading 1.5s ease-in-out infinite;
  border-radius:4px;
}

@keyframes skeleton-loading{
  0%{background-position:200% 0}
  100%{background-position:-200% 0}
}

.skeleton-text{
  height:1em;
  margin-bottom:.5em;
}

.skeleton-title{
  height:2em;
  width:60%;
  margin-bottom:1em;
}

.skeleton-image{
  height:200px;
  width:100%;
}

/* =========================================================
   Mejoras visuales del Home
   ========================================================= */

/* Animaciones de entrada */
@keyframes fadeInUp{
  from{
    opacity:0;
    transform:translateY(30px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@keyframes fadeIn{
  from{opacity:0}
  to{opacity:1}
}

.animate-fade-in-up{
  animation:fadeInUp 0.8s ease-out forwards;
}

.animate-fade-in{
  animation:fadeIn 0.8s ease-out forwards;
}

/* Hero mejorado */
#hero{
  position:relative;
}

#hero .badge-brand{
  animation:fadeInUp 0.6s ease-out;
  box-shadow:0 2px 8px rgba(var(--bs-primary-rgb),.15);
}

#hero h1{
  animation:fadeInUp 0.8s ease-out 0.1s backwards;
}

#hero .lead{
  animation:fadeInUp 0.8s ease-out 0.2s backwards;
}

#hero form{
  animation:fadeInUp 0.8s ease-out 0.3s backwards;
}

/* Subrayado animado */
#hero .text-brand svg path{
  stroke-dasharray:300;
  stroke-dashoffset:300;
  animation:drawLine 1.5s ease-out 0.8s forwards;
}

@keyframes drawLine{
  to{stroke-dashoffset:0}
}

/* Pills de beneficios mejorados */
#hero .rounded-pill{
  transition:all .3s ease;
  border:1px solid rgba(0,0,0,.05);
}

#hero .rounded-pill:hover{
  transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(0,0,0,.1)!important;
}

/* Imagen hero con zoom sutil */
#hero picture img{
  transition:transform 8s ease-in-out;
}

#hero:hover picture img{
  transform:scale(1.1)!important;
}

/* Badge flotante de rating */
#hero .position-absolute.bottom-0{
  animation:fadeIn 1.2s ease-out 0.8s backwards;
  backdrop-filter:blur(10px);
  background:rgba(255,255,255,.95)!important;
}

/* Barra de confianza con iconos circulares */
#confianza .rounded-circle{
  transition:all .3s ease;
}

#confianza .col:hover .rounded-circle{
  background-color:var(--brand-primary)!important;
  transform:scale(1.1) rotate(5deg);
}

#confianza .col:hover .rounded-circle i{
  color:#fff!important;
}

#confianza .col{
  transition:transform .3s ease;
}

#confianza .col:hover{
  transform:translateY(-4px);
}

/* Secciones con títulos centrados mejorados */
section .badge{
  font-weight:600;
  letter-spacing:.02em;
}

section .display-6{
  letter-spacing:-.02em;
}

/* Testimonios mejorados */
#opiniones blockquote,
#opiniones .card{
  transition:all .3s ease;
  border:1px solid rgba(0,0,0,.05)!important;
}

#opiniones blockquote:hover,
#opiniones .card:hover{
  transform:translateY(-8px);
  box-shadow:0 12px 32px rgba(0,0,0,.12)!important;
}

#opiniones .bi-quote{
  line-height:1;
}

/* Cards de tours y espectáculos mejorados */
#tours-destacados .card,
#espectaculos-destacados .card{
  transition:all .3s cubic-bezier(.4,0,.2,1);
  border:none;
}

#tours-destacados .card:hover,
#espectaculos-destacados .card:hover{
  transform:translateY(-8px) scale(1.02);
  box-shadow:0 20px 40px rgba(0,0,0,.15)!important;
}

#tours-destacados .card-img-top,
#espectaculos-destacados .card-img-top{
  transition:transform .5s ease;
}

#tours-destacados .card:hover .card-img-top,
#espectaculos-destacados .card:hover .card-img-top{
  transform:scale(1.1);
}

/* FAQ section mejorada */
#faq{
  background:linear-gradient(180deg, #fff 0%, #f8f9fa 100%);
}

/* Respons para móviles */
@media (prefers-reduced-motion:reduce){
  .animate-fade-in-up,
  .animate-fade-in,
  #hero *{
    animation:none!important;
  }
}
