/* =============================================================
   Sonia Orriger — En-tête
   ============================================================= */

.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background-color: rgba(255, 255, 255, .92);
    backdrop-filter: blur(8px);
    transition: box-shadow var(--t-base);
}

.site-header.is-scrolled { box-shadow: var(--ombre-douce); }

.site-header__inner {
    display: flex;
    align-items: center;
    gap: var(--e-lg);
    width: 100%;
    max-width: var(--largeur-max);
    margin-inline: auto;
    padding: var(--e-md) var(--gouttiere);
}

/* ── Logo ───────────────────────────────────────────────────── */
.site-logo {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    flex: none;
    line-height: 1;
}

.site-logo__nom {
    display: inline-flex;
    align-items: center;
    gap: .35em;
    font-family: var(--f-plume);
    font-size: clamp(1.7rem, 3.4vw, 2.5rem);
    color: var(--c-encre);
}

.site-logo__coeur {
    width: .55em;
    height: .5em;
    color: var(--c-coeur);
    flex: none;
}

.site-logo__baseline {
    margin-top: .35em;
    font-size: var(--t-mini);
    letter-spacing: var(--l-large);
    text-transform: uppercase;
    color: var(--c-encre-doux);
}

.site-logo .custom-logo { max-height: 64px; width: auto; }

/* ── Navigation ─────────────────────────────────────────────── */
.site-nav {
    display: flex;
    align-items: center;
    gap: var(--e-lg);
    margin-left: auto;
}

.site-nav__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: clamp(.5rem, 1vw, 1.1rem);
}

.site-nav__link {
    display: inline-block;
    padding: .35em 0;
    font-size: .72rem;
    font-weight: var(--g-demi);
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--c-encre);
    border-bottom: 2px solid transparent;
    white-space: nowrap;
}

.site-nav__link:hover,
.site-nav__link:focus-visible { border-bottom-color: var(--c-coeur); }

.site-nav__item.is-current .site-nav__link { border-bottom-color: var(--c-encre); }

.site-nav__cta { flex: none; }

/* ── Burger ─────────────────────────────────────────────────── */
.nav-burger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    margin-left: auto;
    padding: 0;
    background: none;
    border: 0;
    cursor: pointer;
}

.nav-burger__line {
    display: block;
    width: 26px;
    height: 2px;
    margin-inline: auto;
    background-color: var(--c-encre);
    transition: transform var(--t-base), opacity var(--t-rapide);
}

.nav-burger[aria-expanded="true"] .nav-burger__line:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-burger[aria-expanded="true"] .nav-burger__line:nth-child(2) { opacity: 0; }
.nav-burger[aria-expanded="true"] .nav-burger__line:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ── Sous 1100px : menu en panneau ──────────────────────────── */
@media (max-width: 1200px) {
    .nav-burger { display: flex; }

    .site-nav {
        position: fixed;
        inset: var(--hauteur-header) 0 auto 0;
        flex-direction: column;
        align-items: stretch;
        gap: var(--e-md);
        max-height: calc(100dvh - var(--hauteur-header));
        overflow-y: auto;
        padding: var(--e-xl) var(--gouttiere) var(--e-2xl);
        background-color: var(--c-blanc);
        border-top: 1px solid var(--c-bordure);
        box-shadow: var(--ombre-carte);
        transform: translateY(-110%);
        visibility: hidden;
        transition: transform var(--t-base), visibility var(--t-base);
    }

    .site-nav.is-open {
        transform: translateY(0);
        visibility: visible;
    }

    .site-nav__list {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }

    .site-nav__link {
        padding: var(--e-md) 0;
        font-size: var(--t-base);
        border-bottom: 1px solid var(--c-bordure);
    }

    .site-nav__cta { align-self: flex-start; margin-top: var(--e-md); }
}

/* ── Entre 1200 et 1440px : compacter pour garder le menu sur une ligne ─── */
@media (max-width: 1440px) {
    .site-header__inner { gap: var(--e-md); }
    .site-logo__nom { font-size: 2rem; }
    .site-logo__baseline { font-size: .65rem; letter-spacing: .1em; }
    .site-nav { gap: var(--e-md); }
    .site-nav__list { gap: .55rem; }
    .site-nav__link { font-size: .68rem; letter-spacing: .04em; }
    .site-nav__cta { padding: .6em 1.1em; font-size: .85rem; }
}
