/* CEID-Addictions — « Le i qui déborde » */
:root{
  --fx-color-fond:#ffffff;
  --fx-color-surface:#ecedee;
  --fx-color-contraste:#939598;
  --fx-color-texte:#1f1f21;
  --fx-color-texte-secondaire:#55565a;
  --fx-color-accent:#ee1c25;
  --fx-color-accent-2:#900406;
  --fx-color-bordure:#c7c8ca;
  --fx-font-display:"Lexend", system-ui, sans-serif;
  --fx-font-body:"Atkinson Hyperlegible", system-ui, sans-serif;
  --pad:clamp(16px,4vw,56px);
  --bar:72px;
  --trame:8px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--fx-color-fond);color:var(--fx-color-texte);
  font:400 1.125rem/1.6 var(--fx-font-body);
  overflow-x:hidden;
}
img,svg{display:block;max-width:100%}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
a{color:var(--fx-color-accent-2);text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--fx-color-accent-2);outline-offset:3px}
.wrap{max-width:1440px;margin-inline:auto;padding-inline:var(--pad)}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:var(--pad);top:-100px;z-index:100;background:var(--fx-color-texte);color:#fff;padding:12px 20px;font-family:var(--fx-font-display)}
.skip:focus{top:8px}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

/* sigles en petites capitales */
abbr[title]{text-decoration:none;font-variant-caps:all-small-caps;letter-spacing:.05em;font-size:1.1em;cursor:help}

/* ── Barre ── */
.bar{
  position:relative;z-index:50;background:var(--fx-color-fond);
  border-bottom:1px solid var(--fx-color-bordure);
  min-height:var(--bar);display:flex;align-items:center;gap:16px;
  padding:8px var(--pad);
}
.brand{display:flex;align-items:center;gap:12px;color:var(--fx-color-texte);text-decoration:none;font:500 1.25rem/1 var(--fx-font-display);letter-spacing:.01em;min-height:48px}
.brand img{height:52px;width:auto}
.brand:hover span{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.25em}
.nav{margin-left:auto}
.nav ul{display:flex;gap:4px}
.nav a{display:flex;align-items:center;min-height:48px;padding:0 14px;color:var(--fx-color-texte);text-decoration:none;font:500 1rem/1.1 var(--fx-font-display)}
.nav a:hover{background:var(--fx-color-surface)}
.mention{background:var(--fx-color-contraste);color:var(--fx-color-texte);font:500 .9375rem/1.15 var(--fx-font-display);padding:10px 16px;margin:0}
.menu-btn{display:none;min-height:48px;padding:0 16px;border:1px solid var(--fx-color-texte);background:var(--fx-color-fond);color:var(--fx-color-texte);font:500 1rem var(--fx-font-display);cursor:pointer}
@media (max-width:1019px){
  .brand span{display:none}
  .mention{margin-left:auto;font-size:.875rem;max-width:7.5rem}
  .nav{margin:0;order:5;flex-basis:100%}
  .nav ul{flex-direction:column;gap:0}
  .nav a{min-height:52px;border-top:1px solid var(--fx-color-bordure);font-size:1.125rem}
  html.js .menu-btn{display:block}
  html.js .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--fx-color-fond);border-bottom:1px solid var(--fx-color-bordure);padding:0 var(--pad) 8px}
  html.js .nav.is-open{display:block}
  html:not(.js) .bar{flex-wrap:wrap}
}
@media (min-width:560px) and (max-width:1019px){.brand span{display:inline}}
@media (min-width:1020px){.mention{margin-left:8px}}

/* ── Pastille qui déborde ── */
.pastille{
  display:inline-flex;align-items:center;gap:14px;min-height:72px;padding:12px 36px;
  background:var(--fx-color-accent);color:#fff;border:0;border-radius:40px;
  font:700 1.25rem/1.15 var(--fx-font-display);text-decoration:none;cursor:pointer;
  transition:transform .18s ease;
}
.pastille:hover,.pastille:focus-visible{transform:translate(-1px,4px);text-decoration:none}
.pastille .fl{font-size:1.4em;line-height:1}
.pastille--abs{position:absolute;z-index:3;max-width:calc(100% - 32px)}

/* ── Accueil ── */
.hero{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--trame);padding-top:var(--trame)}
.hero__bloc{
  grid-column:1/9;position:relative;background-color:var(--fx-color-contraste);
  background-image:linear-gradient(rgba(31,31,33,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(31,31,33,.09) 1px,transparent 1px);
  background-size:64px 64px;
  padding:clamp(24px,4vw,56px);padding-bottom:clamp(88px,9vw,120px);
  min-height:min(680px,calc(100svh - var(--bar) - 48px));
  display:flex;flex-direction:column;justify-content:space-between;gap:40px;
}
.kicker{font:500 1rem/1.3 var(--fx-font-display);letter-spacing:.04em}
.hero h1{font:500 clamp(2rem,1rem + 3.4vw,4rem)/1.05 var(--fx-font-display);letter-spacing:.005em;max-width:17em}
.hero__sous{max-width:34em;font-size:1.1875rem}
.hero__bloc .pastille{left:clamp(24px,4vw,56px);bottom:-36px}
.hero__qui{grid-column:9/13;display:flex;flex-direction:column;gap:var(--trame)}
.hero__qui h2{font:500 1.125rem/1.2 var(--fx-font-display);padding:8px 0 16px;border-bottom:3px solid var(--fx-color-texte)}
.qui{
  flex:1;display:flex;flex-direction:column;justify-content:space-between;gap:12px;
  background:var(--fx-color-surface);color:var(--fx-color-texte);text-decoration:none;
  padding:24px;
}
.qui strong{font:500 clamp(1.375rem,1rem + 1vw,1.75rem)/1.1 var(--fx-font-display);display:block}
.qui span.d{display:block;margin-top:8px;font-size:1.0625rem;line-height:1.45;color:var(--fx-color-texte-secondaire)}
.qui .fl{font:300 2rem/1 var(--fx-font-display)}
.qui:hover,.qui:focus-visible{background:var(--fx-color-texte);color:#fff}
.qui:hover .d,.qui:focus-visible .d{color:#e3e4e5}
@media (max-width:1019px){
  .hero__bloc{grid-column:1/-1;min-height:0}
  .hero__qui{grid-column:1/-1;margin-top:52px;display:grid;grid-template-columns:repeat(3,1fr)}
  .hero__qui h2{grid-column:1/-1}
}
@media (max-width:719px){.hero__qui{grid-template-columns:1fr}}

/* ── Sections ── */
.sec{padding-block:clamp(64px,8vw,112px)}
.sec--tight{padding-top:clamp(32px,4vw,56px)}
.mot{font:300 clamp(2.75rem,12.5vw,9rem)/1 var(--fx-font-display);letter-spacing:.012em;color:var(--fx-color-texte-secondaire);margin-left:-.04em;overflow-wrap:normal}
.sec-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px 8px;margin-top:clamp(16px,3vw,32px);margin-bottom:clamp(32px,5vw,64px);padding-top:24px;border-top:3px solid var(--fx-color-texte)}
.sec-head h2{grid-column:1/7;font:500 clamp(1.625rem,1rem + 1.8vw,2.5rem)/1.12 var(--fx-font-display)}
.sec-head .lead{grid-column:8/13;max-width:34em}
@media (max-width:899px){.sec-head h2,.sec-head .lead{grid-column:1/-1}}
.lead a,.prose a{font-weight:700}
.prose p+p{margin-top:1em}
.prose{max-width:36em}

/* valeurs */
.valeurs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--trame);margin-top:clamp(48px,6vw,80px)}
.valeur{border-top:3px solid var(--fx-color-texte);padding:20px 24px 8px 0}
.valeur h3{font:500 1.25rem/1.2 var(--fx-font-display);margin-bottom:8px}
.valeur p{font-size:1.0625rem;line-height:1.5;color:var(--fx-color-texte-secondaire)}
@media (max-width:999px){.valeurs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:559px){.valeurs{grid-template-columns:1fr}}

/* carrés */
.carres{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--trame)}
.carre{background:var(--fx-color-surface);padding:24px;display:flex;flex-direction:column;justify-content:space-between;gap:16px;min-height:220px}
.carre h3{font:500 1.375rem/1.1 var(--fx-font-display)}
.carre ul{font-size:1.125rem;line-height:1.7}
.carre--photo{padding:0;background:var(--fx-color-contraste);overflow:hidden;position:relative}
.carre--photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) sepia(.18) contrast(1.02)}
.carre--photo figcaption{position:absolute;left:0;bottom:0;background:var(--fx-color-fond);padding:6px 12px;font:500 .875rem/1.2 var(--fx-font-display)}
@media (min-width:900px){.carre{aspect-ratio:1/1;min-height:0}}
@media (max-width:719px){.carres{grid-template-columns:1fr}.carre--photo{min-height:260px}}

.accueil-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:40px 8px;align-items:start}
.accueil-grid .prose{grid-column:1/6}
.accueil-grid .carres{grid-column:7/13}
@media (max-width:999px){.accueil-grid .prose,.accueil-grid .carres{grid-column:1/-1}}

/* repères */
.reperes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--trame)}
.repere{background:var(--fx-color-surface);padding:24px;display:flex;flex-direction:column;justify-content:space-between;gap:20px;min-height:260px}
.repere b{font:300 clamp(3rem,2rem + 3vw,5rem)/1 var(--fx-font-display);letter-spacing:-.01em;font-weight:300}
.repere p{font-size:1.0625rem;line-height:1.5}
.repere--g{background:var(--fx-color-contraste)}
@media (min-width:1100px){.repere{aspect-ratio:1/1}}
@media (max-width:1019px){.reperes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:479px){.reperes{grid-template-columns:1fr}.repere{min-height:200px}}

/* services en accordéon */
.rows-wrap{position:relative;padding-bottom:40px}
.rows{display:grid;gap:var(--trame)}
.row{background:var(--fx-color-surface)}
.row summary{
  list-style:none;display:grid;grid-template-columns:48px minmax(0,1fr) 40px;align-items:center;gap:20px;
  padding:20px 24px;min-height:96px;cursor:pointer;
}
.row summary::-webkit-details-marker{display:none}
.row summary:hover{background:#e0e1e2}
.pict{width:48px;height:48px;fill:none;stroke:var(--fx-color-accent-2);stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
.row__nom{display:block;font:500 clamp(1.25rem,1rem + 1vw,1.875rem)/1.1 var(--fx-font-display)}
.row__desc{display:block;margin-top:6px;font-size:1.0625rem;line-height:1.4;color:var(--fx-color-texte-secondaire)}
.plus{position:relative;width:32px;height:32px;justify-self:end}
.plus::before,.plus::after{content:"";position:absolute;left:4px;right:4px;top:15px;height:2px;background:var(--fx-color-texte);transition:transform .2s}
.plus::after{transform:rotate(90deg)}
.row[open] .plus::after{transform:rotate(0)}
.row__body{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:32px 48px;padding:8px 24px 36px 92px}
.row__body h3{font:500 1.125rem/1.3 var(--fx-font-display);margin-bottom:8px}
.row__body p+p,.row__body p+ul{margin-top:.8em}
.row__body ul{list-style:none}
.row__body li{padding:10px 0;border-top:1px solid var(--fx-color-bordure)}
.row__body li:last-child{border-bottom:1px solid var(--fx-color-bordure)}
dl.coord{display:grid;gap:12px}
dl.coord dt{font:500 .9375rem/1.2 var(--fx-font-display);color:var(--fx-color-texte-secondaire);letter-spacing:.02em}
dl.coord dd{margin-top:2px}
.rows-wrap .pastille--abs{right:clamp(16px,4vw,48px);bottom:0}
.rows-note{margin-top:56px;max-width:44em;color:var(--fx-color-texte-secondaire)}
@media (max-width:899px){
  .row__body{grid-template-columns:1fr;padding:8px 24px 32px}
  .row summary{grid-template-columns:40px minmax(0,1fr) 32px;gap:14px;padding:16px}
  .pict{width:40px;height:40px}
}

/* entourage */
.entourage{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--trame);position:relative}
.gros{grid-column:1/8;position:relative;background:var(--fx-color-contraste);padding:clamp(24px,4vw,56px);padding-bottom:clamp(88px,9vw,112px);display:flex;flex-direction:column;gap:24px}
.gros h3{font:500 clamp(1.5rem,1rem + 1.6vw,2.375rem)/1.12 var(--fx-font-display);max-width:16em}
.gros p{max-width:32em}
.gros .pastille{left:clamp(24px,4vw,56px);bottom:-36px}
.entourage__cote{grid-column:8/13;display:grid;gap:var(--trame);grid-template-rows:auto auto}
.info{background:var(--fx-color-surface);padding:clamp(24px,3vw,40px)}
.info h3{font:500 1.375rem/1.2 var(--fx-font-display);margin-bottom:12px}
.info .i{font:300 4.5rem/.8 var(--fx-font-display);display:block;margin-bottom:12px}
.info p{font-size:1.0625rem;line-height:1.55}
.info p+p{margin-top:.8em}
.info--blanc{background:var(--fx-color-fond);border:1px solid var(--fx-color-bordure)}
@media (max-width:999px){.gros,.entourage__cote{grid-column:1/-1}.entourage__cote{margin-top:52px}}

/* formation */
.form-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:40px 8px;align-items:start;position:relative}
.sessions{grid-column:1/8;display:grid;gap:var(--trame)}
.session{display:grid;grid-template-columns:minmax(150px,200px) 1fr;gap:20px;background:var(--fx-color-surface);padding:24px}
.session time{font:300 clamp(1.75rem,1.2rem + 1.2vw,2.5rem)/1.05 var(--fx-font-display)}
.session time small{display:block;font:500 1rem/1.3 var(--fx-font-display);margin-top:6px}
.session h3{font:500 1.25rem/1.25 var(--fx-font-display)}
.sessions__sujets{background:var(--fx-color-fond);border:1px solid var(--fx-color-bordure);padding:24px}
.sessions__sujets h3{font:500 1.125rem/1.3 var(--fx-font-display);margin-bottom:8px}
.sessions__sujets ul{columns:2;column-gap:32px;font-size:1.0625rem;line-height:1.45}
.sessions__sujets li{margin-bottom:8px;break-inside:avoid}
.form-grid__cote{grid-column:9/13;display:grid;gap:24px}
.form-grid__cote .prose p{font-size:1.0625rem}
.qualiopi{background:#fff;border:1px solid var(--fx-color-bordure);padding:12px;width:fit-content}
.qualiopi img{width:150px;height:auto}
.recrute{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;background:var(--fx-color-texte);color:#fff;padding:24px;margin-top:var(--trame)}
.recrute strong{font:500 1.375rem/1.2 var(--fx-font-display);display:block}
.recrute a{color:#fff;font:700 1.0625rem var(--fx-font-display);padding:12px 0;display:inline-block}
.sessions{position:relative;margin-bottom:40px}
.sessions .pastille--abs{right:24px;bottom:-36px}
.gros ul{max-width:32em;border-top:1px solid var(--fx-color-texte)}
.gros li{padding:10px 0;border-bottom:1px solid var(--fx-color-texte);font-size:1.0625rem;line-height:1.45}
@media (max-width:999px){.sessions,.form-grid__cote{grid-column:1/-1}}
@media (max-width:599px){.session{grid-template-columns:1fr;gap:8px}.sessions__sujets ul{columns:1}}

/* agenda */
.agenda{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--trame)}
.evt{background:var(--fx-color-surface);padding:24px;display:flex;flex-direction:column;gap:16px;justify-content:space-between;min-height:300px}
.evt .date{font:300 clamp(2.25rem,1.5rem + 2vw,3.5rem)/1 var(--fx-font-display)}
.evt .date small{display:block;font:500 1rem/1.3 var(--fx-font-display);margin-top:8px;color:var(--fx-color-texte-secondaire)}
.evt h3{font:500 1.375rem/1.2 var(--fx-font-display);margin-bottom:8px}
.evt p{font-size:1.0625rem;line-height:1.5}
.evt--g{background:var(--fx-color-contraste)}
.evt--g .date small{color:var(--fx-color-texte)}
.agenda-suite{margin-top:24px;font-weight:700}
@media (max-width:899px){.agenda{grid-template-columns:1fr}.evt{min-height:0}}

/* contact */
.contact-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:56px 8px;align-items:start}
.formbloc{grid-column:1/7;position:relative;background:var(--fx-color-surface);padding:clamp(24px,4vw,48px);padding-bottom:clamp(88px,9vw,104px)}
.formbloc .pastille{right:clamp(24px,4vw,48px);bottom:-36px}
.champ{margin-bottom:24px}
.champ label{display:block;font:500 1rem/1.3 var(--fx-font-display);margin-bottom:6px}
.champ .aide{display:block;font-size:1rem;line-height:1.4;color:var(--fx-color-texte-secondaire);margin-bottom:6px}
.champ input,.champ select,.champ textarea{
  width:100%;min-height:52px;padding:12px 14px;border:1px solid var(--fx-color-texte-secondaire);border-radius:0;
  background:#fff;color:var(--fx-color-texte);font:400 1.125rem/1.4 var(--fx-font-body);
}
.champ textarea{min-height:160px;resize:vertical}
.urgence{font-size:1.0625rem;border-left:3px solid var(--fx-color-texte);padding-left:16px;margin-bottom:24px}
.confirmation{background:var(--fx-color-texte);color:#fff;padding:20px 24px;margin-bottom:24px;font-size:1.125rem}
.confirmation[hidden]{display:none}
.confirmation strong{font-family:var(--fx-font-display);font-weight:500;display:block;margin-bottom:4px}
.coordonnees{grid-column:8/13;display:grid;gap:24px}
.coordonnees h3{font:500 1.375rem/1.2 var(--fx-font-display);margin-bottom:12px}
.coordonnees li{padding:14px 0;border-top:1px solid var(--fx-color-bordure)}
.coordonnees li:last-child{border-bottom:1px solid var(--fx-color-bordure)}
.coordonnees li b{display:block;font:500 1.0625rem/1.3 var(--fx-font-display)}
.carte{border:0;width:100%;height:300px;display:block;filter:grayscale(1)}
.carte-legende{font-size:1rem;line-height:1.4;margin-top:8px;color:var(--fx-color-texte-secondaire)}
@media (max-width:999px){.formbloc,.coordonnees{grid-column:1/-1}}

/* pied de page */
.pied{background:var(--fx-color-contraste);color:var(--fx-color-texte);padding-block:56px 120px;margin-top:clamp(24px,4vw,56px)}
.pied a{color:var(--fx-color-texte);font-weight:700}
.pied__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:40px 8px}
.pied__id{grid-column:1/5}
.pied__id img{height:96px;width:auto;margin-bottom:20px;background:#fff}
.pied__id p{max-width:22em}
.pied__col{grid-column:span 2}
.pied__col h2{font:500 1rem/1.2 var(--fx-font-display);margin-bottom:12px;letter-spacing:.02em}
.pied__col li a{display:inline-block;padding:7px 0;font-weight:400}
.pied__liens{grid-column:span 2}
.pied__bas{margin-top:48px;padding-top:20px;border-top:3px solid var(--fx-color-texte);display:flex;flex-wrap:wrap;gap:8px 32px;font-size:1rem}
.pied__bas a{font-weight:400}
@media (max-width:999px){.pied__id{grid-column:1/-1}.pied__col{grid-column:span 4}}
@media (max-width:599px){.pied__col{grid-column:1/-1}}

/* lexique des sigles */
.lexique{position:fixed;right:16px;bottom:16px;z-index:60}
.lexique summary{
  list-style:none;cursor:pointer;width:56px;height:56px;background:var(--fx-color-surface);border:2px solid var(--fx-color-texte);
  display:flex;flex-direction:column;justify-content:space-between;padding:6px 7px;font:500 .8125rem/1 var(--fx-font-display);color:var(--fx-color-texte);
}
.lexique summary::-webkit-details-marker{display:none}
.lexique summary .i{font:300 1.5rem/1 var(--fx-font-display);text-align:right}
.lexique[open] summary{background:var(--fx-color-texte);color:#fff}
.lexique__panneau{position:absolute;right:0;bottom:calc(100% + 8px);width:min(380px,calc(100vw - 32px));max-height:calc(100svh - 130px);overflow:auto;background:var(--fx-color-surface);border:2px solid var(--fx-color-texte);padding:20px}
.lexique__panneau h2{font:500 1.125rem/1.2 var(--fx-font-display);margin-bottom:12px}
.lexique dl{display:grid;gap:12px;font-size:1rem;line-height:1.4}
.lexique dt{font:700 1rem/1.2 var(--fx-font-display);letter-spacing:.04em}
.lexique dd{margin:0}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
  .pastille:hover,.pastille:focus-visible{transform:none}
}
