/* bundle.css · generado por tools/build-css-bundle.php · NO EDITAR A MANO */

/* ─── css/components/_header-actions.css ─── */
/* ============================================================
   HEADER ACTIONS - Sistema unificado
   Buscador + Botón Contacto + Selector Idioma
   Diseño cohesivo sin herencias
============================================================ */

/* ==================== VARIABLES LOCALES ==================== */
:root {
  --header-action-height: 38px;
  --header-action-font: 'Inter', -apple-system, sans-serif;
  --header-action-font-size: 0.9375rem;
  --header-action-font-weight: 500;
  --header-action-radius: 8px;
  --header-action-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  --header-action-color: #1f2937;
  --header-action-bg: #ffffff;
  --header-action-border: #d1d5db;
}

/* ==================== IMPORTANTE: SIN RESETS GLOBALES ==================== */
/* Cada elemento tiene TODOS sus estilos definidos explícitamente */
/* No se hereda NADA de otros archivos CSS */

/* ==================== 1. BUSCADOR ==================== */
.hea-buscador {
  display: flex;
  align-items: center;
  position: relative;
  height: var(--header-action-height);
  margin: 0;
}

.hea-buscador i {
  position: absolute;
  left: 12px;
  font-size: 15px;
  color: #9ca3af;
  pointer-events: none;
  z-index: 1;
}

.hea-buscador input {
  display: block;
  height: var(--header-action-height);
  width: 160px;
  padding: 0 14px 0 36px;
  margin: 0;
  background: var(--header-action-bg);
  border: 1px solid var(--header-action-border);
  border-radius: var(--header-action-radius);
  font-family: var(--header-action-font);
  font-size: var(--header-action-font-size);
  font-weight: var(--header-action-font-weight);
  color: var(--header-action-color);
  line-height: 1;
  transition: var(--header-action-transition);
  outline: none;
  box-sizing: border-box;
}

.hea-buscador input::placeholder {
  color: #9ca3af;
  font-weight: 400;
}

.hea-buscador input:focus {
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.hea-buscador button[type="submit"] {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ==================== 2. BOTÓN CONTACTO ==================== */
.btn-contacto {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: var(--header-action-height);
  padding: 0 20px;
  margin: 0;
  background: #002244;
  border: 1px solid #002244;
  border-radius: var(--header-action-radius);
  font-family: var(--header-action-font);
  font-size: var(--header-action-font-size);
  font-weight: 600;
  color: #ffffff;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: var(--header-action-transition);
  white-space: nowrap;
  box-sizing: border-box;
  vertical-align: middle;
}

.btn-contacto:hover {
  background: #003366;
  border-color: #003366;
  transform: translateY(-1px);
}

.btn-contacto:active {
  transform: translateY(0);
}

/* ==================== 3. SELECTOR DE IDIOMA ==================== */
.language-selector {
  display: inline-block;
  position: relative;
}

.lang-current-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: var(--header-action-height);
  padding: 0 14px;
  margin: 0;
  background: var(--header-action-bg);
  border: 1px solid var(--header-action-border);
  border-radius: var(--header-action-radius);
  font-family: var(--header-action-font);
  font-size: var(--header-action-font-size);
  font-weight: 600;
  color: var(--header-action-color);
  line-height: 1;
  cursor: pointer;
  transition: var(--header-action-transition);
  white-space: nowrap;
  min-width: 70px;
  box-sizing: border-box;
  vertical-align: middle;
}

.lang-current-btn:hover {
  border-color: #9ca3af;
  background: #f9fafb;
}

.lang-current-btn.active {
  border-color: #3b82f6;
  background: #eff6ff;
}

.lang-code {
  display: inline-block;
  font-size: var(--header-action-font-size);
  font-weight: 600;
  color: inherit;
  line-height: 1;
}

.lang-arrow {
  display: inline-block;
  font-size: 11px;
  transition: transform 0.2s ease;
  line-height: 1;
}

.lang-current-btn.active .lang-arrow {
  transform: rotate(180deg);
}

/* ==================== DROPDOWN DE IDIOMAS ==================== */
.lang-dropdown {
  position: fixed;
  top: 72px;
  left: 0;
  right: 0;
  background: #fff;
  box-shadow: none;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  z-index: 1001;
  transition: max-height 0.25s ease, opacity 0.25s ease;
}

.lang-dropdown.visible {
  max-height: 200px;
  opacity: 1;
  overflow: visible;
}

.lang-dropdown-inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 1rem 3rem;
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
}

.lang-option {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: var(--header-action-radius);
  font-family: var(--header-action-font);
  font-size: var(--header-action-font-size);
  font-weight: 500;
  color: var(--header-action-color);
  text-decoration: none;
  cursor: pointer;
  transition: var(--header-action-transition);
  min-width: 130px;
  line-height: 1;
}

.lang-option:hover {
  background: #f9fafb;
  border-color: #9ca3af;
}

.lang-option.active {
  background: #002244;
  color: white;
  border-color: #002244;
  box-shadow: 0 4px 16px rgba(0, 34, 68, 0.3);
  font-weight: 600;
}

.lang-option.current {
  background: #eff6ff;
  border-color: #3b82f6;
  color: #1e40af;
  font-weight: 600;
}

.lang-icon {
  display: inline-block;
  font-size: 18px;
  width: 24px;
  text-align: center;
  line-height: 1;
}

.lang-flag {
  display: inline-block;
  font-size: 20px;
  line-height: 1;
}

.lang-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.lang-name {
  display: inline-block;
  font-size: 0.7rem;
  opacity: 0.7;
  font-weight: 500;
  line-height: 1;
}

.lang-option.active .lang-name {
  opacity: 0.9;
}

/* ==================== OVERLAY ==================== */
.lang-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.02);
  z-index: 1000;
  display: none;
}

.lang-overlay.visible {
  display: block;
}

/* ==================== SELECTOR MÓVIL ==================== */
/* Oculto por defecto en desktop, visible solo en mobile via _navigation.css @media */
.hea-lang-mobile {
  display: none;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background: #002244;
  color: white;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  font-family: var(--font-base);
  font-weight: 700;
  font-size: 0.9rem;
  letter-spacing: 0.5px;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0, 34, 68, 0.2);
  margin-right: 12px;
  margin-left: 0;
  outline: none;
  box-sizing: border-box;
}

.hea-lang-mobile:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0, 34, 68, 0.3);
}

.hea-lang-mobile:active {
  transform: translateY(0);
}

.hea-lang-mobile.active {
  background: #003366;
}

.lang-code-mobile {
  display: block;
}

/* Panel desplegable móvil */
.lang-mobile-panel {
  position: fixed;
  top: 72px;
  left: 0;
  right: 0;
  background: #ffffff;
  border-bottom: 2px solid #e5e7eb;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  max-height: 0;
  overflow: hidden;
  z-index: 1001;
  transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
  opacity: 0;
}

.lang-mobile-panel.visible {
  max-height: 100px;
  opacity: 1;
  animation: langMobileFadeIn 0.3s ease;
}

/* Contenedor de opciones en horizontal */
.lang-mobile-options {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
}

/* Cada opción de idioma */
.lang-mobile-option {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 60px;
  height: 44px;
  padding: 0 16px;
  background: #f8f9fa;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  text-decoration: none;
  transition: all 0.25s ease;
  cursor: pointer;
  box-sizing: border-box;
}

.lang-mobile-option:hover {
  border-color: #002B45;
  background: white;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 43, 69, 0.15);
}

.lang-mobile-option.active {
  background: #002244;
  border-color: #002244;
  box-shadow: 0 4px 16px rgba(0, 34, 68, 0.25);
}

.lang-mobile-code {
  font-family: var(--font-base);
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.5px;
  color: #0f3a5c;
}

.lang-mobile-option.active .lang-mobile-code {
  color: white;
}

/* Animación de entrada */
@keyframes langMobileFadeIn {
  from {
    opacity: 0;
    max-height: 0;
  }
  to {
    opacity: 1;
    max-height: 100px;
  }
}

/* ==================== RESPONSIVE ==================== */
@media (max-width: 1024px) {
  .hea-nav .hea-buscador,
  .btn-contacto,
  .language-selector.desktop-only {
    display: none;
  }
}

/* ==================== ACCESIBILIDAD ==================== */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}


/* ─── css/components/footer-premium.css ─── */
/**
 * FOOTER PREMIUM - Samsung Minimalist Design 2026
 * Prefijo: ftr-
 * Tecnologico, minimalista, lujoso
 */

/* ================================================================== */
/* VARIABLES                                                          */
/* ================================================================== */
.ftr-footer {
    --ftr-bg: #001a33;
    --ftr-bg-dark: #001225;
    --ftr-bg-subtle: #002040;
    --ftr-border: rgba(255, 255, 255, 0.1);
    --ftr-text: rgba(255, 255, 255, 0.7);
    --ftr-text-muted: rgba(255, 255, 255, 0.5);
    --ftr-text-bright: rgba(255, 255, 255, 0.95);
    --ftr-accent: #00a3ff;
    --ftr-accent-glow: rgba(0, 163, 255, 0.2);
    --ftr-white: #fff;
    --ftr-transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --ftr-radius: 8px;
}

/* ================================================================== */
/* MAIN FOOTER                                                        */
/* ================================================================== */
.ftr-footer {
    background: linear-gradient(165deg, #002B45 0%, #001a33 40%, #001225 100%);
    color: var(--ftr-text);
    font-size: 0.9375rem;
    line-height: 1.6;
    position: relative;
    overflow: hidden;
}

/* Gradient accent line at top */
.ftr-footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--ftr-accent) 30%,
        var(--ftr-accent) 70%,
        transparent 100%
    );
    opacity: 0.6;
}

/* ================================================================== */
/* MAIN CONTENT AREA                                                  */
/* ================================================================== */
.ftr-main {
    padding: 5rem 0 4rem;
}

.ftr-grid {
    display: grid;
    grid-template-columns: 1.25fr 1fr 1fr 1fr;
    gap: 3.5rem;
}

/* ================================================================== */
/* BRAND COLUMN                                                       */
/* ================================================================== */
.ftr-brand {
    max-width: 320px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.ftr-logo {
    display: block;
    margin-bottom: 1.5rem;
    text-decoration: none;
}

.ftr-logo img {
    height: 44px;
    width: auto;
    transition: var(--ftr-transition);
}

.ftr-logo:hover img {
    opacity: 0.8;
}

.ftr-tagline {
    font-size: 0.875rem;
    color: var(--ftr-text-muted);
    margin: 0 0 1.5rem;
    line-height: 1.7;
    max-width: 280px;
}

/* Social Links */
.ftr-social {
    display: flex;
    gap: 0.75rem;
}

.ftr-social__link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: var(--ftr-white);
    text-decoration: none;
    transition: var(--ftr-transition);
}

.ftr-social__link:hover {
    background: var(--ftr-accent);
    border-color: var(--ftr-accent);
    color: var(--ftr-white);
    transform: translateY(-2px);
    box-shadow: 0 4px 20px var(--ftr-accent-glow);
}

.ftr-social__link i {
    font-size: 20px;
    line-height: 1;
}

/* ================================================================== */
/* NAVIGATION COLUMNS                                                 */
/* ================================================================== */
.ftr-nav {
    display: flex;
    flex-direction: column;
}

.ftr-nav__title {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--ftr-text-bright);
    margin: 0 0 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--ftr-border);
}

.ftr-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.ftr-nav__link {
    display: inline-flex;
    align-items: center;
    font-size: 0.875rem;
    color: var(--ftr-text);
    text-decoration: none;
    transition: var(--ftr-transition);
    position: relative;
}

.ftr-nav__link::before {
    content: '';
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 0;
    height: 1px;
    background: var(--ftr-accent);
    transition: var(--ftr-transition);
}

.ftr-nav__link:hover {
    color: var(--ftr-accent);
}

.ftr-nav__link:hover::before {
    width: 100%;
}

/* ================================================================== */
/* CONTACT SECTION                                                    */
/* ================================================================== */
.ftr-contact {
    display: flex;
    flex-direction: column;
}

.ftr-contact__item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.ftr-contact__item:last-child {
    margin-bottom: 0;
}

.ftr-contact__icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    color: var(--ftr-accent);
    margin-top: 2px;
}

.ftr-contact__icon svg {
    width: 100%;
    height: 100%;
}

.ftr-contact__text {
    font-size: 0.875rem;
    color: var(--ftr-text);
    line-height: 1.5;
}

.ftr-contact__text a {
    color: var(--ftr-text);
    text-decoration: none;
    transition: var(--ftr-transition);
}

.ftr-contact__text a:hover {
    color: var(--ftr-white);
}

/* ================================================================== */
/* SUBFOOTER                                                          */
/* ================================================================== */
.ftr-sub {
    padding: 1.5rem 0;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(0, 10, 20, 0.5);
}

.ftr-sub__grid {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    flex-wrap: wrap;
}

.ftr-copyright {
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.4);
    margin: 0;
}

.ftr-legal {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.ftr-legal__link {
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.5);
    text-decoration: none;
    transition: var(--ftr-transition);
}

.ftr-legal__link:hover {
    color: var(--ftr-accent);
}

.ftr-credit {
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.4);
    margin: 0;
}

.ftr-credit a {
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    transition: var(--ftr-transition);
}

.ftr-credit a:hover {
    color: var(--ftr-accent);
}

/* ================================================================== */
/* RESPONSIVE                                                         */
/* ================================================================== */

/* Tablet landscape */
@media (max-width: 1024px) {
    .ftr-grid {
        grid-template-columns: 1fr 1fr;
        gap: 2.5rem 2rem;
    }

    .ftr-brand {
        grid-column: 1 / -1;
        max-width: 100%;
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
        padding-bottom: 1.5rem;
        border-bottom: 1px solid var(--ftr-border);
        margin-bottom: 0.5rem;
    }

    .ftr-social {
        justify-content: center;
    }

    /* Contact spans full width on tablet landscape */
    .ftr-nav:last-child {
        grid-column: 1 / -1;
        padding-top: 1.5rem;
        border-top: 1px solid var(--ftr-border);
    }

    .ftr-contact {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5rem;
    }

    .ftr-contact__item {
        margin-bottom: 0;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 0.5rem;
    }

    .ftr-contact__icon {
        margin-top: 0;
    }
}

/* Reset card styles for tablet landscape (only apply below 768px) */
@media (min-width: 769px) and (max-width: 1024px) {
    .ftr-nav {
        background: transparent;
        border: none;
        padding: 0;
        border-radius: 0;
    }

    .ftr-nav:last-child {
        background: transparent;
        border: none;
        border-top: 1px solid var(--ftr-border);
    }

    .ftr-nav__title {
        border-bottom: 1px solid var(--ftr-border);
        padding-bottom: 0.75rem;
    }
}

/* Tablet portrait & large phones */
@media (max-width: 768px) {
    .ftr-main {
        padding: 2.5rem 0 2rem;
    }

    .ftr-grid {
        grid-template-columns: 1fr 1fr;
        gap: 1.25rem 1rem;
    }

    .ftr-brand {
        padding-bottom: 1.25rem;
        margin-bottom: 0.5rem;
    }

    .ftr-logo img {
        height: 38px;
    }

    .ftr-tagline {
        font-size: 0.8125rem;
        margin-bottom: 1.25rem;
    }

    /* Nav columns with subtle card effect */
    .ftr-nav {
        background: rgba(255, 255, 255, 0.02);
        border-radius: var(--ftr-radius);
        padding: 1.25rem;
        border: 1px solid rgba(255, 255, 255, 0.04);
    }

    .ftr-nav__title {
        font-size: 0.625rem;
        margin-bottom: 1rem;
        padding-bottom: 0;
        border-bottom: none;
    }

    .ftr-nav__list {
        gap: 0.5rem;
    }

    .ftr-nav__link {
        font-size: 0.8125rem;
    }

    .ftr-nav__link::before {
        display: none;
    }

    /* Contact column - full width with accent style */
    .ftr-nav:last-child {
        grid-column: 1 / -1;
        background: linear-gradient(135deg, rgba(0, 163, 255, 0.05) 0%, rgba(0, 163, 255, 0.02) 100%);
        border-color: rgba(0, 163, 255, 0.1);
    }

    .ftr-contact {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 1rem;
    }

    .ftr-contact__item {
        margin-bottom: 0;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 0.5rem;
    }

    .ftr-contact__text {
        font-size: 0.8125rem;
    }

    /* Subfooter */
    .ftr-sub {
        padding: 1.25rem 0;
    }

    .ftr-sub__grid {
        flex-direction: column;
        text-align: center;
        gap: 0.875rem;
    }

    .ftr-copyright {
        font-size: 0.8125rem;
        order: 2;
    }

    .ftr-legal {
        justify-content: center;
        gap: 0.875rem;
        order: 1;
    }

    .ftr-legal__link {
        font-size: 0.8125rem;
    }

    .ftr-credit {
        font-size: 0.75rem;
        order: 3;
    }
}

/* Mobile phones */
@media (max-width: 540px) {
    .ftr-main {
        padding: 2rem 0 1.75rem;
    }

    .ftr-grid {
        grid-template-columns: 1fr 1fr;
        gap: 1.25rem 1rem;
    }

    .ftr-brand {
        padding-bottom: 1.25rem;
        margin-bottom: 0.25rem;
    }

    .ftr-logo img {
        height: 34px;
    }

    .ftr-tagline {
        font-size: 0.75rem;
        max-width: 260px;
        margin-bottom: 1rem;
    }

    .ftr-social__link {
        width: 40px;
        height: 40px;
    }

    .ftr-social__link i {
        font-size: 18px;
    }

    /* Nav columns with subtle card effect */
    .ftr-nav {
        background: rgba(255, 255, 255, 0.02);
        border-radius: var(--ftr-radius);
        padding: 1rem;
        border: 1px solid rgba(255, 255, 255, 0.04);
    }

    .ftr-nav__title {
        font-size: 0.5625rem;
        letter-spacing: 0.12em;
        margin-bottom: 0.75rem;
        padding-bottom: 0;
        border-bottom: none;
    }

    .ftr-nav__list {
        gap: 0.375rem;
    }

    .ftr-nav__link {
        font-size: 0.75rem;
    }

    /* Contact column - full width with different style */
    .ftr-nav:last-child {
        background: linear-gradient(135deg, rgba(0, 163, 255, 0.05) 0%, rgba(0, 163, 255, 0.02) 100%);
        border-color: rgba(0, 163, 255, 0.1);
    }

    /* Contact: stack address on top, phone/email side by side */
    .ftr-contact {
        grid-template-columns: 1fr 1fr;
        gap: 1rem;
    }

    .ftr-contact__item:first-child {
        grid-column: 1 / -1;
    }

    .ftr-contact__text {
        font-size: 0.75rem;
    }

    .ftr-contact__icon {
        width: 18px;
        height: 18px;
    }

    /* Subfooter */
    .ftr-sub {
        padding: 1rem 0;
    }

    .ftr-sub__grid {
        gap: 0.75rem;
    }

    .ftr-copyright {
        font-size: 0.75rem;
    }

    .ftr-legal {
        gap: 0.625rem;
        flex-wrap: wrap;
    }

    .ftr-legal__link {
        font-size: 0.75rem;
    }

    .ftr-credit {
        font-size: 0.6875rem;
    }
}

/* Very small phones */
@media (max-width: 380px) {
    .ftr-grid {
        gap: 1.5rem 0.75rem;
    }

    .ftr-nav__link {
        font-size: 0.6875rem;
    }

    .ftr-contact__text {
        font-size: 0.6875rem;
    }

    .ftr-legal {
        flex-direction: column;
        gap: 0.5rem;
    }
}

/* ================================================================== */
/* REDUCED MOTION                                                     */
/* ================================================================== */
@media (prefers-reduced-motion: reduce) {
    .ftr-footer *,
    .ftr-footer *::before,
    .ftr-footer *::after {
        transition: none !important;
    }
}


/* ─── css/icons.css ─── */
/* Iconos bootstrap-icons usados por la web, autoalojados como mask (auditoría 8-jul).
   Sustituye al CDN completo (~85 KB) manteniendo el markup <i class="bi bi-X"> intacto. */
.bi{display:inline-block;width:1em;height:1em;vertical-align:-.125em;background-color:currentColor;-webkit-mask:var(--bi) no-repeat center/contain;mask:var(--bi) no-repeat center/contain}
.bi-award{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-award' viewBox='0 0 16 16'%3E %3Cpath d='M9.669.864 8 0 6.331.864l-1.858.282-.842 1.68-1.337 1.32L2.6 6l-.306 1.854 1.337 1.32.842 1.68 1.858.282L8 12l1.669-.864 1.858-.282.842-1.68 1.337-1.32L13.4 6l.306-1.854-1.337-1.32-.842-1.68zm1.196 1.193.684 1.365 1.086 1.072L12.387 6l.248 1.506-1.086 1.072-.684 1.365-1.51.229L8 10.874l-1.355-.702-1.51-.229-.684-1.365-1.086-1.072L3.614 6l-.25-1.506 1.087-1.072.684-1.365 1.51-.229L8 1.126l1.356.702z'/%3E %3Cpath d='M4 11.794V16l4-1 4 1v-4.206l-2.018.306L8 13.126 6.018 12.1z'/%3E %3C/svg%3E")}
.bi-chat-square-text{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-chat-square-text' viewBox='0 0 16 16'%3E %3Cpath d='M14 1a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1h-2.5a2 2 0 0 0-1.6.8L8 14.333 6.1 11.8a2 2 0 0 0-1.6-.8H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1zM2 0a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2.5a1 1 0 0 1 .8.4l1.9 2.533a1 1 0 0 0 1.6 0l1.9-2.533a1 1 0 0 1 .8-.4H14a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2z'/%3E %3Cpath d='M3 3.5a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5M3 6a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9A.5.5 0 0 1 3 6m0 2.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5'/%3E %3C/svg%3E")}
.bi-check-lg{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-check-lg' viewBox='0 0 16 16'%3E %3Cpath d='M12.736 3.97a.733.733 0 0 1 1.047 0c.286.289.29.756.01 1.05L7.88 12.01a.733.733 0 0 1-1.065.02L3.217 8.384a.757.757 0 0 1 0-1.06.733.733 0 0 1 1.047 0l3.052 3.093 5.4-6.425z'/%3E %3C/svg%3E")}
.bi-envelope-paper-fill{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-envelope-paper-fill' viewBox='0 0 16 16'%3E %3Cpath fill-rule='evenodd' d='M6.5 9.5 3 7.5v-6A1.5 1.5 0 0 1 4.5 0h7A1.5 1.5 0 0 1 13 1.5v6l-3.5 2L8 8.75zM1.059 3.635 2 3.133v3.753L0 5.713V5.4a2 2 0 0 1 1.059-1.765M16 5.713l-2 1.173V3.133l.941.502A2 2 0 0 1 16 5.4zm0 1.16-5.693 3.337L16 13.372v-6.5Zm-8 3.199 7.941 4.412A2 2 0 0 1 14 16H2a2 2 0 0 1-1.941-1.516zm-8 3.3 5.693-3.162L0 6.873v6.5Z'/%3E %3C/svg%3E")}
.bi-envelope{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-envelope' viewBox='0 0 16 16'%3E %3Cpath d='M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1zm13 2.383-4.708 2.825L15 11.105zm-.034 6.876-5.64-3.471L8 9.583l-1.326-.795-5.64 3.47A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.741M1 11.105l4.708-2.897L1 5.383z'/%3E %3C/svg%3E")}
.bi-exclamation-triangle-fill{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-exclamation-triangle-fill' viewBox='0 0 16 16'%3E %3Cpath d='M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5m.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2'/%3E %3C/svg%3E")}
.bi-gear{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-gear' viewBox='0 0 16 16'%3E %3Cpath d='M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492M5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0'/%3E %3Cpath d='M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.377l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115z'/%3E %3C/svg%3E")}
.bi-geo-alt{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-geo-alt' viewBox='0 0 16 16'%3E %3Cpath d='M12.166 8.94c-.524 1.062-1.234 2.12-1.96 3.07A32 32 0 0 1 8 14.58a32 32 0 0 1-2.206-2.57c-.726-.95-1.436-2.008-1.96-3.07C3.304 7.867 3 6.862 3 6a5 5 0 0 1 10 0c0 .862-.305 1.867-.834 2.94M8 16s6-5.686 6-10A6 6 0 0 0 2 6c0 4.314 6 10 6 10'/%3E %3Cpath d='M8 8a2 2 0 1 1 0-4 2 2 0 0 1 0 4m0 1a3 3 0 1 0 0-6 3 3 0 0 0 0 6'/%3E %3C/svg%3E")}
.bi-graph-up{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-graph-up' viewBox='0 0 16 16'%3E %3Cpath fill-rule='evenodd' d='M0 0h1v15h15v1H0zm14.817 3.113a.5.5 0 0 1 .07.704l-4.5 5.5a.5.5 0 0 1-.74.037L7.06 6.767l-3.656 5.027a.5.5 0 0 1-.808-.588l4-5.5a.5.5 0 0 1 .758-.06l2.609 2.61 4.15-5.073a.5.5 0 0 1 .704-.07'/%3E %3C/svg%3E")}
.bi-linkedin{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-linkedin' viewBox='0 0 16 16'%3E %3Cpath d='M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854zm4.943 12.248V6.169H2.542v7.225zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248S2.4 3.226 2.4 3.934c0 .694.521 1.248 1.327 1.248zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016l.016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225z'/%3E %3C/svg%3E")}
.bi-people{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-people' viewBox='0 0 16 16'%3E %3Cpath d='M15 14s1 0 1-1-1-4-5-4-5 3-5 4 1 1 1 1zm-7.978-1L7 12.996c.001-.264.167-1.03.76-1.72C8.312 10.629 9.282 10 11 10c1.717 0 2.687.63 3.24 1.276.593.69.758 1.457.76 1.72l-.008.002-.014.002zM11 7a2 2 0 1 0 0-4 2 2 0 0 0 0 4m3-2a3 3 0 1 1-6 0 3 3 0 0 1 6 0M6.936 9.28a6 6 0 0 0-1.23-.247A7 7 0 0 0 5 9c-4 0-5 3-5 4q0 1 1 1h4.216A2.24 2.24 0 0 1 5 13c0-1.01.377-2.042 1.09-2.904.243-.294.526-.569.846-.816M4.92 10A5.5 5.5 0 0 0 4 13H1c0-.26.164-1.03.76-1.724.545-.636 1.492-1.256 3.16-1.275ZM1.5 5.5a3 3 0 1 1 6 0 3 3 0 0 1-6 0m3-2a2 2 0 1 0 0 4 2 2 0 0 0 0-4'/%3E %3C/svg%3E")}
.bi-send-fill{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-send-fill' viewBox='0 0 16 16'%3E %3Cpath d='M15.964.686a.5.5 0 0 0-.65-.65L.767 5.855H.766l-.452.18a.5.5 0 0 0-.082.887l.41.26.001.002 4.995 3.178 3.178 4.995.002.002.26.41a.5.5 0 0 0 .886-.083zm-1.833 1.89L6.637 10.07l-.215-.338a.5.5 0 0 0-.154-.154l-.338-.215 7.494-7.494 1.178-.471z'/%3E %3C/svg%3E")}
.bi-shield-check{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-shield-check' viewBox='0 0 16 16'%3E %3Cpath d='M5.338 1.59a61 61 0 0 0-2.837.856.48.48 0 0 0-.328.39c-.554 4.157.726 7.19 2.253 9.188a10.7 10.7 0 0 0 2.287 2.233c.346.244.652.42.893.533q.18.085.293.118a1 1 0 0 0 .101.025 1 1 0 0 0 .1-.025q.114-.034.294-.118c.24-.113.547-.29.893-.533a10.7 10.7 0 0 0 2.287-2.233c1.527-1.997 2.807-5.031 2.253-9.188a.48.48 0 0 0-.328-.39c-.651-.213-1.75-.56-2.837-.855C9.552 1.29 8.531 1.067 8 1.067c-.53 0-1.552.223-2.662.524zM5.072.56C6.157.265 7.31 0 8 0s1.843.265 2.928.56c1.11.3 2.229.655 2.887.87a1.54 1.54 0 0 1 1.044 1.262c.596 4.477-.787 7.795-2.465 9.99a11.8 11.8 0 0 1-2.517 2.453 7 7 0 0 1-1.048.625c-.28.132-.581.24-.829.24s-.548-.108-.829-.24a7 7 0 0 1-1.048-.625 11.8 11.8 0 0 1-2.517-2.453C1.928 10.487.545 7.169 1.141 2.692A1.54 1.54 0 0 1 2.185 1.43 63 63 0 0 1 5.072.56'/%3E %3Cpath d='M10.854 5.146a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708 0l-1.5-1.5a.5.5 0 1 1 .708-.708L7.5 7.793l2.646-2.647a.5.5 0 0 1 .708 0'/%3E %3C/svg%3E")}
.bi-sliders{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-sliders' viewBox='0 0 16 16'%3E %3Cpath fill-rule='evenodd' d='M11.5 2a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3M9.05 3a2.5 2.5 0 0 1 4.9 0H16v1h-2.05a2.5 2.5 0 0 1-4.9 0H0V3zM4.5 7a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3M2.05 8a2.5 2.5 0 0 1 4.9 0H16v1H6.95a2.5 2.5 0 0 1-4.9 0H0V8zm9.45 4a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3m-2.45 1a2.5 2.5 0 0 1 4.9 0H16v1h-2.05a2.5 2.5 0 0 1-4.9 0H0v-1z'/%3E %3C/svg%3E")}
.bi-telephone{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-telephone' viewBox='0 0 16 16'%3E %3Cpath d='M3.654 1.328a.678.678 0 0 0-1.015-.063L1.605 2.3c-.483.484-.661 1.169-.45 1.77a17.6 17.6 0 0 0 4.168 6.608 17.6 17.6 0 0 0 6.608 4.168c.601.211 1.286.033 1.77-.45l1.034-1.034a.678.678 0 0 0-.063-1.015l-2.307-1.794a.68.68 0 0 0-.58-.122l-2.19.547a1.75 1.75 0 0 1-1.657-.459L5.482 8.062a1.75 1.75 0 0 1-.46-1.657l.548-2.19a.68.68 0 0 0-.122-.58zM1.884.511a1.745 1.745 0 0 1 2.612.163L6.29 2.98c.329.423.445.974.315 1.494l-.547 2.19a.68.68 0 0 0 .178.643l2.457 2.457a.68.68 0 0 0 .644.178l2.189-.547a1.75 1.75 0 0 1 1.494.315l2.306 1.794c.829.645.905 1.87.163 2.611l-1.034 1.034c-.74.74-1.846 1.065-2.877.702a18.6 18.6 0 0 1-7.01-4.42 18.6 18.6 0 0 1-4.42-7.009c-.362-1.03-.037-2.137.703-2.877z'/%3E %3C/svg%3E")}
.bi-x-lg{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-x-lg' viewBox='0 0 16 16'%3E %3Cpath d='M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8z'/%3E %3C/svg%3E")}


/* ─── css/components/cookie-banner.css ─── */
/* ============================================
   COOKIE BANNER & MODAL · F27 reestilizado
   Paleta del sitio · Inter · sin border-radius (D16)
   Color principal #00a8e8 (no negro) · fondo dark navy
   ============================================ */

:root {
  --cookie-bg-banner: #0f1d2f;
  --cookie-bg-banner-border: rgba(255, 255, 255, 0.08);
  --cookie-text-on-dark: #fff;
  --cookie-text-on-dark-2: rgba(255, 255, 255, 0.78);
  --cookie-text-on-dark-3: rgba(255, 255, 255, 0.55);
  --cookie-primary: #00a8e8;
  --cookie-primary-dark: #0090c7;
  --cookie-ink: #0f1d2f;
  --cookie-ink-2: #4b5563;
  --cookie-line: #e5e7eb;
  --cookie-surface: #fff;
  --cookie-surface-alt: #f6f8fa;
}

/* ==================== BANNER ==================== */
.cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--cookie-bg-banner);
  color: var(--cookie-text-on-dark);
  padding: 24px 32px;
  z-index: 9999;
  border-top: 1px solid var(--cookie-bg-banner-border);
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}
.cookie-banner.hidden {
  transform: translateY(100%);
  opacity: 0;
  pointer-events: none;
}
.cookie-banner-content {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
.cookie-banner-text { flex: 1; }
.cookie-banner-title {
  font-size: 16px;
  font-weight: 600;
  margin: 0 0 6px 0;
  color: var(--cookie-text-on-dark);
  letter-spacing: -0.01em;
}
.cookie-banner-description {
  font-size: 13.5px;
  line-height: 1.55;
  margin: 0;
  color: var(--cookie-text-on-dark-2);
}
.cookie-banner-link {
  color: var(--cookie-primary);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
  transition: color 0.2s ease;
}
.cookie-banner-link:hover { color: #4dc8ff; }
.cookie-banner-actions {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}

/* ==================== BOTONES (sin border-radius, Inter) ==================== */
.cookie-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 22px;
  border-radius: 0;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: 0.01em;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  white-space: nowrap;
  text-decoration: none;
  line-height: 1.2;
}
.cookie-btn-primary {
  background: var(--cookie-primary);
  color: #fff;
  border-color: var(--cookie-primary);
}
.cookie-btn-primary:hover {
  background: var(--cookie-primary-dark);
  border-color: var(--cookie-primary-dark);
}
.cookie-btn-secondary {
  background: transparent;
  color: var(--cookie-text-on-dark);
  border-color: rgba(255, 255, 255, 0.35);
}
.cookie-btn-secondary:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.6);
}
.cookie-btn-settings {
  background: transparent;
  color: var(--cookie-text-on-dark-2);
  border-color: rgba(255, 255, 255, 0.18);
}
.cookie-btn-settings:hover {
  color: var(--cookie-text-on-dark);
  border-color: rgba(255, 255, 255, 0.4);
}
.cookie-btn-block { width: 100%; }

/* ==================== MODAL ==================== */
.cookie-modal {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px 24px;
  transition: opacity 0.3s ease;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}
.cookie-modal.hidden {
  opacity: 0;
  pointer-events: none;
}
.cookie-modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(15, 29, 47, 0.72);
  backdrop-filter: blur(4px);
}
.cookie-modal-content {
  position: relative;
  background: var(--cookie-surface);
  border-radius: 0;
  max-width: 720px;
  width: 100%;
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--cookie-line);
  box-shadow: 0 24px 60px rgba(15, 29, 47, 0.25);
  animation: cookieModalIn 0.28s cubic-bezier(0.4, 0, 0.2, 1);
}
@keyframes cookieModalIn {
  from { transform: translateY(16px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}
.cookie-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 32px;
  border-bottom: 1px solid var(--cookie-line);
}
.cookie-modal-title {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: var(--cookie-ink);
  letter-spacing: -0.01em;
}
.cookie-modal-close {
  background: none;
  border: none;
  font-size: 20px;
  cursor: pointer;
  color: var(--cookie-ink-2);
  padding: 8px;
  border-radius: 0;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.18s ease, color 0.18s ease;
}
.cookie-modal-close:hover {
  background: var(--cookie-surface-alt);
  color: var(--cookie-ink);
}
.cookie-modal-body {
  padding: 28px 32px;
  overflow-y: auto;
  flex: 1;
}
.cookie-modal-intro {
  margin: 0 0 24px 0;
  font-size: 14px;
  line-height: 1.65;
  color: var(--cookie-ink-2);
}
.cookie-modal-footer {
  padding: 20px 32px;
  border-top: 1px solid var(--cookie-line);
}

/* ==================== CATEGORÍAS ==================== */
.cookie-category {
  margin-bottom: 18px;
  padding: 20px;
  background: var(--cookie-surface-alt);
  border-radius: 0;
  border: 1px solid var(--cookie-line);
}
.cookie-category:last-child { margin-bottom: 0; }
.cookie-category-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}
.cookie-category-info { flex: 1; }
.cookie-category-title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 8px 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--cookie-ink);
}
.cookie-category-title i { color: var(--cookie-primary); font-size: 16px; }
.cookie-category-badge {
  display: inline-block;
  padding: 4px 10px;
  background: rgba(0, 168, 232, 0.12);
  color: var(--cookie-primary);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border-radius: 0;
  margin-left: 8px;
}
.cookie-category-description {
  margin: 0;
  font-size: 13px;
  line-height: 1.6;
  color: var(--cookie-ink-2);
}

/* ==================== TOGGLE (cuadrado, sin border-radius) ==================== */
.cookie-toggle { flex-shrink: 0; }
.cookie-toggle input[type="checkbox"] { display: none; }
.cookie-toggle label {
  display: block;
  width: 48px;
  height: 26px;
  background: #d1d5db;
  border-radius: 0;
  position: relative;
  cursor: pointer;
  transition: background 0.22s ease;
}
.cookie-toggle label::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  background: #fff;
  border-radius: 0;
  transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}
.cookie-toggle input[type="checkbox"]:checked + label { background: var(--cookie-primary); }
.cookie-toggle input[type="checkbox"]:checked + label::after { transform: translateX(22px); }
.cookie-toggle input[type="checkbox"]:disabled + label {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ==================== RESPONSIVE ==================== */
@media (max-width: 1024px) {
  .cookie-banner-content {
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
  }
  .cookie-banner-actions { flex-wrap: wrap; }
  .cookie-btn { flex: 1; min-width: 120px; }
}
@media (max-width: 640px) {
  .cookie-banner { padding: 20px 16px; }
  .cookie-banner-title { font-size: 15px; }
  .cookie-banner-description { font-size: 13px; }
  .cookie-banner-actions { flex-direction: column; gap: 8px; }
  .cookie-btn { width: 100%; padding: 13px 16px; }
  .cookie-modal { padding: 16px; }
  .cookie-modal-header,
  .cookie-modal-body,
  .cookie-modal-footer { padding: 20px; }
  .cookie-category { padding: 16px; }
  .cookie-category-header { flex-direction: column; gap: 14px; }
  .cookie-toggle { align-self: flex-start; }
}


/* ─── css/components/contact-modal.css ─── */
/**
 * Contact Modal CSS · F29 · DOS modales:
 *   .contact-modal-overlay → DESKTOP (iframe)
 *   .con-modal.overlay     → MOBILE (form inline)
 * Sin border-radius · paleta del sitio · estilo editorial premium.
 */

/* =========================================================================
 * DESKTOP · iframe overlay
 * ========================================================================= */
.contact-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 29, 47, 0.72);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    z-index: 10001;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 24px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.32s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.32s;
}
.contact-modal-overlay.active { opacity: 1; visibility: visible; }
.contact-modal {
    background: #fff;
    width: 100%;
    max-width: 880px;
    height: 88vh;
    max-height: 880px;
    display: flex;
    flex-direction: column;
    border: 1px solid #e5e7eb;
    box-shadow: 0 24px 60px rgba(15, 29, 47, 0.3);
    transform: translateY(16px);
    transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}
.contact-modal-overlay.active .contact-modal { transform: translateY(0); }
.contact-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 22px 28px;
    border-bottom: 1px solid #e5e7eb;
    flex-shrink: 0;
}
.contact-modal__title {
    margin: 0;
    font-family: 'Inter', sans-serif;
    font-size: 18px;
    font-weight: 600;
    color: #0f1d2f;
    letter-spacing: -0.01em;
}
.contact-modal__close {
    background: none;
    border: none;
    cursor: pointer;
    color: #4b5563;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.18s ease, color 0.18s ease;
}
.contact-modal__close:hover { background: #f6f8fa; color: #0f1d2f; }
.contact-modal__close svg { width: 20px; height: 20px; }
.contact-modal__body { flex: 1; overflow: hidden; }
.contact-modal__iframe { width: 100%; height: 100%; border: none; display: block; }

/* Ocultar modal desktop en mobile (allí abre el inline) */
@media (max-width: 768px) {
    .contact-modal-overlay { display: none !important; }
}

/* =========================================================================
 * MOBILE · modal inline simple
 * ========================================================================= */
.con-modal.overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 29, 47, 0.78);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    z-index: 10001;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 0;
    opacity: 1;
    pointer-events: auto;
    transition: opacity 0.32s cubic-bezier(0.22, 1, 0.36, 1);
    font-family: 'Inter', sans-serif;
}
.con-modal.overlay.oculto {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
}
.con-modal.ventana {
    background: #fff;
    width: 100%;
    max-width: 600px;
    max-height: 92vh;
    overflow-y: auto;
    padding: 28px 24px 32px;
    position: relative;
    transform: translateY(0);
    transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
    border-top: 1px solid #e5e7eb;
}
.con-modal.overlay.oculto .con-modal.ventana { transform: translateY(100%); }
.con-modal.cerrar {
    position: absolute;
    top: 14px;
    right: 18px;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 26px;
    line-height: 1;
    color: #6b7280;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.18s ease;
}
.con-modal.cerrar:hover { color: #0f1d2f; }
.con-modal.h2 {
    margin: 0 0 22px;
    font-family: 'Inter', sans-serif;
    font-size: 22px;
    font-weight: 600;
    color: #0f1d2f;
    letter-spacing: -0.01em;
    padding-right: 36px;
}
.con-modal.form { display: flex; flex-direction: column; gap: 16px; }
.con-modal.grupo { display: flex; flex-direction: column; gap: 6px; }
.con-modal.grupo label {
    font-size: 11.5px;
    font-weight: 600;
    color: #1f2937;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}
.con-modal.grupo input,
.con-modal.grupo textarea {
    border: 0;
    border-bottom: 1px solid #d1d5db;
    background: transparent;
    padding: 10px 0;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    color: #0f1d2f;
    border-radius: 0;
    width: 100%;
    box-sizing: border-box;
    transition: border-color 0.22s ease;
}
.con-modal.grupo input:focus,
.con-modal.grupo textarea:focus {
    outline: none;
    border-bottom-color: #0f1d2f;
}
.con-modal.grupo textarea { min-height: 100px; resize: vertical; line-height: 1.55; }
.con-modal.acepto {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 12.5px;
    color: #4b5563;
    line-height: 1.5;
    cursor: pointer;
    margin-top: 4px;
}
.con-modal.acepto input { margin-top: 3px; flex-shrink: 0; }
.con-modal.acepto a { color: #00a8e8; }
.con-modal.submit {
    margin-top: 8px;
    width: 100%;
    justify-content: center;
}
.con-modal.status {
    padding: 11px 14px;
    font-size: 13px;
    border-radius: 0;
    border-left: 3px solid;
    display: none;
}
.con-modal.status.sending { display: block; background: #f0f9ff; border-color: #00a8e8; color: #0f1d2f; }
.con-modal.status.ok      { display: block; background: #ecfdf5; border-color: #10b981; color: #065f46; }
.con-modal.status.error   { display: block; background: #fef2f2; border-color: #ef4444; color: #991b1b; }

/* Ocultar modal mobile en desktop */
@media (min-width: 769px) {
    .con-modal.overlay { display: none !important; }
}

@media (max-width: 768px) {
    .con-modal.ventana { padding: 24px 20px 28px; max-height: 88vh; }
}


/* ─── css/components/contact-fab.css ─── */
/**
 * Contact FAB · F28 rev. editorial premium (estilo portocarrero wa-float)
 * Fondo navy casi negro · icono ámbar sutil · pulso solo en border.
 * Sin border-radius · sin gradient saturado · sin glow.
 */

.contact-fab {
    position: fixed;
    right: 1.5rem;
    bottom: 1.5rem;
    z-index: 1200;
    display: flex;
    align-items: center;
    flex-direction: row-reverse;
    gap: 12px;
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1),
                transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.contact-fab[data-state="hidden"] {
    opacity: 0;
    transform: translateY(14px);
    pointer-events: none;
}

/* Botón cuadrado · fondo navy (header) · sobre blanco · pulso ámbar en border */
.contact-fab__btn {
    width: 52px;
    height: 52px;
    border-radius: 0;
    background: #14213D;
    border: 1px solid rgba(252, 163, 17, 0.1);
    color: #ffffff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.22, 1, 0.36, 1);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    padding: 0;
    animation: contactFabPulse 4s ease-in-out infinite;
}

/* Hover · navy ligeramente más claro + border ámbar visible · sube 3px */
.contact-fab__btn:hover {
    background: #1a2a4e;
    border-color: rgba(252, 163, 17, 0.55);
    transform: translateY(-3px);
    box-shadow: 0 8px 30px rgba(252, 163, 17, 0.18);
}

.contact-fab__btn:focus-visible {
    outline: none;
    border-color: rgba(252, 163, 17, 0.6);
}

/* Icono sobre · blanco pleno */
.contact-fab__icon {
    font-size: 20px;
    opacity: 1;
    transition: opacity 0.3s ease;
    line-height: 1;
}
.contact-fab__btn:hover .contact-fab__icon {
    opacity: 1;
}

/* Glow (lo dejamos pero invisible — borrar el div en el HTML rompería el patrón) */
.contact-fab__glow { display: none; }

/* Pulso · border ámbar parpadeando sobre fondo navy */
@keyframes contactFabPulse {
    0%, 100% { border-color: rgba(252, 163, 17, 0.15); }
    50%      { border-color: rgba(252, 163, 17, 0.5); }
}
.contact-fab__btn:hover { animation: none; }

/* Tooltip · mismo lenguaje editorial · oculto por defecto */
.contact-fab__tooltip {
    background: rgba(20, 24, 36, 0.92);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: rgba(255, 255, 255, 0.78);
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.02em;
    padding: 7px 12px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    white-space: nowrap;
    opacity: 0;
    transform: translateX(6px);
    transition: opacity 0.32s cubic-bezier(0.22, 1, 0.36, 1),
                transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: none;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
}
.contact-fab:hover .contact-fab__tooltip,
.contact-fab__btn:focus-visible ~ .contact-fab__tooltip {
    opacity: 1;
    transform: translateX(0);
}

/* Mobile · sin tooltip */
@media (max-width: 768px) {
    .contact-fab { right: 1.25rem; bottom: 1.25rem; }
    .contact-fab__btn { width: 48px; height: 48px; }
    .contact-fab__icon { font-size: 18px; }
    .contact-fab__tooltip { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .contact-fab__btn { animation: none; transition: none; }
    .contact-fab__btn:hover { transform: none; }
}

/* ───────── Mini-menú móvil (3 opciones encima del botón) ───────── */
.contact-fab__menu {
    position: absolute;
    right: 0;
    bottom: calc(100% + 14px);
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 220px;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.24s cubic-bezier(0.22, 1, 0.36, 1),
                transform 0.24s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: none;
}
.contact-fab__menu[hidden] { display: none; }
.contact-fab.is-open .contact-fab__menu {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.contact-fab__opt {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: #14213D;
    color: #ffffff;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.01em;
    border: 1px solid rgba(252, 163, 17, 0.18);
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.22);
    transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}
.contact-fab__opt:hover,
.contact-fab__opt:focus-visible {
    background: #1a2a4e;
    border-color: rgba(252, 163, 17, 0.55);
    outline: none;
    transform: translateX(-2px);
}
.contact-fab__opt-icon {
    font-size: 18px;
    color: #FCA311;
    line-height: 1;
    flex-shrink: 0;
}

/* Indicar estado abierto en el botón: el sobre rota suave */
.contact-fab.is-open .contact-fab__btn { animation: none; border-color: rgba(252, 163, 17, 0.6); }
.contact-fab.is-open .contact-fab__icon { transform: rotate(8deg); }

