*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --navy:#1b2958;
  --orange:#FF6B2B;
  --orange-dark:#E55A1F;
  --white:#FFFFFF;
  --gray-50:#F5F7FA;
  --gray-100:#E8ECF2;
  --gray-400:#8A96A8;
  --gray-700:#3D4A5C;
  --max:1200px;
  --radius:12px;
}
html{scroll-behavior:smooth;margin:0;padding:0;width:100%;overflow-x:hidden}
body{font-family:'Inter',sans-serif;color:var(--navy);background:var(--white);line-height:1.6;margin:0;padding:0;width:100%;overflow-x:hidden}

/* NAV */
nav.header-nav,nav{position:fixed;top:0;left:0;right:0;width:100%;z-index:1000;background:var(--white);box-shadow:0 2px 12px rgba(0,0,0,0.06);border-bottom:1px solid rgba(0,0,0,0.06);transition:box-shadow .3s,background .3s}
.nav-inner{max-width:var(--max);margin:0 auto;padding:0 2rem;height:108px;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;text-decoration:none;max-height:100%}
.logo img,.logo .site-logo-img{height:var(--logo-h, 88px);width:auto;max-height:92px;max-width:240px;object-fit:contain;display:block}
.nav-menu{display:flex;align-items:center;gap:2rem}
.nav-links{display:flex;gap:2rem;list-style:none;margin:0;padding:0;align-items:center}
.nav-links li{position:relative}
.nav-links a{color:var(--navy);text-decoration:none;font-size:0.95rem;font-weight:600;transition:color .2s}
.nav-links a:hover,
.nav-links a.active,
.nav-links li.current-menu-item > a,
.nav-links li.current_page_item > a,
.nav-links li.current-menu-ancestor > a{color:var(--orange)}
.nav-links .sub-menu{display:none;position:absolute;top:100%;left:0;background:var(--white);min-width:200px;box-shadow:0 8px 24px rgba(0,0,0,0.12);border-radius:8px;padding:0.5rem 0;list-style:none;margin:0;z-index:1001;border:1px solid var(--gray-100)}
.nav-links li:hover > .sub-menu,.nav-links li:focus-within > .sub-menu{display:block}
.nav-links .sub-menu li{width:100%;border:none}
.nav-links .sub-menu a{padding:0.6rem 1.2rem;display:block;font-size:0.9rem;white-space:nowrap}
.nav-links .sub-menu a:hover{background:var(--gray-50);color:var(--orange)}
.nav-cta{background:var(--orange);color:var(--white);padding:0.75rem 1.6rem;border-radius:8px;font-size:0.92rem;font-weight:600;text-decoration:none;transition:background .2s,transform .2s;white-space:nowrap}
.nav-cta:hover{background:var(--orange-dark);transform:translateY(-1px)}
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:0.5rem;width:44px;height:44px}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--navy);border-radius:2px;transition:transform .3s,opacity .3s;margin:0 auto}

/* HERO BANNER SLIDER (IMAGEN COMPLETA, SIN RECORTAR, PROPORCIONAL) */
.hero{position:relative;width:100%;margin-top:108px;overflow:hidden;padding:0;background:var(--navy);height:auto;min-height:unset;max-height:unset}
.slides{display:flex;width:100%;height:auto;margin:0;padding:0;transition:transform .7s cubic-bezier(.4,0,.2,1);will-change:transform;align-items:flex-start}
.slide{flex:0 0 100%;min-width:100%;width:100%;height:auto;position:relative;margin:0;padding:0;line-height:0}
.slide a.slide-link{display:block;width:100%;height:auto;cursor:pointer;line-height:0}
.slide img{width:100%;height:auto;max-height:none;object-fit:contain;display:block}

/* slider controls */
.slider-dots{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);display:flex;gap:0.5rem;z-index:10}
.dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,0.5);border:none;cursor:pointer;transition:all .3s ease;padding:0}
.dot.active{background:var(--orange);width:28px;border-radius:5px}
.slider-prev,.slider-next{position:absolute;top:50%;transform:translateY(-50%);z-index:10;background:rgba(255,255,255,0.25);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,0.4);color:var(--white);width:50px;height:50px;border-radius:50%;font-size:1.3rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s;box-shadow:0 4px 15px rgba(0,0,0,0.15)}
.slider-prev:hover,.slider-next:hover{background:rgba(255,255,255,0.45);transform:translateY(-50%) scale(1.05)}
.slider-prev{left:1.5rem}
.slider-next{right:1.5rem}

/* SCROLL REVEAL ANIMATIONS (SLOW LEFT / RIGHT / UP) */
.reveal-left{
  opacity:0;
  transform:translate3d(-60px,0,0);
  transition:opacity 1s cubic-bezier(0.16,1,0.3,1), transform 1s cubic-bezier(0.16,1,0.3,1);
  will-change:opacity,transform;
}
.reveal-right{
  opacity:0;
  transform:translate3d(60px,0,0);
  transition:opacity 1s cubic-bezier(0.16,1,0.3,1), transform 1s cubic-bezier(0.16,1,0.3,1);
  will-change:opacity,transform;
}
.reveal-up{
  opacity:0;
  transform:translate3d(0,50px,0);
  transition:opacity 1s cubic-bezier(0.16,1,0.3,1) var(--delay, 0s), transform 1s cubic-bezier(0.16,1,0.3,1) var(--delay, 0s);
  will-change:opacity,transform;
}
.reveal-item{
  opacity:0;
  transform:translate3d(0,35px,0);
  transition:opacity 0.9s cubic-bezier(0.16,1,0.3,1) var(--delay, 0s), transform 0.9s cubic-bezier(0.16,1,0.3,1) var(--delay, 0s);
  will-change:opacity,transform;
}
.reveal-left.is-visible,
.reveal-right.is-visible,
.reveal-up.is-visible,
.is-visible .reveal-item{
  opacity:1;
  transform:translate3d(0,0,0);
}

/* STATS BAR */
.stats-bar{background:var(--navy);padding:2rem 2rem}
.stats-inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;text-align:center}
.stat-item{}
.stat-num{font-size:1.75rem;font-weight:800;color:var(--orange)}
.stat-label{font-size:0.8rem;color:rgba(255,255,255,0.6);margin-top:0.15rem}

/* SECTIONS */
section{padding:5rem 2rem;width:100%;box-sizing:border-box}
.section-inner{max-width:var(--max);margin:0 auto;width:100%;box-sizing:border-box}
.section-header{text-align:center;margin-bottom:3rem}
.section-tag{font-size:0.75rem;font-weight:600;color:var(--orange);letter-spacing:1px;margin-bottom:0.5rem}
.section-header h2{font-size:clamp(1.6rem,2.5vw,2.25rem);font-weight:800;color:var(--navy);letter-spacing:-0.5px}
.section-header p{color:var(--gray-400);margin-top:0.75rem;max-width:520px;margin-left:auto;margin-right:auto}

/* DESTINOS */
.destinos{background:var(--gray-50)}
.destinos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.destino-card{border-radius:var(--radius);overflow:hidden;position:relative;cursor:pointer;group:true}
.destino-card img{width:100%;height:260px;object-fit:cover;display:block;transition:transform .4s}
.destino-card:hover img{transform:scale(1.04)}
.destino-info{position:absolute;bottom:0;left:0;right:0;padding:1.25rem;background:linear-gradient(to top,rgba(10,22,40,0.9),transparent)}
.destino-name{color:var(--white);font-weight:700;font-size:1.05rem}
.destino-days{color:rgba(255,255,255,0.75);font-size:0.85rem;margin-top:0.2rem}
.destino-price{color:var(--orange);font-weight:700;font-size:1.05rem;margin-top:0.25rem}
.destino-badge{position:absolute;top:0.75rem;left:0.75rem;background:var(--orange);color:var(--white);font-size:0.7rem;font-weight:700;padding:0.25rem 0.65rem;border-radius:20px;box-shadow:0 2px 8px rgba(0,0,0,0.15)}

@media(max-width:960px){
  .destinos-grid{grid-template-columns:repeat(2,1fr);gap:1.25rem}
}
@media(max-width:600px){
  .destinos-grid{grid-template-columns:1fr;gap:1.25rem}
  .destino-card img{height:220px}
}

/* PAQUETES */
.paquetes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}
.paquete-card{border:1.5px solid var(--gray-100);border-radius:var(--radius);overflow:hidden;transition:border-color .2s,box-shadow .2s}
.paquete-card:hover{border-color:var(--orange);box-shadow:0 4px 24px rgba(255,107,43,0.12)}
.paquete-card.featured{border-color:var(--orange);box-shadow:0 4px 24px rgba(255,107,43,0.15)}
.paquete-tag{background:var(--orange);color:var(--white);font-size:0.7rem;font-weight:700;padding:0.3rem 0.75rem;display:inline-block}
.paquete-tag.alt{background:var(--navy)}
.paquete-body{padding:1.5rem}
.paquete-body h3{font-size:1.1rem;font-weight:700;margin-bottom:0.25rem}
.paquete-sub{font-size:0.8rem;color:var(--gray-400);margin-bottom:1.25rem}
.paquete-features{list-style:none;margin-bottom:1.5rem;display:flex;flex-direction:column;gap:0.6rem}
.paquete-features li{font-size:0.85rem;color:var(--gray-700);display:flex;gap:0.5rem;align-items:flex-start}
.paquete-features li::before{content:"✓";color:var(--orange);font-weight:700;flex-shrink:0;margin-top:0.05rem}
.paquete-price{margin-bottom:1.25rem}
.paquete-price .from{font-size:0.75rem;color:var(--gray-400)}
.paquete-price .amount{font-size:1.6rem;font-weight:800;color:var(--navy)}
.paquete-price .per{font-size:0.75rem;color:var(--gray-400)}
.btn-card{display:block;text-align:center;background:var(--orange);color:var(--white);padding:0.75rem;border-radius:8px;font-weight:600;font-size:0.875rem;text-decoration:none;transition:background .2s}
.btn-card:hover{background:var(--orange-dark)}
.btn-card.outline{background:transparent;border:1.5px solid var(--orange);color:var(--orange)}
.btn-card.outline:hover{background:var(--orange);color:var(--white)}

/* POR QUÉ */
.porque{background:var(--navy)}
.porque .section-header h2{color:var(--white)}
.porque .section-tag{color:var(--orange)}
.porque-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.5rem}
.porque-item{padding:2rem 1.5rem;border:1px solid rgba(255,255,255,0.08);border-radius:var(--radius)}
.porque-icon{width:48px;height:48px;background:rgba(255,107,43,0.15);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin-bottom:1.25rem}
.porque-item h3{color:var(--white);font-size:1rem;font-weight:700;margin-bottom:0.5rem}
.porque-item p{color:rgba(255,255,255,0.55);font-size:0.85rem;line-height:1.6}

/* MOMENTOS */
.momentos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.momento-card{position:relative;border-radius:var(--radius);overflow:hidden}
.momento-card img{width:100%;height:260px;object-fit:cover;display:block;transition:transform .4s}
.momento-card:hover img{transform:scale(1.03)}
.momento-card .overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,22,40,0.8),transparent 50%)}
.momento-card .label{position:absolute;bottom:1rem;left:1rem;color:var(--white);font-weight:600;font-size:0.9rem}
.momento-card.tall{grid-row:span 2}
.momento-card.tall img{height:540px}
@media(max-width:768px){
  .momentos-grid{grid-template-columns:1fr}
  .momento-card.tall img{height:260px}
  .momento-card img{height:220px}
}

/* COTIZADOR */
.cotizador{background:var(--gray-50);width:100%;overflow:hidden}
.cotizador-box{background:var(--white);border-radius:16px;padding:2.75rem 2.5rem;border:1.5px solid var(--gray-100);max-width:800px;margin:0 auto;width:100%;box-sizing:border-box;overflow:hidden}
.quote-form-ajax{width:100%;box-sizing:border-box}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;width:100%;box-sizing:border-box}
.form-group{display:flex;flex-direction:column;gap:0.4rem;min-width:0;width:100%;box-sizing:border-box}
.form-group label{font-size:0.8rem;font-weight:600;color:var(--gray-700);line-height:1.4}
.form-group input,.form-group select,.form-group textarea{width:100%;max-width:100%;min-width:0;box-sizing:border-box;padding:0.75rem 1rem;border:1.5px solid var(--gray-100);border-radius:8px;font-size:0.875rem;font-family:inherit;color:var(--navy);transition:border-color .2s;background:var(--white);-webkit-appearance:none;appearance:none}
.form-group select{background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231b2958' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 0.85rem center;background-size:1em;padding-right:2.2rem}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--orange)}
.form-full{grid-column:1/-1}
.btn-submit{width:100%;max-width:100%;box-sizing:border-box;padding:1rem;background:var(--orange);color:var(--white);border:none;border-radius:10px;font-size:1rem;font-weight:700;cursor:pointer;transition:background .2s;font-family:inherit;display:flex;align-items:center;justify-content:center;text-align:center}
.btn-submit:hover{background:var(--orange-dark)}

/* FOOTER */
footer{background:var(--navy);color:rgba(255,255,255,0.6);padding:4rem 2rem 2rem}
.footer-inner{max-width:var(--max);margin:0 auto}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;margin-bottom:3rem}
.footer-brand .logo{font-size:1.1rem;display:block;margin-bottom:0.75rem}
.footer-brand p{font-size:0.85rem;line-height:1.7;max-width:260px}
.footer-col h4{color:var(--white);font-size:0.875rem;font-weight:700;margin-bottom:1rem}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:0.5rem}
.footer-col a{color:rgba(255,255,255,0.55);text-decoration:none;font-size:0.85rem;transition:color .2s}
.footer-col a:hover{color:var(--white)}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.08);padding-top:1.5rem;display:flex;justify-content:space-between;align-items:center;font-size:0.8rem}
.social-links{display:flex;gap:0.75rem}
.social-links a{color:rgba(255,255,255,0.5);text-decoration:none;transition:color .2s}
.social-links a:hover{color:var(--white)}

/* WA FLOAT */
.wa-btn{position:fixed;bottom:2rem;right:2rem;z-index:50;background:#25D366;color:var(--white);width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;text-decoration:none;box-shadow:0 4px 16px rgba(37,211,102,0.4);transition:transform .2s}
.wa-btn:hover{transform:scale(1.08)}

@media(max-width:768px){
  section{padding:3rem 1rem}
  .cotizador{padding:3rem 1rem}
  .cotizador-box{padding:1.5rem 1rem !important;border-radius:14px;width:100% !important;max-width:100% !important;box-sizing:border-box !important;box-shadow:0 4px 20px rgba(0,0,0,0.06)}
  .form-grid{display:flex !important;flex-direction:column !important;gap:1rem !important;width:100% !important}
  .form-group{width:100% !important;max-width:100% !important;min-width:0 !important;box-sizing:border-box !important}
  .form-group input,.form-group select,.form-group textarea{width:100% !important;max-width:100% !important;min-width:0 !important;box-sizing:border-box !important;padding:0.75rem 0.875rem !important;font-size:0.875rem !important}
  .btn-submit{width:100% !important;padding:0.9rem 1rem !important;font-size:0.95rem !important}
  .nav-inner{height:80px;padding:0 1.25rem}
  .logo{display:flex;align-items:center;max-height:100%}
  .logo img,.logo .site-logo-img{height:auto !important;max-height:58px !important;max-width:160px !important;width:auto !important;object-fit:contain;display:block}
  .nav-toggle{display:flex}
  .nav-menu{position:fixed;top:80px;left:0;right:0;background:var(--white);border-top:1px solid var(--gray-100);box-shadow:0 12px 30px rgba(0,0,0,0.12);flex-direction:column;align-items:stretch;gap:0;padding:1rem 2rem 2rem;transform:translateX(-100%);transition:transform .3s ease;max-height:calc(100vh - 80px);overflow-y:auto}
  .hero,.destinos-archive-page,.destino-single-page,.page-hero{margin-top:80px}
  .slider-prev,.slider-next{width:38px;height:38px;font-size:1rem}
  .slider-prev{left:0.75rem}
  .slider-next{right:0.75rem}
  .slider-dots{bottom:0.75rem}
  .nav-menu.open{transform:translateX(0)}
  .nav-links{flex-direction:column;gap:0;margin:0;padding:0}
  .nav-links li{border-bottom:1px solid var(--gray-100);width:100%}
  .nav-links a{display:block;padding:1rem 0;font-size:1rem;color:var(--navy)}
  .nav-links a:hover,
  .nav-links a.active,
  .nav-links li.current-menu-item > a,
  .nav-links li.current_page_item > a,
  .nav-links li.current-menu-ancestor > a{color:var(--orange)}
  .nav-links .sub-menu{position:static;box-shadow:none;border:none;padding:0 0 0.5rem 1.25rem;display:block;background:transparent}
  .nav-links .sub-menu li{border-bottom:none}
  .nav-links .sub-menu a{padding:0.5rem 0;font-size:0.92rem}
  .nav-cta{display:block;text-align:center;margin-top:1.25rem;padding:0.75rem 1.25rem}
  .nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-toggle.open span:nth-child(2){opacity:0}
  .nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .stats-inner{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .momentos-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  section{padding:2.5rem 0.75rem}
  .cotizador{padding:2.5rem 0.75rem}
  .cotizador-box{padding:1.25rem 0.75rem !important;border-radius:12px;width:100% !important}
  .form-group input,.form-group select,.form-group textarea{padding:0.7rem 0.75rem !important;font-size:0.85rem !important}
  .btn-submit{padding:0.85rem 0.75rem !important;font-size:0.92rem !important}
  .nav-inner{height:72px;padding:0 0.875rem}
  .logo img,.logo .site-logo-img{max-height:48px !important;max-width:120px !important}
  .nav-menu{top:72px;max-height:calc(100vh - 72px)}
  .hero,.destinos-archive-page,.destino-single-page,.page-hero{margin-top:72px}
  .footer-grid{grid-template-columns:1fr}
  .momentos-grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .slides{transition:none}
  .slide img,.momento-card img,.destino-card img{transition:none}
}
.admin-bar .header-nav, .admin-bar nav {
  top: 32px;
}
@media(max-width:782px){
  .admin-bar .header-nav, .admin-bar nav {
    top: 46px;
  }
  .admin-bar .nav-menu {
    top: 130px;
    max-height: calc(100vh - 130px);
  }
}

/* ==========================================================
   BREADCRUMBS
   ========================================================== */
.breadcrumbs-bar {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  color: var(--gray-400);
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}
.breadcrumbs-bar a {
  color: var(--gray-400);
  text-decoration: none;
  transition: color 0.2s;
}
.breadcrumbs-bar a:hover {
  color: var(--orange);
}
.breadcrumbs-bar .sep {
  color: var(--gray-100);
}
.breadcrumbs-bar .current {
  color: var(--navy);
  font-weight: 600;
}

/* ==========================================================
   DESTINOS ARCHIVE PAGE
   ========================================================== */
.destinos-archive-page {
  margin-top: 108px;
  background: var(--white);
}
.destinos-hero-header {
  padding: 3.5rem 2rem 2.5rem;
  background: var(--gray-50);
  border-bottom: 1px solid var(--gray-100);
  text-align: center;
}
.destinos-hero-header .section-inner {
  max-width: 800px;
}
.destinos-hero-header .breadcrumbs-bar {
  justify-content: center;
}
.archive-title {
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  font-weight: 800;
  color: var(--navy);
  letter-spacing: -0.5px;
  margin-bottom: 0.75rem;
}
.archive-description {
  color: var(--gray-400);
  font-size: 1.05rem;
  line-height: 1.6;
  margin: 0 auto 2rem;
}

/* Filter tabs */
.destinos-filter-tabs {
  display: flex;
  justify-content: center;
  gap: 0.6rem;
  flex-wrap: wrap;
}
.destinos-filter-tabs .filter-btn {
  background: var(--white);
  border: 1.5px solid var(--gray-100);
  padding: 0.5rem 1.15rem;
  border-radius: 30px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--navy);
  cursor: pointer;
  transition: all 0.2s;
  font-family: inherit;
}
.destinos-filter-tabs .filter-btn:hover {
  border-color: var(--orange);
  color: var(--orange);
}
.destinos-filter-tabs .filter-btn.active {
  background: var(--orange);
  border-color: var(--orange);
  color: var(--white);
  box-shadow: 0 4px 12px rgba(255, 107, 43, 0.25);
}

/* Destinos Grid */
.destinos-list-section {
  padding: 4rem 2rem;
  background: var(--white);
}
.destinos-archive-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 2rem;
}
.destino-item-card {
  border: 1.5px solid var(--gray-100);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--white);
  transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s;
  display: flex;
  flex-direction: column;
}
.destino-item-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 32px rgba(10, 22, 40, 0.08);
  border-color: var(--orange);
}
.destino-item-card .card-media {
  position: relative;
  height: 240px;
  overflow: hidden;
  background: var(--navy);
}
.destino-item-card .card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s;
}
.destino-item-card:hover .card-media img {
  transform: scale(1.05);
}
.destino-item-card .photo-count-badge {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  background: rgba(10, 22, 40, 0.75);
  backdrop-filter: blur(4px);
  color: var(--white);
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.25rem 0.65rem;
  border-radius: 20px;
}
.destino-item-card .card-price-tag {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1.5rem 1.25rem 0.75rem;
  background: linear-gradient(to top, rgba(10, 22, 40, 0.85), transparent);
  color: var(--white);
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
}
.destino-item-card .card-price-tag .p-amount {
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--orange);
}
.destino-item-card .card-price-tag .p-note {
  font-size: 0.75rem;
  opacity: 0.8;
}

.destino-item-card .card-content {
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
.destino-item-card .card-meta {
  display: flex;
  gap: 0.75rem;
  margin-bottom: 0.6rem;
  flex-wrap: wrap;
}
.meta-pill {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--gray-400);
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.destino-item-card .card-title {
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.35;
  margin-bottom: 0.5rem;
}
.destino-item-card .card-title a {
  color: var(--navy);
  text-decoration: none;
  transition: color 0.2s;
}
.destino-item-card .card-title a:hover {
  color: var(--orange);
}
.destino-item-card .card-subtitle {
  font-size: 0.875rem;
  color: var(--gray-400);
  line-height: 1.5;
  margin-bottom: 1.25rem;
}
.destino-item-card .card-footer {
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid var(--gray-100);
}
.btn-ver-destino {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--orange);
  font-weight: 700;
  font-size: 0.875rem;
  text-decoration: none;
  transition: gap 0.2s, color 0.2s;
}
.btn-ver-destino:hover {
  color: var(--orange-dark);
  gap: 0.6rem;
}

/* Archive CTA Box */
.archive-cta-banner {
  padding: 4rem 2rem 5rem;
  background: var(--gray-50);
}
.archive-cta-box {
  background: var(--navy);
  border-radius: 16px;
  padding: 3.5rem 3rem;
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2.5rem;
}
.archive-cta-box .cta-text {
  max-width: 620px;
}
.archive-cta-box .cta-tag {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--orange);
  letter-spacing: 1px;
  display: inline-block;
  margin-bottom: 0.5rem;
}
.archive-cta-box h2 {
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 800;
  margin-bottom: 0.75rem;
}
.archive-cta-box p {
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.95rem;
}
.archive-cta-box .cta-actions {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  flex-shrink: 0;
  min-width: 240px;
}
.btn-cta-primary {
  background: #25D366;
  color: var(--white);
  padding: 0.9rem 1.5rem;
  border-radius: 8px;
  font-weight: 700;
  font-size: 0.95rem;
  text-decoration: none;
  text-align: center;
  transition: transform 0.2s, background 0.2s;
}
.btn-cta-primary:hover {
  background: #1eb857;
  transform: translateY(-2px);
}
.btn-cta-secondary {
  background: rgba(255, 255, 255, 0.1);
  color: var(--white);
  padding: 0.8rem 1.25rem;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.875rem;
  text-decoration: none;
  text-align: center;
  border: 1px solid rgba(255, 255, 255, 0.2);
  transition: background 0.2s;
}
.btn-cta-secondary:hover {
  background: rgba(255, 255, 255, 0.2);
}

/* ==========================================================
   SINGLE DESTINO PAGE
   ========================================================== */
.destino-single-page {
  margin-top: 108px;
  background: var(--white);
}

/* Single Header */
.destino-header-section {
  padding: 2.5rem 2rem 1.5rem;
  background: var(--white);
}
.destino-title-wrapper {
  margin-bottom: 1.5rem;
}
.destino-title-wrapper .destino-badge {
  position: static;
  display: inline-block;
  margin-bottom: 0.75rem;
}
.destino-main-title {
  font-size: clamp(2rem, 3.8vw, 3rem);
  font-weight: 800;
  color: var(--navy);
  letter-spacing: -0.5px;
  line-height: 1.2;
}
.destino-main-subtitle {
  font-size: 1.15rem;
  color: var(--gray-400);
  margin-top: 0.5rem;
}

/* Meta row */
.destino-meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  padding: 1.5rem 0 0;
  border-top: 1px solid var(--gray-100);
}
.meta-pill-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.meta-pill-item .ico {
  font-size: 1.35rem;
  width: 42px;
  height: 42px;
  background: var(--gray-50);
  border: 1px solid var(--gray-100);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.meta-pill-item .lbl {
  display: block;
  font-size: 0.75rem;
  color: var(--gray-400);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 600;
}
.meta-pill-item .val {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--navy);
}
.meta-pill-item.highlight .val {
  color: var(--orange);
  font-size: 1.1rem;
}
.meta-pill-item.highlight .val small {
  font-size: 0.75rem;
  color: var(--gray-400);
  font-weight: 400;
}

/* ==========================================================
   PHOTO MOSAIC (PRIORIDAD FOTOGRÁFICA)
   ========================================================== */
.destino-photo-mosaic-section {
  padding: 1rem 2rem 2.5rem;
}
.photo-mosaic-container {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 210px 210px;
  gap: 0.75rem;
  border-radius: 16px;
  overflow: hidden;
  position: relative;
  background: var(--navy);
}
.mosaic-item {
  position: relative;
  cursor: pointer;
  overflow: hidden;
}
.mosaic-item.mosaic-main {
  grid-row: span 2;
}
.mosaic-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.mosaic-item:hover img {
  transform: scale(1.04);
}
.mosaic-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10, 22, 40, 0.75), transparent 60%);
  opacity: 0;
  transition: opacity 0.3s;
  display: flex;
  align-items: flex-end;
  padding: 1rem;
}
.mosaic-item:hover .mosaic-overlay {
  opacity: 1;
}
.mosaic-caption {
  color: var(--white);
  font-size: 0.85rem;
  font-weight: 600;
}
.mosaic-more-badge {
  position: absolute;
  inset: 0;
  background: rgba(10, 22, 40, 0.65);
  backdrop-filter: blur(3px);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  font-size: 1.15rem;
  font-weight: 700;
  transition: background 0.2s;
}
.mosaic-item:hover .mosaic-more-badge {
  background: rgba(10, 22, 40, 0.8);
}
.mosaic-actions-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 1rem;
  flex-wrap: wrap;
  gap: 1rem;
}
.btn-open-gallery {
  background: var(--navy);
  color: var(--white);
  padding: 0.75rem 1.4rem;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.875rem;
  border: none;
  cursor: pointer;
  transition: background 0.2s, transform 0.2s;
  font-family: inherit;
}
.btn-open-gallery:hover {
  background: var(--orange);
  transform: translateY(-1px);
}
.btn-quick-wa {
  background: #25D366;
  color: var(--white);
  padding: 0.75rem 1.4rem;
  border-radius: 8px;
  font-weight: 700;
  font-size: 0.875rem;
  text-decoration: none;
  transition: background 0.2s;
}
.btn-quick-wa:hover {
  background: #1eb857;
}

/* ==========================================================
   2-COLUMN BODY LAYOUT & SIDEBAR
   ========================================================== */
.destino-body-layout {
  padding: 3rem 2rem 5rem;
  background: var(--gray-50);
}
.layout-grid {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 2.5rem;
  align-items: start;
}

/* Content Blocks */
.content-block {
  background: var(--white);
  border-radius: 16px;
  padding: 2.5rem;
  border: 1.5px solid var(--gray-100);
  margin-bottom: 2rem;
}
.block-header-flex {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 1.5rem;
  gap: 1rem;
}
.block-title {
  font-size: 1.45rem;
  font-weight: 800;
  color: var(--navy);
  letter-spacing: -0.3px;
}
.section-desc {
  font-size: 0.9rem;
  color: var(--gray-400);
  margin-top: 0.25rem;
  margin-bottom: 1.5rem;
}
.lead-summary {
  font-size: 1.05rem;
  color: var(--gray-700);
  line-height: 1.7;
  margin-bottom: 1rem;
}
.main-editorial-content {
  font-size: 0.95rem;
  color: var(--gray-700);
  line-height: 1.7;
}
.main-editorial-content p {
  margin-bottom: 1rem;
}

/* Ventajas / Puntos Fuertes Grid */
.ventajas-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  margin-top: 1.5rem;
}
.ventaja-card {
  background: var(--gray-50);
  padding: 1.5rem;
  border-radius: 12px;
  border: 1px solid var(--gray-100);
}
.ventaja-icon {
  font-size: 1.75rem;
  margin-bottom: 0.6rem;
}
.ventaja-card h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 0.4rem;
}
.ventaja-card p {
  font-size: 0.85rem;
  color: var(--gray-700);
  line-height: 1.5;
}

/* Itinerary Timeline */
.btn-toggle-all-days {
  background: none;
  border: 1px solid var(--gray-100);
  color: var(--gray-700);
  padding: 0.4rem 0.85rem;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.2s;
}
.btn-toggle-all-days:hover {
  border-color: var(--orange);
  color: var(--orange);
}
.itinerario-timeline {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.itinerario-card {
  border: 1.5px solid var(--gray-100);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.itinerario-card.is-open {
  border-color: var(--orange);
  box-shadow: 0 4px 16px rgba(255, 107, 43, 0.08);
}
.itinerario-header {
  padding: 1.15rem 1.5rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  cursor: pointer;
  background: var(--white);
  user-select: none;
}
.dia-badge {
  background: var(--navy);
  color: var(--white);
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.35rem 0.75rem;
  border-radius: 6px;
  white-space: nowrap;
  letter-spacing: 0.5px;
  transition: background 0.2s;
}
.itinerario-card.is-open .dia-badge {
  background: var(--orange);
}
.dia-title-box {
  flex-grow: 1;
}
.dia-title-box h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--navy);
}
.comidas-pill {
  font-size: 0.75rem;
  color: var(--gray-400);
  margin-top: 0.2rem;
  display: inline-block;
  font-weight: 500;
}
.accordion-arrow {
  font-size: 1.1rem;
  color: var(--gray-400);
  transition: transform 0.3s;
}
.itinerario-card.is-open .accordion-arrow {
  transform: rotate(180deg);
  color: var(--orange);
}
.itinerario-body {
  display: none;
  padding: 1.5rem;
  background: var(--gray-50);
  border-top: 1px solid var(--gray-100);
}
.itinerario-card.is-open .itinerario-body {
  display: block;
}
.dia-desc-text {
  font-size: 0.9rem;
  color: var(--gray-700);
  line-height: 1.65;
}
.dia-image-preview img {
  width: 100%;
  max-height: 260px;
  object-fit: cover;
  border-radius: 10px;
  margin-top: 1rem;
  display: block;
}

/* Inclusiones / Exclusiones */
.inclusiones-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-top: 1.5rem;
}
.inclusiones-card {
  padding: 1.75rem;
  border-radius: 12px;
}
.incluye-box {
  background: rgba(37, 211, 102, 0.05);
  border: 1.5px solid rgba(37, 211, 102, 0.25);
}
.no-incluye-box {
  background: rgba(229, 90, 31, 0.04);
  border: 1.5px solid rgba(229, 90, 31, 0.2);
}
.inc-header {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 1.25rem;
}
.inc-header h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--navy);
}
.inc-icon {
  width: 28px;
  height: 28px;
  background: #25D366;
  color: var(--white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  font-weight: 800;
}
.inc-icon.cross {
  background: #E55A1F;
}
.inc-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.inc-list li {
  display: flex;
  gap: 0.6rem;
  font-size: 0.875rem;
  color: var(--gray-700);
  line-height: 1.45;
}
.check-ico {
  color: #25D366;
  font-weight: 800;
  flex-shrink: 0;
}
.cross-ico {
  color: #E55A1F;
  font-weight: 800;
  flex-shrink: 0;
}

/* Full Gallery Grid */
.full-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 0.85rem;
}
.gallery-grid-item {
  height: 160px;
  border-radius: 10px;
  overflow: hidden;
  position: relative;
  cursor: pointer;
  background: var(--navy);
}
.gallery-grid-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s;
}
.gallery-grid-item:hover img {
  transform: scale(1.08);
}
.grid-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10, 22, 40, 0.8), transparent 60%);
  opacity: 0;
  transition: opacity 0.3s;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 0.75rem;
}
.gallery-grid-item:hover .grid-overlay {
  opacity: 1;
}
.zoom-ico {
  align-self: flex-end;
  background: rgba(255, 255, 255, 0.25);
  backdrop-filter: blur(4px);
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
}
.grid-cap {
  color: var(--white);
  font-size: 0.8rem;
  font-weight: 600;
}

/* Recommendations Box */
.recomendaciones-box {
  display: flex;
  gap: 1.25rem;
  background: var(--gray-50);
  border: 1.5px solid var(--gray-100);
  border-radius: 12px;
  padding: 1.75rem;
  margin-top: 1rem;
}
.rec-icon {
  font-size: 2rem;
  flex-shrink: 0;
}
.rec-content {
  font-size: 0.9rem;
  color: var(--gray-700);
  line-height: 1.6;
}

/* ==========================================================
   STICKY BOOKING SIDEBAR
   ========================================================== */
.layout-sidebar {
  position: relative;
}
.sticky-booking-card {
  position: sticky;
  top: 108px;
  background: var(--white);
  border: 1.5px solid var(--gray-100);
  border-radius: 16px;
  padding: 2rem;
  box-shadow: 0 10px 30px rgba(10, 22, 40, 0.06);
}
.sidebar-price-header {
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--gray-100);
  margin-bottom: 1.25rem;
}
.lbl-from {
  font-size: 0.8rem;
  color: var(--gray-400);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 600;
}
.price-value {
  font-size: 2.2rem;
  font-weight: 800;
  color: var(--navy);
  line-height: 1.1;
  margin: 0.2rem 0;
}
.lbl-per {
  font-size: 0.8rem;
  color: var(--gray-400);
}
.sidebar-benefits-checklist {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  margin-bottom: 1.5rem;
}
.benefit-item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.85rem;
  color: var(--gray-700);
  font-weight: 500;
}
.btn-wa-sidebar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: #25D366;
  color: var(--white);
  padding: 0.95rem 1.25rem;
  border-radius: 10px;
  font-weight: 700;
  font-size: 0.95rem;
  text-decoration: none;
  transition: background 0.2s, transform 0.2s;
  box-shadow: 0 4px 14px rgba(37, 211, 102, 0.25);
  margin-bottom: 1.5rem;
}
.btn-wa-sidebar:hover {
  background: #1eb857;
  transform: translateY(-2px);
}
.sidebar-quick-form {
  background: var(--gray-50);
  border-radius: 12px;
  padding: 1.5rem;
  border: 1px solid var(--gray-100);
  margin-bottom: 1.5rem;
}
.sidebar-quick-form .form-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 1rem;
}
.quick-form .input-group {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-bottom: 0.75rem;
}
.quick-form label {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--gray-700);
}
.quick-form input {
  padding: 0.65rem 0.85rem;
  border: 1.5px solid var(--gray-100);
  border-radius: 8px;
  font-size: 0.85rem;
  font-family: inherit;
  color: var(--navy);
  background: var(--white);
  transition: border-color 0.2s;
}
.quick-form input:focus {
  outline: none;
  border-color: var(--orange);
}
.btn-submit-quick {
  width: 100%;
  padding: 0.8rem;
  background: var(--orange);
  color: var(--white);
  border: none;
  border-radius: 8px;
  font-weight: 700;
  font-size: 0.875rem;
  cursor: pointer;
  transition: background 0.2s;
  font-family: inherit;
  margin-top: 0.5rem;
}
.btn-submit-quick:hover {
  background: var(--orange-dark);
}
.sidebar-advisor-box {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding-top: 1rem;
  border-top: 1px solid var(--gray-100);
}
.advisor-avatar {
  font-size: 1.75rem;
  width: 44px;
  height: 44px;
  background: var(--gray-50);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.advisor-info strong {
  display: block;
  font-size: 0.85rem;
  color: var(--navy);
}
.advisor-info p {
  font-size: 0.75rem;
  color: var(--gray-400);
  line-height: 1.35;
}

/* ==========================================================
   OTROS DESTINOS RECOMENDADOS SECTION
   ========================================================== */
.otros-destinos-section {
  padding: 5rem 2rem;
  background: var(--white);
  border-top: 1px solid var(--gray-100);
}

/* ==========================================================
   LIGHTBOX MODAL
   ========================================================== */
.lightbox-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
}
.lightbox-modal.is-open {
  display: flex;
}
.lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 22, 40, 0.94);
  backdrop-filter: blur(8px);
}
.lightbox-container {
  position: relative;
  z-index: 10;
  max-width: 92vw;
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.lightbox-figure {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 1000px;
}
.lightbox-img {
  max-width: 100%;
  max-height: 78vh;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
}
.lightbox-meta {
  display: flex;
  justify-content: space-between;
  width: 100%;
  color: var(--white);
  margin-top: 1rem;
  font-size: 0.9rem;
}
.lightbox-title {
  font-weight: 600;
}
.lightbox-counter {
  opacity: 0.7;
}
.lightbox-close,
.lightbox-nav {
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(6px);
  color: var(--white);
  border: 1px solid rgba(255, 255, 255, 0.3);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  font-size: 1.3rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, transform 0.2s;
}
.lightbox-close:hover,
.lightbox-nav:hover {
  background: rgba(255, 255, 255, 0.35);
  transform: scale(1.05);
}
.lightbox-close {
  position: absolute;
  top: -55px;
  right: 0;
}
.lightbox-nav.prev {
  position: absolute;
  left: -70px;
  top: 50%;
  transform: translateY(-50%);
}
.lightbox-nav.next {
  position: absolute;
  right: -70px;
  top: 50%;
  transform: translateY(-50%);
}

/* ==========================================================
   RESPONSIVE MEDIA QUERIES FOR DESTINOS
   ========================================================== */
@media (max-width: 1024px) {
  .layout-grid {
    grid-template-columns: 1fr;
  }
  .sticky-booking-card {
    position: static;
  }
  .lightbox-nav.prev {
    left: 10px;
  }
  .lightbox-nav.next {
    right: 10px;
  }
  .archive-cta-box {
    flex-direction: column;
    text-align: center;
  }
  .archive-cta-box .cta-actions {
    width: 100%;
  }
}

@media (max-width: 768px) {
  .destinos-archive-page,
  .destino-single-page {
    margin-top: 84px;
  }
  .photo-mosaic-container {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 240px 140px;
  }
  .mosaic-item.mosaic-main {
    grid-column: span 2;
    grid-row: span 1;
  }
  .ventajas-grid,
  .inclusiones-grid {
    grid-template-columns: 1fr;
  }
  .destinos-archive-grid {
    grid-template-columns: 1fr;
  }
  .content-block {
    padding: 1.5rem;
  }
  .archive-cta-box {
    padding: 2rem 1.5rem;
  }
  .lightbox-close {
    top: -45px;
    right: 5px;
    width: 38px;
    height: 38px;
  }
}

/* ==========================================================
   QUOTE FORM FEEDBACK & SELECTED PILL
   ========================================================== */
.selected-dest-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(255, 107, 43, 0.1);
  color: var(--orange-dark);
  padding: 0.35rem 0.75rem;
  border-radius: 6px;
  font-size: 0.82rem;
  margin-bottom: 1rem;
  border: 1px solid rgba(255, 107, 43, 0.2);
}
.selected-dest-pill strong {
  color: var(--navy);
}
.quote-feedback-box {
  margin-top: 1.5rem;
  border-radius: 12px;
  padding: 1.5rem;
  animation: fadeInFeedback 0.3s ease;
}
.quote-feedback-box.success {
  background: rgba(37, 211, 102, 0.08);
  border: 1.5px solid rgba(37, 211, 102, 0.3);
  color: #065F46;
}
.quote-feedback-box.error {
  background: rgba(239, 68, 68, 0.08);
  border: 1.5px solid rgba(239, 68, 68, 0.3);
  color: #991B1B;
}
.quote-feedback-box.mini-feedback {
  padding: 1rem;
  margin-top: 1rem;
}
.feedback-inner {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
.feedback-inner .f-icon {
  font-size: 1.8rem;
  flex-shrink: 0;
}
.feedback-inner h4 {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 0.35rem;
}
.feedback-inner p {
  font-size: 0.88rem;
  color: var(--gray-700);
  line-height: 1.5;
}
.f-actions {
  margin-top: 0.85rem;
}
.btn-wa-confirm {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: #25D366;
  color: var(--white);
  padding: 0.65rem 1.25rem;
  border-radius: 8px;
  font-weight: 700;
  font-size: 0.875rem;
  text-decoration: none;
  transition: background 0.2s, transform 0.2s;
  box-shadow: 0 4px 12px rgba(37, 211, 102, 0.2);
}
.btn-wa-confirm:hover {
  background: #1eb857;
  transform: translateY(-1px);
}
@keyframes fadeInFeedback {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ==========================================================
   PAGE HERO (NOSOTROS & CONTACTO)
   ========================================================== */
.page-hero {
  position: relative;
  background-color: var(--navy);
  background-size: cover;
  background-position: center;
  padding: 8rem 2rem 5rem;
  margin-top: 108px;
  color: var(--white);
  text-align: center;
}
.hero-breadcrumbs {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(8px);
  padding: 0.4rem 1rem;
  border-radius: 20px;
  font-size: 0.85rem;
  margin-bottom: 1.5rem;
}
.hero-breadcrumbs a {
  color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
  transition: color 0.2s;
}
.hero-breadcrumbs a:hover {
  color: var(--orange);
}
.hero-breadcrumbs .sep {
  color: rgba(255, 255, 255, 0.4);
}
.hero-breadcrumbs .current {
  color: var(--white);
  font-weight: 600;
}
.page-hero .hero-badge {
  display: inline-block;
  background: rgba(255, 107, 43, 0.2);
  color: var(--orange);
  border: 1px solid rgba(255, 107, 43, 0.4);
  padding: 0.35rem 1rem;
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 1px;
  margin-bottom: 1rem;
}
.page-hero-title {
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  font-weight: 800;
  letter-spacing: -0.5px;
  line-height: 1.2;
  max-width: 820px;
  margin: 0 auto 1.25rem;
  color: var(--white);
}
.page-hero-sub {
  font-size: 1.1rem;
  color: rgba(255, 255, 255, 0.85);
  max-width: 680px;
  margin: 0 auto;
  line-height: 1.6;
}

/* ==========================================================
   NOSOTROS PAGE STYLES
   ========================================================== */
.nosotros-stats-bar {
  background: #152042;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.stat-icon-badge {
  font-size: 1.5rem;
  margin-bottom: 0.25rem;
}

/* Historia Section */
.historia-section {
  padding: 5.5rem 2rem;
  background: var(--white);
}
.historia-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 3.5rem;
  align-items: center;
}
.historia-content .section-heading {
  font-size: clamp(1.8rem, 2.5vw, 2.25rem);
  font-weight: 800;
  color: var(--navy);
  margin-top: 0.5rem;
  margin-bottom: 1.5rem;
  line-height: 1.25;
}
.historia-text p {
  color: var(--gray-700);
  margin-bottom: 1.25rem;
  font-size: 1rem;
  line-height: 1.7;
}
.historia-text p.lead-p {
  font-size: 1.12rem;
  font-weight: 600;
  color: var(--navy);
}

/* Sede Highlight Card */
.sede-highlight-card {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
  background: #FFF7ED;
  border: 1.5px solid rgba(255, 107, 43, 0.35);
  border-radius: var(--radius);
  padding: 1.5rem;
  margin-top: 2rem;
  box-shadow: 0 4px 15px rgba(255, 107, 43, 0.08);
}
.sede-highlight-card .sh-icon {
  font-size: 2.2rem;
  flex-shrink: 0;
  background: var(--white);
  width: 52px;
  height: 52px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.sede-highlight-card h4 {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--navy);
  margin-bottom: 0.35rem;
}
.sede-highlight-card p {
  font-size: 0.92rem;
  color: var(--gray-700);
  line-height: 1.5;
  margin-bottom: 0.75rem;
}
.btn-sede-map {
  display: inline-flex;
  align-items: center;
  color: var(--orange);
  font-weight: 700;
  font-size: 0.88rem;
  text-decoration: none;
  transition: color 0.2s, transform 0.2s;
}
.btn-sede-map:hover {
  color: var(--orange-dark);
  transform: translateX(4px);
}

/* Historia Visual Stack */
.historia-img-stack {
  position: relative;
}
.historia-img-stack .stack-img {
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 12px 35px rgba(27, 41, 88, 0.12);
}
.historia-img-stack .stack-img img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}
.historia-img-stack .main-img {
  position: relative;
  border-radius: 16px;
}
.historia-img-stack .main-img img {
  height: 380px;
}
.historia-img-stack .secondary-img {
  position: absolute;
  bottom: -2.5rem;
  right: -2rem;
  width: 55%;
  border: 4px solid var(--white);
  border-radius: 14px;
}
.historia-img-stack .secondary-img img {
  height: 200px;
}
.img-badge-experience {
  position: absolute;
  top: 1.25rem;
  left: 1.25rem;
  background: var(--navy);
  color: var(--white);
  padding: 0.75rem 1.25rem;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.15);
}
.img-badge-experience .badge-num {
  font-size: 1.75rem;
  font-weight: 900;
  color: var(--orange);
  line-height: 1;
}
.img-badge-experience .badge-txt {
  font-size: 0.75rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
  margin-top: 0.25rem;
}

/* Misión & Visión Section */
.mision-vision-section {
  padding: 5.5rem 2rem;
  background: var(--gray-50);
}
.mv-cards-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
.mv-card {
  background: var(--white);
  padding: 2.75rem 2.25rem;
  border-radius: 16px;
  border: 1px solid var(--gray-100);
  box-shadow: 0 4px 20px rgba(27, 41, 88, 0.05);
  transition: transform 0.3s, box-shadow 0.3s;
}
.mv-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 30px rgba(27, 41, 88, 0.09);
}
.mv-card .mv-icon {
  font-size: 2.5rem;
  margin-bottom: 1.25rem;
}
.mv-card h3 {
  font-size: 1.45rem;
  font-weight: 800;
  color: var(--navy);
  margin-bottom: 0.85rem;
}
.mv-card p {
  color: var(--gray-700);
  font-size: 1rem;
  line-height: 1.7;
}

/* Valores Grid */
.valores-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}
.valor-card {
  background: var(--white);
  padding: 2rem 1.5rem;
  border-radius: var(--radius);
  border: 1px solid var(--gray-100);
  transition: transform 0.3s, border-color 0.3s, box-shadow 0.3s;
}
.valor-card:hover {
  transform: translateY(-4px);
  border-color: var(--orange);
  box-shadow: 0 8px 25px rgba(255, 107, 43, 0.1);
}
.valor-icon {
  font-size: 2rem;
  margin-bottom: 1rem;
}
.valor-card h4 {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 0.5rem;
}
.valor-card p {
  font-size: 0.9rem;
  color: var(--gray-700);
  line-height: 1.55;
}

/* Garantías Section */
.garantias-section {
  background: var(--navy);
  padding: 5.5rem 2rem;
  color: var(--white);
}
.garantias-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}
.garantia-card {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(6px);
  padding: 2.25rem 1.75rem;
  border-radius: 14px;
  transition: background 0.3s, transform 0.3s;
}
.garantia-card:hover {
  background: rgba(255, 255, 255, 0.1);
  transform: translateY(-4px);
}
.gar-icon {
  font-size: 2.25rem;
  margin-bottom: 1rem;
}
.garantia-card h3 {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--white);
  margin-bottom: 0.65rem;
}
.garantia-card p {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.6;
}

/* Galería de Fotos (Nosotros) */
.galeria-nosotros-section {
  padding: 5.5rem 2rem;
  background: var(--white);
}
.nosotros-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.nos-gallery-item {
  border-radius: var(--radius);
  overflow: hidden;
  position: relative;
  cursor: pointer;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
}
.nos-img-wrap {
  position: relative;
  overflow: hidden;
  height: 280px;
}
.nos-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.nos-gallery-item:hover .nos-img-wrap img {
  transform: scale(1.08);
}
.nos-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(27, 41, 88, 0.85) 0%, rgba(27, 41, 88, 0.2) 60%, transparent 100%);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.25rem;
  opacity: 0.9;
  transition: opacity 0.3s;
}
.nos-zoom-icon {
  align-self: flex-end;
  background: rgba(255, 255, 255, 0.25);
  backdrop-filter: blur(4px);
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  font-size: 1rem;
}
.nos-meta .nos-title {
  display: block;
  color: var(--white);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.35;
  margin-bottom: 0.25rem;
}
.nos-meta .nos-lugar {
  display: block;
  color: var(--orange);
  font-size: 0.8rem;
  font-weight: 600;
}

/* Nosotros CTA Box & Highlighted Phone */
.nosotros-cta-section {
  padding: 5.5rem 2rem;
  background: var(--gray-50);
}
.nos-cta-box {
  background: linear-gradient(135deg, var(--navy) 0%, #152042 100%);
  border-radius: 20px;
  padding: 4rem 3rem;
  text-align: center;
  color: var(--white);
  box-shadow: 0 15px 40px rgba(27, 41, 88, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.1);
  position: relative;
  overflow: hidden;
}
.nos-cta-header .cta-tag {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--orange);
  letter-spacing: 1.5px;
  margin-bottom: 0.75rem;
}
.nos-cta-header h2 {
  font-size: clamp(1.8rem, 2.8vw, 2.4rem);
  font-weight: 800;
  color: var(--white);
  margin-bottom: 1rem;
}
.nos-cta-header p {
  color: rgba(255, 255, 255, 0.8);
  max-width: 650px;
  margin: 0 auto 2.5rem;
  font-size: 1.05rem;
  line-height: 1.6;
}

/* Highlighted Phone Box */
.highlighted-phone-box {
  background: rgba(255, 255, 255, 0.08);
  border: 2px solid rgba(255, 107, 43, 0.6);
  border-radius: 16px;
  padding: 2.25rem 2rem;
  max-width: 620px;
  margin: 0 auto;
  box-shadow: 0 8px 30px rgba(255, 107, 43, 0.15);
}
.hp-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: rgba(37, 211, 102, 0.15);
  color: #25D366;
  border: 1px solid rgba(37, 211, 102, 0.4);
  padding: 0.35rem 0.9rem;
  border-radius: 20px;
  font-size: 0.8rem;
  font-weight: 700;
  margin-bottom: 1rem;
}
.hp-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #25D366;
  display: inline-block;
  animation: pulseGreen 1.5s infinite;
}
@keyframes pulseGreen {
  0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.7); }
  70% { transform: scale(1.1); box-shadow: 0 0 0 8px rgba(37, 211, 102, 0); }
  100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}
.hp-phone-link {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  color: var(--white);
  text-decoration: none;
  font-size: clamp(1.8rem, 3.5vw, 2.5rem);
  font-weight: 900;
  letter-spacing: -0.5px;
  transition: color 0.2s, transform 0.2s;
}
.hp-phone-link:hover {
  color: var(--orange);
  transform: scale(1.02);
}
.hp-phone-link .hp-icon {
  font-size: 2.2rem;
}
.hp-note {
  font-size: 0.88rem;
  color: rgba(255, 255, 255, 0.7);
  margin-top: 0.65rem;
  margin-bottom: 1.5rem;
}
.hp-action-buttons {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1rem;
}
.btn-wa-highlight {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: #25D366;
  color: var(--white);
  font-weight: 700;
  font-size: 0.95rem;
  padding: 0.85rem 1.6rem;
  border-radius: 10px;
  text-decoration: none;
  transition: background 0.2s, transform 0.2s;
  box-shadow: 0 4px 15px rgba(37, 211, 102, 0.35);
}
.btn-wa-highlight:hover {
  background: #1eb857;
  transform: translateY(-2px);
}
.btn-call-highlight {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--orange);
  color: var(--white);
  font-weight: 700;
  font-size: 0.95rem;
  padding: 0.85rem 1.6rem;
  border-radius: 10px;
  text-decoration: none;
  transition: background 0.2s, transform 0.2s;
  box-shadow: 0 4px 15px rgba(255, 107, 43, 0.35);
}
.btn-call-highlight:hover {
  background: var(--orange-dark);
  transform: translateY(-2px);
}
.btn-contacto-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(255, 255, 255, 0.15);
  color: var(--white);
  font-weight: 600;
  font-size: 0.92rem;
  padding: 0.85rem 1.4rem;
  border-radius: 10px;
  text-decoration: none;
  transition: background 0.2s;
  border: 1px solid rgba(255, 255, 255, 0.25);
}
.btn-contacto-link:hover {
  background: rgba(255, 255, 255, 0.25);
}

/* ==========================================================
   CONTACTO PAGE STYLES
   ========================================================== */
.contacto-quick-bar {
  padding: 0 2rem;
  margin-top: -2.5rem;
  position: relative;
  z-index: 20;
}
.hero-phone-highlight-card {
  background: var(--white);
  border-radius: 18px;
  padding: 2.25rem 2.75rem;
  box-shadow: 0 15px 40px rgba(27, 41, 88, 0.12);
  border: 2px solid rgba(255, 107, 43, 0.25);
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 2.5rem;
  align-items: center;
}
.hph-pulse-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: rgba(255, 107, 43, 0.1);
  color: var(--orange);
  padding: 0.3rem 0.85rem;
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.5px;
  margin-bottom: 0.75rem;
}
.pulse-ring {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--orange);
  animation: pulseOrange 1.5s infinite;
}
@keyframes pulseOrange {
  0% { transform: scale(0.9); box-shadow: 0 0 0 0 rgba(255, 107, 43, 0.7); }
  70% { transform: scale(1.1); box-shadow: 0 0 0 7px rgba(255, 107, 43, 0); }
  100% { transform: scale(0.9); box-shadow: 0 0 0 0 rgba(255, 107, 43, 0); }
}
.hph-left h2 {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--navy);
  margin-bottom: 0.4rem;
}
.hph-left p {
  color: var(--gray-700);
  font-size: 0.92rem;
  line-height: 1.5;
}
.hph-phone-display {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  background: var(--gray-50);
  border: 1px solid var(--gray-100);
  border-radius: 12px;
  padding: 0.85rem 1.25rem;
  text-decoration: none;
  margin-bottom: 0.85rem;
  transition: border-color 0.2s, background 0.2s;
}
.hph-phone-display:hover {
  border-color: var(--orange);
  background: #FFF7ED;
}
.hph-phone-ico {
  font-size: 1.8rem;
}
.hph-num-wrap {
  display: flex;
  flex-direction: column;
}
.hph-num-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--gray-400);
  text-transform: uppercase;
}
.hph-num-val {
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--navy);
}
.hph-btn-group {
  display: flex;
  gap: 0.75rem;
}
.btn-hph-wa {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  background: #25D366;
  color: var(--white);
  padding: 0.75rem 1rem;
  border-radius: 8px;
  font-weight: 700;
  font-size: 0.88rem;
  text-decoration: none;
  transition: background 0.2s, transform 0.2s;
  box-shadow: 0 4px 12px rgba(37, 211, 102, 0.25);
}
.btn-hph-wa:hover {
  background: #1eb857;
  transform: translateY(-1px);
}
.btn-hph-call {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  background: var(--navy);
  color: var(--white);
  padding: 0.75rem 1.25rem;
  border-radius: 8px;
  font-weight: 700;
  font-size: 0.88rem;
  text-decoration: none;
  transition: background 0.2s;
}
.btn-hph-call:hover {
  background: #111a3b;
}

/* Contacto Main Section */
.contacto-main-section {
  padding: 5.5rem 2rem;
  background: var(--white);
}
.contacto-main-grid {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 3.5rem;
  align-items: flex-start;
}
.contacto-col-title {
  font-size: clamp(1.8rem, 2.5vw, 2.2rem);
  font-weight: 800;
  color: var(--navy);
  margin-top: 0.4rem;
  margin-bottom: 0.75rem;
}
.contacto-col-desc {
  color: var(--gray-700);
  font-size: 0.98rem;
  line-height: 1.6;
  margin-bottom: 2rem;
}

/* Info Cards List */
.info-cards-list {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.info-card {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
  background: var(--gray-50);
  border: 1px solid var(--gray-100);
  border-radius: 14px;
  padding: 1.5rem;
  transition: transform 0.2s, border-color 0.2s, box-shadow 0.2s;
}
.info-card:hover {
  transform: translateY(-2px);
  border-color: rgba(27, 41, 88, 0.2);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.04);
}
.info-icon {
  font-size: 1.8rem;
  background: var(--white);
  width: 46px;
  height: 46px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
}
.info-body h4 {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 0.35rem;
}
.info-body p {
  color: var(--gray-700);
  font-size: 0.92rem;
  line-height: 1.5;
}
.info-body a {
  color: var(--navy);
  text-decoration: none;
  font-weight: 600;
  transition: color 0.2s;
}
.info-body a:hover {
  color: var(--orange);
}
.info-card.ves-card {
  background: #FFF9F5;
  border: 1.5px solid rgba(255, 107, 43, 0.35);
}
.info-card.ves-card .info-icon {
  background: var(--orange);
  color: var(--white);
}
.reference-badge {
  background: var(--white);
  border: 1px dashed rgba(255, 107, 43, 0.4);
  border-radius: 8px;
  padding: 0.75rem 1rem;
  margin-top: 0.75rem;
}
.reference-badge span {
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  color: var(--orange);
  text-transform: uppercase;
  margin-bottom: 0.2rem;
}
.reference-badge p {
  font-size: 0.85rem;
  color: var(--gray-700);
  line-height: 1.45;
}
.info-card.phone-card-featured {
  background: linear-gradient(135deg, #1b2958 0%, #152042 100%);
  border-color: rgba(255, 255, 255, 0.15);
  color: var(--white);
}
.info-card.phone-card-featured h4 {
  color: var(--white);
}
.info-card.phone-card-featured .highlight-link {
  color: var(--orange);
  font-size: 1.15rem;
  font-weight: 800;
}
.info-card.phone-card-featured .highlight-link.wa-color {
  color: #25D366;
  font-size: 0.92rem;
  font-weight: 700;
}
.sub-note {
  display: block;
  font-size: 0.78rem;
  color: var(--gray-400);
  margin-top: 0.35rem;
}

/* Contacto Form Card */
.contacto-form-card {
  background: var(--white);
  border-radius: 20px;
  padding: 2.75rem 2.5rem;
  box-shadow: 0 10px 40px rgba(27, 41, 88, 0.08);
  border: 1px solid var(--gray-100);
}
.form-card-header .form-tag {
  font-size: 0.75rem;
  font-weight: 800;
  color: var(--orange);
  letter-spacing: 1px;
  margin-bottom: 0.35rem;
}
.form-card-header h3 {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--navy);
  margin-bottom: 0.5rem;
}
.form-card-header p {
  font-size: 0.92rem;
  color: var(--gray-400);
  margin-bottom: 2rem;
  line-height: 1.5;
}
.form-group-wrap {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.f-group {
  display: flex;
  flex-direction: column;
}
.f-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}
.f-group label {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 0.4rem;
}
.f-group label .req {
  color: var(--orange);
}
.f-group input,
.f-group select,
.f-group textarea {
  width: 100%;
  padding: 0.85rem 1rem;
  border: 1.5px solid var(--gray-100);
  border-radius: 8px;
  font-family: inherit;
  font-size: 0.92rem;
  color: var(--navy);
  background: var(--gray-50);
  transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
  outline: none;
}
.f-group input:focus,
.f-group select:focus,
.f-group textarea:focus {
  border-color: var(--orange);
  background: var(--white);
  box-shadow: 0 0 0 3px rgba(255, 107, 43, 0.12);
}
.btn-submit-contact {
  width: 100%;
  background: var(--orange);
  color: var(--white);
  border: none;
  padding: 1.1rem;
  border-radius: 10px;
  font-weight: 700;
  font-size: 1.05rem;
  cursor: pointer;
  transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
  box-shadow: 0 4px 15px rgba(255, 107, 43, 0.3);
  margin-top: 0.5rem;
}
.btn-submit-contact:hover {
  background: var(--orange-dark);
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(255, 107, 43, 0.4);
}
.btn-submit-contact:disabled {
  opacity: 0.7;
  cursor: not-allowed;
  transform: none;
}

/* Mapa Section */
.mapa-section {
  padding: 5.5rem 2rem;
  background: var(--gray-50);
}
.mapa-container-box {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 35px rgba(27, 41, 88, 0.1);
  border: 1px solid var(--gray-100);
}
.mapa-iframe-wrapper iframe {
  display: block;
  width: 100%;
  height: 460px;
}
.mapa-card-overlay {
  position: absolute;
  top: 1.5rem;
  left: 1.5rem;
  background: var(--white);
  padding: 1.5rem 1.75rem;
  border-radius: 14px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
  max-width: 340px;
  border: 1px solid rgba(0, 0, 0, 0.05);
}
.mco-badge {
  display: inline-block;
  background: var(--navy);
  color: var(--white);
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.25rem 0.65rem;
  border-radius: 6px;
  margin-bottom: 0.5rem;
}
.mapa-card-overlay h4 {
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--navy);
  margin-bottom: 0.4rem;
}
.mapa-card-overlay p {
  font-size: 0.85rem;
  color: var(--gray-700);
  line-height: 1.45;
  margin-bottom: 1rem;
}
.mco-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.btn-open-maps {
  background: var(--navy);
  color: var(--white);
  padding: 0.55rem 0.95rem;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.2s;
}
.btn-open-maps:hover {
  background: #111a3b;
}
.btn-maps-wa {
  background: #25D366;
  color: var(--white);
  padding: 0.55rem 0.95rem;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.2s;
}
.btn-maps-wa:hover {
  background: #1eb857;
}

/* Sede Gallery Grid */
.contacto-galeria-section {
  padding: 5.5rem 2rem;
  background: var(--white);
}
.sede-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.sede-gallery-item {
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
}
.sede-img-wrap {
  position: relative;
  height: 250px;
}
.sede-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.sede-gallery-item:hover .sede-img-wrap img {
  transform: scale(1.06);
}
.sede-img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(27, 41, 88, 0.85) 0%, transparent 60%);
  display: flex;
  align-items: flex-end;
  padding: 1.25rem;
}
.sede-img-caption {
  color: var(--white);
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.4;
}

/* FAQ Accordion */
.faq-section {
  padding: 5.5rem 2rem;
  background: var(--gray-50);
}
.faq-accordion-list {
  max-width: 820px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.faq-item {
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.faq-item.is-active {
  border-color: var(--orange);
  box-shadow: 0 4px 15px rgba(255, 107, 43, 0.08);
}
.faq-question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.35rem 1.75rem;
  background: none;
  border: none;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
}
.faq-q-text {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--navy);
  transition: color 0.2s;
  padding-right: 1rem;
}
.faq-item.is-active .faq-q-text,
.faq-question:hover .faq-q-text {
  color: var(--orange);
}
.faq-q-icon {
  font-size: 1.5rem;
  font-weight: 400;
  color: var(--orange);
  line-height: 1;
  transition: transform 0.3s;
}
.faq-item.is-active .faq-q-icon {
  transform: rotate(45deg);
}
.faq-answer {
  padding: 0 1.75rem 1.5rem;
  color: var(--gray-700);
  font-size: 0.95rem;
  line-height: 1.7;
  border-top: 1px solid rgba(0, 0, 0, 0.04);
  padding-top: 1rem;
}

/* ==========================================================
   RESPONSIVE STYLES (NOSOTROS & CONTACTO)
   ========================================================== */
@media (max-width: 1024px) {
  .historia-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .historia-img-stack {
    max-width: 540px;
    margin: 0 auto;
  }
  .valores-grid,
  .garantias-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .contacto-main-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .hero-phone-highlight-card {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding: 2rem;
  }
}

@media (max-width: 768px) {
  .page-hero {
    padding: 6.5rem 1.5rem 4rem;
  }
  .mv-cards-grid {
    grid-template-columns: 1fr;
  }
  .nosotros-gallery-grid,
  .sede-gallery-grid {
    grid-template-columns: 1fr;
  }
  .valores-grid,
  .garantias-grid {
    grid-template-columns: 1fr;
  }
  .f-row-2 {
    grid-template-columns: 1fr;
  }
  .contacto-form-card {
    padding: 2rem 1.5rem;
  }
  .mapa-card-overlay {
    position: static;
    max-width: 100%;
    margin-top: 1rem;
    border-radius: 0 0 14px 14px;
  }
  .historia-img-stack .secondary-img {
    right: 0;
    bottom: -1.5rem;
    width: 60%;
  }
  .nos-cta-box {
    padding: 3rem 1.5rem;
  }
  .hp-phone-link {
    font-size: 1.7rem;
  }
  .hp-action-buttons {
    flex-direction: column;
  }
  .hp-action-buttons a {
    width: 100%;
    justify-content: center;
  }
}