/**
 * Theme Name:  Llamitas Travel Agency 
 * Description: Estilos principales y arquitectura base optimizada (WPO & Mobile-First).
 * @package BC_TravelPress
 */

/* ==========================================================================
   0. DECLARACIÓN DE FUENTES LOCALES (@font-face)
   ========================================================================== */
@font-face {
  font-family: "ImpactCustom";
  src:
    url("fonts/Impact/Impact.woff") format("woff"),
    url("fonts/Impact/Impact.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* ==========================================================================
   1. VARIABLES GLOBALES (:root único)
   ========================================================================== */
:root {
  /* UX/UI: Jerarquía Tipográfica Premium */
  --font-heading:
    "ImpactCustom", Impact, "Arial Black", sans-serif; /* Títulos Gigantes y Números */
  --font-primary: "Poppins", sans-serif; /* Títulos secundarios y Tarjetas */
  --font-accent: "Cormorant Garamond", serif;
  --font-ui: "Jost", sans-serif; /* Navegación y Botones */
  --font-body: "DM Sans", sans-serif; /* Párrafos */

  /* Paleta Principal Corporativa */
  --mint: #7dbfb2;
  --mint-lt: #a8d8d0;
  --mint-pale: #e8f5f2;
  --mint-md: #c8deda;
  --mint-dark: #4a9086;
  --mint-bg: #f0f7f6;

  /* Paleta Secundaria y Acentos */
  --orange: #e8823a;
  --gold: #d4af37;
  --gold-light: #f3e5ab;
  --red: #c0392b;
  --red-lt: #fdf3f2;
  --red-bg: #fdecea;
  --green-wa: #25d366;

  /* Escala de Grises y Fondos */
  --dark: #1a2e2b;
  --dark-2: #243b37;
  --text: #2d3d3a;
  --muted: #6a8a85;
  --border: #e2eded;
  --cream: #f7faf9;
  --white: #ffffff;

  /* UI & Layout */
  --radius: 12px;
  --container: 1280px;
  --transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* ==========================================================================
   2. RESET Y NORMALIZACIÓN (HTML5 Baseline)
   ========================================================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
}

body {
  background: var(--white);
  color: var(--text);
  font-family: var(--font-body); /* Optimizado para lectura extensa */
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

img,
picture,
svg {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--mint-dark);
  text-decoration: none;
  transition: color 0.3s ease;
}

a:hover {
  color: var(--orange);
}

ul,
ol {
  list-style: none;
}

/* ==========================================================================
   3. CLASES UTILITARIAS Y TIPOGRAFÍA
   ========================================================================== */
.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 clamp(1rem, 5vw, 1.25rem);
}

.fw-light {
  font-weight: 300;
}
.fw-regular {
  font-weight: 400;
}
.fw-medium {
  font-weight: 500;
}
.fw-bold {
  font-weight: 700;
}
.fw-black {
  font-weight: 900;
}

.alignleft {
  float: left;
  margin: 0 1rem 1rem 0;
}
.alignright {
  float: right;
  margin: 0 0 1rem 1rem;
}
.aligncenter {
  display: block;
  margin: 0 auto 1rem;
  clear: both;
}

/* ==========================================================================
   4. COMPONENTES GLOBALES UNIFICADOS
   ========================================================================== */
.llm-breadcrumb {
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  padding: 0.8rem clamp(1rem, 5vw, 4rem);
  font-size: clamp(0.7rem, 2vw, 0.75rem);
  color: var(--muted);
  background: var(--dark);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.llm-breadcrumb a {
  color: var(--mint-lt);
}
.llm-breadcrumb a:hover {
  color: var(--white);
}

.llm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: clamp(10px, 3vw, 14px) clamp(20px, 5vw, 28px);
  border-radius: 50px;
  font-size: clamp(0.8rem, 2vw, 0.85rem);
  font-weight: 600;
  font-family: var(--font-ui);
  text-decoration: none;
  transition: var(--transition);
  cursor: pointer;
  border: 1px solid transparent;
}
.llm-btn--orange {
  background: var(--orange);
  color: var(--white);
}
.llm-btn--orange:hover {
  background: #d4721f;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(232, 130, 58, 0.35);
}
.llm-btn--outline {
  background: transparent;
  color: var(--white);
  border-color: rgba(255, 255, 255, 0.3);
}
.llm-btn--outline:hover {
  border-color: var(--mint);
  color: var(--mint);
  transform: translateY(-2px);
}
.llm-btn--mint {
  background: var(--mint);
  color: var(--white);
}
.llm-btn--mint:hover {
  background: var(--mint-dark);
  transform: translateY(-2px);
}

/* ==========================================================================
   5. RESET GLOBAL PARA CONTACT FORM 7
   ========================================================================== */
.wpcf7 form {
  position: relative;
}
.wpcf7-form-control-wrap {
  display: block;
  margin-bottom: 1.1rem;
}
.wpcf7-form label {
  display: block;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.5rem;
}
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form select,
.wpcf7-form textarea {
  width: 100%;
  background: var(--mint-bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: clamp(0.6rem, 2vw, 0.85rem) 1rem;
  font-size: 0.95rem;
  color: var(--text);
  outline: none;
  transition: var(--transition);
  font-family: var(--font-body);
}
.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
  border-color: var(--mint);
  background: var(--white);
  box-shadow: 0 0 0 3px rgba(125, 191, 178, 0.15);
}
.wpcf7-form input[type="submit"] {
  background: var(--mint);
  color: var(--white);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: 8px;
  cursor: pointer;
  transition: var(--transition);
  border: none;
  padding: 1rem 2rem;
  font-family: var(--font-ui);
}
.wpcf7-form input[type="submit"]:hover {
  background: var(--mint-dark);
  transform: translateY(-2px);
}

/* ==========================================================================
   FIX GLOBAL PARA STICKY EN MÓVILES Y ESCRITORIO
   ========================================================================== */
html,
body {
  overflow-x: clip;
}
/* Forzamos visibilidad en contenedores principales (Evita que el sticky falle) */
.site,
.site-content,
#page,
#content {
  overflow: visible !important;
}

/* ==========================================================================
   HEADER PRINCIPAL Y SEMÁNTICA
   ========================================================================== */
.header1 {
  /* Native Sticky: Más rápido y fluido que los emuladores JS */
  position: sticky;
  top: 0;
  z-index: 9999;
  width: 100%;
  background: var(--white);
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.08);
  /* Hint de optimización de hardware */
  will-change: transform;
  transition:
    background-color 0.3s ease,
    box-shadow 0.3s ease;
}

.llm-topbar {
  background: var(--dark);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.llm-topbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem clamp(1rem, 3vw, 1.25rem);
  gap: 1rem;
  flex-wrap: wrap;
}
.llm-topbar__left,
.llm-topbar__right {
  display: flex;
  align-items: center;
  gap: clamp(0.5rem, 2vw, 1rem);
}
.llm-phones {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.llm-phone {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--green-wa);
  color: var(--white);
  font-size: clamp(0.6rem, 1.5vw, 0.7rem);
  font-weight: 600;
  font-family: var(--font-ui);
  padding: 4px 10px;
  border-radius: 50px;
  transition: background 0.25s ease;
  line-height: 1;
}
.llm-phone:hover {
  background: #1da851;
}
.llm-social {
  display: flex;
  gap: 0.4rem;
}
.llm-social__link {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.1);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.25s;
}
.llm-social__link:hover {
  background: rgba(125, 191, 178, 0.3);
}
.llm-vsep {
  width: 1px;
  height: 16px;
  background: rgba(255, 255, 255, 0.15);
  margin: 0 clamp(0.2rem, 1vw, 0.5rem);
}

/* SELECTOR DE IDIOMAS */
.llm-langs,
.llm-langs ul,
ul.llm-langs {
  display: flex;
  flex-direction: row !important;
  flex-wrap: nowrap;
  align-items: center;
  gap: clamp(0.5rem, 1.5vw, 1rem);
  margin: 0;
  padding: 0;
  list-style: none;
}
.llm-langs li {
  display: inline-flex;
  margin: 0;
  padding: 0;
  line-height: 1;
}
.llm-langs a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 6px clamp(10px, 2vw, 16px);
  border-radius: 5px;
  font-size: clamp(0.6rem, 1.5vw, 0.75rem);
  font-weight: 600;
  font-family: var(--font-ui);
  color: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.15);
  transition: var(--transition);
  line-height: 1;
  white-space: nowrap;
}
.llm-langs a img {
  width: 16px;
  height: auto;
  border-radius: 2px;
  display: block;
}
.llm-langs .current-lang a,
.llm-langs a:hover {
  background: rgba(125, 191, 178, 0.25);
  color: var(--mint-lt);
  border-color: rgba(125, 191, 178, 0.4);
}

.llm-mainbar {
  background: var(--white);
  border-bottom: 1px solid var(--border);
  transition: background-color 0.3s ease;
}
.llm-mainbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.85rem clamp(1rem, 3vw, 1.25rem);
  gap: clamp(1rem, 3vw, 2rem);
  transition: padding 0.3s ease;
}
.llm-logo {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  flex-shrink: 0;
}
.llm-logo img {
  height: clamp(50px, 8vw, 90px);
  width: auto;
  border-radius: 50%;
  background: var(--mint-bg);
  transition: height 0.3s ease;
}
.llm-logo__name {
  font-size: clamp(1.2rem, 3vw, 1.6rem);
  font-weight: 500;
  font-family: var(--font-heading);
  color: var(--orange);
  line-height: 1;
  letter-spacing: 1px;
}
.llm-logo__sub {
  font-size: clamp(0.45rem, 1.5vw, 0.55rem);
  font-weight: 600;
  font-family: var(--font-ui);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 4px;
  display: block;
}

.llm-header-search {
  flex: 1;
  max-width: 450px;
  margin: 0 auto;
}
.llm-search-wrapper {
  display: flex;
  align-items: center;
  background: var(--mint-bg);
  border: 1px solid var(--border);
  border-radius: 50px;
  height: clamp(40px, 5vw, 48px);
  transition: var(--transition);
}
.llm-search-wrapper:focus-within {
  border-color: var(--mint);
  background: var(--white);
  box-shadow: 0 0 0 3px rgba(125, 191, 178, 0.15);
}
.llm-search-field {
  flex: 1;
  border: none;
  background: transparent;
  padding: 0 1.2rem;
  font-size: 0.9rem;
  color: var(--text);
  outline: none;
}
.llm-search-submit {
  background: var(--mint);
  border: none;
  color: var(--white);
  padding: 0 1.4rem;
  height: 100%;
  cursor: pointer;
  transition: background 0.2s ease;
  border-radius: 0 50px 50px 0;
}
.llm-search-submit:hover {
  background: var(--mint-dark);
}

.llm-navwrap {
  background: var(--white);
  border-bottom: 1px solid var(--border);
  position: relative;
  z-index: 100;
  transition: background-color 0.3s ease;
}
.llm-menu-desktop {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
}
.llm-menu-desktop > .menu-item > a {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 1rem 0.8rem;
  font-size: 0.9rem;
  font-weight: 500;
  font-family: var(--font-primary);
  color: var(--text);
  transition: var(--transition);
  border-radius: 8px 8px 0 0;
}
.llm-menu-desktop .menu-item-has-children > a::after {
  content: "";
  width: 6px;
  height: 6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transition: var(--transition);
}
.llm-menu-desktop > .menu-item:hover > a,
.llm-menu-desktop > .current-menu-item > a {
  background: var(--mint-bg);
  color: var(--mint);
}
.llm-menu-desktop .menu-item-has-children:hover > a::after {
  transform: rotate(-135deg) translateY(-1px);
}

/* Dropdowns */
.llm-menu-desktop > .menu-item:not(:has(.sub-menu .sub-menu)) {
  position: relative;
}
.llm-menu-desktop > .menu-item:not(:has(.sub-menu .sub-menu)) > .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 260px;
  background: var(--white);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.1);
  border: 1px solid var(--border);
  border-radius: 0 0 12px 12px;
  padding: 0.5rem 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: var(--transition);
  z-index: 101;
}
.llm-menu-desktop
  > .menu-item:not(:has(.sub-menu .sub-menu)):hover
  > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.llm-menu-desktop
  > .menu-item:not(:has(.sub-menu .sub-menu))
  .sub-menu
  .menu-item
  a {
  display: block;
  padding: 0.6rem 1.5rem;
  font-size: 0.85rem;
  color: var(--text);
  border-bottom: 1px solid rgba(0, 0, 0, 0.04);
  transition: var(--transition);
}
.llm-menu-desktop
  > .menu-item:not(:has(.sub-menu .sub-menu))
  .sub-menu
  .menu-item
  a:hover {
  background: var(--mint-bg);
  color: var(--mint);
  padding-left: 2rem;
}

.llm-menu-desktop > .menu-item:has(.sub-menu .sub-menu) {
  position: relative;
}
.llm-menu-desktop > .menu-item:has(.sub-menu .sub-menu) > .sub-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  width: max-content;
  max-width: 90vw;
  background: var(--white);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.1);
  border: 1px solid var(--border);
  border-radius: 0 0 12px 12px;
  padding: 2rem;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: max-content;
  gap: 2.5rem;
  opacity: 0;
  visibility: hidden;
  transition: var(--transition);
  z-index: 101;
}
.llm-menu-desktop > .menu-item:has(.sub-menu .sub-menu):hover > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.llm-menu-desktop
  > .menu-item:has(.sub-menu .sub-menu)
  > .sub-menu
  > .menu-item {
  border-right: 1px solid var(--border);
  padding-right: 2.5rem;
}
.llm-menu-desktop
  > .menu-item:has(.sub-menu .sub-menu)
  > .sub-menu
  > .menu-item:last-child {
  border-right: none;
  padding-right: 0;
}
.llm-menu-desktop
  > .menu-item:has(.sub-menu .sub-menu)
  > .sub-menu
  > .menu-item
  > a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--mint-dark);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 1.2rem;
  padding-bottom: 0.8rem;
  border-bottom: 2px solid var(--mint-bg);
  white-space: nowrap;
}
.llm-menu-desktop
  > .menu-item:has(.sub-menu .sub-menu)
  > .sub-menu
  > .menu-item
  > a::after {
  content: "›";
  border: none;
  transform: none;
  color: var(--mint-lt);
  font-size: 1.2rem;
}
.llm-menu-desktop > .menu-item:has(.sub-menu .sub-menu) .sub-menu .sub-menu {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.llm-menu-desktop
  > .menu-item:has(.sub-menu .sub-menu)
  .sub-menu
  .sub-menu
  .menu-item
  a {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 0.85rem;
  color: var(--muted);
  transition: var(--transition);
  white-space: nowrap;
}
.llm-menu-desktop
  > .menu-item:has(.sub-menu .sub-menu)
  .sub-menu
  .sub-menu
  .menu-item
  a::before {
  content: "›";
  color: var(--mint);
  font-size: 1.2rem;
  flex-shrink: 0;
  margin-top: -2px;
}
.llm-menu-desktop
  > .menu-item:has(.sub-menu .sub-menu)
  .sub-menu
  .sub-menu
  .menu-item
  a:hover {
  color: var(--mint-dark);
  transform: translateX(4px);
}

/* Promo Strip */
.llm-strip {
  background: var(--mint);
  padding: 0.5rem 0;
}
.llm-strip__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.llm-strip__text {
  font-size: clamp(0.7rem, 2vw, 0.85rem);
  font-weight: 600;
  color: var(--dark);
  text-align: center;
  font-family: var(--font-ui);
}
.llm-strip__btn {
  background: var(--dark);
  color: var(--white);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 4px 14px;
  border-radius: 50px;
  transition: background 0.2s;
  font-family: var(--font-ui);
}
.llm-strip__btn:hover {
  background: var(--dark-2);
  color: var(--white);
}

/* Mobile Menu */
.llm-mobilebar {
  display: none;
  align-items: center;
  justify-content: space-between;
  padding: 0.6rem clamp(1rem, 3vw, 1.25rem);
  background: var(--mint-bg);
  border-top: 1px solid var(--border);
  transition: padding 0.3s ease;
}
.llm-hamburger {
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 6px;
}
.llm-hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--dark);
  transition: var(--transition);
}
.llm-hamburger.open span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.llm-hamburger.open span:nth-child(2) {
  opacity: 0;
}
.llm-hamburger.open span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}
.llm-mob-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(2px);
  z-index: 1040;
}
.llm-mob-overlay.active {
  display: block;
}
.llm-mobilenav {
  position: fixed;
  top: 0;
  right: -320px;
  width: clamp(280px, 80vw, 320px);
  height: 100vh;
  background: var(--white);
  z-index: 1050;
  overflow-y: auto;
  transition: right 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  display: flex;
  flex-direction: column;
  box-shadow: -10px 0 40px rgba(0, 0, 0, 0.15);
}
.llm-mobilenav.is-open {
  right: 0;
}
.llm-mobilenav__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.2rem 1.5rem;
  background: var(--white);
  border-bottom: 1px solid var(--border);
}
.llm-mobilenav__title {
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--mint-dark);
  font-family: var(--font-primary);
}
.llm-mobilenav__close {
  background: none;
  border: none;
  font-size: 1.8rem;
  font-weight: 300;
  line-height: 1;
  color: var(--text);
  cursor: pointer;
  transition: color 0.2s;
}
.llm-mobilenav__close:hover {
  color: var(--mint);
}
.llm-mob-ul,
.llm-mob-ul ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.llm-mobilenav .menu-item {
  border-bottom: 1px solid var(--border);
  position: relative;
}
.llm-mobilenav .menu-item > a {
  display: flex;
  align-items: center;
  padding: 1.1rem 1.5rem;
  font-size: 0.95rem;
  color: var(--text);
  font-weight: 500;
  padding-right: 60px;
  transition: var(--transition);
  font-family: var(--font-primary);
}
.llm-mob-toggle {
  position: absolute;
  top: 0;
  right: 0;
  width: 55px;
  height: 100%;
  max-height: 54px;
  background: transparent;
  border: none;
  border-left: 1px solid var(--border);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--muted);
  transition: var(--transition);
}
.llm-mob-toggle::after {
  content: "›";
  font-size: 1.6rem;
  line-height: 1;
  font-family: var(--font-primary);
  transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  margin-top: -4px;
}
.llm-mobilenav .menu-item.is-open > .llm-mob-toggle {
  background: var(--mint-bg);
  color: var(--mint-dark);
}
.llm-mobilenav .menu-item.is-open > .llm-mob-toggle::after {
  transform: rotate(90deg);
}
.llm-mobilenav .menu-item.is-open > a {
  color: var(--mint-dark);
  font-weight: 700;
  background: rgba(125, 191, 178, 0.03);
}
.llm-mobilenav .sub-menu {
  display: none;
  background: var(--white);
  border-top: 1px solid var(--border);
}
.llm-mobilenav .sub-menu > .menu-item > a {
  padding: 1rem 1.5rem 1rem 2rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--mint-dark);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: rgba(125, 191, 178, 0.04);
}
.llm-mobilenav .sub-menu > .menu-item > .llm-mob-toggle {
  height: 50px;
}
.llm-mobilenav .sub-menu .sub-menu {
  border-top: none;
  background: var(--white);
}
.llm-mobilenav .sub-menu .sub-menu > .menu-item > a {
  padding: 0.8rem 1.5rem 0.8rem 2.5rem;
  font-size: 0.85rem;
  font-weight: 400;
  color: var(--text);
  background: transparent;
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.llm-mobilenav .sub-menu .sub-menu > .menu-item > a::before {
  content: "›";
  color: var(--mint);
  font-size: 1.2rem;
  flex-shrink: 0;
  margin-top: -2px;
}
.llm-mobilenav__cta-wrap {
  padding: 1.5rem;
  margin-top: auto;
  background: var(--mint-bg);
  border-top: 1px solid var(--border);
}

@media (max-width: 991px) {
  .llm-navwrap,
  .llm-strip {
    display: none;
  }
  .llm-mobilebar {
    display: flex;
  }
  .llm-topbar__inner {
    justify-content: center;
  }
  .llm-header-search {
    display: none;
  }
}

@media (max-width: 768px) {
  .llm-langs a {
    font-size: 0 !important;
    padding: 4px 8px;
    gap: 2px;
  }
  .llm-langs a::after {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    font-family: var(--font-ui);
  }
  .llm-langs a[hreflang*="es"]::after {
    content: "ES";
  }
  .llm-langs a[hreflang*="en"]::after {
    content: "EN";
  }
  .llm-langs a[hreflang*="pt"]::after {
    content: "PT";
  }
  .llm-mainbar__inner {
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
    gap: 1rem;
  }
  .llm-logo {
    flex-direction: column;
    gap: 0.2rem;
  }
  .llm-btn.llm-btn--orange {
    width: 100%;
    justify-content: center;
  }
}

/* ==========================================================================
   ESTADOS SCROLLED (STICKY ACTIVO) - FIX COMPLETO (Layout + UI Two-Tone)
   ========================================================================== */

/* 1. Transiciones Base (Hardware Acceleration) 
   Garantiza que el cambio de color no sea un salto de 0 frames */
.llm-mainbar,
.llm-navwrap,
.llm-mobilebar,
.llm-logo__name,
.llm-logo__sub,
.llm-hamburger span,
.llm-mobilebar__label {
  transition:
    background-color 0.4s ease,
    color 0.4s ease,
    border-color 0.4s ease,
    box-shadow 0.4s ease,
    padding 0.4s ease;
}

.header1.is-scrolled {
  box-shadow: 0 4px 25px rgba(0, 0, 0, 0.12);
}

/* 2. Colapso Fluido de Topbar y Strip (Solución Anti-Thrashing) */
.llm-topbar,
.llm-strip {
  max-height: 200px;
  opacity: 1;
  overflow: hidden;
  transition:
    max-height 0.4s cubic-bezier(0.25, 0.8, 0.25, 1),
    opacity 0.3s ease,
    padding 0.4s ease;
}

.header1.is-scrolled .llm-topbar,
.header1.is-scrolled .llm-strip {
  max-height: 0 !important;
  opacity: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  border: none !important;
}

/* 3. Reducción Dinámica de Espacios (Layout Shift Control) */
.header1.is-scrolled .llm-mainbar__inner {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.header1.is-scrolled .llm-logo img {
  height: clamp(40px, 5vw, 55px);
}

/* ==========================================================================
   TEMA TWO-TONE (Dark + Mint en modo Scroll)
   ========================================================================== */

/* Mainbar Oscura */
.header1.is-scrolled .llm-mainbar {
  background-color: var(--dark);
  border-bottom: none;
}

/* Ajuste de Contraste del Logo */
.header1.is-scrolled .llm-logo__name {
  color: var(--white);
}
.header1.is-scrolled .llm-logo__sub {
  color: var(--mint-lt);
}

/* Navwrap Color Menta Oscuro */
.header1.is-scrolled .llm-navwrap {
  background-color: var(--mint-dark);
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

/* Enlaces del Menú Desktop */
.header1.is-scrolled .llm-menu-desktop > .menu-item > a {
  color: var(--white);
  font-weight: 600;
}

.header1.is-scrolled .llm-menu-desktop > .menu-item:hover > a,
.header1.is-scrolled .llm-menu-desktop > .current-menu-item > a {
  background-color: rgba(255, 255, 255, 0.15);
  color: var(--white);
}

/* Ajustes Móviles al hacer scroll */
@media (max-width: 991px) {
  .header1.is-scrolled .llm-mobilebar {
    padding-top: 0.4rem !important;
    padding-bottom: 0.4rem !important;
    background-color: var(--dark);
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  }

  .header1.is-scrolled .llm-hamburger span {
    background-color: var(--white); /* Contraste para el icono de menú */
  }

  .header1.is-scrolled .llm-mobilebar__label {
    color: var(--mint-lt);
  }

  .header1.is-scrolled .llm-logo img {
    height: 40px;
  }
}
/* ==========================================================================
   FIX: EVITAR SALTO DEL STICKY AL ABRIR EL MENÚ MÓVIL
   ========================================================================== */
.header1.is-menu-open {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  /* Mantiene el header anclado a la pantalla sin importar el estado del body */
}

/* ==========================================================================
   FOOTER GLOBALS
   ========================================================================== */
.llm-footer {
  background: var(--mint-md);
  color: var(--text);
  font-family: var(--font-primary);
}
.llm-footer__top {
  background: var(--dark);
  padding: 1.2rem 0;
}
.llm-footer__top-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
}
.llm-footer__top-text {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.7);
  font-family: var(--font-body);
}
.llm-footer__top-text strong {
  color: var(--mint);
  font-weight: 600;
}
.llm-footer__socials {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  justify-content: center;
}
.llm-fsocial {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 4px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.7);
  font-size: 1.1rem;
  transition: var(--transition);
}
.llm-fsocial:hover {
  background: rgba(125, 191, 178, 0.2);
  color: var(--mint);
  border-color: var(--mint);
}

.llm-footer__body {
  padding: clamp(2rem, 5vw, 4rem) 0;
}
.llm-footer__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: clamp(2rem, 5vw, 3rem);
}
.llm-ftitle {
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: var(--mint-dark);
  margin-bottom: 1.5rem;
  text-transform: uppercase;
  font-family: var(--font-primary);
}

.llm-flogo {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 1rem;
  text-decoration: none;
}
.llm-flogo img {
  border-radius: 50%;
  border: 2px solid var(--mint-dark);
  background: var(--white);
  width: 60px;
  height: 60px;
}
.llm-flogo__name {
  font-size: clamp(1.2rem, 3vw, 1.4rem);
  font-weight: 500;
  color: var(--dark);
  line-height: 1;
  font-family: var(--font-heading);
  letter-spacing: 1px;
}
.llm-flogo__sub {
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: var(--muted);
  margin-top: 4px;
  display: block;
  font-family: var(--font-ui);
}
.llm-fdesc {
  font-size: 0.9rem;
  line-height: 1.7;
  color: var(--mint-dark);
  margin-bottom: 1.5rem;
  font-family: var(--font-body);
}
.llm-fbadges {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.llm-fbadges img {
  background: var(--white);
  border-radius: 8px;
  padding: 4px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
  width: 80px;
  height: auto;
}

.llm-fcontact-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 1.2rem;
  font-style: normal;
}
.llm-fcontact-item i {
  font-size: 1.2rem;
  color: var(--mint-dark);
  margin-top: 4px;
  flex-shrink: 0;
}
.llm-fcontact-label {
  display: block;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--mint-dark);
  margin-bottom: 2px;
}
.llm-fcontact-item a,
.llm-fcontact-item p {
  font-size: 0.95rem;
  color: var(--dark);
  text-decoration: none;
  line-height: 1.5;
  transition: var(--transition);
  word-break: break-word;
  font-family: var(--font-body);
}
.llm-fcontact-item a:hover {
  color: var(--orange);
}
.llm-fbtn-wa {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--green-wa);
  color: var(--white);
  padding: 10px 20px;
  border-radius: 50px;
  font-size: 0.9rem;
  font-weight: 600;
  margin-top: 0.5rem;
  transition: var(--transition);
  font-family: var(--font-ui);
}
.llm-fbtn-wa:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 15px rgba(37, 211, 102, 0.3);
  color: var(--white);
}

.llm-fmenu li {
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}
.llm-fmenu li:last-child {
  border-bottom: none;
}
.llm-fmenu a {
  display: block;
  padding: 0.8rem 0;
  font-size: 0.9rem;
  color: var(--dark);
  transition: var(--transition);
  font-family: var(--font-body);
}
.llm-fmenu a:hover {
  color: var(--mint-dark);
  padding-left: 5px;
}

.llm-fcard {
  background: var(--white);
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 10px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.03);
}
.llm-fcard--transparent {
  background: rgba(0, 0, 0, 0.04);
  box-shadow: none;
}
.llm-fcard__head {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--mint-dark);
  margin-bottom: 4px;
  display: block;
}
.llm-fcard__body {
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--dark);
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-primary);
}
.llm-fdot {
  display: inline-block;
  width: 8px;
  height: 8px;
  background: var(--green-wa);
  border-radius: 50%;
  flex-shrink: 0;
}

.llm-footer__bottom {
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  padding: 1.5rem 0;
}
.llm-footer__bottom-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: 0.8rem;
  color: var(--mint-dark);
  text-align: center;
  font-family: var(--font-body);
}
.llm-flegal {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
  justify-content: center;
}
.llm-flegal a {
  color: var(--mint-dark);
  transition: var(--transition);
}
.llm-flegal a:hover {
  color: var(--orange);
}

@media (max-width: 768px) {
  .llm-footer__top-inner {
    flex-direction: column;
    text-align: center;
  }
  .llm-footer__bottom-inner {
    flex-direction: column;
  }
}

/* ==========================================================================
   WA FLOAT BUTTON
   ========================================================================== */
.llm-wa-float {
  position: fixed;
  bottom: clamp(20px, 4vw, 30px);
  right: clamp(20px, 4vw, 30px);
  width: clamp(50px, 8vw, 60px);
  height: clamp(50px, 8vw, 60px);
  background-color: var(--green-wa);
  color: var(--white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(30px, 5vw, 35px);
  z-index: 9999;
  box-shadow: 0 4px 15px rgba(37, 211, 102, 0.4);
  text-decoration: none;
  animation: wa-bounce 3s ease-in-out infinite;
}
.llm-wa-float::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background-color: var(--green-wa);
  z-index: -1;
  animation: wa-pulse 2s infinite;
}
.llm-wa-float:hover {
  animation-play-state: paused;
  background-color: #1da851;
  color: var(--white);
}
@keyframes wa-bounce {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}
@keyframes wa-pulse {
  0% {
    transform: scale(1);
    opacity: 0.8;
  }
  100% {
    transform: scale(1.6);
    opacity: 0;
  }
}

/* ==========================================================================
   FRONT PAGE: HERO SECTION (Splide BG)
   ========================================================================== */
.hm-hero {
  position: relative;
  height: 100vh;
  min-height: 600px;
  max-height: 900px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background-color: var(--dark);
}
.hm-hero__bg-wrap {
  position: absolute !important;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.splide__track,
.splide__list,
.splide__slide {
  height: 100%;
}
.hm-hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.05);
}
.hm-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(
    105deg,
    rgba(15, 35, 30, 0.92) 0%,
    rgba(15, 35, 30, 0.55) 45%,
    rgba(15, 35, 30, 0.1) 100%
  );
}
.hm-hero__content {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 850px;
  margin: 0 auto 0 0;
  padding: 0 clamp(1rem, 5vw, 5%);
  opacity: 0;
  animation: fadeUpHero 1s ease-out 0.3s forwards;
}
.hm-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: clamp(0.7rem, 2vw, 0.8rem);
  font-weight: 600;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--mint);
  margin-bottom: 1.5rem;
  background: rgba(125, 191, 178, 0.15);
  padding: 6px 14px;
  border-radius: 50px;
  border: 1px solid rgba(125, 191, 178, 0.2);
}
/* UX/UI: Títulos Gigantes en Impact */
.hm-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 6vw, 5.2rem);
  font-weight: 400;
  color: var(--white);
  line-height: 1.05;
  letter-spacing: 1px;
  margin-bottom: 1.5rem;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
  text-transform: uppercase;
}
.hm-hero__title em {
  color: var(--mint-lt);
  font-style: normal;
}
.hm-hero__desc {
  font-family: var(--font-body);
  font-size: clamp(1rem, 2vw, 1.15rem);
  font-weight: 300;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.75;
  margin-bottom: 2.5rem;
  max-width: 620px;
}
.hm-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem;
}

@keyframes fadeUpHero {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 768px) {
  .hm-hero {
    align-items: flex-end;
    padding-bottom: 7rem;
  }
  .hm-hero__overlay {
    background: linear-gradient(
      0deg,
      rgba(15, 35, 30, 0.95) 0%,
      rgba(15, 35, 30, 0.5) 60%,
      transparent 100%
    );
  }
  .hm-hero__actions {
    flex-direction: column;
    width: 100%;
  }
  .hm-hero__actions .llm-btn {
    width: 100%;
    justify-content: center;
  }
}

/* ==========================================================================
   FRONT PAGE: SECCIÓN ESTADÍSTICAS (TRUST BAR)
   ========================================================================== */
.hm-stats {
  background-color: var(--orange);
  color: var(--white);
  position: relative;
  z-index: 10;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}
.hm-stats__inner {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  max-width: var(--container);
  margin: 0 auto;
}
.hm-stat {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1rem, 2vw, 2rem);
  border-right: 1px solid rgba(255, 255, 255, 0.25);
  opacity: 0;
  animation: fadeUpStat 0.6s ease-out forwards;
  transition: background-color 0.3s ease;
}
.hm-stat:hover {
  background-color: rgba(255, 255, 255, 0.05);
}
.hm-stat:last-child {
  border-right: none;
}
.hm-stat:nth-child(1) {
  animation-delay: 0.1s;
}
.hm-stat:nth-child(2) {
  animation-delay: 0.2s;
}
.hm-stat:nth-child(3) {
  animation-delay: 0.3s;
}
.hm-stat:nth-child(4) {
  animation-delay: 0.4s;
}

.hm-stat__icon-wrap {
  width: clamp(40px, 5vw, 52px);
  height: clamp(40px, 5vw, 52px);
  min-width: clamp(40px, 5vw, 52px);
  background: rgba(255, 255, 255, 0.25);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.hm-stat:hover .hm-stat__icon-wrap {
  transform: scale(1.1) rotate(5deg);
}
.hm-stat__icon-wrap i {
  font-size: clamp(1rem, 2vw, 1.4rem);
  color: var(--white);
}
.hm-stat__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
/* UX/UI: Números grandes en Impact */
.hm-stat__num {
  font-family: var(--font-heading);
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  font-weight: 400;
  line-height: 1;
  margin-bottom: 0.3rem;
  display: flex;
  align-items: center;
  gap: 8px;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.hm-stat__emoji {
  font-size: clamp(1.2rem, 2vw, 1.6rem);
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
}
.hm-stat__label {
  font-size: clamp(0.75rem, 1.5vw, 0.85rem);
  font-weight: 400;
  color: rgba(255, 255, 255, 0.95);
  line-height: 1.4;
  font-family: var(--font-body);
}

@keyframes fadeUpStat {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 768px) {
  .hm-stat {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.25);
  }
  .hm-stat:last-child {
    border-bottom: none;
  }
}

/* ==========================================================================
   FRONT PAGE: DESTINOS (BENTO BOX GRID)
   ========================================================================== */
.hm-destinations {
  padding: clamp(3rem, 6vw, 5rem) 20px;
  max-width: var(--container);
  margin: 0 auto;
}
.hm-section-header {
  margin-bottom: clamp(2rem, 4vw, 3rem);
  text-align: center;
}
.hm-section-eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--mint-dark);
  margin-bottom: 0.8rem;
}
/* UX/UI: Impact para títulos de secciones */
.hm-section-title {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 400;
  color: var(--dark);
  line-height: 1.1;
  letter-spacing: 1px;
  margin: 0;
  text-transform: uppercase;
}
.hm-section-title em {
  font-style: normal;
  color: var(--orange);
}

.hm-dest-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  grid-auto-rows: minmax(200px, 240px);
  gap: 1.2rem;
}
.hm-dest-card {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  text-decoration: none;
  background-color: var(--dark);
  transform: translateZ(0);
}

@media (min-width: 1025px) {
  .hm-dest-grid {
    grid-template-columns: repeat(4, 1fr);
  }
  .hm-dest-card--0 {
    grid-column: span 2;
    grid-row: span 2;
  }
}
@media (min-width: 601px) and (max-width: 1024px) {
  .hm-dest-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .hm-dest-card--0 {
    grid-column: span 2;
    grid-row: span 1;
  }
}

.hm-dest-card__img-wrap {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.hm-dest-card__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: transform;
}
.hm-dest-card:hover .hm-dest-card__img-wrap img {
  transform: scale(1.08);
}
.hm-dest-card__gradient {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(
    to top,
    rgba(26, 46, 43, 0.9) 0%,
    rgba(26, 46, 43, 0.4) 40%,
    transparent 80%
  );
  pointer-events: none;
}
.hm-dest-card__content {
  position: relative;
  z-index: 3;
  padding: clamp(1rem, 3vw, 1.8rem);
  width: 100%;
}
.hm-dest-card__badge {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--mint-lt);
  margin-bottom: 0.5rem;
  border-radius: 4px;
  padding: 2px 6px;
  background: rgba(125, 191, 178, 0.2);
  backdrop-filter: blur(4px);
  border: 1px solid rgba(125, 191, 178, 0.3);
}
/* UX/UI: Título de Bento Box en Impact */
.hm-dest-card__title {
  font-family: var(--font-heading);
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 400;
  color: var(--white);
  line-height: 1.1;
  margin: 0 0 0.3rem 0;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
  transition: color 0.3s;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.hm-dest-card--0 .hm-dest-card__title {
  font-size: clamp(2rem, 4vw, 3rem);
}
.hm-dest-card:hover .hm-dest-card__title {
  color: var(--mint-lt);
}
.hm-dest-card__count {
  display: block;
  font-size: 0.8rem;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.7);
  font-family: var(--font-body);
}

/* ==========================================================================
   COMPONENTE: TARJETA DE TOUR (Card)
   ========================================================================== */
.llm-tour-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 16px;
  transition: var(--transition);
  transform: translateZ(0);
  height: 100%;
}
.llm-tour-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08);
  border-color: rgba(125, 191, 178, 0.4);
}
.llm-tour-card__header {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 16px 16px 0 0;
}
.llm-tour-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
  will-change: transform;
}
.llm-tour-card:hover .llm-tour-card__img {
  transform: scale(1.08);
}
.llm-tour-card__badge-top {
  position: absolute;
  top: 16px;
  left: 16px;
  background: var(--orange);
  color: var(--white);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 8px;
  z-index: 2;
  box-shadow: 0 4px 12px rgba(232, 130, 58, 0.4);
}
.llm-tour-card__price-badge {
  position: absolute;
  bottom: 16px;
  right: 16px;
  background: var(--dark);
  color: var(--white);
  padding: 8px 14px;
  border-radius: 10px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
}
.llm-tour-card__price-label {
  font-size: 0.6rem;
  font-weight: 500;
  color: var(--mint-lt);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  line-height: 1;
  margin-bottom: 2px;
}
.llm-tour-card__price-val {
  font-family: var(--font-primary);
  font-size: 1.1rem;
  font-weight: 800;
  line-height: 1;
}
.llm-tour-card__body {
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.llm-tour-card__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 0.8rem;
  color: var(--muted);
  margin-bottom: 0.8rem;
  font-family: var(--font-body);
}
.llm-tour-card__meta-item i {
  margin-right: 4px;
}
.llm-tour-card__meta-dot {
  width: 4px;
  height: 4px;
  background: var(--mint);
  border-radius: 50%;
}
.llm-tour-card__title {
  font-family: var(--font-primary);
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--dark);
  margin: 0 0 0.8rem 0;
}
.llm-tour-card__title a {
  color: inherit;
  text-decoration: none;
}
.llm-tour-card__title a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 5;
}
.llm-tour-card__excerpt {
  font-family: var(--font-body);
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--muted);
  font-weight: 300;
  margin: 0 0 1.5rem 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.llm-tour-card__footer {
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}
.llm-tour-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--mint-dark);
  transition: gap 0.2s ease;
}
.llm-tour-card:hover .llm-tour-card__cta {
  gap: 10px;
  color: var(--mint);
}

/* ==========================================================================
   FRONT PAGE: TOURS POPULARES (Splide Section)
   ========================================================================== */
.hm-popular-tours {
  padding: clamp(3rem, 6vw, 6rem) 0;
  background-color: var(--mint-bg);
}
.hm-popular-tours .hm-section-header {
  text-align: left;
}
.hm-no-results {
  color: var(--muted);
  font-size: 0.95rem;
  font-family: var(--font-body);
}
.hm-popular-slider {
  padding-bottom: 3rem;
}
.hm-popular-slider .splide__arrow {
  background: var(--white);
  border: 1px solid var(--border);
  width: 44px;
  height: 44px;
  opacity: 1;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  transition: var(--transition);
}
.hm-popular-slider .splide__arrow svg {
  fill: var(--mint-dark);
  height: 1.2rem;
  width: 1.2rem;
}
.hm-popular-slider .splide__arrow:hover {
  background: var(--mint);
  border-color: var(--mint);
  transform: translateY(-50%) scale(1.05);
}
.hm-popular-slider .splide__arrow:hover svg {
  fill: var(--white);
}
.hm-popular-slider .splide__pagination {
  bottom: 0;
}
.hm-popular-slider .splide__pagination__page {
  background: rgba(125, 191, 178, 0.4);
  width: 10px;
  height: 10px;
  margin: 3px 6px;
  transition: var(--transition);
}
.hm-popular-slider .splide__pagination__page.is-active {
  background: var(--mint);
  transform: scale(1.3);
  border-radius: 5px;
  width: 20px;
}

/* ==========================================================================
   COMPONENTE: TARJETA DE TAXONOMÍA (Tipos de Tour / Destinos)
   ========================================================================== */
.llm-tax-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 3 / 4;
  background-color: var(--dark);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  transition: var(--transition);
  transform: translateZ(0);
}
.llm-tax-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.2);
}
.llm-tax-card__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.llm-tax-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: transform;
}
.llm-tax-card:hover .llm-tax-card__img {
  transform: scale(1.08);
}
.llm-tax-card__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(
    to top,
    rgba(15, 35, 30, 0.95) 0%,
    rgba(15, 35, 30, 0.4) 40%,
    transparent 70%
  );
  pointer-events: none;
}
.llm-tax-card__content {
  position: relative;
  z-index: 3;
  padding: clamp(1rem, 3vw, 2rem) clamp(1rem, 3vw, 1.8rem);
  width: 100%;
}
.llm-tax-card__eyebrow {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--orange);
  margin-bottom: 0.5rem;
  transition: color 0.3s ease;
}
/* UX/UI: Impact para títulos de taxonomía */
.llm-tax-card__title {
  font-family: var(--font-heading);
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 400;
  color: var(--white);
  line-height: 1.1;
  margin: 0;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
  transition: color 0.3s;
}
.llm-tax-card__link {
  color: inherit;
  text-decoration: none;
}
.llm-tax-card__link::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 5;
}
.llm-tax-card:hover .llm-tax-card__title {
  color: var(--mint-lt);
}

/* ==========================================================================
   FRONT PAGE: SECCIÓN TIPOS DE TOUR (Feriados)
   ========================================================================== */
.hm-tour-types {
  padding: clamp(3rem, 6vw, 6rem) 0;
  background-color: var(--white);
  position: relative;
  overflow: hidden;
}
.hm-tour-types .hm-section-header {
  text-align: left;
}
.hm-types-slider .splide__track {
  padding: 1rem 0 2.5rem 0;
  margin: -1rem 0 -2.5rem 0;
}
.hm-types-slider .splide__arrow {
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(8px);
  border: 1px solid var(--border);
  width: 48px;
  height: 48px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
  transition: var(--transition);
  z-index: 10;
}
.hm-types-slider .splide__arrow--prev {
  left: -1.5rem;
}
.hm-types-slider .splide__arrow--next {
  right: -1.5rem;
}
.hm-types-slider .splide__arrow svg {
  fill: var(--dark);
  height: 1.2rem;
  width: 1.2rem;
  transition: fill 0.3s ease;
}
.hm-types-slider .splide__arrow:hover {
  background: var(--mint);
  border-color: var(--mint);
  box-shadow: 0 8px 25px rgba(125, 191, 178, 0.4);
  transform: translateY(-50%) scale(1.08);
}
.hm-types-slider .splide__arrow:hover svg {
  fill: var(--white);
}
.hm-types-slider .splide__arrow:focus-visible {
  outline: 3px solid var(--orange);
  outline-offset: 2px;
}

@media (max-width: 1024px) {
  .hm-types-slider .splide__arrow--prev {
    left: 0.5rem;
  }
  .hm-types-slider .splide__arrow--next {
    right: 0.5rem;
  }
}

/* ==========================================================================
   FRONT PAGE: NUESTROS VALORES (Grid Section)
   ========================================================================== */
.hm-values {
  padding: clamp(3rem, 6vw, 6rem) 0;
  background-color: var(--dark);
  color: var(--white);
}
.hm-values .hm-section-title {
  color: var(--white);
}
.hm-values .hm-section-title em {
  color: var(--orange);
  font-style: normal;
} /* Impact no suele llevar italics */
.hm-values-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
  margin-top: clamp(2rem, 5vw, 3.5rem);
}
.hm-value-card {
  background-color: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 16px;
  padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1.2rem, 3vw, 2rem);
  display: flex;
  flex-direction: column;
  transition: var(--transition);
  transform: translateZ(0);
}
.hm-value-card:hover {
  background-color: rgba(255, 255, 255, 0.05);
  border-color: rgba(125, 191, 178, 0.3);
  transform: translateY(-5px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.3);
}
.hm-value-card__icon {
  width: 54px;
  height: 54px;
  background-color: rgba(125, 191, 178, 0.1);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.5rem;
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.hm-value-card__icon i {
  font-size: 1.3rem;
  color: var(--mint);
  transition: color 0.3s ease;
}
.hm-value-card:hover .hm-value-card__icon {
  transform: scale(1.1) rotate(5deg);
  background-color: rgba(125, 191, 178, 0.15);
}
.hm-value-card__title {
  font-family: var(--font-primary);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--white);
  line-height: 1.3;
  margin: 0 0 1rem 0;
  letter-spacing: -0.01em;
}
.hm-value-card__desc {
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.7;
  margin: 0;
}

/* ==========================================================================
   FRONT PAGE: CÓMO FUNCIONA (Responsive Timeline)
   ========================================================================== */
.hm-how {
  padding: clamp(3rem, 6vw, 6rem) 0;
  background-color: var(--white);
  overflow: hidden;
}

/* ── Corrección de Clase: Doble guion bajo (__grid) ── */
.hm-how__grid {
  display: grid;
  /* Fuerza 3 columnas exactas en escritorio para distribuir el Timeline */
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
}

/* Línea conectora horizontal (Solo Desktop) */
@media (min-width: 769px) {
  .hm-how__grid::before {
    content: "";
    position: absolute;
    top: 40px; /* Alineado exactamente a la mitad de los círculos (80px / 2) */
    /* UX: Empieza y termina exactamente en el centro de la 1ra y 3ra columna (16.66% = 100/6) */
    left: 16.66%;
    right: 16.66%;
    height: 2px;
    background: var(--mint-md);
    z-index: 1;
  }
}

.hm-how__step {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 0 1.5rem;
  transition: transform 0.3s ease;
}

.hm-how__step:hover {
  transform: translateY(-5px);
}

.hm-how__num-wrap {
  width: 80px;
  height: 80px;
  margin: 0 auto 1.5rem;
  background: var(--white);
  border: 2px solid var(--mint-lt);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 6px rgba(125, 191, 178, 0.08);
  transition: var(--transition);
}

/* UX/UI: Tipografía Impact para los números */
.hm-how__num {
  font-family: var(--font-heading);
  font-size: 2.2rem;
  font-weight: 400;
  color: var(--mint-dark);
  transition: color 0.3s ease;
  margin-top: 4px; /* Ajuste óptico por la métrica de Impact */
}

/* Micro-interacción Hover */
.hm-how__step:hover .hm-how__num-wrap {
  border-color: var(--mint);
  background: var(--mint);
  box-shadow:
    0 8px 20px rgba(125, 191, 178, 0.3),
    0 0 0 6px rgba(125, 191, 178, 0.15);
}

.hm-how__step:hover .hm-how__num {
  color: var(--white);
}

.hm-how__step-title {
  font-family: var(--font-primary);
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--dark);
  margin: 0 0 0.8rem 0;
}

.hm-how__step-desc {
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--text);
  line-height: 1.6;
  font-weight: 300;
  margin: 0;
}

/* ── Mobile-First Override: Conversión a Timeline Vertical ── */
@media (max-width: 768px) {
  .hm-how__grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  /* La línea ahora corre verticalmente de arriba abajo */
  .hm-how__grid::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 39px; /* Centrado respecto a la mitad del círculo (80px/2 - 1px de grosor) */
    width: 2px;
    height: 100%;
    background: var(--mint-md);
    z-index: 1;
  }

  .hm-how__step {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    text-align: left;
    padding: 0 0 0 110px; /* Genera el espacio para el círculo absoluto */
    min-height: 80px; /* Igual a la altura del círculo */
  }

  .hm-how__num-wrap {
    position: absolute;
    left: 0;
    top: 0;
    margin: 0;
    background: var(
      --white
    ); /* Previene que la línea pase por encima del número */
  }
}

/* ==========================================================================
   FRONT PAGE: OPINIONES REALES (Trustindex Wrapper)
   ========================================================================== */
.hm-reviews {
  padding: clamp(3rem, 6vw, 6rem) 0;
  background-color: #f8faf9;
  overflow: hidden;
}
.hm-reviews-wrapper {
  display: flex;
  flex-direction: column;
  gap: clamp(3rem, 5vw, 5rem);
}
.hm-review-widget-container {
  background: var(--white);
  padding: clamp(1.5rem, 4vw, 3rem) clamp(1rem, 3vw, 2rem);
  border-radius: 20px;
  border: 1px solid var(--border);
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.03);
  position: relative;
  overflow: visible;
}
.hm-review-widget--tripadvisor::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background-color: #34e0a1;
}
.hm-review-widget--google::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(
    90deg,
    #4285f4 25%,
    #ea4335 25% 50%,
    #fbbc05 50% 75%,
    #34a853 75%
  );
}
.hm-review-widget-container .ti-widget {
  margin: 0 auto !important;
}

/* ==========================================================================
   FRONT PAGE: TRANSPARENCIA Y DOCUMENTOS
   ========================================================================== */
.hm-docs {
  padding: clamp(3rem, 6vw, 6rem) 0;
  background-color: var(--white);
}
.hm-docs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.5rem;
}
.hm-doc-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  transition: var(--transition);
  transform: translateZ(0);
}
.hm-doc-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}
.hm-doc-card__link {
  display: block;
  position: relative;
  border-bottom: 1px solid var(--border);
  background-color: var(--mint-bg);
}
.hm-doc-card__img-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1.414;
  overflow: hidden;
}
.hm-doc-card__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 1rem;
  transition: transform 0.4s ease;
}
.hm-doc-card__overlay {
  position: absolute;
  inset: 0;
  background: rgba(26, 46, 43, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.hm-doc-card__overlay i {
  color: var(--white);
  font-size: 2rem;
  transform: scale(0.5);
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.hm-doc-card:hover .hm-doc-card__img-wrap img {
  transform: scale(1.05);
}
.hm-doc-card:hover .hm-doc-card__overlay {
  opacity: 1;
}
.hm-doc-card:hover .hm-doc-card__overlay i {
  transform: scale(1);
}
.hm-doc-card__content {
  padding: 1.2rem;
  text-align: center;
}
.hm-doc-card__title {
  font-family: var(--font-primary);
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--dark);
  margin: 0 0 0.4rem 0;
}
.hm-doc-card__desc {
  font-family: var(--font-body);
  font-size: 0.75rem;
  color: var(--muted);
  margin: 0;
  line-height: 1.4;
}

@media (max-width: 600px) {
  .hm-docs-grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 1rem;
    gap: 1rem;
  }
  .hm-docs-grid::-webkit-scrollbar {
    display: none;
  }
  .hm-doc-card {
    min-width: 75%;
    scroll-snap-align: center;
    flex-shrink: 0;
  }
}

/* ==========================================================================
   FRONT PAGE: ASOCIACIONES (Partner Logos)
   ========================================================================== */
.hm-partners {
  padding: clamp(2.5rem, 5vw, 4.5rem) 0;
  background-color: var(--cream);
  border-top: 1px solid var(--border);
}
.hm-partners .hm-section-eyebrow {
  margin-bottom: 3rem;
  color: var(--muted);
  text-align: center;
}
.hm-partners__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: clamp(1rem, 3vw, 2rem) clamp(1rem, 5vw, 4rem);
  list-style: none;
  padding: 0;
  margin: 0;
}
.hm-partners__item a {
  display: block;
}
.hm-partners__item img {
  max-width: clamp(100px, 15vw, 140px);
  height: auto;
  max-height: clamp(50px, 8vw, 70px);
  object-fit: contain;
  filter: grayscale(100%) opacity(0.5);
  transition: var(--transition);
  will-change: filter, transform;
}
.hm-partners__item:hover img {
  filter: grayscale(0%) opacity(1);
  transform: scale(1.08);
}

/* ==========================================================================
   FRONT PAGE: CALL TO ACTION (CTA Final)
   ========================================================================== */
.hm-cta {
  background: radial-gradient(
    circle at center,
    var(--dark-2) 0%,
    var(--dark) 100%
  );
  padding: clamp(4rem, 8vw, 7rem) 1rem;
  text-align: center;
  color: var(--white);
  position: relative;
  overflow: hidden;
}
.hm-cta__inner {
  max-width: 800px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.hm-cta__eyebrow {
  color: var(--mint);
  margin-bottom: 1.5rem;
  display: block;
  letter-spacing: 0.25em;
  font-size: clamp(0.7rem, 2vw, 0.8rem);
  font-weight: 700;
  text-transform: uppercase;
}
/* UX/UI: Impact */
.hm-cta__title {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  font-weight: 400;
  line-height: 1.1;
  margin: 0 0 1.5rem 0;
  letter-spacing: 1px;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
  text-transform: uppercase;
}
.hm-cta__desc {
  font-family: var(--font-body);
  font-size: clamp(0.95rem, 2vw, 1.05rem);
  font-weight: 300;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.6;
  margin: 0 0 2.5rem 0;
  max-width: 600px;
}
.hm-cta__actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  flex-wrap: wrap;
  width: 100%;
}
.hm-cta__actions .llm-btn--outline {
  border-color: rgba(255, 255, 255, 0.4);
}
.hm-cta__actions .llm-btn--outline:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: var(--white);
  color: var(--white);
}

@media (max-width: 480px) {
  .hm-cta__actions .llm-btn {
    width: 100%;
    justify-content: center;
  }
}

/* ==========================================================================
   PAGE ABOUT: HERO SECTION
   ========================================================================== */
.ab-hero {
  position: relative;
  height: clamp(480px, 60vh, 700px);
  display: flex;
  align-items: flex-end;
  padding-bottom: clamp(3rem, 6vw, 4rem);
  overflow: hidden;
  background-color: var(--dark);
}
.ab-hero__bg-wrap {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.ab-hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
  animation: zoomOutHero 12s ease-out forwards;
  will-change: transform;
}
.ab-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(
    to top right,
    rgba(26, 46, 43, 0.95) 0%,
    rgba(26, 46, 43, 0.5) 45%,
    transparent 80%
  );
}
.ab-hero__content {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 800px;
  margin: 0 auto 0 0;
  opacity: 0;
  animation: fadeUpHero 1s ease-out 0.2s forwards;
}
.ab-hero__eyebrow-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 1.2rem;
}
.ab-hero__line {
  display: inline-block;
  width: 40px;
  height: 1px;
  background-color: var(--mint);
}
.ab-hero__eyebrow {
  font-size: clamp(0.65rem, 2vw, 0.75rem);
  font-weight: 600;
  letter-spacing: 0.25em;
  color: rgba(255, 255, 255, 0.8);
  text-transform: uppercase;
}
/* UX/UI: Impact */
.ab-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 5vw + 1rem, 4.8rem);
  font-weight: 400;
  color: var(--white);
  line-height: 1.1;
  letter-spacing: 1px;
  margin: 0;
  text-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
  text-transform: uppercase;
}
.ab-hero__title em {
  color: var(--mint);
  font-style: normal;
}

@media (max-width: 768px) {
  .ab-hero__overlay {
    background: linear-gradient(
      to top,
      rgba(26, 46, 43, 0.95) 0%,
      rgba(26, 46, 43, 0.5) 50%,
      transparent 100%
    );
  }
}

@keyframes zoomOutHero {
  from {
    transform: scale(1.1);
  }
  to {
    transform: scale(1);
  }
}

/* ==========================================================================
   PAGE ABOUT: SECCIÓN ESTADÍSTICAS (Logos)
   ========================================================================== */
.ab-stats {
  background-color: var(--orange);
  color: var(--white);
  position: relative;
  z-index: 10;
}
.ab-stats__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  text-align: center;
}
.ab-stat-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: clamp(2rem, 4vw, 3rem) 1.5rem;
  border-right: 1px solid rgba(255, 255, 255, 0.25);
  border-bottom: 1px solid rgba(255, 255, 255, 0.25);
  transition: var(--transition);
}
.ab-stat-item:hover {
  background-color: rgba(255, 255, 255, 0.05);
  transform: translateY(-5px);
}

@media (min-width: 769px) {
  .ab-stat-item {
    border-bottom: none;
  }
  .ab-stat-item:last-child {
    border-right: none;
  }
}
@media (max-width: 768px) {
  .ab-stat-item:nth-child(even) {
    border-right: none;
  }
  .ab-stat-item:nth-last-child(-n + 2) {
    border-bottom: none;
  }
}
@media (max-width: 480px) {
  .ab-stat-item {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.25);
  }
  .ab-stat-item:last-child {
    border-bottom: none;
  }
}

.ab-stat-item__icon {
  font-size: clamp(1.8rem, 3vw, 2.2rem);
  margin-bottom: 1rem;
  color: rgba(255, 255, 255, 0.9);
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.15));
}
/* UX/UI: Impact */
.ab-stat-item__number {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 5vw, 3.8rem);
  font-weight: 400;
  line-height: 1;
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  letter-spacing: 1px;
}
.ab-stat-item__star {
  color: #ffd700;
  font-size: clamp(1.5rem, 3vw, 2rem);
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
}
.ab-stat-item__label {
  font-family: var(--font-body);
  font-size: clamp(0.75rem, 1.5vw, 0.9rem);
  font-weight: 500;
  color: rgba(255, 255, 255, 0.95);
  line-height: 1.4;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* ==========================================================================
   PAGE ABOUT: INTRODUCCIÓN (Quiénes Somos)
   ========================================================================== */
.ab-intro {
  padding: clamp(3rem, 6vw, 5rem) 20px;
}
.ab-intro__breadcrumbs {
  margin-bottom: clamp(2rem, 4vw, 3rem);
  font-size: 0.85rem;
  color: var(--muted);
}
.ab-intro__breadcrumbs a {
  color: var(--mint-dark);
  text-decoration: none;
  transition: var(--transition);
}
.ab-intro__breadcrumbs a:hover {
  color: var(--orange);
  text-decoration: underline;
}

.ab-intro__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(3rem, 6vw, 5rem);
  align-items: center;
}

.ab-intro__visual {
  position: relative;
  max-width: 500px;
  margin: 0 auto;
}
.ab-intro__img-mask {
  border-radius: 24px;
  background-color: var(--mint-bg);
  overflow: hidden;
  aspect-ratio: 1 / 1;
}
.ab-intro__img-mask img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.ab-intro__badge {
  position: absolute;
  bottom: -1.5rem;
  right: -1.5rem;
  background-color: var(--dark);
  padding: clamp(1rem, 3vw, 1.5rem) clamp(1.5rem, 4vw, 2rem);
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 5;
  transition: var(--transition);
  transform: translateZ(0);
}
.ab-intro__badge:hover {
  transform: translateY(-5px);
}
.ab-intro__badge-year {
  font-family: var(--font-heading);
  color: var(--mint);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 400;
  line-height: 1;
  margin-bottom: 0.3rem;
  letter-spacing: 1px;
}
.ab-intro__badge-text {
  color: var(--white);
  font-size: clamp(0.55rem, 1.5vw, 0.65rem);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

@media (max-width: 768px) {
  .ab-intro__visual {
    padding-right: 1.5rem;
  }
  .ab-intro__badge {
    right: 0;
  }
}

.ab-intro__eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.25em;
  color: var(--muted);
  text-transform: uppercase;
  margin-bottom: 1rem;
}
/* UX/UI: Impact */
.ab-intro__title {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 400;
  color: var(--dark);
  line-height: 1.15;
  letter-spacing: 1px;
  margin: 0 0 1.5rem 0;
  text-transform: uppercase;
}
.ab-intro__title em {
  color: var(--orange);
  font-style: normal;
}
.ab-intro__divider {
  width: 60px;
  height: 3px;
  background-color: var(--mint);
  margin-bottom: 2rem;
  border-radius: 2px;
}
.ab-intro__text {
  font-family: var(--font-body);
  font-size: clamp(0.95rem, 2vw, 1rem);
  line-height: 1.7;
  color: var(--text);
  font-weight: 300;
}
.ab-intro__text p {
  margin-bottom: 1.2rem;
}
.ab-intro__text p:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
   PAGE ABOUT: MISIÓN Y VISIÓN
   ========================================================================== */
.ab-purpose {
  padding: clamp(3rem, 6vw, 6rem) 0;
  background-color: var(--dark);
}
.ab-purpose__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(2rem, 5vw, 3rem);
}

.ab-purpose-card {
  position: relative;
  background-color: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 16px;
  padding: clamp(2rem, 5vw, 3.5rem) clamp(1.5rem, 4vw, 3rem);
  overflow: hidden;
  transition: var(--transition);
  transform: translateZ(0);
}
.ab-purpose-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2.5rem;
  bottom: 2.5rem;
  width: 4px;
  background-color: var(--mint);
  border-radius: 0 4px 4px 0;
  transition: var(--transition);
}
.ab-purpose-card:hover {
  transform: translateY(-6px);
  background-color: rgba(255, 255, 255, 0.06);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25);
}
.ab-purpose-card:hover::before {
  top: 0;
  bottom: 0;
  border-radius: 0;
}

.ab-purpose-card__icon {
  width: 50px;
  height: 50px;
  background-color: rgba(125, 191, 178, 0.15);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 2rem;
  transition: var(--transition);
}
.ab-purpose-card__icon i {
  font-size: 1.2rem;
  color: var(--mint);
}
.ab-purpose-card:hover .ab-purpose-card__icon {
  transform: scale(1.1);
  background-color: rgba(125, 191, 178, 0.25);
}

.ab-purpose-card__eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--mint);
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.ab-purpose-card__title {
  font-family: var(--font-primary);
  font-size: clamp(1.4rem, 3vw, 2.2rem);
  font-weight: 800;
  color: var(--white);
  line-height: 1.2;
  margin: 0 0 1.5rem 0;
  letter-spacing: -0.01em;
}
.ab-purpose-card__text {
  font-family: var(--font-body);
  font-size: clamp(0.9rem, 2vw, 0.95rem);
  line-height: 1.7;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.75);
  margin: 0;
}

/* ==========================================================================
   PAGE ABOUT: NUESTROS VALORES (Light UI)
   ========================================================================== */
.ab-values {
  padding: clamp(3rem, 6vw, 6rem) 0;
  background-color: var(--mint-bg);
}
.ab-section-header {
  margin-bottom: clamp(2rem, 5vw, 4rem);
}
.ab-section-eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.25em;
  color: var(--mint);
  text-transform: uppercase;
  margin-bottom: 0.8rem;
}
/* UX/UI: Impact */
.ab-section-title {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 400;
  color: var(--dark);
  letter-spacing: 1px;
  margin: 0;
  text-transform: uppercase;
}

.ab-values__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: clamp(1.2rem, 3vw, 2rem);
  list-style: none;
  padding: 0;
  margin: 0;
}
.ab-value-card {
  background-color: var(--white);
  border: 1px solid rgba(0, 0, 0, 0.03);
  border-radius: 16px;
  padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1.2rem, 3vw, 2rem);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02);
  transition: var(--transition);
  transform: translateZ(0);
}
.ab-value-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.06);
}

.ab-value-card__icon {
  width: 48px;
  height: 48px;
  background-color: rgba(125, 191, 178, 0.15);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.5rem;
  transition: var(--transition);
}
.ab-value-card__icon i {
  font-size: 1.2rem;
  color: var(--mint-dark);
}
.ab-value-card:hover .ab-value-card__icon {
  transform: scale(1.1);
  background-color: rgba(125, 191, 178, 0.25);
}
.ab-value-card__title {
  font-family: var(--font-primary);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--dark);
  margin: 0 0 1rem 0;
}
.ab-value-card__text {
  font-family: var(--font-body);
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--text);
  margin: 0;
  font-weight: 300;
}

/* ==========================================================================
   PAGE ABOUT: NUESTRO EQUIPO (Categorizado)
   ========================================================================== */
.ab-team {
  padding: clamp(3rem, 6vw, 6rem) 0;
  background-color: var(--white);
}
.ab-team .ab-section-header {
  margin-bottom: clamp(3rem, 6vw, 5rem);
}
.ab-team-dept {
  margin-bottom: clamp(3rem, 6vw, 4.5rem);
}
.ab-team-dept:last-child {
  margin-bottom: 0;
}

.ab-team-dept__header {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 2.5rem;
  flex-wrap: wrap;
}
.ab-team-dept__title {
  font-family: var(--font-primary);
  font-size: clamp(1.1rem, 3vw, 1.3rem);
  font-weight: 700;
  color: var(--dark);
  margin: 0;
}
.ab-team-dept__line {
  flex-grow: 1;
  height: 1px;
  background-color: var(--border);
  position: relative;
  min-width: 50px;
}
.ab-team-dept__line::before {
  content: "";
  position: absolute;
  left: 0;
  top: -2px;
  width: 30px;
  height: 5px;
  background-color: var(--mint);
  border-radius: 4px;
}

.ab-team__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: clamp(1.2rem, 3vw, 2rem);
}
.ab-team-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
  transition: var(--transition);
  transform: translateZ(0);
  max-width: 100%;
}
.ab-team-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.06);
}

.ab-team-card__figure {
  margin: 0;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.ab-team-card__img-wrap {
  background-color: #e8ebea;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  position: relative;
}
.ab-team-card__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  transition: transform 0.5s ease;
}
.ab-team-card:hover .ab-team-card__img-wrap img {
  transform: scale(1.05);
}

.ab-team-card__info {
  padding: 1.5rem;
  background-color: var(--white);
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
.ab-team-card__name {
  font-family: var(--font-primary);
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--dark);
  margin: 0 0 0.5rem 0;
  letter-spacing: -0.01em;
}
.ab-team-card__role {
  font-family: var(--font-body);
  font-size: 0.85rem;
  color: var(--muted);
  font-weight: 400;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
.ab-team-card__role::before {
  content: "";
  display: block;
  width: 16px;
  height: 2px;
  background-color: var(--orange);
  border-radius: 1px;
}

/* ==========================================================================
   PAGE ESSNA: HERO SECTION
   ========================================================================== */
.es-hero {
  position: relative;
  min-height: clamp(350px, 50vh, 500px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background-color: var(--dark);
  overflow: hidden;
  padding-bottom: 0;
}
.es-hero__bg-wrap {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.es-hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}
.es-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(
    to top right,
    rgba(15, 35, 30, 0.95) 0%,
    rgba(15, 35, 30, 0.6) 50%,
    transparent 100%
  );
}

.es-hero__content {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 900px;
  margin: 0 auto 0 0;
  padding-bottom: clamp(2rem, 4vw, 3.5rem);
  padding-top: 2rem;
}
.es-hero__breadcrumbs {
  margin-bottom: 1.5rem;
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.6);
}
.es-hero__breadcrumbs a {
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  transition: var(--transition);
}
.es-hero__breadcrumbs a:hover {
  color: var(--mint-lt);
}

.es-hero__eyebrow-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 1rem;
}
.es-hero__line {
  display: inline-block;
  width: 35px;
  height: 1px;
  background-color: var(--mint);
}
.es-hero__eyebrow {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.85);
  text-transform: uppercase;
}

/* UX/UI: Impact */
.es-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 5vw, 4.2rem);
  font-weight: 400;
  color: var(--white);
  line-height: 1.15;
  letter-spacing: 1px;
  margin: 0;
  text-shadow: 0 4px 15px rgba(0, 0, 0, 0.5);
  text-transform: uppercase;
}
.es-hero__title em {
  color: var(--mint-lt);
  font-style: normal;
}

/* Barra Legal Inferior */
.es-hero__legal-bar {
  position: relative;
  z-index: 4;
  background-color: rgba(15, 35, 30, 0.75);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding: 1.2rem 0;
  width: 100%;
}
.es-hero__legal-inner {
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
}
.es-hero__legal-inner i {
  color: var(--mint);
  font-size: 1.4rem;
  margin-top: 2px;
}
.es-hero__legal-inner p {
  font-family: var(--font-body);
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.75);
  margin: 0;
  line-height: 1.6;
  font-weight: 300;
}

@media (max-width: 768px) {
  .es-hero__legal-inner {
    flex-direction: column;
    gap: 0.8rem;
  }
  .es-hero__legal-inner i {
    margin-top: 0;
  }
}

/* ==========================================================================
   PAGE ESSNA: COMPROMISO (Grid Section)
   ========================================================================== */
.es-commitment {
  padding: clamp(3rem, 6vw, 7rem) 0;
  background-color: var(--white);
  overflow: hidden;
}
.es-commitment__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(3rem, 6vw, 5rem);
  align-items: center;
}

.es-commitment__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 16px;
  background-color: rgba(220, 53, 69, 0.08);
  border: 1px solid rgba(220, 53, 69, 0.2);
  border-radius: 20px;
  margin-bottom: 1.5rem;
}
.es-commitment__badge i,
.es-commitment__badge span {
  color: #c92a2a;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
/* UX/UI: Impact */
.es-commitment__title {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 400;
  color: var(--dark);
  line-height: 1.15;
  letter-spacing: 1px;
  margin: 0 0 1.5rem 0;
  text-transform: uppercase;
}
.es-commitment__title em {
  color: var(--orange);
  font-style: normal;
}
.es-commitment__divider {
  width: 60px;
  height: 3px;
  background-color: var(--mint);
  margin-bottom: 2rem;
  border-radius: 2px;
}
.es-commitment__text {
  font-family: var(--font-body);
  font-size: clamp(0.95rem, 2vw, 1rem);
  line-height: 1.7;
  color: var(--text);
  font-weight: 300;
}
.es-commitment__text p {
  margin-bottom: 1.2rem;
}
.es-commitment__text p:last-child {
  margin-bottom: 0;
}
.es-commitment__text strong {
  font-weight: 600;
  color: var(--dark);
}

.es-cert-card {
  margin: 0 auto;
  background-color: var(--dark);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.08);
  transform: translateZ(0);
  transition: var(--transition);
  width: 100%;
  max-width: 450px;
}
.es-cert-card:hover {
  transform: translateY(-5px);
}
.es-cert-card__img-wrap {
  background-color: #f4f6f5;
  padding: clamp(1.5rem, 4vw, 3rem);
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.es-cert-card__img-wrap img {
  width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  mix-blend-mode: multiply;
}
.es-cert-card__info {
  padding: 2rem;
  background-color: var(--dark);
}
.es-cert-card__eyebrow {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--mint);
  text-transform: uppercase;
  margin-bottom: 0.8rem;
}
.es-cert-card__title {
  font-family: var(--font-primary);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--white);
  margin: 0 0 0.8rem 0;
}
.es-cert-card__desc {
  font-family: var(--font-body);
  font-size: 0.85rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.75);
  margin: 0;
  font-weight: 300;
}

/* ==========================================================================
   PAGE ESSNA: COMPROMISOS (Políticas)
   ========================================================================== */
.es-policies {
  padding: clamp(3rem, 6vw, 6rem) 0;
  background-color: var(--mint-bg);
}
.es-section-header {
  margin-bottom: clamp(3rem, 5vw, 4rem);
}
.es-section-eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.25em;
  color: var(--mint);
  text-transform: uppercase;
  margin-bottom: 0.8rem;
}
/* UX/UI: Impact */
.es-section-title {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 400;
  color: var(--dark);
  letter-spacing: 1px;
  margin: 0;
  text-transform: uppercase;
}
.es-section-title em {
  color: var(--orange);
  font-style: normal;
}

.es-policies__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
.es-policy-card {
  background-color: var(--white);
  border: 1px solid rgba(0, 0, 0, 0.04);
  border-radius: 16px;
  padding: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 3vw, 2.5rem);
  position: relative;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02);
  display: flex;
  flex-direction: column;
  transition: var(--transition);
  transform: translateZ(0);
}
.es-policy-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.06);
}

/* UX/UI: Números grandes en Impact */
.es-policy-card__num {
  font-family: var(--font-heading);
  font-size: clamp(3.5rem, 6vw, 4.5rem);
  font-weight: 400;
  color: rgba(125, 191, 178, 0.15);
  line-height: 1;
  margin-bottom: 1.2rem;
  display: block;
  transition: color 0.3s ease;
}
.es-policy-card:hover .es-policy-card__num {
  color: rgba(125, 191, 178, 0.35);
}
.es-policy-card__title {
  font-family: var(--font-primary);
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--dark);
  line-height: 1.3;
  margin: 0 0 1.5rem 0;
}

.es-policy-card__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.es-policy-card__list li {
  font-family: var(--font-body);
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--text);
  position: relative;
  padding-left: 1.5rem;
  font-weight: 300;
}
.es-policy-card__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 8px;
  height: 8px;
  background-color: var(--mint-lt);
  border-radius: 50%;
}
.es-policy-card__list strong {
  color: var(--dark);
  font-weight: 700;
}

@media (min-width: 769px) and (max-width: 1024px) {
  .es-policy-card:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    max-width: 50%;
    margin: 0 auto;
  }
}

/* ==========================================================================
   PAGE ESSNA: CÓMO CONTRIBUIR (Dual Cards)
   ========================================================================== */
.es-contribute {
  padding: clamp(3rem, 6vw, 6rem) 0;
  background-color: var(--white);
}
.es-contribute__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(1.5rem, 3vw, 2rem);
}

.es-action-card {
  border-radius: 16px;
  padding: clamp(2rem, 4vw, 3.5rem) clamp(1.5rem, 4vw, 3rem);
  transition: var(--transition);
  transform: translateZ(0);
}
.es-action-card:hover {
  transform: translateY(-5px);
}
.es-action-card__header {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 2.5rem;
  flex-wrap: wrap;
}
.es-action-card__icon-wrap {
  width: 60px;
  height: 60px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.es-action-card__icon-wrap i {
  font-size: 1.5rem;
}
.es-action-card__eyebrow {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 0.4rem;
}
.es-action-card__title {
  font-family: var(--font-primary);
  font-size: clamp(1.2rem, 3vw, 1.4rem);
  font-weight: 800;
  margin: 0;
  line-height: 1.2;
}

.es-action-card__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.es-action-card__item {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 1rem;
  align-items: flex-start;
}
.es-action-card__item-icon i {
  font-size: 1.1rem;
  margin-top: 4px;
}
.es-action-card__item-label {
  font-family: var(--font-primary);
  font-size: 1.05rem;
  font-weight: 700;
  margin-bottom: 0.4rem;
}
.es-action-card__item-text {
  font-family: var(--font-body);
  font-size: 0.9rem;
  line-height: 1.6;
  margin: 0;
  font-weight: 300;
}

.es-action-card--dark {
  background-color: var(--dark);
  color: var(--white);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
}
.es-action-card--dark .es-action-card__icon-wrap {
  background-color: rgba(255, 255, 255, 0.05);
}
.es-action-card--dark .es-action-card__icon-wrap i,
.es-action-card--dark .es-action-card__eyebrow,
.es-action-card--dark .es-action-card__item-icon i {
  color: var(--mint);
}
.es-action-card--dark .es-action-card__item-text {
  color: rgba(255, 255, 255, 0.75);
}

.es-action-card--light {
  background-color: var(--white);
  color: var(--dark);
  border: 1px solid var(--border);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
}
.es-action-card--light .es-action-card__icon-wrap {
  background-color: rgba(125, 191, 178, 0.15);
}
.es-action-card--light .es-action-card__icon-wrap i,
.es-action-card--light .es-action-card__eyebrow,
.es-action-card--light .es-action-card__item-icon i {
  color: var(--mint-dark);
}
.es-action-card--light .es-action-card__item-text {
  color: var(--text);
}

/* ==========================================================================
   PAGE ESSNA: CALL TO ACTION FINAL
   ========================================================================== */
.es-cta {
  background: radial-gradient(
    circle at center,
    var(--dark-2) 0%,
    var(--dark) 100%
  );
  padding: clamp(4rem, 8vw, 7rem) 1rem;
  text-align: center;
  color: var(--white);
}
.es-cta__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 850px;
  margin: 0 auto;
}
.es-cta__icon-wrap {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(125, 191, 178, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 2rem;
}
.es-cta__icon-wrap i {
  font-size: 1.8rem;
  color: var(--mint);
}
.es-cta__eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.25em;
  color: var(--mint);
  text-transform: uppercase;
  margin-bottom: 1.2rem;
}
/* UX/UI: Impact */
.es-cta__title {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 400;
  color: var(--white);
  line-height: 1.2;
  letter-spacing: 1px;
  margin: 0 0 1.5rem 0;
  text-transform: uppercase;
}
.es-cta__title em {
  color: var(--mint-lt);
  font-style: normal;
}
.es-cta__desc {
  font-family: var(--font-body);
  font-size: clamp(0.95rem, 2vw, 1.05rem);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.8);
  font-weight: 300;
  max-width: 700px;
  margin: 0 0 3rem 0;
}
.es-cta__desc p {
  margin: 0 0 0.8rem 0;
}
.es-cta__desc p:last-child {
  margin-bottom: 0;
}
.es-cta__actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  flex-wrap: wrap;
  width: 100%;
}
.es-cta__actions .llm-btn--outline {
  border-color: rgba(255, 255, 255, 0.3);
  color: var(--white);
}
.es-cta__actions .llm-btn--outline:hover {
  background-color: rgba(255, 255, 255, 0.1);
  border-color: var(--white);
}

@media (max-width: 480px) {
  .es-cta__actions .llm-btn {
    width: 100%;
    justify-content: center;
  }
}

/* ==========================================================================
   PAGE CONTACT: HERO SECTION
   ========================================================================== */
.ct-hero {
  position: relative;
  height: clamp(400px, 60vh, 700px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: clamp(3rem, 6vw, 4rem);
  overflow: hidden;
  background-color: var(--dark);
}
.ct-hero__bg-wrap {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.ct-hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  animation: zoomOutHero 12s ease-out forwards;
  will-change: transform;
}
.ct-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(
    to top right,
    rgba(26, 46, 43, 0.95) 0%,
    rgba(26, 46, 43, 0.4) 50%,
    transparent 85%
  );
}

@media (max-width: 768px) {
  .ct-hero__overlay {
    background: linear-gradient(
      to top,
      rgba(26, 46, 43, 0.95) 0%,
      rgba(26, 46, 43, 0.5) 60%,
      transparent 100%
    );
  }
}

.ct-hero__content {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 900px;
  margin: 0 auto 0 0;
  opacity: 0;
  animation: fadeUpHero 1s ease-out 0.2s forwards;
}
.ct-hero__breadcrumbs {
  margin-bottom: 1.5rem;
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.6);
}
.ct-hero__breadcrumbs a {
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  transition: var(--transition);
}
.ct-hero__breadcrumbs a:hover {
  color: var(--mint);
}
.ct-hero__eyebrow-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 1rem;
}
.ct-hero__line {
  display: inline-block;
  width: 40px;
  height: 1px;
  background-color: rgba(255, 255, 255, 0.6);
}
.ct-hero__eyebrow {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.25em;
  color: rgba(255, 255, 255, 0.8);
  text-transform: uppercase;
}
/* UX/UI: Impact */
.ct-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 6vw, 4.8rem);
  font-weight: 400;
  color: var(--white);
  line-height: 1.1;
  letter-spacing: 1px;
  margin: 0;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
  text-transform: uppercase;
}
.ct-hero__title em {
  color: var(--mint);
  font-style: normal;
}

/* ==========================================================================
   PAGE CONTACT: MAIN SECTION & FORM
   ========================================================================== */
.ct-main {
  padding: clamp(3rem, 6vw, 6rem) 0;
  background-color: var(--white);
}
.ct-main__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}

.ct-info__eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.25em;
  color: var(--muted);
  text-transform: uppercase;
  margin-bottom: 1rem;
}
/* UX/UI: Impact */
.ct-info__title {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 400;
  color: var(--dark);
  line-height: 1.1;
  letter-spacing: 1px;
  margin-bottom: 1.5rem;
  text-transform: uppercase;
}
.ct-info__title em {
  color: var(--mint-dark);
  font-style: normal;
}

.ct-trust-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 2rem;
}
.ct-badge {
  font-family: var(--font-ui);
  font-size: 0.75rem;
  font-weight: 700;
  padding: 6px 12px;
  border-radius: 20px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.ct-badge--green {
  background-color: rgba(125, 191, 178, 0.15);
  color: var(--mint-dark);
}
.ct-badge--orange {
  background-color: rgba(242, 142, 43, 0.15);
  color: #d36b00;
}
.ct-badge--red {
  background-color: rgba(220, 53, 69, 0.1);
  color: #c92a2a;
}

.ct-info__desc {
  font-family: var(--font-body);
  font-size: clamp(0.95rem, 2vw, 1rem);
  line-height: 1.7;
  color: var(--text);
  margin-bottom: 2.5rem;
}

.ct-cards {
  font-style: normal;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 2.5rem;
}
.ct-card {
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
  padding: 1.5rem;
  background-color: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  transition: var(--transition);
}
.ct-card:hover {
  transform: translateX(5px);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.03);
  border-color: var(--mint-lt);
}
.ct-card__icon {
  width: 40px;
  height: 40px;
  background-color: var(--mint-bg);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--mint-dark);
  font-size: 1.1rem;
  flex-shrink: 0;
}
.ct-card__data {
  display: flex;
  flex-direction: column;
  gap: 4px;
  word-break: break-word;
}
.ct-card__data strong {
  font-family: var(--font-ui);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--mint-dark);
}
.ct-card__data a,
.ct-card__data span {
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--dark);
  text-decoration: none;
  line-height: 1.5;
  transition: var(--transition);
}
.ct-card__data a:hover {
  color: var(--orange);
}

.ct-map-wrap {
  border-radius: 16px;
  overflow: hidden;
  background-color: var(--mint-bg);
  border: 1px solid var(--border);
  filter: grayscale(40%) contrast(0.9);
  transition: filter 0.3s ease;
  aspect-ratio: 16/9;
}
.ct-map-wrap:hover {
  filter: grayscale(0%) contrast(1);
}
.ct-map-wrap iframe {
  display: block;
  width: 100%;
  height: 100%;
}

.ct-form-box {
  background-color: var(--dark);
  border-radius: 20px;
  padding: clamp(2rem, 5vw, 3.5rem) clamp(1.5rem, 4vw, 3rem);
  position: relative;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}
.ct-form-glow {
  position: absolute;
  top: -20%;
  right: -20%;
  width: 60%;
  height: 60%;
  background: radial-gradient(
    circle,
    rgba(125, 191, 178, 0.15) 0%,
    transparent 70%
  );
  z-index: 1;
  pointer-events: none;
}
.ct-form-box__header,
.ct-cf7-wrapper {
  position: relative;
  z-index: 2;
}
/* UX/UI: Impact */
.ct-form-box__title {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 2.8rem);
  font-weight: 400;
  color: var(--white);
  line-height: 1.1;
  margin-bottom: 0.5rem;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.ct-form-box__title em {
  color: var(--mint);
  font-style: normal;
}
.ct-form-box__subtitle {
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 2.5rem;
}

/* ==========================================================================
   FIX UI/UX: CUSTOM SELECT PARA FORMULARIO DE CONTACTO (Dark Form)
   ========================================================================== */
.ct-select-wrapper {
  position: relative;
  width: 100%;
}

/* WPO: Anula los saltos de línea inyectados por WordPress (wpautop) */
.ct-select-wrapper br {
  display: none !important;
}

.ct-cf7-wrapper select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  /* Incrementamos el padding derecho a 45px para que el texto no pise el ícono */
  padding: 14px 45px 14px 16px !important;
  cursor: pointer;
  background-image: none !important; /* Elimina flechas nativas del SO */
  width: 100%;
}

/* Ícono personalizado alineado perfectamente */
.ct-select-icon {
  position: absolute;
  /* Anclaje estricto: Mitad de la altura del input (~50px) = 25px */
  top: 25px;
  right: 16px;
  transform: translateY(-50%);
  color: var(--mint);
  font-size: 0.9rem;
  pointer-events: none; /* A11y: Permite clics a través del ícono */
  z-index: 5;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Micro-interacción: Rotar flecha al hacer clic. 
   Usamos :focus-within porque CF7 inyecta un span entre el wrapper y el select */
.ct-select-wrapper:focus-within .ct-select-icon {
  transform: translateY(-50%) rotate(-180deg);
  color: var(--white);
}

/* Normalización de Opciones (El menú nativo del SO no soporta mucho CSS) */
.ct-cf7-wrapper select option {
  background-color: var(--dark);
  color: var(--white);
  padding: 10px;
}

/* ==========================================================================
   FORMULARIO DE CONTACTO (UI/UX Grid Layout)
   ========================================================================== */
.ct-form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}

.ct-form-group {
  display: flex;
  flex-direction: column;
}

.ct-form-group--full {
  grid-column: 1 / -1;
}

/* Etiquetas (Labels) */
.ct-form-group label {
  font-family: var(--font-ui);
  font-size: 0.75rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 0.5rem;
}

/* Inputs, Textareas y Selects */
.ct-cf7-wrapper input[type="text"],
.ct-cf7-wrapper input[type="email"],
.ct-cf7-wrapper input[type="tel"],
.ct-cf7-wrapper input[type="number"],
.ct-cf7-wrapper select,
.ct-cf7-wrapper textarea {
  width: 100%;
  background-color: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  padding: 14px 16px;
  color: var(--white);
  font-size: 1rem;
  font-family: var(--font-body);
  transition:
    border-color 0.3s ease,
    background-color 0.3s ease,
    box-shadow 0.3s ease;
}

.ct-cf7-wrapper input::placeholder,
.ct-cf7-wrapper textarea::placeholder {
  color: rgba(255, 255, 255, 0.25);
  font-weight: 300;
}

/* Estado Focus (A11y y Resalte Visual) */
.ct-cf7-wrapper input:focus,
.ct-cf7-wrapper select:focus,
.ct-cf7-wrapper textarea:focus {
  outline: none;
  background-color: rgba(255, 255, 255, 0.08);
  border-color: var(--mint);
  box-shadow: 0 0 0 3px rgba(125, 191, 178, 0.15);
}

.ct-cf7-wrapper textarea {
  resize: vertical;
  min-height: 120px;
}

/* ── Custom Select UI (Fondo Oscuro) ── */
.ct-select-wrapper {
  position: relative;
  width: 100%;
}

.ct-select-wrapper select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 40px;
  cursor: pointer;
}

.ct-select-wrapper select option {
  background-color: var(--dark);
  color: var(--white);
}

/* Ícono de flecha personalizado para el select */
.ct-select-icon {
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
  color: var(--mint);
  font-size: 0.9rem;
  pointer-events: none; /* Crucial: Permite hacer clic "a través" del ícono */
}

/* ── Botón Submit ── */
.ct-btn-full {
  width: 100%;
  padding: 18px;
  font-size: 1rem;
  font-family: var(--font-ui);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-top: 0.5rem;
}

/* ── Responsive del Formulario ── */
@media (max-width: 600px) {
  .ct-form-grid {
    grid-template-columns: 1fr; /* Colapsa a 1 columna en móviles pequeños */
    gap: 1.2rem;
  }
}

/* ==========================================================================
   PAGE RECLAMACIONES: HERO SECTION
   ========================================================================== */
.rc-hero {
  position: relative;
  height: clamp(300px, 45vh, 500px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: clamp(2rem, 5vw, 3.5rem);
  overflow: hidden;
  background-color: var(--dark);
}
.rc-hero__bg-wrap {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.rc-hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.rc-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(
    to top,
    rgba(15, 25, 22, 0.95) 0%,
    rgba(15, 25, 22, 0.7) 60%,
    rgba(15, 25, 22, 0.3) 100%
  );
}
.rc-hero__content {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 900px;
  margin: 0 auto 0 0;
}
.rc-hero__breadcrumbs {
  margin-bottom: 1.2rem;
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.6);
}
.rc-hero__breadcrumbs a {
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  transition: var(--transition);
}
.rc-hero__breadcrumbs a:hover {
  color: var(--mint);
}
.rc-hero__eyebrow-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 0.8rem;
}
.rc-hero__icon {
  color: var(--orange);
  font-size: 1rem;
}
.rc-hero__eyebrow {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.85);
  text-transform: uppercase;
}
/* UX/UI: Impact */
.rc-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 5vw, 3.8rem);
  font-weight: 400;
  color: var(--white);
  line-height: 1.1;
  letter-spacing: 1px;
  margin-bottom: 0.8rem;
  text-transform: uppercase;
}
.rc-hero__subtitle {
  font-family: var(--font-body);
  font-size: clamp(0.85rem, 2vw, 0.95rem);
  color: rgba(255, 255, 255, 0.7);
  font-weight: 300;
  margin: 0;
  max-width: 600px;
}

/* ==========================================================================
   PAGE RECLAMACIONES: MAIN & FORM (Premium UI/UX)
   ========================================================================== */
.rc-main {
  padding: clamp(3rem, 6vw, 4rem) 0 clamp(4rem, 8vw, 7rem);
  background-color: var(
    --mint-bg
  ); /* Fondo sutil para destacar la tarjeta del formulario */
}
.rc-main__inner {
  max-width: 900px;
  margin: 0 auto;
}

/* ── Alerta Legal (Warning Box) ── */
.rc-alert {
  background-color: #fdf3f3;
  border: 1px solid #f5c6c6;
  border-left: 4px solid #d93838;
  border-radius: 12px;
  padding: clamp(1.5rem, 3vw, 2rem);
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  margin-bottom: 2.5rem;
  box-shadow: 0 4px 15px rgba(217, 56, 56, 0.05);
}
.rc-alert__icon {
  color: #d93838;
  font-size: 1.5rem;
  margin-top: 2px;
  flex-shrink: 0;
}
.rc-alert__title {
  font-family: var(--font-primary);
  font-size: 1.25rem;
  font-weight: 700;
  color: #b02a2a;
  margin: 0 0 0.5rem 0;
}
.rc-alert__text {
  font-family: var(--font-body);
  font-size: 0.95rem;
  line-height: 1.6;
  color: #5a3c3c;
  margin: 0;
}

@media (max-width: 768px) {
  .rc-alert {
    flex-direction: column;
    gap: 1rem;
  }
}

/* ── Envoltorio Principal del Formulario (Card) ── */
.rc-form-wrapper {
  background-color: var(--white);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.04);
  overflow: hidden;
}

/* Padding interno del shortcode CF7 */
.wpcf7 {
  padding: clamp(2rem, 5vw, 4rem) clamp(1.5rem, 4vw, 3rem) 3rem;
}

/* ── Fieldsets y Jerarquía (Pasos) ── */
.rc-fieldset {
  border: none;
  padding: 0;
  margin: 0;
}

.rc-step-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
  padding: 0;
  width: 100%; /* Reseteo para legends en Grid */
}
.rc-step-badge {
  font-family: var(--font-heading);
  width: 40px;
  height: 40px;
  background-color: var(--mint);
  color: var(--white);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 400;
  font-size: 1.5rem; /* Resalte tipográfico en Impact */
  flex-shrink: 0;
  box-shadow: 0 4px 10px rgba(125, 191, 178, 0.3);
}
.rc-step-header h3 {
  font-family: var(--font-primary);
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--dark);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0;
}

/* Separador Elegante */
.rc-divider {
  border: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--border) 50%,
    transparent 100%
  );
  margin: 3.5rem 0;
}

/* ── Grillas del Formulario ── */
.rc-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

.rc-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

/* Fallback responsive fluido */
@media (max-width: 768px) {
  .rc-grid-2,
  .rc-grid-3 {
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }
}

.rc-form-group {
  display: flex;
  flex-direction: column;
  margin-bottom: 0; /* Controlado por el grid gap */
}

.rc-form-group--full {
  margin-bottom: 1.5rem;
}

/* ── Inputs UI/UX ── */
.rc-form-group label {
  display: block;
  font-family: var(--font-ui);
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.6rem;
}

.rc-form-inner input[type="text"],
.rc-form-inner input[type="email"],
.rc-form-inner input[type="tel"],
.rc-form-inner input[type="date"],
.rc-form-inner select,
.rc-form-inner textarea {
  width: 100%;
  background-color: var(--white);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px 16px;
  color: var(--dark);
  font-size: 0.95rem;
  font-family: var(--font-body);
  transition: var(--transition);
}

.rc-form-inner input::placeholder,
.rc-form-inner textarea::placeholder {
  color: #adb5bd;
  font-weight: 300;
}

.rc-form-inner input:focus,
.rc-form-inner select:focus,
.rc-form-inner textarea:focus {
  outline: none;
  border-color: var(--mint);
  box-shadow: 0 0 0 4px rgba(125, 191, 178, 0.15);
}

.rc-form-inner textarea {
  min-height: 140px;
  resize: vertical;
}

/* ── FIX: Custom Select UI (Optimización CF7 Cross-Browser) ── */
.rc-select-wrapper {
  position: relative;
  width: 100%;
}

/* WPO: Previene que wpautop de WordPress añada saltos de línea y rompa la altura */
.rc-select-wrapper br {
  display: none !important;
}

.rc-form-wrapper select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  /* Incrementamos padding derecho para que el texto largo no pise el ícono */
  padding: 12px 45px 12px 16px !important;
  cursor: pointer;
  background-color: #f7f9f8;
  border: 1px solid #e1e8e6;
  color: var(--dark);
  font-family: var(--font-body);
  font-size: 0.95rem;
  border-radius: 6px;
  width: 100%;
  transition: var(--transition);
  /* Forzamos que CF7 no superponga su SVG de flecha nativo por defecto */
  background-image: none !important;
}

.rc-form-wrapper select:focus {
  outline: none;
  background-color: var(--white);
  border-color: var(--mint);
  box-shadow: 0 0 0 3px rgba(125, 191, 178, 0.15);
}

/* Ícono de flecha personalizado */
.rc-select-icon {
  position: absolute;
  /* El anclaje se calcula sobre la altura del input (~52px). Mitad exacta = 26px.
     Esto evita que el ícono baje incluso si CF7 añade un mensaje de error debajo. */
  top: 26px;
  right: 16px;
  transform: translateY(-50%);
  color: var(--mint-dark);
  font-size: 0.9rem;
  pointer-events: none; /* A11y: Permite hacer clic "a través" del ícono */
  z-index: 5;
  transition:
    transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    color 0.3s ease;
}

/* Micro-interacción: Invertir flecha 
   Usamos :focus-within porque CF7 rompe el selector hermano directo (+) con su span */
.rc-select-wrapper:focus-within .rc-select-icon {
  transform: translateY(-50%) rotate(-180deg);
  color: var(--mint);
}

/* Reseteo estándar de opciones del sistema */
.rc-form-wrapper select option {
  color: var(--dark);
  background-color: var(--white);
}

/* ── Checkbox de Aceptación Legal ── */
.rc-acceptance-box {
  background-color: rgba(240, 247, 246, 0.5); /* Mint muy pálido */
  border: 1px dashed var(--mint-lt);
  border-radius: 12px;
  padding: 1.5rem;
  margin-top: 1rem;
  margin-bottom: 2rem;
}

.rc-checkbox-group .wpcf7-list-item {
  margin: 0;
}
.rc-checkbox-group label {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  cursor: pointer;
  margin: 0;
}
.rc-checkbox-group input[type="checkbox"] {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  margin-top: 2px;
  accent-color: var(
    --mint
  ); /* Pinta el checkbox nativo con color corporativo */
  cursor: pointer;
}
.rc-acceptance-text {
  font-family: var(--font-body);
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--text);
  font-weight: 500;
  text-transform: none; /* Previene herencia del label general */
  letter-spacing: normal;
}

/* ── Botón Final ── */
.rc-btn-full {
  width: 100%;
  padding: 18px;
  font-family: var(--font-ui);
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* ── Footer Legal (Fuera del entorno interactivo del formulario) ── */
.rc-form-footer {
  background-color: var(--dark);
  padding: clamp(1.5rem, 4vw, 2.5rem) clamp(1.5rem, 4vw, 3rem);
}
.rc-form-footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.rc-form-footer li {
  font-family: var(--font-body);
  font-size: 0.85rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.75);
}
.rc-form-footer strong {
  color: var(--mint);
}

/* ==========================================================================
   SINGLE TOUR: HERO SECTION
   ========================================================================== */
.st-hero {
  position: relative;
  height: clamp(500px, 75vh, 850px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: clamp(3rem, 6vw, 5rem);
  background-color: var(--dark);
  overflow: hidden;
}
.st-hero__bg-wrap {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.st-hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  will-change: transform;
  animation: kenBurns 18s ease-out forwards;
}
.st-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(
    to top right,
    rgba(15, 35, 30, 0.95) 0%,
    rgba(15, 35, 30, 0.5) 45%,
    transparent 85%
  );
}

@media (max-width: 768px) {
  .st-hero__overlay {
    background: linear-gradient(
      to top,
      rgba(15, 35, 30, 0.95) 0%,
      rgba(15, 35, 30, 0.6) 55%,
      transparent 100%
    );
  }
}

.st-hero__content {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 900px;
  margin: 0 auto 0 0;
  opacity: 0;
  animation: fadeUpHero 0.8s ease-out 0.2s forwards;
}
.st-hero__eyebrow-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 1.2rem;
}
.st-hero__line {
  display: inline-block;
  width: 40px;
  height: 1px;
  background-color: rgba(255, 255, 255, 0.5);
}
.st-hero__eyebrow {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.25em;
  color: rgba(255, 255, 255, 0.85);
  text-transform: uppercase;
}
/* UX/UI: Impact */
.st-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 6vw, 5rem);
  font-weight: 400;
  color: var(--white);
  line-height: 1.05;
  letter-spacing: 1px;
  margin: 0 0 1.5rem 0;
  text-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
  text-transform: uppercase;
}
.st-hero__title em {
  color: var(--mint);
  font-style: normal;
}
.st-hero__excerpt {
  font-family: var(--font-body);
  font-size: clamp(1rem, 2vw, 1.1rem);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.85);
  font-weight: 300;
  max-width: 650px;
}
.st-hero__excerpt p {
  margin: 0;
}

@keyframes kenBurns {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.08);
  }
}

/* ==========================================================================
   SINGLE TOUR: OVERVIEW (Overlapping Card)
   ========================================================================== */
.st-overview {
  position: relative;
  z-index: 10;
  margin-top: clamp(-40px, -5vw, -60px);
  margin-bottom: clamp(2rem, 5vw, 4rem);
}
.st-overview__card {
  background-color: var(--white);
  border-radius: 16px;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(0, 0, 0, 0.03);
}
.st-overview__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: clamp(1.2rem, 3vw, 2rem);
  list-style: none;
  margin: 0;
  padding: 0;
}
.st-overview__item {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  padding-right: 1rem;
  border-right: 1px solid var(--border);
}
.st-overview__item:last-child {
  border-right: none;
  padding-right: 0;
}

@media (max-width: 768px) {
  .st-overview__item:nth-child(even) {
    border-right: none;
    padding-right: 0;
  }
  .st-overview__item:nth-last-child(-n + 2) {
    border-bottom: none;
  }
}
@media (max-width: 480px) {
  .st-overview__item {
    border-right: none;
    padding-right: 0;
    border-bottom: 1px solid var(--border);
    padding-bottom: 1rem;
  }
  .st-overview__item:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }
}

.st-overview__icon {
  width: 45px;
  height: 45px;
  background-color: var(--mint-bg);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--mint-dark);
  font-size: 1.2rem;
  flex-shrink: 0;
  transition: transform 0.3s ease;
}
.st-overview__item:hover .st-overview__icon {
  transform: scale(1.1);
}
.st-overview__data {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.st-overview__label {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
}
/* UX/UI: Impact para valores del Overview */
.st-overview__value {
  font-family: var(--font-heading);
  font-size: 1.3rem;
  font-weight: 400;
  color: var(--dark);
  line-height: 1.2;
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* ==========================================================================
   SINGLE TOUR: MAIN CONTENT & SIDEBAR
   ========================================================================== */
.st-content {
  padding-bottom: 1rem;
}
.st-content__grid {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}

@media (max-width: 1024px) {
  .st-content__grid {
    grid-template-columns: 1fr 340px;
  }
}
@media (max-width: 768px) {
  .st-content__grid {
    grid-template-columns: 1fr;
  }
}

.st-sidebar {
  position: sticky;
  top: 100px;
  height: max-content;
  z-index: 10;
}
.st-sidebar__inner {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

@media (max-width: 1024px) {
  .st-sidebar {
    position: static;
    height: auto;
  }
}

.st-section-eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.25em;
  color: var(--mint);
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.st-summary__text {
  font-family: var(--font-body);
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--text);
  font-weight: 300;
}
.st-summary__text p {
  margin-bottom: 1.2rem;
}
.st-summary__text strong {
  color: var(--dark);
  font-weight: 600;
}
/* UX/UI: Impact */
.st-summary__text h2,
.st-summary__text h3 {
  font-family: var(--font-heading);
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  font-weight: 400;
  color: var(--dark);
  line-height: 1.2;
  margin: 2rem 0 1rem;
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* CAJA LUGARES */
.st-places {
  margin-top: 3rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
}
.st-places__header {
  background-color: var(--dark);
  padding: clamp(1rem, 2vw, 1.2rem) clamp(1rem, 3vw, 1.5rem);
  display: flex;
  align-items: center;
  gap: 0.8rem;
  border-bottom: 1px solid var(--border);
}
.st-places__icon {
  width: 32px;
  height: 32px;
  background-color: rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--mint);
  font-size: 0.9rem;
}
.st-places__title {
  font-family: var(--font-primary);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--mint);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: 0;
}
.st-places__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1px;
  background-color: var(--border);
  list-style: none;
  margin: 0;
  padding: 0;
}
.st-places__item {
  background-color: var(--white);
  padding: clamp(1.2rem, 3vw, 1.5rem);
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
/* UX/UI: Impact */
.st-places__num {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background-color: var(--mint-bg);
  border: 1px solid rgba(125, 191, 178, 0.4);
  color: var(--mint-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-weight: 400;
  font-size: 1.1rem;
  flex-shrink: 0;
  padding-top: 3px;
}
.st-places__info {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.st-places__name {
  font-family: var(--font-primary);
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--dark);
  margin: 0;
}
.st-places__desc {
  font-family: var(--font-body);
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--text);
  margin: 0;
  font-weight: 300;
}

/* SIDEBAR WIDGETS */
.st-booking-card {
  background-color: var(--dark);
  border-radius: 16px;
  padding: clamp(1.5rem, 4vw, 2.5rem) clamp(1.5rem, 3vw, 2rem);
  color: var(--white);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
}
.st-booking-card__eyebrow {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--mint);
  text-transform: uppercase;
  margin-bottom: 0.5rem;
}
/* UX/UI: Impact */
.st-booking-card__title {
  font-family: var(--font-heading);
  font-size: clamp(2.2rem, 4vw, 3rem);
  font-weight: 400;
  color: var(--white);
  line-height: 1.1;
  margin-bottom: 0.5rem;
  letter-spacing: 1px;
}
.st-booking-card__subtitle {
  font-family: var(--font-body);
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 2rem;
}
.st-tour-specs {
  list-style: none;
  padding: 0;
  margin: 0 0 2rem 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.st-tour-specs li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.9rem;
  padding-bottom: 0.8rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-family: var(--font-body);
}
.st-tour-specs li:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.st-tour-specs span {
  color: rgba(255, 255, 255, 0.7);
}
.st-tour-specs strong {
  color: var(--white);
  font-weight: 600;
  text-align: right;
}
.st-booking-actions {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.st-btn-full {
  width: 100%;
  padding: 14px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 0.9rem;
}

.st-advisors-card {
  background-color: var(--mint-bg);
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
}
.st-advisors__header {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.5rem;
  background-color: #d1e7e2;
}
.st-advisors__icon i {
  font-size: 2rem;
  color: #25d366;
}
.st-advisors__title-wrap h4 {
  font-family: var(--font-primary);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--dark);
  margin: 0 0 0.2rem 0;
}
.st-advisors__title-wrap span {
  font-family: var(--font-body);
  font-size: 0.75rem;
  color: var(--muted);
  display: block;
}
.st-advisors__list {
  list-style: none;
  margin: 0;
  padding: 0;
  background-color: var(--white);
}
.st-advisors__list li {
  border-bottom: 1px solid var(--border);
}
.st-advisors__list li:last-child {
  border-bottom: none;
}
.st-advisor-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 1.5rem;
  text-decoration: none;
  transition: background-color 0.2s ease;
}
.st-advisor-link:hover {
  background-color: var(--mint-bg);
}
.st-advisor-info {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.st-advisor-info img {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
}
.st-advisor-info span {
  display: block;
  font-family: var(--font-ui);
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--muted);
  margin-bottom: 2px;
}
.st-advisor-info strong {
  display: block;
  font-family: var(--font-primary);
  font-size: 0.95rem;
  color: var(--dark);
  font-weight: 700;
}
.st-advisor-wa {
  color: #25d366;
  font-size: 1.4rem;
}

/* ==========================================================================
   SINGLE TOUR: GALERÍA DE IMÁGENES (CSS Grid)
   ========================================================================== */
.st-gallery-section {
  padding: clamp(2rem, 5vw, 3rem) 0 clamp(3rem, 5vw, 4rem);
  background-color: var(--white);
}
.st-gallery__grid {
  display: grid;
  gap: clamp(6px, 2vw, 12px);
  border-radius: 16px;
  overflow: hidden;
  grid-auto-rows: minmax(180px, 240px);
}
.st-gallery__item {
  position: relative;
  display: block;
  overflow: hidden;
  background-color: var(--mint-bg);
}
.st-gallery__item--hidden {
  display: none;
}
.st-gallery__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.5s cubic-bezier(0.25, 0.8, 0.25, 1);
}
.st-gallery__overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(26, 46, 43, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.st-gallery__overlay i {
  color: var(--white);
  font-size: 2.5rem;
  transform: scale(0.8);
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.st-gallery__item:hover .st-gallery__img {
  transform: scale(1.08);
}
.st-gallery__item:hover .st-gallery__overlay {
  opacity: 1;
}
.st-gallery__item:hover .st-gallery__overlay i {
  transform: scale(1);
}

/* Dynamic Layout Logic */
.st-gallery--count-5 {
  grid-template-columns: repeat(4, 1fr);
}
.st-gallery--count-5 .st-gallery__item:nth-child(1) {
  grid-column: span 2;
  grid-row: span 2;
}
.st-gallery--count-4 {
  grid-template-columns: repeat(3, 1fr);
}
.st-gallery--count-4 .st-gallery__item:nth-child(1) {
  grid-column: span 3;
  grid-row: span 2;
}
.st-gallery--count-3 {
  grid-template-columns: repeat(3, 1fr);
}
.st-gallery--count-3 .st-gallery__item:nth-child(1) {
  grid-column: span 2;
  grid-row: span 2;
}
.st-gallery--count-3 .st-gallery__item:nth-child(2),
.st-gallery--count-3 .st-gallery__item:nth-child(3) {
  grid-column: span 1;
  grid-row: span 1;
}
.st-gallery--count-2 {
  grid-template-columns: repeat(2, 1fr);
  grid-auto-rows: minmax(300px, 400px);
}
.st-gallery--count-1 {
  grid-template-columns: 1fr;
  grid-auto-rows: minmax(350px, 450px);
}

@media (max-width: 768px) {
  .st-gallery__grid {
    grid-template-columns: repeat(2, 1fr) !important;
    grid-auto-rows: minmax(150px, 180px);
    border-radius: 12px;
    gap: 6px;
  }
  .st-gallery__item:nth-child(1) {
    grid-column: span 2 !important;
    grid-row: span 2 !important;
  }
  .st-gallery__item:not(:nth-child(1)) {
    grid-column: span 1 !important;
    grid-row: span 1 !important;
  }
}

/* ==========================================================================
   SINGLE TOUR: TABS & ITINERARY TIMELINE
   ========================================================================== */
.st-tabs-wrapper {
  margin-top: clamp(2rem, 5vw, 4rem);
}
.st-tabs-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  border-bottom: 2px solid var(--border);
  margin-bottom: clamp(1.5rem, 4vw, 2.5rem);
}
.st-tab-btn {
  background: none;
  border: none;
  padding: clamp(0.8rem, 2vw, 1rem) clamp(1rem, 3vw, 1.5rem);
  font-family: var(--font-primary);
  font-size: clamp(0.85rem, 2vw, 0.95rem);
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: var(--transition);
  display: flex;
  align-items: center;
  gap: 8px;
}
.st-tab-btn i {
  font-size: 1.1rem;
}
.st-tab-btn:hover {
  color: var(--mint);
}
.st-tab-btn.active {
  color: var(--dark);
  border-bottom-color: var(--orange);
}
.st-tab-btn.active i {
  color: var(--orange);
}
.st-tab-pane {
  display: none;
  animation: fadeIn 0.4s ease forwards;
}
.st-tab-pane.active {
  display: block;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* TIMELINE */
.st-timeline {
  display: flex;
  flex-direction: column;
  gap: clamp(1.5rem, 4vw, 2.5rem);
  position: relative;
  padding-left: 25px;
  margin-top: 1.5rem;
}
.st-timeline::before {
  content: "";
  position: absolute;
  left: 60px;
  top: 15px;
  bottom: 0;
  width: 2px;
  background-image: linear-gradient(
    to bottom,
    var(--mint) 50%,
    transparent 50%
  );
  background-size: 2px 14px;
  background-repeat: repeat-y;
  z-index: 1;
}
.st-timeline__item {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: clamp(1.5rem, 4vw, 2.5rem);
  z-index: 2;
}
.st-timeline__node-wrap {
  position: sticky;
  top: 100px;
  flex-shrink: 0;
}
.st-timeline__node {
  width: 70px;
  height: 70px;
  background-color: var(--white);
  border: 2px solid var(--mint);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--dark);
  box-shadow: 0 5px 15px rgba(125, 191, 178, 0.2);
  position: relative;
}
.st-timeline__node::after {
  content: "";
  position: absolute;
  bottom: -6px;
  right: -6px;
  width: 14px;
  height: 14px;
  background-color: var(--orange);
  border: 3px solid var(--white);
  border-radius: 50%;
}
.st-timeline__node span {
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  color: var(--mint-dark);
  font-family: var(--font-primary);
}
/* UX/UI: Impact */
.st-timeline__node strong {
  font-family: var(--font-heading);
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 1;
  margin-top: 2px;
}
.st-timeline__content {
  flex-grow: 1;
  background-color: var(--white);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
  transition: var(--transition);
}
.st-timeline__content:hover {
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.06);
}
.st-timeline__header {
  margin-bottom: 1.5rem;
}
/* UX/UI: Impact */
.st-timeline__title {
  font-family: var(--font-heading);
  font-size: clamp(1.8rem, 3vw, 2.2rem);
  font-weight: 400;
  color: var(--dark);
  margin: 0;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.st-timeline__desc {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--text);
  margin-bottom: 2.5rem;
  font-weight: 300;
}
.st-timeline__desc p {
  margin-bottom: 1rem;
}
.st-timeline__desc p:last-child {
  margin-bottom: 0;
}

.st-day-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  grid-auto-rows: minmax(90px, 110px);
  gap: 8px;
  border-radius: 12px;
  overflow: hidden;
}
@media (min-width: 600px) {
  .st-day-gallery {
    grid-template-columns: repeat(4, 1fr);
  }
}

.st-gallery-item {
  position: relative;
  display: block;
  overflow: hidden;
  background-color: var(--mint-bg);
}
.st-gallery-item--hidden {
  display: none !important;
}
.st-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.st-gallery-item:first-child {
  grid-column: span 2;
  grid-row: span 2;
}
.st-gallery-overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(26, 46, 43, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: 2;
}
.st-gallery-overlay i {
  color: var(--white);
  font-size: 1.5rem;
  transform: translateY(10px);
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.st-gallery-item:hover img {
  transform: scale(1.08);
}
.st-gallery-item:hover .st-gallery-overlay {
  opacity: 1;
}
.st-gallery-item:hover .st-gallery-overlay i {
  transform: translateY(0);
}
.st-gallery-more {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
  pointer-events: none;
}
/* UX/UI: Impact */
.st-gallery-more span {
  font-family: var(--font-heading);
  color: var(--white);
  font-size: 2.2rem;
  font-weight: 400;
}

@media (max-width: 768px) {
  .st-timeline {
    padding-left: 0;
  }
  .st-timeline::before {
    display: none;
  }
  .st-timeline__item {
    flex-direction: column;
    gap: 1.2rem;
  }
  .st-timeline__node-wrap {
    position: static;
  }
  .st-timeline__node {
    width: 60px;
    height: 60px;
  }
  .st-timeline__node span {
    font-size: 0.55rem;
  }
  .st-timeline__node strong {
    font-size: 1.5rem;
  }
}

/* ==========================================================================
   SINGLE TOUR: TAB INCLUYE / NO INCLUYE
   ========================================================================== */
.st-inc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(1.5rem, 4vw, 2rem);
  padding-top: 1rem;
}
.st-inc-card {
  background-color: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02);
}
.st-inc-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
}
.st-inc-header h3 {
  font-family: var(--font-primary);
  font-size: clamp(1.2rem, 3vw, 1.4rem);
  font-weight: 800;
  color: var(--dark);
  margin: 0;
}
.st-inc-icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
}
.st-inc-body {
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--text);
  font-weight: 400;
}
.st-inc-body ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.st-inc-body ul li {
  position: relative;
  padding: 1rem 0 1rem 2.2rem;
  border-bottom: 1px dashed rgba(0, 0, 0, 0.08);
  line-height: 1.6;
}
.st-inc-body ul li:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.st-inc-body ul li:first-child {
  padding-top: 0;
}
.st-inc-body ul li::before {
  font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
  font-weight: 900;
  position: absolute;
  left: 0;
  top: 1.15rem;
  font-size: 1.1rem;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
}
.st-inc-body ul li:first-child::before {
  top: 0.15rem;
}
.st-inc-body p {
  margin-bottom: 1rem;
  line-height: 1.6;
}
.st-inc-body p:last-child {
  margin-bottom: 0;
}

.st-inc-card--yes .st-inc-icon {
  background-color: rgba(40, 167, 69, 0.15);
  color: #28a745;
}
.st-inc-card--yes .st-inc-body ul li::before {
  content: "\f00c";
  color: #28a745;
}
.st-inc-card--no .st-inc-icon {
  background-color: rgba(220, 53, 69, 0.12);
  color: #dc3545;
}
.st-inc-card--no .st-inc-body ul li::before {
  content: "\f00d";
  color: #dc3545;
}

/* ==========================================================================
   SINGLE TOUR: TAB DETALLES GENERALES
   ========================================================================== */
.st-details-grid-v2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1.5rem;
  padding-top: 1rem;
}
.st-detail-item {
  background-color: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: clamp(1.2rem, 3vw, 1.5rem);
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
  transition: var(--transition);
}
.st-detail-item:hover {
  border-color: var(--mint);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.04);
  transform: translateY(-4px);
}
.st-detail-icon {
  width: 48px;
  height: 48px;
  background-color: var(--mint-bg);
  color: var(--mint-dark);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  flex-shrink: 0;
}
.st-detail-info {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.st-detail-label {
  font-family: var(--font-ui);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--muted);
}
.st-detail-value {
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--text);
  line-height: 1.6;
  font-weight: 400;
}
.st-detail-value strong {
  font-family: var(--font-primary);
  color: var(--dark);
  font-weight: 600;
  font-size: 1.05rem;
}

@media (min-width: 769px) {
  .st-detail-item--full {
    grid-column: 1 / -1;
  }
}

/* ==========================================================================
   SINGLE TOUR: TAB FAQ (Premium Accordion UI)
   ========================================================================== */
.st-faq-wrapper {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  padding-top: 1rem;
}
.st-faq-item {
  background-color: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  position: relative;
  transition: var(--transition);
}
.st-faq-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background-color: var(--mint);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.st-faq-item.is-active {
  border-color: transparent;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
  transform: translateY(-2px);
}
.st-faq-item.is-active::before {
  opacity: 1;
}
.st-faq-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: clamp(1.2rem, 3vw, 1.5rem) clamp(1.2rem, 4vw, 1.8rem);
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: background-color 0.2s ease;
}
.st-faq-btn:hover {
  background-color: #fafcfb;
}
.st-faq-q-wrap {
  display: flex;
  align-items: flex-start;
  gap: clamp(0.8rem, 2vw, 1rem);
  padding-right: 1.5rem;
}
/* UX/UI: Impact */
.st-faq-badge {
  font-family: var(--font-heading);
  font-size: 1.6rem;
  font-weight: 400;
  color: var(--mint);
  line-height: 1;
}
.st-faq-question-text {
  font-family: var(--font-primary);
  font-size: clamp(0.95rem, 2vw, 1.05rem);
  font-weight: 700;
  color: var(--dark);
  line-height: 1.4;
  transition: color 0.3s ease;
}
.st-faq-item.is-active .st-faq-question-text {
  color: var(--mint-dark);
}
.st-faq-icon {
  width: 36px;
  height: 36px;
  background-color: #f0f4f3;
  color: var(--muted);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  flex-shrink: 0;
  transition: var(--transition);
}
.st-faq-item.is-active .st-faq-icon {
  transform: rotate(135deg);
  background-color: var(--mint-bg);
  color: var(--mint-dark);
}
.st-faq-content {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.st-faq-item.is-active .st-faq-content {
  grid-template-rows: 1fr;
}
.st-faq-content-inner {
  overflow: hidden;
}
.st-faq-answer-text {
  padding: 0 clamp(1.2rem, 4vw, 1.8rem) clamp(1.5rem, 4vw, 1.8rem)
    clamp(1.2rem, 5vw, 3.8rem);
}
.st-faq-answer-text p {
  font-family: var(--font-body);
  margin: 0 0 1rem 0;
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--text);
  font-weight: 300;
}
.st-faq-answer-text p:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
   SINGLE TOUR: TAB TIPS & RECOMENDACIONES
   ========================================================================== */
.st-tips-wrapper {
  padding-top: 1rem;
}
.st-tips-header {
  margin-bottom: 2.5rem;
}
/* UX/UI: Impact */
.st-tips-title {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 400;
  color: var(--dark);
  line-height: 1.1;
  letter-spacing: 1px;
  margin: 0.5rem 0 0 0;
  text-transform: uppercase;
}
.st-tips-body {
  font-family: var(--font-body);
  color: var(--text);
  font-size: 0.95rem;
  line-height: 1.7;
}
.st-tips-body p {
  margin-bottom: 1.2rem;
  font-weight: 300;
}
.st-tips-body ul,
.st-tips-body ol {
  list-style: none;
  padding: 0;
  margin: 0 0 2rem 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: clamp(1.2rem, 3vw, 1.5rem);
}
.st-tips-body ul li,
.st-tips-body ol li {
  background-color: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: clamp(1.5rem, 4vw, 2rem);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02);
  transition: var(--transition);
}
.st-tips-body ul li:hover,
.st-tips-body ol li:hover {
  transform: translateY(-3px);
  border-color: rgba(125, 191, 178, 0.4);
}
.st-tips-body ul li strong,
.st-tips-body ol li strong {
  font-family: var(--font-primary);
  display: block;
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--dark);
  margin-bottom: 0.8rem;
  line-height: 1.3;
}

/* ==========================================================================
   DEFAULT PAGE (page.php)
   ========================================================================== */
.default-page {
  background-color: var(--white);
  padding-bottom: 6rem;
}
.dp-header {
  background-color: var(--mint-bg);
  padding: clamp(3rem, 6vw, 4rem) 0 clamp(2rem, 4vw, 3rem);
  border-bottom: 1px solid var(--border);
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
.dp-header__inner {
  max-width: 800px;
  margin: 0 auto;
  text-align: center;
}
.dp-breadcrumbs {
  font-size: 0.8rem;
  color: var(--muted);
  margin-bottom: 1.5rem;
}
.dp-breadcrumbs a {
  color: var(--mint-dark);
  text-decoration: none;
  transition: var(--transition);
}
.dp-breadcrumbs a:hover {
  color: var(--orange);
}
/* UX/UI: Impact */
.dp-title {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 400;
  color: var(--dark);
  line-height: 1.2;
  margin: 0 0 1rem 0;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.dp-updated-date {
  font-size: 0.85rem;
  color: var(--text);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background-color: var(--white);
  padding: 6px 16px;
  border-radius: 20px;
  border: 1px solid rgba(125, 191, 178, 0.3);
}
.dp-updated-date i {
  color: var(--mint);
}
.dp-container-narrow {
  max-width: 800px;
  margin: 0 auto;
}
.dp-content {
  font-family: var(--font-body);
  font-size: 1.05rem;
  line-height: 1.8;
  color: var(--text);
  font-weight: 300;
}
/* UX/UI: Impact para Subtitulos interiores grandes */
.dp-content h2,
.dp-content h3,
.dp-content h4 {
  font-family: var(--font-heading);
  font-weight: 400;
  color: var(--dark);
  margin: clamp(2rem, 5vw, 2.5rem) 0 1rem 0;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.dp-content h2 {
  font-size: clamp(2rem, 4vw, 2.8rem);
  border-bottom: 2px solid var(--mint-bg);
  padding-bottom: 0.5rem;
}
.dp-content h3 {
  font-size: clamp(1.5rem, 3vw, 2rem);
}
.dp-content h4 {
  font-family: var(--font-primary);
  text-transform: none;
  letter-spacing: normal;
  font-weight: 700;
  font-size: 1.2rem;
}
.dp-content p {
  margin-bottom: 1.5rem;
}
.dp-content ul,
.dp-content ol {
  margin: 0 0 1.5rem 2rem;
  padding: 0;
}
.dp-content li {
  margin-bottom: 0.5rem;
}
.dp-content a {
  color: var(--mint-dark);
  text-decoration: underline;
  text-decoration-color: rgba(125, 191, 178, 0.5);
  text-underline-offset: 3px;
  transition: var(--transition);
}
.dp-content a:hover {
  color: var(--orange);
  text-decoration-color: var(--orange);
}
.dp-content table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 2rem;
  display: block;
  overflow-x: auto;
  white-space: nowrap;
}
.dp-content th,
.dp-content td {
  border: 1px solid var(--border);
  padding: 1rem;
  text-align: left;
}
.dp-content th {
  background-color: var(--mint-bg);
  color: var(--dark);
  font-family: var(--font-primary);
  font-weight: 700;
}

/* ==========================================================================
   LEGAL PAGE (template-legal.php)
   ========================================================================== */
.legal-page {
  padding-bottom: 6rem;
}
.lg-hero {
  position: relative;
  background-color: var(--dark);
  padding: clamp(4rem, 8vw, 6rem) 0 clamp(6rem, 10vw, 8rem);
  color: var(--white);
  overflow: hidden;
}
.lg-hero__inner {
  position: relative;
  z-index: 2;
  max-width: 800px;
}
/* UX/UI: Impact */
.lg-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(3rem, 6vw, 5rem);
  font-weight: 400;
  margin: 0 0 1rem 0;
  line-height: 1.1;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.lg-hero__subtitle {
  font-family: var(--font-body);
  font-size: clamp(1rem, 2vw, 1.1rem);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.8);
  margin-bottom: 1.5rem;
  max-width: 600px;
  font-weight: 300;
}
.lg-hero__date {
  font-family: var(--font-ui);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  color: var(--mint);
  background: rgba(125, 191, 178, 0.1);
  padding: 6px 12px;
  border-radius: 6px;
}
.lg-hero__wave {
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  overflow: hidden;
  line-height: 0;
}
.lg-hero__wave svg {
  display: block;
  width: calc(100% + 1.3px);
  height: clamp(40px, 6vw, 60px);
}

.lg-breadcrumbs {
  padding: 2rem 0;
  font-size: 0.85rem;
  color: var(--muted);
}
.lg-breadcrumbs a {
  color: var(--mint-dark);
  text-decoration: none;
  font-weight: 600;
}

.lg-layout {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: clamp(3rem, 6vw, 4rem);
  align-items: start;
}
@media (max-width: 1024px) {
  .lg-layout {
    grid-template-columns: 1fr;
  }
}

.lg-sidebar {
  position: sticky;
  top: 100px;
  height: max-content;
  z-index: 10;
}
@media (max-width: 1024px) {
  .lg-sidebar {
    position: static;
    height: auto;
  }
}

.lg-toc {
  background-color: #f8faf9;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 2rem;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.02);
}
.lg-toc__eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-ui);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  color: var(--mint-dark);
  margin-bottom: 1.5rem;
}
.lg-toc__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.lg-toc__link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  text-decoration: none;
  color: var(--text);
  font-size: 0.9rem;
  border-radius: 8px;
  border-left: 3px solid transparent;
  transition: var(--transition);
}
.lg-toc__link:hover {
  background-color: var(--white);
  color: var(--dark);
}
.lg-toc__link.active {
  background-color: var(--white);
  color: var(--dark);
  font-weight: 700;
  border-left-color: var(--mint);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.03);
}
/* UX/UI: Impact */
.lg-toc__num {
  font-family: var(--font-heading);
  font-weight: 400;
  color: var(--mint);
  font-size: 1.2rem;
}

.lg-intro-card,
.lg-footer-card {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  margin-bottom: 2rem;
}
.lg-intro-card {
  background-color: #f8faf9;
  font-family: var(--font-body);
  font-size: clamp(1rem, 2vw, 1.1rem);
  line-height: 1.7;
  color: var(--dark);
  border-left: 4px solid var(--mint);
}
.lg-intro-card p {
  margin: 0;
}
.lg-footer-card {
  background-color: var(--dark);
  color: rgba(255, 255, 255, 0.7);
  margin-top: 3rem;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}
.lg-footer-card__eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--white);
  font-family: var(--font-primary);
  font-size: 1.2rem;
  font-weight: 800;
  margin-bottom: 1.2rem;
}
.lg-footer-card__eyebrow i {
  color: var(--mint);
}
.lg-footer-card p {
  font-family: var(--font-body);
  margin: 0 0 0.5rem 0;
  font-size: 0.95rem;
}
.lg-footer-card p:last-child {
  color: var(--mint);
  font-weight: 600;
}

.lg-accordion-group {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.lg-accordion {
  border: 1px solid var(--border);
  border-radius: 12px;
  background-color: var(--white);
  overflow: hidden;
  position: relative;
  transition: var(--transition);
}
.lg-accordion:hover {
  border-color: rgba(125, 191, 178, 0.4);
}
.lg-accordion.is-active {
  border-color: var(--mint);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.04);
  transform: translateY(-2px);
}
.lg-accordion__btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: clamp(1.2rem, 3vw, 1.5rem) clamp(1.5rem, 4vw, 2rem);
  background: transparent;
  border: none;
  cursor: pointer;
}
.lg-accordion__title-wrap {
  display: flex;
  align-items: center;
  gap: clamp(1rem, 3vw, 1.2rem);
}
/* UX/UI: Impact */
.lg-accordion__num {
  font-family: var(--font-heading);
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  font-weight: 400;
  color: var(--mint-dark);
  opacity: 0.5;
  transition: opacity 0.3s ease;
}
.lg-accordion.is-active .lg-accordion__num {
  opacity: 1;
}
.lg-accordion__title {
  font-family: var(--font-primary);
  font-size: clamp(1rem, 2vw, 1.2rem);
  font-weight: 800;
  color: var(--dark);
  margin: 0;
  text-align: left;
}
.lg-accordion__icon {
  width: 36px;
  height: 36px;
  background-color: var(--mint-bg);
  color: var(--mint-dark);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  flex-shrink: 0;
  transition: var(--transition);
}
.lg-accordion.is-active .lg-accordion__icon {
  transform: rotate(-180deg);
  background-color: var(--mint);
  color: var(--white);
}
.lg-accordion__content {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.lg-accordion.is-active .lg-accordion__content {
  grid-template-rows: 1fr;
}
.lg-accordion__inner {
  overflow: hidden;
  padding: 0 clamp(1.5rem, 4vw, 2rem) clamp(1.5rem, 4vw, 2rem)
    clamp(1.5rem, 8vw, 5rem);
}
.lg-accordion__inner ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.lg-accordion__inner li {
  font-family: var(--font-body);
  position: relative;
  padding-left: 1.5rem;
  margin-bottom: 0.8rem;
  color: var(--text);
  line-height: 1.6;
  font-weight: 300;
}
.lg-accordion__inner li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6rem;
  width: 6px;
  height: 6px;
  background-color: var(--mint);
  border-radius: 50%;
}
.lg-accordion__inner p {
  font-family: var(--font-body);
  color: var(--text);
  line-height: 1.6;
  margin: 0 0 1rem 0;
  font-weight: 300;
}
.lg-accordion__inner p:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
   404 PAGE (404.php)
   ========================================================================== */
.error-404 {
  background-color: #f4f7f6;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 75vh;
  padding: clamp(4rem, 8vw, 6rem) 1rem;
}
.e404-hero__inner {
  max-width: 700px;
  margin: 0 auto;
  text-align: center;
  background-color: var(--white);
  padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 5vw, 4rem);
  border-radius: 24px;
  border: 1px solid var(--border);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.04);
}
.e404-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-primary);
  font-size: 1rem;
  font-weight: 800;
  color: #dc3545;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-bottom: 1.5rem;
  background-color: rgba(220, 53, 69, 0.08);
  padding: 8px 18px;
  border-radius: 30px;
}
/* UX/UI: Impact */
.e404-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(3.5rem, 6vw, 5rem);
  font-weight: 400;
  color: var(--dark);
  line-height: 1.1;
  margin: 0 0 1.5rem 0;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.e404-hero__desc {
  font-family: var(--font-body);
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--text);
  font-weight: 300;
  margin: 0 auto 2.5rem;
  max-width: 550px;
}

.e404-search {
  margin-bottom: 3rem;
}
.e404-search .search-form {
  display: flex;
  gap: 0.8rem;
  max-width: 500px;
  margin: 0 auto;
  flex-wrap: wrap;
}
.e404-search .search-form label {
  flex-grow: 1;
  margin: 0;
  width: 100%;
}
.e404-search .search-field {
  width: 100%;
  padding: 16px 20px;
  border: 1px solid var(--border);
  border-radius: 10px;
  font-size: 1rem;
  font-family: var(--font-body);
  background-color: #f8faf9;
  color: var(--dark);
  transition: var(--transition);
}
.e404-search .search-field:focus {
  outline: none;
  border-color: var(--mint);
  background-color: var(--white);
  box-shadow: 0 0 0 4px rgba(125, 191, 178, 0.15);
}
.e404-search .search-submit {
  font-family: var(--font-ui);
  background-color: var(--dark);
  color: var(--white);
  border: none;
  padding: 16px 2rem;
  border-radius: 10px;
  font-weight: 700;
  cursor: pointer;
  transition: var(--transition);
  font-size: 1rem;
  width: 100%;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.e404-search .search-submit:hover {
  background-color: var(--mint-dark);
}
.e404-actions {
  display: flex;
  justify-content: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.e404-actions .llm-btn {
  width: 100%;
  justify-content: center;
}

@media (min-width: 769px) {
  .e404-search .search-form {
    flex-wrap: nowrap;
  }
  .e404-search .search-submit {
    width: auto;
  }
  .e404-actions .llm-btn {
    width: auto;
  }
}

/* ==========================================================================
   ARCHIVE TOURS (Catálogo y Filtros)
   ========================================================================== */
.archive-tour {
  background-color: #f8faf9;
  padding-bottom: 6rem;
}
.at-hero {
  background-color: var(--dark);
  padding: clamp(4rem, 8vw, 5rem) 1rem;
  margin-bottom: 3rem;
  text-align: center;
  color: var(--white);
}
/* UX/UI: Impact */
.at-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(3rem, 6vw, 4.5rem);
  font-weight: 400;
  margin: 0 0 1rem 0;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.at-hero__subtitle {
  font-family: var(--font-body);
  font-size: 1.1rem;
  color: rgba(255, 255, 255, 0.8);
  font-weight: 300;
  max-width: 600px;
  margin: 0 auto;
}
.at-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: clamp(2rem, 5vw, 3rem);
  align-items: start;
}

@media (max-width: 1024px) {
  .at-layout {
    grid-template-columns: 1fr;
  }
}

.at-sidebar {
  position: sticky;
  top: 170px;
  z-index: 10;
}
@media (max-width: 1024px) {
  .at-sidebar {
    position: static;
  }
}

.at-filter-form {
  background-color: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.5rem;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02);
}
.at-filter-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border);
}
.at-filter-header h3 {
  font-family: var(--font-primary);
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--dark);
  margin: 0;
}
.at-filter-clear {
  font-family: var(--font-ui);
  font-size: 0.8rem;
  color: #dc3545;
  text-decoration: none;
  font-weight: 600;
}
.at-widget {
  margin-bottom: 2rem;
}
.at-widget__title {
  font-family: var(--font-primary);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--dark);
  margin: 0 0 1rem 0;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.at-input-group {
  position: relative;
}
.at-input-group i {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
}
.at-input-group input {
  width: 100%;
  padding: 10px 10px 10px 35px;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 0.9rem;
  font-family: var(--font-body);
}

.at-checkbox-group {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.at-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  font-size: 0.95rem;
  color: var(--text);
  user-select: none;
  font-family: var(--font-body);
}
.at-checkbox input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}
.at-checkbox__mark {
  width: 20px;
  height: 20px;
  background-color: #f8faf9;
  border: 1px solid var(--border);
  border-radius: 4px;
  position: relative;
  flex-shrink: 0;
  margin-top: 2px;
  transition: var(--transition);
}
.at-checkbox:hover input ~ .at-checkbox__mark {
  border-color: var(--mint);
}
.at-checkbox input:checked ~ .at-checkbox__mark {
  background-color: var(--mint);
  border-color: var(--mint);
}
.at-checkbox__mark:after {
  content: "";
  position: absolute;
  display: none;
  left: 6px;
  top: 2px;
  width: 5px;
  height: 10px;
  border: solid var(--white);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.at-checkbox input:checked ~ .at-checkbox__mark:after {
  display: block;
}

.at-price-range {
  display: flex;
  align-items: center;
  gap: 10px;
}
.at-price-input {
  flex: 1;
  position: relative;
}
.at-price-input span {
  font-family: var(--font-ui);
  display: block;
  font-size: 0.7rem;
  color: var(--muted);
  margin-bottom: 4px;
}
.at-price-input input {
  font-family: var(--font-body);
  width: 100%;
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 0.9rem;
}
.at-price-sep {
  color: var(--muted);
  margin-top: 15px;
}

.at-results-header {
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border);
}
.at-results-count {
  font-family: var(--font-body);
  color: var(--text);
  font-size: 1rem;
  margin: 0;
}
.at-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 2rem;
}

.at-no-results {
  text-align: center;
  padding: 4rem 2rem;
  background: var(--white);
  border-radius: 12px;
  border: 1px dashed var(--border);
}
.at-no-results i {
  font-size: 3rem;
  color: var(--muted);
  margin-bottom: 1rem;
}
.at-no-results h3 {
  font-family: var(--font-primary);
  font-weight: 800;
  color: var(--dark);
}
.at-no-results p {
  font-family: var(--font-body);
  color: var(--text);
  margin-bottom: 2rem;
}

.at-pagination {
  margin-top: 4rem;
  display: flex;
  justify-content: center;
  gap: 10px;
}
.at-pagination .page-numbers {
  font-family: var(--font-ui);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background-color: var(--white);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--dark);
  font-weight: 700;
  text-decoration: none;
  transition: var(--transition);
}
.at-pagination .page-numbers:hover {
  border-color: var(--mint);
  color: var(--mint);
}
.at-pagination .page-numbers.current {
  background-color: var(--mint);
  border-color: var(--mint);
  color: var(--white);
}

.at-filter-toggle {
  display: none;
}
@media (max-width: 1024px) {
  .at-filter-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 15px;
    background-color: var(--dark);
    color: var(--white);
    border: none;
    border-radius: 8px;
    font-weight: 700;
    font-family: var(--font-ui);
    cursor: pointer;
    margin-bottom: 1rem;
  }
  .at-filter-wrap {
    display: none;
  }
  .at-filter-wrap.is-visible {
    display: block;
    animation: fadeInDown 0.3s ease forwards;
  }
}

/* ==========================================================================
   BLOG INDEX (home.php)
   ========================================================================== */
.blog-index {
  background-color: #f8faf9;
  padding-bottom: 6rem;
}
.bi-hero {
  background-color: var(--dark);
  padding: clamp(4rem, 8vw, 5rem) 1rem;
  text-align: center;
  color: var(--white);
  margin-bottom: 2rem;
}
/* UX/UI: Impact */
.bi-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(3rem, 6vw, 4.5rem);
  font-weight: 400;
  margin: 0 0 1rem 0;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.bi-hero__subtitle {
  font-family: var(--font-body);
  font-size: 1.1rem;
  color: rgba(255, 255, 255, 0.8);
  font-weight: 300;
  max-width: 600px;
  margin: 0 auto;
}
.bi-hero__subtitle p {
  margin: 0;
}
.bi-breadcrumbs {
  font-family: var(--font-ui);
  padding: 1rem 0 2rem;
  font-size: 0.85rem;
  color: var(--muted);
}
.bi-breadcrumbs a {
  color: var(--mint-dark);
  text-decoration: none;
  font-weight: 600;
  transition: var(--transition);
}
.bi-breadcrumbs a:hover {
  color: var(--orange);
}

.bi-layout {
  max-width: 1200px;
  margin: 0 auto;
}
.bi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: clamp(2rem, 4vw, 2.5rem);
}

.bi-pagination {
  margin-top: 4rem;
  border-top: 1px solid var(--border);
  padding-top: 3rem;
}
.bi-pagination .nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.bi-pagination .page-numbers {
  font-family: var(--font-ui);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: clamp(40px, 5vw, 44px);
  height: clamp(40px, 5vw, 44px);
  padding: 0 10px;
  background-color: var(--white);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--dark);
  font-weight: 700;
  text-decoration: none;
  transition: var(--transition);
}
.bi-pagination .page-numbers:hover {
  border-color: var(--mint);
  color: var(--mint-dark);
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}
.bi-pagination .page-numbers.current {
  background-color: var(--mint);
  border-color: var(--mint);
  color: var(--white);
  pointer-events: none;
}
.bi-pagination .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.bi-no-results {
  text-align: center;
  padding: 5rem 2rem;
  background: var(--white);
  border-radius: 16px;
  border: 1px dashed var(--border);
}
.bi-no-results i {
  font-size: 3.5rem;
  color: var(--muted);
  margin-bottom: 1.5rem;
}
.bi-no-results h3 {
  font-family: var(--font-primary);
  font-weight: 800;
  color: var(--dark);
  margin-bottom: 0.5rem;
}
.bi-no-results p {
  font-family: var(--font-body);
  color: var(--text);
  font-size: 1.05rem;
}

/* ==========================================================================
   CARD POST (Blog Article Card)
   ========================================================================== */
.cp-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background-color: var(--white);
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
  transition: var(--transition);
}
.cp-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.05);
  border-color: rgba(125, 191, 178, 0.4);
}
.cp-card__media {
  position: relative;
  margin: 0;
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background-color: var(--mint-bg);
}
.cp-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.cp-card:hover .cp-card__img {
  transform: scale(1.05);
}
.cp-card__placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  color: var(--mint);
  opacity: 0.5;
}
.cp-card__badge {
  position: absolute;
  top: 15px;
  left: 15px;
  background-color: var(--dark);
  color: var(--white);
  font-family: var(--font-ui);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 6px 12px;
  border-radius: 6px;
  text-decoration: none;
  transition: var(--transition);
  z-index: 2;
}
.cp-card__badge:hover {
  background-color: var(--orange);
}
.cp-card__body {
  padding: clamp(1.5rem, 3vw, 2rem) clamp(1.5rem, 3vw, 2rem) 1rem
    clamp(1.5rem, 3vw, 2rem);
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}
.cp-card__meta {
  font-family: var(--font-ui);
  font-size: 0.85rem;
  color: var(--muted);
  margin-bottom: 0.8rem;
  display: flex;
  align-items: center;
  gap: 6px;
}
.cp-card__meta i {
  color: var(--mint);
}
.cp-card__title {
  font-family: var(--font-primary);
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.3;
  margin: 0 0 1rem 0;
}
.cp-card__title a {
  color: var(--dark);
  text-decoration: none;
  transition: var(--transition);
}
.cp-card:hover .cp-card__title a {
  color: var(--mint-dark);
}
.cp-card__excerpt {
  font-family: var(--font-body);
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--text);
  font-weight: 300;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.cp-card__excerpt p {
  margin: 0;
}
.cp-card__footer {
  padding: 0 clamp(1.5rem, 3vw, 2rem) clamp(1.5rem, 3vw, 2rem)
    clamp(1.5rem, 3vw, 2rem);
  margin-top: auto;
}
.cp-card__readmore {
  font-family: var(--font-ui);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--mint-dark);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  transition: var(--transition);
}
.cp-card__readmore i {
  transition: transform 0.2s ease;
}
.cp-card__readmore:hover {
  color: var(--orange);
}
.cp-card:hover .cp-card__readmore i {
  transform: translateX(5px);
}

/* ==========================================================================
   INDEX FALLBACK (index.php)
   ========================================================================== */
.generic-index {
  background-color: #f8faf9;
  padding-bottom: 6rem;
}
.idx-hero {
  background-color: var(--dark);
  padding: 4rem 1rem;
  text-align: center;
  color: var(--white);
  margin-bottom: 3rem;
}
/* UX/UI: Impact */
.idx-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 4vw, 4rem);
  font-weight: 400;
  margin: 0 0 0.5rem 0;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.idx-hero__subtitle {
  font-family: var(--font-body);
  font-size: 1.05rem;
  color: rgba(255, 255, 255, 0.7);
  font-weight: 300;
  max-width: 600px;
  margin: 0 auto;
}
.idx-layout {
  max-width: 1200px;
  margin: 0 auto;
}
.idx-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: clamp(2rem, 4vw, 2.5rem);
}
.idx-pagination {
  margin-top: 4rem;
  padding-top: 2rem;
  border-top: 1px solid var(--border);
  display: flex;
  justify-content: center;
}
.idx-pagination .nav-links {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.idx-pagination .page-numbers {
  font-family: var(--font-ui);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  background-color: var(--white);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--dark);
  font-weight: 700;
  text-decoration: none;
  transition: var(--transition);
}
.idx-pagination .page-numbers.current,
.idx-pagination .page-numbers:hover {
  border-color: var(--mint);
  color: var(--mint-dark);
}
.idx-pagination .page-numbers.current {
  background-color: var(--mint);
  color: var(--white);
}
.idx-no-results {
  text-align: center;
  padding: 4rem 2rem;
  background: var(--white);
  border-radius: 12px;
  border: 1px dashed var(--border);
}
.idx-no-results i {
  font-size: 3rem;
  color: var(--muted);
  margin-bottom: 1rem;
}
.idx-search-box {
  max-width: 500px;
  margin: 2rem auto 0;
}

/* ==========================================================================
   SINGLE POST (single.php) & SIDEBAR
   ========================================================================== */
.single-post-page {
  background-color: var(--white);
  padding: clamp(2rem, 4vw, 3rem) 0 6rem;
}
.sp-container {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}

@media (max-width: 1024px) {
  .sp-container {
    grid-template-columns: 1fr;
  }
}

.sp-header {
  margin-bottom: 2.5rem;
}
.sp-breadcrumbs {
  font-family: var(--font-ui);
  font-size: 0.85rem;
  color: var(--muted);
  margin-bottom: 1.5rem;
}
.sp-breadcrumbs a {
  color: var(--mint-dark);
  text-decoration: none;
}
.sp-categories {
  display: flex;
  gap: 10px;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}
.sp-badge {
  font-family: var(--font-ui);
  background-color: var(--mint-bg);
  color: var(--mint-dark);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 5px 12px;
  border-radius: 4px;
  text-decoration: none;
  transition: var(--transition);
}
.sp-badge:hover {
  background-color: var(--mint);
  color: var(--white);
}
/* UX/UI: Impact */
.sp-title {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  font-weight: 400;
  color: var(--dark);
  line-height: 1.15;
  margin: 0 0 1.5rem 0;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.sp-meta {
  font-family: var(--font-ui);
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  font-size: 0.9rem;
  color: var(--muted);
  border-bottom: 1px solid var(--border);
  padding-bottom: 1.5rem;
}
.sp-meta span,
.sp-meta time {
  display: flex;
  align-items: center;
  gap: 8px;
}
.sp-meta i {
  color: var(--mint);
}
.sp-meta a {
  color: var(--dark);
  font-weight: 600;
  text-decoration: none;
}
.sp-meta a:hover {
  color: var(--orange);
}

.sp-thumbnail {
  margin: 0 0 3rem 0;
  border-radius: 16px;
  overflow: hidden;
}
.sp-thumbnail__img {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
}
.sp-content {
  font-family: var(--font-body);
  max-width: 800px;
  font-size: 1.1rem;
  line-height: 1.8;
  color: var(--text);
  font-weight: 300;
}
/* UX/UI: Impact para Subtítulos del Post */
.sp-content h2,
.sp-content h3,
.sp-content h4 {
  font-family: var(--font-heading);
  color: var(--dark);
  font-weight: 400;
  margin: 2.5rem 0 1rem 0;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.sp-content h2 {
  font-size: clamp(2rem, 4vw, 2.5rem);
}
.sp-content h3 {
  font-size: clamp(1.5rem, 3vw, 2rem);
}
.sp-content h4 {
  font-family: var(--font-primary);
  font-size: 1.2rem;
  text-transform: none;
  letter-spacing: normal;
  font-weight: 700;
}
.sp-content p {
  margin-bottom: 1.5rem;
}
.sp-content a {
  color: var(--mint-dark);
  text-decoration: underline;
  text-decoration-color: rgba(125, 191, 178, 0.4);
  text-underline-offset: 3px;
  font-weight: 500;
  transition: var(--transition);
}
.sp-content a:hover {
  color: var(--orange);
  text-decoration-color: var(--orange);
}
.sp-content img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  margin: 2rem 0;
}
.sp-content blockquote {
  margin: 2.5rem 0;
  padding: 1.5rem 2rem;
  border-left: 4px solid var(--mint);
  background-color: var(--mint-bg);
  font-size: 1.25rem;
  font-style: italic;
  color: var(--dark);
  border-radius: 0 12px 12px 0;
}

.sp-footer {
  max-width: 800px;
  margin-top: 4rem;
  padding-top: 2rem;
  border-top: 1px solid var(--border);
}
.sp-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-bottom: 3rem;
  font-family: var(--font-ui);
}
.sp-tags__label {
  font-weight: 700;
  color: var(--dark);
  margin-right: 10px;
}
.sp-tags a {
  background-color: #f0f4f3;
  color: var(--text);
  font-size: 0.85rem;
  padding: 4px 12px;
  border-radius: 20px;
  text-decoration: none;
  transition: var(--transition);
}
.sp-tags a:hover {
  background-color: var(--mint);
  color: var(--white);
}

/* Author Box */
.sp-author-box {
  display: flex;
  align-items: center;
  gap: 1.8rem;
  background-color: #f8faf9;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  border-radius: 16px;
  border: 1px solid var(--border);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02);
  transition: var(--transition);
}
.sp-author-box:hover {
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.05);
  transform: translateY(-2px);
}
.sp-author__avatar {
  flex-shrink: 0;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  padding: 4px;
  background-color: var(--white);
  border: 2px solid rgba(125, 191, 178, 0.3);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.04);
}
.sp-author__avatar img {
  border-radius: 50%;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sp-author__info {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.sp-author__name {
  font-family: var(--font-primary);
  margin: 0 0 0.4rem 0;
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--dark);
  letter-spacing: -0.01em;
}
.sp-author__desc {
  font-family: var(--font-body);
  font-size: 0.95rem;
  margin: 0;
  color: var(--text);
  line-height: 1.6;
  font-weight: 300;
}

@media (max-width: 768px) {
  .sp-author-box {
    flex-direction: column;
    text-align: center;
    gap: 1rem;
  }
}

/* Sidebar Widgets */
.sp-sidebar {
  position: sticky;
  top: 170px;
  display: flex;
  flex-direction: column;
  gap: 2.2rem;
}
@media (max-width: 1024px) {
  .sp-sidebar {
    position: static;
  }
}

.sp-widget {
  background-color: var(--white);
  border-radius: 16px;
  border: 1px solid var(--border);
  padding: clamp(1.5rem, 4vw, 2.2rem) clamp(1.5rem, 4vw, 2rem);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.02);
}
.sp-widget__title {
  font-family: var(--font-primary);
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--dark);
  margin: 0 0 1.8rem 0;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border);
  position: relative;
}
.sp-widget__title::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 45px;
  height: 3px;
  background-color: var(--mint);
  border-radius: 2px;
}

/* Custom Search */
.sp-search-form {
  display: flex;
  position: relative;
}
.sp-search-field {
  font-family: var(--font-body);
  width: 100%;
  padding: 15px 50px 15px 20px;
  border: 1px solid var(--border);
  border-radius: 50px;
  background-color: #f8faf9;
  font-size: 0.95rem;
  color: var(--text);
  transition: var(--transition);
}
.sp-search-field:focus {
  outline: none;
  border-color: var(--mint);
  background-color: var(--white);
  box-shadow: 0 0 0 4px rgba(125, 191, 178, 0.15);
}
.sp-search-submit {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  background-color: var(--mint);
  color: var(--white);
  border: none;
  border-radius: 50%;
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--transition);
}
.sp-search-submit:hover {
  background-color: var(--dark);
  transform: translateY(-50%) scale(1.05);
}

/* Card Mini */
.sp-card-mini {
  display: flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  margin-bottom: 1.2rem;
  padding-bottom: 1.2rem;
  border-bottom: 1px dashed var(--border);
  transition: var(--transition);
  opacity: 0.95;
}
.sp-card-mini:last-child {
  margin-bottom: 0;
  border-bottom: none;
  padding-bottom: 0;
}
.sp-card-mini:hover {
  transform: translateX(5px);
  opacity: 1;
}
.sp-card-mini__img {
  width: 70px;
  height: 70px;
  border-radius: 10px;
  overflow: hidden;
  flex-shrink: 0;
  background-color: var(--mint-bg);
}
.sp-card-mini__img--circle {
  border-radius: 50%;
  width: 65px;
  height: 65px;
}
.sp-card-mini__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.sp-card-mini:hover .sp-card-mini__img img {
  transform: scale(1.1);
}
.sp-card-mini__info {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.sp-card-mini__info h4 {
  font-family: var(--font-primary);
  margin: 0 0 6px 0;
  font-size: 0.95rem;
  color: var(--dark);
  line-height: 1.35;
  font-weight: 700;
  transition: color 0.2s;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.sp-card-mini:hover .sp-card-mini__info h4 {
  color: var(--mint-dark);
}
.sp-card-mini__meta {
  font-family: var(--font-ui);
  font-size: 0.8rem;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 6px;
}
.sp-card-mini__meta i {
  color: var(--mint);
}
.sp-card-mini__price {
  font-weight: 800;
  color: var(--orange);
  font-size: 0.95rem;
}

/* Categories */
.sp-cat-list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-family: var(--font-body);
}
.sp-cat-list li {
  border-bottom: 1px dashed var(--border);
  transition: var(--transition);
}
.sp-cat-list li:last-child {
  border-bottom: none;
}
.sp-cat-list li a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 8px;
  color: var(--text);
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 600;
}
.sp-cat-list li a .cat-count {
  font-family: var(--font-ui);
  font-size: 0.8rem;
  color: var(--muted);
  background-color: #f0f4f3;
  padding: 3px 10px;
  border-radius: 12px;
  font-weight: 700;
  transition: var(--transition);
}
.sp-cat-list li:hover a {
  color: var(--mint-dark);
  padding-left: 12px;
}
.sp-cat-list li:hover a .cat-count {
  background-color: var(--mint);
  color: var(--white);
}

/* ==========================================================================
   LISTA DE COMENTARIOS (UI/UX Premium)
   ========================================================================== */
.sp-comments-area {
  margin-top: 4rem;
  padding-top: 3rem;
  border-top: 1px solid var(--border);
}
/* UX/UI: Impact */
.sp-comments-title {
  font-family: var(--font-heading);
  font-size: clamp(1.8rem, 4vw, 2.5rem);
  font-weight: 400;
  color: var(--dark);
  margin-bottom: 2rem;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.sp-comment-list {
  list-style: none;
  padding: 0;
  margin: 0 0 3rem 0;
}
.sp-comment-item {
  margin-bottom: 1.5rem;
}
.sp-comment-list .children {
  list-style: none;
  padding-left: 0;
  margin-left: clamp(1.5rem, 5vw, 3rem);
  margin-top: 1.5rem;
  position: relative;
}
.sp-comment-list .children::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: clamp(-0.75rem, -2.5vw, -1.5rem);
  width: 2px;
  background-color: var(--border);
  border-radius: 2px;
}

.sp-comment-body {
  display: flex;
  gap: 1.5rem;
  background-color: var(--white);
  padding: clamp(1.5rem, 4vw, 2rem);
  border-radius: 12px;
  border: 1px solid var(--border);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02);
  transition: var(--transition);
}
.sp-comment-body:hover {
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.04);
}
.sp-comment-avatar {
  flex-shrink: 0;
}
.sp-comment-avatar img {
  border-radius: 50%;
  width: 55px;
  height: 55px;
  object-fit: cover;
  border: 2px solid var(--mint-bg);
}
.sp-comment-content {
  flex-grow: 1;
  min-width: 0;
}
.sp-comment-meta {
  font-family: var(--font-ui);
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  margin-bottom: 1rem;
  border-bottom: 1px dashed var(--border);
  padding-bottom: 0.8rem;
  gap: 5px;
}
.sp-comment-author .fn {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--dark);
  font-style: normal;
  display: block;
}
.sp-comment-author a {
  color: var(--dark);
  text-decoration: none;
}
.sp-comment-author a:hover {
  color: var(--mint);
}
.sp-comment-metadata {
  font-size: 0.8rem;
  color: var(--muted);
  text-align: right;
}
@media (max-width: 768px) {
  .sp-comment-metadata {
    text-align: left;
  }
}
.sp-comment-metadata a {
  color: var(--muted);
  text-decoration: none;
}
.sp-comment-metadata a:hover {
  color: var(--mint);
}
.sp-comment-text {
  font-family: var(--font-body);
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--text);
  font-weight: 300;
}
.sp-comment-text p {
  margin-bottom: 1rem;
  word-break: break-word;
}
.sp-comment-text p:last-child {
  margin-bottom: 0;
}
.sp-comment-awaiting {
  font-family: var(--font-ui);
  display: inline-block;
  margin-top: 5px;
  font-size: 0.8rem;
  color: #856404;
  background-color: #fff3cd;
  padding: 4px 8px;
  border-radius: 4px;
  font-style: normal;
  font-weight: 600;
}
.sp-comment-reply {
  margin-top: 1.2rem;
}
.sp-comment-reply a {
  font-family: var(--font-ui);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--mint-dark);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-decoration: none;
  padding: 6px 12px;
  background-color: var(--mint-bg);
  border-radius: 6px;
  transition: var(--transition);
}
.sp-comment-reply a::before {
  content: "\f3e5";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
}
.sp-comment-reply a:hover {
  background-color: var(--mint);
  color: var(--white);
}

@media (max-width: 768px) {
  .sp-comment-body {
    flex-direction: column;
    gap: 1rem;
  }
  .sp-comment-meta {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ==========================================================================
   COMMENT FORM UI/UX
   ========================================================================== */
#respond {
  background-color: #f8faf9;
  padding: clamp(2rem, 5vw, 3rem);
  border-radius: 16px;
  border: 1px solid var(--border);
  margin-top: 4rem;
  width: 100%;
  box-sizing: border-box;
}
#respond * {
  box-sizing: border-box;
}
/* UX/UI: Impact */
#respond .sp-comment-title,
#respond #reply-title {
  font-family: var(--font-heading);
  font-size: clamp(1.8rem, 4vw, 2.5rem);
  font-weight: 400;
  color: var(--dark);
  margin: 0 0 1.5rem 0;
  display: block;
  width: 100%;
  text-transform: uppercase;
  letter-spacing: 1px;
}
#respond #cancel-comment-reply-link {
  font-family: var(--font-ui);
  font-size: 0.9rem;
  color: #dc3545;
  text-decoration: none;
  margin-left: 10px;
  font-weight: 600;
}

#commentform {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.5rem;
  width: 100%;
}
#commentform .sp-form-group--full,
#commentform .form-submit,
#commentform .comment-notes,
#commentform .logged-in-as,
#commentform .comment-form-cookies-consent {
  grid-column: 1 / -1;
  width: 100%;
}
#commentform .logged-in-as {
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--text);
  margin-bottom: 0.5rem;
}
#commentform .logged-in-as a {
  color: var(--mint-dark);
  font-weight: 600;
  text-decoration: none;
}
#commentform .sp-form-group {
  display: flex;
  flex-direction: column;
  width: 100%;
}
#commentform input[type="text"],
#commentform input[type="email"],
#commentform textarea {
  width: 100% !important;
  max-width: 100% !important;
  padding: 1rem 1.2rem !important;
  background-color: var(--white) !important;
  border: 1px solid var(--border) !important;
  border-radius: 10px !important;
  font-size: 0.95rem !important;
  color: var(--dark) !important;
  font-family: var(--font-body) !important;
  margin: 0 !important;
  transition:
    border-color 0.3s ease,
    box-shadow 0.3s ease !important;
}
#commentform textarea {
  resize: vertical;
  min-height: 140px !important;
}
#commentform input:focus,
#commentform textarea:focus {
  outline: none !important;
  border-color: var(--mint) !important;
  box-shadow: 0 0 0 4px rgba(125, 191, 178, 0.15) !important;
}
#commentform .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
#commentform .form-submit {
  margin-top: 1rem;
  margin-bottom: 0;
}
#commentform .form-submit input[type="submit"],
#commentform .form-submit button {
  font-family: var(--font-ui) !important;
  background-color: var(--mint) !important;
  color: var(--white) !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 14px 28px !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  cursor: pointer !important;
  transition: var(--transition) !important;
  display: inline-block !important;
  width: auto !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
}
#commentform .form-submit input[type="submit"]:hover,
#commentform .form-submit button:hover {
  background-color: var(--dark) !important;
  transform: translateY(-2px) !important;
}
/* ==========================================================================
   LEGAL PAGE: EXTRA COMPONENTS (Tables & CTA)
   ========================================================================== */

/* ── Tarjeta de Tabla de Penalidades ── */
.lg-table-card {
  margin-top: 3rem;
  background-color: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.02);
  transition: box-shadow 0.3s ease;
}

.lg-table-card:hover {
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

.lg-table-card__header {
  background-color: var(--mint-bg);
  padding: 1.5rem 2rem;
  display: flex;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid var(--border);
}

.lg-table-card__header i {
  color: var(--orange);
  font-size: 1.5rem;
}

/* UX/UI: Impact para los Títulos de las Tablas Extra */
.lg-table-card__title {
  font-family: var(--font-heading);
  font-size: clamp(1.4rem, 3vw, 1.8rem);
  font-weight: 400;
  color: var(--dark);
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* Envoltura Responsive para Tablas (Previene Scroll Vertical Innecesario) */
.table-responsive {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.lg-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 600px; /* Previene colapso ilegible en móviles */
}

/* Celdas de la Tabla */
.lg-table th,
.lg-table td {
  padding: 1.2rem 2rem;
  text-align: left;
  border-bottom: 1px solid var(--border);
  font-size: 0.95rem;
  font-family: var(--font-body);
  color: var(--text);
  line-height: 1.6;
}

/* Encabezados de Columna (th) */
.lg-table th {
  background-color: #f8faf9;
  font-family: var(--font-ui);
  font-weight: 700;
  color: var(--dark);
  text-transform: uppercase;
  font-size: 0.8rem;
  letter-spacing: 0.05em;
}

/* Resalte de Datos Clave (td strong) */
.lg-table td strong {
  font-family: var(--font-primary);
  color: var(--dark);
  font-weight: 800;
  font-size: 1.1rem;
}

/* Fila de alerta (No Show) */
.lg-table tr.danger-row td {
  background-color: rgba(220, 53, 69, 0.03); /* Rojo ultra claro */
  color: #dc3545; /* Rojo de gravedad */
}

.lg-table tr.danger-row td strong {
  color: #dc3545;
}

/* Nota Inferior de la Tabla */
.lg-table-card__note {
  background-color: #f8faf9;
  padding: 1.5rem 2rem;
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.lg-table-card__note i {
  color: var(--mint);
  margin-top: 4px;
  font-size: 1.2rem;
}

.lg-table-card__note p {
  font-family: var(--font-body);
  margin: 0;
  font-size: 0.9rem;
  color: var(--muted);
  line-height: 1.6;
}

/* ── CTA Final de Página Legal ── */
.lg-cta-card {
  margin-top: 4rem;
  background-color: var(--mint-bg);
  border-radius: 16px;
  padding: 3rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  border: 1px solid rgba(125, 191, 178, 0.3);
}

.lg-cta-card__content p {
  font-family: var(--font-body);
  margin: 0;
  font-size: 1.1rem;
  line-height: 1.7;
  color: var(--dark);
  font-weight: 500;
}

.lg-cta-card .llm-btn {
  flex-shrink: 0;
  padding: 16px 28px;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ── Responsive Adicional ── */
@media (max-width: 768px) {
  .lg-cta-card {
    flex-direction: column;
    text-align: center;
    padding: 2rem;
  }

  .lg-cta-card .llm-btn {
    width: 100%;
    justify-content: center;
  }

  .lg-table th,
  .lg-table td {
    padding: 1rem;
  }
}

/* ==========================================================================
   WIDGET: TABLA DE CONTENIDOS (TOC) - ADAPTADO PARA SIDEBAR
   ========================================================================== */
.sp-widget--toc {
  /* Quitamos el fondo blanco genérico y le damos un tono sutil para destacar */
  background-color: #fcfdfd;
  border-color: rgba(125, 191, 178, 0.3);
}

.sp-widget--toc .sp-widget__title::after {
  /* Cambiamos el color de la rayita decorativa del título */
  background-color: var(--orange);
}

/* Ocultamos la caja envolvente que generaba el shortcode, ya que el widget ahora es la caja */
.sp-widget--toc .bc-toc {
  background: transparent;
  border: none;
  padding: 0;
  margin: 0;
  box-shadow: none;
}

/* Ocultamos el header repetitivo del shortcode porque ya tenemos .sp-widget__title */
.sp-widget--toc .bc-toc__header {
  display: none;
}

.bc-toc__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.bc-toc__list li {
  margin-bottom: 0.6rem;
  line-height: 1.4;
  position: relative;
  padding-left: 1.2rem;
}

/* Viñeta personalizada corporativa */
.bc-toc__list li::before {
  content: "›";
  position: absolute;
  left: 0;
  top: -2px;
  color: var(--mint);
  font-size: 1.2rem;
  font-weight: 700;
}

.bc-toc__list a {
  font-family: var(--font-body);
  font-size: 0.9rem; /* Ligeramente más pequeño para el sidebar */
  color: var(--text);
  text-decoration: none;
  transition: var(--transition);
}

.bc-toc__list a:hover {
  color: var(--mint-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Identación para los H3 (Sublistas) */
.bc-toc__sublist {
  list-style: none;
  padding-left: 1rem;
  margin-top: 0.5rem;
  margin-bottom: 0.8rem;
  border-left: 2px solid var(--mint-bg);
}

.bc-toc__sublist li {
  padding-left: 0.8rem;
  margin-bottom: 0.4rem;
}

.bc-toc__sublist li::before {
  content: "-";
  color: var(--muted);
  font-size: 1rem;
  top: -1px;
}

.bc-toc__sublist a {
  font-size: 0.85rem;
  color: var(--muted);
}

.bc-toc__sublist a:hover {
  color: var(--mint);
}
