:root{
  --bg:#ffffff;
  --text:#111827;
  --muted:#4b5563;
  --pink:#c2186b;
  --panel:#f6f7fb;
  --border:#e5e7eb;
  --shadow: 0 12px 30px rgba(0,0,0,.08);
}
@font-face {
  font-family: "Font Awesome 6 Brands";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

*{box-sizing:border-box}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
  position: relative;
  overflow-x: hidden;
}

/* Background triangles imbriqués (statique, lisible) */
body::before{
  content:"";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;

  /* On empile plein de triangles via des conic-gradient + masks */
  background:
    /* Cluster rose (grand) */
    conic-gradient(from 220deg at 18% 22%,
      rgba(232,48,138,.22) 0 60deg,
      rgba(255,255,255,0) 60deg 360deg),
    conic-gradient(from 220deg at 18% 22%,
      rgba(232,48,138,.14) 0 48deg,
      rgba(255,255,255,0) 48deg 360deg),
    conic-gradient(from 220deg at 18% 22%,
      rgba(255,190,220,.10) 0 40deg,
      rgba(255,255,255,0) 40deg 360deg),

    /* Cluster gris (grand) */
    conic-gradient(from 30deg at 78% 28%,
      rgba(255,255,255,.08) 0 55deg,
      rgba(255,255,255,0) 55deg 360deg),
    conic-gradient(from 30deg at 78% 28%,
      rgba(180,190,205,.08) 0 42deg,
      rgba(255,255,255,0) 42deg 360deg),
    conic-gradient(from 30deg at 78% 28%,
      rgba(120,135,155,.06) 0 34deg,
      rgba(255,255,255,0) 34deg 360deg),

    /* Petits triangles dispersés (rose) */
    conic-gradient(from 140deg at 62% 72%,
      rgba(232,48,138,.12) 0 30deg,
      rgba(255,255,255,0) 30deg 360deg),
    conic-gradient(from 140deg at 62% 72%,
      rgba(255,210,230,.08) 0 22deg,
      rgba(255,255,255,0) 22deg 360deg),

    conic-gradient(from 300deg at 30% 78%,
      rgba(232,48,138,.10) 0 26deg,
      rgba(255,255,255,0) 26deg 360deg),

    /* Petits triangles dispersés (gris) */
    conic-gradient(from 20deg at 86% 78%,
      rgba(255,255,255,.07) 0 28deg,
      rgba(255,255,255,0) 28deg 360deg),
    conic-gradient(from 20deg at 86% 78%,
      rgba(170,180,195,.06) 0 20deg,
      rgba(255,255,255,0) 20deg 360deg),

    conic-gradient(from 260deg at 12% 62%,
      rgba(255,255,255,.06) 0 24deg,
      rgba(255,255,255,0) 24deg 360deg),

    /* Voile global pour garder lisible */
    radial-gradient(1200px 700px at 50% 20%,
      rgba(0,0,0,.10),
      rgba(0,0,0,0) 60%),
    radial-gradient(1000px 800px at 40% 80%,
      rgba(232,48,138,.06),
      rgba(0,0,0,0) 65%);

  /* Mix doux : on garde le texte lisible */
  mix-blend-mode: normal;
  opacity: 1;

  /* Lissage */
  filter: saturate(1.05) contrast(1.02);
}

/* Option : si ton --bg est déjà très sombre et que tu veux encore + lisible */
@media (prefers-contrast: more){
  body::before{
    filter: saturate(1) contrast(1.06);
  }
}

a{color:var(--pink);text-decoration:none}
a:hover{text-decoration:underline}

.top{
  border-bottom:1px solid var(--border);
  background:#fff;
  position: relative;
  box-shadow: 0px 8px 9px 0px rgba(0, 0, 0, 0.25);
}

.top::before {
  content: " ";
  height: 305px;
  width: 290px;
  background: #fff;
  position: absolute;
  z-index: 0;
  transform: skew(9deg) rotate(-13deg);
  left: -190px;
  top: -200px;
  transition: all 0.3s ease;
}

.top .inner{max-width:1100px;margin:0 auto;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{font-weight:900}
.nav{display:flex;flex-wrap:wrap;gap:10px}
.nav a{padding:8px 10px;border-radius:12px;color:#fff;transition: all .5s ease;}
.nav a:hover{background: #c2186b}

.wrap{max-width:1100px;margin:0 auto;padding:18px}
.card{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:18px;
  box-shadow:var(--shadow);
  padding:16px;
}
.grid{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width: 900px){.grid{grid-template-columns:1fr 1fr}}

h1{font-size:22px;margin:0 0 10px;color: #c2186b;}
h2{font-size:18px;margin:0 0 10px;color: #c2186b;}

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:10px 12px;border-radius:12px;
  border:1px solid rgba(232,48,138,.35);
  background:rgba(232,48,138,.10);
  color:var(--pink);
  cursor:pointer;
  transition: all .5s ease;
}
.btn:hover{background:rgba(232,48,138,.14)}
.btn.secondary{border-color:var(--border);background:#fff;color:var(--text)}

.input, textarea, select{
  width:100%;
  padding:10px 12px;border-radius:12px;
  border:1px solid var(--border);
  background:#fff;
}
textarea{min-height:110px;resize:vertical}
label{display:block;margin:10px 0 6px;color:var(--muted);font-weight:700;font-size:13px}

.table{width:100%;border-collapse:collapse;margin-top:10px;overflow:hidden;border-radius:12px;background:#fff}
.table th,.table td{padding:10px;border-bottom:1px solid var(--border);vertical-align:top}
.table th{color:var(--muted);font-weight:800;text-align:left}
.badge{display:inline-flex;padding:4px 8px;border-radius:999px;border:1px solid var(--border);background:#fff;font-size:12px;color:var(--muted)}
.muted{color:var(--muted)}
/* Calendar */
.cal-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
}
.cal-title{font-weight:900;font-size:18px}
.cal-nav{display:flex;gap:8px;align-items:center}

.cal-grid{
  margin-top:12px;
  display:grid;
  grid-template-columns: repeat(7, 1fr);
  gap:10px;
}
.cal-dow{
  font-weight:900;color:var(--muted);
  font-size:12px; text-transform:uppercase;
  letter-spacing:.06em;
}
.cal-cell{
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  min-height:110px;
  padding:10px;
  position:relative;
  overflow:hidden;
}
.cal-cell.out{opacity:.45;background:transparent}
.cal-day{
  font-weight:900;
  font-size:13px;
  color:var(--muted);
  margin-bottom:8px;
}
.cal-events{display:flex;flex-direction:column;gap:6px}
.evt{
  border-radius:12px;
  padding:8px 10px;
  color:#fff;
  cursor:pointer;
  font-weight:800;
  font-size:13px;
  line-height:1.2;
  border:1px solid rgba(0,0,0,.06);
  box-shadow: 0 8px 18px rgba(0,0,0,.07);
}
.evt small{display:block;font-weight:700;opacity:.9;margin-top:3px}

/* Public modal */
.pmodal_bd{
  position:fixed; inset:0;
  background:rgba(0,0,0,.45);
  display:none; align-items:center; justify-content:center;
  padding:18px; z-index:9999;
}
.pmodal{
  width:min(720px, 100%);
  background:#fff;
  border:1px solid var(--border);
  border-radius:18px;
  box-shadow: var(--shadow);
  overflow:hidden;
}
.pmodal header{
  padding:14px 16px;
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.pmodal .title{font-weight:900}
.pmodal .x{
  border:none;background:transparent;cursor:pointer;
  font-size:18px;color:var(--muted);
}
.pmodal .x:hover{color:var(--text)}
.pmodal .body{padding:16px}
.pmodal footer{
  padding:14px 16px;
  border-top:1px solid var(--border);
  display:flex;justify-content:flex-end;
}
/* Masonry gallery */
.masonry{
  margin-top:14px;
}
.m-item{
  width: calc(33.333% - 10px);
  margin-bottom: 10px;
}
@media(max-width: 980px){ .m-item{ width: calc(50% - 10px); } }
@media(max-width: 640px){ .m-item{ width: 100%; } }

.m-item a{display:block}
.m-item img{
  width:100%;
  height:auto;
  display:block;
  border-radius:16px;
  border:1px solid var(--border);
  box-shadow: var(--shadow);
  background:#fff;
}
/* Expo list full page */
.expo-list{display:flex;flex-direction:column;gap:12px}
.expo-item{
  text-align:left;
  border:1px solid var(--border);
  background:#fff;
  border-radius:18px;
  padding:14px;
  cursor:pointer;
  transition: .15s transform, .15s border-color, .15s box-shadow;
}
.expo-item:hover{
  transform: translateY(-1px);
  border-color: rgba(232,48,138,.40);
  box-shadow: var(--shadow);
}
.expo-title{font-weight:900;font-size:16px}

/* PDF thumbnails gallery (full page) */
.pdf-masonry{
  margin-top:14px;
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:12px;
}
@media(max-width: 980px){ .pdf-masonry{grid-template-columns: repeat(2, minmax(0, 1fr));} }
@media(max-width: 640px){ .pdf-masonry{grid-template-columns: 1fr;} }

.pdf-card{
  border:1px solid var(--border);
  background:#fff;
  border-radius:18px;
  overflow:hidden;
  box-shadow: var(--shadow);
}

.pdf-thumb{
  position:relative;
  background:#f3f4f6;
  cursor:pointer;
  padding:10px;
}
.pdf-thumb canvas{
  width:100%;
  height:auto;        /* ratio exact via canvas size */
  display:block;
  border-radius:14px;
  border:1px solid var(--border);
  background:#fff;
}
.pdf-hover{
  position:absolute; inset:0;
  display:flex;align-items:center;justify-content:center;
  color:#fff;
  font-weight:900;
  border-radius:18px;
  background:rgba(0,0,0,.0);
  opacity:0;
  transition:.15s opacity, .15s background;
}
.pdf-thumb:hover .pdf-hover{
  opacity:1;
  background:rgba(0,0,0,.25);
}

.pdf-info{padding:12px}
.pdf-label{font-weight:900}
.pdf-thumb{
  position:relative;
  cursor:pointer;
}

.pdf-thumb canvas{
  width:100%;
  height:auto;
  display:block;
  border-radius:14px;
  border:1px solid var(--border);
  background:#fff;
}

.pdf-hover{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  background:rgba(0,0,0,.0);
  color:#fff;
  font-weight:900;
  opacity:0;
  transition:.15s opacity, .15s background;
  pointer-events:none; /* IMPORTANT: n’empêche pas le clic */
}

.pdf-thumb:hover .pdf-hover{
  opacity:1;
  background:rgba(0,0,0,.25);
}
/* ===== HOME (index) ===== */
.home-hero{
  padding:18px;
}
.home-hero__inner{
  max-width:1100px;
  margin:0 auto;
  display:grid;
  grid-template-columns: 1.25fr .75fr;
  gap:14px;
}
@media(max-width: 900px){
  .home-hero__inner{ grid-template-columns: 1fr; }
}

.home-hero__text h1{
  margin:0 0 10px;
  font-size:28px;
  letter-spacing:-.02em;
}
.home-lead{
  margin:0;
  font-size:16px;
  line-height:1.55;
  color:var(--text);
}
.home-sub{
  margin:10px 0 0;
  color:var(--muted);
  line-height:1.5;
}

.home-cta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}

.home-kpis{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:10px;
  margin-top:14px;
}
@media(max-width: 520px){
  .home-kpis{ grid-template-columns: 1fr; }
}
.kpi{
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  padding:12px;
}
.kpi__n{
  font-weight:900;
  font-size:20px;
}
.kpi__t{
  margin-top:4px;
  color:var(--muted);
  font-weight:700;
  font-size:12px;
}

.home-hero__side{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.home-mini .mini-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
  flex-wrap:wrap;
}
.mini-title{
  font-weight:900;
  font-size:15px;
  color: #c2186b;
}
.home-lead b {
  color: #c2186b;
}
.home-editorial b {
  color: #c2186b;
}
.black {
  color: #000000 !important;
}

/* =========================
   Mini-calendrier — Hover + Today
   ========================= */

.mini-cal{
  display:grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap:8px;
}

.mini-day{
  position:relative;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
  color:#fff;
  border-radius:12px;
  padding:10px 8px;
  cursor:pointer;
  transition:
    transform .14s ease,
    background .14s ease,
    border-color .14s ease,
    box-shadow .14s ease;
  outline:none;
}

.mini-day .d{
  font-weight:800;
  font-size:13px;
  opacity:.95;
}

/* Point (événement) */
.mini-day .dot{
  position:absolute;
  right:10px;
  bottom:10px;
  width:8px;
  height:8px;
  border-radius:999px;
  box-shadow:0 0 0 3px rgba(0,0,0,.12);
}

/* Effet hover (micro animation) */
.mini-day:hover{
  transform: translateY(-2px);
  background:rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.22);
  box-shadow: 0 10px 22px rgba(0,0,0,.18);
}

/* Petite animation légère au hover (si tu veux un "souffle") */
.mini-day:hover .dot{
  animation: dot-pulse .9s ease-in-out infinite;
}

@keyframes dot-pulse{
  0%,100%{ transform: scale(1); }
  50%{ transform: scale(1.25); }
}

/* Jours hors mois */
.mini-day.out{
  opacity:.45;
}

/* =========================
   Aujourd'hui = carré rose
   ========================= */
.mini-day.today{
  border-color: rgba(232,48,138,.75);
  box-shadow: 0 0 0 2px rgba(232,48,138,.25) inset;
}

.mini-day.today .d{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  border-radius:8px;            /* carré arrondi */
  background:#c2186b;           /* rose */
  color:#fff;
  box-shadow: 0 8px 18px rgba(232,48,138,.35);
}

/* Today + hover (un peu plus vivant) */
.mini-day.today:hover{
  transform: translateY(-2px) scale(1.01);
  box-shadow:
    0 10px 22px rgba(0,0,0,.18),
    0 0 0 2px rgba(232,48,138,.18) inset;
}

/* Accessibilité clavier */
.mini-day:focus-visible{
  outline: 2px solid rgba(255,255,255,.75);
  outline-offset: 2px;
}
/*------------*/

.mini-cal{
  margin-top:12px;
  display:grid;
  grid-template-columns: repeat(7, minmax(0,1fr));
  gap:8px;
}
.mini-dow{
  font-size:11px;
  font-weight:900;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.06em;
}

.mini-day{
  appearance:none;
  border:1px solid var(--border);
  background:#fff;
  border-radius:14px;
  padding:10px 8px;
  min-height:52px;
  cursor:pointer;
  position:relative;
  text-align:left;
  transition: transform .05s ease, box-shadow .15s ease, border-color .15s ease;
}
.mini-day:hover{
  border-color: rgba(232,48,138,.35);
  box-shadow: 0 10px 22px rgba(0,0,0,.08);
}
.mini-day:active{ transform: translateY(1px); }
.mini-day.out{
  opacity:.45;
  background:transparent;
}
.mini-day .d{
  font-weight:900;
  color:var(--muted);
  font-size:13px;
}
.mini-day .dot{
  position:absolute;
  right:10px;
  top:12px;
  width:10px;
  height:10px;
  border-radius:999px;
  box-shadow: 0 8px 16px rgba(0,0,0,.10);
}

.home-section{
  max-width:1100px;
  margin:0 auto 18px;
}
.home-section__head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.home-swiper .swiper-button-prev,
.home-swiper .swiper-button-next{
  color: var(--pink);
}
.home-swiper .swiper-pagination-bullet-active{
  background: var(--pink);
}

.home-slide{
  width:100%;
  border:1px solid var(--border);
  background:#fff;
  border-radius:16px;
  overflow:hidden;
  padding:0;
  cursor:pointer;
  display:block;
  text-align:left;
  box-shadow: var(--shadow);
}
.home-slide img{
  width:100%;
  height:220px;
  object-fit:cover;
  display:block;
}
@media(max-width:520px){
  .home-slide img{ height:180px; }
}
.home-slide__cap{
  padding:12px;
}
.home-slide__t{
  font-weight:900;
  color:var(--text);
}
.home-slide__d{
  margin-top:6px;
  color:var(--muted);
  font-size:13px;
}
.adheos-footer{
  position:relative;
  background:#c2186b;
  color:#fff;
  padding:42px 18px 18px;
  overflow:hidden;
}

/* Triangle animé central (corrigé : plus de conflit sur filter) */
.adheos-footer::before{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:110%;
  height:220%;
  pointer-events:none;

  /* Base : bande lumineuse */
  background: linear-gradient(
    120deg,
    rgba(255,255,255,0) 10%,
    rgba(255,255,255,.28) 45%,
    rgba(255,170,205,.10) 55%,
    rgba(255,255,255,0) 100%
  );
  background-size: 220% 220%;
  background-position: 0% 50%;

  /* Triangle centré, 3 côtés */
  clip-path: polygon(35% 31%, 67% 58%, 23% 72%);

  /* Transform de base */
  transform: translate(-50%, -50%) skewX(-45deg) rotate(0deg);

  /* Perf */
  will-change: transform, clip-path, filter, background-position, opacity;

  /* Animations (sans triangle-shadow ici) */
  animation:
    triangle-morph 41s ease-in-out infinite alternate,
    triangle-tintDepth 53s ease-in-out infinite alternate,
    triangle-rotate 59s linear infinite,
    triangle-light 17s ease-in-out infinite;
}

/* Ombre séparée (aucun conflit avec filter du ::before) */
.adheos-footer::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:110%;
  height:220%;
  pointer-events:none;

  /* même triangle, même transform */
  clip-path: polygon(35% 31%, 67% 58%, 23% 72%);
  transform: translate(-50%, -50%) skewX(-45deg) rotate(0deg);

  /* on ne dessine rien : on n’anime que le drop-shadow */
  background: transparent;
  opacity: 1;

  /* Perf */
  will-change: transform, clip-path, filter;

  /* On suit la déformation + la rotation, et on anime l’ombre */
  animation:
    triangle-morph 41s ease-in-out infinite alternate,
    triangle-rotate 59s linear infinite,
    triangle-shadow 97s ease-in-out infinite;
}

/* 1) Déformation lente des angles */
@keyframes triangle-morph{
  0%   { clip-path: polygon(35% 31%, 67% 58%, 23% 72%); }
  33%  { clip-path: polygon(38% 28%, 65% 60%, 26% 74%); }
  66%  { clip-path: polygon(33% 34%, 69% 55%, 22% 70%); }
  100% { clip-path: polygon(36% 30%, 66% 59%, 25% 73%); }
}

@keyframes triangle-morphtop{
  0%{
    clip-path: polygon(
      46% 20%,
      70% 68%,
      24% 74%
    );
  }
  33%{
    clip-path: polygon(
      44% 24%,
      68% 70%,
      26% 78%
    );
  }
  66%{
    clip-path: polygon(
      48% 16%,
      72% 64%,
      22% 72%
    );
  }
  100%{
    clip-path: polygon(
      46% 22%,
      70% 70%,
      25% 76%
    );
  }
}


/* 2) Reflet lumineux qui traverse */
@keyframes triangle-light{
  0%   { background-position: 0% 50%;   opacity:.48; }
  50%  { background-position: 100% 50%; opacity:.75; }
  100% { background-position: 0% 50%;   opacity:.48; }
}

/* 3) Teinte + “profondeur” (UN SEUL filter, donc pas de conflit) */
@keyframes triangle-tintDepth{
  0%   { filter: hue-rotate(0deg)   brightness(1)    saturate(1)    blur(0px); }
  40%  { filter: hue-rotate(10deg)  brightness(1.08) saturate(1.12) blur(.8px); }
  70%  { filter: hue-rotate(-8deg)  brightness(1.02) saturate(1.06) blur(.3px); }
  100% { filter: hue-rotate(14deg)  brightness(.98)  saturate(1.10) blur(0px); }
}

/* 4) Rotation très lente */
@keyframes triangle-rotate{
  from { transform: translate(-50%, -50%) skewX(-45deg) rotate(0deg); }
  to   { transform: translate(-50%, -50%) skewX(-45deg) rotate(360deg); }
}

/* 5) Ombre (drop-shadow) animée — uniquement sur ::after */
@keyframes triangle-shadow{
  0%   { filter: drop-shadow(0 18px 28px rgba(0,0,0,.35)); }
  25%  { filter: drop-shadow(14px 22px 36px rgba(0,0,0,.42)); }
  50%  { filter: drop-shadow(-18px 26px 40px rgba(0,0,0,.45)); }
  75%  { filter: drop-shadow(12px -20px 34px rgba(0,0,0,.38)); }
  100% { filter: drop-shadow(0 18px 28px rgba(0,0,0,.35)); }
}

/* Optionnel : si tu veux être sûr que l'ombre reste derrière le contenu */
.adheos-footer::before,
.adheos-footer::after{ z-index: 0; }
.adheos-footer__inner{ position:relative; z-index: 1; }



.adheos-footer__inner{
  position:relative;
  max-width:1200px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:22px;
}

.adheos-footer__top{
  display:flex;
  align-items:flex-start;
  gap:26px;
}

.adheos-footer__brand{
  flex:0 0 auto;
  display:flex;
  align-items:flex-start;
}

.adheos-footer__logo{
  width:120px;
  height:auto;
  display:block;
  filter: drop-shadow(0 10px 18px rgba(0,0,0,.18));
}

.adheos-footer__centers{
  flex:1;
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:18px 24px;
  align-items:start;
}

.center__name{
  font-weight:900;
  letter-spacing:.3px;
  font-size:14px;
  margin-bottom:6px;
}

.center__addr{
  font-size:13px;
  line-height:1.35;
  opacity:.95;
}

.adheos-footer__bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.25);
}

.adheos-footer__legal{
  font-size:13px;
  opacity:.95;
  transition: all .5s ease;
}

.adheos-footer__legal a{
  color:#fff;
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.35);
  transition: all .5s ease;
}
.adheos-footer__legal a:hover{
  border-bottom-color:#fff;
}

.adheos-footer__social{
  display:flex;
  align-items:center;
  gap:10px;
}

.adheos-footer__social-label{
  font-size:13px;
  font-weight:700;
  margin-right:6px;
  opacity:.95;
}

.soc{
  width:34px;
  height:34px;
  border-radius:10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  text-decoration:none;
  background:rgba(0,0,0,.20);
  border:1px solid rgba(255,255,255,.18);
  transition:transform .5s ease, background .5s ease, border-color .5s ease;
  
}
.soc:hover{
  transform: translateY(-1px);
  background:rgba(0,0,0,.28);
  border-color:rgba(255,255,255,.35);
}
.soc i{ font-size:16px; }

/* Responsive */
@media (max-width: 980px){
  .adheos-footer__top{ flex-direction:column; }
  .adheos-footer__centers{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .adheos-footer__logo{ width:110px; }
}
@media (max-width: 520px){
  .adheos-footer{ padding-top:34px; }
  .adheos-footer__centers{ grid-template-columns: 1fr; }
  .adheos-footer__bottom{ align-items:flex-start; }
}
.footer-newsletter{
  max-width:320px;
}

.footer-newsletter__title{
  font-weight:900;
  font-size:15px;
  margin-bottom:6px;
  letter-spacing:.3px;
}

.footer-newsletter__desc{
  font-size:13px;
  line-height:1.4;
  opacity:.95;
  margin:0 0 10px;
}

.footer-newsletter__form{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.footer-newsletter__input{
  width:100%;
  padding:10px 12px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.15);
  color:#fff;
  font-size:14px;
  outline:none;
}

.footer-newsletter__input::placeholder{
  color:rgba(255,255,255,.85);
}

.footer-newsletter__input:focus{
  background:rgba(255,255,255,.22);
  border-color:#fff;
}

.footer-newsletter__btn{
  align-self:flex-start;
  padding:9px 16px;
  border-radius:10px;
  background:#111;
  color:#fff;
  font-size:14px;
  font-weight:700;
  border:none;
  cursor:pointer;
  transition:transform .12s ease, background .12s ease;
}

.footer-newsletter__btn:hover{
  background:#000;
  transform:translateY(-1px);
}

/* accessibilité */
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  border:0;
}

/* responsive */
@media (max-width:520px){
  .footer-newsletter{
    max-width:100%;
  }
}
.skip-link{
  position:absolute;
  left:-9999px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}
.skip-link:focus{
  left:16px;
  top:16px;
  width:auto;
  height:auto;
  padding:10px 14px;
  z-index:9999;
  background:#000;
  color:#fff;
  border-radius:8px;
}
