
.page-loader {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    transition: opacity .4s ease, visibility .4s ease;
}
.page-loader.is-hidden {
    opacity: 0;
    visibility: hidden;
}
.page-loader__spinner {
    width: 54px;
    height: 54px;
    border-radius: 50%;
    border: 4px solid #e3e8ec;                       
    border-top-color: var(--brand-primary, #486b85);   
    border-right-color: var(--brand-secondary, #c68b2d); 
    animation: pmg-spin .8s linear infinite;
}
@keyframes pmg-spin { to { transform: rotate(360deg); } }

/* Logo loader, after ferrari.com (Denys, 09.10.2026): the logo fades in once
   and holds, then the whole screen fades out - held half a second so a fast
   load still shows the logo instead of a flash. Replaces the spinner. */
.page-loader__logo {
    width: 200px;
    max-width: 60vw;
    height: auto;
    opacity: 0;
    animation: pmg-logo-in .5s ease-out .1s forwards;
}
@keyframes pmg-logo-in { to { opacity: 1; } }
.page-loader:has(.page-loader__logo).is-hidden {
    transition: opacity .7s ease .5s, visibility 0s linear 1.2s;
}

@media (prefers-reduced-motion: reduce) {
    .page-loader__spinner { animation-duration: 1.6s; }
    .page-loader__logo { animation: none; opacity: 1; }
}
