/* ALSBA GLOBAL CSS — v1.0.1 (05.10.2026, bleu nuit)
   Socle commun de alsba.ch, repris de sosba-global.css 1.0.0 (même grammaire :
   polices, gabarit, laiton sur nuit pétrole), sans le socle anti-Divi.
   La barre de son (l'onde) remplace le fil de morse. Aucune requête vers un serveur tiers. */

/* Polices auto-hébergées : Cormorant Garamond et Inter Tight (OFL), kit famille, servies depuis ../fonts/. */
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300 600;font-display:swap;src:url('../fonts/cormorant-garamond-latin-ext-ivar.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300 600;font-display:swap;src:url('../fonts/cormorant-garamond-latin-ivar.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 600;font-display:swap;src:url('../fonts/cormorant-garamond-latin-ext-nvar.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 600;font-display:swap;src:url('../fonts/cormorant-garamond-latin-nvar.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter Tight';font-style:normal;font-weight:300 600;font-display:swap;src:url('../fonts/inter-tight-latin-ext-nvar.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter Tight';font-style:normal;font-weight:300 600;font-display:swap;src:url('../fonts/inter-tight-latin-nvar.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

:root{
  /* bleu nuit de l'ancien ALS (choix de Laurent, 05.10.2026) et laiton du logo */
  --ab-nuit: #090F18;
  --ab-nuit-2: #11151F;
  --ab-ardoise: #1E2A3D;
  --ab-gris-bleu: #8A96A8;
  --ab-laiton: #B8975A;
  --ab-creme: #F0ECE4;
  --ab-laiton-clair: #E6D5A8;
  --ab-texte-sur-nuit: #B5B5B0;
  --ab-lien-sur-nuit: #D6D9DE;
  --ab-carte: #FFFFFF;
  --ab-encre: #090F18;
  --ab-encre-2: #4A5160;
  --ab-filet: #DAD5CB;
  --ab-accent: #8C6D35;

  --ab-font-display: 'Cormorant Garamond', Georgia, serif;
  --ab-font-body: 'Inter Tight', system-ui, sans-serif;
}

/* ---------- base ---------- */
html, body.alsba-body { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
html { background:var(--ab-creme); overflow-x:clip; }
body.alsba-body { margin:0; background:var(--ab-creme); color:var(--ab-encre); overflow-x:clip; }
.ab-page, .ab-page * { box-sizing:border-box; }
.ab-page { font:400 17px/1.6 var(--ab-font-body); color:var(--ab-encre); }
.ab-page img { max-width:100%; height:auto; display:block; }
.ab-page a { color:var(--ab-accent); }
.ab-page ::selection { background:var(--ab-laiton); color:var(--ab-nuit); }

/* ================= HEADER ================= */
.ab-header{
  position:sticky; top:0; z-index:999; width:100%; box-sizing:border-box;
  background:var(--ab-nuit);
  border-bottom:1px solid rgba(184,151,90,0);
  transition:border-color .3s ease, box-shadow .3s ease;
}
.ab-header.is-scrolled{
  border-bottom-color:rgba(184,151,90,.25);
  box-shadow:0 6px 24px rgba(9,15,24,.25);
}
.ab-header__inner{
  max-width:1080px; margin:0 auto; padding:14px 24px; box-sizing:border-box;
  display:flex; justify-content:space-between; align-items:center; gap:16px; position:relative;
}
.ab-brand{
  display:flex; align-items:center; gap:12px;
  font:500 20px/1 var(--ab-font-display); letter-spacing:.32em;
  color:var(--ab-laiton-clair); text-decoration:none;
}
.ab-brand img{ width:34px; height:34px; display:block; }
.ab-nav{ display:flex; gap:22px; font:500 14px/1 var(--ab-font-body); }
.ab-nav a{
  color:var(--ab-lien-sur-nuit); text-decoration:none;
  min-height:40px; display:inline-flex; align-items:center;
}
.ab-nav a:hover, .ab-nav a.is-current{ color:var(--ab-laiton-clair); }
.ab-nav a.is-current{ box-shadow:inset 0 -1px 0 var(--ab-laiton); }
.ab-burger{
  display:none; background:transparent; border:0;
  color:var(--ab-laiton-clair); min-width:44px; min-height:44px; cursor:pointer;
}
/* six entrées de menu : le burger arrive un peu plus tôt que sur sosba.ch */
@media (max-width:860px){
  .ab-header__inner{ padding:12px 16px; }
  .ab-burger{ display:inline-flex; align-items:center; justify-content:center; }
  .ab-nav{
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; gap:0;
    background:var(--ab-nuit); border-top:1px solid rgba(184,151,90,.2);
    padding:6px 16px 16px;
    opacity:0; transform:translateY(-8px); pointer-events:none; visibility:hidden;
    transition:opacity .25s ease, transform .25s ease, visibility .25s;
  }
  .ab-nav.is-open{ opacity:1; transform:none; pointer-events:auto; visibility:visible; }
  .ab-nav a{ padding:12px 0; border-bottom:1px solid rgba(184,151,90,.12); }
}

/* ================= FOOTER ================= */
.ab-footer{
  width:100%; box-sizing:border-box;
  background:var(--ab-nuit); color:var(--ab-texte-sur-nuit);
  padding:56px 16px 40px; text-align:center;
  font:400 14px/1.6 var(--ab-font-body);
}
.ab-footer__logo{ width:min(300px, 80%); height:auto; display:block; margin:0 auto 22px; }
.ab-footer p{ margin:8px 0 0; color:var(--ab-texte-sur-nuit); }
.ab-footer a, .ab-footer a:visited{ color:var(--ab-laiton-clair); text-decoration:none; }
.ab-footer a:hover{ text-decoration:underline; }
.ab-footer__legal{ margin-top:22px; font-size:12px; letter-spacing:.06em; }
.ab-footer__legal a, .ab-footer__legal a:visited{ color:var(--ab-gris-bleu); }

/* ================= CLASSES COMMUNES ================= */
.ab-wrap{ max-width:1080px; margin:0 auto; padding:0 24px; }
.ab-eyebrow{ margin:0; font-size:12px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--ab-accent); }
.ab-page h1, .ab-page h2, .ab-page h3{ font-family:var(--ab-font-display); color:inherit; padding:0; }
.ab-page h2{ margin:6px 0 0; font-weight:500; font-size:clamp(30px,4vw,42px); line-height:1.1; }
.ab-page h3{ margin:0; font-weight:600; font-size:25px; line-height:1.15; }

.ab-btn, .ab-page a.ab-btn{
  display:inline-flex; align-items:center; justify-content:center; min-height:44px;
  padding:13px 26px; border:1px solid var(--ab-laiton); border-radius:2px;
  color:var(--ab-laiton-clair); text-decoration:none; background:transparent;
  font:600 13px/1 var(--ab-font-body); letter-spacing:.2em; text-transform:uppercase; cursor:pointer;
  transition:background .25s ease;
}
.ab-btn:hover{ background:rgba(184,151,90,.14); }

.ab-section{ padding:72px 0; }
.ab-grid2{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; margin-top:32px; }
.ab-grid3{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px; margin-top:32px; }
.ab-split{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; }
.ab-card{ background:var(--ab-carte); border:1px solid var(--ab-filet); border-radius:4px; padding:26px 24px; }
.ab-card p{ margin:10px 0 0; color:var(--ab-encre-2); font-size:16px; }

/* la barre de son : l'onde du logo (remplace le fil de morse de SOSBA) */
.ab-page img.ab-onde{ width:40px; height:24px; margin-bottom:14px; }

.ab-list{ list-style:none; margin:24px 0 0; padding:0; border-top:1px solid var(--ab-filet); }
.ab-list li{ padding:14px 0; border-bottom:1px solid var(--ab-filet); }
.ab-list b{ font-weight:600; }
.ab-list span{ color:var(--ab-encre-2); }

/* bloc sombre (hero, bandeaux) */
.ab-dark{ background:var(--ab-nuit); color:#F0ECE4; }
.ab-dark p{ color:var(--ab-texte-sur-nuit); }

@media (max-width:760px){
  .ab-wrap{ padding:0 16px; }
  .ab-grid2, .ab-grid3, .ab-split{ grid-template-columns:1fr; }
  .ab-split{ gap:24px; }
  .ab-section{ padding:52px 0; }
}

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
}

/* lien d'évitement clavier, page 404 */
.ab-skip{ position:absolute; left:-9999px; top:0; z-index:1000; background:var(--ab-laiton); color:var(--ab-nuit); padding:10px 16px; font:600 14px/1 var(--ab-font-body); }
.ab-skip:focus{ left:16px; top:12px; }
.ab-404{ text-align:center; padding:120px 0; }
.ab-page .ab-404 img.ab-onde{ width:60px; height:36px; margin:0 auto; }
.ab-page .ab-404 h1{ font:500 clamp(32px,5vw,48px)/1.1 var(--ab-font-display); color:#F0ECE4; margin:24px 0 0; }
.ab-404 p{ margin:14px 0 28px; }

/* ================= PAGES INTÉRIEURES (05.10.2026) =================
   Titre de page en bandeau sombre, bandeau d'appel final, boutons groupés. */
.ab-titre{ padding:64px 0 56px; }
.ab-titre .ab-eyebrow{ color:var(--ab-laiton); }
.ab-page .ab-titre h1{ margin:8px 0 0; max-width:20ch; font:500 clamp(34px,5vw,54px)/1.08 var(--ab-font-display); color:var(--ab-creme); }
.ab-titre p:not(.ab-eyebrow){ margin:16px 0 0; max-width:58ch; }

.ab-cta{ padding-top:0; }
.ab-cta__box{ border-radius:4px; padding:48px 32px; text-align:center; }
.ab-page .ab-cta__box h2{ color:var(--ab-creme); }
.ab-cta__box p{ margin:14px auto 0; max-width:52ch; }
.ab-actions{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:14px 28px; margin-top:26px; }
.ab-page a.ab-lien-nuit{ color:var(--ab-lien-sur-nuit); text-decoration:none; font-size:14px; min-height:44px; display:inline-flex; align-items:center; }
.ab-page a.ab-lien-nuit:hover{ color:var(--ab-laiton-clair); }

@media (max-width:760px){
  .ab-titre{ padding:48px 0 44px; }
  .ab-cta__box{ padding:36px 20px; }
}

/* ================= TEXTES PARTAGÉS (05.10.2026) =================
   Colonnes de texte, lien « plus », sous-titre, séparateur, titre en deux temps. */
.ab-section--flush{ padding-top:0; }
.ab-texte p{ margin:0 0 14px; color:var(--ab-encre-2); }
.ab-texte p.ab-texte__fort{ font:500 26px/1.2 var(--ab-font-display); color:var(--ab-encre); margin:22px 0; }
.ab-more{ margin:22px 0 0; }
.ab-page .ab-more a{ text-decoration:none; font-weight:500; }
.ab-page .ab-more a:hover{ text-decoration:underline; }
.ab-page p.ab-sous{ margin:6px 0 0; font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--ab-accent); }
.ab-bord{ border-top:1px solid var(--ab-filet); padding-top:56px; }
.ab-page .ab-titre h1 em{ display:block; font-style:italic; font-weight:400; color:var(--ab-laiton-clair); }
/* un bandeau final qui suit un bandeau sombre : on garde de l'air entre les deux */
.ab-section.ab-dark + .ab-cta{ padding-top:72px; }

@media (max-width:760px){
  .ab-bord{ padding-top:44px; }
  .ab-section.ab-dark + .ab-cta{ padding-top:52px; }
}
