.site-header,.site-footer{--shell-ink:#101417;--shell-paper:#fbfbfa;--shell-line:#d9dddf;--shell-max:1180px}
.site-header{font-family:"Times New Roman",Times,serif;line-height:normal}
.site-footer{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.65}
.site-header *,.site-footer *{box-sizing:border-box}
.site-header a,.site-footer a{color:inherit;text-decoration:none}
.site-header img{display:block;max-width:100%}
.site-header .container,.site-footer .container{width:min(var(--shell-max),calc(100% - 40px));margin-inline:auto}
.site-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(14px);background:color-mix(in srgb,var(--shell-paper) 88%,transparent);border-bottom:1px solid color-mix(in srgb,var(--shell-line) 75%,transparent)}
.site-header .nav-wrap{min-height:76px;display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:25px}
.site-header .brand,.site-footer .brand{display:flex;align-items:center;gap:0;font-weight:800;letter-spacing:-.03em}
.site-header .brand{position:relative;z-index:1;flex:0 0 auto;min-width:0}
.site-header .brand-sigle{flex:0 0 auto;width:96px;height:76px;margin-right:-16px;object-fit:contain;mix-blend-mode:multiply;transform:translateY(-2px)}
.site-header .brand-wordmark{flex:0 0 auto;width:292px;height:auto;transform:translateY(-2px)}
.site-header .desktop-nav{display:flex;flex:0 1 auto;min-width:0;align-items:center;justify-content:center;gap:24px;align-self:stretch;font-size:.92rem;color:#4f5a61}
.site-header .desktop-nav>a,.site-header .desktop-nav>.nav-dropdown>a{display:flex;align-items:center;height:100%}
.site-header .desktop-nav a.active,.site-header .desktop-nav a:hover{color:var(--shell-ink)}
.site-header .nav-cta{flex:0 0 auto;font-size:.88rem;padding:10px 15px;border:1px solid #b8bfc3;border-radius:999px;white-space:nowrap}
.site-footer{--footer-accent:#20a8d3;--footer-accent-soft:#9cdcf0;--footer-text:#d7dee2;--footer-muted:#9eabb1;background:#0d1316;color:#fff;padding:0}
.site-footer .container{width:min(1280px,calc(100% - 40px))}
.site-footer .pre-footer-cta{background:linear-gradient(135deg,#eaf5f8 0%,#f7fbfc 54%,#e4f1f5 100%);color:#10171b;border-top:1px solid #cfe2e8;padding:clamp(54px,6vw,78px) 0}
.site-footer .pre-footer-cta-inner{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.65fr);gap:clamp(36px,6vw,84px);align-items:end}
.site-footer .pre-footer-kicker{margin:0 0 14px;color:#168ab0;font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.site-footer .pre-footer-cta h2{max-width:760px;margin:0;font-family:"Times New Roman",Times,serif;font-size:clamp(2.05rem,3.7vw,3.7rem);font-weight:700;line-height:1.02;letter-spacing:-.035em}
.site-footer .pre-footer-cta h2+p{max-width:790px;margin:20px 0 0;color:#4e6069;font-size:1rem;line-height:1.75}
.site-footer .pre-footer-actions{display:grid;gap:12px}
.site-footer .pre-footer-button{display:flex;min-height:52px;align-items:center;justify-content:center;border:1px solid #10171b;border-radius:999px;padding:11px 22px;font-size:.9rem;font-weight:800;text-align:center;transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.site-footer .pre-footer-button-primary{background:#10171b;color:#fff}
.site-footer .pre-footer-button-secondary{background:transparent;color:#10171b}
.site-footer .pre-footer-button:hover{transform:translateY(-2px)}
.site-footer .pre-footer-button-secondary:hover{background:#fff}
.site-footer .footer-main{padding:clamp(68px,7vw,88px) 0 clamp(56px,6vw,76px);border-top:3px solid var(--footer-accent)}
.site-footer .footer-grid{display:grid;grid-template-columns:minmax(250px,1.12fr) minmax(0,2.88fr);gap:clamp(54px,6vw,94px);align-items:start}
.site-footer .footer-brand-logo{display:flex;max-width:315px;align-items:center;gap:0}
.site-footer .footer-brand-sigle{width:82px;height:62px;margin-right:-8px;object-fit:contain}
.site-footer .footer-brand-wordmark{width:240px;height:auto}
.site-footer .footer-description{max-width:390px;margin:24px 0 0;color:var(--footer-text);font-size:.92rem;line-height:1.72}
.site-footer .footer-contact{display:grid;gap:10px;margin:26px 0 0;color:#c8d1d5;font-size:.9rem;font-style:normal}
.site-footer .footer-contact-row{display:grid;grid-template-columns:21px minmax(0,1fr);align-items:start;gap:11px;width:fit-content;min-height:28px;color:inherit}
.site-footer .footer-contact-icon{width:20px;height:20px;margin-top:2px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.site-footer .footer-contact-note{margin:7px 0 0 32px;color:#fff;font-size:.86rem;font-weight:700}
.site-footer .footer-navigation{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(24px,3vw,44px)}
.site-footer .footer-nav-group{min-width:0}
.site-footer .footer-nav-group summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:32px;color:#fff;font-size:1.2rem;font-weight:800;letter-spacing:.035em;list-style:none;pointer-events:none}
.site-footer .footer-nav-group summary::-webkit-details-marker{display:none}
.site-footer .footer-nav-group summary svg{display:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}
.site-footer .footer-nav-list,.site-footer .footer-nav-group:not([open])>.footer-nav-list{display:grid;gap:2px;margin:17px 0 0;padding:0;list-style:none}
.site-footer .footer-nav-list li{margin:0;padding:0}
.site-footer .footer-nav-list a{display:flex;min-height:34px;align-items:center;color:#c9d2d6;font-size:.9rem;line-height:1.55;transition:color .18s ease,transform .18s ease}
.site-footer .footer-nav-list a:hover{color:var(--footer-accent-soft);transform:translateX(3px)}
.site-footer .footer-legal{border-top:1px solid #2e3a3f;background:#0a0f11}
.site-footer .footer-legal-inner{display:flex;min-height:78px;align-items:center;justify-content:space-between;gap:24px;color:#89979e;font-size:.78rem;line-height:1.5}
.site-footer a:focus-visible,.site-footer summary:focus-visible{outline:3px solid var(--footer-accent-soft);outline-offset:4px;border-radius:4px}
@media(max-width:1120px){.site-footer .footer-grid{grid-template-columns:1fr;gap:52px}.site-footer .footer-brand-block{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(320px,1.2fr);gap:48px;align-items:start}.site-footer .footer-contact{margin-top:0}.site-footer .footer-description{max-width:520px}.site-footer .footer-navigation{gap:28px}}
@media(max-width:900px){.site-footer .pre-footer-cta-inner{grid-template-columns:1fr}.site-footer .pre-footer-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer .footer-brand-block{grid-template-columns:1fr 1fr;gap:36px}.site-footer .footer-navigation{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 32px}.site-footer .footer-legal-inner{align-items:flex-start;flex-direction:column;justify-content:center;gap:7px;padding-block:20px}}
@media(max-width:640px){.site-footer .container{width:min(100% - 28px,1280px)}.site-footer .pre-footer-cta{padding:48px 0}.site-footer .pre-footer-cta h2{font-size:clamp(2rem,10vw,2.8rem)}.site-footer .pre-footer-actions{grid-template-columns:1fr}.site-footer .footer-main{padding:56px 0 42px}.site-footer .footer-grid{gap:42px}.site-footer .footer-brand-block{display:block}.site-footer .footer-brand-logo{max-width:285px}.site-footer .footer-brand-sigle{width:74px;height:56px}.site-footer .footer-brand-wordmark{width:218px}.site-footer .footer-description{margin-top:20px}.site-footer .footer-contact{margin-top:24px}.site-footer .footer-navigation{grid-template-columns:1fr;gap:0;border-top:1px solid #2d393e}.site-footer .footer-nav-group{border-bottom:1px solid #2d393e}.site-footer .footer-nav-group summary{min-height:56px;font-size:.94rem;pointer-events:auto;cursor:pointer}.site-footer .footer-nav-group summary svg{display:block;transition:transform .2s ease}.site-footer .footer-nav-group[open] summary svg{transform:rotate(180deg)}.site-footer .footer-nav-list,.site-footer .footer-nav-group:not([open])>.footer-nav-list{display:none}.site-footer .footer-nav-group[open]>.footer-nav-list{display:grid;margin:0;padding:0 0 16px}.site-footer .footer-nav-list a{min-height:44px;padding:7px 0;font-size:.93rem}.site-footer .footer-legal-inner{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){.site-footer .pre-footer-button,.site-footer .footer-nav-list a,.site-footer .footer-nav-group summary svg{transition:none}.site-footer .pre-footer-button:hover,.site-footer .footer-nav-list a:hover{transform:none}}

/* CODEX 44 — en-tête simple, aligné sur la largeur du hero. */
.site-header{
  background:linear-gradient(90deg,rgba(197,237,248,.97) 0%,rgba(248,253,254,.985) 34%,#fff 50%,rgba(248,253,254,.985) 66%,rgba(197,237,248,.97) 100%);
  border-bottom:1px solid rgba(139,198,216,.58);
  box-shadow:0 8px 26px rgba(35,92,111,.08);
}
.site-header .container{width:min(1280px,calc(100% - 56px))}
.site-header .brand{
  --sigle-width:128px;
  --wordmark-width:365px;
  --brand-gap:22px;
  margin-left:calc(var(--sigle-width) * -.198);
  margin-right:calc(var(--wordmark-width) * -.094);
}
.site-header .brand-sigle{
  width:var(--sigle-width);
  height:72px;
  margin-right:calc(var(--brand-gap) - var(--sigle-width) * .2 - var(--wordmark-width) * .092);
}
.site-header .brand-wordmark{width:var(--wordmark-width)}

@media(min-width:901px){
  .site-header .nav-wrap{
    display:flex;
    flex-wrap:nowrap;
    min-height:82px;
    gap:16px;
    padding:5px 0;
  }
  .site-header .desktop-nav{
    flex:0 0 auto;
    width:auto;
    margin-left:auto;
    align-self:stretch;
    justify-content:flex-end;
    flex-wrap:nowrap;
    gap:clamp(8px,1.1vw,16px);
    padding:0;
    border:0;
    border-radius:0;
    background:none;
    box-shadow:none;
    color:#4f5a61;
  }
  .site-header .desktop-nav>a,
  .site-header .desktop-nav>.nav-dropdown>a{
    font-family:"Times New Roman",Times,serif;
    font-size:1.225rem;
    font-weight:400;
    white-space:nowrap;
  }
  /* Les deux derniers sous-menus restent dans le bord droit du contenu. */
  .site-header .desktop-nav>.nav-dropdown:nth-last-child(-n+2)>.nav-submenu{
    left:auto;
    right:0;
    transform:translateY(12px);
  }
  .site-header .desktop-nav>.nav-dropdown:nth-last-child(-n+2):hover>.nav-submenu,
  .site-header .desktop-nav>.nav-dropdown:nth-last-child(-n+2):focus-within>.nav-submenu{
    transform:translateY(0);
  }
}
@media(min-width:901px) and (max-width:1240px){
  .site-header .brand{
    --sigle-width:112px;
    --wordmark-width:clamp(230px,calc(100vw - 830px),365px);
    --brand-gap:6px;
  }
  .site-header .brand-sigle{height:66px}
  .site-header .nav-wrap{gap:10px}
  .site-header .desktop-nav{gap:clamp(4px,calc((100vw - 1120px) * .08),8px)}
}
@media(min-width:901px) and (max-width:1080px){
  .site-header .desktop-nav>a,
  .site-header .desktop-nav>.nav-dropdown>a{font-size:1.02rem}
}
@media(min-width:901px) and (max-width:1000px){
  .site-header .desktop-nav{gap:4px}
  .site-header .desktop-nav>a,
  .site-header .desktop-nav>.nav-dropdown>a{font-size:.94rem}
}
@media(max-width:900px){
  .site-header .container{width:calc(100% - 40px)}
  .site-header .brand{--brand-gap:22px;justify-self:start;margin-right:0}
}
@media(max-width:560px){
  .site-footer .container{width:min(100% - 26px,var(--shell-max))}
}

/* Codex 47 : titres au niveau du logo et premiers liens au niveau du descriptif. */
@media(min-width:1121px){
  .site-footer .footer-nav-group summary{height:62px;min-height:62px;line-height:1.4}
  .site-footer .footer-nav-list{margin-top:19px}
}
@media(max-width:640px){
  .site-footer .footer-nav-group summary{font-size:1.253333rem}
}

/* Codex 45, accueil uniquement : lisibilité du premier niveau de navigation. */
/* Codex 48 : réduction visuelle des quatre libellés, sans changer la police
   ni les espacements des liens. Les deux libellés longs restent sur une ligne. */
.site-footer .footer-nav-group summary > span {
  display: inline-block;
  transform: scale(0.666666667);
  transform-origin: left center;
}
.site-footer .footer-nav-group:nth-child(2) summary > span,
.site-footer .footer-nav-group:nth-child(3) summary > span {
  min-width: 0;
  white-space: nowrap;
}

@media(min-width:901px){
  .site-header[data-home-menu] .desktop-nav>a,
  .site-header[data-home-menu] .desktop-nav>.nav-dropdown>a{font-size:1.28rem}
}
@media(min-width:901px) and (max-width:1080px){
  .site-header[data-home-menu] .desktop-nav>a,
  .site-header[data-home-menu] .desktop-nav>.nav-dropdown>a{font-size:1.065rem}
}
@media(min-width:901px) and (max-width:1000px){
  .site-header[data-home-menu] .desktop-nav>a,
  .site-header[data-home-menu] .desktop-nav>.nav-dropdown>a{font-size:.97rem}
}
@media(min-width:901px) and (max-width:930px){
  .site-header[data-home-menu] .desktop-nav{gap:clamp(.9px,calc(.9px + (100vw - 901px) * .19),4px)}
}
@media(min-width:1081px) and (max-width:1240px){
  .site-header[data-home-menu] .desktop-nav>a,
  .site-header[data-home-menu] .desktop-nav>.nav-dropdown>a{font-size:1.25rem}
  .site-header[data-home-menu] .desktop-nav{gap:clamp(1px,calc(1px + (100vw - 1081px) * .044),8px)}
}
@media(min-width:1241px) and (max-width:1279px){
  .site-header[data-home-menu] .desktop-nav{gap:calc(6px + (100vw - 1241px) * .2)}
}
