body {
    font-family: 'Plus Jakarta Sans', sans-serif;
    background: #f8fafc;
    color: #0f172a;
}

.page-hero {
    background:
        linear-gradient(125deg, rgba(15, 23, 42, .94), rgba(31, 78, 121, .72)),
        var(--page-hero-image);
    background-position: center;
    background-size: cover;
}

.glass-nav {
    background: rgba(255, 255, 255, .9);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(15, 23, 42, .06);
}

.shadow-premium {
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, .1);
}

.page-nav a:hover {
    color: #1f4e79;
}

.logo-clima-gradient {
    color: #1f4e79;
}

.brand-divider {
    display: block;
    width: 2px;
    min-width: 2px;
    align-self: center;
    border-radius: 999px;
}

header .logo-clima-gradient {
    color: #0f172a;
}

header .brand-divider {
    height: 2rem;
    background: #64748b;
}

footer .logo-clima-gradient {
    color: #fff;
}

.mobile-call-button {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.mobile-call-button::before {
    position: absolute;
    z-index: -1;
    top: -45%;
    bottom: -45%;
    left: -55%;
    width: 35%;
    content: "";
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .58), transparent);
    transform: skewX(-22deg);
    animation: sticky-light-sweep 6.4s ease-in-out 3.2s infinite;
    pointer-events: none;
}

.sticky-call-button {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    transition: transform .3s ease, box-shadow .3s ease;
    animation: sticky-cta-lift 3.2s ease-in-out infinite;
}

.sticky-call-button::before {
    position: absolute;
    z-index: -1;
    top: -45%;
    bottom: -45%;
    left: -55%;
    width: 35%;
    content: "";
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .58), transparent);
    transform: skewX(-22deg);
    animation: sticky-light-sweep 6.4s ease-in-out infinite;
    pointer-events: none;
}

.sticky-call-button:active {
    transform: scale(.98);
}

.animate-phone-cta {
    transform-origin: 50% 15%;
    animation: phone-cta 2.6s ease-in-out infinite;
}

@keyframes phone-cta {
    0%, 72%, 100% { transform: rotate(0) scale(1); }
    76% { transform: rotate(-16deg) scale(1.12); }
    80% { transform: rotate(16deg) scale(1.12); }
    84% { transform: rotate(-12deg) scale(1.12); }
    88% { transform: rotate(12deg) scale(1.12); }
    92% { transform: rotate(-5deg) scale(1.06); }
    96% { transform: rotate(5deg) scale(1.03); }
}

@keyframes sticky-light-sweep {
    0%, 8% { left: -55%; opacity: 0; }
    12% { opacity: 1; }
    29% { left: 120%; opacity: 1; }
    35%, 100% { left: 120%; opacity: 0; }
}

.reference-card {
    position: relative;
    overflow: hidden;
    border: 1px solid #e2eaf3;
    border-radius: 1.5rem;
    background: linear-gradient(145deg, #fff 0%, #f2f6fb 100%);
    padding: 1.75rem;
    box-shadow: 0 20px 40px -30px rgba(15, 23, 42, .4);
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.reference-card::after {
    position: absolute;
    top: -3.5rem;
    right: -3.5rem;
    width: 9rem;
    height: 9rem;
    border: 1px solid rgba(31, 78, 121, .1);
    border-radius: 50%;
    content: "";
    box-shadow: 0 0 0 1.25rem rgba(31, 78, 121, .035), 0 0 0 2.5rem rgba(31, 78, 121, .025);
    pointer-events: none;
}

.reference-card:hover {
    transform: translateY(-4px);
    border-color: #c1d5e8;
    box-shadow: 0 24px 45px -28px rgba(15, 23, 42, .48);
}

.reference-card-icon {
    display: grid;
    width: 3.5rem;
    height: 3.5rem;
    place-items: center;
    border-radius: 1.125rem;
    background: #1f4e79;
    color: #fff;
    font-size: 1.35rem;
    box-shadow: 0 10px 22px -12px rgba(31, 78, 121, .75);
}

.reference-card-location {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    color: #1f4e79;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.reference-card h3 {
    margin-top: 1.1rem;
    color: #0f172a;
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.35;
}

.reference-card p {
    margin-top: .55rem;
    color: #64748b;
    font-size: .94rem;
    line-height: 1.7;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        transition-duration: .01ms !important;
        transform: none !important;
    }

    .sticky-call-button,
    .sticky-call-button::before,
    .animate-phone-cta,
    .mobile-call-button::before {
        animation: none !important;
    }
}
