:root{
    --blue:#062f5f;
    --blue-dark:#031f3f;
    --red:#d21f2b;
    --text:#0f172a;
    --muted:#64748b;
    --bg:#f3f6fa;
    --white:#ffffff;
    --border:#dbe3ee;
    --shadow:0 14px 35px rgba(15, 23, 42, .10);
}

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

body{
    font-family:Arial, Helvetica, sans-serif;
    background:var(--bg);
    color:var(--text);
}

a{
    color:inherit;
    text-decoration:none;
}

.container{
    width:min(1420px, 92%);
    margin:0 auto;
}

/* HEADER */

.topbar{
    background:white;
    border-bottom:1px solid var(--border);
    position:sticky;
    top:0;
    z-index:50;
}

.header-inner{
    min-height:92px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
}

.brand{
    display:flex;
    align-items:center;
    gap:14px;
    color:var(--blue);
}

.brand-logo{
    width:64px;
    height:64px;
    border:3px solid var(--blue);
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:900;
    font-size:1.2rem;
}

.brand strong{
    display:block;
    font-size:1.55rem;
    text-transform:uppercase;
    letter-spacing:.5px;
}

.brand span{
    display:block;
    font-size:.9rem;
    color:#334155;
    margin-top:2px;
}

.main-nav{
    display:flex;
    align-items:center;
    gap:24px;
    font-size:.92rem;
    font-weight:700;
    text-transform:uppercase;
    color:#0f2544;
}

.main-nav a{
    padding:34px 0 28px;
    border-bottom:4px solid transparent;
}

.main-nav a.active,
.main-nav a:hover{
    color:var(--blue);
    border-bottom-color:var(--blue);
}

.member-btn{
    background:var(--blue);
    color:white;
    font-weight:800;
    padding:13px 20px;
    border-radius:7px;
    white-space:nowrap;
}

/* HERO */

.hero-home{
    position:relative;
    min-height:560px;
    background:url("../images/hero.jpg") center center/cover no-repeat;
    overflow:hidden;
}

.hero-shade{
    position:absolute;
    inset:0;
    background:linear-gradient(90deg, rgba(255,255,255,.86) 0%, rgba(255,255,255,.60) 33%, rgba(255,255,255,.10) 58%, rgba(255,255,255,0) 100%);
}

.hero-inner{
    position:relative;
    z-index:2;
    min-height:560px;
    display:flex;
    align-items:center;
}

.hero-copy{
    max-width:610px;
    color:var(--blue-dark);
}

.hero-kicker{
    text-transform:uppercase;
    font-weight:700;
    letter-spacing:.8px;
    margin-bottom:14px;
}

.hero-copy h1{
    font-size:4.5rem;
    line-height:.98;
    text-transform:uppercase;
    letter-spacing:1px;
    margin-bottom:22px;
}

.departements{
    font-size:1.22rem;
    text-transform:uppercase;
    font-weight:800;
    letter-spacing:.8px;
    margin-bottom:12px;
}

.departements::after{
    content:"";
    display:block;
    width:150px;
    height:5px;
    margin-top:14px;
    background:linear-gradient(90deg, var(--blue) 0 55%, white 55% 70%, var(--red) 70% 100%);
}

.slogan{
    font-size:1.15rem;
    font-style:italic;
    margin:20px 0 28px;
}

.hero-actions{
    display:flex;
    gap:18px;
    flex-wrap:wrap;
}

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:190px;
    padding:14px 22px;
    border-radius:7px;
    font-weight:800;
    text-transform:uppercase;
    font-size:.9rem;
}

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

.btn-light{
    background:rgba(255,255,255,.78);
    border:2px solid var(--blue);
    color:var(--blue);
}

/* HOMEPAGE GRID */

.homepage{
    margin-top:26px;
    margin-bottom:34px;
    display:grid;
    grid-template-columns:1.15fr 1.15fr 1.15fr .95fr;
    gap:18px;
}

.panel{
    background:white;
    border:1px solid var(--border);
    border-radius:14px;
    padding:22px;
    box-shadow:var(--shadow);
}

.panel-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding-bottom:14px;
    border-bottom:1px solid var(--border);
    margin-bottom:16px;
}

.panel-head h2{
    font-size:1rem;
    color:var(--blue);
    text-transform:uppercase;
    letter-spacing:.3px;
}

.panel-head a{
    color:var(--blue);
    font-size:.85rem;
    font-weight:700;
}

/* RESULTS */

.result-line{
    display:grid;
    grid-template-columns:1.2fr .9fr auto;
    align-items:center;
    gap:12px;
    padding:13px 0;
    border-bottom:1px solid #edf2f7;
}

.result-line strong{
    display:block;
    color:#111827;
}

.result-line span{
    color:#475569;
    font-size:.92rem;
}

.result-line div span{
    display:block;
    color:#64748b;
    font-size:.86rem;
}

.pdf-btn{
    background:var(--blue);
    color:white;
    font-weight:800;
    padding:8px 12px;
    border-radius:6px;
    font-size:.8rem;
}

.panel-link{
    display:block;
    text-align:center;
    color:var(--blue);
    font-weight:800;
    margin-top:16px;
}

/* NEWS */

.news-item{
    display:flex;
    gap:15px;
}

.news-thumb{
    width:110px;
    min-width:110px;
    height:95px;
    border-radius:8px;
    background:url("../images/hero.jpg") center/cover no-repeat;
}

.badge{
    display:inline-block;
    background:#e8f1ff;
    color:var(--blue);
    text-transform:uppercase;
    font-size:.68rem;
    font-weight:900;
    padding:4px 7px;
    border-radius:4px;
    margin-bottom:7px;
}

.badge.muted{
    background:#eef2f7;
    color:#475569;
}

.news-item h3,
.small-news h3{
    font-size:.98rem;
    margin-bottom:7px;
}

.news-item p{
    font-size:.88rem;
    color:#334155;
    line-height:1.45;
}

.news-item a,
.small-news a{
    display:inline-block;
    margin-top:7px;
    color:var(--blue);
    font-weight:800;
    font-size:.84rem;
}

.small-news{
    margin-top:16px;
    padding-top:14px;
    border-top:1px solid var(--border);
}

/* RACES */

.race-line{
    display:grid;
    grid-template-columns:1fr auto auto;
    align-items:center;
    gap:12px;
    padding:12px 0;
    border-bottom:1px solid #edf2f7;
}

.race-line span{
    color:#475569;
    font-size:.9rem;
}

.race-line em{
    font-style:normal;
    padding:4px 10px;
    border-radius:999px;
    font-size:.78rem;
    font-weight:800;
}

.open{
    background:#dff7e8;
    color:#157347;
}

.soon{
    background:#e5e7eb;
    color:#475569;
}

/* QUICK */

.quick-links{
    display:grid;
    grid-template-columns:1fr 1fr;
    border:1px solid var(--border);
    border-radius:10px;
    overflow:hidden;
}

.quick-links a{
    min-height:78px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    color:var(--blue);
    font-weight:800;
    border-right:1px solid var(--border);
    border-bottom:1px solid var(--border);
}

.quick-links a:nth-child(2n){
    border-right:none;
}

.quick-links a:nth-last-child(-n+2){
    border-bottom:none;
}

.wide-member{
    margin-top:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--blue);
    color:white;
    font-weight:900;
    text-transform:uppercase;
    padding:16px;
    border-radius:9px;
}

/* STATS */

.stats-band{
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:0;
    background:white;
    border:1px solid var(--border);
    border-radius:14px;
    box-shadow:var(--shadow);
    overflow:hidden;
}

.stats-band div{
    padding:24px 28px;
    border-right:1px solid var(--border);
}

.stats-band div:last-child{
    border-right:none;
}

.stats-band strong{
    display:block;
    color:var(--blue);
    font-size:1.65rem;
    font-weight:900;
}

.stats-band span{
    display:block;
    text-transform:uppercase;
    color:#475569;
    font-size:.85rem;
    font-weight:700;
}

/* FOOTER */

.footer{
    background:var(--blue-dark);
    color:white;
    padding:22px 0;
}

.footer-inner{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    font-size:.9rem;
}

.footer a{
    color:white;
}

/* RESPONSIVE */

@media(max-width:1200px){
    .main-nav{
        display:none;
    }

    .homepage{
        grid-template-columns:1fr 1fr;
    }

    .quick-panel{
        grid-column:1 / -1;
    }
}

@media(max-width:760px){
    .header-inner{
        min-height:auto;
        padding:14px 0;
    }

    .brand-logo{
        width:50px;
        height:50px;
    }

    .brand strong{
        font-size:1.05rem;
    }

    .brand span{
        font-size:.72rem;
    }

    .member-btn{
        display:none;
    }

    .hero-home{
        min-height:690px;
        background-position:center top;
    }

    .hero-shade{
        background:linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.72) 45%, rgba(255,255,255,.1) 100%);
    }

    .hero-inner{
        min-height:690px;
        align-items:flex-start;
        padding-top:48px;
    }

    .hero-copy h1{
        font-size:3rem;
    }

    .departements{
        font-size:.95rem;
    }

    .btn{
        width:100%;
    }

    .homepage{
        grid-template-columns:1fr;
    }

    .news-item{
        flex-direction:column;
    }

    .news-thumb{
        width:100%;
        height:150px;
    }

    .stats-band{
        grid-template-columns:1fr;
    }

    .stats-band div{
        border-right:none;
        border-bottom:1px solid var(--border);
    }

    .stats-band div:last-child{
        border-bottom:none;
    }

    .footer-inner{
        flex-direction:column;
        text-align:center;
    }
}