/* Identity layer for the Interactiva preview; the live site's styling stays below. */
@font-face {
    font-family: 'Outfit';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('assets/fonts/outfit-600.ttf') format('truetype');
}
@font-face {
    font-family: 'Outfit';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('assets/fonts/outfit-500.ttf') format('truetype');
}
.brand-name, .hero-content h1, .hero-content p { font-family: 'Outfit', sans-serif; }
html { scroll-padding-top: 84px; }
.navbar { min-height: 76px; padding: 10px 32px; gap: 24px; }
.brand-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    color: #fff;
    text-decoration: none;
    margin-right: auto;
}
.brand-mark { width: 44px; height: 44px; object-fit: contain; flex-shrink: 0; }
.brand-name { font-size: 26px; line-height: 1.15; font-weight: 600; letter-spacing: 0; }
.brand-descriptor { display: block; margin-top: 4px; font-size: 11px; line-height: 1.25; font-weight: 500; letter-spacing: 0; }
.navbar .nav-links { flex-grow: 0; gap: 24px; }
.navbar .nav-link { font-size: 14px; }
.navbar .language-switcher { margin-left: 0; }
.lang-option { min-height: 40px; padding: 4px 2px; background: none; border: 0; font: inherit; }
.lang-option.active { font-weight: 700; }
.brand-link:focus-visible, .lang-option:focus-visible, .nav-toggle:focus-visible {
    outline: 2px solid var(--gris-niebla);
    outline-offset: 5px;
}
.hero-section { height: calc(100svh - 120px); min-height: 510px; padding: 94px 24px 74px; }
.hero-video { width: 100%; height: 100%; }
.hero-content {
    width: min(660px, 100%);
    animation: hero-white-glow 7s ease-in-out 1.6s infinite;
}
.hero-brand-mark { display: block; width: 160px; height: 160px; object-fit: contain; margin: 0 auto 10px; }
.hero-content h1 { color: #fff; font-size: 80px; font-weight: 600; line-height: 1.1; text-transform: none; letter-spacing: 0; margin: 0 0 12px; text-shadow: 0 2px 12px rgba(0, 0, 0, 0.3); }

@keyframes hero-white-glow {
    0%, 18%, 100% {
        filter: drop-shadow(0 0 0 rgba(255, 255, 255, 0))
            drop-shadow(0 0 0 rgba(255, 255, 255, 0));
    }
    50%, 58% {
        filter: drop-shadow(0 0 4px rgba(255, 255, 255, 0.45))
            drop-shadow(0 0 14px rgba(255, 255, 255, 0.16));
    }
}

.hero-content p { color: #fff; font-size: 24px; line-height: 1.4; font-style: normal; letter-spacing: 0; font-weight: 500; margin: 0 0 30px; }
.scroll-down-arrow { bottom: 18px; }
#animated-headline { padding-top: 48px; }
.about-brand-intro { margin: 0 0 20px; color: var(--gris-niebla); font-size: 24px; line-height: 1.4; font-weight: 700; }

/* The brand needs the existing compact menu at tablet widths as well. */
@media (max-width: 1024px) {
    .navbar { min-height: 64px; padding: 8px 18px; gap: 14px; }
    .brand-mark { width: 38px; height: 38px; }
    .brand-name { font-size: 22px; }
    .brand-descriptor { font-size: 10px; }
    .navbar .language-switcher { font-size: 12px; }
    .nav-toggle { display: grid; width: 40px; height: 40px; flex-shrink: 0; margin: 0; place-items: center; color: var(--gris-niebla); background: transparent; border: 1px solid rgba(217, 224, 228, 0.55); border-radius: 6px; cursor: pointer; }
    .nav-toggle-lines, .nav-toggle-lines::before, .nav-toggle-lines::after { display: block; width: 19px; height: 2px; background: currentColor; content: ""; transition: transform 0.2s ease; }
    .nav-toggle-lines { position: relative; }
    .nav-toggle-lines::before { position: absolute; transform: translateY(-6px); }
    .nav-toggle-lines::after { position: absolute; transform: translateY(6px); }
    .navbar.is-open .nav-toggle-lines { background: transparent; }
    .navbar.is-open .nav-toggle-lines::before { transform: rotate(45deg); }
    .navbar.is-open .nav-toggle-lines::after { transform: rotate(-45deg); }
    .navbar .nav-links { position: absolute; top: 64px; right: 12px; left: 12px; display: none; flex-direction: column; gap: 0; padding: 10px 18px; background: rgba(17, 24, 39, 0.97); border: 1px solid rgba(107, 130, 152, 0.55); border-radius: 8px; box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35); }
    .navbar.is-open .nav-links { display: flex; }
    .navbar .nav-link { padding: 13px 2px; font-size: 14px; }
    .navbar .nav-link + .nav-link { border-top: 1px solid rgba(217, 224, 228, 0.12); }
}

@media (max-width: 600px) {
    .navbar { padding: 8px 14px; gap: 10px; }
    .brand-link { gap: 6px; }
    .brand-mark { width: 34px; height: 34px; }
    .brand-name { font-size: 19px; }
    .hero-section { min-height: 470px; padding: 86px 16px 64px; }
    .hero-brand-mark { width: 132px; height: 132px; margin-bottom: 12px; }
    .hero-content h1 { font-size: 52px; }
    .hero-content p { font-size: 21px; margin-bottom: 28px; }
    .about-brand-intro { font-size: 21px; }
}

@media (max-height: 600px) and (min-width: 601px) {
    .hero-section { height: calc(100svh - 60px); min-height: 330px; padding: 82px 20px 36px; }
    .hero-brand-mark { width: 70px; height: 70px; margin-bottom: 2px; }
    .hero-content h1 { font-size: 44px; margin-bottom: 6px; }
    .hero-content p { font-size: 18px; margin-bottom: 12px; }
    .hero-content .cta-button { padding: 9px 24px; font-size: 14px; }
    .scroll-down-arrow { display: none; }
    #animated-headline { padding-top: 16px; }
}

@media (prefers-reduced-motion: reduce) {
    .hero-content h1, .hero-content p, .hero-content .cta-button { animation: none !important; opacity: 1 !important; }
    .hero-content { animation: none; filter: none; }
    .scroll-down-arrow { animation: none; }
}
