/**
 * Header du site (header.php) : liens d'évitement, sur-menu, barre principale, recherche,
 * menu mobile et fil d'Ariane. Mesures et couleurs reprises du site source
 * (thème galaxyy-isimedia, scss/modules/_header.scss, _arianne.scss et assets/js/script.js).
 *
 * États pilotés par assets/js/header.js :
 *   .site-header--transparent  accueil (posé en PHP) : texte blanc sur dégradé sombre
 *   .is-scrolled               accueil défilé : fond blanc, texte sombre
 *   .is-compact                barre réduite à 60px pendant le défilement vers le bas
 *   .is-search-open            champ de recherche affiché à la place du menu
 */

/* #region Liens d'évitement (RGAA 12.6) */
.skip-links {
    position: relative;
    z-index: 100000;
}

.skip-link {
    position: absolute;
    top: -1000px;
    left: 0;
    padding: 12px 20px;
    background-color: var(--gt-color-primary-dark);
    color: var(--gt-color-white);
    font-weight: bold;
}

.skip-link:focus {
    top: 0;
}
/* #endregion */

/* #region Conteneur fixe */
/* Ancres (#section) : la cible s'arrête sous le header réduit (sur-menu + barre compacte),
   avec 20px de marge comme sur le site source (AnchorModule.getHeaderOffset()). */
html {
    scroll-padding-top: calc(var(--isimedia-header-topbar-height) + var(--isimedia-header-bar-height-compact) + 20px);
}

.site-header {
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 99999;
}

/* Décalage du contenu sous le header fixe, valeurs du site source : 140px par défaut
   (sur-menu + barre ; le fil d'Ariane recouvre le haut du contenu), 0 sur l'accueil dont le
   visuel passe sous le header. */
#main-content {
    padding-top: calc(var(--isimedia-header-topbar-height) + var(--isimedia-header-bar-height));
}

.home #main-content {
    padding-top: 0;
}
/* #endregion */

/* #region Sur-menu : marque du groupe et lien vers son site */
.site-header__topbar {
    height: var(--isimedia-header-topbar-height);
    background-color: var(--gt-color-neutral-900);
}

.site-header__topbar-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
    font-size: 12px;
    line-height: 1.5;
    color: var(--gt-color-white);
}

.site-header__brand {
    margin: 0;
    font-size: 12px;
}

.site-header__group-link {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--gt-color-white);
    text-decoration: underline;
}

.site-header__group-link:hover {
    color: var(--gt-color-primary);
}
/* #endregion */

/* #region Barre principale */
.site-header__main {
    background-color: var(--gt-color-white);
}

.site-header--transparent .site-header__main {
    background: transparent linear-gradient(360deg, #20242700 0%, #202427e6 79%, #202427f2 90%, #202427f7 100%);
}

.site-header--transparent.is-scrolled .site-header__main {
    background: var(--gt-color-white);
}

.site-header__bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: var(--isimedia-header-bar-height);
    transition: height 0.7s;
}

.site-header.is-compact .site-header__bar {
    height: var(--isimedia-header-bar-height-compact);
}

.site-header__logo {
    display: flex;
    align-items: center;
    height: 100%;
}

.site-header__logo-img--light,
.site-header--transparent:not(.is-scrolled) .site-header__logo-img--dark {
    display: none;
}

.site-header--transparent:not(.is-scrolled) .site-header__logo-img--light {
    display: block;
}

.site-header__actions {
    display: flex;
    align-items: center;
}

.site-header__menu {
    display: flex;
    height: 100%;
}

.site-header__menu > .menu-item {
    display: flex;
    align-items: center;
    height: 50px;
    padding: 0 17px;
}

.site-header__menu > .menu-item > a {
    display: flex;
    align-items: center;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 1px;
    color: var(--gt-color-neutral-900);
}

.site-header__menu > .is-current > a {
    font-weight: bold;
}

/* Trait jaune sous l'entrée courante ou survolée (source : .currentPage, .itemMenu:hover). */
.site-header__menu > .menu-item:not(.menu-bouton):hover,
.site-header__menu > .is-current:not(.menu-bouton) {
    border-bottom: 3px solid var(--gt-color-primary);
    transition: 0.1s;
}

.site-header--transparent:not(.is-scrolled) .site-header__menu > .menu-item > a {
    color: var(--gt-color-white);
}

.site-header__menu > .menu-bouton {
    padding-right: 0;
}

/* Bouton « Contact » : même taille que sur la source (48px de haut, 16px gras). */
.site-header__menu > .menu-bouton > a.btn,
.site-header--transparent:not(.is-scrolled) .site-header__menu > .menu-bouton > a.btn {
    margin-left: 17px;
    font-weight: bold;
    letter-spacing: normal;
    color: var(--gt-color-white);
}

.site-header__menu > .menu-bouton > a.btn:hover {
    color: var(--gt-color-neutral-900);
}

.site-header--transparent:not(.is-scrolled) .site-header__menu > .menu-bouton > a.btn:hover {
    border-color: var(--gt-color-white);
    color: var(--gt-color-white);
}

.site-header__search-toggle {
    margin-left: 20px;
}

/* Boutons d'icône (recherche, menu mobile) */
.site-header__icon-btn {
    display: inline-flex;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: none;
    color: var(--gt-color-neutral-900);
    cursor: pointer;
    transition: opacity 200ms ease;
}

.site-header__icon-btn:hover,
.site-header__icon-btn:focus-visible {
    opacity: 0.6;
    /* L'opacité seule reste peu perceptible selon le fond : l'échelle se voit partout. */
    transform: scale(1.12);
}

.site-header--transparent:not(.is-scrolled) .site-header__search-toggle {
    color: var(--gt-color-white);
}

.site-header__burger {
    display: none;
    margin-left: 20px;
}

/* Sur le site source, ces icônes sont des <img> en ligne, alignées sur la ligne de base du
   texte : elles se trouvent 3px (recherche) et 2px (menu) au-dessus du centre de la barre. */
.site-header__search-toggle {
    position: relative;
    top: -3px;
}

.site-header__burger {
    position: relative;
    top: -2px;
}

.site-header--transparent:not(.is-scrolled) .site-header__burger {
    color: var(--gt-color-primary);
}
/* #endregion */

/* #region Recherche */
.site-header.is-search-open .site-header__actions {
    display: none;
}

.site-header__search {
    height: 100%;
    align-items: center;
    justify-content: center;
}

.site-header__search:not([hidden]) {
    display: flex;
}

.site-header__search-form {
    display: flex;
    align-items: center;
    width: 680px;
    max-width: 100%;
    height: 50%;
}

.site-header__search-field,
.site-header__search-close {
    color: var(--gt-color-neutral-900);
}

.site-header__search-field {
    width: 100%;
    height: 100%;
    margin: auto;
    padding-left: 10px;
    border: none;
    background: transparent;
    font-size: 14px;
    letter-spacing: 1px;
}

.site-header__search-close {
    width: 30px;
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    text-align: right;
    cursor: pointer;
}

.site-header--transparent:not(.is-scrolled) .site-header__search-field,
.site-header--transparent:not(.is-scrolled) .site-header__search-close,
.site-header--transparent:not(.is-scrolled) .site-header__search-field::placeholder {
    color: var(--gt-color-white);
}
/* #endregion */

/* #region Menu mobile */
.site-header__mobile-nav {
    width: 100%;
    background-color: var(--gt-color-white);
}

.site-header__mobile-menu {
    width: 85%;
    margin: 16px auto;
}

.site-header__mobile-menu .menu-item {
    padding: 4% 0;
    border-bottom: 1px solid var(--gt-color-neutral-900);
    font-size: 14px;
}

.site-header__mobile-menu a {
    letter-spacing: 1px;
    color: #000000;
}
/* #endregion */

/* #region Fil d'Ariane */
.breadcrumb {
    display: flex;
    align-items: center;
    min-height: var(--isimedia-header-breadcrumb-height);
    background-color: var(--gt-color-white);
}

.breadcrumb__list {
    display: flex;
    align-items: center;
    font-size: 14px;
}

.breadcrumb__item {
    display: flex;
    align-items: center;
}

.breadcrumb__item span {
    font-weight: bold;
    color: var(--gt-color-neutral-900);
}

.breadcrumb__separator {
    /* 14px à gauche : 10px de marge + l'espace qui précédait le chevron sur le site source */
    margin: 0 10px 0 14px;
    color: #0f172a;
}
/* #endregion */

/* #region Responsive */
@media (max-width: 1199px) {
    .site-header__nav {
        display: none;
    }

    .site-header__burger {
        display: inline-flex;
        color: var(--gt-color-primary);
    }

    /* Accueil : barre blanche et logo sombre sous 1200px, comme sur le site source. */
    .site-header--transparent .site-header__main {
        background: var(--gt-color-white);
    }

    .site-header--transparent:not(.is-scrolled) .site-header__logo-img--light {
        display: none;
    }

    .site-header--transparent:not(.is-scrolled) .site-header__logo-img--dark {
        display: block;
    }

    .site-header--transparent:not(.is-scrolled) .site-header__search-toggle,
    .site-header--transparent:not(.is-scrolled) .site-header__search-field,
    .site-header--transparent:not(.is-scrolled) .site-header__search-close {
        color: var(--gt-color-neutral-900);
    }

    /* Pas de réduction ni de passage en fond blanc au défilement sous 1200px (site source) */
    .site-header.is-compact .site-header__bar {
        height: var(--isimedia-header-bar-height);
    }

    .site-header__search {
        flex: 1;
    }

    .site-header__search-form {
        width: 100%;
        height: 50px;
    }
}

@media (max-width: 767px) {
    .breadcrumb__list {
        flex-wrap: wrap;
    }
}
/* #endregion */
