/* =========================================================
   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 ── */
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}
a:hover{color:var(--brand-hover);text-decoration:underline;text-underline-offset:2px}

/* ── 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}
.navbar-nav,.mr-auto{flex:1;display:flex;justify-content:space-between}

/* 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){.hero-wrap img{transition:none;transform:none}}

/* 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 */
.breadcrumb{--bs-breadcrumb-divider:'›'}

/* 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) */
.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
}
.whatsapp-float:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.22);color:#fff;text-decoration:none}
@media (max-width:575.98px){.whatsapp-float{width:60px;height:60px;font-size:1.8rem;right:14px}}
@media (prefers-reduced-motion:reduce){.whatsapp-float{transition:none}}

/* 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}

/* ===== FAQ mejorado (P/R diferenciadas) ===== */
.accordion-faq .accordion-item {
  border: 1px solid rgba(17,24,39,.06);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: .75rem;
  background: #fff;
}
.accordion-faq .accordion-button {
  font-weight: 700;
  letter-spacing: -0.01em;
  padding: .9rem 1rem;
}
.accordion-faq .accordion-button .faq-q {
  background: rgba(var(--bs-primary-rgb), .12);
  color: var(--bs-primary);
  font-weight: 700;
  width: 1.75rem; height: 1.75rem;
  display: inline-flex; align-items: center; justify-content: center;
}
.accordion-faq .accordion-button .faq-qtext { line-height: 1.35; }
.accordion-faq .accordion-body {
  padding: 1rem; font-size: .985rem; line-height: 1.6; color: var(--color-700, #374151);
}
.accordion-faq .accordion-body .faq-a {
  background: rgba(var(--bs-success-rgb, 25,135,84), .12);
  color: var(--bs-success, #198754);
  font-weight: 700;
  width: 1.75rem; height: 1.75rem;
  display: inline-flex; align-items: center; justify-content: center;
}
.accordion-faq .accordion-body .faq-atext p { margin-bottom: .5rem; }
/* icono +/- */
.accordion-faq .accordion-button::after{
  flex-shrink:0;width:1rem;height:1rem;background-size:1rem 1rem;background-repeat:no-repeat;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="%23111827" viewBox="0 0 16 16"><path d="M1 8a.75.75 0 0 1 .75-.75h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 8z"/></svg>');
  transform:none;
}
.accordion-faq .accordion-button:not(.collapsed)::after{
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="%23111827" viewBox="0 0 16 16"><path d="M7.25 1.75a.75.75 0 0 1 1.5 0V7.25H14.25a.75.75 0 0 1 0 1.5H8.75V14.25a.75.75 0 0 1-1.5 0V8.75H1.75a.75.75 0 0 1 0-1.5H7.25z"/></svg>');
}

/* 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)}

/* 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; }
}
