/* SOSBA GLOBAL CSS — v1.0.0 (04.10.2026)
   Socle commun de sosba.ch (modèle origin-global.css 1.0.4).
   Tokens de la piste A (IDENTITE.md, validée le 04.10.2026), polices
   auto-hébergées, socle anti-Divi, header/footer du plugin sosba-core,
   classes communes. Aucune requête vers un serveur tiers.

   Socle anti-Divi : actif seulement quand body.sosba-site est posé par
   sosba-global.js (une racine .sb-page est présente dans le DOM). Il
   neutralise les conteneurs centrés de Divi et force le fond SOSBA. */

/* ================= POLICES AUTO-HÉBERGÉES =================
   Cormorant Garamond (titres, nom) et Inter Tight (texte), licence OFL.
   Fichiers du kit famille (FAMILLE_FONTS_KIT), servis 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{
  /* piste A */
  --sb-nuit: #0E2A2F;
  --sb-petrole: #1D4A50;
  --sb-vdg: #7FA39B;
  --sb-laiton: #B8975A;
  --sb-ecume: #EEF2EF;
  /* dérivés (page-web-exemple) */
  --sb-laiton-clair: #E6D5A8;
  --sb-texte-sur-nuit: #B9CBC7;
  --sb-lien-sur-nuit: #CFDCD8;
  --sb-carte: #FFFFFF;
  --sb-encre: #0E2A2F;
  --sb-encre-2: #4A5F5E;
  --sb-filet: #D3DDD9;
  --sb-accent: #8C6D35;

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

/* ---------- base ---------- */
html, body.sosba-body, body.sosba-site {
  -webkit-text-size-adjust: 100% !important;
  text-size-adjust: 100% !important;
}
body.sosba-body { margin:0; background:var(--sb-ecume); color:var(--sb-encre); }
.sb-page, .sb-page * { box-sizing:border-box; }
.sb-page { font:400 17px/1.6 var(--sb-font-body); color:var(--sb-encre); }
.sb-page img { max-width:100%; height:auto; display:block; }
.sb-page a { color:var(--sb-accent); }
.sb-page ::selection { background:var(--sb-laiton); color:var(--sb-nuit); }

/* ================= SOCLE ANTI-DIVI ================= */
body.sosba-site,
body.sosba-site #page-container,
body.sosba-site #main-content,
body.sosba-site #et-main-area,
body.sosba-site .et_pb_section,
body.sosba-site .et_pb_row {
  background:var(--sb-ecume) !important;
}
html:has(body.sosba-site) { background:var(--sb-ecume) !important; }
body.sosba-site #page-container,
body.sosba-site #main-content,
body.sosba-site #et-main-area,
body.sosba-site .et_pb_section,
body.sosba-site .et_pb_row,
body.sosba-site .et_pb_column {
  max-width:100% !important;
  width:100% !important;
  padding:0 !important;
  margin:0 !important;
}
/* Divi peut afficher son propre header : on le masque sur les pages SOSBA. */
body.sosba-site #main-header,
body.sosba-site #top-header,
body.sosba-site #main-footer,
body.sosba-site .et-l--header,
body.sosba-site .et-l--footer { display:none !important; }
body.sosba-site #page-container { padding-top:0 !important; }
html.sosba-site, body.sosba-site { overflow-x:clip !important; }

/* ================= HEADER [sosba_header] ================= */
.sb-header{
  position:sticky !important; top:0; z-index:999 !important;
  width:100% !important; box-sizing:border-box !important;
  background:var(--sb-nuit) !important;
  border-bottom:1px solid rgba(184,151,90,0) !important;
  transition:border-color .3s ease, box-shadow .3s ease;
}
.sb-header.is-scrolled{
  border-bottom-color:rgba(184,151,90,.25) !important;
  box-shadow:0 6px 24px rgba(14,42,47,.18) !important;
}
.sb-header__inner{
  max-width:1080px !important; margin:0 auto !important;
  padding:14px 24px !important;
  display:flex !important; justify-content:space-between !important; align-items:center !important;
  gap:16px !important; position:relative !important;
}
.sb-brand{
  display:flex !important; align-items:center !important; gap:12px !important;
  font:500 20px/1 var(--sb-font-display) !important; letter-spacing:.32em !important;
  color:var(--sb-laiton-clair) !important; text-decoration:none !important;
}
.sb-brand img{ width:34px !important; height:34px !important; display:block !important; }
.sb-nav{ display:flex !important; gap:22px !important; font:500 14px/1 var(--sb-font-body) !important; }
.sb-nav a{
  color:var(--sb-lien-sur-nuit) !important; text-decoration:none !important;
  min-height:40px !important; display:inline-flex !important; align-items:center !important;
}
.sb-nav a:hover, .sb-nav a.is-current{ color:var(--sb-laiton-clair) !important; }
.sb-nav a.is-current{ box-shadow:inset 0 -1px 0 var(--sb-laiton) !important; }
.sb-burger{
  display:none !important; background:transparent !important; border:0 !important;
  color:var(--sb-laiton-clair) !important; min-width:44px !important; min-height:44px !important; cursor:pointer;
}
@media (max-width:760px){
  .sb-header__inner{ padding:12px 16px !important; }
  .sb-burger{ display:inline-flex !important; align-items:center !important; justify-content:center !important; }
  .sb-nav{
    position:absolute !important; top:100% !important; left:0 !important; right:0 !important;
    flex-direction:column !important; gap:0 !important;
    background:var(--sb-nuit) !important; border-top:1px solid rgba(184,151,90,.2) !important;
    padding:6px 16px 16px !important;
    opacity:0 !important; transform:translateY(-8px) !important; pointer-events:none !important;
    transition:opacity .25s ease, transform .25s ease !important;
  }
  .sb-nav.is-open{ opacity:1 !important; transform:none !important; pointer-events:auto !important; }
  .sb-nav a{ padding:12px 0 !important; border-bottom:1px solid rgba(184,151,90,.12) !important; }
}

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

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

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

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

/* le fil : point = 1 temps, trait = 3 temps */
.sb-morse{ display:flex; gap:6px; align-items:center; height:10px; margin-bottom:14px; }
.sb-morse i{ display:block; background:var(--sb-laiton); height:6px; border-radius:3px; }
.sb-morse .d{ width:6px; }
.sb-morse .t{ width:18px; }

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

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

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

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

/* ================= SITE STATIQUE (04.10.2026) =================
   Lien d'évitement clavier, page 404. Le socle anti-Divi plus haut ne
   s'active plus (pas de Divi) : il reste inoffensif. */
.sb-skip{ position:absolute; left:-9999px; top:0; z-index:1000; background:var(--sb-laiton); color:var(--sb-nuit); padding:10px 16px; font:600 14px/1 var(--sb-font-body); }
.sb-skip:focus{ left:16px; top:12px; }
.sb-404{ text-align:center; padding:120px 0; }
.sb-404 .sb-morse{ justify-content:center; }
.sb-page.sb-page .sb-404 h1{ font:500 clamp(32px,5vw,48px)/1.1 var(--sb-font-display); color:#E9EEEC; margin:24px 0 0; }
.sb-404 p{ margin:14px 0 28px; }
