:root {
    --color-primary: 15 23 42;
    --color-on-primary: 248 250 252;
    --color-secondary: 30 41 59;
    --color-on-secondary: 248 250 252;
    --color-accent: 249 115 22;
    --color-on-accent: 15 23 42;
    --color-surface: 255 255 255;
    --color-surface-muted: 241 245 249;
    --color-text: 11 17 32;
    --color-muted: 71 85 105;
    --ring-accent: 0 0 0 4px rgba(var(--color-accent) / 0.35);
}

body {
    font-family: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: rgb(var(--color-text));
    background: rgb(var(--color-surface-muted));
    letter-spacing: -0.01em;
}

::selection {
    background-color: rgba(var(--color-accent) / 0.35);
    color: rgb(var(--color-on-primary));
}

header.siteHeader {
    position: sticky;
    top: 0;
    inset-inline: 0;
    z-index: 50;
    transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
    backdrop-filter: blur(10px);
}

header.siteHeader nav {
    background: rgba(var(--color-primary) / 0.45);
    border-bottom: 1px solid transparent;
    transition: inherit;
}

header.siteHeader .brand-text {
    color: rgba(var(--color-on-primary) / 0.9);
    transition: color 0.2s ease;
}

header.siteHeader.header-solid .brand-text {
    color: rgb(var(--color-text));
}

header.siteHeader .nav-link {
    color: rgba(var(--color-on-primary) / 0.9);
    transition: color 0.18s ease, transform 0.18s ease;
}

header.siteHeader .nav-link:hover,
header.siteHeader .nav-link:focus-visible {
    color: rgb(var(--color-on-primary));
}

header.siteHeader .nav-link:focus-visible {
    outline: none;
    box-shadow: var(--ring-accent);
    border-radius: 0.75rem;
}

header.siteHeader.header-solid nav {
    background: rgba(var(--color-surface) / 0.95);
    border-color: rgba(var(--color-primary) / 0.08);
    backdrop-filter: blur(12px);
}

header.siteHeader.header-solid .nav-link {
    color: rgba(var(--color-text) / 0.75);
}

header.siteHeader.header-solid .nav-link:hover,
header.siteHeader.header-solid .nav-link:focus-visible {
    color: rgb(var(--color-text));
}


header.siteHeader.header-solid [data-nav-toggle] {
    border-color: rgba(var(--color-primary) / 0.18);
    color: rgb(var(--color-text));
    background: rgba(var(--color-primary) / 0.04);
}

header.siteHeader.header-solid [data-nav-toggle]:hover {
    background: rgba(var(--color-primary) / 0.08);
}

.hero-overlay {
    background: linear-gradient(150deg, rgba(var(--color-primary) / 0.7) 0%, rgba(var(--color-primary) / 0.3) 45%, rgba(var(--color-primary) / 0.65) 100%);
}

.scroll-indicator {
    animation: float 3s ease-in-out infinite;
}

[data-reveal] {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

[data-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
}

@keyframes fade-up {
    0% {
        opacity: 0;
        transform: translateY(24px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fade-up {
    animation: fade-up 0.7s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}


[data-accordion-panel] {
    opacity: 0;
}

[data-accordion-panel].is-open {
    opacity: 1;
    grid-template-rows: 1fr;
}

[data-accordion-toggle][aria-expanded='true'] svg {
    transform: rotate(180deg);
}

@keyframes float {
    0%,
    100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(6px);
    }
}

.partners-track {
    display: flex;
    width: max-content;
    gap: 3rem;
    animation: marquee 22s linear infinite;
}

.partners-marquee {
    position: relative;
}

.partners-marquee:hover .partners-track {
    animation-play-state: paused;
}

.partners-marquee::before,
.partners-marquee::after {
    content: "";
    position: absolute;
    inset-block: 0;
    width: 4rem;
    pointer-events: none;
}

.partners-marquee::before {
    inset-inline-start: 0;
    background: linear-gradient(90deg, rgba(var(--color-surface-muted) / 1) 0%, rgba(var(--color-surface-muted) / 0));
}

.partners-marquee::after {
    inset-inline-end: 0;
    background: linear-gradient(270deg, rgba(var(--color-surface-muted) / 1) 0%, rgba(var(--color-surface-muted) / 0));
}

.overposed-wrap {
    position: relative;
    overflow: visible;
}

.overposed-bg {
    border-radius: 1.5rem;
    background: linear-gradient(180deg, rgba(var(--color-surface) / 0.95), rgba(var(--color-surface) / 0.5));
}

.overposed-img {
    position: relative;
    filter: drop-shadow(0 30px 45px rgba(var(--color-primary) / 0.18));
    transition: transform 0.3s ease;
    transform: translateY(-12px);
}

.overposed-wrap:hover .overposed-img {
    transform: translateY(-16px) scale(1.01);
}

@keyframes marquee {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
    }

    [data-reveal] {
        opacity: 1 !important;
        transform: none !important;
    }
}

/* Títulos de las tarjetas */
.card-title {
    position: relative;
    color: rgb(var(--color-primary));       /* azul corporativo por defecto */
    transition: color 0.3s ease;
}

/* Línea debajo del título, inicialmente oculta */
.card-title::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -4px;     /* ajusta según el espaciado que desees */
    width: 0;
    height: 2px;
    background-color: rgb(var(--color-accent));  /* naranja corporativo */
    transition: width 0.3s ease;
}

/* Al pasar el cursor sobre la tarjeta (group:hover), se despliega la línea y cambia el color del título */
.group:hover .card-title {
    color: rgb(var(--color-accent));
}

.group:hover .card-title::after {
    width: 100%;
}
