/* Rappli : navigation de l'en-tête (pages publiques et légales), après rappli-public-shell.css ; comportement : public-navigation.js. */

/* 1. Affichage selon la largeur */
.site-header .desktop-nav,.site-header .header-actions .login-link{display:none}
.site-header .mobile-menu{display:block;position:static;flex-shrink:0}
@media(min-width:1024px){
 .site-header .desktop-nav{display:flex;align-items:center;gap:4px;margin:0}
 .site-header .header-actions .login-link{display:inline-flex}
 .site-header .mobile-menu{display:none}
}

/* 2. Liens de la barre : 24 px entre libellés, pastille teintée au survol, anneau de focus */
.site-header :is(.desktop-nav>a,.desktop-nav .solutions-menu>summary,.header-actions .login-link){align-items:center;justify-content:center;gap:6px;min-height:44px;min-width:44px;margin:0;padding:0 10px;border:0;border-radius:12px;background:transparent;font-family:var(--rappli-font);font-size:14px;font-weight:600;line-height:1.35;letter-spacing:0;color:var(--rappli-ink);text-decoration:none;white-space:nowrap;cursor:pointer;transition:color var(--rappli-fast) var(--rappli-ease),background-color var(--rappli-fast) var(--rappli-ease)}
.site-header :is(.desktop-nav>a,.desktop-nav .solutions-menu>summary){display:inline-flex}
.site-header .desktop-nav>a[aria-current=page],.site-header .desktop-nav .solutions-menu:has(a[aria-current=page])>summary{color:var(--rappli-navy);text-decoration-line:underline;text-decoration-color:var(--rappli-blue);text-decoration-thickness:2px;text-underline-offset:8px}
@media(hover:hover) and (pointer:fine){
 .site-header :is(.desktop-nav>a,.desktop-nav .solutions-menu>summary,.header-actions .login-link):hover{color:var(--rappli-navy);background:var(--rappli-surface)}
}

/* 3. Menu « Solutions » (ordinateur) */
.site-header .solutions-menu>summary{list-style:none}
.site-header .solutions-menu>summary::-webkit-details-marker{display:none}
.site-header .solutions-menu>summary .icon{width:14px;height:14px;transition:transform var(--rappli-state) var(--rappli-ease)}
.site-header .solutions-menu[open]>summary .icon{transform:rotate(180deg)}
.site-header .desktop-nav .solutions-menu{position:relative}
.site-header .desktop-nav .solutions-menu[open]>summary{color:var(--rappli-navy);background:var(--rappli-surface)}
/* Panneau de 400 px ; les icônes tombent sous le début de « Solutions ». */
.site-header .desktop-nav .solutions-links{position:absolute;top:calc(100% + 10px);left:-11px;z-index:var(--rappli-z-dropdown);display:grid;gap:2px;width:min(400px,100vw - 32px);min-width:0;max-width:none;margin:0;padding:8px;border:1px solid var(--rappli-line-strong);border-radius:18px;background:var(--rappli-white);box-shadow:var(--rappli-shadow-popover);transform-origin:24px 0}
/* Pont de survol entre le déclencheur et le panneau. */
.site-header .desktop-nav .solutions-links::before{content:"";position:absolute;inset:-11px 0 auto;height:11px}
.site-header .desktop-nav .solutions-menu[open] .solutions-links{animation:rappli-nav-in 180ms var(--rappli-ease) both}
@keyframes rappli-nav-in{from{opacity:0;transform:translateY(-6px) scale(.98)}}

/* 4. Entrées du menu « Solutions » : icône, titre, description */
.site-header .solutions-links a{display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:12px;align-items:start;justify-content:stretch;min-height:56px;min-width:0;margin:0;padding:10px 12px;border:0;border-radius:12px;background:transparent;color:var(--rappli-navy);font-family:var(--rappli-font);font-size:15px;line-height:1.35;text-align:left;text-decoration:none;white-space:normal;transition:background-color var(--rappli-fast) var(--rappli-ease)}
.site-header .solutions-links a[aria-current=page]{text-decoration:none}
/* Page courante : titre souligné en bleu ; le fond teinté est réservé au survol. */
.site-header .desktop-nav .solutions-links a[aria-current=page] .nav-item-title{text-decoration-line:underline;text-decoration-color:var(--rappli-blue);text-decoration-thickness:2px;text-underline-offset:5px}
.site-header .solutions-links a:focus-visible{outline:var(--rappli-focus-width) solid var(--rappli-focus-color);outline-offset:-4px}
.site-header .nav-item-icon{display:block;width:20px;height:20px;margin-top:1px;fill:none;stroke:var(--rappli-blue);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.site-header .nav-item-text{display:grid;gap:2px;min-width:0}
.site-header .nav-item-title{font-size:15px;font-weight:700;line-height:1.35;color:var(--rappli-navy);transition:color var(--rappli-fast) var(--rappli-ease)}
.site-header .nav-item-desc{font-size:14px;font-weight:500;line-height:1.45;color:var(--rappli-muted)}
@media(hover:hover) and (pointer:fine){
 .site-header .solutions-links a:hover{background:var(--rappli-surface)}
 .site-header .solutions-links a:hover .nav-item-title{color:var(--rappli-blue)}
}

/* 5. Menu du téléphone et de la tablette (moins de 1 024 px) */
/* Déclencheur « Menu » / « Fermer » : largeur réservée pour « Fermer », rien ne bouge à l'ouverture. */
.site-header .mobile-menu>summary{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;width:auto;height:auto;min-width:calc(56px + 3.3em);min-height:44px;margin:0;padding:0 14px;border:1px solid var(--rappli-line-strong);border-radius:12px;background:var(--rappli-white);color:var(--rappli-navy);font-family:var(--rappli-font);font-size:14px;font-weight:700;line-height:1;list-style:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color var(--rappli-fast) var(--rappli-ease),border-color var(--rappli-fast) var(--rappli-ease)}
.site-header .mobile-menu>summary::-webkit-details-marker{display:none}
.site-header .mobile-menu>summary span{color:inherit;font:inherit;line-height:1.3;white-space:nowrap}
.site-header .mobile-menu>summary .menu-icon{width:18px;height:18px}
.site-header .mobile-menu>summary .menu-icon path{transform-box:fill-box;transform-origin:center;transition:transform var(--rappli-state) var(--rappli-ease),opacity var(--rappli-fast) var(--rappli-ease)}
.site-header .mobile-menu[open]>summary{border-color:var(--rappli-navy);background:var(--rappli-surface)}
.site-header .mobile-menu[open]>summary .menu-icon path:nth-child(1){transform:translateY(5px) rotate(45deg)}
.site-header .mobile-menu[open]>summary .menu-icon path:nth-child(2){opacity:0}
.site-header .mobile-menu[open]>summary .menu-icon path:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
@media(hover:hover) and (pointer:fine){
 .site-header .mobile-menu>summary:hover{border-color:var(--rappli-navy)}
}
/* Feuille pleine largeur sous l'en-tête ; lignes débordant de 12 px sur tablette, bord à bord sous 760 px. */
.site-header .mobile-panel{--panel-pad-l:max(var(--rappli-gutter),env(safe-area-inset-left,0px));--panel-pad-r:max(var(--rappli-gutter),env(safe-area-inset-right,0px));--row-bleed-l:12px;--row-bleed-r:12px;--row-radius:12px;position:absolute;top:100%;left:0;right:0;width:auto;max-height:calc(100vh - var(--navigation-bottom,80px));max-height:calc(100dvh - var(--navigation-bottom,80px));overflow-y:auto;overscroll-behavior-y:contain;scroll-padding-block:12px;margin:0;padding:8px var(--panel-pad-r) max(16px,env(safe-area-inset-bottom,0px)) var(--panel-pad-l);border-bottom:1px solid var(--rappli-line);background:var(--rappli-white);box-shadow:0 28px 48px -28px color-mix(in oklch,var(--rappli-navy) 40%,transparent)}
.site-header .mobile-menu[open] .mobile-panel{animation:rappli-sheet-in 220ms var(--rappli-ease) both}
@keyframes rappli-sheet-in{from{opacity:0;transform:translateY(-8px)}}
/* Lignes de 56 px ; page courante teintée et soulignée en bleu, comme sur ordinateur. */
.site-header .mobile-panel a{display:flex;align-items:center;min-height:56px;margin:0;margin-inline:calc(-1*var(--row-bleed-l)) calc(-1*var(--row-bleed-r));padding:0 var(--row-bleed-r) 0 var(--row-bleed-l);border:0;border-bottom:1px solid var(--rappli-line);border-radius:0;background:transparent;color:var(--rappli-navy);font-family:var(--rappli-font);font-size:17px;font-weight:600;line-height:1.35;text-decoration:none;white-space:normal;transition:background-color var(--rappli-fast) var(--rappli-ease)}
.site-header .mobile-panel>a:last-child{border-bottom:0}
.site-header .mobile-panel>a[aria-current=page],.site-header .mobile-panel .solutions-links a[aria-current=page] .nav-item-title{text-decoration-line:underline;text-decoration-color:var(--rappli-blue);text-decoration-thickness:2px;text-underline-offset:6px}
.site-header .mobile-panel>a[aria-current=page]{background:var(--rappli-surface);font-weight:700}
.site-header .mobile-panel a:focus-visible{outline-offset:-4px}
/* Groupe « Solutions » : s'ouvre sur les trois entrées. */
.site-header .mobile-panel .solutions-menu{position:static;display:block}
.site-header .mobile-panel .solutions-menu>summary{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;width:auto;height:auto;min-width:0;min-height:56px;margin:0;margin-inline:calc(-1*var(--row-bleed-l)) calc(-1*var(--row-bleed-r));padding:0 var(--row-bleed-r) 0 var(--row-bleed-l);border:0;border-bottom:1px solid var(--rappli-line);border-radius:0;background:transparent;color:var(--rappli-navy);font-family:var(--rappli-font);font-size:17px;font-weight:600;line-height:1.35;cursor:pointer}
.site-header .mobile-panel .solutions-menu>summary .icon{width:18px;height:18px}
.site-header .mobile-panel .solutions-menu>summary:focus-visible{outline-offset:-4px}
.site-header .mobile-panel .solutions-menu:has(a[aria-current=page])>summary{font-weight:700}
.site-header .mobile-panel .solutions-menu[open]>summary{border-bottom-color:transparent}
.site-header .mobile-panel .solutions-links{position:static;display:grid;gap:2px;width:auto;min-width:0;max-width:none;margin:0;margin-inline:calc(-1*var(--row-bleed-l)) calc(-1*var(--row-bleed-r));padding:0 var(--row-bleed-r) 10px var(--row-bleed-l);border:0;border-bottom:1px solid var(--rappli-line);border-radius:0;background:none;box-shadow:none;animation:none}
.site-header .mobile-panel .solutions-links a{display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:12px;align-items:start;min-height:56px;margin:0;margin-inline:calc(-1*var(--row-bleed-l)) calc(-1*var(--row-bleed-r));padding:10px var(--row-bleed-r) 10px var(--row-bleed-l);border:0;border-radius:var(--row-radius)}
/* Page courante : fond teinté. */
.site-header .mobile-panel .solutions-links a[aria-current=page]{background:var(--rappli-surface)}
@media(hover:hover) and (pointer:fine){
 .site-header .mobile-panel>a:hover,.site-header .mobile-panel .solutions-menu>summary:hover{background:var(--rappli-surface)}
}
/* Voile et défilement bloqué tant que le menu est ouvert ; un toucher sur le voile le ferme. */
@media(max-width:1023px){
 html:has(.site-header .mobile-menu[open]){overflow:hidden}
 body:has(.site-header .mobile-menu[open])::after{content:"";position:fixed;inset:0;z-index:var(--rappli-z-scrim);background:color-mix(in oklch,var(--rappli-navy) 28%,transparent);animation:rappli-fade-in 200ms ease-out both}
}
@media(max-width:760px){
 .site-header .mobile-panel{--row-bleed-l:var(--panel-pad-l);--row-bleed-r:var(--panel-pad-r);--row-radius:0px;max-height:calc(100vh - var(--navigation-bottom,72px));max-height:calc(100dvh - var(--navigation-bottom,72px))}
}
@media(max-width:360px){
 .site-header .mobile-menu>summary{gap:6px;min-width:calc(22px + 3.3em);padding:0 10px}
 .site-header .mobile-menu>summary .menu-icon{display:none}
}
@keyframes rappli-fade-in{from{opacity:0}}

/* 6. Mouvement réduit et contraste forcé */
@media(prefers-reduced-motion:reduce){
 .site-header :is(.desktop-nav>a,.solutions-menu>summary,.login-link,.solutions-links a,.nav-item-title,.mobile-menu>summary,.mobile-panel a),.site-header .solutions-menu>summary .icon,.site-header .mobile-menu>summary .menu-icon path{transition:none}
 .site-header .desktop-nav .solutions-menu[open] .solutions-links,.site-header .mobile-menu[open] .mobile-panel,body:has(.site-header .mobile-menu[open])::after{animation:none}
}
@media(forced-colors:active){
 .site-header .desktop-nav .solutions-links,.site-header .mobile-panel{border:1px solid CanvasText;box-shadow:none}
 .site-header .mobile-menu>summary{border-color:ButtonText}
 .site-header .solutions-links a[aria-current=page],.site-header .mobile-panel>a[aria-current=page]{outline:1px solid CanvasText;outline-offset:-1px}
 body:has(.site-header .mobile-menu[open])::after{display:none}
}
