/**
 * Software République - Header Styles
 * 
 * Structure :
 * 1. Variables CSS
 * 2. Header Principal
 * 3. Logo
 * 4. Navigation Desktop
 * 5. Submenus
 * 6. Burger Button
 * 7. Language Switcher
 * 8. Overlay
 * 9. Panel (Volet)
 * 10. Animations
 * 11. Responsive Tablette
 * 12. Responsive Mobile
 */

/* =============================================================================
   1. VARIABLES CSS
   ============================================================================= */

:root {
    /* Couleurs */
    --swr-color-dark: transparent;
    --swr-color-white: var(--col_2);
    --swr-color-grey-light: #f5f5f5;
    --swr-color-grey: #888888;
    --swr-color-primary:  var(--col_2); 
    --swr-color-overlay: rgba(0, 0, 0, 0.7);
    
    /* Radius */
    --corner : 10px;

    /* Dégradé du panel */
    --swr-panel-gradient: linear-gradient(180deg, #1a1a1a 0%, #2d2d2d 100%);
    
    /* Typographie */
    --swr-font-family: var(--font);
    --swr-font-size-nav: 1rem;
    --swr-font-size-panel: var(--global-kb-font-size-lg);
    --swr-font-weight-medium: 400;
    --swr-font-weight-semibold: 600;
    
    /* Espacements */
    --swr-header-height: 100px;
    --swr-header-padding: 0 40px;
    --swr-nav-gap: 20px;
    --swr-panel-padding : 40px;

    /* Transitions */
    --swr-transition-fast: 0.2s ease;
    --swr-transition-medium: 0.3s ease;
    --swr-transition-slow: 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    
    /* Z-index */
    --swr-z-header: 1000;
    --swr-z-overlay: 998;
    --swr-z-panel: 999;
}

.on-scroll{
    --swr-header-height: 80px;
}
/* =============================================================================
   2. HEADER PRINCIPAL
   ============================================================================= */

.swr-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: var(--swr-header-height);
    background-color: var(--swr-color-dark);
    z-index: var(--swr-z-header);
    transition: all var(--swr-transition-medium);

    border-radius: 10px;
    margin: calc(var(--swr-nav-gap) / 2) var(--swr-nav-gap);
    
}
.on-scroll .swr-header {
    background:var(--swr-color-overlay);
    backdrop-filter: blur(7px);
}
.swr-menu-open.on-scroll   .swr-header {
    background:transparent;
    backdrop-filter: blur(0);
}
.swr-header__container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
    padding: var(--swr-header-padding);
    max-width: 1920px;
    margin: 0 auto;
}


/* =============================================================================
   3. LOGO
   ============================================================================= */

.swr-header__logo {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    color: var(--swr-color-white);
    text-decoration: none;
    transition: opacity var(--swr-transition-fast);
    filter: contrast(0) brightness(200);
    transform-origin: left center;
    transition:all var(--swr-transition-medium);
}
.on-scroll .swr-header__logo{
    transform:scale(.8);
    transition:all var(--swr-transition-medium);
}
.swr-header__logo:hover {
    opacity: 0.8;
}

.swr-logo {
    height: 36px;
    width: auto;
}


/* =============================================================================
   4. NAVIGATION DESKTOP
   ============================================================================= */

.swr-header__nav-primary {
    display: flex;
    align-items: center;
    margin-left: auto;
    margin-right: var(--swr-nav-gap);
    background:rgba(255, 255, 255, .1);
    padding:.2em var( --swr-panel-padding);
    min-height: 40px;
    border-radius:var(--corner);
	
	backdrop-filter: blur(10px);
	box-shadow:0 0 20px rgba(0, 0, 0, .1);
}

.swr-menu-primary {
    display: flex;
    align-items: center;
    gap: var(--swr-nav-gap);
    list-style: none;
    margin: 0;
    padding: 0;
}

.swr-menu-primary > li {
    position: relative;
}

.swr-menu-primary > li > a {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--swr-color-white);
    text-decoration: none;
    font-family: var(--swr-font-family);
    font-size: var(--swr-font-size-nav);
    font-weight: var(--swr-font-weight-medium);
    padding: 8px 10px;
    transition: color var(--swr-transition-fast);
    text-transform:uppercase;
}

.swr-menu-primary > li > a:hover,
.swr-menu-primary > li.current-menu-item > a,
.swr-menu-primary > li.current-menu-ancestor > a {
    color: var(--col_3);
}
.swr-menu-primary > li > a:hover{
	color: var(--col_3);
}
/* Icône chevron submenu */
.swr-menu-primary .submenu-icon {
    transition: transform var(--swr-transition-fast);
}

.swr-menu-primary > li.has-submenu:hover .submenu-icon,
.swr-menu-primary > li.has-submenu.is-open .submenu-icon {
    transform: rotate(180deg);
}


/* =============================================================================
   5. SUBMENUS
   ============================================================================= */

.swr-menu-primary .sub-menu {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    min-width: 200px;
    background-color: var(--swr-color-white);
    border-radius: 8px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
    padding: 12px 0;
    list-style: none;
    margin: 0;
    
    /* État initial (caché) */
    opacity: 0;
    visibility: hidden;
    transform: translateX(-50%) translateY(20px);
    transition: 
        opacity var(--swr-transition-medium),
        visibility var(--swr-transition-medium),
        transform var(--swr-transition-medium);
}

/* Petit triangle au-dessus du submenu */
.swr-menu-primary .sub-menu::before {
    content: '';
    position: absolute;
    top: -8px;
    left: 50%;
    transform: translateX(-50%);
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-bottom: 8px solid var(--swr-color-white);
}

/* État visible */
.swr-menu-primary > li.has-submenu:hover > .sub-menu,
.swr-menu-primary > li.has-submenu.is-open > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(10px);
}

.swr-menu-primary .sub-menu li a {
    display: block;
    padding: 10px 20px;
    color: var(--col_1);
    text-decoration: none;
    font-size: 14px;
    font-weight: var(--swr-font-weight-medium);
    transition: 
        background-color var(--swr-transition-fast),
        color var(--swr-transition-fast);
}

.swr-menu-primary .sub-menu li a:hover {
    background-color: var(--swr-color-grey-light);
    color: var(--col_3);
}


/* =============================================================================
   6. BURGER BUTTON
   ============================================================================= */

.swr-header__actions {
    display: flex;
    align-items: center;
    gap: 20px;
}

.swr-burger {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
    z-index: calc(var(--swr-z-header) + 1);
    background:var(--col_3);
    border-radius:var(--corner );
}

.swr-burger__line {
    display: block;
    width: 18px;
    height: 3px;
    background-color: var(--swr-color-white);
    border-radius: 3px;
    transform-origin: center center;
    position:absolute;
    left:50%;
    top:50%;

    transition: 
        transform var(--swr-transition-medium),
        opacity var(--swr-transition-medium),
        background-color var(--swr-transition-fast);
}

.swr-burger__line--top {
    transform: translateY(-7px) translateX(-50%);
    
}
.swr-burger__line--middle {
    transform: translateX(-50%);
}

.swr-burger__line--bottom {
    transform: translateY(7px) translateX(-50%);
}

/* État ouvert (croix) */
.swr-burger.is-active .swr-burger__line--top {
    transform: translateY(0) translateX(-50%) rotate(45deg);
}

.swr-burger.is-active .swr-burger__line--middle {
    opacity: 0;
    transform: scaleX(0);
}

.swr-burger.is-active .swr-burger__line--bottom {
    transform: translateY(0) translateX(-50%) rotate(-45deg);
}

/* Hover */
.swr-burger:hover .swr-burger__line {
    background-color: var(--swr-color-primary);
}


/* =============================================================================
   7. LANGUAGE SWITCHER
   ============================================================================= */

.swr-lang-switch {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--swr-font-family);
    font-size: 13px;
    font-weight: var(--swr-font-weight-semibold);
    z-index: calc(var(--swr-z-header) + 1);
}

.swr-lang-switch .lang-item {
    color: var(--swr-color-grey);
    text-decoration: none;
    transition: color var(--swr-transition-fast);
    cursor: pointer;
}

.swr-lang-switch .lang-item:hover {
    color: var(--swr-color-white);
}

.swr-lang-switch .lang-item.active {
    color: var(--swr-color-white);
    cursor: default;
    text-decoration:undeline;
}

.swr-lang-switch .lang-separator {
    color: var(--swr-color-grey);
    user-select: none;
}


/* =============================================================================
   8. OVERLAY
   ============================================================================= */

.swr-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--swr-color-overlay);
    z-index: var(--swr-z-overlay);
    backdrop-filter: blur(7px);
    
    /* État initial (caché) */
    opacity: 0;
    visibility: hidden;
    transition: 
        opacity var(--swr-transition-slow),
        visibility var(--swr-transition-slow);
}

/* État visible */
.swr-overlay.is-active {
    opacity: 1;
    visibility: visible;
}


/* =============================================================================
   9. PANEL (VOLET)
   ============================================================================= */

.swr-panel {
    position: fixed;
    top: calc( var( --swr-header-height) + var(--swr-nav-gap));
    right: var(--swr-nav-gap);
    bottom: var(--swr-nav-gap);
    width: calc(var(--swr-panel-width, 50%) - var(--swr-nav-gap) + 25px);
    background: #2397CF;
    background: linear-gradient(133deg,rgba(35, 151, 207, 1) 58%, rgba(255, 94, 50, 1) 100%);
    z-index: var(--swr-z-panel);
    overflow-y: auto;
	overflow-x: hidden;
    border-radius:var(--corner);

    
    /* État initial (caché) */
    transform: translateX(100%);
    visibility: hidden;
    transition: 
        transform var(--swr-transition-slow),
        visibility var(--swr-transition-slow);
}

/* État visible */
.swr-panel.is-active {
    transform: translateX(-10px);
    visibility: visible;
}

.swr-panel__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 100%;
    padding: calc(var( --swr-panel-padding) );
}

/* Menu Primary dans le panel (caché en desktop) */
.swr-panel__menu-primary {
    display: none;
}

/* Menu Secondary */
.swr-panel__menu-secondary {
    margin-bottom: auto;
}

.swr-panel-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}

.swr-panel-menu li {
    opacity: 0;
    transform: translateX(30px);
    
}

.swr-panel-menu li a {
    display: inline-block;
    color: var(--swr-color-white);
    text-decoration: none;
    font-family: var(--swr-font-family);
    font-size: var(--swr-font-size-panel);
    font-weight: var(--swr-font-weight-medium);
    padding: 15px 0;
    transition: all var(--swr-transition-fast);
    transform-origin:left center;
    opacity:.7;
     display:flex;
    align-items:center;
   
}

.swr-panel-menu li a:hover {
    color: var(--swr-color-primary);
    transition: all var(--swr-transition-fast); 
    opacity:1;
}

.swr-panel-menu li.current-menu-item a {
    color: var(--swr-color-primary);
    transform:scale(1);
    opacity:1;
   
}
.swr-panel-menu li a:before{
    content:"";
    display:block;
    height:1px;
    width:0em;
    background:white;
    transition: all var(--swr-transition-fast);
}
.swr-panel-menu li:not(.current-menu-item) a:hover:before{
    content:"";
    display:block;
    height:1px;
    width:1em;
    background:white;
    margin-right:.25em;
    transition: all var(--swr-transition-fast);
}
/* Animation des items (effet vague) */
.swr-panel.is-active .swr-panel-menu li {
    animation: slideInItem var(--swr-transition-slow) forwards;
}

/* Délai progressif pour chaque item */
.swr-panel.is-active .swr-panel-menu li:nth-child(1) { animation-delay: 0.1s; }
.swr-panel.is-active .swr-panel-menu li:nth-child(2) { animation-delay: 0.15s; }
.swr-panel.is-active .swr-panel-menu li:nth-child(3) { animation-delay: 0.2s; }
.swr-panel.is-active .swr-panel-menu li:nth-child(4) { animation-delay: 0.25s; }
.swr-panel.is-active .swr-panel-menu li:nth-child(5) { animation-delay: 0.3s; }
.swr-panel.is-active .swr-panel-menu li:nth-child(6) { animation-delay: 0.35s; }
.swr-panel.is-active .swr-panel-menu li:nth-child(7) { animation-delay: 0.4s; }
.swr-panel.is-active .swr-panel-menu li:nth-child(8) { animation-delay: 0.45s; }
.swr-panel.is-active .swr-panel-menu li:nth-child(9) { animation-delay: 0.5s; }
.swr-panel.is-active .swr-panel-menu li:nth-child(10) { animation-delay: 0.55s; }

/* Footer du Panel */
.swr-panel__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 60px;
    padding-top: 30px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    
    /* Animation */
    opacity: 0;
    transform: translateY(20px);
}

.swr-panel.is-active .swr-panel__footer {
    animation: fadeInUp var(--swr-transition-slow) 0.4s forwards;
}

/* Réseaux sociaux */
.swr-social-menu {
    display: flex;
    align-items: center;
    gap: 16px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.swr-social-menu li a {
    display: flex;
   	font-size:1.3rem;
	text-decoration:underline!important;
    color: var(--swr-color-white);
    font-weight:600;
	opacity:.7;
    transition: 
        color var(--swr-transition-fast),
        border-color var(--swr-transition-fast),
        background-color var(--swr-transition-fast);
}

.swr-social-menu li a:hover {
    /*color: var(--swr-color-dark);
    background-color: var(--swr-color-primary);
    border-color: var(--swr-color-primary);*/
	opacity:1;
	text-decoration:none;
}

.swr-social-menu li a svg {
    width: 18px;
    height: 18px;
}

/* Bouton Presse */
.swr-panel__press-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--swr-color-white)!important;
    text-decoration: none;
    font-family: var(--swr-font-family);
    font-size: 14px;
    font-weight: var(--swr-font-weight-medium);
    padding: 12px 24px;
    border: 2px solid var(--swr-color-primary);
    border-radius: var(--corner);
    transition: 
        color var(--swr-transition-fast),
        background-color var(--swr-transition-fast);
}

.swr-panel__press-btn:hover {
    color: var(--swr-color-white);
    background-color: transparent;
}

.swr-panel__press-btn svg {
    transition: transform var(--swr-transition-fast);
}

.swr-panel__press-btn:hover svg {
    transform: translateX(4px);
}


/* =============================================================================
   10. ANIMATIONS KEYFRAMES
   ============================================================================= */

@keyframes slideInItem {
    from {
        opacity: 0;
        transform: translateX(30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* =============================================================================
   11. RESPONSIVE TABLETTE (768px - 1180px)
   ============================================================================= */

@media (max-width: 1180px) {
    :root {
        --swr-header-padding: 0 24px;
        --swr-nav-gap: 24px;
    }
    
    /* Panel prend toute la largeur */
    .swr-panel {
        width: calc(100% - (var(--swr-nav-gap) * 4));
    }
    
    /* Overlay caché en tablette (le panel prend tout l'écran) */
    .swr-overlay {
        display: none;
    }
    
    .swr-panel__content {
        padding: 40px 40px 30px;
    }
}


/* =============================================================================
   12. RESPONSIVE MOBILE (< 768px)
   ============================================================================= */

@media (max-width: 1180px) {
    :root {
        --swr-header-height: 64px;
        --swr-header-padding: 0 16px;
        --swr-font-size-panel: 20px;
    }

    /* Header pleine largeur, opaque, sans arrondi ni marge */
    .swr-header {
        margin: 0;
        border-radius: 0;
        background: var(--swr-color-overlay) !important;
        backdrop-filter: blur(7px);
    }

    /* On garde le fond même quand on scroll */
    .on-scroll .swr-header {
        background: var(--swr-color-overlay) !important;
        backdrop-filter: blur(7px);
    }

    /* On neutralise la transparence quand le menu est ouvert */
    .swr-menu-open.on-scroll .swr-header {
        background: var(--swr-color-overlay) !important;
        backdrop-filter: blur(7px);
    }

    /* Cacher la navigation desktop */
    .swr-header__nav-primary {
        display: none;
    }

    /* Afficher le menu primary dans le panel */
    .swr-panel__menu-primary {
        display: block;
        margin-bottom: .5rem;
        padding-bottom: .5rem;
        border-bottom: 1px solid rgba(255, 255, 255, 0.3);
    }

    /* Style du menu primary dans le panel */
    .swr-panel-menu--primary li a {
        font-size: 22px;
        font-weight: var(--swr-font-weight-semibold);
    }

    /* Submenus dans le panel mobile */
    .swr-panel-menu .sub-menu {
        display: none;
        list-style: none;
        margin: 0;
        padding: 0 0 0 16px;
    }

    .swr-panel-menu .has-submenu.is-open > .sub-menu {
        display: block;
    }

    .swr-panel-menu .sub-menu li a {
        font-size: 16px;
        padding: 8px 0;
        color: var(--swr-color-grey);
    }

    .swr-panel-menu .sub-menu li a:hover {
        color: var(--swr-color-primary);
    }

    /* 
     * PANEL : 
     * - collé juste sous le header
     * - pleine largeur, sans marge latérale
     * - hauteur = reste de l'écran disponible
     * - scroll interne activé
     */
    .swr-panel {
        top: var(--swr-header-height);
        right: 0;
        bottom: 0;
        left: 0;
        width: 100%;
        border-radius: 0;
        overflow-y: auto;
        overflow-x: hidden;
        /* On conserve la hauteur maximale = fenêtre moins le header */
        max-height: calc(100dvh - var(--swr-header-height));
    }

    /* En état ouvert, pas de décalage latéral */
    .swr-panel.is-active {
        transform: translateX(0);
    }

    /* Overlay masqué en mobile (le panel prend tout) */
    .swr-overlay {
        display: none;
    }

    /* Contenu du panel */
    .swr-panel__content {
        padding: 32px 24px 24px;
        justify-content: flex-start;
        /* Hauteur min = 100% du panel pour que le footer reste en bas */
        min-height: calc(100dvh - var(--swr-header-height));
    }

    /* Footer du panel */
    .swr-panel__footer {
        flex-direction: column;
        gap: 24px;
        margin-top: auto;
        padding-top: 24px;
		align-items:flex-start;
    }

    .swr-social-menu {
        gap: 12px;
    }

    .swr-social-menu li a {
        width: auto;
        height: auto;
    }

    /* Bouton burger */
    .swr-burger {
        width: 36px;
        height: 36px;
    }

    .swr-burger__line {
        width: 20px;
    }

    /* Actions */
    .swr-header__actions {
        gap: 12px;
    }

    /* Lang switch */
    .swr-lang-switch {
        font-size: 12px;
        gap: 6px;
    }
	
	/* Item avec sous-menu : flex pour aligner link + bouton toggle */
    .swr-panel-menu .has-submenu {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
    }

    .swr-panel-menu .has-submenu > a {
        flex: 1;
    }

    /* Bouton toggle */
    .swr-submenu-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        background: rgba(255, 255, 255, 0.1);
        border: none;
        border-radius: var(--corner);
        cursor: pointer;
        color: white;
        flex-shrink: 0;
        transition: 
            background var(--swr-transition-fast),
            transform var(--swr-transition-fast);
    }

    .swr-submenu-toggle:hover {
        background: rgba(255, 255, 255, 0.2);
    }

    .swr-submenu-toggle svg {
        transition: transform var(--swr-transition-medium);
    }

    /* Rotation du chevron quand ouvert */
    .swr-panel-menu .has-submenu.is-open > .swr-submenu-toggle svg {
        transform: rotate(180deg);
    }

    /* Sous-menu caché par défaut — occupe toute la largeur */
    .swr-panel-menu .sub-menu {
        display: none;
        width: 100%;
        flex-basis: 100%;
        list-style: none;
        margin: 0;
        padding: 0 0 8px 16px;
    }

    /* Ouverture : le display:block pousse naturellement le contenu suivant */
    .swr-panel-menu .has-submenu.is-open > .sub-menu {
        display: block;
    }

    /* Items du sous-menu */
    .swr-panel-menu .sub-menu li a {
        font-size: 16px;
        padding: 8px 0;
        color: rgba(255, 255, 255, 0.6);
        opacity: 1; /* on annule l'opacity globale des liens du panel */
    }

    .swr-panel-menu .sub-menu li a:hover {
        color: white;
    }
}

/* =============================================================================
   13. UTILITAIRES
   ============================================================================= */

/* Body lock scroll quand le panel est ouvert */
body.swr-menu-open {
    overflow: hidden;
}

/* Screen reader only */
.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
