/* Polices du club, auto-hébergées.
   Archivo 800 pour les titres, Chivo 400/600 pour le texte — exactement les
   trois graisses employées, pas une de plus. Aucun appel à Google : la police
   part du même domaine que la page, ce qui vaut mieux pour la vitesse comme
   pour la vie privée des visiteurs.
   Chivo est une police variable : le même fichier sert le 400 et le 600, d'où
   la plage de graisse plutôt que deux fichiers identiques.
   Les deux sous-ensembles latin et latin-ext couvrent le français ; le
   vietnamien proposé par Google a été écarté. Total : 84 Ko. */
@font-face {
    font-family: 'Archivo';
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url('../fonts/archivo-800-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Archivo';
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url('../fonts/archivo-800-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Chivo';
    font-style: normal;
    font-weight: 400 600;
    font-display: swap;
    src: url('../fonts/chivo-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Chivo';
    font-style: normal;
    font-weight: 400 600;
    font-display: swap;
    src: url('../fonts/chivo-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Scoped to the isolated front page; Elementor content keeps its own styles. */
body.ck-home {
    --ck-black: #101112;
    --ck-anthracite: #202225;
    --ck-dark-surface: #2A2C30;
    --ck-ivory: #F5F2E9;
    --ck-ivory-muted: #D8D4C9;
    --ck-yellow: #FDE002;
    --ck-red: #B51226;
    --ck-text-light-secondary: #C1BEB5;
    --ck-text-dark-secondary: #605E58;
    --ck-yellow-hover: #E6C900;
    --ck-yellow-active: #D6BA00;
    --ck-separator-dark: #414348;
    --ck-container: 80rem;
    --ck-gutter: clamp(1rem, 4vw, 4rem);
    /* Header height and brand height are driven from here. The emblem
       overflows the header only where --ck-brand-height exceeds it (desktop). */
    --ck-header-height: 4.375rem;
    --ck-brand-height: var(--ck-header-height);
    --ck-brand-ratio: 0.8075; /* 260 / 322 du logo 2026 détouré. */
    --ck-admin-offset: 0px;
    --ck-transition: 160ms ease-out;
    margin: 0;
    background: var(--ck-black);
    color: var(--ck-ivory);
    font-family: 'Chivo', Arial, sans-serif;
    font-size: 1.0625rem;
    line-height: 1.6;
}
.ck-home .ck-header,
.ck-home .ck-header *,
.ck-home .ck-hero,
.ck-home .ck-hero *,
.ck-home .ck-menu-panel,
.ck-home .ck-menu-panel * { box-sizing: border-box; }
.ck-home .ck-container { width: min(calc(100% - 2 * var(--ck-gutter)), var(--ck-container)); margin-inline: auto; }
.ck-home .ck-main { display: block; }
/* Défilement doux pour les ancres du menu. Neutralisé sous prefers-reduced-motion
   (bloc en fin de fichier) : le saut redevient instantané et natif. */
html:has(body.ck-home) { scroll-behavior: smooth; }
/* Toute section ancrée arrive sous le header sticky, jamais cachée dessous. */
.ck-home :where(#ck-main, #ck-content, #ck-practical, #ck-club, #ck-wado, #ck-sensei,
    #ck-competition, #ck-news, #ck-press, #ck-gallery, #ck-contact, [id].elementor-element) {
    scroll-margin-top: calc(var(--ck-header-height) + var(--ck-admin-offset) + 1rem);
}
.ck-home .ck-content { min-width: 0; }
.ck-home .ck-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 3rem;
    max-width: 100%;
    padding: .75rem 1.5rem;
    border: 1px solid transparent;
    border-radius: 4px;
    background: var(--ck-yellow);
    color: var(--ck-black);
    font: 600 1rem/1.25 'Chivo', Arial, sans-serif;
    text-align: center;
    text-decoration: none;
    box-shadow: none;
    transition: background-color var(--ck-transition), color var(--ck-transition);
}
.ck-home .ck-button:hover { background: var(--ck-yellow-hover); color: var(--ck-black); }
.ck-home .ck-button:active { background: var(--ck-yellow-active); }
.ck-home .ck-button--on-light { background: var(--ck-black); color: var(--ck-ivory); }
.ck-home .ck-button--on-light:hover { background: var(--ck-dark-surface); color: var(--ck-ivory); }
.ck-home .ck-button--on-light:active { background: var(--ck-anthracite); }
.ck-home .ck-editorial-link {
    display: inline-flex;
    align-items: center;
    min-height: 2.75rem;
    color: var(--ck-ivory);
    font: 400 1rem/1.5 'Chivo', Arial, sans-serif;
    text-decoration: underline;
    text-underline-offset: .3em;
    transition: color var(--ck-transition);
}
.ck-home .ck-editorial-link:hover { color: var(--ck-yellow); }
.ck-home :where(.ck-header, .ck-hero, .ck-menu-panel, .ck-content) :focus-visible,
.ck-home :where(.ck-skip-link, .ck-main, .ck-content):focus-visible {
    outline: 3px solid var(--ck-yellow);
    outline-offset: 3px;
}
.ck-home .ck-button--on-light:focus-visible,
.ck-home .ck-header__brand:focus-visible { outline-color: var(--ck-red); }
.ck-home .ck-skip-link {
    position: fixed;
    top: calc(var(--ck-admin-offset) + .5rem);
    left: 1rem;
    z-index: 100000;
    transform: translateY(-250%);
    padding: .75rem 1rem;
    background: var(--ck-black);
    color: var(--ck-ivory);
    /* Seul élément visible qui héritait encore de la police du thème parent. */
    font: 600 .9375rem/1.4 'Chivo', Arial, sans-serif;
}
.ck-home .ck-skip-link:focus { transform: translateY(0); }
.ck-home.admin-bar { --ck-admin-offset: 32px; }
@media (max-width: 782px) {
    .ck-home.admin-bar { --ck-admin-offset: 46px; }
    /* Keep the existing WP toolbar aligned with our sticky header on small screens. */
    .ck-home.admin-bar #wpadminbar { position: fixed; }
}
/* Desktop switch pulled back from 1200px: the wider red brand slab needs the
   compact navigation to hand over earlier, before nav and CTA can collide. */
@media (min-width: 1150px) {
    body.ck-home {
        --ck-header-height: 6.25rem;  /* ~100px */
        --ck-brand-height: 9.375rem;  /* ~150px, i.e. ~50px below the header line */
    }
}
/* Scrolled state: the slab retracts into the header, ratio untouched. */
.ck-home .ck-header--scrolled { --ck-brand-height: var(--ck-header-height); }
@media (prefers-reduced-motion: reduce) {
    html:has(body.ck-home) { scroll-behavior: auto; }
    .ck-home .ck-button, .ck-home .ck-editorial-link, .ck-home .ck-nav a,
    .ck-home .ck-header__brand, .ck-home .ck-header__logo { transition: none; }
}
