/*
Theme Name: Aikikai Paris Batignolles
Theme URI: https://www.aikidoparisbatignolles.fr/
Author: Aikikai Paris Batignolles
Description: Theme sur mesure du club Aikikai Paris Batignolles et Aikido Pontoise. Design noir, blanc et rouge, page unique. Tous les textes et toutes les photos sont modifiables depuis Apparence > Personnaliser, sans acces au design.
Version: 1.4
Requires at least: 5.9
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: aikido-batignolles
*/

/* ============================================================
   Feuille de style du theme.
   Le contenu ci-dessous reprend integralement le design valide
   en V4. Ne pas modifier sans raison : les reglages de contenu
   se font depuis Apparence > Personnaliser.
============================================================ */

/* ============================================================
   1. VARIABLES & RESET
============================================================ */
:root{
  --noir:#0A0A0A;
  --noir-doux:#141414;
  --anthracite:#1B1C1F;    /* fond enseignant éclairci */
  --anthracite-clair:#26272B;
  --blanc:#FFFFFF;
  --blanc-casse:#F4F4F2;
  --gris-fond:#EAE9E6;     /* fond intermédiaire (bloc éducation) */
  --rouge:#CC0000;
  --gris:#9A9A9A;
  --gris-clair:#D8D8D8;
  --maxw:1280px;
  --titre:'Cormorant Garamond', Georgia, serif;
  --corps:'Inter', system-ui, sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:80px;}
body{
  font-family:var(--corps);
  background:var(--noir);
  color:var(--blanc);
  line-height:1.7;
  font-weight:300;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto;}

/* ---- Toutes les photos en noir & blanc ---- */
.bw-photo{
  filter:grayscale(100%) contrast(1.05);
  transition:filter .6s ease, transform .8s ease;
}

/* ============================================================
   2. TYPOGRAPHIE DE BASE
============================================================ */
h1,h2,h3{font-family:var(--titre);font-weight:500;line-height:1.1;letter-spacing:.5px;}
h2{font-size:clamp(2.2rem,5vw,3.6rem);}
h3{font-size:clamp(1.5rem,3vw,2rem);}
p{font-weight:300;}
a{color:inherit;text-decoration:none;}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
section{padding:clamp(70px,10vw,140px) 0;position:relative;}

.eyebrow{
  display:inline-flex;align-items:center;gap:14px;
  font-family:var(--corps);font-size:.78rem;font-weight:500;
  letter-spacing:.28em;text-transform:uppercase;color:var(--rouge);
  margin-bottom:24px;
}
.eyebrow::before{content:"";width:42px;height:1px;background:var(--rouge);display:inline-block;}

.redline{width:60px;height:3px;background:var(--rouge);margin:28px 0;}
.center .redline{margin:28px auto;}
.center{text-align:center;}

/* ============================================================
   3. BOUTONS / CTA
============================================================ */
.btn{
  display:inline-block;
  font-family:var(--corps);font-size:.85rem;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;
  padding:18px 42px;border:1px solid transparent;cursor:pointer;
  transition:all .35s ease;
}
.btn-rouge{background:var(--rouge);color:var(--blanc);}
.btn-rouge:hover{background:#a30000;transform:translateY(-2px);}

/* ============================================================
   4. NAVIGATION (sticky) + SOUS-MENU "NOS DOJOS"
============================================================ */
.nav{
  position:fixed;top:0;left:0;width:100%;z-index:1000;
  background:rgba(10,10,10,0);
  transition:background .4s ease, padding .4s ease, border-color .4s ease;
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:rgba(10,10,10,.85);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.nav-inner{max-width:var(--maxw);margin:0 auto;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;}
.logo{font-family:var(--titre);font-size:1.4rem;font-weight:600;letter-spacing:1px;color:#fff;display:flex;align-items:center;gap:10px;}
.logo .dot{width:9px;height:9px;background:var(--rouge);border-radius:50%;display:inline-block;}
.nav-links{display:flex;gap:34px;list-style:none;align-items:center;}
.nav-links>li{position:relative;}
.nav-links a{font-size:.82rem;font-weight:400;letter-spacing:.06em;color:var(--gris-clair);position:relative;padding:4px 0;transition:color .3s;display:inline-flex;align-items:center;gap:6px;}
.nav-links>li>a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--rouge);transition:width .3s;}
.nav-links>li>a:hover{color:#fff;}
.nav-links>li>a:hover::after{width:100%;}
.nav-cta{font-size:.78rem !important;padding:11px 22px;border:1px solid var(--rouge);color:#fff !important;letter-spacing:.1em;}
.nav-cta:hover{background:var(--rouge);}
.nav-cta::after{display:none !important;}
.caret{font-size:.6rem;transition:transform .3s;}

/* Sous-menu déroulant */
.dropdown{
  list-style:none;position:absolute;top:100%;left:-18px;min-width:240px;
  background:rgba(10,10,10,.96);backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.1);padding:10px 0;margin-top:12px;
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .3s ease, transform .3s ease, visibility .3s;
}
.dropdown li{display:block;}
.dropdown a{display:block;padding:12px 22px;font-size:.84rem;color:var(--gris-clair);letter-spacing:.04em;}
.dropdown a:hover{background:rgba(204,0,0,.15);color:#fff;}
.has-dropdown:hover .dropdown{opacity:1;visibility:visible;transform:translateY(0);}
.has-dropdown:hover .caret{transform:rotate(180deg);}

.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;}
.burger span{width:26px;height:2px;background:#fff;transition:.3s;}

/* ============================================================
   5. HERO
============================================================ */
.hero{height:100vh;min-height:640px;display:flex;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden;padding:0;}
.hero-bg{position:absolute;inset:0;z-index:0;}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 35%;}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,.55) 0%,rgba(10,10,10,.45) 45%,rgba(10,10,10,.85) 100%);}
.hero-content{position:relative;z-index:2;max-width:900px;padding:0 24px;}
.hero h1{font-size:clamp(2.8rem,8vw,6rem);font-weight:500;letter-spacing:1px;text-shadow:0 2px 30px rgba(0,0,0,.5);}
.hero .sub{font-size:clamp(1.05rem,2.4vw,1.5rem);font-weight:300;color:var(--blanc-casse);margin:26px auto 40px;max-width:560px;font-family:var(--titre);font-style:italic;letter-spacing:.3px;}
.hero .redline{margin:30px auto 0;}
.scroll-ind{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);z-index:2;}
.scroll-ind .bar{width:1px;height:44px;background:linear-gradient(var(--rouge),transparent);animation:scrollpulse 2s ease-in-out infinite;display:block;}
@keyframes scrollpulse{0%,100%{opacity:.3;transform:scaleY(.6);}50%{opacity:1;transform:scaleY(1);}}

/* ============================================================
   6. SECTION PHILOSOPHIE (fond noir)
============================================================ */
.philo .lead{font-family:var(--titre);font-size:clamp(1.3rem,2.6vw,1.7rem);font-weight:400;line-height:1.55;max-width:820px;color:var(--blanc-casse);}
.philo .lead .accent{color:var(--rouge);font-style:italic;}
.philo .secondary{max-width:760px;color:var(--gris);margin-top:26px;font-size:1.02rem;}
.philo-media{margin:60px 0;}
.philo-media img{width:100%;height:clamp(280px,42vw,520px);object-fit:cover;object-position:center 35%;}

/* Médaillon Morihei Ueshiba (fondateur) */
.founder{display:flex;align-items:center;gap:48px;margin:70px 0;padding:44px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,#121212,#0d0d0d);}
.founder-portrait{flex:none;width:200px;height:200px;border-radius:50%;overflow:hidden;border:3px solid var(--rouge);position:relative;}
.founder-portrait img{width:100%;height:100%;object-fit:cover;object-position:center top;}
.founder-text .f-name{font-family:var(--titre);font-size:1.9rem;color:#fff;line-height:1.15;}
.founder-text .f-role{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--rouge);margin:8px 0 16px;}
.founder-text p{color:var(--gris-clair);max-width:560px;font-size:1.02rem;}

/* 3 piliers AI / KI / DO */
.piliers{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid rgba(255,255,255,.1);margin-top:30px;}
.pilier{padding:48px 30px;border-right:1px solid rgba(255,255,255,.1);text-align:center;transition:background .4s;}
.pilier:last-child{border-right:none;}
.pilier:hover{background:var(--noir-doux);}
.pilier .kanji{font-family:var(--titre);font-size:3.2rem;color:var(--rouge);line-height:1;margin-bottom:10px;}
.pilier h4{font-family:var(--titre);font-size:1.5rem;font-weight:500;margin-bottom:8px;}
.pilier .trad{color:var(--blanc-casse);font-size:1rem;}
.pilier .explic{color:var(--gris);font-size:.9rem;margin-top:10px;}  /* texte explicatif, masqué sur mobile */

/* Bloc "Une éducation complète" : cards anthracite, bordure rouge fine */
.education{margin-top:80px;}
.education-head{margin-bottom:34px;}
.education-head h3{font-style:italic;color:#fff;font-size:clamp(1.6rem,3vw,2.1rem);}
.education-head .edu-sub{color:var(--gris);font-size:.98rem;margin-top:8px;max-width:640px;}
.education-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.edu-col{
  position:relative;padding:40px 34px 36px;
  background:var(--anthracite);
  border:1px solid rgba(255,255,255,.09);
  border-top:2px solid var(--rouge);
  transition:transform .45s cubic-bezier(.16,.7,.3,1), background .45s ease, border-color .45s ease;
}
.edu-col:hover{transform:translateY(-8px);background:var(--anthracite-clair);border-color:rgba(204,0,0,.45);border-top-color:var(--rouge);}
.edu-col .edu-ico{
  display:flex;align-items:center;justify-content:center;
  width:52px;height:52px;margin-bottom:22px;
  border:1px solid rgba(204,0,0,.55);
  font-family:var(--titre);font-size:1.5rem;color:var(--rouge);line-height:1;
  transition:background .45s ease;
}
.edu-col:hover .edu-ico{background:rgba(204,0,0,.12);}
.edu-col .num{font-family:var(--corps);color:var(--rouge);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;display:block;margin-bottom:10px;font-weight:600;}
.edu-col h4{font-family:var(--titre);font-size:1.5rem;margin-bottom:12px;color:#fff;font-weight:500;}
.edu-col p{color:var(--gris-clair);font-size:.95rem;}

/* Citation "Sans compétition" : mise en valeur forte, centrée */
.badge{
  position:relative;text-align:center;margin:90px auto 0;max-width:900px;
  padding:56px 40px 52px;
  background:linear-gradient(180deg,rgba(204,0,0,.07),rgba(204,0,0,.02));
  border-top:1px solid rgba(204,0,0,.35);border-bottom:1px solid rgba(204,0,0,.35);
}
.badge .mark{
  display:inline-block;font-family:var(--corps);font-size:.74rem;font-weight:600;
  letter-spacing:.28em;color:var(--rouge);text-transform:uppercase;
  border:1px solid rgba(204,0,0,.5);padding:9px 22px;margin-bottom:28px;
}
.badge .badge-line{
  font-family:var(--titre);font-style:italic;font-weight:500;
  font-size:clamp(1.9rem,4.4vw,3.1rem);line-height:1.25;color:#fff;
}
.badge .badge-line em{font-style:italic;color:var(--rouge);}
.badge::before,.badge::after{
  content:"";position:absolute;left:50%;transform:translateX(-50%);
  width:44px;height:2px;background:var(--rouge);
}
.badge::before{top:-1px;}
.badge::after{bottom:-1px;}

/* ============================================================
   7. NOS PUBLICS (fond clair) : cartes différenciées
============================================================ */
.publics{background:var(--blanc-casse);color:var(--noir);}
.publics h2{color:var(--noir);}
.publics .intro{color:#555;max-width:640px;}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:60px;}
.card{
  background:#fff;border:1px solid #e0dfda;border-top:3px solid var(--rouge);
  display:flex;flex-direction:column;overflow:hidden;
  box-shadow:0 10px 30px rgba(0,0,0,.06);
  transition:transform .45s cubic-bezier(.16,.7,.3,1), box-shadow .45s ease;
}
/* Hover plus marqué : agrandissement + ombre forte + overlay rouge sur l'image */
.card:hover{transform:translateY(-12px) scale(1.015);box-shadow:0 30px 60px rgba(0,0,0,.16);}
.card-img{height:270px;overflow:hidden;position:relative;}
.card-img img{width:100%;height:100%;object-fit:cover;object-position:center 25%;}
.card-img::after{content:"";position:absolute;inset:0;background:rgba(204,0,0,0);transition:background .45s ease;}
.card:hover .card-img::after{background:rgba(204,0,0,.28);}
.card:hover .card-img img{transform:scale(1.08);}
.card-body{padding:34px 30px 32px;display:flex;flex-direction:column;flex:1;}
.card-body .card-desc{flex:1;}
.card .tag{font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--rouge);margin-bottom:12px;}
.card h3{color:var(--noir);font-size:1.7rem;margin-bottom:6px;}
.card .tagline{font-family:var(--titre);font-style:italic;font-size:1.25rem;color:var(--rouge);margin-bottom:18px;}
.card p{color:#555;font-size:.96rem;}
.card .card-action{margin-top:auto;padding-top:20px;border-top:1px solid #ececec;}
.card .btn-card{
  display:block;width:100%;text-align:center;
  background:var(--rouge);color:#fff;
  font-family:var(--corps);font-size:.85rem;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;line-height:1.3;
  padding:10px 20px;border:1px solid var(--rouge);
  transition:background .35s ease, transform .35s ease, box-shadow .35s ease;
}
.card .btn-card:hover{background:#a30000;border-color:#a30000;transform:translateY(-2px);box-shadow:0 8px 20px rgba(204,0,0,.28);}
/* Le paragraphe descriptif absorbe l'espace restant : quelle que soit la
   longueur du texte, les 3 boutons tombent sur la meme ligne horizontale. */
.cards{align-items:stretch;}
.card-body .card-desc{flex:1 1 auto;margin-bottom:0;}

/* Logo FFAAA sous les certifications */
.ffaaa-cert{display:flex;align-items:center;gap:22px;margin-top:26px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);flex-wrap:wrap;}
.ffaaa-logo{flex:none;width:170px;min-height:56px;display:flex;align-items:center;justify-content:center;background:#fff;padding:12px 16px;border-radius:2px;}
.ffaaa-logo img{width:100%;height:auto;max-height:none;display:block;}
.ffaaa-logo.ffaaa-fallback{background:transparent;border:1px solid rgba(204,0,0,.5);color:var(--rouge);font-family:var(--titre);font-weight:600;font-size:1.25rem;letter-spacing:.06em;}
.ffaaa-logo.ffaaa-fallback::after{content:"FFAAA";}
.ffaaa-cert p{color:var(--gris-clair);font-size:.93rem;flex:1;min-width:260px;}

/* ============================================================
   8. L'ENSEIGNANT (fond anthracite, plus lisible)
============================================================ */
.teacher{background:var(--anthracite);}
.teacher-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;}
.teacher-text .lead{color:#fff;font-size:1.08rem;}
.teacher-photo{position:relative;}
.teacher-photo img{width:100%;height:clamp(420px,52vw,600px);object-fit:cover;object-position:center 10%;}
.teacher-photo::before{content:"";position:absolute;top:-18px;left:-18px;width:120px;height:120px;border-top:2px solid var(--rouge);border-left:2px solid var(--rouge);z-index:2;}

/* Bloc expertise certifiée : panneau éclairci */
.expertise{margin-top:64px;background:var(--anthracite-clair);border:1px solid rgba(255,255,255,.1);padding:46px 50px;}
.expertise h3{font-size:1.7rem;margin-bottom:14px;}
.expertise .intro-cert{color:var(--gris-clair);max-width:760px;margin-bottom:24px;}
.certs{list-style:none;}
.certs li{padding:15px 0;border-bottom:1px solid rgba(255,255,255,.1);display:flex;gap:16px;align-items:flex-start;color:#fff;font-size:1rem;}
.certs li:last-child{border-bottom:none;}
.certs li::before{content:"";flex:none;width:7px;height:7px;background:var(--rouge);margin-top:9px;transform:rotate(45deg);}
.certs li strong{color:#fff;font-weight:600;}

.philosophy-block{margin-top:56px;max-width:860px;}
.philosophy-block h3{font-size:1.7rem;margin-bottom:14px;}
.philosophy-block p{color:var(--gris-clair);font-size:1.05rem;}

/* Citation */
.quote{text-align:center;max-width:920px;margin:54px auto 0;}
.quote blockquote{font-family:var(--titre);font-style:italic;font-size:clamp(1.7rem,4vw,2.8rem);line-height:1.3;color:var(--rouge);}
.quote .q-mark{font-family:var(--titre);font-size:4rem;color:rgba(204,0,0,.4);line-height:0;display:block;margin-bottom:20px;}
.quote cite{display:block;margin-top:30px;font-style:normal;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gris);}

/* ============================================================
   9. NOS DOJOS : section principale
============================================================ */
.clubs{background:var(--noir-doux);}
.clubs .intro-title{font-family:var(--titre);font-style:italic;font-size:clamp(1.5rem,3vw,2.1rem);color:#fff;margin-bottom:16px;}
.clubs .intro{max-width:820px;color:var(--gris-clair);font-size:1.06rem;}
.clubs-band{margin:56px 0;overflow:hidden;}
.clubs-band img{width:100%;height:clamp(240px,34vw,420px);object-fit:cover;object-position:center 40%;}

.subhead{font-family:var(--titre);font-size:clamp(1.4rem,2.6vw,1.9rem);color:#fff;margin:10px 0 26px;}

/* 3 points sur le tapis */
.tapis{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:30px 0 30px;}
.tapis-item{border-top:2px solid var(--rouge);padding-top:22px;}
.tapis-item h4{font-size:1.3rem;margin-bottom:8px;}
.tapis-item p{color:var(--gris);font-size:.95rem;}
.tapis-closing{color:var(--blanc-casse);font-style:italic;font-family:var(--titre);font-size:1.2rem;max-width:820px;margin-bottom:64px;}

/* Stages & événements */
.ouverture{margin:0 0 30px;}
.ouverture .lead-line{color:var(--gris-clair);margin-bottom:20px;}
.ouverture ul{list-style:none;}
.ouverture li{padding:13px 0;border-bottom:1px solid rgba(255,255,255,.08);display:flex;gap:14px;color:var(--gris-clair);}
.ouverture li::before{content:"◆";color:var(--rouge);flex:none;}
.ouverture li strong{color:#fff;font-weight:500;}

/* Badge fédération + licence */
.fede-badge{display:flex;align-items:center;gap:18px;margin-top:30px;padding:20px 28px;background:var(--noir);border-left:3px solid var(--rouge);}
.fede-badge .fede-mark{font-family:var(--titre);font-weight:600;font-size:1.6rem;color:var(--rouge);flex:none;}
.fede-badge p{color:var(--gris-clair);font-size:.95rem;}
.licence-note{margin-top:18px;padding:18px 28px;background:rgba(204,0,0,.08);border:1px solid rgba(204,0,0,.25);color:var(--blanc-casse);font-size:.96rem;}
.licence-note strong{color:#fff;}

/* ----- Cartes clubs ----- */
.dojo{margin-top:54px;border:1px solid rgba(255,255,255,.12);overflow:hidden;scroll-margin-top:90px;}
.dojo-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:6px;}
.dojo-head h3{font-size:clamp(1.9rem,3.6vw,2.7rem);}
.pill{font-family:var(--corps);font-size:.66rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;background:var(--rouge);color:#fff;padding:6px 13px;}
.pill-ghost{background:transparent;border:1px solid var(--gris);color:var(--gris-clair);}

/* Paris = club principal (mise en avant) */
.dojo-principal{border:2px solid var(--rouge);background:linear-gradient(180deg,#171717,#0f0f0f);}
.dojo-second{background:#101010;}
.dojo-top{display:grid;grid-template-columns:1fr 1fr;}
.dojo-media{overflow:hidden;min-height:340px;}
.dojo-media img{width:100%;height:100%;object-fit:cover;}
/* Placeholder photo (Paris) */
.photo-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:340px;height:100%;background:repeating-linear-gradient(45deg,#141414,#141414 14px,#181818 14px,#181818 28px);color:var(--gris);text-align:center;padding:30px;}
.photo-placeholder .ph-ico{font-family:var(--titre);font-size:2.6rem;color:var(--rouge);}
.photo-placeholder .ph-txt{font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;}
.dojo-body{padding:46px 48px;}
.dojo-addr{display:flex;gap:12px;align-items:flex-start;color:var(--gris-clair);margin:18px 0;font-size:1rem;}
.dojo-addr .pin{color:var(--rouge);flex:none;}
.addr-label{display:block;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rouge);margin-bottom:6px;}
.lieu-second{margin-top:22px;padding:22px 26px;border:1px dashed rgba(255,255,255,.22);background:rgba(255,255,255,.02);}

.horaires{margin-top:24px;}
.horaires .h-title{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rouge);margin-bottom:14px;}
.h-grid{display:flex;flex-wrap:wrap;gap:12px;}
.h-slot{border:1px solid rgba(255,255,255,.16);padding:12px 18px;min-width:120px;}
.h-slot .jour{display:block;font-size:.78rem;color:var(--gris);letter-spacing:.05em;}
.h-slot .heure{display:block;font-family:var(--titre);font-size:1.2rem;color:#fff;margin-top:2px;}

/* Tarifs par club */
.tarifs-club{padding:0 48px 46px;}
.tarifs-club .t-title{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rouge);margin-bottom:8px;}
.tarif-note{
  display:flex;gap:14px;align-items:center;
  background:rgba(204,0,0,.10);border:1px solid rgba(204,0,0,.38);
  border-left:3px solid var(--rouge);
  padding:16px 22px;margin-bottom:28px;
  color:var(--blanc-casse);font-size:.98rem;
}
.tarif-note .ico{color:var(--rouge);font-size:1.15rem;flex:none;}
.tarif-note strong{color:#fff;font-weight:600;}
.plans{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}
.plan{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.12);padding:34px 32px;transition:transform .4s, border-color .4s;}
.plan:hover{transform:translateY(-5px);border-color:rgba(204,0,0,.5);}
.plan .pname{font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--rouge);font-weight:600;}
.plan .pwho{color:var(--gris);font-size:.9rem;margin-top:4px;}
.plan .price-row{display:flex;align-items:baseline;gap:14px;margin:18px 0 4px;flex-wrap:wrap;}
.plan .price{font-family:var(--titre);font-size:3rem;font-weight:600;color:#fff;line-height:1;}
.plan .price small{font-size:1rem;color:var(--gris);font-family:var(--corps);font-weight:400;}
.plan .price-month{font-family:var(--titre);font-size:1.5rem;color:var(--gris-clair);}
.plan .detail{color:var(--gris);font-size:.9rem;border-top:1px solid rgba(255,255,255,.1);margin-top:22px;padding-top:18px;}
.plan .detail span{color:var(--rouge);}

.reduc{margin-top:24px;border:1px solid rgba(255,255,255,.12);padding:30px 34px;background:rgba(255,255,255,.02);}
.reduc h4{font-family:var(--titre);font-size:1.4rem;color:#fff;margin-bottom:18px;}
.reduc-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.reduc-item{display:flex;gap:14px;align-items:flex-start;}
.reduc-item .r-ico{color:var(--rouge);font-family:var(--titre);font-size:1.4rem;line-height:1;flex:none;}
.reduc-item h5{font-size:1.02rem;color:#fff;margin-bottom:4px;font-weight:600;font-family:var(--corps);}
.reduc-item p{color:var(--gris);font-size:.9rem;}

/* ------------------------------------------------------------------
   Infos administratives (accordéon), identique sur les deux clubs.
   FERMÉ  : anthracite #222 + titre blanc + icône rouge
   OUVERT : contenu #F7F7F7 + texte #1a1a1a, titre reste anthracite
------------------------------------------------------------------ */
.infos-admin{
  margin-top:24px;
  background:#222222;
  border:1px solid rgba(255,255,255,.10);
  border-left:3px solid var(--rouge);
  overflow:hidden;
}
.infos-admin summary{
  cursor:pointer;list-style:none;padding:22px 30px;
  background:#222222;
  font-family:var(--titre);font-size:1.35rem;color:#FFFFFF;
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  transition:background .3s ease;
}
.infos-admin summary:hover{background:#2C2C2C;}
.infos-admin summary::-webkit-details-marker{display:none;}
.infos-admin summary .plus{color:var(--rouge);font-size:1.5rem;transition:transform .3s;flex:none;}
.infos-admin[open] summary{border-bottom:1px solid rgba(255,255,255,.12);}
.infos-admin[open] summary .plus{transform:rotate(45deg);}
.infos-body{padding:6px 30px 28px;background:#F7F7F7;color:#1a1a1a;}
.info-item{padding:20px 0;border-top:1px solid #E1E1E1;display:flex;gap:16px;align-items:flex-start;}
.info-item .info-ico{
  flex:none;width:38px;height:38px;display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(204,0,0,.45);color:var(--rouge);
  font-family:var(--titre);font-size:1.15rem;line-height:1;margin-top:2px;
}
.info-item .info-txt{flex:1;min-width:0;}
.info-item h5{color:var(--rouge);font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px;font-weight:600;}
.info-item p{color:#1a1a1a;font-size:.95rem;}
.info-item strong{color:#000;font-weight:600;}
.info-item ul{margin:10px 0 0 2px;list-style:none;}
.info-item li{color:#333;font-size:.92rem;padding:5px 0 5px 18px;position:relative;}
.info-item li::before{content:"›";position:absolute;left:0;color:var(--rouge);font-weight:600;}

/* 7. Lien Google Maps discret (par club) */
.map-link{
  display:inline-flex;align-items:center;gap:9px;margin-top:16px;
  font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;
  color:var(--gris-clair);border-bottom:1px solid rgba(255,255,255,.22);
  padding-bottom:4px;transition:color .3s ease, border-color .3s ease;
}
.map-link .map-pin{color:var(--rouge);font-size:.95rem;}
.map-link:hover{color:#fff;border-color:var(--rouge);}

/* ============================================================
   9. CLUB PARIS BATIGNOLLES : zones éclaircies (lieu / horaires / tarifs)
   Ciblage strict sur #paris, le club de Pontoise reste inchangé.
============================================================ */
#paris.dojo-principal{background:linear-gradient(180deg,#232427,#1B1C1F);}

/* Lieu / adresse */
#paris .dojo-addr{
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);
  border-left:3px solid var(--rouge);
  padding:18px 22px;color:var(--blanc-casse);
}
#paris .lieu-second{
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.16);
  border-left:3px solid rgba(204,0,0,.55);border-style:solid;
}
#paris .lieu-second-addr{color:var(--blanc-casse) !important;}

/* Horaires */
#paris .horaires{
  margin-top:26px;padding:22px 24px;
  background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.12);
}
#paris .h-slot{
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.22);
  transition:background .3s ease, border-color .3s ease;
}
#paris .h-slot:hover{background:rgba(204,0,0,.14);border-color:rgba(204,0,0,.5);}
#paris .h-slot .jour{color:var(--gris-clair);}

/* Tarifs */
#paris .tarifs-club{background:rgba(255,255,255,.035);padding-top:34px;margin-top:8px;}
#paris .plan{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);}
#paris .plan:hover{background:rgba(255,255,255,.11);}
#paris .plan .pwho{color:var(--gris-clair);}
#paris .plan .detail{color:var(--blanc-casse);border-top-color:rgba(255,255,255,.18);}
#paris .reduc{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.2);}
/* L'accordéon garde le même traitement sur les deux clubs (voir bloc dédié) */
#paris .infos-admin{background:#222222;border-color:rgba(255,255,255,.10);border-left-color:var(--rouge);}
#paris .reduc-item p{color:var(--gris-clair);}
#paris .map-link{color:#fff;border-color:rgba(255,255,255,.35);}

/* Bloc contact / CTA par club */
.club-cta{margin:0 48px 46px;padding:38px 40px;background:var(--noir);border:1px solid rgba(204,0,0,.3);text-align:center;}
.club-cta h4{font-family:var(--titre);font-size:clamp(1.6rem,3vw,2.2rem);color:#fff;margin-bottom:18px;}
.club-cta .btn-rouge{margin-bottom:22px;}
.club-cta-info{display:flex;justify-content:center;gap:40px;flex-wrap:wrap;}
.club-cta-info a,.club-cta-info span{color:var(--gris-clair);font-size:1rem;}
.club-cta-info a:hover{color:var(--rouge);}

/* ============================================================
   10. ACTUALITÉS & GALERIE
============================================================ */
.actu{background:var(--noir);}
.actu-feature{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:center;margin:50px 0 70px;border:1px solid rgba(255,255,255,.1);}
.actu-feature .af-img{overflow:hidden;height:100%;min-height:320px;}
.actu-feature .af-img img{width:100%;height:100%;object-fit:cover;}
.actu-feature .af-body{padding:44px 48px;}
.actu-feature .af-tag{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rouge);}
.actu-feature h3{font-size:2rem;margin:10px 0 14px;}
.actu-feature p{color:var(--gris-clair);}

.actu-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.actu-card{border:1px solid rgba(255,255,255,.12);padding:34px 32px;transition:transform .4s, border-color .4s;display:flex;flex-direction:column;}
.actu-card:hover{transform:translateY(-6px);border-color:rgba(204,0,0,.5);}
.actu-card .date{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--rouge);margin-bottom:14px;}
.actu-card h4{font-family:var(--titre);font-size:1.55rem;color:#fff;margin-bottom:10px;}
.actu-card p{color:var(--gris);font-size:.95rem;flex:1;}
.actu-card .lieu{margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1);color:var(--gris-clair);font-size:.88rem;display:flex;gap:8px;}
.actu-card .lieu .pin{color:var(--rouge);}

/* Galerie */
.galerie{margin-top:90px;}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:40px;}
.gallery-item{position:relative;overflow:hidden;cursor:pointer;aspect-ratio:1/1;}
.gallery-item img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%) contrast(1.05);transition:filter .5s ease, transform .6s ease;}
.gallery-item::after{content:"";position:absolute;inset:0;background:rgba(204,0,0,0);transition:background .5s ease;}
.gallery-item:hover img{filter:grayscale(0%) contrast(1.05);transform:scale(1.06);}
.gallery-item:hover::after{background:rgba(204,0,0,.18);}

/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:2000;background:rgba(7,7,7,.94);display:none;align-items:center;justify-content:center;padding:40px;}
.lightbox.open{display:flex;}
.lightbox img{max-width:90vw;max-height:88vh;filter:grayscale(100%);box-shadow:0 30px 80px rgba(0,0,0,.6);}
.lightbox .lb-close{position:absolute;top:26px;right:34px;font-size:2.2rem;color:#fff;cursor:pointer;line-height:1;background:none;border:none;}
.lightbox .lb-nav{position:absolute;top:50%;transform:translateY(-50%);font-size:2.4rem;color:#fff;cursor:pointer;background:none;border:none;padding:20px;opacity:.7;transition:opacity .3s;}
.lightbox .lb-nav:hover{opacity:1;}
.lightbox .lb-prev{left:18px;}
.lightbox .lb-next{right:18px;}

/* ============================================================
   11. CTA FINAL (overlay éclairci pour voir la photo)
============================================================ */
.contact{position:relative;overflow:hidden;text-align:center;}
.contact-bg{position:absolute;inset:0;z-index:0;}
.contact-bg img{width:100%;height:100%;object-fit:cover;object-position:center 25%;opacity:.6;} /* photo plus visible */
.contact-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,.5),rgba(10,10,10,.55));} /* overlay ~0.5 */
.contact-inner{position:relative;z-index:2;max-width:760px;margin:0 auto;padding:0 24px;}
.contact h2{font-size:clamp(2.4rem,5.5vw,4rem);text-shadow:0 2px 24px rgba(0,0,0,.6);}
.contact .redline{margin:30px auto 38px;}
.contact .btn-rouge{font-size:.92rem;padding:20px 50px;}
.contact-info{display:flex;justify-content:center;gap:50px;flex-wrap:wrap;margin-top:48px;}
.ci-item .ci-label{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rouge);margin-bottom:8px;}
.ci-item a{color:#fff;font-size:1.05rem;transition:color .3s;}
.ci-item a:hover{color:var(--rouge);}
.maps-link{display:inline-flex;align-items:center;gap:8px;margin-top:42px;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;border:1px solid rgba(255,255,255,.4);padding:14px 28px;transition:.3s;}
.maps-link:hover{border-color:var(--rouge);background:rgba(204,0,0,.2);}

/* ============================================================
   12. FOOTER
============================================================ */
.footer{background:#070707;border-top:1px solid rgba(255,255,255,.07);padding:54px 0 40px;}
.footer-inner{max-width:var(--maxw);margin:0 auto;padding:0 24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:24px;}
.footer .logo{font-size:1.2rem;}
.footer .f-meta{display:flex;gap:28px;flex-wrap:wrap;font-size:.82rem;color:var(--gris);}
.footer .f-meta a{cursor:pointer;}
.footer .f-meta a:hover{color:#fff;}
.footer-bottom{max-width:var(--maxw);margin:32px auto 0;padding:24px 24px 0;border-top:1px solid rgba(255,255,255,.07);font-size:.76rem;color:#666;}

/* Modale mentions légales */
.modal{position:fixed;inset:0;z-index:2100;background:rgba(7,7,7,.85);display:none;align-items:center;justify-content:center;padding:30px;}
.modal.open{display:flex;}
.modal-box{background:#111;border:1px solid rgba(255,255,255,.14);max-width:680px;width:100%;max-height:86vh;overflow-y:auto;padding:48px 50px;position:relative;}
.modal-box h3{font-size:2rem;margin-bottom:8px;}
.modal-box .m-redline{width:50px;height:3px;background:var(--rouge);margin:14px 0 28px;}
.modal-box h4{color:var(--rouge);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;margin:24px 0 8px;}
.modal-box p{color:var(--gris-clair);font-size:.96rem;}
.modal-box .m-close{position:absolute;top:20px;right:24px;font-size:1.8rem;color:#fff;background:none;border:none;cursor:pointer;line-height:1;}

/* ============================================================
   13. FADE-IN AU SCROLL
============================================================ */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.16,.7,.3,1),transform .9s cubic-bezier(.16,.7,.3,1);}
.reveal.visible{opacity:1;transform:none;}
.reveal.d1{transition-delay:.1s;}
.reveal.d2{transition-delay:.2s;}
.reveal.d3{transition-delay:.3s;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
}

/* ============================================================
   14. RESPONSIVE : breakpoints 1200px & 768px
============================================================ */
@media (max-width:1200px){
  .teacher-grid{gap:48px;}
  .dojo-body,.tarifs-club{padding-left:38px;padding-right:38px;}
  .actu-cards{grid-template-columns:1fr 1fr;}
}
@media (max-width:768px){
  /* Menu mobile */
  .nav-links{
    position:fixed;top:0;right:0;height:100vh;width:80%;max-width:340px;
    background:rgba(10,10,10,.98);backdrop-filter:blur(14px);
    flex-direction:column;justify-content:flex-start;gap:8px;padding:90px 36px 40px;
    transform:translateX(100%);transition:transform .4s ease;overflow-y:auto;align-items:flex-start;
  }
  .nav-links.open{transform:translateX(0);}
  .nav-links>li{width:100%;}
  .nav-links a{font-size:1.05rem;}
  .nav-cta{border:1px solid var(--rouge);margin-top:10px;}
  /* Sous-menu : déplié en accordéon sur mobile */
  .dropdown{position:static;opacity:1;visibility:visible;transform:none;background:transparent;border:none;margin:6px 0 6px 14px;padding:0;border-left:1px solid rgba(204,0,0,.4);}
  .dropdown a{padding:9px 16px;font-size:.92rem;}
  .caret{display:none;}
  .burger{display:flex;z-index:1100;}
  .burger.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .burger.active span:nth-child(2){opacity:0;}
  .burger.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  /* Philosophie */
  .founder{flex-direction:column;text-align:center;gap:26px;padding:34px 26px;}
  .founder-text p{margin:0 auto;}
  .piliers{grid-template-columns:1fr;}
  .pilier{border-right:none;border-bottom:1px solid rgba(255,255,255,.1);}
  .pilier:last-child{border-bottom:none;}
  .pilier .explic{display:none;} /* masque le texte explicatif complémentaire sur mobile */
  .education-cols{grid-template-columns:1fr;}
  .edu-col{border-right:none;border-bottom:1px solid #d2d1cc;}
  .edu-col:last-child{border-bottom:none;}

  /* Publics */
  .cards{grid-template-columns:1fr;}

  /* Enseignant */
  .teacher-grid{grid-template-columns:1fr;gap:44px;}
  .teacher-photo{order:-1;}
  .teacher-photo::before{display:none;}
  .expertise,.philosophy-block{padding-left:0;padding-right:0;}
  .expertise{padding:32px 26px;}

  /* Dojos */
  .tapis{grid-template-columns:1fr;}
  .dojo-top{grid-template-columns:1fr;}
  .dojo-media,.photo-placeholder{order:-1;min-height:260px;}
  .dojo-body{padding:36px 26px;}
  .tarifs-club{padding:0 26px 36px;}
  .plans{grid-template-columns:1fr;}
  .reduc-grid{grid-template-columns:1fr;}
  .club-cta{margin:0 26px 36px;padding:30px 24px;}
  .club-cta-info{gap:24px;}

  /* Actualités */
  .actu-feature{grid-template-columns:1fr;}
  .actu-feature .af-img{min-height:240px;}
  .actu-cards{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}

  /* Contact / footer */
  .contact-info{gap:30px;}
  .footer-inner{flex-direction:column;align-items:flex-start;}
  .modal-box{padding:38px 28px;}
}
@media (max-width:420px){
  .h-slot{min-width:104px;padding:10px 14px;}
  .badge{flex-direction:column;align-items:flex-start;gap:10px;}
  .badge .mark{border-right:none;padding-right:0;}
}
