
:root{
  --red:#d71919; --red-dark:#a90f0f; --black:#111; --ink:#222; --muted:#666; --line:#e9e9e9; --soft:#f7f7f7;
  --container:1180px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;font-family:Inter,Arial,Helvetica,sans-serif;color:var(--ink);background:white;line-height:1.55} a{color:inherit;text-decoration:none} img{max-width:100%;display:block}.container{width:min(var(--container),calc(100% - 40px));margin:auto}.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);box-shadow:0 1px 14px rgba(0,0,0,.06)}.nav{height:92px;display:flex;align-items:center;gap:30px}.brand{display:flex;align-items:center;gap:12px;font-weight:900;letter-spacing:.02em}.brand img{width:86px;height:86px;object-fit:contain}.brand span{display:none}.menu{margin-left:auto;display:flex;align-items:center;gap:26px;font-size:.88rem;font-weight:800;text-transform:uppercase}.menu a{position:relative;padding:4px 0}.menu a.active,.menu a:hover{color:var(--red)}.menu a.active:after,.menu a:hover:after{content:"";position:absolute;left:0;right:0;bottom:22px;height:3px;background:var(--red);border-radius:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:2px solid var(--red);background:var(--red);color:white;font-weight:900;text-transform:uppercase;border-radius:8px;padding:13px 18px;box-shadow:0 6px 14px rgba(215,25,25,.22);font-size:.86rem;transition:.2s}.btn:hover{background:var(--red-dark);transform:translateY(-1px)}.btn-outline{background:white;color:var(--red);box-shadow:none}.hamb{display:none;margin-left:auto;background:none;border:0;font-size:1.8rem}.hero{min-height:350px;display:flex;align-items:center;border-bottom:1px solid var(--line)}.hero h1{font-size:clamp(2.35rem,5vw,4.5rem);line-height:1.02;margin:0 0 10px;color:#050505;letter-spacing:-.05em}.hero .tagline{font-size:clamp(1.35rem,2.5vw,2rem);font-weight:900;color:var(--red);margin:0 0 14px}.hero p{font-size:1.12rem;color:#333;max-width:530px}.hero-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:28px}.section{padding:58px 0}.section-soft{background:#f6f6f6}.section-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.section-title h2,.page-title h1{margin:0;font-size:1.45rem;text-transform:uppercase;letter-spacing:-.02em}.section-title h2:after,.page-title h1:after{content:"";display:block;width:36px;height:3px;background:var(--red);border-radius:4px;margin-top:9px}.link-red{color:var(--red);font-weight:900;text-transform:uppercase;font-size:.82rem}.grid{display:grid;gap:24px}.grid-2{grid-template-columns:1.15fr .85fr}.grid-3{grid-template-columns:repeat(3,1fr)}.card{background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 10px 24px rgba(0,0,0,.05)}.card-body{padding:24px}.circle-icon{width:58px;height:58px;border-radius:999px;background:var(--red);display:flex;align-items:center;justify-content:center;margin:-31px auto 12px;box-shadow:0 6px 18px rgba(215,25,25,.25);border:4px solid white}.circle-icon img{width:31px;height:31px}.muted{color:var(--muted)}.schedule-table{width:100%;border-collapse:collapse;background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden}.schedule-table th,.schedule-table td{border:1px solid var(--line);padding:15px 10px;text-align:center;font-size:.86rem}.schedule-table th{background:#fafafa;text-transform:uppercase}.schedule-table .rowhead{text-align:left;font-weight:900}.schedule-table b{display:block}.features{position:relative;overflow:hidden}.features:after{content:"空手道";position:absolute;right:8%;top:15%;font-size:5.0rem;color:rgba(0,0,0,.09);font-family:serif;writing-mode:vertical-rl}.feature{display:flex;gap:18px;align-items:center;position:relative;z-index:1}.feature .circle-icon{margin:0;flex:0 0 60px}.feature h3{margin:0 0 4px;text-transform:uppercase}.info-list{display:grid;gap:16px}.info-item{display:flex;gap:14px;align-items:flex-start}.info-ico{font-size:1.45rem;color:var(--red);width:28px;text-align:center}.map{border:1px solid var(--line);border-radius:10px;overflow:hidden}.cta{background:radial-gradient(circle at 90% 30%,rgba(215,25,25,.22),transparent 28%),linear-gradient(90deg,#111,#1b1b1b);color:white;padding:36px 0}.cta .container{display:flex;align-items:center;justify-content:space-between;gap:30px}.footer{background:#101010;color:#ddd;padding:44px 0 18px}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:44px}.footer-logo{width:105px;margin-bottom:12px}.footer h3{color:white;font-size:1rem;text-transform:uppercase}.footer a{color:#ddd}.footer a:hover{color:white}.socials{display:flex;gap:12px}.socials a{width:38px;height:38px;border-radius:999px;border:1px solid #777;display:grid;place-items:center}.copyright{margin-top:34px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);font-size:.8rem;color:#aaa;text-align:center}.page-hero{padding:72px 0;background:#fff;border-bottom:1px solid var(--line)}.page-title h1{font-size:clamp(2.2rem,5vw,4rem);letter-spacing:-.05em}.page-title p{max-width:720px;font-size:1.13rem}.content-block{background:white;border:1px solid var(--line);border-radius:12px;padding:0px 32px 32px;box-shadow:0 10px 26px rgba(0,0,0,.04)}.price{font-size:2.3rem;font-weight:900;color:var(--red)}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.gallery img{height:210px;width:100%;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.contact-form{display:grid;gap:14px}.contact-form input,.contact-form textarea{width:100%;padding:14px 16px;border:1px solid #ddd;border-radius:8px;font:inherit}.contact-form textarea{min-height:150px}.pill{display:inline-flex;background:#fff2f2;color:var(--red);font-weight:800;border-radius:999px;padding:5px 12px;font-size:.8rem;margin-bottom:12px}@media (max-width:900px){.hamb{display:block}.menu{display:none;position:absolute;left:0;right:0;top:92px;background:white;flex-direction:column;align-items:flex-start;padding:18px 24px;border-top:1px solid var(--line);box-shadow:0 15px 25px rgba(0,0,0,.08)}.menu.open{display:flex}.menu a{padding:8px 0}.menu a:after{display:none}.menu .btn{margin-top:8px}.grid-2,.grid-3,.footer-grid{grid-template-columns:1fr}.hero{min-height:420px}.cta .container{align-items:flex-start;flex-direction:column}.features:after{display:none}.gallery{grid-template-columns:1fr 1fr}.nav{height:86px}.brand img{width:72px;height:72px}}@media (max-width:560px){.container{width:min(100% - 24px,var(--container))}.hero-actions{flex-direction:column}.btn{width:100%}.schedule-table{font-size:.75rem}.schedule-table th,.schedule-table td{padding:10px 6px}.gallery{grid-template-columns:1fr}.section{padding:42px 0}.brand span{display:block;font-size:.9rem}.topbar .btn{width:auto}}


/* Footer graphique - version maquette sombre */
.footer-cta{
  position:relative;
  overflow:hidden;
  padding:0;
  color:#fff;
  background:
    radial-gradient(circle at 70% 40%, rgba(215,25,25,.16), transparent 28%),
    linear-gradient(180deg,#181818 0%,#0c0c0c 100%);
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.10);
}
.footer-cta:before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:min(360px,34vw);
  background:url('../images/footer-karateka.png') left center/contain no-repeat;
  opacity:.72;
  filter:grayscale(1);
  pointer-events:none;
}
.footer-cta:after{
  content:"";
  position:absolute;
  right:18px;
  top:-55px;
  width:220px;
  height:220px;
  background:url('../images/shito-minimaliste.png') center/contain no-repeat;
  opacity:.22;
  filter:grayscale(1);
  pointer-events:none;
}
.footer-cta .cta-inner{
  position:relative;
  z-index:1;
  min-height:112px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  padding-left:260px;
}
.footer-cta h2{
  margin:0 0 4px;
  font-size:clamp(1.35rem,2vw,1.75rem);
  line-height:1.15;
  color:#fff;
  letter-spacing:.01em;
}
.footer-cta p{margin:0;color:#f1f1f1;font-size:1.02rem}.footer-cta .btn{white-space:nowrap;box-shadow:0 10px 24px rgba(215,25,25,.34)}
.site-footer{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 15% 0%, rgba(255,255,255,.07), transparent 26%),
    linear-gradient(180deg,#111 0%,#090909 100%);
  color:#e3e3e3;
  padding:36px 0 18px;
}
.site-footer:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(255,255,255,.035), transparent 18%, transparent 82%, rgba(255,255,255,.03));
  opacity:.7;
  pointer-events:none;
}
.site-footer:after{
  content:"";
  position:absolute;
  right:-8px;
  bottom:26px;
  width:min(520px,44vw);
  height:240px;
  background:url('../images/footer-decor-asiatique.png') right bottom/contain no-repeat;
  opacity:.48;
  filter:grayscale(1);
  pointer-events:none;
}
.site-footer .container{position:relative;z-index:1}.footer-grid-rich{grid-template-columns:1.25fr .9fr .85fr;align-items:start;gap:58px}.footer-brand{display:grid;grid-template-columns:115px 1fr;align-items:center;gap:24px;max-width:465px}.footer-logo-black{width:115px;margin:0}.footer-brand p{margin:0;color:#f0f0f0;line-height:1.65}.site-footer h3{margin:0 0 16px;color:white;font-size:.98rem;text-transform:uppercase;letter-spacing:.02em}.footer-social .socials a{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.35);color:#fff}.footer-bottom{margin-top:32px;padding-top:18px;border-top:1px solid rgba(255,255,255,.16);color:#aaa;font-size:.82rem;text-align:center}.footer-bottom span{opacity:.45;margin:0 13px}
@media (max-width:900px){.footer-cta .cta-inner{padding-left:0;min-height:160px;align-items:flex-start;justify-content:center;flex-direction:column}.footer-cta:before{opacity:.25;width:260px}.footer-cta:after{right:-60px;top:-30px}.footer-grid-rich{grid-template-columns:1fr;gap:30px}.footer-brand{grid-template-columns:92px 1fr}.footer-logo-black{width:92px}.site-footer:after{width:360px;opacity:.25}}
@media (max-width:560px){.footer-brand{grid-template-columns:1fr}.footer-cta .btn{width:100%}.footer-bottom span{display:none}.footer-cta:before{display:none}}


/* Accueil : infos pratiques élargies */
.info-pratiques-home{
  background:#fff;
}
.info-pratiques-wide{
  padding:28px;
  display:grid;
  grid-template-columns:minmax(320px,.82fr) minmax(460px,1.18fr);
  gap:30px;
  align-items:stretch;
  overflow:visible;
}
.info-pratiques-details{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
  align-content:start;
}
.info-pratiques-home .info-list-large{
  gap:22px;
  font-size:1.02rem;
}
.info-pratiques-home .info-item{
  align-items:flex-start;
}
.info-pratiques-home .info-ico{
  color:var(--red);
  font-size:1.35rem;
  line-height:1.1;
  margin-top:2px;
}
.practical-map{
  width:min(260px,45%);
  min-height:210px;
  align-self:start;
  justify-self:start;
  margin-left:32px;
  background:#fafafa;
}
.practical-map img{
  width:100%;
  height:210px;
  object-fit:cover;
}
.dojo-photo-card{
  position:relative;
  margin:0;
  min-height:390px;
  border-radius:12px;
  overflow:hidden;
  background:#111;
  box-shadow:0 14px 32px rgba(0,0,0,.12);
}
.dojo-photo-card img{
  width:100%;
  height:100%;
  min-height:390px;
  object-fit:cover;
}
.dojo-photo-card figcaption{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:18px 22px;
  color:#fff;
  font-weight:800;
  line-height:1.35;
  background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.78));
}
@media (max-width:980px){
  .info-pratiques-wide,
  .info-pratiques-details{
    grid-template-columns:1fr;
  }
  .dojo-photo-card,
  .dojo-photo-card img{
    min-height:300px;
  }
}
@media (max-width:560px){
  .info-pratiques-wide{
    padding:18px;
  }
  .practical-map{
    width:100%;
    margin-left:0;
  }
  .dojo-photo-card,
  .dojo-photo-card img{
    min-height:230px;
  }
}


/* Bas de page : logos institutionnels discrets */
.partner-logos{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:nowrap;
  gap:20px;
  max-width:none;
}
.partner-logos a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:0;
}
.partner-logo{
  display:block;
  width:auto;
  object-fit:contain;
  opacity:.82;
  filter:saturate(.9) brightness(1.04);
  transition:opacity .2s ease, filter .2s ease, transform .2s ease;
}
.partner-logo:hover{
  opacity:1;
  filter:saturate(1) brightness(1.1);
  transform:translateY(-1px);
}
.partner-logo-biot{
  height:70px;
  max-width:100px;
}
.partner-logo-sophia{
  height:54px;
  max-width:160px;
}
.partner-logo-ffk{
  height:54px;
  max-width:160px;
}
.site-footer .partner-logos{
  max-width:none;
}
.site-footer .partner-logo-biot{
  height:70px;
}
.site-footer .partner-logo-sophia{
  height:54px;
  max-width:160px;
}
.site-footer .partner-logo-ffk{
  height:54px;
  max-width:160px;
}
@media (max-width:900px){
  .partner-logos{
    gap:16px;
  }
  .partner-logo-biot,
  .site-footer .partner-logo-biot{
    height:62px;
  }
  .partner-logo-sophia,
  .site-footer .partner-logo-sophia{
    height:46px;
    max-width:135px;
  }
  .partner-logo-ffk,
  .site-footer .partner-logo-ffk{
    height:46px;
    max-width:135px;
  }
}
@media (max-width:560px){
  .partner-logos{
    gap:12px;
  }
  .partner-logo-biot,
  .site-footer .partner-logo-biot{
    height:52px;
  }
  .partner-logo-sophia,
  .site-footer .partner-logo-sophia{
    height:38px;
    max-width:110px;
  }
  .partner-logo-ffk,
  .site-footer .partner-logo-ffk{
    height:38px;
    max-width:110px;
  }
}

/* Page Club : présentation de l'enseignant */
.club-hero,
.frise-page-hero{
  position:relative;
  overflow:hidden;
  background:#fff;
}
.club-hero:before,
.frise-page-hero:before{
  content:"";
  position:absolute;
  inset:0;
  background:url('../images/frise-biot-large.png') center center/cover no-repeat;
  opacity:1;
  pointer-events:none;
}
.club-hero:after,
.frise-page-hero:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,
    rgba(255,255,255,.88) 0%,
    rgba(255,255,255,.82) 34%,
    rgba(255,255,255,.45) 58%,
    rgba(255,255,255,.20) 100%);
  pointer-events:none;
}
.club-hero .page-title,
.frise-page-hero .page-title{
  position:relative;
  z-index:1;
}
.club-teacher-section{
  position:relative;
  overflow:hidden;
  padding:64px 0 74px;
  background:
    radial-gradient(circle at 88% 18%, rgba(0,0,0,.035), transparent 26%),
    linear-gradient(180deg,#fff 0%,#fbfbfb 100%);
}
.club-teacher-section:before{
  content:"";
  position:absolute;
  right:-500px;
  top:12px;
  width:min(420px,34vw);
  height:540px;
  background:url('../images/footer-decor-asiatique.png') right top/contain no-repeat;
  opacity:.10;
  filter:grayscale(1);
  pointer-events:none;
}
.club-teacher-section:after{
  content:"空手道";
  position:absolute;
  right:6.4%;
  top:32%;
  color:rgba(0,0,0,.22);
  font-family:serif;
  font-size:1.25rem;
  line-height:1.4;
  letter-spacing:.2em;
  writing-mode:vertical-rl;
  pointer-events:none;
}
.club-teacher-layout{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(360px,.92fr) minmax(500px,1fr);
  gap:clamp(42px,6vw,78px);
  align-items:center;
}
.teacher-photo-card{
  margin:0;
  min-height:620px;
  border-radius:12px;
  overflow:hidden;
  background:#efefef;
  border:1px solid rgba(0,0,0,.06);
  box-shadow:0 18px 42px rgba(0,0,0,.08);
}
.teacher-photo-card img{
  width:100%;
  height:100%;
  min-height:620px;
  object-fit:cover;
  object-position:center top;
}
.teacher-profile{
  max-width:600px;
}
.teacher-pill{
  margin-bottom:18px;
}
.teacher-name{
  margin:0;
  color:#171717;
  font-size:clamp(2.8rem,5.2vw,4.55rem);
  line-height:.98;
  letter-spacing:-.065em;
}
.teacher-redline{
  display:block;
  width:38px;
  height:3px;
  margin:28px 0 22px;
  border-radius:999px;
  background:var(--red);
}
.teacher-rank{
  margin:0 0 26px;
  color:#232323;
  font-size:clamp(1.2rem,2vw,1.7rem);
  line-height:1.25;
}
.teacher-highlight{
  margin:0 0 22px;
  padding:2px 0 2px 20px;
  border-left:5px solid var(--red);
  color:#1a1a1a;
  font-weight:900;
  font-size:1.12rem;
}
.teacher-text{
  color:#333;
  font-size:1rem;
  line-height:1.75;
  max-width:560px;
}
.teacher-text p{
  margin:0 0 20px;
}
.teacher-values{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
  margin-top:38px;
  padding-top:34px;
  border-top:1px solid var(--line);
}
.teacher-value-icon{
  display:inline-flex;
  width:42px;
  height:42px;
  margin-bottom:10px;
  color:var(--red);
}
.teacher-value-icon svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:2.35;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.teacher-value h3{
  margin:0 0 8px;
  color:#1a1a1a;
  font-size:1.05rem;
}
.teacher-value p{
  margin:0;
  color:#444;
  font-size:.92rem;
  line-height:1.65;
}
@media (max-width:980px){
  .club-teacher-layout{
    grid-template-columns:1fr;
  }
  .teacher-profile{
    max-width:none;
  }
  .teacher-photo-card,
  .teacher-photo-card img{
    min-height:560px;
  }
  .club-teacher-section:before,
  .club-teacher-section:after{
    opacity:.06;
  }
}
@media (max-width:700px){
  .club-teacher-section{
    padding:44px 0 52px;
  }
  .teacher-photo-card,
  .teacher-photo-card img{
    min-height:480px;
  }
  .teacher-values{
    grid-template-columns:1fr;
    gap:22px;
  }
  .teacher-value{
    display:grid;
    grid-template-columns:46px 1fr;
    column-gap:14px;
    align-items:start;
  }
  .teacher-value-icon{
    grid-row:1 / span 2;
    margin-bottom:0;
  }
}
@media (max-width:480px){
  .teacher-photo-card,
  .teacher-photo-card img{
    min-height:390px;
  }
  .teacher-name{
    font-size:2.55rem;
  }
}

/* Accueil : frise Biot large sur toute la largeur + voile blanc */
.hero{
  position:relative;
  overflow:hidden;
  background:#fff;
}
.hero > .container{
  position:relative;
  z-index:3;
}
.hero-illustration{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
}
.hero-frise{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  max-width:none;
  opacity:1;
}
.hero-illustration:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(90deg,
    rgba(255,255,255,.88) 0%,
    rgba(255,255,255,.82) 34%,
    rgba(255,255,255,.45) 58%,
    rgba(255,255,255,.20) 100%);
}
.hero-logo-overlay{
  position:absolute;
  z-index:2;
  left:70%;
  top:46%;
  width:min(24vw,360px);
  height:auto;
  max-width:none;
  opacity:1;
  transform:translate(-50%,-50%);
}

@media (max-width:900px){
  .hero-frise{
    object-position:center center;
    opacity:1;
  }
  .hero-illustration:before{
    background:linear-gradient(rgba(255,255,255,.90),rgba(255,255,255,.72));
  }
  .hero-logo-overlay{
    left:auto;
    right:22px;
    top:34px;
    width:190px;
    transform:none;
  }
}

@media (max-width:560px){
  .hero-illustration:before{
    background:linear-gradient(rgba(255,255,255,.94),rgba(255,255,255,.78));
  }
  .hero-logo-overlay{
    right:14px;
    top:24px;
    width:145px;
  }
}


/* Page Cours : fondamentaux de la pratique */
.course-foundations-section{
  position:relative;
  overflow:hidden;
  padding:58px 0 36px;
  background:
    radial-gradient(circle at 92% 12%, rgba(215,25,25,.08), transparent 26%),
    linear-gradient(180deg,#fff 0%,#fbfbfb 100%);
}
.course-foundations-section:after{
  content:"空手道";
  position:absolute;
  right:6%;
  bottom:6%;
  color:rgba(0,0,0,.045);
  font-family:serif;
  font-size:5.4rem;
  line-height:1;
  letter-spacing:.08em;
  writing-mode:vertical-rl;
  pointer-events:none;
}
.course-foundations-heading{
  position:relative;
  z-index:1;
  max-width:760px;
  margin-bottom:28px;
}
.course-foundations-heading h2{
  margin:0;
  color:#171717;
  font-size:clamp(2rem,3.6vw,3.05rem);
  line-height:1;
  letter-spacing:-.055em;
}
.course-foundations-heading h2:after{
  content:"";
  display:block;
  width:36px;
  height:3px;
  margin-top:14px;
  border-radius:999px;
  background:var(--red);
}
.course-foundations-heading p{
  max-width:720px;
  margin:18px 0 0;
  color:#333;
  font-size:1.08rem;
  line-height:1.7;
}
.course-foundations-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
}
.course-foundation-card{
  position:relative;
  min-height:245px;
  padding:26px 24px 24px;
  overflow:hidden;
  border:1px solid rgba(0,0,0,.08);
  border-radius:14px;
  background:#fff;
  box-shadow:0 14px 30px rgba(0,0,0,.055);
}
.course-foundation-card:before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:5px;
  background:var(--red);
}
.course-foundation-card:after{
  content:"";
  position:absolute;
  right:-34px;
  top:-34px;
  width:118px;
  height:118px;
  border-radius:999px;
  background:rgba(215,25,25,.08);
  pointer-events:none;
}
.foundation-index{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  margin-bottom:18px;
  border-radius:999px;
  color:#fff;
  background:var(--red);
  font-weight:900;
  font-size:.82rem;
  box-shadow:0 8px 18px rgba(215,25,25,.22);
}
.course-foundation-card h3{
  margin:0 0 12px;
  color:#151515;
  font-size:1.45rem;
  line-height:1.05;
  letter-spacing:-.025em;
}
.course-foundation-card p{
  margin:0;
  color:#3d3d3d;
  font-size:.97rem;
  line-height:1.68;
}
.techniques-board-section{
  padding-top:32px;
}
@media (max-width:1050px){
  .course-foundations-grid{
    grid-template-columns:repeat(2,1fr);
  }
}
@media (max-width:640px){
  .course-foundations-section{
    padding:42px 0 24px;
  }
  .course-foundations-grid{
    grid-template-columns:1fr;
  }
  .course-foundation-card{
    min-height:0;
  }
}

/* Page Cours : planche des familles techniques */
.techniques-board-section{
  padding:56px 0 70px;
  background:#fff;
}
.techniques-board{
  margin:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  box-shadow:0 14px 34px rgba(0,0,0,.07);
}
.techniques-board img{
  width:100%;
  height:auto;
  display:block;
}
@media (max-width:700px){
  .techniques-board-section{
    padding:36px 0 46px;
  }
  .techniques-board{
    border-radius:10px;
  }
}


/* Page Cours : planche des surfaces de frappe */
.strike-surfaces-section{
  padding:8px 0 18px;
  background:#fff;
}
.strike-surfaces-heading{
  /* max-width:860px; */
  margin-bottom:22px;
}
.strike-surfaces-heading h2{
  margin:0;
  color:#171717;
  font-size:clamp(1.8rem,3.2vw,2.6rem);
  line-height:1.05;
  letter-spacing:-.04em;
}
.strike-surfaces-heading h2:after{
  content:"";
  display:block;
  width:36px;
  height:3px;
  margin-top:14px;
  border-radius:999px;
  background:var(--red);
}
.strike-surfaces-heading p{
  margin:16px 0 0;
  color:#333;
  font-size:1.04rem;
  line-height:1.7;
}
.strike-surfaces-board{
  width:min(560px, 100%);
  margin:0 auto;
  padding:18px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  box-shadow:0 14px 34px rgba(0,0,0,.12);
}

.strike-surfaces-board img{
  width:100%;
  height:auto;
  display:block;
  border-radius:10px;
  background:#fff;
}
@media (max-width:700px){
  .strike-surfaces-section{
    padding:0 0 10px;
  }
  .strike-surfaces-board{
    padding:12px;
    border-radius:10px;
  }
}


/* Page Horaires : intégration du croquis du dojo */
.horaires-art-section{
  padding-top:0;
  background:linear-gradient(180deg,#fff 0%,#fbfbfb 100%);
}
.horaires-art-card{
  position:relative;
  overflow:hidden;
  padding:3px;
  border:1px solid var(--line);
  border-radius:18px;
  background:
    radial-gradient(circle at 92% 10%, rgba(215,25,25,.05), transparent 18%),
    linear-gradient(180deg,#ffffff 0%,#fcfcfc 100%);
  box-shadow:0 14px 34px rgba(0,0,0,.06);
}
.horaires-art-card:before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:4px;
  background:linear-gradient(90deg, var(--red), rgba(215,25,25,.08));
}
.horaires-art-figure{
  margin:0;
  padding:14px;
  border:1px solid rgba(0,0,0,.06);
  border-radius:16px;
  background:linear-gradient(180deg,#f7f4f0 0%, #fdfcfb 100%);
  box-shadow:0 12px 28px rgba(0,0,0,.05);
}
.horaires-art-figure img{
  width:100%;
  height:auto;
  display:block;
  border-radius:10px;
  filter:contrast(1.02) brightness(1.01);
}
@media (max-width:700px){
  .horaires-art-card{
    padding:22px;
    border-radius:14px;
  }
  .horaires-art-figure{
    padding:10px;
    border-radius:12px;
  }
}


/* Page Horaires : tableau placé au-dessus du croquis */
.horaires-table-card{
  position:relative;
  z-index:1;
  margin:0 0 1px;
  padding:2px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  box-shadow:0 10px 24px rgba(0,0,0,.045);
}
.horaires-table-card .schedule-table{
  margin:0;
}
.horaires-table-card .muted{
  margin:18px 0 0;
}
@media (max-width:700px){
  .horaires-table-card{
    padding:16px;
    overflow-x:auto;
  }
}


/* Page Galerie : photos du club avec légendes discrètes */
.galerie-section{
  background:#fff;
}
.gallery-rich{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
.gallery-item{
  margin:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  box-shadow:0 12px 28px rgba(0,0,0,.06);
  transition:transform .2s ease, box-shadow .2s ease;
}
.gallery-item:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 34px rgba(0,0,0,.09);
}
.gallery-rich .gallery-item img{
  width:100%;
  height:245px;
  object-fit:cover;
  border:0;
  border-radius:0;
}
.gallery-item figcaption{
  padding:11px 14px 13px;
  color:#555;
  font-size:.86rem;
  line-height:1.35;
  background:linear-gradient(180deg,#fff 0%,#fafafa 100%);
  border-top:1px solid var(--line);
}
@media (max-width:980px){
  .gallery-rich{
    grid-template-columns:repeat(2,1fr);
  }
}
@media (max-width:560px){
  .gallery-rich{
    grid-template-columns:1fr;
    gap:16px;
  }
  .gallery-rich .gallery-item img{
    height:230px;
  }
}


/* Page Cours : mosaïque de miniatures techniques */
.course-mosaic-section{
  position:relative;
  overflow:hidden;
  padding:34px 0 46px;
  background:
    radial-gradient(circle at 92% 6%, rgba(215,25,25,.06), transparent 24%),
    linear-gradient(180deg,#fbfbfb 0%,#fff 100%);
}
.course-mosaic-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:14px;
}
.course-mosaic-item{
  position:relative;
  min-height:150px;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(0,0,0,.08);
  border-radius:14px;
  background:#fff;
  box-shadow:0 12px 26px rgba(0,0,0,.065);
}
.course-mosaic-item:before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  z-index:1;
  width:5px;
  background:var(--red);
  pointer-events:none;
}
.course-mosaic-item img{
  width:100%;
  height:100%;
  min-height:150px;
  object-fit:cover;
  object-position:center;
  transition:transform .28s ease, filter .28s ease;
}
.course-mosaic-item:hover img{
  transform:scale(1.035);
  filter:contrast(1.04);
}
.course-mosaic-item-large{
  grid-column:span 2;
  grid-row:span 2;
  min-height:314px;
}
.course-mosaic-item-wide{
  grid-column:span 2;
}
.course-mosaic-item-large img{
  min-height:314px;
}
@media (max-width:1050px){
  .course-mosaic-grid{
    grid-template-columns:repeat(3,1fr);
  }
  .course-mosaic-item-large{
    grid-column:span 2;
  }
}
@media (max-width:700px){
  .course-mosaic-section{
    padding:26px 0 36px;
  }
  .course-mosaic-grid{
    grid-template-columns:repeat(2,1fr);
    gap:12px;
  }
  .course-mosaic-item,
  .course-mosaic-item img{
    min-height:130px;
  }
  .course-mosaic-item-large,
  .course-mosaic-item-wide{
    grid-column:span 2;
  }
  .course-mosaic-item-large,
  .course-mosaic-item-large img{
    min-height:250px;
  }
}
@media (max-width:460px){
  .course-mosaic-grid{
    grid-template-columns:1fr;
  }
  .course-mosaic-item,
  .course-mosaic-item-large,
  .course-mosaic-item-wide{
    grid-column:auto;
  }
  .course-mosaic-item,
  .course-mosaic-item img,
  .course-mosaic-item-large,
  .course-mosaic-item-large img{
    min-height:210px;
  }
}


/* Page contact : adresse à gauche, téléphone/email à droite */
.contact-info-grid{
  display:grid;
  grid-template-columns:minmax(260px,1fr) minmax(220px,.85fr);
  gap:24px 42px;
  align-items:start;
}
.contact-info-grid .contact-details{
  display:flex;
  flex-direction:column;
  gap:22px;
  padding-top:2px;
}
.contact-info-grid .info-item{
  margin:0;
}
.contact-info-grid a{
  color:inherit;
  text-decoration:none;
}
.contact-info-grid a:hover{
  color:var(--red);
}
@media (max-width:760px){
  .contact-info-grid{
    grid-template-columns:1fr;
    gap:16px;
  }
  .contact-info-grid .contact-details{
    gap:14px;
  }
}

/* Sections ajoutées : actualités & documents */
.actualites-home .card-body p{margin:0;font-size:1.05rem;}
.documents-section .content-block{padding-top:24px;}
.documents-section .content-block h3{margin-top:0;text-transform:uppercase;}


/* Page Club : origine du style Shito-ryu */
.shito-style-section{
  position:relative;
  overflow:hidden;
  padding:78px 0 86px;
  background:
    radial-gradient(circle at 8% 88%, rgba(0,0,0,.035), transparent 28%),
    linear-gradient(180deg,#fff 0%,#fbfbfb 100%);
}
.shito-style-section:before{
  content:"糸東流\A空手道";
  white-space:pre;
  position:absolute;
  left:3.6%;
  top:13%;
  color:rgba(0,0,0,.12);
  font-family:serif;
  font-size:clamp(3.6rem,6vw,6.2rem);
  line-height:1.1;
  letter-spacing:.06em;
  writing-mode:vertical-rl;
  pointer-events:none;
}
.shito-style-section:after{
  content:"";
  position:absolute;
  left:0;
  bottom:-38px;
  width:min(520px,40vw);
  height:260px;
  background:url('../images/footer-decor-asiatique.png') left bottom/contain no-repeat;
  opacity:.12;
  filter:grayscale(1);
  pointer-events:none;
}
.shito-style-layout{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(360px,.85fr) minmax(560px,1.15fr);
  gap:clamp(42px,6vw,82px);
  align-items:center;
}
.shito-style-copy{
  max-width:560px;
}
.shito-style-pill{
  padding:7px 22px;
  border:1px solid rgba(215,25,25,.6);
  background:rgba(255,255,255,.82);
  letter-spacing:.22em;
  text-transform:uppercase;
}
.shito-style-copy h2{
  margin:16px 0 0;
  color:#171717;
  font-family:Georgia, 'Times New Roman', serif;
  font-size:clamp(2.35rem,4.4vw,3.9rem);
  line-height:1.05;
  letter-spacing:-.055em;
}
.shito-style-copy h2:after{
  content:"";
  display:block;
  width:86px;
  height:3px;
  margin:30px 0 32px;
  border-radius:999px;
  background:var(--red);
}
.shito-style-copy p{
  margin:0 0 24px;
  color:#262626;
  font-size:1.08rem;
  line-height:1.8;
}
.shito-style-copy p:last-child{
  margin-bottom:0;
}
.shito-masters-card{
  overflow:hidden;
  border:1px solid rgba(0,0,0,.16);
  border-radius:14px;
  background:#fff;
  box-shadow:0 18px 42px rgba(0,0,0,.08);
}
.shito-masters-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
}
.shito-master{
  margin:0;
  display:grid;
  grid-template-rows:minmax(360px,1fr) auto;
  border-right:1px solid rgba(0,0,0,.14);
  background:#fff;
}
.shito-master:last-child{
  border-right:0;
}
.shito-master img{
  width:100%;
  height:100%;
  min-height:360px;
  object-fit:cover;
  object-position:center center;
  background:#111;
  filter:grayscale(1) contrast(1.05);
}
.shito-master figcaption{
  min-height:138px;
  padding:26px 18px 24px;
  text-align:center;
  background:linear-gradient(180deg,#fff 0%,#fbfbfb 100%);
}
.shito-master figcaption strong{
  display:block;
  color:#171717;
  font-family:Georgia, 'Times New Roman', serif;
  font-size:clamp(1.15rem,1.8vw,1.55rem);
  line-height:1.08;
  letter-spacing:-.02em;
}
.shito-master figcaption span{
  display:block;
  margin-top:12px;
  color:var(--red);
  font-weight:700;
  font-size:.94rem;
}
.shito-card-mark{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  padding:16px 28px 22px;
  color:var(--red);
  background:#fff;
}
.shito-card-mark:before,
.shito-card-mark:after{
  content:"";
  height:1px;
  flex:1;
  background:rgba(0,0,0,.18);
}
@media (max-width:1050px){
  .shito-style-layout{
    grid-template-columns:1fr;
  }
  .shito-style-copy{
    max-width:760px;
  }
}
@media (max-width:720px){
  .shito-style-section{
    padding:54px 0 62px;
  }
  .shito-style-section:before,
  .shito-style-section:after{
    opacity:.04;
  }
  .shito-masters-grid{
    grid-template-columns:1fr;
  }
  .shito-master{
    grid-template-rows:auto auto;
    border-right:0;
    border-bottom:1px solid rgba(0,0,0,.14);
  }
  .shito-master:last-child{
    border-bottom:0;
  }
  .shito-master img{
    width:100%;
    height:min(620px,145vw);
    min-height:0;
    max-height:none;
    object-fit:contain;
    object-position:center top;
    background:#111;
  }
  .shito-master figcaption{
    min-height:0;
  }
}

/* Logo page club notre style */
.shito-decor {
  width: 90px;
  height: auto;
  display: block;
  margin: 18px auto;
  opacity: 0.65;
}

/* Page Tarifs : note cooptation */
.cooptation-note{
  margin-top:-34px;
  margin-bottom:56px;
  padding:18px 22px;
  border-left:5px solid var(--red);
  border-radius:12px;
  background:#fff;
  box-shadow:0 10px 26px rgba(0,0,0,.045);
  color:#222;
  font-size:1.04rem;
  line-height:1.55;
}
.cooptation-note strong{
  color:var(--red);
}
.cooptation-note b{
  color:var(--red);
}
@media (max-width:700px){
  .cooptation-note{
    margin-top:-22px;
    margin-bottom:42px;
    font-size:.98rem;
  }
}

/* sweat page tarifs */
.sweat-logo {
  width: 190px;
  height: auto;
  display: block;
  margin: 18px auto;
  opacity: 0.85;
}