/* =========================================================
   APP THEME — Local Explore Tours (Modern)
   Paleta: brand #85C2C2 (teal), accent #FF7F50 (coral)
   Modern design with gradients, smooth animations & premium shadows
   ========================================================= */

/* ---------- Variables & Bootstrap bridges ---------- */
:root{
  /* Core colors */
  --brand:#85C2C2;          /* principal (teal suave) */
  --brand-dark:#5F9999;     /* darker teal */
  --brand-light:#A8D8D8;    /* lighter teal */
  --accent:#FF7F50;         /* coral */
  --accent-dark:#E86F45;    /* coral hover */
  --accent-light:#FFB5A8;   /* light coral */
  --ink:#0D1B2A;            /* deep ink */
  --ink-light:#1F2937;      /* lighter ink */
  --muted:#6B7280;          /* text secondary */
  --success:#10B981;        /* success green */
  --warning:#F59E0B;        /* warning amber */
  --danger:#EF4444;         /* danger red */
  --bg:#FAFBFC;             /* background */
  --bg-secondary:#F3F4F6;   /* secondary bg */
  --card:#FFFFFF;
  --border:#E5E7EB;
  --border-light:#F0F1F3;

  /* Bootstrap bridges */
  --bs-body-bg:var(--bg);
  --bs-body-color:var(--ink);
  --bs-border-color:var(--border);
  --bs-primary:var(--brand);
  --bs-link-color:var(--accent);
  --bs-link-hover-color:var(--accent-dark);
  --bs-badge-color:#000!important;

  --focus-ring:0 0 0 .25rem rgba(133,194,194,.4);

  --radius:10px;
  --radius-lg:16px;
  --shadow:0 8px 24px rgba(14,22,34,.08);
  --shadow-lg:0 16px 48px rgba(14,22,34,.12);
  --shadow-xl:0 24px 60px rgba(14,22,34,.15);
  --shadow-hover:0 12px 32px rgba(14,22,34,.15);

  /* Hero Promesa mapping */
  --gt-primary:var(--brand);
  --gt-primary-600:var(--brand-dark);
  --gt-border:var(--border);
}

/* ---------- Tipografía & enlaces ---------- */
body{
  font-family:"Plus Jakarta Sans", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, "Helvetica Neue", Arial, sans-serif;
  font-weight:400;
  line-height:1.7;
  color:var(--ink);
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* Full-card clickable anchor wrapper */
.card-link { text-decoration:none; }
.card-link:focus,
.card-link:focus-visible {
  outline:none;
  box-shadow:none;
}
.card-link .card { transition:all .3s cubic-bezier(0.4,0,0.2,1); }
.card-link:hover .card { transform:translateY(-4px); box-shadow:var(--shadow-hover); }
.card-link:hover h3 { text-decoration:underline; }

h1,h2,h3,h4,h5,h6{
  font-family:"Playfair Display", Georgia, "Times New Roman", serif;
  font-weight:700;
  letter-spacing:-.02em;
  color:var(--ink);
  margin-bottom:1rem;
  line-height:1.2;
}

h1 { 
  font-size:clamp(2rem, 5vw, 3.75rem); 
  font-weight:800; 
  line-height:1.1;
  letter-spacing:-.03em;
}
h2 { 
  font-size:clamp(1.75rem, 4vw, 2.75rem); 
  font-weight:800; 
  line-height:1.15;
  letter-spacing:-.025em;
}
h3 { 
  font-size:clamp(1.5rem, 3.5vw, 2rem); 
  font-weight:700; 
  line-height:1.25;
  letter-spacing:-.02em;
}
h4 { 
  font-size:clamp(1.25rem, 3vw, 1.5rem); 
  font-weight:700;
  line-height:1.3;
}
h5 { 
  font-size:1.125rem; 
  font-weight:600;
  line-height:1.4;
  font-family:"Plus Jakarta Sans", sans-serif;
}
h6 { 
  font-size:1rem; 
  font-weight:600;
  line-height:1.4;
  font-family:"Plus Jakarta Sans", sans-serif;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.display-1, .display-2, .display-3, .display-4, .display-5, .display-6{
  font-family:"Playfair Display", Georgia, serif;
  font-weight:800;
  letter-spacing:-.03em;
}

.lead{
  font-size:1.15rem;
  line-height:1.8;
  color:var(--muted);
  font-weight:400;
}
.small,.form-text{
  color:var(--muted);
  font-size:0.9rem;
}

a{color:var(--bs-link-color);text-decoration:none;transition:all .2s ease;}
a:hover{color:var(--bs-link-hover-color);text-decoration:underline;text-underline-offset:3px;}
a:focus{outline:none;box-shadow:none;}
a:focus-visible{outline:0;box-shadow:var(--focus-ring);}

/* Heading decorativos y utilidades */
.section-title{
  position:relative;
  padding-bottom:.75rem;
  margin-bottom:2rem;
}
.section-title::after{
  content:'';
  position:absolute;
  bottom:0;
  left:0;
  width:60px;
  height:4px;
  background:linear-gradient(90deg, var(--brand), var(--accent));
  border-radius:2px;
}
.section-title.text-center::after{
  left:50%;
  transform:translateX(-50%);
}

.heading-accent{
  background:linear-gradient(135deg, var(--brand) 0%, var(--accent) 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

.heading-underline{
  position:relative;
  display:inline-block;
}
.heading-underline::after{
  content:'';
  position:absolute;
  bottom:-.25rem;
  left:0;
  right:0;
  height:3px;
  background:linear-gradient(90deg, var(--accent), var(--brand));
  border-radius:2px;
}

/* Serif alternative para headings especiales */
.serif{
  font-family:"Playfair Display", Georgia, serif !important;
}

/* Sans-serif para headings que necesiten ser más modernos */
.sans-serif{
  font-family:"Plus Jakarta Sans", sans-serif !important;
}

/* ---------- Botones ---------- */
.btn{
  border-radius:var(--radius-lg);
  font-weight:500;
  font-size:0.95rem;
  transition:all .3s cubic-bezier(0.4, 0, 0.2, 1);
  padding:0.6rem 1.25rem;
  position:relative;
  overflow:hidden;
  border-width:1.5px;
}
.btn:focus,
.btn:focus-visible{
  outline:none;
  box-shadow:none;
}
.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 ease, height .6s ease;
}
.btn:hover::before{
  width:300px;
  height:300px;
}
.btn:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 24px rgba(0,0,0,.15);
}
.btn:active{
  transform:translateY(-1px);
  box-shadow:0 6px 12px rgba(0,0,0,.1);
}

.btn-primary{
  --bs-btn-bg:linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
  --bs-btn-border-color:var(--brand);
  background:linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
  border-color:var(--brand);
  color:#fff;
  font-weight:600;
  box-shadow:0 4px 12px rgba(133,194,194,.3), inset 0 1px 0 rgba(255,255,255,.2);
  position:relative;
  z-index:1;
}
.btn-primary::after{
  content:'';
  position:absolute;
  inset:0;
  border-radius:var(--radius-lg);
  background:linear-gradient(135deg, var(--brand-dark) 0%, var(--brand) 100%);
  opacity:0;
  transition:opacity .3s ease;
  z-index:-1;
}
.btn-primary:hover{
  box-shadow:0 12px 28px rgba(133,194,194,.4), inset 0 1px 0 rgba(255,255,255,.3);
  border-color:var(--brand-dark);
}
.btn-primary:hover::after{
  opacity:1;
}

.btn-outline-primary{
  --bs-btn-color:var(--brand);
  --bs-btn-border-color:var(--brand);
  color:var(--brand);
  border-color:var(--brand);
  background:transparent;
  border-width:1.5px;
  font-weight:500;
  position:relative;
  overflow:hidden;
}
.btn-outline-primary::before{
  background:var(--brand);
  opacity:.1;
}
.btn-outline-primary:hover{
  color:#fff;
  background:var(--brand);
  border-color:var(--brand);
  box-shadow:0 8px 20px rgba(133,194,194,.35);
}

.btn-accent{
  background:linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);
  border-color:var(--accent);
  color:#fff;
  border-radius:var(--radius-lg);
  box-shadow:0 4px 12px rgba(255,127,80,.3), inset 0 1px 0 rgba(255,255,255,.2);
  font-weight:600;
}
.btn-accent:hover{
  background:linear-gradient(135deg, var(--accent-dark) 0%, var(--accent) 100%);
  border-color:var(--accent-dark);
  box-shadow:0 12px 28px rgba(255,127,80,.4), inset 0 1px 0 rgba(255,255,255,.3);
  transform:translateY(-3px);
}

.btn-sm{padding:0.5rem 1rem;font-size:0.875rem;}
.btn-lg{padding:0.8rem 1.75rem;font-size:1.05rem;}

/* ---------- Formularios ---------- */
.form-control,.form-select{
  border:1.5px solid var(--border);
  border-radius:var(--radius);
  background:var(--card);
  font-size:0.95rem;
  transition:all .3s ease;
  padding:0.65rem 1rem;
  box-shadow:0 2px 4px rgba(0,0,0,.02);
}
.form-control::placeholder{
  color:var(--muted);
  opacity:.6;
}
.form-control:focus,.form-select:focus{
  border-color:var(--brand);
  background:#fff;
  box-shadow:0 0 0 4px rgba(133,194,194,.1), 0 4px 12px rgba(133,194,194,.15);
  transform:translateY(-1px);
}
.form-control:hover:not(:focus),.form-select:hover:not(:focus){
  border-color:rgba(133,194,194,.3);
  box-shadow:0 4px 8px rgba(0,0,0,.04);
}
.form-label{
  font-weight:600;
  color:var(--ink);
  margin-bottom:0.5rem;
  font-size:0.95rem;
  letter-spacing:-.01em;
}
textarea.form-control{
  resize:vertical;
  min-height:120px;
}
.form-check-input{
  width:1.25rem;
  height:1.25rem;
  border:1.5px solid var(--border);
  transition:all .3s ease;
  cursor:pointer;
  box-shadow:0 2px 4px rgba(0,0,0,.05);
}
.form-check-input:checked{
  background-color:var(--brand);
  border-color:var(--brand);
  box-shadow:0 0 0 4px rgba(133,194,194,.15), 0 2px 8px rgba(133,194,194,.3);
}
.form-check-input:hover{
  border-color:var(--brand);
  box-shadow:0 0 0 4px rgba(133,194,194,.08);
}
.form-check-label{
  cursor:pointer;
  transition:color .2s ease;
}
.form-check:hover .form-check-label{
  color:var(--brand);
}

/* ---------- Cards ---------- */
.card{
  background:var(--card);
  border:1px solid rgba(133,194,194,.1);
  border-radius:var(--radius-lg);
  box-shadow:0 8px 24px rgba(14,22,34,.08);
  transition:all .4s cubic-bezier(0.4, 0, 0.2, 1);
  overflow:hidden;
  position:relative;
}
.card::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  background:linear-gradient(90deg, var(--brand), var(--accent));
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .4s cubic-bezier(0.4, 0, 0.2, 1);
}
.card:hover::before{
  transform:scaleX(1);
}
.card:hover{
  box-shadow:0 16px 48px rgba(14,22,34,.15);
  transform:translateY(-8px);
  border-color:rgba(133,194,194,.2);
}
.card .card-img-top{
  border-top-left-radius:var(--radius-lg);
  border-top-right-radius:var(--radius-lg);
  object-fit:cover;
  transition:transform .4s cubic-bezier(0.4, 0, 0.2, 1), filter .4s ease;
}
.card:hover .card-img-top{
  transform:scale(1.08);
  filter:brightness(1.05) saturate(1.1);
}
.card-body{
  padding:1.5rem;
  position:relative;
  z-index:1;
  background:linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(133,194,194,.02) 100%);
}
.card-title{
  font-weight:600;
  font-size:1.05rem;
  color:var(--ink);
  transition:color .3s ease;
}
.card:hover .card-title{
  color:var(--brand);
}
.card-text{
  color:var(--muted);
  font-size:0.95rem;
  line-height:1.6;
}

/* ---------- Header / Navbar / Topbar ---------- */
header{
  background:#fff;
  border-bottom:1px solid rgba(0,0,0,.05);
  box-shadow:0 4px 20px rgba(14,22,34,.06);
  will-change:transform;
  transform:translateZ(0);
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  position:relative;
}
header::after{
  content:'';
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(133,194,194,.3) 50%, transparent);
  opacity:0;
  transition:opacity .3s ease;
}
.site-header.compact header::after{
  opacity:1;
}

.navbar{
  background:#fff;
  position:relative;
}
.navbar .nav-link{
  color:var(--ink);
  font-weight:500;
  font-size:0.95rem;
  text-transform:uppercase;
  letter-spacing:0.04em;
  transition:color .2s ease, transform .2s ease;
  padding:0.5rem 1rem;
  position:relative;
  display:inline-block;
}
.navbar .nav-link::after{
  content:'';
  position:absolute;
  bottom:0;
  left:50%;
  transform:translateX(-50%) scaleX(0);
  width:80%;
  height:2px;
  background:linear-gradient(90deg, var(--brand), var(--accent));
  border-radius:2px;
  transition:transform .3s cubic-bezier(0.4, 0, 0.2, 1);
}
.navbar .nav-link:hover{
  color:var(--accent);
  text-decoration:none;
  transform:translateY(-2px);
}
.navbar .nav-link:hover::after{
  transform:translateX(-50%) scaleX(1);
.navbar .nav-link:focus,
.navbar .nav-link:focus-visible{
  outline:none;
  box-shadow:none;
}
}
.navbar .nav-link.active{
  color:var(--brand);
}
.navbar .nav-link.active::after{
  transform:translateX(-50%) scaleX(1);
  background:var(--brand);
}

.site-header .navbar{
  transition:padding-block .3s cubic-bezier(0.4, 0, 0.2, 1);
  padding-block:0.75rem;
  will-change:padding-block;
}
.site-header.compact .navbar{
  padding-block:0.5rem;
}

/* Topbar optional - mejorado */
.site-header .topbar{
  background:linear-gradient(135deg, rgba(133,194,194,.08) 0%, rgba(255,127,80,.05) 100%);
  backdrop-filter:blur(10px);
  max-height:var(--topbar-h,56px);
  overflow:hidden;
  border-bottom:1px solid rgba(133,194,194,.15);
  transition:none;
}
.site-header .topbar a{
  transition:all .2s ease;
}
.site-header .topbar a:hover{
  color:var(--accent)!important;
  transform:translateX(2px);
}
.site-header .topbar .small{
  font-size:0.85rem;
}
.site-header .topbar .btn,
.site-header .topbar .btn-sm{
  font-size:0.75rem;
  padding:0.2rem 0.85rem;
  border-radius:999px;
}
.site-header.compact .topbar{
  max-height:0!important;
  padding-block:0!important;
  opacity:0;
  border-bottom-width:0!important;
}

/* Ocultar topbar por dirección de scroll (suave) */
.site-header.hide-topbar .topbar{
  transform:translateY(-100%);
  opacity:0!important;
}
.site-header .topbar{
  position:relative;
  z-index:10;
}
.site-header .topbar, .site-header.hide-topbar .topbar{
  will-change:auto;
}

/* Logo adaptive - mejorado */
.brand-logo{
  display:block;
  height:44px;
  width:auto;
  object-fit:contain;
  transition:height .3s cubic-bezier(0.4, 0, 0.2, 1), filter .2s ease;
  will-change:height;
  filter:drop-shadow(0 2px 4px rgba(133,194,194,.15));
}
.brand-logo:hover{
  filter:drop-shadow(0 4px 8px rgba(133,194,194,.25));
}
.site-header.compact .brand-logo{height:38px;}
@media (min-width:768px){
  .brand-logo{height:52px;}
  .site-header.compact .brand-logo{height:40px;}
}

/* Mobile navbar */
@media (max-width:767.98px){
  .navbar-collapse{background:#fafbfc;padding:1rem 0;border-top:1px solid var(--border);}
  .navbar .nav-link{padding:0.75rem 1rem;}
}

.navbar-toggler{border:0;padding:0.4rem;}
.navbar-toggler .navbar-toggler-icon{filter:brightness(.6);}
.navbar-toggler:focus{outline:0;box-shadow:var(--focus-ring);}

/* ---------- Utilities ---------- */
.section{padding-block:4rem;}
.object-fit-cover{object-fit:cover;}

.destination-hero{
  position:relative;
  overflow:hidden;
  min-height:320px;
  background-color:#0e1824;
  scroll-margin-top:110px;
}
.destination-hero__bg{
  position:absolute;
  inset:0;
  z-index:0;
}
.destination-hero__bg img{
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0.55;
  filter:saturate(0.95);
}
.destination-hero__content{
  position:relative;
  z-index:1;
  padding-top:clamp(5rem, 9vw, 7.5rem);
  padding-bottom:clamp(3rem, 6vw, 4rem);
}
@media (max-width:767.98px){
  .destination-hero__content{
    padding-top:clamp(4rem, 14vw, 6rem);
  }
}
.destination-hero h1{
  color:#fff;
}
.destination-hero .lead{
  color:rgba(255,255,255,.9)!important;
  font-weight:500;
}

.text-accent{color:var(--accent);}
.text-brand{color:var(--brand);}
.text-muted{color:var(--muted);}

.badge{border-radius:999px;font-weight:500;font-size:0.825rem;padding:0.35rem 0.75rem;}
.badge.text-bg-primary{background:linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);}
.badge.text-bg-accent{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);}

.rounded-4{border-radius:1.5rem;}
.rounded-lg{border-radius:var(--radius-lg);}

/* Focus states */
a:focus,
a:focus-visible,
button:focus,
button:focus-visible,
.btn:focus,
.btn:focus-visible,
.form-control:focus,
.form-control:focus-visible,
select:focus,
select:focus-visible{
  outline:none;
  box-shadow:none;
}

/* ---------- Hero “Promesa” ---------- */
#gt-hero-promesa .gt-grad{
  background:linear-gradient(90deg,var(--gt-primary) 0%,
            color-mix(in srgb,var(--accent) 40%,var(--gt-primary)) 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(from 0turn,
    color-mix(in srgb,var(--gt-primary) 20%,white) 0 25%,
    color-mix(in srgb,var(--gt-primary) 35%,white) 25% 50%,
    color-mix(in srgb,var(--gt-primary) 50%,white) 50% 75%,
    color-mix(in srgb,var(--gt-primary) 65%,white) 75% 100%);
  mask:radial-gradient(circle at 50% 50%,transparent 60%,#000 61%);
}
#gt-hero-promesa .gt-badge-core{
  position:absolute;inset:18% 18%;border-radius:50%;
  background:var(--gt-primary);color:#0b1a1a;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:8px 10px;line-height:1.1;box-shadow:0 6px 18px rgba(133,194,194,.25);
}
#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:2px solid var(--gt-border);opacity:1}
#gt-hero-promesa a{color:var(--accent)}
#gt-hero-promesa a:hover{color:var(--accent-600)}
@media (max-width:767.98px){
  #gt-hero-promesa .vr{display:none!important}
  #gt-hero-promesa .gt-badge{width:140px;height:140px}
}

/* ---------- Footer Moderno (Oscuro) ---------- */
.site-footer{
  background:linear-gradient(135deg, #0D1B2A 0%, #1B2838 100%);
  color:#fff;
  position:relative;
}

.footer-bg-pattern{
  position:absolute;
  top:0;
  right:0;
  width:500px;
  height:500px;
  background:radial-gradient(circle, rgba(133,194,194,.08) 0%, transparent 70%);
  pointer-events:none;
}

/* Brand section */
.footer-brand-section .footer-logo{
  filter:brightness(0) invert(1);
  opacity:.95;
  transition:opacity .3s ease;
}
.footer-brand-section .footer-logo:hover{
  opacity:1;
}

.footer-description{
  color:rgba(255,255,255,.9);
  line-height:1.8;
  font-size:.95rem;
}

/* Headings con mejor contraste */
.footer-heading{
  color:#fff;
  font-size:.9rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
  position:relative;
  padding-bottom:.75rem;
  margin-bottom:1.5rem;
}
.footer-heading::after{
  content:'';
  position:absolute;
  bottom:0;
  left:0;
  width:40px;
  height:3px;
  background:linear-gradient(90deg, var(--brand), var(--accent));
  border-radius:2px;
}

/* Links con mejor contraste */
.footer-links li{
  margin-bottom:.75rem;
}
.footer-links a{
  color:rgba(255,255,255,.9);
  text-decoration:none;
  font-size:.9rem;
  display:flex;
  align-items:center;
  transition:all .3s ease;
  font-weight:500;
}
.footer-links a i{
  font-size:.7rem;
  margin-right:.5rem;
  opacity:.8;
  transition:all .3s ease;
}
.footer-links a:hover{
  color:#fff;
  transform:translateX(5px);
}
.footer-links a:hover i{
  opacity:1;
  color:var(--brand);
}

/* Contact items con mejor contraste */
.footer-contact .contact-item{
  display:flex;
  gap:1rem;
}
.contact-icon{
  width:40px;
  height:40px;
  background:linear-gradient(135deg, var(--brand), var(--brand-dark));
  border-radius:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:1.1rem;
  flex-shrink:0;
  box-shadow:0 4px 12px rgba(133,194,194,.3);
}
.contact-text{
  display:flex;
  flex-direction:column;
  gap:.25rem;
}
.contact-text strong{
  color:#fff;
  font-size:.85rem;
  font-weight:600;
}
.contact-text span,
.contact-text a{
  color:rgba(255,255,255,.9);
  font-size:.9rem;
  text-decoration:none;
  transition:color .3s ease;
}
.contact-text a:hover{
  color:var(--brand);
}

/* Social icons */
.social-icon{
  width:40px;
  height:40px;
  border-radius:50%;
  background:rgba(255,255,255,.15);
  border:1px solid rgba(255,255,255,.25);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:1.1rem;
  text-decoration:none;
  transition:all .3s ease;
}
.social-icon:hover{
  background:var(--brand);
  border-color:var(--brand);
  color:#fff;
  transform:translateY(-3px);
  box-shadow:0 6px 20px rgba(133,194,194,.3);
}

/* WhatsApp button en footer */
.btn-whatsapp{
  background:linear-gradient(135deg, #25D366, #20BA58);
  border:none;
  color:#fff;
  font-weight:600;
  padding:.75rem 1.5rem;
  border-radius:8px;
  transition:all .3s ease;
  box-shadow:0 4px 12px rgba(37,211,102,.3);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}
.btn-whatsapp:hover{
  background:linear-gradient(135deg, #20BA58, #1DA851);
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(37,211,102,.4);
  color:#fff;
}

/* Floating action buttons */
.floating-call,
.floating-wa{
  position:fixed !important;
  bottom:20px !important;
  width:56px;
  height:56px;
  border-radius:50%;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.6rem;
  box-shadow:0 8px 24px rgba(0,0,0,.25);
  text-decoration:none;
  z-index:999;
  transition:all .3s ease;
}
.floating-call{
  left:20px !important;
  background:linear-gradient(135deg,var(--brand-dark,#f97316), var(--brand,#f97316));
  box-shadow:0 8px 24px rgba(249,115,22,.35);
}
.floating-wa{
  right:20px !important;
  left:auto !important;
  background:linear-gradient(135deg,#25D366,#20BA58);
  box-shadow:0 8px 24px rgba(37,211,102,.4);
}
.floating-call:hover{
  background:linear-gradient(135deg,var(--brand,#fb923c), var(--accent,#fb7185));
  transform:translateY(-4px) scale(1.05);
  box-shadow:0 12px 32px rgba(249,115,22,.45);
  color:#fff;
}
.floating-wa:hover{
  background:linear-gradient(135deg,#20BA58,#1DA851);
  transform:translateY(-4px) scale(1.05);
  box-shadow:0 12px 32px rgba(37,211,102,.5);
  color:#fff;
}
.floating-call:active,
.floating-wa:active{ transform:translateY(-1px) scale(0.98); }
@media (max-width:576px){
  .floating-call,
  .floating-wa{ width:48px;height:48px;font-size:1.4rem;bottom:16px !important; }
  .floating-call{ left:16px !important; }
  .floating-wa{ right:16px !important; left:auto !important; }
}

/* Footer bottom con mejor contraste */
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.15);
}
.footer-copyright{
  color:rgba(255,255,255,.8);
  font-size:.9rem;
}
.footer-copyright strong{
  color:#fff;
}
.footer-meta{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.75rem;
  flex-wrap:wrap;
}
.footer-meta a{
  color:rgba(255,255,255,.85);
  text-decoration:none;
  font-size:.9rem;
  transition:color .3s ease;
  font-weight:500;
}
.footer-meta a:hover{
  color:var(--brand);
}
.footer-meta .separator{
  color:rgba(255,255,255,.4);
}

/* Badges */
.footer-badges img{
  opacity:.9;
  transition:opacity .3s ease;
}
.footer-badges img:hover{
  opacity:1;
}
.footer-badges .badge{
  background:var(--brand) !important;
  color:#fff;
}

/* Responsive footer */
@media (max-width:768px){
  .footer-meta{
    justify-content:center;
  }
}

/* ---------- Booking box (página tour) ---------- */
.booking-box .display-6{font-weight:800}
@media (max-width:991.98px){
  .booking-box{position:fixed;left:0;right:0;bottom:0;border-radius:1rem 1rem 0 0;z-index:1030}
  .booking-box .card-body{padding-bottom:1rem}
}
.accordion-button .badge{border-radius:.8rem}

/* ---------- Hero Slider ---------- */
.hero-slider{position:relative;overflow:hidden;}
.hero-slider .carousel,
.hero-slider .carousel-inner,
.hero-slider .carousel-item{height:min(75vh,720px);}

.hero-slide-bg{
  position:absolute;inset:0;
  background-image:var(--img);
  background-size:cover;background-position:center;
  transform:scale(1.02);
}
.hero-slider .carousel-item.active .hero-slide-bg{
  animation:heroZoom 8s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}
@keyframes heroZoom{
  0%{transform:scale(1.08);opacity:.95;}
  100%{transform:scale(1.02);opacity:1;}
}

/* Overlay gradient - enhanced */
.hero-slider .carousel-item::before{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(0deg, rgba(14,22,34,.5), rgba(14,22,34,.1)),
    linear-gradient(90deg, color-mix(in srgb, var(--brand) 20%, transparent), transparent 50%);
  z-index:1;
}

/* Text & content */
.hero-slide-content{
  position:relative;
  z-index:2;
  max-width:720px;
  padding-top:clamp(3rem,10vh,7rem);
  color:#fff;
}
.hero-slide-content h1{color:#fff;font-weight:800;text-shadow:0 2px 10px rgba(0,0,0,.3);}
.hero-slide-content .lead{color:rgba(255,255,255,.95);text-shadow:0 1px 3px rgba(0,0,0,.2);}
.hero-slide-content .btn-outline-primary{
  --bs-btn-color:#fff;
  --bs-btn-border-color:rgba(255,255,255,.8);
  --bs-btn-hover-bg:rgba(255,255,255,.15);
  --bs-btn-hover-border-color:#fff;
  backdrop-filter:blur(4px);
}

/* Indicators */
.hero-slider .carousel-indicators{margin-bottom:2rem;}
.hero-slider .carousel-indicators [data-bs-target]{
  width:12px;height:12px;border-radius:50%;
  background:rgba(255,255,255,.5);
  transition:all .3s ease;
}
.hero-slider .carousel-indicators .active{background:#fff;box-shadow:0 0 8px rgba(255,255,255,.6);}

/* Controls */
.hero-slider .carousel-control-prev,
.hero-slider .carousel-control-next{
  outline:none;
  border:none;
  box-shadow:none;
}
.hero-slider .carousel-control-prev:focus,
.hero-slider .carousel-control-prev:focus-visible,
.hero-slider .carousel-control-next:focus,
.hero-slider .carousel-control-next:focus-visible{
  outline:none;
  box-shadow:none;
}
.hero-slider .carousel-control-prev-icon,
.hero-slider .carousel-control-next-icon{
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.4));
  width:44px;height:44px;
}

/* Responsive */
@media (max-width:991.98px){
  .hero-slider .carousel,.hero-slider .carousel-inner,.hero-slider .carousel-item{height:min(65vh,580px);}
  .hero-slide-content{max-width:560px;}
}
@media (max-width:575.98px){
  .hero-slider .carousel,.hero-slider .carousel-inner,.hero-slider .carousel-item{height:58vh;}
  .hero-slide-content h1,.hero-slide-content .h1{font-size:1.75rem;}
}

/* === Modern Overrides: Enhanced UX === */
html, body{background:#fff;}
.bg-light{background:#fafbfc!important;}
.card, .shadow-sm{box-shadow:var(--shadow);}
.shadow{box-shadow:var(--shadow-lg)!important;}
.shadow-lg{box-shadow:var(--shadow-xl)!important;}
.border-0{border:0!important;}

/* Hero Centered */
.hero-centered{
  position:relative;
  min-height:clamp(480px,65vh,720px);
  background:#000;
  overflow:hidden;
}
.hero-centered::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--hero-img, url('/assets/img/front-page/local-explorer-tour-1.jpg')) center/cover no-repeat;
  filter:brightness(.65) saturate(1.1);
  transform:scale(1.05);
  transition:transform 6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.hero-centered:hover::before{transform:scale(1.1);}
.hero-centered .hero-inner{
  position:relative;
  z-index:1;
  min-height:clamp(480px,65vh,720px);
  display:grid;
  place-items:center;
  text-align:center;
  color:#fff;
  padding:clamp(2rem,5vw,4rem);
}
.hero-centered h1{
  font-weight:800;
  letter-spacing:-.8px;
  text-shadow:0 4px 12px rgba(0,0,0,.4);
  margin-bottom:1.5rem;
}
.hero-centered .lead{
  text-shadow:0 2px 8px rgba(0,0,0,.3);
  margin-bottom:2rem;
  max-width:600px;
  margin-left:auto;
  margin-right:auto;
}

.hero-actions{
  display:flex;
  gap:1rem;
  justify-content:center;
  flex-wrap:wrap;
}
.hero-actions .btn{
  transition:all .3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Form Embed */
.gform-embed{
  width:100%;
  height:1200px;
  border:0;
}
@media (min-width:992px){
  .gform-embed{height:1100px;}
}
.gform-embed-wrapper{
  background:#fff;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow);
}

/* Alert improvements */
.alert{
  border:0;
  border-radius:var(--radius-lg);
  padding:1.25rem 1.5rem;
}
.alert-success{
  background:linear-gradient(135deg, #ecfdf5 0%, #f0fdf4 100%);
  border-left:4px solid var(--success);
  color:var(--ink);
}
.alert-danger{
  background:linear-gradient(135deg, #fef2f2 0%, #fdf2f2 100%);
  border-left:4px solid var(--danger);
  color:var(--ink);
}

/* Accessibility improvements */
*:focus-visible{
  outline:3px solid var(--accent);
  outline-offset:3px;
  border-radius:4px;
}

/* Scrollbar styling - mejorado */
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{
  background:linear-gradient(180deg, var(--bg) 0%, #f3f4f6 100%);
  border-radius:10px;
}
::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg, var(--brand) 0%, var(--brand-dark) 100%);
  border-radius:10px;
  border:2px solid var(--bg);
  transition:all .3s ease;
}
::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg, var(--brand-dark) 0%, var(--brand) 100%);
  border-color:#fff;
}

/* Mejoras de animación para elementos */
@keyframes fadeInUp{
  from{
    opacity:0;
    transform:translateY(30px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@keyframes fadeIn{
  from{opacity:0;}
  to{opacity:1;}
}

@keyframes slideInRight{
  from{
    opacity:0;
    transform:translateX(-30px);
  }
  to{
    opacity:1;
    transform:translateX(0);
  }
}

/* Badges mejorados */
.badge{
  border-radius:999px;
  font-weight:500;
  font-size:0.825rem;
  padding:0.4rem 0.85rem;
  transition:all .3s ease;
  box-shadow:0 2px 6px rgba(0,0,0,.1);
}
.badge:hover{
  transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(0,0,0,.15);
}
.badge.text-bg-primary{
  background:linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
  border:1px solid rgba(255,255,255,.2);
}
.badge.text-bg-accent{
  background:linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);
  border:1px solid rgba(255,255,255,.2);
}

/* Alerts mejorados */
.alert{
  border:0;
  border-radius:var(--radius-lg);
  padding:1.25rem 1.5rem;
  box-shadow:0 4px 12px rgba(0,0,0,.08);
  animation:slideInRight .4s ease;
}
.alert-success{
  background:linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
  border-left:4px solid var(--success);
  color:var(--ink);
}
.alert-danger{
  background:linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%);
  border-left:4px solid var(--danger);
  color:var(--ink);
}
.alert i{
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));
}

/* Smooth scroll para toda la página */
html{
  scroll-behavior:smooth;
}

/* Ratio containers mejorados */
.ratio{
  position:relative;
  width:100%;
  overflow:hidden;
  border-radius:var(--radius-lg);
  --bs-aspect-ratio:1;
}
.ratio::before{
  display:block;
  padding-top:calc(1 / var(--bs-aspect-ratio) * 100%);
  content:"";
}
.ratio>*{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
}

/* Mejoras de hover para links */
a:not(.btn):not(.nav-link){
  position:relative;
  transition:all .3s ease;
}

/* Sombras personalizadas para secciones */
.section{
  animation:fadeIn .6s ease;
}

/* Mejoras para imágenes */
img{
  max-width:100%;
  height:auto;
  transition:all .3s ease;
}

/* Icon hover effects */
i.bi{
  transition:all .3s cubic-bezier(0.4, 0, 0.2, 1);
}
a:hover i.bi,
button:hover i.bi{
  transform:scale(1.1);
}

/* Glassmorphism utility */
.glass{
  background:rgba(255,255,255,.7);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.3);
  box-shadow:0 8px 32px rgba(0,0,0,.1);
}

/* Gradient text utility */
.gradient-text{
  background:linear-gradient(135deg, var(--brand) 0%, var(--accent) 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

/* ========== MEJORAS DE CONTRASTE ========== */

/* Badges con mejor contraste */
.badge{
  font-weight:600;
  padding:.4rem .85rem;
  border-radius:999px;
  font-size:.85rem;
  letter-spacing:.3px;
  box-shadow:0 2px 8px rgba(0,0,0,.15);
  border:1px solid rgba(255,255,255,.2);
}
.badge.bg-primary{
  background:linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%) !important;
  color:#fff !important;
  text-shadow:0 1px 2px rgba(0,0,0,.2);
}
.badge.bg-secondary{
  background:#1F2937 !important;
  color:#fff !important;
  text-shadow:0 1px 2px rgba(0,0,0,.2);
}
.badge.bg-success{
  background:#059669 !important;
  color:#fff !important;
  text-shadow:0 1px 2px rgba(0,0,0,.2);
}
.badge.bg-warning{
  background:#D97706 !important;
  color:#fff !important;
  text-shadow:0 1px 2px rgba(0,0,0,.2);
}
.badge.bg-danger{
  background:#DC2626 !important;
  color:#fff !important;
  text-shadow:0 1px 2px rgba(0,0,0,.2);
}

/* Cards con overlay - Contraste mejorado */
.card-img-overlay{
  background:linear-gradient(
    180deg,
    rgba(13,27,42,.25) 0%,
    rgba(13,27,42,.65) 50%,
    rgba(13,27,42,.9) 100%
  );
}
.card-img-overlay .card-title{
  color:#fff !important;
  text-shadow:0 3px 12px rgba(0,0,0,.6), 0 1px 4px rgba(0,0,0,.4);
  font-weight:700;
  font-size:1.3rem;
}
.card-img-overlay .card-text{
  color:rgba(255,255,255,.98) !important;
  text-shadow:0 2px 8px rgba(0,0,0,.5);
  font-weight:500;
  line-height:1.7;
}
.card-img-overlay .btn{
  box-shadow:0 4px 16px rgba(0,0,0,.3);
}

/* Text sobre imágenes - fondo oscuro */
.text-on-image{
  color:#fff !important;
  text-shadow:0 2px 10px rgba(0,0,0,.6), 0 1px 3px rgba(0,0,0,.4);
  font-weight:600;
}

/* Mejora contraste de texto muted */
.text-muted{
  color:#4B5563 !important;
}

/* Card text mejorado */
.card-text{
  color:#1a1a1a !important;
  line-height:1.7;
  font-weight:400;
}

/* Lead text mejorado */
.lead{
  color:#374151 !important;
  font-weight:500;
}

/* Mejoras para secciones oscuras */
.bg-dark .card-text,
.bg-dark .lead,
.bg-dark .text-muted{
  color:rgba(255,255,255,.9) !important;
}

/* Breadcrumbs mejorado */
.breadcrumb{
  background:rgba(13,27,42,.05);
  border-radius:var(--radius);
  padding:.75rem 1.25rem;
  margin-bottom:1.5rem;
}
.breadcrumb-item{
  color:#374151;
  font-weight:500;
}
.breadcrumb-item.active{
  color:var(--ink);
  font-weight:600;
}
.breadcrumb-item + .breadcrumb-item::before{
  color:#9CA3AF;
}

/* List group contraste */
.list-group-item{
  color:#1a1a1a;
  border-color:rgba(133,194,194,.15);
}
.list-group-item:hover{
  background:rgba(133,194,194,.05);
  color:var(--ink);
}

/* Dropdown contraste */
.dropdown-menu{
  box-shadow:0 12px 32px rgba(0,0,0,.15);
  border:1px solid rgba(133,194,194,.15);
}
.dropdown-item{
  color:#1a1a1a;
  font-weight:500;
}
.dropdown-item:hover,
.dropdown-item:focus{
  background:linear-gradient(135deg, rgba(133,194,194,.1), rgba(133,194,194,.05));
  color:var(--ink);
}

/* ---------- WhatsApp Floating Button ---------- */
.wa-float-btn{
  position:fixed;
  right:1.5rem;
  bottom:1.5rem;
  width:60px;
  height:60px;
  background:linear-gradient(135deg, #25D366 0%, #128C7E 100%);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:2rem;
  text-decoration:none;
  box-shadow:0 4px 16px rgba(37, 211, 102, 0.4), 0 8px 32px rgba(0, 0, 0, 0.2);
  z-index:9999;
  transition:all .3s cubic-bezier(0.4, 0, 0.2, 1);
  animation:wa-pulse 2s ease-in-out infinite;
}

.wa-float-btn:hover{
  transform:scale(1.1) translateY(-4px);
  box-shadow:0 8px 24px rgba(37, 211, 102, 0.5), 0 12px 48px rgba(0, 0, 0, 0.25);
  animation:none;
  color:#fff;
}

.wa-float-btn i{
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
}

.wa-float-btn::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:50%;
  background:linear-gradient(135deg, #25D366, #128C7E);
  opacity:0;
  animation:wa-ripple 2s ease-in-out infinite;
}

@keyframes wa-pulse{
  0%, 100%{
    box-shadow:0 4px 16px rgba(37, 211, 102, 0.4), 0 8px 32px rgba(0, 0, 0, 0.2);
  }
  50%{
    box-shadow:0 4px 16px rgba(37, 211, 102, 0.6), 0 8px 32px rgba(0, 0, 0, 0.25), 0 0 0 20px rgba(37, 211, 102, 0.05);
  }
}

@keyframes wa-ripple{
  0%{
    transform:scale(1);
    opacity:0.4;
  }
  50%{
    transform:scale(1.3);
    opacity:0.2;
  }
  100%{
    transform:scale(1.5);
    opacity:0;
  }
}

/* Responsive */
@media (max-width:768px){
  .wa-float-btn{
    right:1rem;
    bottom:1rem;
    width:56px;
    height:56px;
    font-size:1.75rem;
  }
}

/* ===== Admin Enhancements ===== */
#admin-shell .card{border:1px solid #e3e6eb;border-radius:12px;box-shadow:0 2px 4px rgba(0,0,0,.04);}
#admin-shell .card .card-body{padding:1rem 1rem 1.1rem;}
#admin-shell label.form-label{font-weight:700;color:#1e293b;letter-spacing:.4px;}
#admin-shell .card .card-body > h3.h6.m-0, #admin-shell .card .card-body > h3.h6{position:relative;padding-left:.5rem;}
#admin-shell .card .card-body > h3.h6.m-0::before, #admin-shell .card .card-body > h3.h6::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);height:60%;width:4px;border-radius:2px;background:linear-gradient(180deg,#2563eb,#0ea5e9);} 
#admin-shell input.form-control.form-control-sm,#admin-shell textarea.form-control.form-control-sm{background:#fcfcfd;border:1px solid #d7dbe2;border-radius:8px;transition:border-color .15s,box-shadow .15s;font-size:.8rem;}
#admin-shell input.form-control.form-control-sm:focus,#admin-shell textarea.form-control.form-control-sm:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.15);}
#admin-shell .input-group-sm>.form-control,#admin-shell .input-group-sm>.btn{border-radius:8px;}
#admin-shell h3.h6{font-weight:600;color:#1e293b;letter-spacing:.5px;text-transform:uppercase;font-size:.65rem;margin-bottom:.75rem;}
#admin-shell .cms-items-card .list-group-item{border-radius:8px;margin-bottom:4px;border:1px solid #e2e8f0;}
#admin-shell .cms-items-card .list-group-item:hover{background:#f1f5f9;}
#admin-shell .toast-msg{position:relative;display:inline-flex;align-items:center;gap:.5rem;background:#1e293b;color:#fff;padding:.45rem .75rem;border-radius:6px;font-size:.7rem;margin:.25rem;box-shadow:0 2px 6px rgba(0,0,0,.2);}
#admin-shell .toast-msg.error{background:#b91c1c;}
#toast-container{position:fixed;right:1rem;bottom:1rem;z-index:1050;display:flex;flex-direction:column;align-items:flex-end;}

