/**
 * GPD Theme - Main Stylesheet
 *
 * @package GPD_Theme
 * @since 1.0.0
 */

/* ==========================================================================
   CSS Custom Properties
   ========================================================================== */

:root {
    /* Colors - Palette from Figma design */
    --color-primary: #194F90;
    --color-primary-dark: #123B6D;
    --color-secondary: #221C35;
    --color-accent: #EA0029;
    --color-accent-dark: #C40022;
    --color-link: #0953FF;
    --color-white: #FFFFFF;
    --color-black: #000000;
    --color-gray-100: #F5F5F5;
    --color-gray-200: #E8E8E8;
    --color-gray-300: #D0D0D0;
    --color-gray-400: #A0A0A0;
    --color-gray-500: #707070;
    --color-gray-600: #505050;
    --color-gray-700: #333333;
    --color-gray-800: #221C35;
    --color-success: #28A745;
    --color-warning: #FFC107;
    --color-error: #DC3545;

    /* Typography */
    --font-primary: 'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-heading: 'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

    /* Font Sizes */
    --text-xs: 0.75rem;
    --text-sm: 0.875rem;
    --text-base: 1rem;
    --text-lg: 1.125rem;
    --text-xl: 1.25rem;
    --text-2xl: 1.5rem;
    --text-3xl: 1.875rem;
    --text-4xl: 2.25rem;
    --text-5xl: 3rem;

    /* Spacing */
    --space-xs: 0.25rem;
    --space-sm: 0.5rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2rem;
    --space-2xl: 3rem;
    --space-3xl: 4rem;
    --space-4xl: 6rem;

    /* Layout */
    --container-max: 1200px;
    --container-wide: 1400px;
    --container-padding: 1.5rem;
    --header-height: 80px;

    /* Border Radius */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-full: 9999px;

    /* Shadows */
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);
    --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.1);

    /* Transitions */
    --transition-fast: 150ms ease;
    --transition-base: 300ms ease;
    --transition-slow: 500ms ease;
}

/* ==========================================================================
   Reset & Base
   ========================================================================== */

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: var(--font-primary);
    font-size: var(--text-base);
    line-height: 1.6;
    color: var(--color-gray-800);
    background-color: var(--color-white);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: var(--color-primary);
    text-decoration: none;
    transition: color var(--transition-fast);
}

a:hover {
    color: var(--color-primary-dark);
}

a:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

ul, ol {
    list-style: none;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    font-weight: 700;
    line-height: 1.2;
    color: var(--color-gray-800);
}

h1 { font-size: var(--text-4xl); }
h2 { font-size: var(--text-3xl); }
h3 { font-size: var(--text-2xl); }
h4 { font-size: var(--text-xl); }

/* ==========================================================================
   Layout
   ========================================================================== */

.container {
    width: 100%;
    max-width: var(--container-max);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
}

.container--wide {
    max-width: var(--container-wide);
}

.site-main {
    min-height: calc(100vh - var(--header-height));
}

/* ==========================================================================
   Accessibility
   ========================================================================== */

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal;
}

.skip-link {
    position: fixed;
    top: -100%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10000;
    background: var(--color-primary);
    color: var(--color-white);
    padding: var(--space-sm) var(--space-lg);
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    transition: top var(--transition-fast);
}

.skip-link:focus {
    top: 0;
    color: var(--color-white);
}

/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background-color: var(--color-white);
    box-shadow: none;
    height: var(--header-height);
    transition: box-shadow var(--transition-fast);
}

.site-header.is-scrolled {
    box-shadow: var(--shadow-sm);
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
}

.site-branding {
    transition: opacity 0.4s ease, visibility 0.4s ease;
}

.site-branding--hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.site-branding img {
    max-height: 140px;
    margin-top: 50px;
    width: auto;
    transition: max-height var(--transition-base), margin-top var(--transition-base);
}

.site-header.is-scrolled .site-branding img {
    max-height: 50px;
    margin-top: 0;
}

.site-title {
    font-family: var(--font-heading);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--color-gray-800);
}

.site-title:hover {
    color: var(--color-primary);
}

/* Navigation */
.main-navigation {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
}

.primary-menu {
    display: flex;
    align-items: center;
    gap: var(--space-md);
}

.primary-menu li {
    position: relative;
}

.primary-menu a {
    display: block;
    padding: var(--space-sm) var(--space-md);
    color: var(--color-gray-700);
    font-size: var(--text-sm);
    font-weight: 500;
    transition: color var(--transition-fast);
}

/* First-level: red underline on hover and active */
.primary-menu > li > a {
    position: relative;
}
.primary-menu > li > a::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: var(--space-md);
    right: var(--space-md);
    height: 2px;
    background-color: var(--color-accent);
    transform: scaleX(0);
    transition: transform var(--transition-fast);
}
.primary-menu > li:hover > a::before {
    transform: scaleX(1);
}
.primary-menu > li.current-menu-item > a::before,
.primary-menu > li.current-menu-ancestor > a::before {
    transform: scaleX(1);
}

.primary-menu a:hover,
.primary-menu .current-menu-item > a,
.primary-menu .current-menu-ancestor > a {
    color: var(--color-primary);
}

/* Chevron for items with submenus */
.primary-menu .menu-item-has-children > a {
    display: flex;
    align-items: center;
    gap: 4px;
}
.primary-menu .menu-item-has-children > a::after {
    content: '\e5cc';
    font-family: 'Material Symbols Outlined';
    font-size: 1.25rem;
    line-height: 1;
    color: inherit;
    transition: color var(--transition-fast), transform var(--transition-fast);
}
.primary-menu .menu-item-has-children:hover > a::after {
    color: var(--color-accent);
    transform: rotate(90deg);
}

/* Submenu (level 2) */
.primary-menu .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    background-color: var(--color-white);
    box-shadow: var(--shadow-lg);
    border-radius: var(--radius-md);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all var(--transition-fast);
    z-index: 100;
}

.primary-menu li:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.primary-menu .sub-menu a {
    padding: var(--space-sm) var(--space-lg);
    font-size: var(--text-sm);
}

/* Mega-menu: when level 2 has level 3 children, display as row */
.primary-menu > li > .sub-menu:has(.sub-menu) {
    display: flex;
    flex-wrap: nowrap;
    min-width: auto;
    width: max-content;
    padding: var(--space-md) var(--space-sm);
    gap: 0;
}
.primary-menu > li > .sub-menu:has(.sub-menu) > li {
    flex: 1 0 auto;
    min-width: 180px;
    position: relative;
}
.primary-menu > li > .sub-menu:has(.sub-menu) > li > a {
    font-weight: 600;
    color: var(--color-primary);
    padding: var(--space-xs) var(--space-md);
    border-bottom: 1px solid var(--color-gray-200);
    margin-bottom: var(--space-xs);
}

/* Level 3: always visible below its parent, no absolute positioning */
.primary-menu > li > .sub-menu > li > .sub-menu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    min-width: auto;
    background: transparent;
    border-radius: 0;
    padding: 0;
}
.primary-menu > li > .sub-menu > li > .sub-menu a {
    padding: var(--space-xs) var(--space-md);
    font-weight: 400;
    color: var(--color-gray-700);
}
.primary-menu > li > .sub-menu > li > .sub-menu a:hover {
    color: var(--color-accent);
}

/* Hide chevron on level 2 items inside mega-menu */
.primary-menu > li > .sub-menu:has(.sub-menu) > .menu-item-has-children > a::after {
    display: none;
}

/* Submenu toggle button (injected by JS, hidden on desktop) */
.submenu-toggle {
    display: none;
}

/* Mobile Menu Toggle */
.menu-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: var(--space-sm);
}

.hamburger-line {
    display: block;
    width: 24px;
    height: 2px;
    background-color: var(--color-gray-800);
    transition: transform var(--transition-fast);
}

/* Language Switcher */
.header-language-switcher {
    margin-left: var(--space-md);
    position: relative;
}

/* ==========================================================================
   GTranslate Float Widget Override (adaptado al diseño GPD)
   ========================================================================== */

/* Contenedor principal */
.gt_float_switcher {
    z-index: 9999 !important;
    font-family: var(--font-heading) !important;
    font-size: var(--text-sm) !important;
    border-radius: 0;
    color: var(--color-gray-600);
    box-shadow: none !important;
}

/* Ocultar banderas por defecto */
.gt_float_switcher img {
    display: none !important;
}

/* Fondo transparente del toggle */
.gt_float_switcher .gt-current-lang {
    background: transparent !important;
    position: relative;
    padding: 10px 0px 10px 40px !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
    cursor: pointer;
    background-color: var(--color-white) !important;
}

.gt_float_switcher .gt-selected .gt-current-lang {
    font-weight: 600 !important;
    color: var(--color-gray-800) !important;
}

/* Icono de globo */
.gt_float_switcher .gt-current-lang::before {
    content: "";
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23003da5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20'/%3E%3Cpath d='M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}

/* Chevron dropdown */
.gt_float_switcher .gt-current-lang .gt-dropdown-trigger::after {
    content: "" !important;
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 12px;
    height: 8px;
    background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23333' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    font-size: 0;
    transition: transform 0.3s ease;
}

.gt_float_switcher.gt-open .gt-dropdown-trigger::after {
    transform: translateY(-50%) rotate(180deg) !important;
}

/* Dropdown panel */
.gt_float_switcher .gt-switcher {
    background: transparent !important;
}

.gt_float_switcher .gt_options {
    position: absolute !important;
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    z-index: 777;
    max-height: 250px;
    padding: 8px 0;
    overflow-y: auto;
    transform: translateX(0px);
    opacity: 0;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.3, 1.1, 0.4, 1.1);
}

.gt_float_switcher .gt_options.gt-open {
    transform: translateX(0px) translateY(40px) !important;
    opacity: 1;
}

.gt_float_switcher .gt_options a {
    display: block;
    text-decoration: none;
    padding: 10px 20px !important;
    color: var(--color-gray-700);
    font-family: var(--font-heading);
    font-weight: 500;
    transition: all 0.2s ease;
}

.gt_float_switcher .gt_options a:hover {
    background: var(--color-primary) !important;
    color: var(--color-white) !important;
}

/* Mobile */
@media (max-width: 768px) {
    .gt_float_switcher {
        right: 15px !important;
        bottom: 15px !important;
    }

    .gt_float_switcher .gt-current-lang {
        padding: 8px 32px 8px 36px !important;
    }
}

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer {
    background-color: var(--color-gray-800);
    color: var(--color-gray-300);
    padding: var(--space-4xl) 0 var(--space-xl);
}

.footer-inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-2xl);
}

.footer-branding img {
    max-height: 40px;
    width: auto;

}

.footer-navigation .footer-menu {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-md);
}

.footer-menu a {
    color: var(--color-gray-300);
    font-size: var(--text-sm);
}

.footer-menu a:hover {
    color: var(--color-white);
}

.footer-bottom {
    border-top: 1px solid var(--color-gray-600);
    padding-top: var(--space-lg);
    margin-top: var(--space-2xl);
}

.copyright {
    font-size: var(--text-sm);
    color: var(--color-gray-400);
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.btn {
    display: inline-block;
    padding: var(--space-sm) var(--space-xl);
    font-family: var(--font-primary);
    font-size: var(--text-sm);
    font-weight: 600;
    text-align: center;
    border: 2px solid transparent;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
    text-decoration: none;
}

.btn-primary {
    background-color: var(--color-primary);
    color: var(--color-white);
    border-color: var(--color-primary);
}

.btn-primary:hover {
    background-color: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    color: var(--color-white);
}

.btn-secondary {
    background-color: transparent;
    color: var(--color-primary);
    border-color: var(--color-primary);
}

.btn-secondary:hover {
    background-color: var(--color-primary);
    color: var(--color-white);
}

/* ==========================================================================
   Hero Banner
   ========================================================================== */

.hero-banner {
    position: relative;
    min-height: 500px;
    display: flex;
    align-items: center;
    background-size: cover;
    background-position: center;
    background-color: var(--color-gray-800);
}

.hero-banner::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, rgba(0,0,0,0.7), rgba(0,0,0,0.2));
}

.hero-content {
    position: relative;
    z-index: 1;
    max-width: 600px;
    color: var(--color-white);
}

.hero-title {
    font-size: var(--text-5xl);
    color: var(--color-white);
    margin-bottom: var(--space-md);
}

.hero-subtitle {
    font-size: var(--text-lg);
    opacity: 0.9;
    line-height: 1.6;
}

/* ==========================================================================
   Page Hero (inner pages)
   ========================================================================== */

.page-hero {
    background-color: var(--color-gray-100);
    padding: var(--space-3xl) 0;
}

.page-title,
.archive-title {
    font-size: var(--text-4xl);
    margin-bottom: var(--space-md);
}

/* ==========================================================================
   Breadcrumbs
   ========================================================================== */

.breadcrumbs {
    padding: var(--space-md) 0;
    font-size: var(--text-sm);
}

.breadcrumb-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 var(--container-padding);
}

.breadcrumb-list li::after {
    content: '/';
    margin-left: var(--space-xs);
    color: var(--color-gray-400);
}

.breadcrumb-list li:last-child::after {
    content: '';
}

.breadcrumb-list a {
    color: var(--color-gray-500);
}

.breadcrumb-list a:hover {
    color: var(--color-primary);
}

/* ==========================================================================
   Cards
   ========================================================================== */

.content-card,
.news-card,
.estacion-card,
.team-member-card {
    background: var(--color-white);
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: box-shadow var(--transition-fast), transform var(--transition-fast);
}

.content-card:hover,
.news-card:hover,
.estacion-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

.news-card__content,
.estacion-card__content,
.content-card__body {
    padding: var(--space-lg);
}

.news-card__category,
.estacion-card__region {
    display: inline-block;
    font-size: var(--text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-primary);
    margin-bottom: var(--space-sm);
}

.news-card__title,
.estacion-card__title,
.content-card__title {
    font-size: var(--text-lg);
    margin-bottom: var(--space-sm);
}

.news-card__title a,
.estacion-card__title a,
.content-card__title a {
    color: var(--color-gray-800);
}

.news-card__title a:hover,
.estacion-card__title a:hover,
.content-card__title a:hover {
    color: var(--color-primary);
}

.news-card__excerpt,
.estacion-card__excerpt,
.content-card__excerpt {
    font-size: var(--text-sm);
    color: var(--color-gray-500);
    margin-bottom: var(--space-md);
}

.news-card__meta {
    font-size: var(--text-xs);
    color: var(--color-gray-400);
}

/* Team Member Card */
.team-member-card {
    text-align: center;
    padding-bottom: var(--space-lg);
}

.member-photo img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.member-info {
    padding: var(--space-lg) var(--space-md);
}

.member-name {
    font-size: var(--text-lg);
    margin-bottom: var(--space-xs);
}

.member-position {
    font-size: var(--text-sm);
    color: var(--color-gray-500);
    margin-bottom: var(--space-xs);
}

.member-department {
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-primary);
}

/* ==========================================================================
   Grids
   ========================================================================== */

.novedades-grid,
.estaciones-grid,
.archive-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: var(--space-xl);
    margin: var(--space-2xl) 0;
}

/* .equipo-grid — definición principal en sección Equipo más abajo (línea ~2294) */

/* ==========================================================================
   Filters & Tabs
   ========================================================================== */

.filter-list,
.tabs-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    margin-bottom: var(--space-xl);
}

.filter-item,
.tab-item {
    display: inline-block;
    padding: var(--space-sm) var(--space-lg);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--color-gray-600);
    background-color: var(--color-gray-100);
    border-radius: var(--radius-full);
    transition: all var(--transition-fast);
}

.filter-item:hover,
.tab-item:hover {
    background-color: var(--color-gray-200);
    color: var(--color-gray-800);
}

.filter-item.active,
.tab-item.active {
    background-color: var(--color-primary);
    color: var(--color-white);
}

/* ==========================================================================
   CTA Section
   ========================================================================== */

.cta-section {
    background-color: var(--color-primary);
    color: var(--color-white);
    padding: var(--space-4xl) 0;
    text-align: center;
}

.cta-title {
    color: var(--color-white);
    margin-bottom: var(--space-md);
}

.cta-text {
    max-width: 600px;
    margin: 0 auto var(--space-xl);
    opacity: 0.9;
}

/* ==========================================================================
   Contact Page
   ========================================================================== */

.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3xl);
    padding: var(--space-3xl) 0;
}

.contact-item {
    margin-bottom: var(--space-xl);
}

.contact-item h3 {
    font-size: var(--text-base);
    margin-bottom: var(--space-sm);
}

/* ==========================================================================
   Social Links
   ========================================================================== */

.social-links {
    display: flex;
    gap: var(--space-md);
}

.social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-full);
    background-color: var(--color-gray-100);
    transition: background-color var(--transition-fast);
}

.social-link:hover {
    background-color: var(--color-primary);
}

/* ==========================================================================
   Btn Link (Ver más)
   ========================================================================== */

.btn-link {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-xs);
    color: var(--color-accent);
    font-weight: 700;
    font-size: var(--text-base);
    transition: gap var(--transition-fast);
}

.btn-link:hover {
    color: var(--color-accent-dark);
    gap: var(--space-sm);
}

.btn-link svg {
    width: 24px;
    height: 24px;
}

/* ==========================================================================
   Home Sections
   ========================================================================== */

.home-section {
    padding: var(--space-4xl) 0;
}

.section-title {
    font-size: 2.5rem;
    color: var(--color-primary);
    text-transform: uppercase;
    font-weight: 400;
}

.section-cta {
    text-align: center;
    margin-top: var(--space-2xl);
}

/* ==========================================================================
   Hero Slider
   ========================================================================== */

.hero-slider {
    position: relative;
    overflow: hidden;
}

.hero-slide {
    position: relative;
    min-height: 100vh;
}

/* ── Slide Principal: fondo dividido, contenido izq, imagen der ── */
.hero-slide--principal {
    display: grid;
    grid-template-columns: 50% 50%;
    max-width: 1920px;
    margin-inline: auto;
    min-height: 100vh;
}

/* Sin imagen: texto ocupa todo el ancho, layout centrado */
.hero-slide--principal.hero-slide--no-image {
    grid-template-columns: 100%;
}

.hero-slide--principal.hero-slide--no-image .hero-slide__content {
    max-width: var(--container-max);
    margin-inline: auto;
    padding: var(--space-4xl) var(--container-padding) var(--space-3xl);
}

.hero-slide--principal.hero-slide--no-image .hero-slide__top {
    align-items: center;
    justify-content: center;
    text-align: center;
}

.hero-slide--principal.hero-slide--no-image .hero-slide__title {
    font-size: clamp(2rem, 3.8vw, 4.5rem);
    white-space: nowrap;
}

.hero-slide--principal.hero-slide--no-image .hero-slide__bottom {
    align-items: flex-start;
    max-width: 700px;
}

/* Fondo dividido: blanco arriba, oscuro abajo — cubre todo el ancho */
.hero-slide--principal::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        var(--color-white) 50%,
        var(--color-secondary) 50%,
        var(--color-secondary) 90%,
        var(--color-white) 90%
    );
    z-index: 0;
}

/* ── Slide Brand: logo + nombre empresa sobre fondo oscuro ── */
.hero-slide--brand {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: calc(100vh + var(--header-height));
    margin-top: calc(-1 * var(--header-height));
    padding-top: var(--header-height);
    background-color: var(--color-secondary);
    position: relative;
}

/* Header transparente cuando el slide brand está activo (clase via JS) */
.has-brand-slide .site-header {
    background-color: transparent;
    box-shadow: none;
}

.has-brand-slide .site-header .primary-menu > li > a,
.has-brand-slide .site-header .menu-toggle .hamburger-line,
.has-brand-slide .site-header .header-language-switcher {
    color: var(--color-white);
}

.has-brand-slide .site-header .primary-menu > li > a::after {
    border-color: var(--color-white);
}

/* Al hacer scroll, restaurar header normal */
.has-brand-slide .site-header.is-scrolled {
    background-color: var(--color-white);
    box-shadow: var(--shadow-sm);
}

.has-brand-slide .site-header.is-scrolled .primary-menu > li > a,
.has-brand-slide .site-header.is-scrolled .header-language-switcher {
    color: inherit;
}

.has-brand-slide .site-header.is-scrolled .primary-menu > li > a::after {
    border-color: currentColor;
}

.hero-slide-brand__main {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: var(--space-3xl);
    padding: 0 var(--container-padding);
    max-width: var(--container-max);
    margin-inline: auto;
    width: 100%;
}

.hero-slide-brand__logo {
    flex-shrink: 0;
}

.hero-slide-brand__logo-img {
    width: auto;
    height: auto;
    max-height: 220px;
    max-width: 260px;
    object-fit: contain;
    display: block;
}

.hero-slide-brand__name {
    font-family: var(--font-heading);
    font-size: clamp(2.5rem, 4.5vw, 4.5rem);
    font-weight: 400;
    color: var(--color-white);
    line-height: 1.1;
    letter-spacing: 0.02em;
}

.hero-slide-brand__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2xl);
    padding: var(--space-2xl) var(--container-padding) var(--space-3xl);
    max-width: var(--container-max);
    margin-inline: auto;
    width: 100%;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.hero-slide-brand__tagline {
    font-size: var(--text-lg);
    font-weight: 300;
    color: var(--color-white);
    line-height: 1.5;
    letter-spacing: 0.03em;
    opacity: 0.9;
}

/* ── Slide Normal: imagen de fondo completa como enlace ── */
.hero-slide--normal {
    display: flex;
    align-items: center;
    background-color: var(--color-secondary);
    background-size: cover;
    background-position: center;
    text-decoration: none;
}

a.hero-slide--normal {
    display: flex;
    min-height: 100vh;
    cursor: pointer;
}

a.hero-slide--normal:hover {
    opacity: 0.95;
}

/* ── Contenido del slide principal (columna izquierda) ── */
.hero-slide__content {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: var(--space-4xl) var(--space-lg) var(--space-3xl) max(var(--container-padding), calc((100vw - var(--container-max)) / 2 + var(--container-padding)));
}

.hero-slide__top {
    display: flex;
    align-items: flex-end;
    flex: 1;
}

.hero-slide__bottom {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex: 1;
    padding-top: var(--space-xl);
}

/* Título en la zona blanca */
.hero-slide__title {
    font-size: 3.3rem;
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1.1;
    margin-bottom: var(--space-xl);
}

/* Subtítulo en la zona oscura */
.hero-slide__subtitle {
    font-size: 1.5rem;
    font-weight: 300;
    color: var(--color-white);
    line-height: 1.4;
    letter-spacing: 0.03em;
    margin-bottom: var(--space-xl);
}

.hero-slide__btn {
    display: inline-block;
    padding: 10px 24px;
    border: 2px solid var(--color-white);
    border-radius: 5px;
    color: var(--color-white);
    font-weight: 700;
    font-size: var(--text-sm);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    transition: all var(--transition-fast);
    align-self: flex-start;
}

.hero-slide__btn:hover {
    background-color: var(--color-white);
    color: var(--color-secondary);
}

/* ── Imagen a la derecha (columna derecha) ── */
.hero-slide__image {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-slide__img {
    width: 65%;
    max-height: 70vh;
    object-fit: contain;
    display: block;
}

/* Swiper pagination bullets */
.hero-bullet {
    display: inline-block;
    width: 30px;
    height: 4px;
    background-color: rgba(255, 255, 255, 0.4);
    border-radius: 2px;
    margin: 0 4px;
    cursor: pointer;
    transition: all var(--transition-fast);
}

.hero-bullet--active {
    width: 50px;
    background-color: var(--color-white);
}

.hero-slider .swiper-pagination {
    position: absolute;
    bottom: 40px;
    left: var(--container-padding);
    text-align: left;
    z-index: 10;
}

/* ==========================================================================
   Home: Quiénes Somos (extracto)
   ========================================================================== */

.home-about__grid {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--space-3xl);
    align-items: start;
    margin-bottom: var(--space-2xl);
}

.home-about__left {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.home-about__title {
    white-space: nowrap;
}

.home-about__text {
    font-size: var(--text-base);
    color: var(--color-gray-800);
    text-align: justify;
    letter-spacing: 0.05em;
    line-height: 1.6;
}

.home-about__image {
    border-radius: var(--radius-md);
    overflow: hidden;
}

.home-about__img,
.home-about__image img {
    width: 100%;
    height: auto;
    border-radius: var(--radius-md);
    object-fit: cover;
}

.home-about__img-placeholder {
    width: 100%;
    height: 300px;
    background-color: var(--color-gray-200);
    border-radius: var(--radius-md);
}

/* ==========================================================================
   Home: Banner Estaciones (CTA)
   ========================================================================== */

.home-estaciones {
    padding: 0;
}

.home-estaciones__bg {
    position: relative;
    min-height: 420px;
    display: flex;
    align-items: flex-start;
    background-size: cover;
    background-position: center;
    background-color: var(--color-gray-700);
}

.home-estaciones__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(89.8deg, rgba(0, 0, 0, 0.45) 30.5%, rgba(102, 102, 102, 0) 99.9%);
}

.home-estaciones__content {
    position: relative;
    z-index: 2;
    padding-top: var(--space-3xl);
    text-align: left;
}

.home-estaciones__title {
    font-size: 3.375rem;
    font-weight: 400;
    color: var(--color-white);
    line-height: 1.1;
    margin-bottom: var(--space-xl);
    text-shadow: 0 4px 4px rgba(0, 0, 0, 0.4);
    text-align: left;
    max-width: 473px;
}

.home-estaciones__title strong {
    font-weight: 700;
    font-size: 3rem;
}

/* ==========================================================================
   Home: Servicios
   ========================================================================== */

.home-servicios .container {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--space-3xl);
    align-items: start;
}

.home-servicios__header {
    display: contents;
}

.home-servicios__intro {
    font-size: var(--text-base);
    color: var(--color-gray-800);
    text-align: justify;
}

.home-servicios__grid {
    grid-column: 2;
    display: flex;
    flex-direction: column;
    gap: var(--space-3xl);
}

.servicio-item {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: var(--space-2xl);
    align-items: start;
}

.servicio-item__figure {
    width: 224px;
    height: 191px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
}

.servicio-item__figure img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.servicio-item__title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-gray-800);
    margin-bottom: var(--space-md);
}

.servicio-item__list {
    list-style: disc;
    padding-left: var(--space-xl);
}

.servicio-item__list li {
    font-size: var(--text-base);
    color: var(--color-gray-800);
    margin-bottom: var(--space-sm);
    line-height: 1.5;
}

/* ==========================================================================
   Home: Forma Parte de Nuestro Equipo
   ========================================================================== */

.home-empleos {
    padding: 0;
    margin: var(--space-4xl) 0;
    background-color: var(--color-primary);
}

.home-empleos__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 380px;
}

.home-empleos__image {
    position: relative;
    overflow: hidden;
    width: 562px;
    margin: -50px 0;
    margin-left: max(var(--container-padding), calc((100vw - var(--container-max)) / 2));
    border-radius: var(--radius-md);
}

.home-empleos__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.home-empleos__content {
    background-color: var(--color-primary);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: var(--space-3xl) var(--space-4xl);
}

.home-empleos__title {
    font-size: 2.5rem;
    font-weight: 400;
    color: var(--color-white);
    line-height: 1.2;
    margin-bottom: var(--space-lg);
}

.home-empleos__title strong {
    display: block;
    font-weight: 800;
}

.home-empleos__text {
    font-size: var(--text-base);
    color: var(--color-white);
    opacity: 0.9;
    line-height: 1.6;
    max-width: 440px;
}

.home-empleos__text a {
    color: var(--color-white);
    text-decoration: underline;
    font-weight: 600;
}

.home-empleos__text a:hover {
    opacity: 0.8;
}

/* ==========================================================================
   Home: Novedades
   ========================================================================== */

.home-novedades .container {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--space-3xl);
    align-items: start;
}

.home-novedades__header {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-sm);
}

.home-novedades__grid {
    grid-column: 2;
    grid-row: 1 / 3;
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
}

.home-novedad-card {
    position: relative;
    height: 284px;
    border-radius: var(--radius-md);
    overflow: hidden;
    cursor: pointer;
}

.home-novedad-card__image {
    position: absolute;
    inset: 0;
}

.home-novedad-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-novedad-card__overlay {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 50%;
    background-color: rgba(34, 28, 53, 0.85);
    border-radius: 0 60% var(--radius-lg) 0;
    z-index: 1;
    transition: width 0.4s ease, border-radius 0.4s ease;
}

.home-novedad-card:hover .home-novedad-card__overlay {
    width: 100%;
    border-radius: 0;
}

.home-novedad-card__content {
    position: relative;
    z-index: 2;
    padding: var(--space-xl) var(--space-lg);
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
    max-width: 50%;
}

.home-novedad-card__read-more {
    position: absolute;
    top: var(--space-lg);
    right: var(--space-lg);
    z-index: 3;
    color: var(--color-white);
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: 0.05em;
    opacity: 0;
    transform: translateX(-10px);
    transition: opacity 0.3s ease 0.1s, transform 0.3s ease 0.1s;
    display: flex;
    align-items: center;
    gap: var(--space-xs);
}

.home-novedad-card:hover .home-novedad-card__read-more {
    opacity: 1;
    transform: translateX(0);
}

.home-novedad-card__date {
    display: none;
}

.home-novedad-card__title {
    font-size: var(--text-base);
    font-weight: 700;
    letter-spacing: 0.05em;
    margin-bottom: var(--space-sm);
    color: var(--color-white);
}

.home-novedad-card__title a {
    color: var(--color-white);
}

.home-novedad-card__excerpt {
    font-size: var(--text-base);
    color: var(--color-white);
    line-height: 1.5;
    opacity: 0.9;
}

/* ==========================================================================
   Home: Contáctanos
   ========================================================================== */

.home-contacto {
    padding: 0;
}

/* Zona superior blanca */
.home-contacto__top {
    padding: var(--space-3xl) 0 var(--space-4xl);
}

.home-contacto__top-inner {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3xl);
}

.home-contacto__header {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-sm);
}

.home-contacto__title {
    flex-shrink: 0;
}

.home-contacto__top-items {
    display: flex;
    gap: var(--space-3xl);
    flex: 1;
}

/* Zona inferior oscura */
.home-contacto__bottom {
    background-color: var(--color-secondary);
    padding: var(--space-3xl) 0;
    position: relative;
}

.home-contacto__bottom-inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-3xl);
}

.home-contacto__bottom-items {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xl);
    flex-shrink: 0;
    width: 280px;
}

/* Mapa con forma del logo */
.home-contacto__map-wrapper {
    flex: 1;
    position: relative;
    margin-top: -120px;
    max-width: 600px;
    aspect-ratio: 494 / 414;
}

.home-contacto__map-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.home-contacto__map {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    clip-path: url(#gpd-map-clip);
    overflow: hidden;
}

.home-contacto__map iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

/* Items de contacto */
.contacto-item {
    display: flex;
    gap: var(--space-md);
    align-items: flex-start;
}

.contacto-item--dark {
    color: var(--color-white);
}

.contacto-item--dark h3 {
    color: var(--color-white);
}

.contacto-item--dark a {
    color: var(--color-white);
}

.contacto-item__icon {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.contacto-item__icon .material-symbols-outlined {
    color: var(--color-white);
    font-size: 24px;
}

.contacto-item__icon--primary {
    background-color: #221C35;
}

.contacto-item__icon--light {
    background-color: var(--color-white);
}

.contacto-item__icon--light .material-symbols-outlined {
    color: #221C35;
}

.contacto-item__info h3 {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin-bottom: var(--space-xs);
}

.contacto-item__info a {
    font-size: var(--text-sm);
    font-weight: 500;
    letter-spacing: 0.04em;
}

.contacto-item__info p {
    font-size: var(--text-sm);
    font-weight: 500;
    letter-spacing: 0.04em;
    line-height: 1.4;
}

/* Home contacto: estado sin mapa */
.home-contacto--no-map .home-contacto__top {
    padding-bottom: var(--space-3xl);
}

.home-contacto--no-map .home-contacto__top-items {
    flex-wrap: wrap;
    gap: var(--space-2xl) var(--space-3xl);
}

/* Contáctanos: estado sin mapa */
.contactanos-info--no-map .contactanos-info__top {
    padding-bottom: var(--space-3xl);
}

.contactanos-info--no-map .contactanos-info__top-items {
    max-width: none;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-2xl) var(--space-3xl);
}

.contactanos-info--no-map + .contactanos-form {
    padding-top: var(--space-4xl);
}

/* ==========================================================================
   Footer (updated)
   ========================================================================== */

.site-footer {
    background-color: var(--color-secondary);
    color: var(--color-white);
    padding: var(--space-3xl) 0 var(--space-lg);
}

.footer-top {
    display: flex;
    gap: var(--space-3xl);
}

.footer-branding {
    flex-shrink: 0;
}

.footer-branding .custom-logo-link img,
.footer-logo img {
    max-height: 94px;
    width: auto;

}

.footer-branding .social-links {
    display: flex;
    gap: var(--space-sm);
    margin-top: var(--space-lg);
    list-style: none;
    padding: 0;
}

.footer-branding .social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.15);
    transition: background-color var(--transition-base);
}

.footer-branding .social-link:hover {
    background-color: rgba(255, 255, 255, 0.3);
}

.footer-branding .social-link img {
    width: 16px;
    height: 16px;
    filter: brightness(0) invert(1);
}

/* Footer Navigation (same as main menu, all levels visible) */
.footer-nav {
    flex: 1;
}

.footer-primary-menu {
    display: flex;
    gap: var(--space-2xl);
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Level 1: top-level items as columns */
.footer-primary-menu > li {
    flex: 1;
}

.footer-primary-menu > li > a {
    display: block;
    font-family: var(--font-heading);
    font-size: var(--text-sm);
    font-weight: 400;
    color: var(--color-white);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: var(--space-md);
    padding: 0;
}

.footer-primary-menu > li > a:hover {
    opacity: 0.8;
}

/* Hide chevron in footer */
.footer-primary-menu .menu-item-has-children > a::after {
    display: none;
}

/* Hide desktop underline in footer */
.footer-primary-menu > li > a::before {
    display: none;
}

/* Level 2: sub-items always visible */
.footer-primary-menu .sub-menu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    background: transparent;
    border-radius: 0;
    min-width: auto;
    width: auto;
    display: block;
    padding: 0;
    margin: 0;
    list-style: none;
}

.footer-primary-menu .sub-menu li {
    margin-bottom: var(--space-xs);
}

.footer-primary-menu .sub-menu a {
    color: var(--color-white);
    font-size: var(--text-sm);
    font-weight: 600;
    line-height: 1.5;
    padding: 0;
    border: none;
}

.footer-primary-menu .sub-menu a:hover {
    opacity: 0.8;
}

/* Level 3: nested items */
.footer-primary-menu .sub-menu .sub-menu {
    padding-left: 0;
    margin-top: var(--space-xs);
}

.footer-primary-menu .sub-menu .sub-menu a {
    font-weight: 400;
    opacity: 0.9;
}

.footer-primary-menu .sub-menu .sub-menu a:hover {
    opacity: 1;
}

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    padding-top: var(--space-lg);
    margin-top: var(--space-lg);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.copyright {
    font-size: var(--text-sm);
    color: var(--color-white);
    opacity: 0.9;
}

.footer-bottom__logo {
    height: 24px;
    width: auto;
    filter: brightness(0) invert(1);
    opacity: 0.8;
    transition: opacity var(--transition-fast);
}

.footer-bottom__credit:hover .footer-bottom__logo {
    opacity: 1;
}

/* ==========================================================================
   Entry Content (single posts/pages)
   ========================================================================== */

.entry-content {
    padding: var(--space-3xl) 0;
}

.entry-content p {
    margin-bottom: var(--space-lg);
}

.entry-content h2 {
    margin-top: var(--space-2xl);
    margin-bottom: var(--space-md);
}

.entry-content h3 {
    margin-top: var(--space-xl);
    margin-bottom: var(--space-md);
}

.entry-content ul,
.entry-content ol {
    margin-bottom: var(--space-lg);
    padding-left: var(--space-xl);
}

.entry-content ul {
    list-style: disc;
}

.entry-content ol {
    list-style: decimal;
}

.entry-content li {
    margin-bottom: var(--space-sm);
}

.entry-content img {
    border-radius: var(--radius-md);
    margin: var(--space-xl) 0;
}

.entry-content blockquote {
    border-left: 4px solid var(--color-primary);
    padding-left: var(--space-xl);
    margin: var(--space-xl) 0;
    font-style: italic;
    color: var(--color-gray-600);
}

/* ==========================================================================
   Page: Quiénes Somos
   ========================================================================== */

.about-hero {
    padding: var(--space-lg) 0;
    margin-top: 50px;
}

.about-hero__img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--radius-md);
    object-fit: cover;
    max-height: 400px;
}

.about-nosotros {
    padding: var(--space-3xl) 0;
    text-align: center;
}

.about-nosotros__title {
    font-size: 2.5rem;
    font-weight: 400;
    color: var(--color-primary);
    margin-bottom: var(--space-sm);
}

.about-nosotros .breadcrumbs {
    padding: 0;
    margin-bottom: var(--space-2xl);
}

.about-nosotros .breadcrumb-list {
    justify-content: center;
    padding: 0;
}

.about-nosotros__text {
    max-width: 680px;
    margin: 0 auto;
    text-align: justify;
}

.about-nosotros__text p {
    font-size: var(--text-base);
    color: var(--color-secondary);
    line-height: 1.7;
    letter-spacing: 0.05em;
    margin-bottom: var(--space-lg);
}

.about-liderazgo {
    background-color: var(--color-primary);
    padding: var(--space-3xl) 0;
}

.about-liderazgo__inner {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3xl);
}

.about-liderazgo__title {
    font-size: 2.5rem;
    font-weight: 400;
    color: var(--color-white);
    white-space: nowrap;
    flex-shrink: 0;
}

.about-liderazgo__content {
    flex: 1;
}

.about-liderazgo__text {
    font-size: var(--text-base);
    color: var(--color-white);
    line-height: 1.7;
    text-align: justify;
    letter-spacing: 0.05em;
    margin-bottom: var(--space-xl);
}

.about-liderazgo__buttons {
    display: flex;
    gap: var(--space-lg);
    flex-wrap: wrap;
}

.btn--outline-white {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 20px;
    border: 2px solid var(--color-white);
    border-radius: var(--radius-sm);
    color: var(--color-white);
    font-size: var(--text-base);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: all var(--transition-base);
    background: transparent;
}

.btn--outline-white:hover {
    background-color: var(--color-white);
    color: var(--color-primary);
}

/* ==========================================================================
   Page: Nuestros Valores
   ========================================================================== */

.valores-hero {
    padding: var(--space-lg) 0;
    margin-top: 50px;
}

.valores-hero__img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--radius-md);
    object-fit: cover;
    max-height: 400px;
}

.valores-heading {
    padding: var(--space-3xl) 0 var(--space-xl);
    text-align: center;
}

.valores-heading__title {
    font-size: 2.5rem;
    font-weight: 400;
    color: var(--color-primary);
    margin-bottom: var(--space-sm);
}

.valores-heading .breadcrumbs {
    padding: 0;
    margin-bottom: 0;
}

.valores-heading .breadcrumb-list {
    justify-content: center;
    padding: 0;
}

/* Valores: Cards con overlay */
.valores-card {
    position: relative;
    border-radius: var(--radius-md);
    overflow: hidden;
    height: 284px;
}

.valores-card--full {
    width: 100%;
    height: 284px;
}

.valores-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.valores-card__overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 90px;
    background: rgba(30, 30, 30, 0.7);
    display: flex;
    align-items: center;
    padding: 0 var(--space-xl);
}

.valores-card__label {
    font-size: 2rem;
    font-weight: 400;
    color: var(--color-white);
    margin: 0;
}

.valores-card__label--standalone {
    font-size: 2rem;
    font-weight: 400;
    color: var(--color-primary);
    margin-bottom: var(--space-lg);
}

/* Valores: Secciones */
.valores-seccion {
    padding: var(--space-xl) 0;
}

.valores-seccion__text {
    font-size: var(--text-base);
    color: var(--color-secondary);
    line-height: 1.7;
    text-align: justify;
}

.valores-seccion__text--full {
    margin-top: var(--space-xl);
}

.valores-seccion__text p {
    margin-bottom: var(--space-md);
}

.valores-seccion__text strong {
    font-weight: 700;
}

/* Valores: Row layout (zigzag) */
.valores-row {
    display: grid;
    grid-template-columns: 440px 1fr;
    gap: var(--space-2xl);
    align-items: start;
}

.valores-row--reverse {
    grid-template-columns: 1fr 440px;
}

.valores-row--reverse .valores-row__text {
    order: 1;
}

.valores-row--reverse .valores-row__card {
    order: 2;
}

.valores-row__text {
    font-size: var(--text-base);
    color: var(--color-secondary);
    line-height: 1.7;
    text-align: justify;
}

.valores-row__text p {
    margin-bottom: var(--space-md);
}

.valores-row__text strong {
    font-weight: 700;
}

.valores-row__card .valores-card {
    width: 100%;
}

/* Valores: Principios Comerciales */
.valores-principios {
    background-color: var(--color-primary);
    padding: var(--space-3xl) 0;
    margin-top: var(--space-2xl);
}

.valores-principios__inner {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3xl);
}

.valores-principios__title {
    font-size: 2.5rem;
    font-weight: 400;
    color: var(--color-white);
    flex-shrink: 0;
    max-width: 282px;
}

.valores-principios__content {
    flex: 1;
}

.valores-principios__text {
    font-size: var(--text-base);
    color: var(--color-white);
    line-height: 1.7;
    text-align: justify;
    letter-spacing: 0.05em;
    margin-bottom: var(--space-xl);
}

.valores-principios__text p {
    margin-bottom: var(--space-md);
}

.valores-principios__actions {
    margin-top: var(--space-lg);
}

/* ==========================================================================
   Archive: Equipo (Comité Ejecutivo / Consejo de Directores)
   ========================================================================== */

.equipo-hero {
    padding: var(--space-lg) 0;
    margin-top: 50px;
}

.equipo-hero__img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--radius-md);
    object-fit: cover;
    max-height: 400px;
}

.equipo-heading {
    padding: var(--space-3xl) 0 var(--space-xl);
    text-align: center;
}

.equipo-heading__title {
    font-size: 2.5rem;
    font-weight: 400;
    color: var(--color-primary);
    margin-bottom: var(--space-sm);
}

.equipo-heading .breadcrumbs {
    padding: 0;
    margin-bottom: 0;
}

.equipo-heading .breadcrumb-list {
    justify-content: center;
    padding: 0;
}

/* Equipo: Members listing */
.equipo-listing {
    padding: var(--space-xl) 0 var(--space-3xl);
}

.equipo-members {
    margin: 0 auto;
}

.equipo-member {
    padding-bottom: var(--space-2xl);
    margin-bottom: var(--space-2xl);
    border-bottom: 1px solid var(--color-accent);
}

.equipo-member:last-child {
    border-bottom: none;
    margin-bottom: 0;
}

.equipo-member__header {
    margin-bottom: var(--space-2xl);
}

.equipo-member__name {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: var(--space-xs);
}

.equipo-member__position {
    font-size: var(--text-base);
    font-weight: 400;
    color: var(--color-primary);
    margin: 0;
}

.equipo-member__bio {
    font-size: var(--text-base);
    color: var(--color-black);
    line-height: 1.7;
    text-align: justify;
    letter-spacing: 0.05em;
}

.equipo-member__bio p {
    margin-bottom: var(--space-md);
}

.equipo-member__bio p:last-child {
    margin-bottom: 0;
}

/* Equipo: Miembro con foto (imagen izquierda, texto derecha) */
.equipo-member--has-photo {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: var(--space-2xl);
    align-items: start;
}

.equipo-member__photo {
    flex-shrink: 0;
}

.equipo-member__img {
    width: 100%;
    height: auto;
    border-radius: var(--radius-md);
    object-fit: cover;
    aspect-ratio: 3 / 4;
}

.equipo-member__info {
    min-width: 0;
}

/* Equipo: Grid layout (Consejo de Directores) */
.equipo-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-3xl) var(--space-2xl);
    max-width: none;
}

.equipo-grid .equipo-member {
    border-bottom: 1px solid var(--color-accent);
    padding-bottom: var(--space-xl);
    margin-bottom: 0;
}

.equipo-grid .equipo-member__header {
    margin-bottom: var(--space-lg);
}

.equipo-grid .equipo-member__name {
    font-size: 1.25rem;
}

.equipo-grid .equipo-member__bio {
    font-size: var(--text-sm);
    line-height: 1.6;
}

.equipo-empty {
    text-align: center;
    color: var(--color-gray-500);
    padding: var(--space-3xl) 0;
    font-size: var(--text-lg);
}

/* ==========================================================================
   Page: Techron
   ========================================================================== */

.techron-hero {
    padding: var(--space-lg) 0;
    margin-top: 50px;
}

.techron-hero__img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--radius-md);
    object-fit: cover;
    max-height: 400px;
}

.techron-heading {
    padding: var(--space-3xl) 0 var(--space-lg);
}

.techron-heading__title {
    font-size: 2.5rem;
    font-weight: 400;
    color: var(--color-primary);
    margin-bottom: var(--space-sm);
    max-width: 70%;
    text-transform: uppercase;
}

.techron-heading .container,
.techron-intro .container,
.techron-blue .container {
    max-width: 917px;
}

/* Techron: Intro */
.techron-intro {
    padding: 0 0 var(--space-3xl);
}

.techron-intro__text {
    font-size: var(--text-base);
    color: var(--color-black);
    line-height: 1.8;
    letter-spacing: 0.03em;
    max-width: 920px;
}

.techron-intro__text p {
    margin-bottom: var(--space-md);
}

.techron-intro__text p:last-child {
    margin-bottom: 0;
}

/* Techron: Blue section */
.techron-blue {
    background-color: var(--color-primary);
    padding: var(--space-3xl) 0;
}

.techron-blue__title {
    font-size: 2.5rem;
    font-weight: 400;
    color: var(--color-white);
    margin-bottom: var(--space-xl);
    text-transform: uppercase;
}

.techron-blue__text {
    font-size: var(--text-base);
    color: var(--color-white);
    line-height: 1.8;
    letter-spacing: 0.03em;
    max-width: 920px;
}

.techron-blue__text p {
    margin-bottom: var(--space-md);
}

.techron-blue__text p:last-child {
    margin-bottom: 0;
}

/* Techron: CTA Banner */
.techron-cta {
    position: relative;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-height: 500px;
    display: flex;
    align-items: center;
}

.techron-cta__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, rgb(0 0 0 / 47%) 0%, rgba(102, 102, 102, 0) 100%);
    z-index: 1;
}

.techron-cta__inner {
    position: relative;
    z-index: 2;
}

.techron-cta__title {
    font-size: 3rem;
    font-weight: 400;
    color: var(--color-white);
    max-width: 620px;
    line-height: 1.3;
    margin-bottom: var(--space-xl);
}

.techron-cta__btn {
    display: inline-block;
}

.btn--outline-white {
    background: transparent;
    color: var(--color-white);
    border: 1px solid var(--color-white);
    border-radius: var(--radius-sm);
    padding: var(--space-sm) var(--space-xl);
    font-size: var(--text-base);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: background-color var(--transition-normal), color var(--transition-normal);
    text-decoration: none;
    cursor: pointer;
}

.btn--outline-white:hover {
    background-color: var(--color-white);
    color: var(--color-primary);
}

/* ==========================================================================
   Page: Historia de Texaco
   ========================================================================== */

/* Historia: Hero */
.historia-hero {
    margin-top: 50px;
}

.historia-hero__img {
    width: 100%;
    max-height: 300px;
    object-fit: cover;
    border-radius: var(--radius-md);
    display: block;
}

/* Historia: Heading */
.historia-heading {
    padding: var(--space-2xl) 0 var(--space-lg);
}

.historia-heading .container {
    max-width: 917px;
    text-align: center;
}

.historia-heading__title {
    font-family: var(--font-heading);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--color-primary);
    text-transform: uppercase;
    margin-bottom: var(--space-sm);
}

.historia-heading .breadcrumbs {
    justify-content: center;
}

.historia-heading .breadcrumb-list {
    justify-content: center;
}

/* Historia: Intro */
.historia-intro {
    padding-bottom: var(--space-2xl);
}

.historia-intro .container {
    max-width: 917px;
}

.historia-intro__text {
    font-size: var(--text-lg);
    line-height: 1.8;
    color: var(--color-gray-600);
}

/* Historia: Timeline */
.historia-timeline {
    padding: var(--space-3xl) 0;
}

.historia-timeline__entries {
    max-width: 960px;
    margin: 0 auto;
}

/* Timeline entry: logo | marker | content */
.historia-entry {
    display: grid;
    grid-template-columns: 100px auto 1fr;
    gap: 0 var(--space-lg);
}

/* Logo column */
.historia-entry__logo {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 4px;
}

.historia-entry__logo-img {
    max-width: 80px;
    height: auto;
    display: block;
}

/* Marker column (dot + vertical line) */
.historia-entry__marker {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
}

.historia-entry__dot {
    width: 16px;
    height: 16px;
    background-color: var(--color-accent);
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 4px;
}

.historia-entry__line {
    width: 2px;
    flex: 1;
    background-color: var(--color-gray-300);
    margin-top: var(--space-xs);
}

.historia-entry:last-child .historia-entry__line {
    display: none;
}

/* Content column */
.historia-entry__content {
    padding-bottom: var(--space-2xl);
}

.historia-entry:last-child .historia-entry__content {
    padding-bottom: 0;
}

.historia-entry__year {
    display: none; /* Year is shown inside the title */
}

.historia-entry__title {
    font-family: var(--font-heading);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: var(--space-sm);
}

.historia-entry__desc {
    font-size: var(--text-base);
    line-height: 1.7;
    color: var(--color-gray-600);
}

.historia-entry__desc p {
    margin-bottom: var(--space-sm);
}

.historia-entry__desc p:last-child {
    margin-bottom: 0;
}

/* Historia: CTA Banner */
.historia-cta {
    position: relative;
    min-height: 583px;
    display: flex;
    align-items: flex-start;
    background-size: cover;
    background-position: center;
    background-color: var(--color-gray-700);
}

.historia-cta__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(89.8deg, rgba(0, 0, 0, 0.45) 30.5%, rgba(102, 102, 102, 0) 99.9%);
    z-index: 1;
}

.historia-cta__inner {
    position: relative;
    z-index: 2;
    padding-top: var(--space-3xl);
    text-align: left;
}

.historia-cta__title {
    font-size: 3.375rem;
    font-weight: 400;
    color: var(--color-white);
    line-height: 1.1;
    margin-bottom: var(--space-xl);
    text-shadow: 0 4px 4px rgba(0, 0, 0, 0.4);
    text-align: left;
    max-width: 473px;
}

.historia-cta__btn {
    display: inline-block;
}

/* Historia: Dark section (Techron promo) */
.historia-dark {
    position: relative;
    background-color: #343333;
    margin-top: var(--space-4xl);
    margin-bottom: var(--space-4xl);
}

.historia-dark__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    min-height: 380px;
}

.historia-dark__deco {
    position: relative;
    display: flex;
    align-items: center;
}

.historia-dark__deco-img {
    display: block;
    width: 100%;
    height: auto;
    margin-top: -40px;
    margin-bottom: -40px;
}

.historia-dark__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-lg);
    padding: var(--space-3xl) var(--space-2xl);
}

.historia-dark__title {
    font-family: var(--font-heading);
    font-size: 3rem;
    font-weight: 700;
    color: var(--color-white);
    line-height: 1.2;
}

.historia-dark__logo {
    display: inline;
    vertical-align: middle;
}

.historia-dark__logo-img {
    display: inline;
    vertical-align: middle;
    height: 1em;
    width: auto;
    margin-left: var(--space-xs);
}

.historia-dark__btn {
    display: inline-block;
    margin-top: var(--space-md);
}

/* ==========================================================================
   Page: Tarjeta de Combustible
   ========================================================================== */

/* Tarjeta: Hero Banner */
.tarjeta-hero {
    margin-top: 50px;
}

.tarjeta-hero__bg {
    position: relative;
    max-width: var(--container-wide);
    margin: 0 auto;
    overflow: hidden;
    border-radius: var(--radius-md);
}

.tarjeta-hero__img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 350px;
    object-fit: cover;
}

.tarjeta-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0) 100%);
}

/* Tarjeta: Heading */
.tarjeta-heading {
    padding: var(--space-3xl) 0 var(--space-lg);
}

.tarjeta-heading .container {
    text-align: center;
    max-width: 600px;
}

.tarjeta-heading__title {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 400;
    color: var(--color-primary);
    text-transform: uppercase;
    line-height: 1.2;
    margin-bottom: var(--space-sm);
}

.tarjeta-heading .breadcrumbs {
    justify-content: center;
}

.tarjeta-heading .breadcrumb-list {
    justify-content: center;
}

/* Tarjeta: Intro */
.tarjeta-intro {
    padding-bottom: var(--space-2xl);
}

.tarjeta-intro .container {
    max-width: 920px;
}

.tarjeta-intro__text {
    font-size: var(--text-base);
    color: var(--color-black);
    line-height: 1.6;
    letter-spacing: 0.05em;
    text-align: center;
}

/* Tarjeta: Cómo Funciona */
.tarjeta-como {
    padding: var(--space-lg) 0 var(--space-3xl);
}

.tarjeta-como__grid {
    display: grid;
    grid-template-columns: 208px 1fr;
    gap: var(--space-2xl);
    align-items: start;
}

.tarjeta-como__subtitle {
    font-family: var(--font-heading);
    font-size: 2rem;
    font-weight: 300;
    color: #4a4a4a;
    text-transform: uppercase;
    line-height: 1.2;
}

.tarjeta-como__desc {
    font-size: var(--text-base);
    color: var(--color-black);
    line-height: 1.6;
    letter-spacing: 0.05em;
}

.tarjeta-como__desc p {
    margin-bottom: var(--space-md);
}

.tarjeta-como__desc p:last-child {
    margin-bottom: 0;
}

/* Tarjeta: Beneficios Clave (franja azul) */
.tarjeta-beneficios {
    background-color: var(--color-primary);
    padding: var(--space-4xl) 0;
}

.tarjeta-beneficios__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3xl);
    align-items: start;
}

.tarjeta-beneficios__title {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 400;
    color: var(--color-white);
    text-transform: uppercase;
    line-height: 1.2;
    text-align: center;
    align-self: center;
}

.tarjeta-beneficios__list {
    display: flex;
    flex-direction: column;
    gap: var(--space-3xl);
}

.tarjeta-beneficios__item {
    font-size: var(--text-base);
    color: var(--color-white);
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.tarjeta-beneficios__item strong {
    font-weight: 700;
}

.tarjeta-beneficios__item span {
    font-weight: 400;
}

/* Tarjeta: Control y Monitoreo */
.tarjeta-control {
    padding: var(--space-4xl) 0;
}

.tarjeta-control__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3xl);
    align-items: start;
}

.tarjeta-control__media {
    overflow: hidden;
    border-radius: var(--radius-md);
}

.tarjeta-control__img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}

.tarjeta-control__title {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 400;
    color: var(--color-primary);
    text-transform: uppercase;
    line-height: 1.2;
    margin-bottom: var(--space-xl);
}

.tarjeta-control__text {
    font-size: var(--text-base);
    color: var(--color-black);
    line-height: 1.6;
    letter-spacing: 0.05em;
}

.tarjeta-control__text ul {
    list-style: disc;
    padding-left: var(--space-lg);
    margin: var(--space-md) 0;
}

.tarjeta-control__text li {
    margin-bottom: var(--space-xs);
}

/* Tarjeta: Vigencia y Uso */
.tarjeta-vigencia {
    padding: var(--space-3xl) 0 var(--space-4xl);
}

.tarjeta-vigencia__title {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 400;
    color: var(--color-primary);
    text-transform: uppercase;
    text-align: center;
    margin-bottom: var(--space-3xl);
}

.tarjeta-vigencia__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-2xl) var(--space-3xl);
    max-width: 960px;
    margin: 0 auto;
}

.tarjeta-vigencia__item {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
}

.tarjeta-vigencia__icon {
    flex-shrink: 0;
    width: 62px;
    height: 62px;
}

.tarjeta-vigencia__icon-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.tarjeta-vigencia__text {
    font-size: var(--text-base);
    color: var(--color-black);
    line-height: 1.5;
}

/* Tarjeta: Gestión para Empresas */
.tarjeta-gestion {
    position: relative;
    min-height: 664px;
    display: flex;
    align-items: center;
    background-size: cover;
    background-position: center;
    background-color: #063156;
}

.tarjeta-gestion__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(92.27deg, rgba(6, 49, 86, 0) 0.81%, rgba(6, 49, 86, 0.8) 68.99%);
    z-index: 1;
}

.tarjeta-gestion__inner {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: flex-end;
}

.tarjeta-gestion__content {
    max-width: 440px;
}

.tarjeta-gestion__title {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 700;
    color: var(--color-white);
    text-transform: uppercase;
    line-height: 1.2;
    margin-bottom: var(--space-xl);
}

.tarjeta-gestion__text {
    font-size: var(--text-base);
    color: var(--color-white);
    line-height: 1.6;
    letter-spacing: 0.05em;
}

.tarjeta-gestion__text p {
    margin-bottom: var(--space-md);
}

.tarjeta-gestion__text p:last-child {
    margin-bottom: 0;
}

.tarjeta-gestion__icons {
    display: flex;
    gap: var(--space-lg);
    margin-top: var(--space-2xl);
}

.tarjeta-gestion__icon-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: var(--space-sm);
    width: 120px;
    text-align: center;
}

.tarjeta-gestion__icon-wrap {
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.tarjeta-gestion__icon-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.tarjeta-gestion__icon-label {
    font-size: var(--text-sm);
    color: var(--color-white);
    line-height: 1.3;
    margin-top: auto;
}

/* ==========================================================================
   Page: Bono de Combustible
   ========================================================================== */

/* Bono: Hero Banner */
.bono-hero {
    margin-top: 50px;
}

.bono-hero__img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 350px;
    object-fit: cover;
    border-radius: var(--radius-md);
}

/* Bono: Heading */
.bono-heading {
    padding: var(--space-3xl) 0 var(--space-lg);
}

.bono-heading .container {
    text-align: center;
    max-width: 700px;
}

.bono-heading__title {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 400;
    color: var(--color-primary);
    text-transform: uppercase;
    line-height: 1.2;
    margin-bottom: var(--space-sm);
}

.bono-heading .breadcrumbs {
    justify-content: center;
}

.bono-heading .breadcrumb-list {
    justify-content: center;
}

/* Bono: Intro */
.bono-intro {
    padding-bottom: var(--space-2xl);
}

.bono-intro .container {
    max-width: 920px;
}

.bono-intro__text {
    font-size: var(--text-base);
    color: var(--color-black);
    line-height: 1.6;
    letter-spacing: 0.05em;
    text-align: justify;
}

/* Bono: Denominaciones Disponibles */
.bono-denom {
    padding: var(--space-lg) 0 var(--space-3xl);
}

.bono-denom__grid {
    display: grid;
    grid-template-columns: 273px 1fr;
    gap: var(--space-2xl);
    align-items: start;
}

.bono-denom__subtitle {
    font-family: var(--font-heading);
    font-size: 2rem;
    font-weight: 300;
    color: #4a4a4a;
    text-transform: uppercase;
    line-height: 1.2;
}

.bono-denom__values {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-sm) var(--space-2xl);
}

.bono-denom__value {
    display: flex;
    align-items: center;
    justify-content: center;
}

.bono-denom__img {
    max-width: 100%;
    height: auto;
    object-fit: contain;
    border-radius: var(--radius-sm);
}

/* Bono: Beneficios Clave (franja azul) */
.bono-beneficios {
    background-color: var(--color-primary);
    padding: var(--space-4xl) 0;
}

.bono-beneficios__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3xl);
    align-items: start;
}

.bono-beneficios__title {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 400;
    color: var(--color-white);
    text-transform: uppercase;
    line-height: 1.2;
    align-self: center;
}

.bono-beneficios__text {
    font-size: var(--text-base);
    color: var(--color-white);
    line-height: 1.6;
    letter-spacing: 0.05em;
}

.bono-beneficios__text p {
    margin-bottom: var(--space-md);
}

.bono-beneficios__text p:last-child {
    margin-bottom: 0;
}

/* Bono: Seguridad y Control (franja oscura) */
.bono-seguridad {
    background-color: var(--color-secondary);
    padding: var(--space-4xl) 0;
}

.bono-seguridad__title {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 400;
    color: var(--color-white);
    text-transform: uppercase;
    text-align: center;
    margin-bottom: var(--space-xl);
}

.bono-seguridad__subtitle {
    font-size: var(--text-base);
    color: var(--color-white);
    text-align: center;
    max-width: 480px;
    margin: 0 auto var(--space-3xl);
    letter-spacing: 0.05em;
    line-height: 1.6;
}

.bono-seguridad__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-2xl) var(--space-xl);
    max-width: 960px;
    margin: 0 auto;
}

.bono-seguridad__item {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
}

.bono-seguridad__icon {
    flex-shrink: 0;
    width: 62px;
    height: 62px;
}

.bono-seguridad__icon-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.bono-seguridad__text {
    font-size: var(--text-base);
    color: var(--color-white);
    line-height: 1.5;
    letter-spacing: 0.05em;
}

/* Bono: Vigencia y Uso */
.bono-vigencia {
    padding: var(--space-4xl) 0;
}

.bono-vigencia__grid {
    display: grid;
    grid-template-columns: 273px 1fr;
    gap: var(--space-2xl);
    align-items: center;
}

.bono-vigencia__subtitle {
    font-family: var(--font-heading);
    font-size: 2rem;
    font-weight: 300;
    color: #4a4a4a;
    text-transform: uppercase;
    line-height: 1.2;
}

.bono-vigencia__items {
    display: flex;
    gap: var(--space-2xl);
}

.bono-vigencia__item {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
}

.bono-vigencia__icon {
    flex-shrink: 0;
    width: 62px;
    height: 62px;
}

.bono-vigencia__icon-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.bono-vigencia__text {
    font-size: var(--text-base);
    color: var(--color-black);
    line-height: 1.5;
    letter-spacing: 0.05em;
}

/* ==========================================================================
   Pagination
   ========================================================================== */

.pagination,
.nav-links {
    display: flex;
    justify-content: center;
    gap: var(--space-sm);
    margin: var(--space-3xl) 0;
}

.page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 var(--space-sm);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    color: var(--color-gray-600);
    transition: all var(--transition-fast);
}

.page-numbers:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.page-numbers.current {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-white);
}

/* ==========================================================================
   404 & Search
   ========================================================================== */

.error-404,
.no-results {
    text-align: center;
    padding: var(--space-4xl) 0;
}

.error-404 .page-title {
    font-size: var(--text-5xl);
    margin-bottom: var(--space-lg);
}

/* ==========================================================================
   Search Form
   ========================================================================== */

.search-form {
    display: flex;
    max-width: 500px;
    margin: var(--space-xl) auto;
}

.search-form .search-field {
    flex: 1;
    padding: var(--space-sm) var(--space-lg);
    border: 2px solid var(--color-gray-200);
    border-right: none;
    border-radius: var(--radius-md) 0 0 var(--radius-md);
    font-family: var(--font-primary);
    font-size: var(--text-base);
}

.search-form .search-field:focus {
    outline: none;
    border-color: var(--color-primary);
}

.search-form .search-submit {
    padding: var(--space-sm) var(--space-xl);
    background-color: var(--color-primary);
    color: var(--color-white);
    border: 2px solid var(--color-primary);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
    font-family: var(--font-primary);
    font-weight: 600;
    cursor: pointer;
    transition: background-color var(--transition-fast);
}

.search-form .search-submit:hover {
    background-color: var(--color-primary-dark);
}

/* ==========================================================================
   WordPress Core Alignment
   ========================================================================== */

.alignwide {
    max-width: var(--container-wide);
    margin-left: auto;
    margin-right: auto;
}

.alignfull {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
}

.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.alignleft {
    float: left;
    margin-right: var(--space-xl);
    margin-bottom: var(--space-md);
}

.alignright {
    float: right;
    margin-left: var(--space-xl);
    margin-bottom: var(--space-md);
}

/* ==========================================================================
   Page: Aliados
   ========================================================================== */

/* Aliados: Hero Banner */
.aliados-hero {
    margin-top: 50px;
    padding: 0;
    overflow: hidden;
}

.aliados-hero .container {
    max-width: 100%;
    padding: 0 var(--space-3xl);
}

.aliados-hero__img {
    width: 100%;
    height: 299px;
    object-fit: cover;
    display: block;
    border-radius: var(--radius-md);
}

/* Aliados: Heading */
.aliados-heading {
    padding: var(--space-3xl) 0 var(--space-lg);
    text-align: center;
}

.aliados-heading__title {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 400;
    color: var(--color-primary);
    text-transform: uppercase;
    margin-bottom: var(--space-sm);
}

.aliados-heading .breadcrumbs {
    justify-content: center;
}

.aliados-heading .breadcrumb-list {
    justify-content: center;
}

/* Aliados: Intro */
.aliados-intro {
    padding: 0 0 var(--space-2xl);
}

.aliados-intro__text {
    max-width: 900px;
    margin: 0 auto;
    text-align: justify;
    font-size: var(--text-base);
    line-height: 1.7;
    color: var(--color-gray-700);
}

/* Aliados: Grid de logos */
.aliados-grid-section {
    padding: var(--space-2xl) 0 var(--space-4xl);
}

.aliados-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3xl);
    max-width: 960px;
    margin: 0 auto;
    align-items: center;
}

.aliados-grid__item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-xl);
}

.aliados-grid__link {
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.aliados-grid__link:hover {
    opacity: 0.8;
    transform: scale(1.03);
}

.aliados-grid__logo {
    max-width: 100%;
    max-height: 200px;
    width: auto;
    height: auto;
    object-fit: contain;
}

/* ==========================================================================
   Page: Aviación
   ========================================================================== */

/* Aviación: Hero Banner */
.aviacion-hero {
    margin-top: 50px;
    padding: 0;
    overflow: hidden;
}

.aviacion-hero .container {
    max-width: 100%;
    padding: 0 var(--space-3xl);
}

.aviacion-hero__img {
    width: 100%;
    height: 299px;
    object-fit: cover;
    display: block;
    border-radius: var(--radius-md);
}

/* Aviación: Heading (2 columnas: título | intro) */
.aviacion-heading {
    padding: var(--space-3xl) 0 var(--space-xl);
}

.aviacion-heading__grid {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: var(--space-3xl) var(--space-4xl);
    align-items: start;
}

.aviacion-heading__title {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 400;
    color: var(--color-primary);
    text-transform: uppercase;
    margin-bottom: var(--space-sm);
}

.aviacion-heading__right {
    font-size: var(--text-base);
    line-height: 1.8;
    color: var(--color-secondary);
    text-align: justify;
    letter-spacing: 0.05em;
}

.aviacion-heading__right p {
    margin-bottom: var(--space-md);
}

.aviacion-heading__right p:last-child {
    margin-bottom: 0;
}

.aviacion-heading__right ul,
.aviacion-heading__right ol {
    margin: var(--space-md) 0;
    padding-left: 1.5em;
}

.aviacion-heading__right ul {
    list-style: disc;
}

.aviacion-heading__right ol {
    list-style: decimal;
}

.aviacion-heading__right li {
    margin-bottom: var(--space-xs);
    line-height: 1.8;
}

.aviacion-heading__right li:last-child {
    margin-bottom: 0;
}

.aviacion-heading__right strong {
    font-weight: 600;
}

.aviacion-heading__right em {
    font-style: italic;
}

/* Aviación: Operaciones */
.aviacion-ops {
    padding: 0 0 var(--space-2xl);
}

.aviacion-ops .container {
    max-width: 100%;
    padding: 0 var(--space-3xl);
}

.aviacion-ops__img {
    width: 100%;
    height: 284px;
    object-fit: cover;
    display: block;
    border-radius: var(--radius-md);
}

.aviacion-ops__text {
    max-width: 920px;
    margin: var(--space-2xl) auto 0;
    font-size: var(--text-base);
    line-height: 1.7;
    color: var(--color-secondary);
    text-align: justify;
    letter-spacing: 0.05em;
}

/* Aviación: Quote Banner (azul) */
.aviacion-quote {
    background-color: var(--color-primary);
    padding: var(--space-3xl) 0;
}

.aviacion-quote__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-xl);
    max-width: 1300px;
    margin: 0 auto;
}

.aviacion-quote__svg {
    flex-shrink: 0;
    width: auto;
    height: 106px;
    opacity: 0.3;
}

.aviacion-quote__text {
    font-family: var(--font-heading);
    font-size: var(--text-5xl);
    font-weight: 700;
    color: var(--color-white);
    line-height: 1.3;
    text-align: center;
    margin: 0;
    padding: 0;
    border: none;
}

/* Aviación: Fortalezas (2 columnas: imagen | contenido) */
.aviacion-fortalezas {
    padding: var(--space-4xl) 0;
}

.aviacion-fortalezas__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3xl);
    align-items: start;
}

.aviacion-fortalezas__img {
    width: 100%;
    height: 446px;
    object-fit: cover;
    display: block;
    border-radius: var(--radius-md);
}

.aviacion-fortalezas__title {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 400;
    color: var(--color-primary);
    text-transform: uppercase;
    margin-bottom: var(--space-xl);
    line-height: 1.2;
}

.aviacion-fortalezas__text {
    font-size: var(--text-base);
    line-height: 1.7;
    color: var(--color-secondary);
    text-align: justify;
    letter-spacing: 0.05em;
}

.aviacion-fortalezas__text strong {
    display: block;
    margin-top: var(--space-lg);
    margin-bottom: var(--space-xs);
    color: var(--color-secondary);
}

.aviacion-fortalezas__text strong:first-child {
    margin-top: 0;
}

/* Aviación: Inversión y Tecnología (bg image + overlay) */
.aviacion-inversion {
    position: relative;
    min-height: 837px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
}

.aviacion-inversion__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(92deg, rgba(6, 49, 86, 0) 0.8%, rgba(6, 49, 86, 0.5) 69%);
}

.aviacion-inversion__inner {
    position: relative;
    z-index: 1;
}

.aviacion-inversion__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3xl);
    align-items: start;
}

.aviacion-inversion__title {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 700;
    color: var(--color-white);
    text-transform: uppercase;
    line-height: 1.2;
}

.aviacion-inversion__text {
    font-size: var(--text-base);
    font-weight: 500;
    color: var(--color-white);
    text-align: justify;
    letter-spacing: 0.05em;
    line-height: 1.7;
    text-shadow: 0 4px 4px rgba(0, 0, 0, 0.5);
}

.aviacion-inversion__text ul {
    padding-left: var(--space-lg);
    list-style: disc;
}

.aviacion-inversion__text li {
    margin-bottom: var(--space-md);
}

/* Aviación: Sección oscura (segmentos) */
.aviacion-dark {
    background-color: var(--color-secondary);
    padding: var(--space-3xl) 0;
}

.aviacion-dark__inner {
    display: flex;
    align-items: center;
    gap: var(--space-2xl);
    max-width: 920px;
    margin: 0 auto;
}

.aviacion-dark__icon {
    flex-shrink: 0;
}

.aviacion-dark__icon-img {
    width: 164px;
    height: 164px;
    object-fit: contain;
}

.aviacion-dark__text {
    font-size: var(--text-base);
    color: var(--color-white);
    text-align: justify;
    letter-spacing: 0.05em;
    line-height: 1.7;
}

/* Aviación: Portafolio de Clientes (2 columnas: contenido | imagen) */
.aviacion-portafolio {
    padding: var(--space-4xl) 0;
}

.aviacion-portafolio__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3xl);
    align-items: start;
}

.aviacion-portafolio__title {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 400;
    color: var(--color-primary);
    text-transform: uppercase;
    margin-bottom: var(--space-xl);
    line-height: 1.2;
}

.aviacion-portafolio__text {
    font-size: var(--text-base);
    line-height: 1.7;
    color: var(--color-secondary);
    text-align: justify;
    letter-spacing: 0.05em;
}

.aviacion-portafolio__text ul {
    padding-left: var(--space-lg);
    list-style: disc;
}

.aviacion-portafolio__text li {
    margin-bottom: var(--space-xs);
}

.aviacion-portafolio__img {
    width: 100%;
    height: 407px;
    object-fit: cover;
    display: block;
    border-radius: var(--radius-md);
}

/* Aviación: Alianzas Estratégicas (bg image + overlay + logos sidebar) */
.aviacion-alianzas {
    position: relative;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
}

.aviacion-alianzas__overlay {
    position: absolute;
    inset: 0;
    background-color: rgba(6, 49, 86, 0.7);
    mix-blend-mode: multiply;
}

.aviacion-alianzas__inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 317px;
    gap: 0;
    align-items: center;
}

.aviacion-alianzas__content {
    padding-right: var(--space-3xl);
}

.aviacion-alianzas__title {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 400;
    color: var(--color-white);
    text-transform: uppercase;
    margin-bottom: var(--space-xl);
    line-height: 1.2;
}

.aviacion-alianzas__text {
    font-size: var(--text-base);
    color: var(--color-white);
    text-align: justify;
    letter-spacing: 0.05em;
    line-height: 1.7;
}

.aviacion-alianzas__text ul {
    padding-left: var(--space-lg);
    list-style: disc;
}

.aviacion-alianzas__text li {
    margin-bottom: var(--space-md);
}

.aviacion-alianzas__logos {
    background-color: var(--color-white);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-xl);
    padding: var(--space-2xl);
}

.aviacion-alianzas__logo-item {
    display: flex;
    align-items: center;
    justify-content: center;
}

.aviacion-alianzas__logo-img {
    max-width: 200px;
    max-height: 140px;
    width: auto;
    height: auto;
    object-fit: contain;
}

/* Aviación: Contáctanos */
.aviacion-contacto {
    padding: var(--space-4xl) 0;
    text-align: center;
}

.aviacion-contacto__title {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 400;
    color: var(--color-primary);
    margin-bottom: var(--space-2xl);
}

.aviacion-contacto__items {
    display: flex;
    justify-content: center;
    gap: var(--space-4xl);
    flex-wrap: wrap;
}

.aviacion-contacto__item {
    display: flex;
    align-items: center;
    gap: var(--space-md);
}

.aviacion-contacto__icon-wrap {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background-color: var(--color-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--color-white);
}

.aviacion-contacto__icon-wrap svg {
    width: 24px;
    height: 24px;
}

.aviacion-contacto__info {
    text-align: left;
}

.aviacion-contacto__label {
    display: block;
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--color-secondary);
    letter-spacing: 0.04em;
    margin-bottom: 2px;
}

.aviacion-contacto__link {
    font-size: var(--text-base);
    font-weight: 500;
    color: var(--color-link);
    text-decoration: none;
    letter-spacing: 0.04em;
}

.aviacion-contacto__link:hover {
    text-decoration: underline;
}

/* ==========================================================================
   Page: Aliados Estratégicos / Acuerdos Globales (sub-Aviación)
   ========================================================================== */

/* Bloques de aliados / acuerdos (alternando layout) */
.alest-aliados {
    padding: var(--space-3xl) 0;
}

.alest-aliados__logos {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: var(--space-2xl);
    align-items: center;
    justify-items: center;
}

.alest-aliados__logo-item {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-gray-100);
    border-radius: var(--radius-md);
    padding: var(--space-xl);
    min-height: 140px;
    width: 100%;
}

.alest-aliados__logo-img {
    max-width: 180px;
    max-height: 100px;
    width: auto;
    height: auto;
    object-fit: contain;
}

/* Bloques aliado con contenido (usado en Acuerdos Globales) */
.alest-aliado {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: var(--space-3xl);
    align-items: center;
    padding: var(--space-2xl) 0;
    border-bottom: 1px solid var(--color-gray-200);
}

.alest-aliado:last-child {
    border-bottom: none;
}

.alest-aliado--reverse {
    direction: rtl;
}

.alest-aliado--reverse > * {
    direction: ltr;
}

.alest-aliado__media {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-gray-100);
    border-radius: var(--radius-md);
    padding: var(--space-xl);
    min-height: 180px;
}

.alest-aliado__logo {
    max-width: 200px;
    max-height: 120px;
    width: auto;
    height: auto;
    object-fit: contain;
}

.alest-aliado__name {
    font-family: var(--font-heading);
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--color-primary);
    text-transform: uppercase;
    margin-bottom: var(--space-md);
}

.alest-aliado__desc {
    font-size: var(--text-base);
    line-height: 1.7;
    color: var(--color-secondary);
    text-align: justify;
    letter-spacing: 0.03em;
}

.alest-aliado__desc p {
    margin-bottom: var(--space-sm);
}

.alest-aliado__desc p:last-child {
    margin-bottom: 0;
}

.aviacion-contacto__intro {
    font-size: var(--text-base);
    color: var(--color-secondary);
    margin-bottom: var(--space-xl);
}

/* ==========================================================================
   Page: Contáctanos
   ========================================================================== */

/* Contáctanos: Hero con título superpuesto */
.contactanos-hero {
    margin-top: 50px;
}

.contactanos-hero__wrapper {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-md);
}

.contactanos-hero__img {
    width: 100%;
    height: 350px;
    object-fit: cover;
    display: block;
    transform: scaleX(-1);
}

/* Contáctanos: Heading (debajo del hero, centrado) */
.page-contactanos .contactanos-heading {
    padding: var(--space-3xl) 0 var(--space-xl);
    text-align: center;
}

.page-contactanos .contactanos-heading .contactanos-heading__title {
    font-family: var(--font-heading);
    font-size: 2.5rem;
    font-weight: 400;
    color: var(--color-primary);
    text-transform: uppercase;
    margin-bottom: var(--space-sm);
}

.page-contactanos .contactanos-heading .breadcrumbs {
    padding: 0;
    margin-bottom: 0;
}

.page-contactanos .contactanos-heading .breadcrumb-list {
    justify-content: center;
    padding: 0;
}

/* Contáctanos: Info — estructura de dos franjas */
.contactanos-info {
    padding: 0;
}

/* Franja superior blanca */
.contactanos-info__top {
    padding: var(--space-3xl) 0 var(--space-4xl);
}

.contactanos-info__top-inner {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3xl);
}

.contactanos-info__top-items {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xl);
    flex: 1;
    max-width: 340px;
}

/* Franja inferior oscura */
.contactanos-info__bottom {
    background-color: var(--color-secondary);
    padding: var(--space-3xl) 0;
    position: relative;
}

.contactanos-info__bottom-inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-3xl);
}

.contactanos-info__bottom-items {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xl);
    flex-shrink: 0;
    width: 280px;
}

/* Contáctanos: Mapa con forma del logo (cruza ambas franjas) */
.contactanos-info__map-wrapper {
    flex: 1;
    position: relative;
    margin-top: -320px;
    max-width: 700px;
    aspect-ratio: 494 / 414;
}

.contactanos-info__map-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.contactanos-info__map {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    clip-path: url(#gpd-contactanos-map-clip);
    overflow: hidden;
}

.contactanos-info__map iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

/* Contáctanos: Formulario (fondo oscuro) */
.contactanos-form {
    background-color: var(--color-secondary);
    padding: 0 0 var(--space-4xl);
}

.contactanos-form__inner {
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.contactanos-form__title {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 400;
    color: var(--color-white);
    text-transform: uppercase;
    margin-bottom: var(--space-md);
}

.contactanos-form__desc {
    font-size: var(--text-base);
    color: var(--color-white);
    opacity: 0.85;
    line-height: 1.6;
    margin-bottom: var(--space-2xl);
    letter-spacing: 0.04em;
}

.contactanos-form__fields {
    text-align: left;
}

.contactanos-form__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3xl);
    margin-bottom: var(--space-2xl);
}

.contactanos-form__left {
    display: flex;
    flex-direction: column;
    gap: var(--space-xl);
}

.contactanos-form__right {
    display: flex;
    flex-direction: column;
}

.contactanos-form__field input,
.contactanos-form__field textarea {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.4);
    padding: var(--space-sm) 0;
    font-size: var(--text-base);
    color: var(--color-white);
    font-family: var(--font-body);
    letter-spacing: 0.04em;
    outline: none;
    transition: border-color 0.3s ease;
}

.contactanos-form__field input::placeholder,
.contactanos-form__field textarea::placeholder {
    color: rgba(255, 255, 255, 0.5);
}

.contactanos-form__field input:focus,
.contactanos-form__field textarea:focus {
    border-bottom-color: var(--color-white);
}

.contactanos-form__field--message {
    height: 100%;
}

.contactanos-form__field--message textarea {
    height: 100%;
    resize: vertical;
    min-height: 80px;
}

.contactanos-form__submit {
    text-align: left;
}

.contactanos-form__btn {
    display: inline-block;
    background: transparent;
    color: var(--color-white);
    border: 2px solid var(--color-white);
    padding: var(--space-sm) var(--space-3xl);
    font-size: var(--text-base);
    font-weight: 600;
    font-family: var(--font-body);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color 0.3s ease, color 0.3s ease;
}

.contactanos-form__btn:hover {
    background-color: var(--color-white);
    color: var(--color-secondary);
}

/* Alert messages */
.contactanos-form__alert {
    padding: var(--space-md) var(--space-lg);
    border-radius: var(--radius-md);
    margin-bottom: var(--space-lg);
    font-size: var(--text-sm);
    line-height: 1.5;
    text-align: center;
}

.contactanos-form__alert--success {
    background-color: rgba(34, 197, 94, 0.15);
    color: #bbf7d0;
    border: 1px solid rgba(34, 197, 94, 0.3);
}

.contactanos-form__alert--error {
    background-color: rgba(239, 68, 68, 0.15);
    color: #fecaca;
    border: 1px solid rgba(239, 68, 68, 0.3);
}

/* ==========================================================================
   Page: Entrenamientos
   ========================================================================== */

/* Entrenamientos: Hero */
.entrenamientos-hero {
    margin-top: 50px;
}

.entrenamientos-hero__img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    display: block;
    border-radius: var(--radius-md);
}

/* Entrenamientos: Título centrado */
.entrenamientos-heading {
    padding: var(--space-2xl) 0 var(--space-lg);
    text-align: center;
}

.entrenamientos-heading .breadcrumbs {
    justify-content: center;
}

.entrenamientos-heading__title {
    font-family: var(--font-heading);
    font-size: var(--text-5xl);
    font-weight: 400;
    color: var(--color-primary);
    text-transform: uppercase;
    margin-bottom: var(--space-sm);
}

/* Entrenamientos: Intro (imagen + texto) */
.entrenamientos-intro {
    padding: 0 0 var(--space-3xl);
}

.entrenamientos-intro__img-wrapper {
    max-width: 920px;
    margin: 0 auto var(--space-2xl);
}

.entrenamientos-intro__img {
    width: 100%;
    height: 284px;
    object-fit: cover;
    display: block;
    border-radius: var(--radius-md);
}

.entrenamientos-intro__text {
    max-width: 920px;
    margin: 0 auto;
    font-size: var(--text-base);
    color: var(--color-secondary);
    text-align: justify;
    line-height: 1.7;
    letter-spacing: 0.05em;
}

/* Entrenamientos: Sección azul */
.entrenamientos-blue {
    background-color: var(--color-primary);
    padding: var(--space-4xl) 0;
}

.entrenamientos-blue__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3xl);
    align-items: start;
}

.entrenamientos-blue__img-wrapper {
    overflow: hidden;
    margin-top: -140px;
}

.entrenamientos-blue__img {
    width: 100%;
    height: 573px;
    object-fit: cover;
    display: block;
}

.entrenamientos-blue__content {
    font-size: var(--text-base);
    color: var(--color-white);
    text-align: justify;
    line-height: 1.7;
    letter-spacing: 0.05em;
}

.entrenamientos-blue__content ul {
    padding-left: var(--space-lg);
    list-style: disc;
}

.entrenamientos-blue__content li {
    margin-bottom: var(--space-sm);
}

.entrenamientos-blue__content strong {
    font-weight: 700;
}

/* Entrenamientos: CTA */
.entrenamientos-blue__cta {
    text-align: center;
    margin-top: var(--space-2xl);
}

.entrenamientos-blue__btn {
    display: inline-block;
    background: transparent;
    color: var(--color-white);
    border: 2px solid var(--color-white);
    padding: var(--space-sm) var(--space-2xl);
    font-size: var(--text-base);
    font-weight: 700;
    font-family: var(--font-body);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: var(--radius-sm);
    transition: background-color 0.3s ease, color 0.3s ease;
}

.entrenamientos-blue__btn:hover {
    background-color: var(--color-white);
    color: var(--color-primary);
}

/* ==========================================================================
   Page: Responsabilidad Social
   ========================================================================== */

/* RSE: Hero */
.rse-hero {
    margin-top: 50px;
}

.rse-hero__img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    display: block;
    border-radius: var(--radius-md);
}

/* RSE: Título centrado */
.rse-heading {
    padding: var(--space-2xl) 0 var(--space-lg);
    text-align: center;
}

.rse-heading .breadcrumbs {
    justify-content: center;
}

.rse-heading__title {
    font-family: var(--font-heading);
    font-size: var(--text-5xl);
    font-weight: 400;
    color: var(--color-primary);
    text-transform: uppercase;
    margin-bottom: var(--space-sm);
}

/* RSE: Intro (imagen + texto) */
.rse-intro {
    padding: 0 0 var(--space-3xl);
}

.rse-intro__img-wrapper {
    max-width: 920px;
    margin: 0 auto var(--space-2xl);
}

.rse-intro__img {
    width: 100%;
    height: 284px;
    object-fit: cover;
    display: block;
    border-radius: var(--radius-md);
}

.rse-intro__text {
    max-width: 920px;
    margin: 0 auto;
    font-size: var(--text-base);
    color: var(--color-secondary);
    text-align: justify;
    line-height: 1.7;
    letter-spacing: 0.05em;
}

/* RSE: Contenido (imagen izquierda + texto derecho) */
.rse-content {
    padding: 0 0 var(--space-4xl);
}

.rse-content__grid {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: var(--space-3xl);
    align-items: start;
    max-width: 920px;
    margin: 0 auto;
}

.rse-content__img {
    width: 100%;
    height: 506px;
    object-fit: cover;
    display: block;
    border-radius: var(--radius-md);
}

.rse-content__text {
    font-size: var(--text-base);
    color: var(--color-secondary);
    text-align: justify;
    line-height: 1.7;
    letter-spacing: 0.05em;
}

.rse-content__text ul {
    padding-left: var(--space-lg);
    list-style: disc;
}

.rse-content__text li {
    margin-bottom: var(--space-sm);
}

.rse-content__text strong {
    font-weight: 700;
}

/* ==========================================================================
   Page: Políticas de Gobernanza
   ========================================================================== */

/* Gobernanza: Hero */
.gobernanza-hero {
    margin-top: 50px;
}

.gobernanza-hero__wrapper {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-md);
}

.gobernanza-hero__img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    display: block;
}

/* Gobernanza: Título centrado */
.gobernanza-heading {
    padding: var(--space-2xl) 0 var(--space-lg);
    text-align: center;
}

.gobernanza-heading .breadcrumbs {
    justify-content: center;
}

.gobernanza-heading__title {
    font-family: var(--font-heading);
    font-size: var(--text-5xl);
    font-weight: 400;
    color: var(--color-primary);
    text-transform: uppercase;
    margin-bottom: var(--space-sm);
}

/* Gobernanza: Body (sidebar + contenido) */
.gobernanza-body {
    padding: 0 0 var(--space-4xl);
}

.gobernanza-body__grid {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: var(--space-3xl);
    align-items: start;
}

/* Gobernanza: Sidebar */
.gobernanza-sidebar__wrapper {
    background-color: rgba(25, 79, 144, 0.2);
    border-radius: var(--radius-sm);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.gobernanza-sidebar__item {
    display: flex;
    align-items: center;
    padding: var(--space-lg) var(--space-xl);
    min-height: 59px;
    border-radius: 2px;
    text-decoration: none;
    transition: background-color 0.3s ease, color 0.3s ease;
    cursor: pointer;
}

.gobernanza-sidebar__item:hover {
    background-color: rgba(25, 79, 144, 0.15);
}

.gobernanza-sidebar__item--active {
    background-color: var(--color-primary);
    cursor: default;
}

.gobernanza-sidebar__item--active:hover {
    background-color: var(--color-primary);
}

.gobernanza-sidebar__text {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 400;
    line-height: 1.15;
    letter-spacing: 0.04em;
    color: var(--color-body);
}

.gobernanza-sidebar__item--active .gobernanza-sidebar__text {
    color: var(--color-white);
}

/* Gobernanza: Contenido */
.gobernanza-content {
    font-family: var(--font-body);
    font-size: var(--text-base);
    color: var(--color-body);
    line-height: 1.7;
    letter-spacing: 0.05em;
    text-align: justify;
}

.gobernanza-content p {
    margin-bottom: var(--space-md);
}

.gobernanza-content ul {
    margin: 0 0 var(--space-md) var(--space-lg);
    padding: 0;
    list-style: disc;
}

.gobernanza-content ul li {
    margin-bottom: var(--space-sm);
    padding-left: var(--space-xs);
}

/* ==========================================================================
   Page: Estaciones (Mapa interactivo)
   ========================================================================== */

/* Estaciones: Hero */
.estaciones-hero {
    padding: 0;
    margin-top: 50px;
}
.estaciones-hero__wrapper {
    border-radius: var(--radius-md);
    overflow: hidden;
}
.estaciones-hero__img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

/* Estaciones: Título centrado */
.estaciones-heading {
    padding: var(--space-2xl) 0 var(--space-md);
    text-align: center;
}
.estaciones-heading__title {
    font-family: var(--font-heading);
    font-size: 2.5rem;
    color: var(--color-primary);
    text-transform: uppercase;
    margin: 0 0 var(--space-sm);
    letter-spacing: 0.02em;
}
.estaciones-heading .breadcrumbs {
    padding: 0;
    margin-bottom: 0;
}
.estaciones-heading .breadcrumb-list {
    justify-content: center;
    padding: 0;
}
.estaciones-heading__subtitle {
    font-family: var(--font-body);
    font-size: 1rem;
    color: var(--color-text);
    max-width: 520px;
    margin: var(--space-md) auto 0;
    letter-spacing: 0.05em;
}

/* Estaciones: Selector de provincia */
.estaciones-selector {
    margin-bottom: var(--space-lg);
}
.estaciones-selector__label {
    display: block;
    font-family: var(--font-heading);
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--color-text);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: var(--space-xs);
}
.estaciones-selector__dropdown {
    position: relative;
    max-width: 300px;
}
.estaciones-selector__select {
    width: 100%;
    padding: var(--space-sm) var(--space-md);
    padding-right: 2.5rem;
    font-family: var(--font-body);
    font-size: 1rem;
    color: var(--color-text);
    background: transparent;
    border: none;
    border-bottom: 2px solid #000;
    border-radius: 0;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    outline: none;
    transition: border-color 0.3s ease;
}
.estaciones-selector__select:focus {
    border-bottom-color: var(--color-primary);
}
.estaciones-selector__dropdown::after {
    content: '\e5cf';
    font-family: 'Material Symbols Outlined';
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.5rem;
    color: #000;
    pointer-events: none;
    line-height: 1;
}

/* Estaciones: Body grid (mapa + listado) */
.estaciones-body {
    padding: 0 0 var(--space-3xl);
}
.estaciones-body__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-xl);
    align-items: start;
}

/* Estaciones: Mapa SVG */
.estaciones-mapa {
    position: relative;
}
.estaciones-mapa__wrapper {
    background-color: transparent;
    border-radius: var(--radius-md);
    overflow: hidden;
}
.estaciones-mapa__svg {
    width: 100%;
    height: auto;
    display: block;
}
.estaciones-mapa__svg path[tabindex] {
    cursor: pointer;
    transition: fill 0.25s ease, opacity 0.25s ease;
}
.estaciones-mapa__svg path[tabindex]:hover {
    fill: var(--color-accent) !important;
    opacity: 0.85;
}
.estaciones-mapa__svg path[tabindex].provincia-active {
    fill: var(--color-primary) !important;
    opacity: 1;
}
.estaciones-mapa__svg path[tabindex]:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

/* Mapa tooltip */
.estaciones-mapa__tooltip {
    position: absolute;
    background: var(--color-primary);
    color: #fff;
    font-family: var(--font-body);
    font-size: 0.8125rem;
    padding: 6px 14px;
    border-radius: var(--radius-sm);
    pointer-events: none;
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity 0.2s ease, transform 0.2s ease;
    white-space: nowrap;
    z-index: 10;
}
.estaciones-mapa__tooltip.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Estaciones: Listado */
.estaciones-listado {
    background: rgba(25, 79, 144, 0.06);
    border-radius: var(--radius-md);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    max-height: 520px;
}
.estaciones-listado__header {
    display: grid;
    grid-template-columns: 1fr 1fr 1.2fr;
    gap: var(--space-sm);
    padding: var(--space-md) var(--space-lg);
    background: var(--color-primary);
    color: #fff;
    font-family: var(--font-heading);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.03em;
}
.estaciones-listado__body {
    flex: 1;
    overflow-y: auto;
    padding: var(--space-sm) 0;
}
.estaciones-listado__body::-webkit-scrollbar {
    width: 4px;
}
.estaciones-listado__body::-webkit-scrollbar-track {
    background: rgba(25, 79, 144, 0.08);
}
.estaciones-listado__body::-webkit-scrollbar-thumb {
    background: var(--color-primary);
    border-radius: 2px;
}
.estaciones-listado__row {
    display: grid;
    grid-template-columns: 1fr 1fr 1.2fr;
    gap: var(--space-sm);
    padding: var(--space-sm) var(--space-lg);
    border-bottom: 1px solid rgba(25, 79, 144, 0.08);
    transition: background-color 0.2s ease;
}
.estaciones-listado__row:hover {
    background-color: rgba(25, 79, 144, 0.04);
}
.estaciones-listado__row.is-hidden {
    display: none;
}
.estaciones-listado__cell {
    font-family: var(--font-body);
    font-size: 0.875rem;
    color: var(--color-text);
    line-height: 1.4;
}
.estaciones-listado__cell--nombre {
    font-weight: 600;
}
.estaciones-listado__link {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color 0.2s ease;
}
.estaciones-listado__link:hover {
    color: var(--color-accent);
}
.estaciones-listado__empty {
    padding: var(--space-xl) var(--space-lg);
    text-align: center;
    color: var(--color-text-light);
    font-family: var(--font-body);
    font-size: 0.9375rem;
}

/* ==========================================================================
   Archive: Novedades
   ========================================================================== */

/* Novedades: Hero */
.novedades-hero {
    margin-top: 50px;
}

.novedades-hero__wrapper {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-md);
}

.novedades-hero__img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    display: block;
}

.novedades-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

/* Novedades: Heading (debajo del hero, centrado) */
.archive-novedades .novedades-heading {
    padding: var(--space-3xl) 0 var(--space-xl);
    text-align: center;
}

.archive-novedades .novedades-heading .novedades-heading__title {
    font-family: var(--font-heading);
    font-size: 2.5rem;
    font-weight: 400;
    color: var(--color-primary);
    text-transform: uppercase;
    margin-bottom: var(--space-sm);
}

.archive-novedades .novedades-heading .breadcrumbs {
    padding: 0;
    margin-bottom: 0;
}

.archive-novedades .novedades-heading .breadcrumb-list {
    justify-content: center;
    padding: 0;
}

/* Novedades: Intro */
.novedades-intro {
    padding: var(--space-2xl) 0 var(--space-2xl);
    text-align: center;
}

.novedades-intro__text {
    font-size: var(--text-base);
    color: var(--color-secondary);
    line-height: 1.7;
    max-width: 920px;
    margin: 0 auto;
}

/* Novedades: Featured card (entrada reciente) */
.novedad-featured {
    margin-bottom: var(--space-2xl);
}

.novedad-featured__link {
    display: block;
    position: relative;
    text-decoration: none;
    border-radius: var(--radius-md);
    overflow: hidden;
    height: 284px;
}

.novedad-featured__img-wrapper {
    position: absolute;
    inset: 0;
}

.novedad-featured__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.novedad-featured__overlay {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 50%;
    background-color: rgba(34, 28, 53, 0.85);
    border-radius: 0 60% var(--radius-lg) 0;
    z-index: 1;
    transition: width 0.4s ease, border-radius 0.4s ease;
}

.novedad-featured:hover .novedad-featured__overlay {
    width: 100%;
    border-radius: 0;
}

.novedad-featured__content {
    position: relative;
    z-index: 2;
    padding: var(--space-xl) var(--space-lg);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
    max-width: 50%;
}

.novedad-featured__title {
    font-family: var(--font-heading);
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--color-white);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: var(--space-xs);
}

.novedad-featured__excerpt {
    font-size: var(--text-base);
    color: var(--color-white);
    line-height: 1.6;
}

.novedad-featured__cta {
    position: absolute;
    top: var(--space-lg);
    right: var(--space-lg);
    z-index: 3;
    color: var(--color-white);
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: 0.05em;
    opacity: 0;
    transform: translateX(-10px);
    transition: opacity 0.3s ease 0.1s, transform 0.3s ease 0.1s;
    display: flex;
    align-items: center;
    gap: var(--space-xs);
}

.novedad-featured:hover .novedad-featured__cta {
    opacity: 1;
    transform: translateX(0);
}

.novedad-featured__cta-text {
    font-family: var(--font-heading);
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--color-white);
}

.novedad-featured__cta .material-symbols-outlined {
    color: var(--color-white);
    font-size: 24px;
}

/* Novedades: Grid de entradas antiguas */
.novedades-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-2xl);
    margin-bottom: var(--space-3xl);
}

/* Novedad card (shared between archive and single related) */
.novedad-card {
    position: relative;
    border-radius: var(--radius-md);
    overflow: hidden;
}

.novedad-card__link {
    display: block;
    position: relative;
    text-decoration: none;
    height: 284px;
}

.novedad-card__img-wrapper {
    position: absolute;
    inset: 0;
}

.novedad-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.novedad-card__overlay {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 50%;
    background-color: rgba(34, 28, 53, 0.85);
    border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
    z-index: 1;
    transition: width 0.4s ease, border-radius 0.4s ease;
}

.novedad-card:hover .novedad-card__overlay {
    width: 100%;
    border-radius: 0;
}

.novedad-card__content {
    position: relative;
    z-index: 2;
    padding: var(--space-xl) var(--space-lg);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
    max-width: 50%;
}

.novedad-card__title {
    font-family: var(--font-heading);
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--color-white);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: var(--space-xs);
}

.novedad-card__excerpt {
    font-size: var(--text-base);
    color: var(--color-white);
    line-height: 1.6;
}

/* Read-more animation on hover */
.novedad-card__read-more {
    position: absolute;
    top: var(--space-lg);
    right: var(--space-lg);
    z-index: 3;
    color: var(--color-white);
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: 0.05em;
    opacity: 0;
    transform: translateX(-10px);
    transition: opacity 0.3s ease 0.1s, transform 0.3s ease 0.1s;
    display: flex;
    align-items: center;
    gap: var(--space-xs);
}

.novedad-card:hover .novedad-card__read-more {
    opacity: 1;
    transform: translateX(0);
}

/* ==========================================================================
   Single: Novedad
   ========================================================================== */

/* Single Novedad: Hero */
.novedad-single-hero {
    margin-top: 50px;
}

.novedad-single-hero__wrapper {
    overflow: hidden;
    border-radius: var(--radius-md);
}

.novedad-single-hero__img {
    width: 100%;
    height: 390px;
    object-fit: cover;
    display: block;
}

/* Single Novedad: Breadcrumbs */
.novedad-single-breadcrumbs {
    padding: var(--space-md) 0;
}

/* Single Novedad: Article */
.novedad-single__header {
    max-width: 920px;
    margin: 0 auto;
    padding: var(--space-xl) 0 var(--space-lg);
}

.novedad-single__title {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 700;
    color: var(--color-primary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.novedad-single__content {
    max-width: 920px;
    margin: 0 auto;
    padding: 0 0 var(--space-4xl);
    font-size: var(--text-base);
    color: var(--color-secondary);
    text-align: justify;
    line-height: 1.7;
    letter-spacing: 0.05em;
}

.novedad-single__content p {
    margin-bottom: var(--space-lg);
}

.novedad-single__content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-md);
    margin: var(--space-xl) 0;
}

/* Single Novedad: Related */
.novedad-related {
    padding: 0 0 var(--space-4xl);
}

.novedad-related__title {
    font-family: var(--font-heading);
    font-size: var(--text-5xl);
    font-weight: 400;
    color: var(--color-primary);
    text-align: center;
    margin-bottom: var(--space-2xl);
}

.novedad-related__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-2xl);
}

/* ==========================================================================
   Scroll Animations
   Rollback: remove this entire block, animations.js, enqueue, and
   data-animate / data-stagger attributes from front-face.php
   ========================================================================== */

/* ── Base state: hidden ── */
[data-animate] {
    opacity: 0;
    will-change: opacity, transform;
    transition:
        opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

/* ── Revealed ── */
[data-animate].is-visible {
    opacity: 1;
    transform: none;
}

/* ── Variants ── */

/* Fade up (default) */
[data-animate="fade-up"] {
    transform: translateY(40px);
}

/* Fade in (no movement) */
[data-animate="fade-in"] {
    transform: none;
}

/* Fade from left */
[data-animate="fade-left"] {
    transform: translateX(-50px);
}

/* Fade from right */
[data-animate="fade-right"] {
    transform: translateX(50px);
}

/* Scale up */
[data-animate="scale-up"] {
    transform: scale(0.92);
}

/* Slide up with more distance (for hero-like elements) */
[data-animate="slide-up"] {
    transform: translateY(60px);
}

/* ── Prefers reduced motion ── */
@media (prefers-reduced-motion: reduce) {
    [data-animate] {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}
