/* Fédération Ivoirienne de Tang Soo Do — UI system (premium, minimal) */

:root{
  /* Palette : blanc (fond / clarté), orange (chaleur, action), vert (identité, équilibre) */
  --white: #ffffff;
  --bg: #f7faf8;
  --bg-2: #ffffff;
  --surface: rgba(255,255,255,.85);
  --surface-2: rgba(255,255,255,.98);
  --border: rgba(20,40,30,.1);
  --ink: #0f172a;
  --orange: #f08a1a;
  --orange-bright: #fb923c;
  --green: #2f8f3a;
  --green-deep: #267d30;
  --green-soft: #3cb371;
  --text: var(--ink);
  --muted: rgba(15,23,42,.70);
  --muted-2: rgba(15,23,42,.52);
  --accent: var(--orange);
  --accent-2: var(--green);
  --accent-nav: var(--green);
  --gold: #64748b;
  --shadow: 0 20px 60px rgba(15,40,25,.08);
  --shadow-soft: 0 12px 30px rgba(15,40,25,.06);
  --radius: 18px;
  --radius-sm: 12px;
  --blur: 14px;
}

html{scroll-behavior:smooth;}
body{
  font-family: "Inter", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:
    radial-gradient(1100px 640px at 10% 4%, rgba(240,138,26,.08), transparent 56%),
    radial-gradient(920px 520px at 92% 8%, rgba(47,143,58,.07), transparent 58%),
    radial-gradient(800px 480px at 50% 0%, rgba(255,255,255,.95), transparent 45%),
    linear-gradient(180deg, var(--bg-2), var(--bg) 42%, #f4f7f5);
  color: var(--text);
  letter-spacing: .1px;
}

/* Ultra clean (light) mood */
body.ultra-clean{
  background: linear-gradient(180deg, var(--bg-2), var(--bg) 50%, var(--bg-2));
}

/* Modern impact (light) */
body.modern-impact{
  background:
    radial-gradient(900px 520px at 10% 5%, rgba(240,138,26,.09), transparent 62%),
    radial-gradient(880px 500px at 90% 12%, rgba(47,143,58,.08), transparent 62%),
    linear-gradient(180deg, var(--bg-2), var(--bg) 48%, #fafcfa);
}

/* (removed) home-only overlay */

/* Home minimal editorial (no big blocks) */
body.home-minimal .about3,
body.home-minimal .news2-feature,
body.home-minimal .news2-list,
body.home-minimal .actions3-card,
body.home-minimal .brief2-point{
  background: transparent !important;
  box-shadow: none !important;
}
body.home-minimal .about3{
  border: 0;
  border-radius: 0;
}
body.home-minimal .about3-inner{
  padding: 0;
  gap: clamp(1rem, 3vw, 2.4rem);
  align-items: center;
}
body.home-minimal .about3-media{
  border: 0;
  border-radius: 26px;
  overflow: hidden;
  box-shadow: 0 24px 80px rgba(28,36,48,.10);
  background: rgba(255,255,255,.20);
}
body.home-minimal .about3-media img{
  padding: 0;
  object-fit: cover;
  object-position: center 28%;
  filter: contrast(1.02) saturate(1.03);
}
body.home-minimal .about3-metrics{
  grid-template-columns: repeat(3, max-content);
  gap: .55rem;
  margin-top: .85rem;
}
body.home-minimal .about3-metric{
  border: 1px solid rgba(17,24,39,.12);
  border-radius: 999px;
  padding: .45rem .7rem;
  display:flex;
  align-items: baseline;
  gap: .4rem;
}
body.home-minimal .about3-metric b{
  font-size: 1.15rem;
  letter-spacing: .6px;
}
body.home-minimal .about3-metric span{
  margin-top: 0;
  font-size: .9rem;
}

body.home-minimal .news2{
  grid-template-columns: 1.12fr .88fr;
  gap: clamp(.9rem, 2.5vw, 1.3rem);
}
body.home-minimal .news2-feature{
  border: 0;
  padding: 0;
}
body.home-minimal .news2-media{
  border-radius: 26px;
  overflow: hidden;
  border: 1px solid rgba(17,24,39,.10);
  box-shadow: 0 22px 70px rgba(28,36,48,.10);
  height: clamp(220px, 26vw, 320px);
}
body.home-minimal .news2-top,
body.home-minimal .news2-title,
body.home-minimal .news2-excerpt,
body.home-minimal .news2-cta{
  padding-left: 0;
  padding-right: 0;
}
body.home-minimal .news2-title{
  margin-top: .85rem;
}

body.home-minimal .news2-list{
  border: 0;
  padding: 0;
}
body.home-minimal .news2-list::before{
  left: 10px;
  top: 8px;
  bottom: 8px;
  opacity: .7;
}
body.home-minimal .news2-item{
  padding: .75rem .2rem;
  border-radius: 14px;
}
body.home-minimal .news2-item:hover{
  background: rgba(255,255,255,.55);
}

body.home-minimal .actions3{
  grid-template-columns: 1fr;
  gap: .6rem;
}
body.home-minimal .actions3-card{
  border: 1px solid rgba(17,24,39,.12);
  border-radius: 18px;
  padding: .85rem .9rem;
  display:grid;
  grid-template-columns: 44px 1fr auto;
  align-items: center;
  gap: .85rem;
}
body.home-minimal .actions3-title{ margin: 0; }
body.home-minimal .actions3-text{ margin: 0; }
body.home-minimal .actions3-cta{
  margin-top: 0;
  justify-self: end;
}

@media (max-width: 992px){
  body.home-minimal .about3-metrics{ grid-template-columns: 1fr; }
  body.home-minimal .actions3-card{
    grid-template-columns: 44px 1fr;
  }
  body.home-minimal .actions3-cta{
    grid-column: 1 / -1;
    justify-self: start;
    margin-top: .4rem;
  }
  body.home-minimal .news2{ grid-template-columns: 1fr; }
  body.home-minimal .news2-list{ margin-top: .6rem; }
  body.home-minimal .news2-list::before{ left: 12px; }
}
body.modern-impact .glass{
  border-radius: 22px;
  box-shadow: 0 18px 55px rgba(28,36,48,.10);
}
body.modern-impact .divider{
  background: linear-gradient(90deg, transparent, rgba(240,138,26,.22), rgba(47,143,58,.16), transparent);
}

/* Typography */
.display-katana{
  font-family: "Oswald", "Inter", system-ui, sans-serif;
  letter-spacing: .6px;
  text-transform: uppercase;
}
.text-muted-2{ color: var(--muted-2) !important; }
.lead-tight{ line-height: 1.55; }

/* Layout helpers */
.section{
  padding: 86px 0;
  position: relative;
}
@media (max-width: 768px){
  .section{ padding: 68px 0; }
}
/* Global responsiveness guards */
html, body{
  max-width: 100%;
  overflow-x: hidden;
}
img, svg, video, canvas{
  max-width: 100%;
  height: auto;
}
.container, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl{
  padding-left: max(var(--bs-gutter-x, .75rem), 1rem);
  padding-right: max(var(--bs-gutter-x, .75rem), 1rem);
}
/* Prevent long strings (emails/urls/phones) from breaking layout */
.measure, .glass, .footer, .navbar, .hero, .section{
  overflow-wrap: anywhere;
}
main section[id]{
  scroll-margin-top: 96px;
}
@media (max-width: 992px){
  main section[id]{ scroll-margin-top: 88px; }
}
.container-xxl{ max-width: 1220px; }

/* Editorial rhythm */
.measure{ max-width: 62ch; }
.measure-sm{ max-width: 52ch; }
.balance{ text-wrap: balance; }
.nowrap{ white-space: nowrap; }

/* Type scale */
.h1-premium{
  font-size: clamp(2.0rem, 3.1vw, 3.6rem);
  line-height: 1.06;
}
.h2-premium{
  font-size: clamp(1.55rem, 2.1vw, 2.35rem);
  line-height: 1.15;
}
.subhead{
  font-size: 1.05rem;
  color: var(--muted);
  line-height: 1.6;
}
.kicker{
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .78rem;
  font-weight: 800;
}
.kicker-accent{
  position: relative;
  padding-left: .85rem;
}
.kicker-accent::before{
  content:"";
  position:absolute;
  left: 0;
  top: .55em;
  width: .42rem;
  height: .42rem;
  border-radius: 999px;
  background: var(--accent);
  box-shadow: 0 0 0 8px rgba(240,138,26,.14);
}

body.modern-impact .display-katana{
  letter-spacing: .9px;
}
body.modern-impact .h2-premium{
  letter-spacing: .7px;
}

/* Glass surfaces */
.glass{
  background: linear-gradient(180deg, var(--surface-2), var(--surface));
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(var(--blur));
  box-shadow: var(--shadow-soft);
}
.glass-hover{
  transition: transform .35s cubic-bezier(.2,.8,.2,1), border-color .35s ease, background .35s ease;
}
.glass-hover:hover{
  transform: translateY(-4px);
  border-color: rgba(60,70,85,.22);
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.72));
}

/* Navbar */
.navbar-premium{
  transition: background .35s ease, box-shadow .35s ease, border-color .35s ease;
  border-bottom: 1px solid rgba(60,70,85,.14);
}
.navbar-premium:not(.navbar-scrolled){
  /* Par défaut (pages internes) : fond clair pour rester lisible sur les hero. */
  background: rgba(255,255,255,.82);
  backdrop-filter: blur(14px);
  border-color: rgba(10,12,18,.10);
}
.navbar-premium.navbar-scrolled{
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(16px);
  box-shadow: 0 16px 48px rgba(10,12,18,.08);
  border-color: rgba(10,12,18,.1);
}
.brandmark{
  width: 44px; height: 44px;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  display: inline-flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.brandmark img{ width: 52px; height: 52px; object-fit: cover; transform: scale(1.05); }
@media (max-width: 576px){
  .brandmark{ width: 40px; height: 40px; }
  .brandmark img{ width: 46px; height: 46px; }
  .navbar-brand .text-muted-2{ display:none; }
  .nav-link{ padding: .5rem .6rem !important; }
}
.nav-link{
  color: rgba(46,54,66,.88) !important;
  font-weight: 500;
  letter-spacing: .2px;
  padding: .55rem .75rem !important;
}
.nav-link:hover, .nav-link:focus{ color: rgba(46,54,66,.98) !important; }
.nav-link.active{
  color: rgba(46,54,66,.98) !important;
  position: relative;
}

/* Accueil (hero vidéo) : liens blancs uniquement sur la page d'accueil */
body.home5 .navbar-premium:not(.navbar-scrolled){
  background: transparent;
  backdrop-filter: none;
  border-color: rgba(255,255,255,.14);
}
body.home5 .navbar-premium:not(.navbar-scrolled) .nav-link{
  color: rgba(255,255,255,.94) !important;
  text-shadow: 0 2px 10px rgba(0,0,0,.35);
}
body.home5 .navbar-premium:not(.navbar-scrolled) .nav-link:hover,
body.home5 .navbar-premium:not(.navbar-scrolled) .nav-link:focus{
  color: #fff !important;
}
body.home5 .navbar-premium:not(.navbar-scrolled) .nav-link::after{
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.92), transparent);
}
body.home5 .navbar-premium:not(.navbar-scrolled) .nav-link.active{
  color: #fff !important;
}
body.home5 .navbar-premium:not(.navbar-scrolled) .navbar-brand .display-katana,
body.home5 .navbar-premium:not(.navbar-scrolled) .navbar-brand .text-muted-2{
  color: rgba(255,255,255,.95) !important;
  text-shadow: 0 2px 10px rgba(0,0,0,.35);
}
body.home5 .navbar-premium:not(.navbar-scrolled) .navbar-toggler{
  border-color: rgba(255,255,255,.35);
}
body.home5 .navbar-premium:not(.navbar-scrolled) .navbar-toggler-icon{
  filter: invert(1) brightness(2);
}

/* Underline micro-interaction */
.nav-link{
  position: relative;
}
.nav-link::after{
  content:"";
  position:absolute;
  left: .75rem;
  right: .75rem;
  bottom: .18rem;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  opacity: 0;
  transform: translateY(3px);
  transition: opacity .25s ease, transform .25s ease;
}
.nav-link:hover::after,
.nav-link:focus::after{
  opacity: .65;
  transform: translateY(0);
}
.nav-link.active::after{
  opacity: .95;
  transform: translateY(0);
  background: linear-gradient(90deg, transparent, var(--accent-2), transparent);
}

/* Buttons */
.btn-premium{
  border-radius: 999px;
  padding: .85rem 1.15rem;
  font-weight: 600;
  letter-spacing: .2px;
  border: 1px solid rgba(17,24,39,.20);
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.72));
  color: rgba(46,54,66,.92);
  box-shadow: 0 18px 40px rgba(28,36,48,.10);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background .25s ease;
}

body.modern-impact .btn-premium{
  border-color: rgba(60,70,85,.22);
}
body.modern-impact .btn-accent{
  box-shadow: 0 22px 64px rgba(240,138,26,.24), 0 12px 36px rgba(47,143,58,.14);
}
body.modern-impact .btn-accent:hover{
  box-shadow: 0 28px 78px rgba(240,138,26,.28), 0 14px 40px rgba(47,143,58,.18);
}
.btn-premium:hover{
  transform: translateY(-1px);
  border-color: rgba(240,138,26,.28);
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.76));
  color: rgba(46,54,66,.98);
}
.btn-accent{
  border-radius: 999px;
  padding: .85rem 1.15rem;
  font-weight: 700;
  border: 0;
  background: linear-gradient(135deg, var(--orange-bright) 0%, var(--orange) 42%, var(--green) 100%);
  color: #fff;
  box-shadow: 0 20px 52px rgba(240,138,26,.26);
  transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}
.btn-accent:hover{
  transform: translateY(-1px);
  filter: brightness(1.03);
  box-shadow: 0 26px 62px rgba(240,138,26,.3), 0 8px 28px rgba(47,143,58,.2);
  color:#fff;
}
.btn-outline-light-soft{
  border-radius: 999px;
  padding: .85rem 1.15rem;
  font-weight: 650;
  border: 1px solid rgba(60,70,85,.18);
  background: transparent;
  color: rgba(46,54,66,.86);
  transition: background .25s ease, border-color .25s ease, transform .25s ease;
}
.btn-outline-light-soft:hover{
  background: rgba(46,54,66,.05);
  border-color: rgba(47,143,58,.28);
  color: rgba(46,54,66,.98);
  transform: translateY(-1px);
}

/* Hero */
.hero{
  min-height: 100vh;
  display:flex;
  align-items:center;
  position: relative;
  overflow:hidden;
  color: var(--text);
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(860px 520px at 16% 16%, rgba(240,138,26,.11), transparent 62%),
    radial-gradient(920px 560px at 84% 20%, rgba(47,143,58,.1), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(248,250,249,.98));
  z-index:1;
  pointer-events:none;
}
.hero-media{
  position:absolute; inset:-2px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.2), rgba(247,248,250,.9)),
    url("../img/hero-dojang.svg");
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
  filter: saturate(1.02) contrast(1.02) brightness(1.06);
  z-index:0;
}
.hero-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit: cover;
  object-position: center;
  z-index:0;
}
.hero-kicker{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  padding: .4rem .75rem;
  border-radius: 999px;
  border: 1px solid rgba(60,70,85,.18);
  background: rgba(255,255,255,.62);
  color: rgba(46,54,66,.78);
  font-weight: 600;
}
.dot-accent{
  width: 8px; height: 8px; border-radius: 999px;
  background: var(--accent);
  box-shadow: 0 0 0 6px rgba(240,138,26,.16);
}
.hero-title{
  font-size: clamp(2.1rem, 3.6vw, 4.25rem);
  line-height: 1.05;
  margin: .8rem 0 1rem;
}
.hero-sub{
  max-width: 56ch;
  color: rgba(46,54,66,.72);
  font-size: 1.05rem;
}

/* Hero simple (option A) */
.hero.hero-clean{
  min-height: 74vh;
  padding-top: 96px;
  align-items: flex-start;
}

/* Hero impact (option A modern impact) */
.hero.hero-impact{
  min-height: 78vh;
  padding-top: 110px;
  align-items: flex-start;
}
.hero.hero-impact::before{
  background:
    radial-gradient(980px 560px at 10% 6%, rgba(240,138,26,.09), transparent 62%),
    radial-gradient(980px 560px at 90% 12%, rgba(47,143,58,.1), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(247,248,250,.99));
}
.hero.hero-image-only::before{
  background:
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(247,248,250,.32));
}
.hero.hero-image-only .hero-media{
  filter: saturate(1.02) contrast(1.02) brightness(1.02);
}
.hero.hero-impact .hero-media{
  display:block;
}
.hero.hero-impact .hero-title{
  letter-spacing: 1.2px;
  line-height: 1.02;
}
.hero.hero-impact .hero-sub{
  font-size: 1.08rem;
}
.impact-panel{
  border-radius: 26px;
  border: 1px solid rgba(60,70,85,.18);
  background:
    radial-gradient(800px 300px at 15% 0%, rgba(240,138,26,.12), transparent 60%),
    radial-gradient(800px 300px at 90% 20%, rgba(47,143,58,.10), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.72));
  box-shadow: 0 24px 70px rgba(28,36,48,.10);
  overflow:hidden;
  position: relative;
}
.impact-panel::after{
  content:"";
  position:absolute;
  inset: -120px -80px auto auto;
  width: 260px;
  height: 260px;
  background: conic-gradient(from 180deg, rgba(240,138,26,.22), rgba(47,143,58,.16), rgba(240,138,26,.10));
  border-radius: 999px;
  filter: blur(0px);
  opacity: .55;
}
.impact-panel .content{ position: relative; z-index: 1; }
.hero.hero-clean::before{
  background:
    radial-gradient(900px 520px at 14% 8%, rgba(240,138,26,.08), transparent 62%),
    radial-gradient(920px 560px at 88% 16%, rgba(47,143,58,.09), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(247,248,250,.98));
}
.hero.hero-clean .hero-media{ display:none; }
.hero.hero-clean .hero-kicker{
  background: rgba(255,255,255,.78);
  border-color: rgba(60,70,85,.18);
}
.hero.hero-clean .hero-title{
  letter-spacing: .4px;
}
.hero.hero-clean .hero-sub{
  max-width: 64ch;
}

/* Page header variant (internal pages) */
.page-hero{
  min-height: 62vh;
  padding-top: 110px;
}
.page-hero .hero-sub{ max-width: 62ch; }
@media (max-width: 576px){
  .page-hero{ min-height: auto; padding-top: 92px; }
  .hero.hero-impact .hero-sub{ font-size: 1.02rem; }
}
.page-hero .hero-title{
  font-size: clamp(1.95rem, 2.8vw, 3.2rem);
  letter-spacing: .5px;
}
.page-hero .hero-sub{ max-width: 64ch; }
/* Hauteur au contenu : sans ceci, .hero.hero-impact garde 78vh et écrase .page-hero */
.hero.hero-impact.page-hero{
  min-height: 0;
  padding-top: clamp(4.85rem, 9vw, 6.25rem);
  padding-bottom: clamp(0.85rem, 1.8vw, 1.35rem);
}

/* Section header block */
.section-head{
  display:flex;
  align-items:flex-end;
  justify-content: space-between;
  gap: 1.25rem;
  margin-bottom: 1.25rem;
}
.section-head .left{ max-width: 70ch; }
.section-head .right{ flex: 0 0 auto; }
.section-head .rule{
  height: 1px;
  margin-top: .9rem;
  background: linear-gradient(90deg, rgba(255,255,255,.18), rgba(255,255,255,.02));
}
@media (max-width: 992px){
  .section-head{ align-items:flex-start; flex-direction: column; }
  .section-head .right{ width: 100%; }
}
.hero-slogan{
  margin-top: 1.4rem;
  display:flex;
  flex-wrap: wrap;
  gap: .6rem;
}
.pill{
  padding: .35rem .65rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.90);
  font-weight: 650;
  letter-spacing: .3px;
}
.pill .sep{ opacity:.6; padding: 0 .35rem; }

/* Feature cards */
.icon-badge{
  width: 44px; height: 44px;
  border-radius: 14px;
  display:grid; place-items:center;
  background: rgba(240,138,26,.12);
  border: 1px solid rgba(240,138,26,.24);
  color: #fff;
}
.icon-badge.gold{
  background: rgba(47,143,58,.12);
  border-color: rgba(47,143,58,.22);
}
.card-title{
  letter-spacing: .2px;
}

/* Section headers */
.section-title{
  font-size: clamp(1.55rem, 2.1vw, 2.3rem);
  line-height: 1.15;
}
.section-kicker{
  color: rgba(255,255,255,.70);
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .78rem;
  font-weight: 700;
}
.divider{
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.16), transparent);
}

/* Image frames */
.frame{
  border-radius: var(--radius);
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
  overflow:hidden;
  box-shadow: var(--shadow-soft);
  position: relative;
}
.frame::after{
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(800px 500px at 40% 20%, rgba(255,255,255,.08), transparent 55%);
  pointer-events:none;
}
.frame img{ width:100%; height:auto; display:block; opacity:.92; }

/* Premium list with subtle separators */
.list-sep{
  display:flex;
  flex-direction: column;
  gap: .75rem;
}
.list-sep .row-item{
  display:flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding-bottom: .6rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.list-sep .row-item:last-child{ border-bottom: 0; padding-bottom: 0; }

/* Timeline (Histoire) */
.timeline{
  position: relative;
  padding-left: 1.35rem;
}
.timeline::before{
  content:"";
  position:absolute;
  left: .38rem;
  top: .2rem;
  bottom: .2rem;
  width: 1px;
  background: linear-gradient(180deg, rgba(240,138,26,.45), rgba(255,255,255,.12), rgba(47,143,58,.35));
}
.t-item{
  position: relative;
  padding: 1rem 1rem 1rem 1.15rem;
  border-radius: var(--radius);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.05);
  margin-bottom: .9rem;
}
.t-item:last-child{ margin-bottom:0; }
.t-item::before{
  content:"";
  position:absolute;
  left: -1.35rem;
  top: 1.25rem;
  width: .75rem;
  height: .75rem;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--orange-bright), var(--green));
  box-shadow: 0 0 0 9px rgba(240,138,26,.1);
}
.t-year{
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255,255,255,.70);
  font-size: .75rem;
}
.t-title{
  margin: .2rem 0 .35rem;
  font-weight: 800;
  letter-spacing: .2px;
}
.t-body{ color: rgba(255,255,255,.72); margin:0; }

/* Stepper (Adhésion) */
.stepper{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: .9rem;
}
.step{
  border: 1px solid rgba(255,255,255,.10);
  border-radius: var(--radius);
  background: rgba(255,255,255,.05);
  padding: 1.15rem 1.15rem 1.05rem;
  position: relative;
  overflow:hidden;
}
.step::after{
  content:"";
  position:absolute;
  inset: -2px -2px auto -2px;
  height: 2px;
  background: linear-gradient(90deg, rgba(240,138,26,.55), rgba(47,143,58,.35), transparent);
  opacity: .55;
}
.step-num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 40px;
  height: 40px;
  border-radius: 14px;
  background: rgba(240,138,26,.1);
  border: 1px solid rgba(240,138,26,.22);
  font-weight: 900;
}
.step-title{ margin: .75rem 0 .35rem; font-weight: 800; }
.step-text{ margin:0; color: rgba(255,255,255,.70); }
@media (max-width: 992px){
  .stepper{ grid-template-columns: 1fr; }
}

/* Pricing tiles */
.pricing{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: .9rem;
}
.price-tile{
  border: 1px solid rgba(255,255,255,.10);
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.04));
  padding: 1.25rem;
  box-shadow: var(--shadow-soft);
}
.price-tile.featured{
  border-color: rgba(47,143,58,.28);
  background: radial-gradient(700px 300px at 20% 0%, rgba(47,143,58,.14), transparent 55%),
              linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.04));
}
.price-amount{
  font-weight: 900;
  letter-spacing: .5px;
  font-size: 2.1rem;
  line-height: 1.1;
}
.price-currency{ color: rgba(255,255,255,.68); }
.price-note{ color: rgba(255,255,255,.70); margin:0; }
@media (max-width: 992px){
  .pricing{ grid-template-columns: 1fr; }
}

/* Form shell */
.form-shell{
  padding: 1.35rem;
}
@media (min-width: 768px){
  .form-shell{ padding: 2rem; }
}
.form-help{
  color: rgba(46,54,66,.62);
  font-size: .92rem;
  line-height: 1.55;
}

/* Breadcrumb (optional) */
.crumbs{
  display:flex;
  flex-wrap: wrap;
  gap: .55rem;
  align-items:center;
  color: rgba(46,54,66,.64);
  font-size: .92rem;
}
.crumbs a{ color: rgba(46,54,66,.78); text-decoration:none; }
.crumbs a:hover{ color: rgba(46,54,66,.98); text-decoration: underline; }
.crumbs .sep{ opacity: .5; }

/* Lists */
.list-check{
  list-style:none;
  padding-left:0;
}
.list-check li{
  display:flex;
  gap:.7rem;
  align-items:flex-start;
  color: rgba(46,54,66,.74);
  padding: .35rem 0;
}
.list-check i{ color: var(--accent); margin-top:.1rem; }

/* Clubs grid cards */
.club-meta{
  display:flex;
  flex-wrap: wrap;
  gap: .55rem .9rem;
  color: rgba(46,54,66,.70);
  font-size: .95rem;
}
.club-meta .item{
  display:inline-flex; gap:.45rem; align-items:center;
}
.tag{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding: .25rem .55rem;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 700;
  color: rgba(46,54,66,.86);
  background: rgba(46,54,66,.04);
  border: 1px solid rgba(17,24,39,.20);
}
.tag.orange,
.tag.red{
  border-color: rgba(240,138,26,.28);
  background: rgba(240,138,26,.1);
}
.tag.gold{ border-color: rgba(47,143,58,.26); background: rgba(47,143,58,.08); }

body.modern-impact .tag{
  background: rgba(255,255,255,.78);
}

/* Admin — Compétitions : tableau proche du visuel home */
.admin-comp-table thead th{
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: rgba(46,54,66,.62);
  border-bottom-color: rgba(60,70,85,.10);
}
.admin-comp-table tbody td{
  border-top-color: rgba(60,70,85,.08);
}
.admin-comp-date{
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.05;
  gap: .15rem;
}
.admin-comp-date b{
  font-family: "Oswald","Inter",system-ui,sans-serif;
  font-weight: 800;
  letter-spacing: .14em;
  font-size: .82rem;
  color: rgba(46,54,66,.90);
}
.admin-comp-date span{
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(46,54,66,.55);
}
.admin-comp-title{
  max-width: 34ch;
}
.admin-comp-info{
  max-width: 34ch;
  color: rgba(46,54,66,.80);
  font-weight: 600;
}
@media (max-width: 992px){
  .admin-comp-title{ max-width: none; }
  .admin-comp-info{ max-width: none; }
}

/* Forms */
.form-control, .form-select{
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(60,70,85,.18);
  color: rgba(46,54,66,.92);
  border-radius: 14px;
  padding: .8rem .9rem;
}
.input-group-text{
  border-radius: 14px;
  border: 1px solid rgba(60,70,85,.18);
  background: rgba(255,255,255,.92);
  color: rgba(46,54,66,.82);
  font-weight: 750;
  letter-spacing: .06em;
}
.input-group .btn.btn-outline-light-soft{
  border-radius: 14px;
}
.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){
  margin-left: -1px;
}
.form-control:focus, .form-select:focus{
  background: rgba(255,255,255,.98);
  border-color: rgba(240,138,26,.42);
  box-shadow: 0 0 0 .25rem rgba(240,138,26,.12);
  color: rgba(10,12,18,.96);
}
::placeholder{ color: rgba(46,54,66,.46) !important; }
label{ color: rgba(46,54,66,.80); }

/* Footer — fond sombre, filet vert → orange */
.footer{
  position: relative;
  margin-top: 0;
  padding: 0;
  border-top: none;
  background: linear-gradient(180deg, #12141a 0%, #0a0a0c 52%, #060607 100%);
  color: rgba(255,255,255,.82);
}
.footer-accent{
  height: 4px;
  width: 100%;
  background: linear-gradient(90deg, #2f8f3a 0%, #3cb371 30%, #f08a1a 70%, #fb923c 100%);
  opacity: .95;
}
.footer-main{
  padding: clamp(2.25rem, 5vw, 3.25rem) 0 clamp(1.75rem, 3.5vw, 2.5rem);
}
.footer-brand__title{
  font-family: "Oswald", "Inter", system-ui, sans-serif;
  font-size: clamp(0.82rem, 1.05vw, 0.98rem);
  font-weight: 700;
  letter-spacing: .45px;
  text-transform: uppercase;
  line-height: 1.25;
  color: rgba(255,255,255,.95);
  margin: 0;
}
.footer-brand__tag{
  font-size: .82rem;
  color: rgba(255,255,255,.48) !important;
  letter-spacing: .06em;
  margin-top: .35rem;
}
.footer .footer-brandmark{
  width: 52px;
  height: 52px;
  border-color: rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  box-shadow: 0 8px 28px rgba(0,0,0,.35);
}
.footer .footer-brandmark img{
  width: 56px;
  height: 56px;
}
.footer-lead{
  font-size: .92rem;
  line-height: 1.55;
  color: rgba(255,255,255,.52) !important;
  max-width: 38ch;
  margin-top: 1rem !important;
}
.footer-heading,
.footer h2.footer-heading{
  font-family: "Oswald", "Inter", system-ui, sans-serif;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.42);
  margin: 0 0 1rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
  line-height: 1.35;
}
.footer-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .55rem;
}
.footer-list a{
  color: rgba(255,255,255,.78);
  text-decoration: none;
  font-size: .93rem;
  font-weight: 500;
  transition: color .2s ease, transform .2s ease;
  display: inline-block;
}
.footer-list a:hover{
  color: #fff;
  text-decoration: none;
  transform: translateX(3px);
}
.footer-list--contact a{
  display: inline-flex;
  align-items: center;
  gap: .55rem;
}
.footer-list--contact .bi{
  font-size: 1.05rem;
  color: rgba(134,239,172,.95);
  flex-shrink: 0;
}
.footer-social{
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: 1.15rem;
}
.footer-social__link{
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.82) !important;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}
.footer-social__link:hover{
  background: rgba(47,143,58,.22);
  border-color: rgba(240,138,26,.45);
  color: #fff !important;
  transform: translateY(-2px);
}
.footer-bottom{
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 1.15rem 0 1.65rem;
  background: rgba(0,0,0,.22);
}
.footer-bottom__inner{
  display: flex;
  flex-direction: column;
  gap: .65rem;
}
@media (min-width: 768px){
  .footer-bottom__inner{
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
  }
}
.footer-copy{
  font-size: .8rem;
  color: rgba(255,255,255,.45) !important;
}
.footer-credit{
  font-size: .78rem;
  color: rgba(255,255,255,.38) !important;
}
.footer-credit a{
  color: rgba(255,255,255,.55) !important;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.12);
  transition: color .2s ease, border-color .2s ease;
}
.footer-credit a:hover{
  color: rgba(255,255,255,.85) !important;
  border-bottom-color: rgba(240,138,26,.5);
}

/* Footer — tablette : colonnes plus aérées */
@media (max-width: 991.98px){
  .footer-main{
    padding: clamp(1.85rem, 4.2vw, 2.75rem) 0 clamp(1.5rem, 3.2vw, 2.25rem);
  }
  .footer-main .row{
    --bs-gutter-y: 1.35rem;
  }
  .footer-brand .d-flex{
    flex-wrap: wrap;
    gap: .75rem !important;
  }
}

/* Footer — mobile : pile lisible, bas de page centré */
@media (max-width: 576px){
  .footer-main{
    padding: 1.75rem 0 1.5rem;
  }
  .footer .footer-brandmark{
    width: 46px;
    height: 46px;
  }
  .footer .footer-brandmark img{
    width: 50px;
    height: 50px;
  }
  .footer-lead{
    max-width: none;
    margin-top: .85rem !important;
  }
  .footer-heading,
  .footer h2.footer-heading{
    margin: 0 0 .75rem;
    padding-bottom: .45rem;
  }
  .footer-list{
    gap: .45rem;
  }
  .footer-list a{
    font-size: .95rem;
    display: block;
    padding: .35rem 0;
    border-radius: 10px;
  }
  .footer-list a:hover{
    transform: none;
  }
  .footer-list a:active{
    opacity: .92;
  }
  .footer-list--contact a{
    align-items: flex-start;
    word-break: break-word;
  }
  .footer-list--contact .bi{
    margin-top: .1rem;
  }
  .footer-social{
    margin-top: .9rem;
    justify-content: center;
    gap: .65rem;
  }
  .footer-social__link{
    width: 44px;
    height: 44px;
    border-radius: 14px;
  }
  .footer-social__link:hover{
    transform: none;
  }
  .footer-bottom{
    padding: 1.1rem 0 1.5rem;
  }
  .footer-bottom__inner{
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: .75rem;
  }
  .footer-copy,
  .footer-credit{
    max-width: 42rem;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.5;
    padding: 0 .25rem;
  }
  .footer-credit a{
    word-break: break-word;
  }
}

/* Reveal on scroll */
.reveal{
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .7s ease, transform .75s cubic-bezier(.2,.8,.2,1);
  will-change: opacity, transform;
}
.ultra-clean .reveal{
  transform: translateY(10px);
  transition-duration: .6s;
}
.reveal[data-delay]{ transition-delay: var(--reveal-delay, 0ms); }
.reveal.is-visible{
  opacity: 1;
  transform: translateY(0);
}
.reveal.reveal-left{ transform: translateX(-18px); }
.reveal.reveal-right{ transform: translateX(18px); }
.reveal.reveal-left.is-visible,
.reveal.reveal-right.is-visible{ transform: translateX(0); }

/* Subtle parallax targets */
[data-parallax]{
  transform: translate3d(0,0,0);
  will-change: transform;
}

/* Non-CMS editorial homepage */
.editorial-main{
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.editorial-block{
  border: 1px solid rgba(60,70,85,.16);
  border-radius: 26px;
  background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.76));
  box-shadow: 0 16px 42px rgba(28,36,48,.08);
  padding: clamp(1.2rem, 2vw, 2rem);
}
.editorial-block.soft{
  background:
    radial-gradient(700px 220px at 15% 0%, rgba(240,138,26,.06), transparent 62%),
    radial-gradient(700px 240px at 88% 15%, rgba(47,143,58,.08), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.86));
}
.editorial-kicker{
  text-transform: uppercase;
  letter-spacing: .2em;
  font-size: .75rem;
  color: rgba(46,54,66,.62);
  font-weight: 800;
}
.editorial-title{
  font-family: "Oswald", "Inter", sans-serif;
  text-transform: uppercase;
  letter-spacing: 1px;
  line-height: 1.02;
  font-size: clamp(1.8rem, 4vw, 4rem);
  margin: .5rem 0 0;
}
.editorial-text{
  color: rgba(46,54,66,.74);
  line-height: 1.65;
  max-width: 62ch;
}
.metrics-inline{
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}
.metric-chip{
  border: 1px solid rgba(60,70,85,.16);
  border-radius: 999px;
  padding: .45rem .8rem;
  background: rgba(255,255,255,.85);
  color: rgba(46,54,66,.88);
  font-weight: 600;
  font-size: .92rem;
}
.split-asym{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 1rem;
}
.note-panel{
  border: 1px solid rgba(60,70,85,.16);
  border-radius: 20px;
  background: rgba(255,255,255,.78);
  padding: 1rem;
}
.mini-list{
  list-style: none;
  padding: 0;
  margin: 0;
}
.mini-list li{
  display:flex;
  justify-content: space-between;
  gap: .7rem;
  border-bottom: 1px dashed rgba(60,70,85,.22);
  padding: .55rem 0;
  color: rgba(46,54,66,.82);
}
.mini-list li:last-child{ border-bottom: 0; }
.event-line{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: .8rem;
}
.event-line .item{
  border: 1px solid rgba(60,70,85,.16);
  border-radius: 18px;
  padding: .9rem;
  background: rgba(255,255,255,.82);
}
.event-line .m{
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: rgba(46,54,66,.58);
  font-weight: 800;
}
.event-line .t{
  margin-top: .35rem;
  font-weight: 700;
  color: rgba(46,54,66,.9);
}
.cta-ribbon{
  border: 1px solid rgba(60,70,85,.16);
  border-radius: 999px;
  padding: .55rem .6rem .55rem 1rem;
  background: rgba(255,255,255,.85);
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: .8rem;
}
@media (max-width: 992px){
  .split-asym{ grid-template-columns: 1fr; }
  .event-line{ grid-template-columns: 1fr; }
}

/* AMF-like federation homepage */
.federation-shell{
  display:flex;
  flex-direction: column;
  gap: 20px;
}
.action-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: .9rem;
}
.action-tile{
  border: 1px solid rgba(60,70,85,.16);
  border-radius: 20px;
  background: rgba(255,255,255,.9);
  padding: 1rem;
  text-decoration:none;
  color: rgba(46,54,66,.94);
  box-shadow: 0 14px 36px rgba(28,36,48,.08);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.action-tile:hover{
  transform: translateY(-2px);
  border-color: rgba(60,70,85,.24);
  box-shadow: 0 20px 44px rgba(28,36,48,.12);
  color: rgba(46,54,66,.98);
}
.action-tile .k{
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: rgba(46,54,66,.58);
  font-weight: 800;
}
.action-tile .t{
  margin-top: .45rem;
  font-family: "Oswald", "Inter", sans-serif;
  text-transform: uppercase;
  letter-spacing: .7px;
  font-size: 1.4rem;
  line-height: 1.05;
}
.action-tile.orange{ border-top: 4px solid #f08a1a; }
.action-tile.green{ border-top: 4px solid #2a7d33; }
.action-tile.gray{ border-top: 4px solid #64748b; }

.fed-title{
  font-family: "Oswald", "Inter", sans-serif;
  text-transform: uppercase;
  letter-spacing: .9px;
  font-size: clamp(1.3rem, 2.2vw, 2rem);
  margin: .4rem 0 0;
}
.club-finder{
  display:flex;
  flex-wrap: wrap;
  align-items:center;
  justify-content: space-between;
  gap: .7rem;
  border: 1px dashed rgba(60,70,85,.22);
  border-radius: 16px;
  padding: .7rem .8rem;
  background: rgba(255,255,255,.65);
}

.partner-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: .7rem;
}
.partner-slot{
  border: 1px solid rgba(60,70,85,.16);
  border-radius: 14px;
  background: rgba(255,255,255,.78);
  min-height: 64px;
  display:grid;
  place-items:center;
  color: rgba(46,54,66,.58);
  font-size: .85rem;
  font-weight: 600;
}
@media (max-width: 992px){
  .action-grid{ grid-template-columns: 1fr; }
  .partner-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}

/* Flow layout (premium, no blocks) */
.flow-main{
  padding: clamp(36px, 6vw, 88px) 0;
}
.flow-wrap{
  max-width: 1180px;
  margin: 0 auto;
}
.flow-intro{ display:none; }
.flow-kicker{
  text-transform: uppercase;
  letter-spacing: .22em;
  font-size: .72rem;
  color: rgba(240,138,26,.78);
  font-weight: 800;
}
.flow-title{
  font-family: "Oswald","Inter",sans-serif;
  text-transform: uppercase;
  letter-spacing: 1px;
  line-height: .98;
  margin: .65rem 0 .8rem;
  font-size: clamp(1.6rem, 4.4vw, 3.4rem);
  color: rgba(46,54,66,.96);
}
.flow-sub{
  max-width: 64ch;
  color: rgba(46,54,66,.72);
  line-height: 1.7;
  margin: 0;
}
.flow-metrics{
  display:flex;
  flex-direction: column;
  gap: .7rem;
}
.flow-portrait{
  width: 100%;
  height: clamp(240px, 30vw, 420px);
  object-fit: contain;
  background: rgba(255,255,255,.78);
  border-radius: 16px;
  border: 1px solid rgba(60,70,85,.16);
  box-shadow: 0 16px 40px rgba(28,36,48,.10);
}
.flow-portrait.caption{
  display:block;
}
.flow-caption{
  margin-top: .55rem;
  font-size: .92rem;
  color: rgba(46,54,66,.62);
}
.flow-metrics .row{
  display:flex;
  justify-content: space-between;
  align-items:center;
  border-bottom: 1px solid rgba(60,70,85,.18);
  padding-bottom: .55rem;
  color: rgba(46,54,66,.86);
}

/* Presentation v3 (cinematic band, premium, non-CMS) */
.about3{
  border-radius: 28px;
  overflow: hidden;
  position: relative;
  border: 1px solid rgba(17,24,39,.16);
  box-shadow: 0 26px 90px rgba(28,36,48,.12);
  background: rgba(255,255,255,.78);
}
.about3-inner{
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(1rem, 3vw, 2.2rem);
  padding: clamp(1.2rem, 3vw, 2.2rem);
  align-items: stretch;
}
.about3-media{
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid rgba(17,24,39,.14);
  box-shadow: 0 18px 55px rgba(28,36,48,.10);
  background: rgba(255,255,255,.90);
}
.about3-media img{
  width: 100%;
  height: clamp(320px, 34vw, 520px);
  object-fit: contain; /* photo entièrement visible */
  display: block;
  padding: .65rem; /* petit "passe-partout" premium */
}
.about3-copy{
  max-width: 68ch;
  display: flex;
  flex-direction: column;
}
.about3-title{
  font-family: "Oswald","Inter",sans-serif;
  text-transform: uppercase;
  letter-spacing: .9px;
  line-height: 1.02;
  margin: .55rem 0 .7rem;
  font-size: clamp(1.6rem, 2.9vw, 2.7rem);
  color: rgba(46,54,66,.98);
}
.about3-lead{
  color: rgba(46,54,66,.76);
  line-height: 1.75;
  margin: 0 0 .9rem 0;
}
.about3-metrics{
  margin-top: 1rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .7rem;
  align-content: start;
}
.about3-metric{
  border-radius: 18px;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(17,24,39,.14);
  box-shadow: 0 16px 40px rgba(28,36,48,.10);
  padding: .8rem .9rem;
}
.about3-metric b{
  display:block;
  font-family: "Oswald","Inter",sans-serif;
  letter-spacing: .7px;
  font-size: 1.6rem;
  line-height: 1;
  color: rgba(46,54,66,.96);
}
.about3-metric span{
  display:block;
  margin-top: .25rem;
  color: rgba(46,54,66,.66);
  font-size: .92rem;
}
.about3-actions{
  margin-top: auto;
  padding-top: 1rem;
  display:flex;
  flex-wrap: wrap;
  gap: .6rem;
}
@media (max-width: 992px){
  .about3-inner{ grid-template-columns: 1fr; }
  .about3-metrics{ grid-template-columns: 1fr; }
  .about3-media img{ height: 340px; }
  .about3-actions{ margin-top: 1rem; }
}
.flow-divider{
  height: 1px;
  margin: clamp(18px, 4vw, 34px) 0;
  background: linear-gradient(90deg, rgba(17,24,39,.20), rgba(240,138,26,.24), rgba(60,70,85,.04));
}
.flow-gallery{
  display:grid;
  grid-template-columns: 1.1fr .9fr .9fr;
  gap: .8rem;
}
.flow-photo{
  width: 100%;
  height: clamp(170px, 26vw, 300px);
  object-fit: cover;
  border-radius: 14px;
  border: 1px solid rgba(60,70,85,.16);
  box-shadow: 0 12px 28px rgba(28,36,48,.08);
}
.flow-photo.p1{ object-position: 34% 52%; }
.flow-photo.p2{ object-position: 68% 45%; }
.flow-photo.p3{ object-position: 50% 35%; }
.flow-actions{
  display:flex;
  flex-wrap: wrap;
  gap: .65rem;
}

/* Actions v3 (premium cards) */
.actions3{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .9rem;
}
.actions3-card{
  border-radius: 18px;
  border: 1px solid rgba(17,24,39,.14);
  background:
    radial-gradient(420px 160px at 0% 0%, rgba(240,138,26,.08), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.76));
  box-shadow: 0 18px 55px rgba(28,36,48,.10);
  padding: .95rem .95rem 1rem;
  text-decoration: none;
  color: inherit;
  display:flex;
  flex-direction: column;
  gap: .55rem;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.actions3-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 26px 80px rgba(28,36,48,.12);
  border-color: rgba(240,138,26,.20);
}
.actions3-icon{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display:grid;
  place-items:center;
  border: 1px solid rgba(240,138,26,.18);
  background: rgba(240,138,26,.06);
  color: rgba(240,138,26,.86);
  box-shadow: 0 12px 28px rgba(28,36,48,.10);
}
.actions3-icon.is-premium{
  border-color: rgba(17,24,39,.14);
  background: rgba(255,255,255,.82);
  color: rgba(46,54,66,.92);
}
.actions3-icon.is-soft{
  border-color: rgba(60,70,85,.16);
  background: rgba(154,163,173,.10);
  color: rgba(46,54,66,.82);
}
.actions3-title{
  font-weight: 800;
  color: rgba(46,54,66,.96);
  line-height: 1.15;
}
.actions3-text{
  color: rgba(46,54,66,.70);
  line-height: 1.6;
}
.actions3-cta{
  margin-top: auto;
  align-self: flex-start;
  border-radius: 14px;
}
@media (max-width: 992px){
  .actions3{ grid-template-columns: 1fr; }
}

/* (removed) pillars3 */

/* Brief v2 (split media + points) */
.brief2{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(1rem, 3vw, 2.2rem);
  align-items: center;
}
.brief2-media{
  border-radius: 22px;
  overflow: hidden;
}
.brief2-photo{
  width: 100%;
  height: clamp(260px, 28vw, 420px);
  object-fit: contain;
  display:block;
}
.brief2-body{
  padding-top: .2rem;
}
.brief2-title{
  font-weight: 850;
  color: rgba(46,54,66,.96);
  line-height: 1.1;
  margin: 0 0 .55rem;
}
.brief2-lead{
  color: rgba(46,54,66,.74);
  line-height: 1.75;
}
.brief2-points{
  margin-top: 1rem;
  display:flex;
  flex-direction: column;
  gap: .6rem;
}
.brief2-point{
  display:flex;
  gap: .65rem;
  align-items: flex-start;
  padding: .65rem .7rem;
  border-radius: 16px;
  border: 1px solid rgba(17,24,39,.12);
  background: rgba(255,255,255,.74);
  box-shadow: 0 12px 30px rgba(28,36,48,.08);
  color: rgba(46,54,66,.86);
  line-height: 1.55;
}
.brief2-bullet{
  width: 28px;
  height: 28px;
  border-radius: 10px;
  display:grid;
  place-items:center;
  border: 1px solid rgba(240,138,26,.16);
  background: rgba(240,138,26,.06);
  color: rgba(240,138,26,.88);
  flex: 0 0 auto;
  margin-top: .05rem;
}
.brief2-actions{
  margin-top: 1rem;
  display:flex;
}
@media (max-width: 992px){
  .brief2{ grid-template-columns: 1fr; }
  .brief2-photo{ height: 320px; }
  .brief2-body{ padding-top: 0; }
}
.flow-line{
  padding: .7rem 0;
  border-bottom: 1px dashed rgba(60,70,85,.2);
  display:flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
}
.flow-line:last-child{ border-bottom: 0; }
.flow-line .left{
  display:flex;
  flex-direction: column;
  gap: .2rem;
}
.flow-line .month{
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: rgba(46,54,66,.56);
  font-weight: 800;
}
.flow-line .event{
  color: rgba(46,54,66,.9);
  font-weight: 650;
}
.flow-line .city{
  color: rgba(46,54,66,.62);
  font-size: .92rem;
}
.news-layout{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 1rem;
  margin-top: .6rem;
}
.news-feature{
  padding: 1rem 1rem 1.1rem;
  border: 1px solid rgba(17,24,39,.16);
  border-radius: 16px;
  background:
    radial-gradient(500px 160px at 0% 0%, rgba(240,138,26,.08), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.78));
}
.news-date{
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: rgba(46,54,66,.58);
  font-weight: 800;
}
.news-headline{
  margin: .45rem 0 .35rem;
  font-family: "Oswald","Inter",sans-serif;
  text-transform: uppercase;
  letter-spacing: .65px;
  line-height: 1.1;
  font-size: clamp(1.2rem, 2vw, 1.7rem);
  color: rgba(46,54,66,.95);
}
.news-excerpt{
  margin: 0;
  color: rgba(46,54,66,.72);
  line-height: 1.6;
}
.news-side{
  display:flex;
  flex-direction: column;
  gap: .7rem;
}
.news-mini{
  border-bottom: 1px dashed rgba(60,70,85,.22);
  padding-bottom: .6rem;
}
.news-mini:last-child{
  border-bottom: 0;
  padding-bottom: 0;
}
.news-mini .news-title{
  margin-top: .2rem;
  font-weight: 700;
  color: rgba(46,54,66,.9);
}
.news-mini .news-meta{
  color: rgba(46,54,66,.62);
  font-size: .9rem;
}
.flow-footer-cta{
  margin-top: clamp(18px, 4vw, 34px);
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 0;
  border-top: 1px solid rgba(60,70,85,.18);
}
@media (max-width: 992px){
  .flow-intro{ grid-template-columns: 1fr; }
  .flow-footer-cta{ flex-direction: column; align-items: flex-start; }
  .flow-gallery{ grid-template-columns: 1fr; }
  .flow-photo{ height: 220px; }
  .news-layout{ grid-template-columns: 1fr; }
}

/* Actualités v2 (premium list + feature) */
.news2{
  margin-top: .65rem;
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 1rem;
  align-items: start;
}
.news2-feature{
  border-radius: 18px;
  border: 1px solid rgba(17,24,39,.16);
  background:
    radial-gradient(520px 200px at 0% 0%, rgba(240,138,26,.10), transparent 60%),
    radial-gradient(520px 200px at 100% 100%, rgba(240,138,26,.10), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.78));
  box-shadow: 0 18px 55px rgba(28,36,48,.10);
  overflow: hidden;
  padding: 0;
}
.news2-media{
  position: relative;
  height: 220px;
  background: rgba(255,255,255,.88);
}
.news2-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: saturate(1.03) contrast(1.02);
  transform: scale(1.02);
}
.news2-media::after{
  content:"";
  position:absolute;
  inset:0;
  background: radial-gradient(700px 240px at 10% 0%, rgba(0,0,0,.20), transparent 58%);
  opacity: .32;
  pointer-events:none;
}
.news2-top,
.news2-title,
.news2-excerpt,
.news2-cta{
  padding-left: 1rem;
  padding-right: 1rem;
}
.news2-top{ padding-top: 1rem; }
.news2-cta{ padding-bottom: 1.05rem; }
.news2-badges{
  display:flex;
  flex-wrap: wrap;
  gap: .45rem;
}
.news2-badge{
  display:inline-flex;
  align-items:center;
  gap: .45rem;
  padding: .32rem .55rem;
  border-radius: 999px;
  border: 1px solid rgba(17,24,39,.14);
  background: rgba(255,255,255,.86);
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-weight: 850;
  color: rgba(46,54,66,.78);
}
.news2-badge.is-soft{
  background: rgba(240,138,26,.06);
  border-color: rgba(240,138,26,.14);
}
.news2-title{
  margin: .65rem 0 .35rem;
  font-family: "Oswald","Inter",sans-serif;
  text-transform: uppercase;
  letter-spacing: .65px;
  line-height: 1.08;
  font-size: clamp(1.22rem, 2.1vw, 1.85rem);
  color: rgba(46,54,66,.95);
}
.news2-excerpt{
  margin: 0;
  color: rgba(46,54,66,.72);
  line-height: 1.65;
  max-width: 62ch;
}
.news2-cta{
  margin-top: .9rem;
}
.news2-list{
  position: relative;
  border-radius: 18px;
  border: 1px solid rgba(17,24,39,.12);
  background: rgba(255,255,255,.74);
  box-shadow: 0 16px 46px rgba(28,36,48,.08);
  padding: .75rem .8rem .85rem;
}
.news2-list::before{
  content:"";
  position:absolute;
  left: 18px;
  top: 18px;
  bottom: 18px;
  width: 1px;
  background: linear-gradient(180deg, rgba(17,24,39,.14), rgba(240,138,26,.20), rgba(17,24,39,.06));
}
.news2-item{
  position: relative;
  display: grid;
  grid-template-columns: 20px 74px 1fr;
  gap: .65rem;
  padding: .7rem .5rem;
  border-radius: 14px;
  text-decoration: none;
  color: inherit;
}
.news2-item:hover{
  background: rgba(255,255,255,.78);
  box-shadow: 0 10px 26px rgba(28,36,48,.08);
}
.news2-dot{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  margin-top: .35rem;
  background: rgba(240,138,26,.42);
  box-shadow: 0 0 0 6px rgba(240,138,26,.10);
}
.news2-thumb{
  width: 74px;
  height: 54px;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(17,24,39,.14);
  background: rgba(255,255,255,.92);
  box-shadow: 0 10px 24px rgba(28,36,48,.10);
}
.news2-thumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.02);
  transition: transform .35s ease, filter .35s ease;
}
.news2-item:hover .news2-thumb img{
  transform: scale(1.08);
  filter: saturate(1.06) contrast(1.03);
}
.news2-meta{
  display:flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
}
.news2-date{
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: rgba(46,54,66,.58);
  font-weight: 850;
}
.news2-place{
  font-size: .9rem;
  color: rgba(46,54,66,.62);
  display:inline-flex;
  align-items:center;
  gap: .35rem;
}
.news2-head{
  grid-column: 3 / -1;
  margin-top: .2rem;
  font-weight: 720;
  color: rgba(46,54,66,.92);
  line-height: 1.35;
}
.news2-more{
  margin-top: .35rem;
  padding-left: 20px;
}
@media (max-width: 992px){
  .news2{ grid-template-columns: 1fr; }
  .news2-list::before{ left: 16px; }
  .news2-more{ padding-left: 18px; }
  .news2-media{ height: 190px; }
}

/* Accessible focus */
a:focus-visible, button:focus-visible, .btn:focus-visible{
  outline: 2px solid rgba(154,163,173,.55);
  outline-offset: 3px;
  border-radius: 14px;
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  .reveal{ transition:none; transform:none; opacity:1; }
  .glass-hover, .btn-premium, .btn-accent, .btn-outline-light-soft{ transition:none; }
  [data-parallax]{ transform:none !important; }
}

/* Page La Fédération */
body.page-federation{
  background:
    radial-gradient(900px 520px at 10% 6%, rgba(47,143,58,.09), transparent 58%),
    radial-gradient(820px 480px at 92% 12%, rgba(240,138,26,.07), transparent 58%),
    linear-gradient(180deg, #ffffff, rgba(242,244,247,.96) 42%);
}
.page-federation main section[id]{
  scroll-margin-top: 7.5rem;
}
@media (max-width: 991.98px){
  .page-federation main section[id]{
    scroll-margin-top: 6.75rem;
  }
}
.page-federation .fed-page-hero.page-hero{
  min-height: 0;
  padding-top: clamp(5.75rem, 11vw, 7.25rem);
  padding-bottom: clamp(1.35rem, 2.8vw, 2rem);
}
.page-federation .fed-page-hero .hero-media{
  transform: none;
  filter: none;
}
.page-federation .fed-section-head{
  margin-bottom: clamp(1.35rem, 2.8vw, 2rem);
}
.page-federation .fed-missions-header{
  max-width: none;
  margin-bottom: clamp(1.75rem, 3.5vw, 2.5rem);
}
.page-federation .fed-missions-header .h2-premium{
  margin: 0 0 .65rem;
}
.page-federation .fed-missions-deck{
  margin: 0;
  font-size: clamp(1rem, 1.08vw, 1.06rem);
  line-height: 1.62;
  color: rgba(46,54,66,.76);
  font-weight: 500;
  max-width: none;
  width: 100%;
}
.page-federation .fed-missions-steps{
  list-style: none;
  padding: 0;
  margin: 0 auto;
  max-width: 52rem;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.page-federation .fed-mission-step{
  display: grid;
  grid-template-columns: 3.5rem minmax(0, 1fr);
  gap: clamp(.85rem, 2vw, 1.25rem);
  align-items: stretch;
  position: relative;
}
@media (min-width: 576px){
  .page-federation .fed-mission-step{
    grid-template-columns: 4rem minmax(0, 1fr);
  }
}
.page-federation .fed-mission-step__rail{
  position: relative;
  display: flex;
  justify-content: center;
  padding-top: .35rem;
}
.page-federation .fed-mission-step__rail::after{
  content: "";
  position: absolute;
  top: 3.15rem;
  bottom: -.35rem;
  left: 50%;
  width: 2px;
  transform: translateX(-50%);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(47,143,58,.45), rgba(240,138,26,.35));
}
.page-federation .fed-mission-step:last-child .fed-mission-step__rail::after{
  display: none;
}
.page-federation .fed-mission-step__dot{
  position: relative;
  z-index: 1;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-family: "Oswald", "Inter", system-ui, sans-serif;
  font-weight: 700;
  font-size: .78rem;
  letter-spacing: .06em;
  color: rgba(46,54,66,.88);
  background: linear-gradient(180deg, #ffffff, rgba(242,244,247,.96));
  border: 2px solid rgba(60,70,85,.14);
  box-shadow: 0 6px 20px rgba(11,13,18,.07);
}
.page-federation .fed-mission-step:nth-child(odd) .fed-mission-step__dot{
  border-color: rgba(47,143,58,.28);
  color: #2a7d33;
}
.page-federation .fed-mission-step:nth-child(even) .fed-mission-step__dot{
  border-color: rgba(240,138,26,.22);
  color: #fb923c;
}
.page-federation .fed-mission-step__body{
  display: flex;
  align-items: flex-start;
  gap: clamp(.75rem, 1.5vw, 1rem);
  padding: .5rem 0 clamp(1.15rem, 2.2vw, 1.45rem);
  border-radius: 16px;
  border: 1px solid rgba(60,70,85,.1);
  background: rgba(255,255,255,.88);
  box-shadow: 0 10px 32px rgba(11,13,18,.05);
}
.page-federation .fed-mission-step:last-child .fed-mission-step__body{
  padding-bottom: .5rem;
}
.page-federation .fed-mission-step__icon{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  font-size: 1.15rem;
  border: 1px solid rgba(47,143,58,.2);
  background: rgba(47,143,58,.08);
  color: #2a7d33;
}
.page-federation .fed-mission-step:nth-child(even) .fed-mission-step__icon{
  border-color: rgba(240,138,26,.18);
  background: rgba(240,138,26,.07);
  color: #fb923c;
}
.page-federation .fed-mission-step__text{
  margin: 0;
  padding-top: .15rem;
  font-size: clamp(.98rem, 1.05vw, 1.05rem);
  font-weight: 600;
  line-height: 1.52;
  color: rgba(46,54,66,.9);
  min-width: 0;
}
.page-federation .fed-section-lead{
  margin-top: .5rem;
  max-width: 52ch;
  font-size: 1.02rem;
  line-height: 1.55;
}
.page-federation .fed-section-lead--one-line{
  max-width: none;
}
@media (min-width: 992px){
  .page-federation .fed-section-lead--one-line{
    white-space: nowrap;
  }
}
.page-federation .fed-aside-title{
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: rgba(240,138,26,.88);
  margin: 0 0 .55rem;
}
.page-federation .fed-prose-block + .fed-prose-block{
  margin-top: clamp(1.25rem, 2.5vw, 1.85rem);
}
.page-federation .fed-intro-row .home5-sub + .home5-sub{
  margin-top: .75rem;
}
.page-federation .fed-subnav{
  position: sticky;
  top: 72px;
  z-index: 1010;
  border-bottom: 1px solid rgba(60,70,85,.1);
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(12px);
  box-shadow: 0 6px 28px rgba(11,13,18,.05);
}
@media (max-width: 991.98px){
  .page-federation .fed-subnav{
    top: 66px;
  }
}
.page-federation .fed-subnav-list{
  list-style: none;
  margin: 0;
  padding: .5rem 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .35rem;
}
.page-federation .fed-subnav-link{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  padding: .68rem .5rem;
  text-decoration: none;
  color: rgba(46,54,66,.92);
  font-weight: 650;
  font-size: .84rem;
  border-radius: 12px;
  transition: background .2s ease, color .2s ease;
}
.page-federation .fed-subnav-link:hover{
  background: rgba(47,143,58,.1);
  color: rgba(46,54,66,.98);
}
.page-federation .fed-subnav-link i{
  font-size: 1rem;
  color: #2f8f3a;
}
@media (max-width: 768px){
  .page-federation .fed-subnav-list{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.page-federation .fed-main{
  padding-bottom: clamp(2.5rem, 5vw, 4rem);
}
.page-federation .fed-chapter{
  padding: clamp(2.75rem, 5.5vw, 4.25rem) 0;
  border-bottom: 1px solid rgba(60,70,85,.12);
}
.page-federation .fed-chapter--last{
  border-bottom: 0;
}
.page-federation .fed-chapter--alt{
  background: rgba(255,255,255,.58);
  border-bottom-color: rgba(60,70,85,.1);
}
.page-federation .fed-chapter--alt.fed-chapter--missions{
  background:
    radial-gradient(720px 280px at 0% 20%, rgba(47,143,58,.06), transparent 55%),
    radial-gradient(640px 260px at 100% 60%, rgba(240,138,26,.05), transparent 55%),
    rgba(255,255,255,.62);
}
.page-federation .fed-lede{
  font-size: clamp(1.06rem, 1.2vw, 1.14rem);
  line-height: 1.68;
  color: rgba(46,54,66,.88);
  font-weight: 500;
  margin-bottom: 1rem;
  max-width: none;
}
.page-federation .fed-figure{
  margin: 0;
}
.page-federation .fed-figure img{
  border-radius: 20px;
  width: 100%;
  height: auto;
  display: block;
  box-shadow: 0 18px 48px rgba(11,13,18,.1);
}
.page-federation .fed-figure figcaption{
  margin-top: .65rem;
  font-size: .8rem;
  color: rgba(46,54,66,.55);
  line-height: 1.4;
}
/* Présentation fédération : grille identique à l’accueil (home5) ; photo en contain pour ne pas couper les sujets */
.page-federation .home5-presentRow .home5-fedPhoto{
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(165deg, #eceef3, #dfe3ea);
}
.page-federation .home5-presentRow .home5-fedPhoto .home5-photo-present{
  object-fit: contain;
  object-position: center center;
}
.page-federation .home5-metrics-caption{
  max-width: 28rem;
  margin-left: auto;
  line-height: 1.45;
}
@media (max-width: 991.98px){
  .page-federation .home5-metrics-caption{
    margin-right: auto;
    text-align: center !important;
  }
}
.page-federation .fed-chapter--vision{
  background:
    radial-gradient(800px 420px at 12% 0%, rgba(47,143,58,.07), transparent 58%),
    radial-gradient(720px 400px at 96% 40%, rgba(240,138,26,.05), transparent 58%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(242,244,247,.96));
}
.page-federation .fed-vision-top{
  text-align: left;
  margin-bottom: clamp(1rem, 2vw, 1.35rem);
}
.page-federation .fed-vision-top .h2-premium{
  margin-top: 0;
  margin-bottom: .5rem;
}
.page-federation .fed-vision-sub{
  margin: 0;
  max-width: 52ch;
  font-size: clamp(1rem, 1.1vw, 1.08rem);
  line-height: 1.58;
  color: rgba(46,54,66,.72);
  font-weight: 500;
}
.page-federation .fed-vision-pillars{
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1rem, 2vw, 1.25rem);
  margin-bottom: clamp(1.75rem, 3.5vw, 2.35rem);
}
@media (min-width: 768px){
  .page-federation .fed-vision-pillars{
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1rem, 1.8vw, 1.35rem);
  }
}
.page-federation .fed-vision-pillar{
  margin: 0;
  padding: clamp(1.15rem, 2.2vw, 1.45rem);
  border-radius: 18px;
  border: 1px solid rgba(60,70,85,.12);
  background: rgba(255,255,255,.92);
  box-shadow: 0 12px 36px rgba(11,13,18,.05);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .55rem;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.page-federation .fed-vision-pillar:hover{
  border-color: rgba(47,143,58,.22);
  box-shadow: 0 16px 44px rgba(11,13,18,.07);
}
.page-federation .fed-vision-pillar__icon{
  width: 46px;
  height: 46px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  font-size: 1.2rem;
  border: 1px solid rgba(47,143,58,.22);
  background: rgba(47,143,58,.09);
  color: #2a7d33;
}
.page-federation .fed-vision-pillar__icon--accent{
  border-color: rgba(240,138,26,.2);
  background: rgba(240,138,26,.07);
  color: #fb923c;
}
.page-federation .fed-vision-pillar__title{
  margin: 0;
  font-family: "Oswald", "Inter", system-ui, sans-serif;
  font-size: clamp(1.02rem, 1.2vw, 1.12rem);
  font-weight: 600;
  letter-spacing: .4px;
  text-transform: uppercase;
  color: rgba(46,54,66,.94);
  line-height: 1.2;
}
.page-federation .fed-vision-pillar__text{
  margin: 0;
  font-size: .9rem;
  line-height: 1.58;
  color: rgba(46,54,66,.7);
}
.page-federation .fed-section-head .h2-premium{
  margin-top: 0;
}
.page-federation .fed-prose{
  max-width: 68ch;
}
.page-federation .fed-plain-ul{
  margin: 0;
  padding-left: 1.15rem;
  color: rgba(46,54,66,.74);
  line-height: 1.65;
}
.page-federation .fed-plain-ul li{
  margin-bottom: .35rem;
}
.page-federation .fed-chapter--equipe{
  background:
    radial-gradient(680px 300px at 8% 0%, rgba(47,143,58,.06), transparent 55%),
    rgba(255,255,255,.58);
}
.page-federation .fed-team-board{
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1rem, 2vw, 1.2rem);
}
@media (min-width: 768px){
  .page-federation .fed-team-board{
  grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1200px){
  .page-federation .fed-team-board{
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(.85rem, 1.5vw, 1.05rem);
  }
}
.page-federation .fed-team-slot{
  margin: 0;
  border-radius: 18px;
  border: 1px solid rgba(60,70,85,.12);
  background: rgba(255,255,255,.95);
  box-shadow: 0 14px 40px rgba(11,13,18,.06);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.page-federation .fed-team-slot:hover{
  transform: translateY(-3px);
  box-shadow: 0 20px 52px rgba(11,13,18,.09);
  border-color: rgba(47,143,58,.2);
}
.page-federation .fed-team-slot__band{
  padding: .5rem 1rem;
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.95);
  background: linear-gradient(90deg, #2f8f3a, #267d30);
}
.page-federation .fed-team-slot__band--accent{
  background: linear-gradient(90deg, #f08a1a, #fb923c);
}
.page-federation .fed-team-slot__main{
  padding: clamp(1.1rem, 2vw, 1.35rem);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .35rem;
}
.page-federation .fed-team-slot__avatar{
  width: 64px;
  height: 64px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  margin-bottom: .25rem;
  background: linear-gradient(145deg, rgba(47,143,58,.14), rgba(240,138,26,.1));
  border: 1px solid rgba(60,70,85,.1);
  color: rgba(46,54,66,.48);
  font-size: 1.65rem;
}
.page-federation .fed-team-slot__name{
  margin: 0;
  font-size: clamp(1.05rem, 1.35vw, 1.22rem);
  color: rgba(46,54,66,.96);
  line-height: 1.2;
}
.page-federation .fed-team-slot__role{
  margin: 0;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(240,138,26,.85);
}
.page-federation .fed-team-slot__desc{
  margin: .25rem 0 0;
  font-size: .84rem;
  line-height: 1.5;
  color: rgba(46,54,66,.66);
  max-width: 28ch;
}
.page-federation .fed-cta-bar{
  padding: clamp(1.35rem, 3vw, 2rem) 0 clamp(2rem, 4vw, 2.75rem);
  border-top: 1px solid rgba(60,70,85,.12);
  background: linear-gradient(180deg, rgba(242,244,247,.5), rgba(255,255,255,.4));
}
.page-federation .fed-cta-bar__inner{
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: flex-start;
  padding: clamp(1.1rem, 2.2vw, 1.45rem) clamp(1.15rem, 2.5vw, 1.65rem);
  border-radius: 18px;
  border: 1px solid rgba(60,70,85,.12);
  background:
    radial-gradient(520px 140px at 0% 0%, rgba(47,143,58,.1), transparent 65%),
    linear-gradient(135deg, rgba(255,255,255,.95), rgba(242,244,247,.88));
  box-shadow: 0 14px 40px rgba(11,13,18,.07);
}
@media (min-width: 768px){
  .page-federation .fed-cta-bar__inner{
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
  }
}
.page-federation .fed-cta-bar__text{
  max-width: 46ch;
  font-weight: 600;
  color: rgba(46,54,66,.82);
  line-height: 1.5;
  font-size: clamp(.95rem, 1.05vw, 1.02rem);
}
.page-federation .fed-cta-bar__actions{
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  flex-shrink: 0;
}

/* Page Clubs */
body.page-clubs{
  background:
    radial-gradient(880px 480px at 8% 4%, rgba(47,143,58,.08), transparent 58%),
    radial-gradient(760px 420px at 94% 8%, rgba(240,138,26,.06), transparent 58%),
    linear-gradient(180deg, #ffffff, rgba(242,244,247,.96) 48%);
}
.page-clubs .clubs-page-hero .hero-media{
  transform: none;
  filter: none;
}
.page-clubs .clubs-main .section{
  padding-top: clamp(3rem, 5vw, 4rem);
  padding-bottom: clamp(3.5rem, 6vw, 5rem);
}
.page-clubs .clubs-board{
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1rem, 2vw, 1.2rem);
}
@media (min-width: 768px){
  .page-clubs .clubs-board{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1200px){
  .page-clubs .clubs-board{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.page-clubs .clubs-card{
  position: relative;
  border-radius: 18px;
  border: 1px solid rgba(60,70,85,.12);
  background: rgba(255,255,255,.96);
  box-shadow: 0 12px 38px rgba(11,13,18,.06);
  padding: clamp(1.1rem, 2vw, 1.35rem);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.page-clubs .clubs-card::before{
  content: "";
  position: absolute;
  left: 0;
  top: 12px;
  bottom: 12px;
  width: 3px;
  border-radius: 999px;
  background: linear-gradient(180deg, #2f8f3a, #f08a1a);
  opacity: .88;
}
.page-clubs .clubs-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 48px rgba(11,13,18,.09);
  border-color: rgba(47,143,58,.2);
}
.page-clubs .clubs-card__head{
  display: flex;
  flex-wrap: wrap;
    align-items: center;
  gap: .5rem .75rem;
  margin-bottom: .65rem;
  padding-left: .35rem;
}
.page-clubs .clubs-card__index{
  font-family: "Oswald", "Inter", system-ui, sans-serif;
  font-weight: 700;
  font-size: .75rem;
  letter-spacing: .08em;
  color: rgba(46,54,66,.28);
  margin-right: .15rem;
}
.page-clubs .clubs-card__city{
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .78rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: rgba(46,54,66,.82);
}
.page-clubs .clubs-card__city i{
  color: #2a7d33;
}
.page-clubs .clubs-card__zone{
  margin-left: auto;
  font-size: .78rem;
  color: rgba(46,54,66,.52);
  font-weight: 600;
}
@media (max-width: 420px){
  .page-clubs .clubs-card__zone{
    margin-left: 0;
    width: 100%;
  }
}
.page-clubs .clubs-card__title{
  margin: 0 0 .75rem;
  padding-left: .35rem;
  font-size: clamp(1.12rem, 1.4vw, 1.28rem);
  font-weight: 700;
  color: rgba(46,54,66,.96);
  line-height: 1.2;
}
.page-clubs .clubs-card__meta{
  padding-left: .35rem;
  margin-bottom: 1rem;
  display: flex;
  flex-direction: column;
  gap: .4rem;
  font-size: .88rem;
  line-height: 1.45;
  color: rgba(46,54,66,.72);
}
.page-clubs .clubs-card__meta li{
  display: flex;
  align-items: flex-start;
  gap: .5rem;
}
.page-clubs .clubs-card__meta i{
  flex-shrink: 0;
  margin-top: .15rem;
  color: rgba(47,143,58,.85);
}
.page-clubs .clubs-card__actions{
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  padding-left: .35rem;
}
.page-clubs .clubs-cta{
  border-radius: 20px;
}

/* Page Actualités (grille + filtres) */
body.page-actualites{
  background:
    radial-gradient(820px 440px at 10% 0%, rgba(47,143,58,.07), transparent 58%),
    linear-gradient(180deg, #ffffff, rgba(242,244,247,.97) 40%);
}
.page-actualites .actu-page-hero .hero-media{
  transform: none;
  filter: none;
}
.page-actualites .actu-main.section{
  padding-top: clamp(2rem, 4vw, 3rem);
  padding-bottom: clamp(3rem, 5vw, 4.5rem);
}
.page-actualites .actu-filter-panel{
  background: #fff;
  border-radius: 18px;
  border: 1px solid rgba(60,70,85,.1);
  box-shadow: 0 14px 44px rgba(11,13,18,.08);
  padding: clamp(1.1rem, 2.2vw, 1.45rem) clamp(1.15rem, 2.2vw, 1.5rem);
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}
.page-actualites .actu-filter-panel__head{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .75rem 1.25rem;
  margin-bottom: 1rem;
  padding-bottom: .85rem;
  border-bottom: 1px solid rgba(60,70,85,.1);
}
.page-actualites .actu-filter-panel__left{
  display: flex;
  align-items: center;
  gap: .75rem;
  min-width: 0;
}
.page-actualites .actu-filter-panel__icon{
  width: 44px;
  height: 44px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  background: linear-gradient(145deg, #2f8f3a, #267d30);
  color: #fff;
  font-size: 1.15rem;
  box-shadow: 0 6px 18px rgba(47,143,58,.28);
}
.page-actualites .actu-filter-panel__count{
  font-size: .95rem;
  font-weight: 650;
  color: rgba(46,54,66,.88);
}
.page-actualites .actu-filter-panel__count #actuCount{
  font-weight: 800;
  color: #2a7d33;
}
.page-actualites .actu-filter-panel__filtre{
  font-size: .9rem;
  font-weight: 600;
  color: rgba(46,54,66,.55);
}
.page-actualites .actu-filter-panel__filtre #actuFilterLabel{
  color: #f08a1a;
  font-weight: 750;
}
.page-actualites .actu-filter-panel__pills{
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.page-actualites .actu-pill{
  border: 1px solid rgba(60,70,85,.2);
  background: #fff;
  color: rgba(11,13,18,.9);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: .55rem 1rem;
  border-radius: 999px;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.page-actualites .actu-pill:hover{
  border-color: rgba(47,143,58,.35);
  color: #2a7d33;
}
.page-actualites .actu-pill.is-active{
  background: linear-gradient(145deg, #2f8f3a, #2a7d33);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 6px 20px rgba(47,143,58,.25);
}
.page-actualites .actu-pill:focus-visible{
  outline: 2px solid rgba(47,143,58,.5);
  outline-offset: 2px;
}
.page-actualites .actu-grid{
  display: grid;
    grid-template-columns: 1fr;
  gap: clamp(1.15rem, 2.2vw, 1.5rem);
}
@media (min-width: 768px){
  .page-actualites .actu-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1200px){
  .page-actualites .actu-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.page-actualites .actu-card{
  border-radius: 18px;
  border: 1px solid rgba(60,70,85,.1);
  background: #fff;
  box-shadow: 0 12px 36px rgba(11,13,18,.06);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
  transition: box-shadow .25s ease, transform .25s ease;
}
.page-actualites .actu-card:hover{
  box-shadow: 0 20px 50px rgba(11,13,18,.1);
  transform: translateY(-2px);
}
.page-actualites .actu-card.is-hidden{
  display: none !important;
}
.page-actualites .actu-card__media{
  position: relative;
  display: block;
  aspect-ratio: 16 / 10;
  background: linear-gradient(165deg, #e8eaef, #d8dce5);
  overflow: hidden;
}
.page-actualites .actu-card__media img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: linear-gradient(165deg, #f3f5f9, #e7eaf1);
  transition: opacity .25s ease;
}
.page-actualites .actu-card:hover .actu-card__media img{
  opacity: .98;
}
.page-actualites .actu-card__media-badge{
  position: absolute;
  left: .75rem;
  bottom: .75rem;
  padding: .28rem .55rem;
  border-radius: 8px;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #fff;
  background: rgba(240,138,26,.92);
  backdrop-filter: blur(6px);
}
.page-actualites .actu-card__body{
  padding: clamp(1rem, 2vw, 1.25rem);
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  gap: .4rem;
}
.page-actualites .actu-card__cat{
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #2a7d33;
}
.page-actualites .actu-card__title{
  margin: 0;
  font-size: clamp(1.05rem, 1.25vw, 1.2rem);
  font-weight: 800;
  line-height: 1.28;
  color: rgba(11,13,18,.94);
}
.page-actualites .actu-card__title a{
  color: inherit;
  text-decoration: none;
}
.page-actualites .actu-card__title a:hover{
  color: #2a7d33;
}
.page-actualites .actu-card__date{
  margin: 0;
  font-size: .84rem;
  color: rgba(46,54,66,.58);
  display: flex;
  align-items: center;
  gap: .4rem;
}
.page-actualites .actu-card__date i{
  color: rgba(47,143,58,.75);
}
.page-actualites .actu-card__excerpt{
  margin: 0;
  font-size: .9rem;
  line-height: 1.55;
  color: rgba(46,54,66,.72);
  flex: 1 1 auto;
}
.page-actualites .actu-card__more{
  margin-top: .35rem;
  font-size: .88rem;
  font-weight: 750;
  color: #2a7d33;
  text-decoration: none;
  align-self: flex-start;
}
.page-actualites .actu-card__more:hover{
  color: #1f6b28;
  text-decoration: underline;
}

/* Cartes actualités — style “texte” (icônes) */
.page-actualites .actu-emoji{
  display: inline-block;
  margin-right: .35rem;
  transform: translateY(1px);
}
.page-actualites .actu-title-line a{
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.page-actualites .actu-excerpt-line{
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Page détail actualité : image entière dans un cadre à taille fixe */
.page-actualite .actu-detail-media{
  box-sizing: border-box;
  width: 100%;
  height: 420px;
  border-radius: 16px;
  background:
    linear-gradient(145deg, rgba(11,13,18,.05), rgba(11,13,18,.10));
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-actualite .actu-detail-media__img{
  box-sizing: border-box;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
  border-radius: 12px;
}
@media (max-width: 576px){
  .page-actualite .actu-detail-media{
    height: 260px;
  }
}

/* Accueil (home5) — tronquage "…" sur actus */
body.home5 .home5-newsGrid .home5-leadNews .excerpt{
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
body.home5 .home5-newsGrid .home5-strip .home5-chip .t{
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Page Adhésion */
body.page-adhesion{
  background:
    radial-gradient(860px 460px at 6% 2%, rgba(240,138,26,.09), transparent 58%),
    radial-gradient(780px 400px at 96% 6%, rgba(47,143,58,.08), transparent 58%),
    linear-gradient(180deg, #ffffff, rgba(242,244,247,.97) 45%);
}
.page-adhesion main section[id]{
  scroll-margin-top: 7.5rem;
}
@media (max-width: 991.98px){
  .page-adhesion main section[id]{
    scroll-margin-top: 6.75rem;
  }
}
.page-adhesion .adh-page-hero .hero-media{
  transform: none;
  filter: none;
  background:
    linear-gradient(135deg, rgba(240,138,26,.08) 0%, transparent 40%),
    linear-gradient(225deg, rgba(47,143,58,.1) 0%, transparent 42%),
    linear-gradient(180deg, rgba(255,255,255,.28), rgba(247,250,248,.9)),
    url("../img/hero-dojang.svg");
  background-size: cover;
  background-position: center;
}
.page-adhesion .adh-subnav{
  position: sticky;
  top: 72px;
  z-index: 1010;
  border-bottom: 1px solid rgba(60,70,85,.1);
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(12px);
  box-shadow: 0 6px 28px rgba(11,13,18,.05);
}
@media (max-width: 991.98px){
  .page-adhesion .adh-subnav{
    top: 66px;
  }
}
.page-adhesion .adh-subnav-list{
  list-style: none;
  margin: 0;
  padding: .5rem 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .35rem;
}
@media (max-width: 576px){
  .page-adhesion .adh-subnav-list{
    grid-template-columns: 1fr;
  }
}
.page-adhesion .adh-subnav-link{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  padding: .68rem .5rem;
  text-decoration: none;
  color: rgba(46,54,66,.92);
  font-weight: 650;
  font-size: .84rem;
  border-radius: 12px;
  transition: background .2s ease, color .2s ease;
}
.page-adhesion .adh-subnav-link:hover{
  background: rgba(240,138,26,.12);
  color: rgba(46,54,66,.98);
}
.page-adhesion .adh-subnav-link i{
  font-size: 1rem;
  color: #f08a1a;
}
.page-adhesion .adh-section{
  padding-top: clamp(2.5rem, 5vw, 3.75rem);
  padding-bottom: clamp(2.75rem, 5.5vw, 4rem);
}
.page-adhesion .adh-section-intro{
  max-width: 52ch;
  margin-bottom: clamp(1.75rem, 3.2vw, 2.35rem);
}
.page-adhesion .adh-section-intro .h2-premium{
  margin: .45rem 0 .55rem;
}
.page-adhesion .adh-section-lead{
  font-size: clamp(1.02rem, 1.1vw, 1.08rem);
  line-height: 1.62;
  max-width: 48ch;
}
.page-adhesion .adh-steps{
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1rem, 2vw, 1.25rem);
}
@media (min-width: 768px){
  .page-adhesion .adh-steps{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.page-adhesion .adh-step{
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  border-radius: 18px;
  border: 1px solid rgba(60,70,85,.12);
  background: rgba(255,255,255,.96);
  box-shadow: 0 12px 38px rgba(11,13,18,.06);
  padding: clamp(1.15rem, 2vw, 1.45rem);
  position: relative;
  transition: box-shadow .22s ease, transform .22s ease, border-color .22s ease;
}
.page-adhesion .adh-step::before{
  content: "";
  position: absolute;
  left: 0;
  top: 14px;
  bottom: 14px;
  width: 3px;
  border-radius: 999px;
  background: linear-gradient(180deg, #2f8f3a, #f08a1a);
  opacity: .9;
}
.page-adhesion .adh-step:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 48px rgba(11,13,18,.09);
  border-color: rgba(47,143,58,.22);
}
.page-adhesion .adh-step__icon{
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: rgba(47,143,58,.12);
  color: #267d30;
  font-size: 1.35rem;
}
.page-adhesion .adh-step__icon--accent{
  background: rgba(240,138,26,.14);
  color: #f08a1a;
}
.page-adhesion .adh-step__body{
  min-width: 0;
  padding-left: .15rem;
}
.page-adhesion .adh-step__num{
  display: block;
  font-family: "Oswald", "Inter", system-ui, sans-serif;
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(46,54,66,.38);
  margin-bottom: .35rem;
}
.page-adhesion .adh-step__title{
  font-size: clamp(1.05rem, 1.15vw, 1.18rem);
  margin: 0 0 .45rem;
  line-height: 1.2;
}
.page-adhesion .adh-step__text{
  font-size: .92rem;
  line-height: 1.55;
  color: rgba(46,54,66,.76);
}
.page-adhesion .adh-section--form{
  background:
    radial-gradient(720px 320px at 0% 30%, rgba(47,143,58,.05), transparent 55%),
    radial-gradient(640px 280px at 100% 70%, rgba(240,138,26,.04), transparent 55%),
    rgba(255,255,255,.55);
  border-top: 1px solid rgba(60,70,85,.08);
}
.page-adhesion .adh-form-aside .h2-premium{
  margin: .45rem 0 .65rem;
}
.page-adhesion .adh-aside-card{
  border-radius: 16px;
  border: 1px solid rgba(60,70,85,.12);
  background: rgba(255,255,255,.88);
  padding: 1rem 1.1rem;
  box-shadow: 0 8px 28px rgba(11,13,18,.05);
}
.page-adhesion .adh-form-card{
  border-radius: 20px;
  border: 1px solid rgba(60,70,85,.1);
  box-shadow: 0 16px 48px rgba(11,13,18,.07);
}

/* Admin — connexion & tableau de bord */
body.page-admin-login{
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background:
    radial-gradient(900px 480px at 8% 0%, rgba(240,138,26,.08), transparent 58%),
    radial-gradient(800px 420px at 96% 20%, rgba(47,143,58,.07), transparent 58%),
    linear-gradient(180deg, #ffffff, #f4f7f5);
}
.admin-login-top{
  background: rgba(255,255,255,.92);
  border-bottom: 1px solid rgba(60,70,85,.1);
  backdrop-filter: blur(12px);
}
.admin-login-shell{
  flex: 1 1 auto;
  display: flex;
    align-items: center;
  justify-content: center;
  padding: clamp(2rem, 5vw, 3.5rem) 1rem 2rem;
}
.admin-login-card{
  width: 100%;
  max-width: 440px;
}
.admin-login-badge{
  width: 56px;
  height: 56px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, rgba(47,143,58,.14), rgba(240,138,26,.12));
  border: 1px solid rgba(60,70,85,.12);
  color: #2f8f3a;
  font-size: 1.5rem;
}
.admin-login-form{
  border-radius: 20px;
}
.admin-login-hint code{
  background: rgba(47,143,58,.08);
  color: #267d30;
  padding: 0.1rem 0.35rem;
  border-radius: 6px;
  font-size: 0.85em;
}
body.page-admin-dashboard{
  min-height: 100vh;
  background: linear-gradient(180deg, #f7faf8, #eef2ef);
}
.admin-dash-header{
  position: sticky;
  top: 0;
  z-index: 1030;
  box-shadow: 0 4px 24px rgba(11,13,18,.06);
}
.admin-dash-tile{
  border-radius: 18px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.admin-dash-tile:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 40px rgba(11,13,18,.08);
}

/* Admin dashboard — Aperçu rapide */
.page-admin-dashboard .admin-quick-card{
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.78));
  border: 1px solid rgba(12, 18, 28, .08);
  box-shadow: 0 12px 36px rgba(11,13,18,.06);
  overflow: hidden;
}
.page-admin-dashboard .admin-quick-card__head{
  padding: 12px 14px 10px;
  border-bottom: 1px solid rgba(12, 18, 28, .06);
  background: radial-gradient(900px 220px at 0% 0%, rgba(244, 126, 32, .14), transparent 52%);
}
.page-admin-dashboard .admin-quick-card--gold .admin-quick-card__head{
  background: radial-gradient(900px 220px at 0% 0%, rgba(213, 159, 29, .18), transparent 52%);
}
.page-admin-dashboard .admin-quick-card__title{
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  color: #0b0d12;
  letter-spacing: .2px;
}
.page-admin-dashboard .admin-quick-card__icon{
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(47,143,58,.10);
  color: #267d30;
  border: 1px solid rgba(47,143,58,.16);
}
.page-admin-dashboard .admin-quick-card--gold .admin-quick-card__icon{
  background: rgba(244, 126, 32, .10);
  color: #cc5b10;
  border: 1px solid rgba(244, 126, 32, .18);
}
.page-admin-dashboard .admin-quick-list{
  list-style: none;
  margin: 0;
  padding: 10px 14px 14px;
}
.page-admin-dashboard .admin-quick-empty{
  color: rgba(85, 92, 106, .92);
  font-size: .92rem;
}
.page-admin-dashboard .admin-quick-item{
  padding: 10px 0;
  border-bottom: 1px dashed rgba(12, 18, 28, .10);
}
.page-admin-dashboard .admin-quick-item:last-child{
  border-bottom: none;
  padding-bottom: 2px;
}
.page-admin-dashboard .admin-quick-item__title{
  font-weight: 700;
  color: #0b0d12;
  line-height: 1.25;
}
.page-admin-dashboard .admin-quick-item__meta{
  margin-top: 4px;
  color: rgba(85, 92, 106, .92);
  font-size: .86rem;
}

