/* ============================================================
   DESIGN SUISSE / ÉDITORIAL — feuille de style complète
   Reprend la maquette : typographie massive, colonnes visibles,
   libellés monospace, filets de séparation, pas d'ombres.
   ============================================================ */

:root{
  --bg:#fff;
  --fg:#0a0a0a;
  --muted:#6b6b6b;
  --soft:#f5f5f4;
  --line:#e4e4e4;
  --orange:#f39225;
  --turquoise:#00a19b;
  --blue:#2c4980;
  --ease:cubic-bezier(.22,1,.36,1);
  --max:1600px;
  --pad:clamp(20px,4vw,40px);
}

*{ box-sizing:border-box; border-color:var(--line); }
html{ -webkit-font-smoothing:antialiased; scroll-behavior:smooth; }
body{
  margin:0; background:var(--bg); color:var(--fg);
  font-family:'Inter', ui-sans-serif, system-ui, sans-serif;
  font-feature-settings:'cv01','ss01';
  overflow-x:hidden;
}
::selection{ background:var(--orange); color:#fff; }
img,video{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }

/* ---------- conteneur ---------- */
.sw-wrap{ max-width:var(--max); margin:0 auto; padding:0 var(--pad); }

/* ---------- typographie ---------- */
.sw-display{
  font-size:clamp(2.2rem,6.4vw,6.5rem); line-height:.94; letter-spacing:-.03em;
  font-weight:900; text-transform:uppercase; text-wrap:balance; margin:0;
  overflow-wrap:break-word; hyphens:auto;
}
.sw-display-sm{
  font-size:clamp(2rem,6vw,5rem); line-height:.95; letter-spacing:-.025em;
  font-weight:900; text-transform:uppercase; text-wrap:balance; margin:0;
}
.sw-label{
  font-family:'Space Mono', ui-monospace, monospace;
  font-size:.6875rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted); margin:0;
}
.sw-lead{ font-size:.9375rem; line-height:1.7; color:var(--muted); margin:0; }
.sw-accent{ color:var(--orange); }
.sw-tq{ color:var(--turquoise); }
.sw-bl{ color:var(--blue); }

/* ---------- en-tête du site ---------- */
.sw-header{
  position:fixed; inset:0 0 auto; z-index:50;
  padding:20px 0; border-bottom:1px solid transparent;
  transition:padding .3s, background .3s, border-color .3s, backdrop-filter .3s;
}
.sw-header.scrolled{
  padding:12px 0; background:rgba(255,255,255,.85);
  backdrop-filter:blur(12px); border-bottom-color:var(--line);
}
.sw-header-inner{
  max-width:var(--max); margin:0 auto; padding:0 var(--pad);
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.sw-logo{ display:flex; flex-direction:column; line-height:1; }
.sw-logo strong{ font-size:1.0625rem; font-weight:800; letter-spacing:-.02em; }
.sw-logo .sw-label{ margin-top:5px; transition:color .3s; }
.sw-logo:hover .sw-label{ color:var(--fg); }

.sw-nav{ display:flex; align-items:center; gap:32px; }
.sw-nav-link{
  position:relative; display:flex; align-items:center; gap:6px;
  font-size:.875rem; font-weight:500; color:rgba(10,10,10,.7);
  transition:color .3s; padding-bottom:2px;
}
.sw-nav-link:hover, .sw-nav-link.is-active{ color:var(--fg); }
.sw-nav-link::after{
  content:''; position:absolute; left:0; bottom:-6px; height:1px; width:0;
  background:var(--orange); transition:width .3s var(--ease);
}
.sw-nav-link:hover::after, .sw-nav-link.is-active::after{ width:100%; }
.sw-nav-cta{
  display:inline-flex; align-items:center; gap:8px;
  border:1px solid var(--fg); padding:9px 18px;
  font-size:.875rem; font-weight:500; transition:background .3s, color .3s;
}
.sw-nav-cta:hover{ background:var(--fg); color:var(--bg); }
.sw-nav-cta i{
  width:6px; height:6px; border-radius:50%; background:var(--orange);
  transition:transform .3s;
}
.sw-nav-cta:hover i{ transform:scale(1.3); }

.sw-burger{
  position:relative; z-index:60; display:none;
  width:32px; height:32px; border:0; background:none; cursor:pointer;
  flex-direction:column; align-items:center; justify-content:center; gap:6px;
}
.sw-burger span{ display:block; width:24px; height:1px; background:var(--fg); transition:transform .3s; }
.sw-burger.open span:nth-child(1){ transform:translateY(3.5px) rotate(45deg); }
.sw-burger.open span:nth-child(2){ transform:translateY(-3.5px) rotate(-45deg); }

.sw-mobile{
  position:fixed; inset:0; z-index:40; background:#0a0a0a; color:#fff;
  clip-path:inset(0 0 100% 0); transition:clip-path .7s var(--ease);
  display:flex; flex-direction:column; justify-content:space-between;
  padding:96px 0 32px;
}
.sw-mobile.open{ clip-path:inset(0 0 0 0); }
.sw-mobile .sw-label{ color:rgba(255,255,255,.45); }
.sw-mobile-top{
  display:flex; justify-content:space-between; gap:16px;
  padding:0 var(--pad) 20px; border-bottom:1px solid rgba(255,255,255,.14);
}
.sw-mobile-nav{ flex:1; display:flex; flex-direction:column; justify-content:center; }
.sw-mobile-nav a{
  position:relative; display:grid; align-items:center; gap:16px;
  grid-template-columns:44px 1fr 28px;
  padding:clamp(16px,3vh,26px) var(--pad);
  border-bottom:1px solid rgba(255,255,255,.14);
  opacity:0; transform:translateY(18px);
  transition:opacity .5s var(--ease), transform .5s var(--ease), background .3s;
}
.sw-mobile.open .sw-mobile-nav a{ opacity:1; transform:none; }
.sw-mobile.open .sw-mobile-nav a:nth-child(1){ transition-delay:.18s; }
.sw-mobile.open .sw-mobile-nav a:nth-child(2){ transition-delay:.25s; }
.sw-mobile.open .sw-mobile-nav a:nth-child(3){ transition-delay:.32s; }
.sw-mobile.open .sw-mobile-nav a:nth-child(4){ transition-delay:.39s; }
.sw-mobile.open .sw-mobile-nav a:nth-child(5){ transition-delay:.46s; }
.sw-mobile.open .sw-mobile-nav a:nth-child(6){ transition-delay:.53s; }
.sw-mobile-nav a:active{ background:rgba(255,255,255,.06); }
.sw-mobile-title{
  font-size:clamp(1.6rem,7vw,2.6rem); font-weight:900;
  letter-spacing:-.03em; text-transform:uppercase; line-height:1.05;
}
.sw-mobile-arrow{ justify-self:end; color:rgba(255,255,255,.4); font-size:1.1rem; }
.sw-mobile-foot{
  display:flex; flex-direction:column; gap:8px;
  padding:24px var(--pad) 0; border-top:1px solid rgba(255,255,255,.14);
}
.sw-mobile-foot a:hover{ color:#fff; }
/* le bouton passe en blanc quand le menu est ouvert */
.sw-burger.open span{ background:#fff; }

@media (max-width:860px){
  .sw-nav{ display:none; }
  .sw-burger{ display:flex; }
}

/* ---------- section d'introduction de page ---------- */
.sw-intro-sec{ border-bottom:1px solid var(--line); padding-top:clamp(120px,14vw,160px); }
.sw-intro-sec .sw-wrap{ padding-bottom:clamp(48px,7vw,80px); }
.sw-meta{
  display:flex; align-items:flex-end; justify-content:space-between; gap:20px;
  padding-bottom:16px; margin-bottom:clamp(40px,6vw,64px);
  border-bottom:1px solid var(--line);
}
.sw-intro-grid{ display:grid; gap:32px; grid-template-columns:repeat(12,1fr); }
.sw-intro-grid .sw-title{ grid-column:span 9; }
.sw-intro-grid .sw-side{ grid-column:span 3; display:flex; align-items:flex-end; }
@media (max-width:860px){
  .sw-intro-grid .sw-title, .sw-intro-grid .sw-side{ grid-column:span 12; }
}

/* colonnes fines en fond */
.sw-guides{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  max-width:var(--max); margin:0 auto; padding:0 var(--pad);
  display:grid; grid-template-columns:repeat(12,1fr);
}
.sw-guides span{ border-left:1px solid rgba(228,228,228,.6); }
.sw-guides span:last-child{ border-right:1px solid rgba(228,228,228,.6); }
@media (max-width:860px){ .sw-guides{ display:none; } }

/* ---------- sections courantes ---------- */
.sw-section{ position:relative; border-bottom:1px solid var(--line); padding:clamp(60px,9vw,120px) 0; }
.sw-section-head{ margin-bottom:clamp(36px,5vw,64px); max-width:70ch; }
.sw-section-head .sw-label{ margin-bottom:16px; }

/* ---------- grille de cartes ---------- */
.sw-grid{ display:grid; gap:0; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
.sw-grid > *{ border-bottom:1px solid var(--line); border-right:1px solid var(--line); }
.sw-grid > *:nth-child(3n){ border-right:0; }
@media (max-width:900px){
  .sw-grid{ grid-template-columns:repeat(2,1fr); }
  .sw-grid > *{ border-right:1px solid var(--line); }
  .sw-grid > *:nth-child(3n){ border-right:1px solid var(--line); }
  .sw-grid > *:nth-child(2n){ border-right:0; }
}
@media (max-width:620px){
  .sw-grid{ grid-template-columns:1fr; }
  .sw-grid > *{ border-right:0 !important; }
}

.sw-card{ position:relative; padding:clamp(28px,3vw,40px); transition:background .4s var(--ease); }
.sw-card::before{
  content:''; position:absolute; left:0; right:0; top:0; height:2px;
  background:var(--c,var(--orange)); transform:scaleX(0); transform-origin:left;
  transition:transform .6s var(--ease);
}
.sw-card:hover::before{ transform:scaleX(1); }
.sw-card:hover{ background:var(--soft); }
.sw-card-num{
  font-family:'Space Mono', ui-monospace, monospace;
  font-size:.6875rem; letter-spacing:.18em; color:var(--c,var(--orange));
  display:block; margin-bottom:20px;
}
.sw-card h3{
  font-size:1.375rem; font-weight:800; letter-spacing:-.02em;
  margin:0 0 12px; line-height:1.15;
}
.sw-card p{ font-size:.875rem; line-height:1.75; color:var(--muted); margin:0; }
.sw-card ul{ list-style:none; margin:18px 0 0; padding:0; display:grid; gap:8px; }
.sw-card li{ font-size:.8125rem; color:var(--muted); display:flex; gap:10px; }
.sw-card li::before{ content:'—'; color:var(--c,var(--orange)); flex:none; }

/* ---------- bloc texte + visuel ---------- */
.sw-split{ display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(32px,5vw,80px); align-items:center; }
.sw-split .sw-split-text{ grid-column:span 6; }
.sw-split .sw-split-media{ grid-column:span 6; }
.sw-split.reverse .sw-split-media{ order:-1; }
.sw-split-media{ position:relative; aspect-ratio:4/3; background:var(--soft); overflow:hidden; }
.sw-split-media img, .sw-split-media video{ width:100%; height:100%; object-fit:cover; }
.sw-split-media.empty{
  display:flex; align-items:center; justify-content:center;
  border:1px dashed var(--line);
}
@media (max-width:860px){
  .sw-split .sw-split-text, .sw-split .sw-split-media{ grid-column:span 12; }
  .sw-split.reverse .sw-split-media{ order:0; }
}

/* ---------- accordéon ---------- */
.sw-acc{ border-top:1px solid var(--line); }
.sw-acc details{ border-bottom:1px solid var(--line); }
.sw-acc summary{
  display:flex; align-items:baseline; gap:20px; cursor:pointer; list-style:none;
  padding:26px 0; transition:color .3s;
}
.sw-acc summary::-webkit-details-marker{ display:none; }
.sw-acc summary:hover{ color:var(--orange); }
.sw-acc .sw-acc-num{
  font-family:'Space Mono', ui-monospace, monospace; font-size:.6875rem;
  letter-spacing:.18em; color:var(--muted); flex:none;
}
.sw-acc .sw-acc-q{ flex:1; font-size:1.0625rem; font-weight:700; letter-spacing:-.01em; }
.sw-acc .sw-acc-plus{
  flex:none; width:14px; height:14px; position:relative; transition:transform .35s var(--ease);
}
.sw-acc .sw-acc-plus::before, .sw-acc .sw-acc-plus::after{
  content:''; position:absolute; background:var(--fg);
}
.sw-acc .sw-acc-plus::before{ left:0; right:0; top:50%; height:1px; margin-top:-.5px; }
.sw-acc .sw-acc-plus::after{ top:0; bottom:0; left:50%; width:1px; margin-left:-.5px; transition:transform .35s var(--ease); }
.sw-acc details[open] .sw-acc-plus{ transform:rotate(90deg); }
.sw-acc details[open] .sw-acc-plus::after{ transform:scaleY(0); }
.sw-acc-body{ padding:0 0 28px 46px; }
.sw-acc-body p{ margin:0; font-size:.875rem; line-height:1.8; color:var(--muted); max-width:70ch; }
@media (max-width:620px){ .sw-acc-body{ padding-left:0; } }

/* ---------- comparatif ---------- */
.sw-compare{ display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); }
.sw-compare > div{ padding:clamp(28px,3vw,44px); }
.sw-compare > div:first-child{ border-right:1px solid var(--line); }
.sw-compare h3{ font-size:1.125rem; font-weight:800; margin:0 0 24px; letter-spacing:-.01em; }
.sw-compare ul{ list-style:none; margin:0; padding:0; display:grid; gap:16px; }
.sw-compare li{ display:flex; gap:14px; font-size:.875rem; line-height:1.65; }
.sw-compare li::before{ flex:none; font-family:'Space Mono',monospace; font-size:.75rem; }
.sw-compare .no li{ color:var(--muted); }
.sw-compare .no li::before{ content:'✕'; color:#d14545; }
.sw-compare .yes li::before{ content:'✓'; color:var(--turquoise); }
@media (max-width:820px){
  .sw-compare{ grid-template-columns:1fr; }
  .sw-compare > div:first-child{ border-right:0; border-bottom:1px solid var(--line); }
}

/* ---------- chiffres ---------- */
.sw-stats{ display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
.sw-stats > div{ padding:clamp(28px,3vw,44px); border-right:1px solid var(--line); }
.sw-stats > div:last-child{ border-right:0; }
.sw-stat-n{ font-size:clamp(2.5rem,5vw,4rem); font-weight:900; letter-spacing:-.03em; line-height:1; }
.sw-stat-l{ margin-top:12px; }
@media (max-width:700px){
  .sw-stats{ grid-template-columns:1fr; }
  .sw-stats > div{ border-right:0; border-bottom:1px solid var(--line); }
}

/* ---------- appel à l'action ---------- */
.sw-cta{ padding:clamp(70px,10vw,130px) 0; border-bottom:1px solid var(--line); }
.sw-cta a{
  display:block; font-size:clamp(2rem,6vw,4.5rem); font-weight:900;
  line-height:.95; letter-spacing:-.03em; margin-top:20px; transition:opacity .3s;
}
.sw-cta a:hover{ opacity:.7; }

/* ---------- pied de page ---------- */
.sw-footer{ border-top:1px solid var(--line); padding:clamp(50px,8vw,96px) 0 32px; }
.sw-footer-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(32px,5vw,60px); }
.sw-footer-brand{ grid-column:span 6; }
.sw-footer-cols{ grid-column:span 6; display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.sw-footer-cols ul{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.sw-footer-cols a{ font-size:.875rem; color:rgba(10,10,10,.7); transition:color .3s; }
.sw-footer-cols a:hover{ color:var(--fg); }
.sw-footer-bottom{
  margin-top:clamp(40px,6vw,72px); padding-top:24px; border-top:1px solid var(--line);
  display:flex; flex-wrap:wrap; gap:16px; justify-content:space-between;
}
@media (max-width:860px){
  .sw-footer-brand, .sw-footer-cols{ grid-column:span 12; }
  .sw-footer-cols{ grid-template-columns:repeat(2,1fr); }
}

/* ---------- révélations ---------- */
.sw-rv{ opacity:0; transform:translateY(24px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.sw-rv.on{ opacity:1; transform:none; }
.sw-rv-clip{ clip-path:inset(0 0 100% 0); transition:clip-path .9s var(--ease); }
.sw-rv-clip.on{ clip-path:inset(0 0 0 0); }

@media (prefers-reduced-motion:reduce){
  .sw-load{ display:none; }
  .sw-rv, .sw-rv-clip{ opacity:1 !important; transform:none !important; clip-path:none !important; }
}

/* ============================================================
   ACCUEIL — héros, univers, sélection
   ============================================================ */
.sw-hero{
  position:relative; border-bottom:1px solid var(--line);
  padding:clamp(130px,16vw,190px) 0 clamp(50px,7vw,80px);
}
.sw-hero-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(28px,4vw,48px); }
.sw-hero-title{ grid-column:span 9; }
.sw-hero-side{ grid-column:span 3; display:flex; flex-direction:column; justify-content:space-between; gap:32px; }
.sw-hero-side .sw-lead{ max-width:34ch; }
.sw-hero-disc{ display:flex; flex-direction:column; gap:4px; }
.sw-hero-disc .sw-label{ margin-bottom:6px; }
.sw-hero-disc-item{ font-size:.875rem; font-weight:500; }
@media (max-width:860px){
  .sw-hero-title, .sw-hero-side{ grid-column:span 12; }
}

.sw-hero-foot{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:22px;
  margin-top:clamp(50px,7vw,84px); padding-top:26px; border-top:1px solid var(--line);
}
.sw-arrow-link{ display:inline-flex; align-items:center; gap:16px; font-size:1.0625rem; font-weight:700; }
.sw-arrow{
  display:flex; align-items:center; justify-content:center;
  width:48px; height:48px; border-radius:50%; border:1px solid var(--fg); flex:none;
  transition:background .3s, color .3s, transform .3s var(--ease);
}
.sw-arrow-link:hover .sw-arrow{ background:var(--fg); color:var(--bg); transform:translate(2px,-2px); }

/* ---- ligne de titre + lien ---- */
.sw-head-row{
  display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px;
  padding-bottom:18px; margin-bottom:clamp(34px,5vw,60px); border-bottom:1px solid var(--line);
}
.sw-all-link{ transition:color .3s; }
.sw-all-link:hover{ color:var(--fg); }

/* ---- univers numérotés ---- */
.sw-universes{ border-top:1px solid var(--line); }
.sw-universe{
  position:relative; display:grid; align-items:center; gap:20px;
  grid-template-columns:64px minmax(0,1.1fr) minmax(0,1.6fr) 48px;
  padding:clamp(24px,3vw,36px) 0; border-bottom:1px solid var(--line);
  transition:padding-left .45s var(--ease), background .4s var(--ease);
}
.sw-universe::before{
  content:''; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:var(--orange); transform:scaleY(0); transform-origin:top;
  transition:transform .45s var(--ease);
}
.sw-universe:hover{ padding-left:22px; background:var(--soft); }
.sw-universe:hover::before{ transform:scaleY(1); }
.sw-universe-num{ flex:none; }
.sw-universe-title{
  font-size:clamp(1.3rem,2.6vw,2rem); font-weight:900; letter-spacing:-.02em;
  text-transform:uppercase; line-height:1.05;
}
.sw-universe-desc{ font-size:.875rem; line-height:1.7; color:var(--muted); }
.sw-universe-arrow{
  justify-self:end; font-size:1.1rem; color:var(--muted);
  transition:transform .35s var(--ease), color .35s;
}
.sw-universe:hover .sw-universe-arrow{ transform:translate(3px,-3px); color:var(--orange); }
@media (max-width:860px){
  .sw-universe{ grid-template-columns:48px 1fr 32px; }
  .sw-universe-desc{ grid-column:2 / -1; }
}

/* ---- sélection de réalisations ---- */
.sw-featured{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(28px,4vw,56px); }
.sw-feat{ display:block; }
.sw-feat-media{ position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--soft); }
.sw-feat-media img, .sw-feat-media video{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1.1s var(--ease);
}
.sw-feat:hover .sw-feat-media img, .sw-feat:hover .sw-feat-media video{ transform:scale(1.04); }
.sw-feat-ph{ position:absolute; inset:0; background:var(--c); opacity:.14; }
.sw-feat-media::after{
  content:''; position:absolute; inset:0; background:var(--c); opacity:0;
  transition:opacity .5s var(--ease);
}
.sw-feat:hover .sw-feat-media::after{ opacity:.12; }
.sw-feat-meta{
  display:flex; align-items:flex-start; gap:16px;
  margin-top:16px; padding-top:14px; border-top:1px solid var(--line);
}
.sw-feat-meta > div{ flex:1; min-width:0; }
.sw-feat-meta h3{
  margin:0 0 6px; font-size:clamp(1.1rem,1.9vw,1.5rem);
  font-weight:800; letter-spacing:-.02em; line-height:1.15; transition:color .35s;
}
.sw-feat:hover .sw-feat-meta h3{ color:var(--c); }
@media (max-width:760px){ .sw-featured{ grid-template-columns:1fr; } }

/* ============================================================
   ÉCRAN DE CHARGEMENT — fond noir, compteur en bas à droite
   ============================================================ */
.sw-load{
  position:fixed; inset:0; z-index:9999; background:#0a0a0a; color:#fff;
  display:flex; align-items:center; justify-content:center;
  transition:clip-path .9s var(--ease), opacity .6s ease .3s;
  clip-path:inset(0 0 0 0);
}
.sw-load.done{ clip-path:inset(0 0 100% 0); opacity:0; pointer-events:none; }
.sw-load-brand{ text-align:center; }
.sw-load-brand span{
  display:block; font-size:clamp(2rem,6vw,4.5rem); font-weight:900;
  line-height:.95; letter-spacing:-.03em; text-transform:uppercase;
  opacity:0; transform:translateY(20px);
  animation:swLoadUp .8s var(--ease) forwards;
}
.sw-load-brand span:nth-child(2){ color:var(--orange); animation-delay:.12s; }
@keyframes swLoadUp{ to{ opacity:1; transform:none; } }

/* barre de progression fine en bas */
.sw-load-bar{
  position:absolute; left:0; right:0; bottom:0; height:2px;
  background:rgba(255,255,255,.12); overflow:hidden;
}
.sw-load-bar i{
  display:block; height:100%; background:var(--orange);
  transform:scaleX(0); transform-origin:left; transition:transform .2s linear;
}

/* compteur en bas à droite */
.sw-load-count{
  position:absolute; right:clamp(20px,4vw,44px); bottom:clamp(28px,4vw,48px);
  display:flex; align-items:baseline; gap:2px;
  font-family:'Space Mono', ui-monospace, monospace;
  font-variant-numeric:tabular-nums;
}
.sw-load-n{ font-size:clamp(2.6rem,7vw,5rem); font-weight:700; line-height:1; letter-spacing:-.04em; }
.sw-load-pct{ font-size:1rem; color:var(--orange); }
.sw-load-label{
  position:absolute; left:clamp(20px,4vw,44px); bottom:clamp(32px,4vw,52px);
  margin:0; font-family:'Space Mono', ui-monospace, monospace;
  font-size:.6875rem; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(255,255,255,.45);
}

/* ============================================================
   BANDEAU DE TEXTE DÉFILANT
   ============================================================ */
.sw-marquee{
  position:relative; overflow:hidden; padding:clamp(18px,2.4vw,30px) 0;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:var(--bg);
}
.sw-marquee-track{
  display:flex; width:max-content; will-change:transform;
  animation:swMarquee var(--speed,38s) linear infinite;
}
.sw-marquee:hover .sw-marquee-track{ animation-play-state:paused; }
.sw-marquee-group{ display:flex; align-items:center; flex:none; }
.sw-marquee-item{
  display:inline-flex; align-items:center; gap:clamp(20px,3vw,44px);
  padding:0 clamp(20px,3vw,44px);
  font-size:clamp(1.4rem,3.4vw,2.6rem); font-weight:900;
  letter-spacing:-.02em; text-transform:uppercase; white-space:nowrap;
}
.sw-marquee-item::after{
  content:''; width:9px; height:9px; border-radius:50%;
  background:var(--orange); flex:none;
}
.sw-marquee-item:nth-child(even)::after{ background:var(--turquoise); }
.sw-marquee-item:nth-child(3n)::after{ background:var(--blue); }
/* variante en négatif */
.sw-marquee.dark{ background:#0a0a0a; border-color:#0a0a0a; color:#fff; }
/* variante inversée */
.sw-marquee.reverse .sw-marquee-track{ animation-direction:reverse; }
@keyframes swMarquee{ to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){
  .sw-marquee-track{ animation:none; }
}
