/* === FC FULBERT THEME (CLEAN) === */
:root {
  --purple-900:#2a0d42;
  --purple-800:#3b1460;
  --purple-700:#4a1b78;
  --purple-600:#5a248f; /* principal */
  --purple-500:#6a31a3; /* hover */
  --purple-400:#8448bf; /* accent léger */
  --purple-100:#efe7f8; /* surface teintée */
  --accent:#ffcc33; /* accent secondaire */
  --surface:#ffffff;
  --bg:#faf9fc;
  --text:#1f1a25;
  --text-soft:#625a6d;
  --border:#e3dced;
  --shadow-sm:0 2px 4px -2px rgba(50,20,80,.08),0 4px 10px -4px rgba(50,20,80,.08);
  --shadow-hover:0 4px 16px -4px rgba(50,20,80,.20);
  --radius-xs:3px;--radius-sm:6px;--radius-md:12px;
  --transition:.22s cubic-bezier(.38,.07,.22,.98);
  --max-width:1380px; /* largeur principale augmentée */
  --max-width-xl:1680px; /* très grands écrans */
  --gradient-hero:linear-gradient(100deg,rgba(58,20,104,.86),rgba(90,36,143,.85));
  --focus:var(--purple-500);
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0;font-family:'Poppins',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  background:var(--bg);color:var(--text);line-height:1.55;-webkit-font-smoothing:antialiased;font-weight:400;
}

img { max-width:100%;display:block;height:auto; }

a { color:var(--purple-600);text-decoration:none; }
a:hover,a:focus { text-decoration:underline;text-decoration-thickness:2px; }

.skip-link { position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden; }
.skip-link:focus { left:8px;top:8px;width:auto;height:auto;background:var(--accent);padding:.55rem 1rem;border-radius:var(--radius-sm);z-index:1000;color:#000;font-weight:600; }

.container { width:100%;max-width:var(--max-width);margin:0 auto;padding:0 1.4rem; }

@media (min-width:1700px){
  .container { max-width:var(--max-width-xl); }
  .hero-content { max-width:760px; }
}

/* Utilitaire: forcer un bloc en pleine largeur (ex: bande annonce, sponsor) */
.full-bleed { width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw; }
.section { padding:3.2rem 0 2.8rem; }
.section-head { display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1.75rem;flex-wrap:wrap; }
.section-head h2 { margin:0;font-size:clamp(1.6rem,3vw,2.2rem); }
.see-more { font-size:.85rem;font-weight:500;letter-spacing:.5px; }

/* HEADER */
.site-header { position:sticky;top:0;background:rgba(255,255,255,.82);backdrop-filter:saturate(210%) blur(18px);border-bottom:1px solid var(--border);z-index:60; }
.header-inner { display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:.6rem 0; }
.branding { display:flex;align-items:center;gap:.75rem; }
.logo { width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px var(--border),0 4px 10px -4px rgba(50,20,80,.25); }
.logo img { width:100%;height:100%;object-fit:contain; }
.club-name { font-size:1.25rem;line-height:1.05;margin:0;font-weight:600;letter-spacing:.5px; }
.club-tagline { margin:.15rem 0 0;font-size:.6rem;letter-spacing:1px;text-transform:uppercase;font-weight:500;color:var(--text-soft); }

.main-nav { font-size:.95rem; }
.main-nav ul { list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:1.4rem; }
.main-nav a { position:relative;display:inline-block;padding:.45rem .2rem;border-radius:var(--radius-xs);color:var(--text);font-weight:500; }
.main-nav a:after { content:"";position:absolute;left:12%;bottom:4px;height:2px;width:0;background:var(--purple-500);border-radius:2px;transition:var(--transition); }
.main-nav a:hover:after,.main-nav a:focus:after { width:76%; }
.main-nav a:hover,.main-nav a:focus { background:rgba(0,0,0,.04); }

.nav-toggle { display:none;background:var(--purple-600);border:0;color:#fff;padding:.55rem .85rem;font-size:1.02rem;border-radius:var(--radius-sm);cursor:pointer;font-weight:500;letter-spacing:.5px; }
.nav-toggle:hover,.nav-toggle:focus { background:var(--purple-500); }

/* HERO */
.hero { position:relative;min-height:60vh;display:flex;align-items:center;background:var(--gradient-hero),url('https://source.unsplash.com/1600x900/?stadium,night') center/cover no-repeat;color:#fff;text-align:left; }
.hero .overlay { position:absolute;inset:0; }
.hero-content { position:relative;z-index:2;max-width:640px;padding:3.1rem 1.2rem 3.3rem; }
.hero h2 { margin:0 0 1.05rem;font-size:clamp(2.05rem,4.6vw,3rem);font-weight:600;letter-spacing:.5px;line-height:1.1; }
.hero h2 span { color:#fff; }
.hero p { font-size:clamp(1.02rem,2vw,1.18rem);margin:0 0 1.85rem;font-weight:300;color:rgba(255,255,255,.9); }
.hero-actions { display:flex;gap:.9rem;flex-wrap:wrap; }
.scroll-indicator { position:absolute;bottom:1.25rem;left:50%;transform:translateX(-50%);font-size:1.6rem;opacity:.7;animation:float 2.4s ease-in-out infinite; }
@keyframes float { 0%,100%{ transform:translate(-50%,0);} 50%{ transform:translate(-50%,-8px);} }

/* BUTTONS */
.btn { --btn-bg:var(--purple-600);--btn-color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.72rem 1.15rem;border-radius:var(--radius-sm);font-weight:500;font-size:.92rem;cursor:pointer;transition:var(--transition);border:1px solid var(--purple-600);box-shadow:var(--shadow-sm); }
.btn.primary { background:var(--btn-bg);color:var(--btn-color); }
.btn.primary:hover,.btn.primary:focus { background:var(--purple-500);border-color:var(--purple-500);box-shadow:var(--shadow-hover); }
.btn.outline { background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.5);backdrop-filter:blur(4px); }
.btn.outline:hover,.btn.outline:focus { background:#fff;color:var(--purple-700); }

/* NEWS */
.news-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.4rem; }
/* Variante grand format (3 colonnes max) */
.news-grid.lg { grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); }
.news-grid.lg .news-card { font-size:1rem; }
.news-grid.lg .news-body h3 { font-size:1.12rem; }

/* Pagination Actualités */
.pagination { display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;justify-content:center;margin:2.2rem 0 0; }
.pagination button { background:var(--surface);border:1px solid var(--border);color:var(--text);padding:.55rem .85rem;border-radius:var(--radius-sm);font:inherit;font-size:.72rem;font-weight:600;letter-spacing:.6px;text-transform:uppercase;cursor:pointer;transition:var(--transition);min-width:42px; }
.pagination button:hover,.pagination button:focus { border-color:var(--purple-500);color:var(--purple-700);box-shadow:var(--shadow-sm); }
.pagination button[disabled] { opacity:.4;cursor:not-allowed; }
.pagination button[aria-current="page"] { background:var(--purple-600);color:#fff;border-color:var(--purple-600);box-shadow:var(--shadow-sm); }
.pagination .page-info { font-size:.65rem;font-weight:600;letter-spacing:.6px;color:var(--text-soft);margin:0 .6rem; }

/* Highlight ancré */
.news-card.anchor-flash { animation:flashBorder 2.2s ease;position:relative; }
@keyframes flashBorder { 0%{ box-shadow:0 0 0 0 rgba(130,60,200,.0),0 0 0 0 rgba(130,60,200,.0);} 10%{ box-shadow:0 0 0 3px rgba(130,60,200,.25),0 0 0 0 rgba(130,60,200,.0);} 40%{ box-shadow:0 0 0 3px rgba(130,60,200,.25),0 0 14px -4px rgba(90,36,143,.45);} 100%{ box-shadow:0 0 0 0 rgba(130,60,200,.0),0 0 0 0 rgba(90,36,143,.0);} }
@media (prefers-reduced-motion:reduce){ .news-card.anchor-flash { animation:none;outline:3px solid var(--purple-500); } }

/* === MATCHS PAGE === */
.matchs-filtres { display:grid;gap:1rem 1.2rem;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:end;margin:1.8rem 0 2.2rem;padding:1rem 1.15rem 1.15rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);position:relative; }
.matchs-filtres:before { content:"Filtres";position:absolute;top:-10px;left:12px;background:var(--purple-600);color:#fff;font-size:.55rem;letter-spacing:.8px;text-transform:uppercase;font-weight:600;padding:.25rem .45rem;border-radius:var(--radius-xs);box-shadow:0 2px 6px -2px rgba(50,20,80,.35); }
.matchs-filtres label { font-size:.62rem;text-transform:uppercase;letter-spacing:.55px;font-weight:600;color:var(--text-soft);display:block;margin:0 0 .35rem; }
.matchs-filtres input[type=search],
.matchs-filtres select { width:100%;padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;font:inherit;box-shadow:var(--shadow-sm);transition:var(--transition); }
.matchs-filtres input[type=search]:focus,
.matchs-filtres select:focus { outline:2px solid var(--focus);border-color:var(--focus); }
.matchs-filtres input[type=search] { padding-left:2.1rem; }
.matchs-filtres .search-wrap { position:relative; }
.matchs-filtres .search-wrap:before { content:'🔎';position:absolute;left:.65rem;top:50%;transform:translateY(-50%);font-size:.9rem;opacity:.55;pointer-events:none; }
.matchs-filtres .mf-actions { display:flex;align-items:center;gap:.6rem; }
.matchs-filtres .btn.small { --btn-bg:var(--purple-600);background:var(--purple-600);color:#fff;border:1px solid var(--purple-600);padding:.6rem .85rem;font-size:.65rem;text-transform:uppercase;font-weight:600;letter-spacing:.6px;border-radius:var(--radius-sm);cursor:pointer;box-shadow:var(--shadow-sm); }
.matchs-filtres .btn.small:hover,.matchs-filtres .btn.small:focus { background:var(--purple-500);border-color:var(--purple-500); }
.matchs-filtres .mf-meta { font-size:.63rem;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--text-soft); }
@media (min-width:860px){
	.matchs-filtres { grid-template-columns:repeat(6,1fr); }
	.matchs-filtres .mf-meta { grid-column:1 / -1;text-align:right; }
}
@media (max-width:520px){
	.matchs-filtres { padding:.85rem .85rem 1rem; }
	.matchs-filtres:before { left:10px; }
}

/* Fixture cards */
.schedule-grid { display:grid;gap:1rem; }
.fixture-card { background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem 1.05rem .95rem;display:flex;flex-direction:column;gap:.55rem;position:relative;overflow:hidden;transition:var(--transition);box-shadow:var(--shadow-sm); }
.fixture-card:before { content:"";position:absolute;inset:0;background:linear-gradient(120deg,var(--purple-500) 0%,var(--purple-700) 60%,transparent 80%);opacity:.05;pointer-events:none; }
.fixture-card header { display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.55px;font-weight:600;color:var(--purple-600); }
.fixture-card header time { font-size:.66rem;font-weight:600;letter-spacing:.6px;color:var(--purple-700); }
.fixture-card .teams { display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;font-weight:600;font-size:clamp(.95rem,1.1vw,1.05rem); }
.fixture-card .teams .vs { color:var(--purple-600);font-weight:700; }
.fixture-card .meta-line { display:flex;flex-wrap:wrap;gap:.6rem;font-size:.62rem;letter-spacing:.5px;text-transform:uppercase;color:var(--text-soft);align-items:center; }
.fixture-card .compet { background:var(--purple-100);color:var(--purple-700);padding:.25rem .5rem;border-radius:var(--radius-xs);font-size:.58rem;letter-spacing:.5px; }
.fixture-card .tag { padding:.25rem .45rem;border-radius:var(--radius-xs);font-size:.55rem;letter-spacing:.6px;font-weight:700;line-height:1;background:var(--purple-600);color:#fff;box-shadow:0 2px 4px -2px rgba(40,10,70,.4); }
.fixture-card .tag-dom { background:linear-gradient(120deg,var(--purple-600),var(--purple-400)); }
.fixture-card .tag-ext { background:linear-gradient(120deg,var(--purple-700),var(--purple-500)); }
.fixture-card:hover { border-color:var(--purple-500);box-shadow:var(--shadow-hover);transform:translateY(-2px); }

/* Responsive adjustments for fixtures */
@media (min-width:640px){
	.schedule-grid { grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); }
}
@media (min-width:1200px){
	.schedule-grid { grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); }
}

/* Styles spécifiques filtres actualités */
.actus-filtres { display:grid;gap:1rem 1.25rem;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:end;margin:1.8rem 0 2rem;padding:1rem 1.15rem 1.15rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);position:relative; }
.actus-filtres:before { content:"Filtrer";position:absolute;top:-10px;left:12px;background:var(--purple-600);color:#fff;font-size:.55rem;letter-spacing:.8px;text-transform:uppercase;font-weight:600;padding:.25rem .45rem;border-radius:var(--radius-xs);box-shadow:0 2px 6px -2px rgba(50,20,80,.35); }
.actus-filtres label { font-size:.62rem;text-transform:uppercase;letter-spacing:.55px;font-weight:600;color:var(--text-soft);display:block;margin:0 0 .35rem; }
.actus-filtres input[type=search],
.actus-filtres select { width:100%;padding:.62rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;font:inherit;box-shadow:var(--shadow-sm);transition:var(--transition); }
.actus-filtres input[type=search]:focus,
.actus-filtres select:focus { outline:2px solid var(--focus);border-color:var(--focus); }
.actus-filtres input[type=search] { padding-left:2.2rem; }
.actus-filtres .filter-group { position:relative; }
.actus-filtres .filter-group.search-wrap:before { content:"🔍";position:absolute;left:.7rem;top:50%;transform:translateY(-50%);font-size:.95rem;opacity:.55;pointer-events:none; }
.actus-filtres .filter-actions { display:flex;align-items:center;gap:.6rem; }
.actus-filtres button.btn.small { --btn-bg:var(--purple-600);background:var(--purple-600);color:#fff;border:1px solid var(--purple-600);padding:.6rem .85rem;font-size:.65rem;text-transform:uppercase;font-weight:600;letter-spacing:.6px;border-radius:var(--radius-sm);cursor:pointer;box-shadow:var(--shadow-sm); }
.actus-filtres button.btn.small:hover,.actus-filtres button.btn.small:focus { background:var(--purple-500);border-color:var(--purple-500); }
.actus-filtres #filter-count { font-size:.63rem;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--text-soft); }
@media (min-width:840px){
	.actus-filtres { grid-template-columns:repeat(5,1fr); }
	.actus-filtres .filter-actions { justify-content:flex-start; }
	.actus-filtres #filter-count { text-align:right;grid-column:1 / -1; }
}
@media (max-width:520px){
	.actus-filtres { padding:.85rem .85rem 1rem; }
	.actus-filtres:before { left:10px; }
}
.news-card { background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;display:flex;flex-direction:column;transition:var(--transition); }
.news-card:hover { border-color:var(--purple-500);box-shadow:var(--shadow-sm); }
.news-media { position:relative;overflow:hidden;aspect-ratio:16/8.5;background:linear-gradient(95deg,var(--purple-500),var(--purple-700)); }
.news-media img { width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--transition),filter .5s ease;filter:saturate(.92) contrast(1.05); }
.news-card:hover .news-media img { transform:scale(1.06);filter:saturate(1) contrast(1.08); }
.news-body { padding:.9rem .95rem 1.05rem;display:flex;flex-direction:column;gap:.45rem; }
.news-body h3 { margin:.2rem 0;font-size:1.05rem; }
.news-body time { font-size:.62rem;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--purple-600); }
.news-body p { margin:0 0 .45rem;font-size:.83rem;color:var(--text-soft);line-height:1.4; }
.news-link { font-size:.68rem;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--purple-700); }

/* FIXTURES */
.fixtures-list { display:grid;gap:.85rem; }
.fixture { background:var(--surface);padding:.85rem 1rem;border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:.4rem;border:1px solid var(--border); }
.fixture .teams { font-weight:600;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:.95rem; }
.fixture .vs { color:var(--purple-600);font-weight:700; }
.fixture .meta { font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-soft);display:flex;gap:1rem;flex-wrap:wrap; }

/* SQUAD */
.squad-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem; }
.player-card { background:var(--surface);padding:.85rem .8rem .9rem;border-radius:var(--radius-sm);text-align:center;position:relative;overflow:hidden;border:1px solid var(--border); }
.player-card:before { content:"";position:absolute;inset:0;background:linear-gradient(160deg,var(--purple-500),transparent 70%);opacity:.08; }
.player-card .number { font-size:1.8rem;font-weight:700;color:var(--purple-600);line-height:1;margin-bottom:.35rem; }
.player-card h3 { margin:.25rem 0 .2rem;font-size:.9rem; }
.player-card .position { margin:0;font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-soft);font-weight:600; }

/* GALLERY (forcée en 3 x 2 sur desktop) */
.gallery-grid { display:grid;gap:1.25rem;grid-template-columns:1fr; }
.shot { background:var(--surface);border-radius:var(--radius-sm);overflow:hidden;position:relative;border:1px solid var(--border);box-shadow:var(--shadow-sm); }
.shot img { aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .65s var(--transition),filter .4s ease;filter:saturate(.92) contrast(1.03); }
.shot:hover img { transform:scale(1.07);filter:saturate(1.03) contrast(1.06); }
.shot figcaption { position:absolute;left:0;bottom:0;width:100%;padding:.6rem .85rem;font-size:.64rem;text-transform:uppercase;letter-spacing:.55px;background:linear-gradient(transparent,rgba(0,0,0,.72));color:#fff;font-weight:500; }

/* 2 colonnes: écrans moyens */
@media (min-width:560px){
  .gallery-grid { grid-template-columns:repeat(2,1fr); }
}
/* 3 colonnes: desktop (donc 6 images => 2 lignes) */
@media (min-width:860px){
  .gallery-grid { grid-template-columns:repeat(3,1fr); }
}
/* Sur très grands écrans on augmente légèrement l'espacement pour respirer */
@media (min-width:1400px){
  .gallery-grid { gap:1.4rem; }
}
@media (max-width:420px){
  .shot figcaption { font-size:.58rem;padding:.48rem .55rem; }
}

/* EFFECTIF (photos avec hover célébration) */
.squad-photos { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,280px)); gap:1.25rem; justify-content:center; }
.player-photo { position:relative; overflow:hidden; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface); box-shadow:var(--shadow-sm); aspect-ratio:3/4; min-height:320px; }
.player-photo img { position:absolute; inset:0; width:100%; height:100%; display:block; object-fit:cover; will-change:opacity, transform; backface-visibility:hidden; }
.player-photo img.normal { z-index:1; transition:transform .45s var(--transition); object-position:50% 0%; }
.player-photo img.celebration { z-index:2; opacity:0; transform:scale(1.02); transition:opacity .32s var(--transition), transform .5s var(--transition); pointer-events:none; object-position:50% 25%; }
.player-photo:hover img.celebration, .player-photo:focus-within img.celebration { opacity:1; }
.player-photo:hover img.celebration, .player-photo:focus-within img.celebration, .player-photo.show-celebration img.celebration { transform:scale(1); }
.player-photo:hover img.normal { transform:scale(1.03); }
.player-photo figcaption { position:absolute; left:8px; bottom:8px; background:rgba(0,0,0,.55); color:#fff; font-size:.75rem; padding:.28rem .45rem; border-radius:4px; letter-spacing:.4px; z-index:3; }
.player-photo .badge { position:absolute; top:8px; left:8px; background:var(--purple-600); color:#fff; font-weight:700; font-size:.8rem; padding:.2rem .45rem; border-radius:6px; box-shadow:var(--shadow-sm); z-index:3; }
/* Afficher célébration via bouton (non seulement hover) */
.player-photo.show-celebration img.celebration { opacity:1; }

/* Fallback si aspect-ratio n'est pas supporté (anciens navigateurs) */
@supports not (aspect-ratio: 1 / 1) {
	.player-photo { height:auto; }
	.player-photo::before { content:""; display:block; padding-top:133.333%; }
}

/* Réduire les animations si l’utilisateur préfère moins de mouvement */
@media (prefers-reduced-motion: reduce){
	.player-photo img { transition:none !important; }
}

/* Badge par poste */
.squad-photos.gardiens .player-photo .badge { background:#1e88e5; }
.squad-photos.defense .player-photo .badge { background:#2e7d32; }
.squad-photos.milieu .player-photo .badge { background:#f9a825; color:#000; }
.squad-photos.attaque .player-photo .badge { background:#d32f2f; }

/* Conteneur carte + légende + bouton */
.player-wrap { display:flex; flex-direction:column; align-items:center; gap:.4rem; }
.player-legend { font-size:.78rem; color:var(--text-soft); font-weight:600; text-align:center; }
.player-photo-controls { display:flex; gap:.4rem; justify-content:center; }
.celebration-toggle { font:inherit; font-size:.72rem; padding:.4rem .6rem; border-radius:var(--radius-sm); border:1px solid var(--border); background:var(--surface); color:var(--text); cursor:pointer; box-shadow:var(--shadow-sm); }
.celebration-toggle:hover, .celebration-toggle:focus { border-color:var(--purple-500); }
.celebration-toggle[aria-pressed="true"] { background:var(--purple-600); color:#fff; border-color:var(--purple-600); }

/* CONTACT */
.contact-layout { display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:start; }
.contact-info p { margin:.4rem 0;font-size:.9rem; }
.socials { display:flex;gap:.5rem;margin-top:.6rem; }
.icon { width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.85rem;background:var(--purple-600);color:#fff;transition:var(--transition); }
.icon:hover,.icon:focus { background:var(--purple-500); }
.contact-form { background:var(--surface);padding:1.05rem 1.1rem 1.15rem;border-radius:var(--radius-sm);display:grid;gap:.8rem;border:1px solid var(--border); }
.field { display:flex;flex-direction:column;gap:.35rem; }
.field.full { grid-column:1 / -1; }
label { font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-soft); }
input,textarea { font:inherit;padding:.62rem .7rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;transition:var(--transition); }
input:focus,textarea:focus { outline:2px solid var(--focus);border-color:var(--focus); }

/* FOOTER */
.site-footer { background:var(--purple-900);color:#fff;padding:2.4rem 0 2.1rem;margin-top:2.4rem; }
.footer-inner { display:flex;flex-direction:column;gap:.5rem;text-align:center;font-size:.78rem; }
.footer-inner .small { opacity:.55; }

/* Footer socials */
.footer-top { display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:1rem;text-align:left; }
.footer-top .legal { flex:1 1 260px;min-width:240px; }
.social-footer { flex:0 1 auto; }
.social-list { list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.55rem; }
.social-list a.soc {
	--size: 42px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--size);
	height: var(--size);
	border-radius: var(--radius-sm);
	background: transparent;
	color: var(--purple-100); /* Couleur de l'icône */
	transition: var(--transition);
	border: 1px solid transparent;
}
.social-list a.soc:hover,
.social-list a.soc:focus {
	background: var(--purple-800); /* Fond au survol */
	color: #fff; /* Icône blanche au survol */
	border-color: var(--purple-700);
	transform: translateY(-2px);
}

.footer-bottom {
	border-top: 1px solid var(--purple-800);
	padding-top: 1.5rem;
	margin-top: 1.5rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	font-size: 0.8rem;
	color: var(--purple-100);
}
.footer-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
}
.footer-nav a {
	color: var(--purple-100);
	text-decoration: none;
}
.footer-nav a:hover,
.footer-nav a:focus {
	text-decoration: underline;
}

@media (max-width: 640px) {
	.footer-top {
		flex-direction: column;
		align-items: stretch;
	}
	.social-list {
		justify-content: flex-start;
	}
	.social-list a.soc {
		--size: 40px;
	}
	.footer-bottom {
		flex-direction: column;
		gap: 1.2rem;
		text-align: center;
	}
}

/* UTIL */
.news,.fixtures,.squad,.gallery,.contact { scroll-margin-top:80px; }

/* ACCESSIBILITY */
:focus-visible { outline:2px solid var(--focus);outline-offset:2px; }

/* RESPONSIVE */
@media (max-width:860px){
  .nav-toggle { display:block; }
  .main-nav { position:fixed;inset:0 0 0 48%;transform:translateX(100%);background:#fff;display:flex;justify-content:center;align-items:center;transition:var(--transition);box-shadow:-2px 0 14px -6px rgba(70,30,110,.22); }
  .main-nav.open { transform:translateX(0); }
  .main-nav ul { flex-direction:column;gap:2.2rem;font-size:1.05rem;font-weight:500; }
  .main-nav a { padding:.6rem 1.2rem;font-size:.95rem; }
  body.menu-open { overflow:hidden; }
}
@media (max-width:560px){
  .hero { min-height:58vh; }
  .club-tagline { display:none; }
  .hero h2 { font-size:clamp(1.9rem,8vw,2.4rem); }
  .fixture { font-size:.88rem; }
}

/* FAQ */
.faq-controls { display:flex;flex-wrap:wrap;gap:.6rem;margin:0 0 1.2rem; }
.faq-controls button { background:var(--purple-600);color:#fff;border:1px solid var(--purple-600);padding:.55rem .9rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.6px;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;transition:var(--transition); }
.faq-controls button:hover,.faq-controls button:focus { background:var(--purple-500);border-color:var(--purple-500); }

.faq-search { display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;margin:0 0 1.4rem;position:relative; }
.faq-search input { flex:1 1 340px;max-width:560px;padding:.7rem .85rem .7rem 2.3rem;font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;box-shadow:var(--shadow-sm);transition:var(--transition); }
.faq-search input:focus { outline:2px solid var(--focus);border-color:var(--focus); }
.faq-search:before { content:'🔍';position:absolute;left:.75rem;top:50%;transform:translateY(-50%);font-size:.95rem;opacity:.55; }
.faq-count { font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--text-soft); }
.visually-hidden { position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0; }
.faq-no-result { padding:.9rem 1rem;margin:.4rem 0 1rem;border:1px dashed var(--purple-500);background:var(--purple-100);font-size:.8rem;border-radius:var(--radius-sm); }
.faq-highlight mark.hl { background:var(--accent);color:#000;padding:0 .15em;border-radius:2px; }

details { border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:.55rem .9rem .85rem;margin:0 0 .75rem;box-shadow:var(--shadow-sm);transition:var(--transition); }
details[open] { border-color:var(--purple-500);box-shadow:0 4px 18px -6px rgba(70,30,110,.18); }
details summary { list-style:none;cursor:pointer;display:flex;align-items:flex-start;gap:.75rem;font-weight:600;font-size:.9rem;position:relative;padding:.2rem 0 .2rem; }
details summary::-webkit-details-marker { display:none; }
details summary:focus { outline:2px solid var(--focus);outline-offset:2px;border-radius:4px; }
details summary .indicator { width:1.25rem;height:1.25rem;flex:0 0 1.25rem;border:1px solid var(--purple-500);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;background:var(--purple-100);color:var(--purple-600);transition:var(--transition); }
details[open] summary .indicator { background:var(--purple-600);color:#fff;transform:rotate(180deg); }
details p { margin:.55rem 0 0;font-size:.83rem;color:var(--text-soft);line-height:1.45; }

/* Animation ouverture réponse */
details[open] > *:not(summary) { animation:fadeSlide .35s ease; }
@keyframes fadeSlide { from { opacity:0;transform:translateY(-4px);} to { opacity:1;transform:translateY(0);} }

/* Petite amélioration regroupement titres */
#faq h3 { margin-top:2.2rem;font-size:1.05rem; }
#faq h3:first-of-type { margin-top:1.4rem; }

/* === LEGAL / POLICY PAGES === */
.doc-page .page-title-wrap { border-left:4px solid var(--purple-600); padding-left:.85rem; margin:0 0 1.2rem; }
.doc-page .page-title-wrap h2 { margin:.1rem 0;font-size:clamp(1.7rem,3vw,2.2rem); }
.doc-page .page-title-wrap .subtitle { margin:.25rem 0 0; color:var(--text-soft); font-size:.95rem; }

.doc-page .intro-card { background:var(--purple-100); border:1px solid var(--border); border-radius:var(--radius-sm); padding:1rem 1.1rem; box-shadow:var(--shadow-sm); margin:0 0 1.2rem; }
.doc-page .intro-card p { margin:.2rem 0; }

.doc-section { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); padding:1rem 1.1rem 1rem; box-shadow:var(--shadow-sm); margin:0 0 1rem; transition:var(--transition); }
.doc-section:hover { border-color:var(--purple-500); box-shadow:var(--shadow-hover); transform:translateY(-1px); }
.doc-section h3 { margin:.1rem 0 .35rem; font-size:1.02rem; display:flex; align-items:center; gap:.5rem; }
.doc-section h3::before { content:"§"; color:var(--purple-600); font-weight:700; }
.doc-section p { margin:.35rem 0; font-size:.92rem; color:var(--text-soft); line-height:1.55; }

.doc-list ul { margin:.35rem 0 .2rem; padding-left:1.2rem; }
.doc-list li { margin:.25rem 0; }
.doc-list li::marker { color:var(--purple-600); }

.note { border:1px dashed var(--purple-500); background:var(--purple-100); border-radius:var(--radius-sm); padding:.7rem .9rem; font-size:.9rem; color:var(--text); }
.meta-updated { font-size:.78rem; color:var(--text-soft); margin-top:.6rem; }

/* === CLASSEMENT (ranking) === */
.ranking-section .section-intro { margin:.2rem 0 1rem; color:var(--text-soft); }
.table-container { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); box-shadow:var(--shadow-sm); overflow:auto; }
.ranking-table { width:100%; border-collapse:separate; border-spacing:0; min-width:640px; }
.ranking-table thead th { position:sticky; top:0; background:linear-gradient(120deg,var(--purple-600),var(--purple-500)); color:#fff; text-align:left; font-weight:600; letter-spacing:.4px; font-size:.82rem; padding:.7rem .8rem; border-bottom:1px solid var(--purple-500); z-index:1; }
.ranking-table th:first-child { border-top-left-radius:var(--radius-sm); }
.ranking-table th:last-child { border-top-right-radius:var(--radius-sm); }
.ranking-table td { padding:.7rem .8rem; border-bottom:1px solid var(--border); font-size:.9rem; }
.ranking-table tbody tr:nth-child(even) { background: #fcfbfe; }
.ranking-table tbody tr:hover { background: var(--purple-100); }
.ranking-table td:nth-child(1) { width:64px; font-weight:700; color:var(--purple-700); }
.ranking-table td:nth-child(2) { font-weight:600; }
.ranking-table .team-highlight { background: rgba(132,72,191,.08); }
.ranking-table .team-highlight td { border-bottom-color: var(--purple-400); }

@media (max-width:640px){
	.ranking-table td, .ranking-table th { padding:.55rem .6rem; }
	.ranking-table td { font-size:.86rem; }
}

/* CONTACT - ajustements de contraste pour icônes sur fond clair */
body#contact .contact-info .social-list a.soc {
	background: var(--surface);
	color: var(--purple-700);
	border: 1px solid var(--border);
}
body#contact .contact-info .social-list a.soc:hover,
body#contact .contact-info .social-list a.soc:focus {
	background: var(--purple-100);
	color: var(--purple-700);
	border-color: var(--purple-500);
}

/* Messages flash (succès / erreur) */
.flash { margin:0 0 1rem; padding:.8rem 1rem; border-radius:var(--radius-sm); border:1px solid var(--border); box-shadow:var(--shadow-sm); font-size:.9rem; }
.flash.success { background: var(--purple-100); border-color: var(--purple-500); }
.flash.error { background: #ffe9e9; border-color: #ffb3b3; }
