:root{
  --blue:#123c96;
  --blue-d:#0c2a69;
  --ink:#111418;
  --muted:#5b6472;
  --bg:#ffffff;
  --bg-alt:#f4f6fa;
  --dark:#0f1620;
  --line:#e3e7ef;
  --red:#c02323;
  --wrap:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:74px}
body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--blue)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid transparent;transition:.25s}
.nav.is-stuck{border-bottom-color:var(--line);box-shadow:0 4px 20px rgba(0,0,0,.06)}
.nav__inner{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand__logo{width:46px;height:46px;border-radius:50%;object-fit:cover;background:#fff}
.brand__txt{font-family:Oswald,sans-serif;font-size:20px;text-transform:uppercase;letter-spacing:1px}
.brand__txt strong{color:var(--blue)}
.menu{display:flex;align-items:center;gap:26px}
.menu a{font-size:15px;font-weight:600;text-decoration:none;color:var(--ink);position:relative}
.menu a:not(.menu__cta)::after{content:"";position:absolute;left:0;bottom:-5px;height:2px;width:0;background:var(--blue);transition:.2s}
.menu a:not(.menu__cta):hover::after,.menu a.is-active::after{width:100%}
.menu__cta{background:var(--blue);color:#fff!important;padding:9px 18px;border-radius:4px}
.burger{display:none;background:none;border:0;padding:8px;cursor:pointer}
.burger span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0;transition:.25s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* HERO */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;color:#fff;overflow:hidden}
.hero__bg{position:absolute;inset:0;background:
  radial-gradient(1200px 600px at 20% 10%,rgba(18,60,150,.55),transparent 60%),
  linear-gradient(160deg,#0f1620 0%,#16233a 55%,#0f1620 100%)}
.hero__bg::after{content:"合氣道";position:absolute;right:-2%;top:50%;transform:translateY(-50%);font-size:min(34vw,420px);font-weight:700;color:rgba(255,255,255,.045);letter-spacing:.05em;line-height:1;pointer-events:none}
.hero__inner{position:relative;padding:120px 20px 80px}
.hero__logo{width:150px;height:150px;border-radius:50%;background:#fff;padding:6px;margin-bottom:26px;box-shadow:0 12px 40px rgba(0,0,0,.45)}
.hero__kicker{font-size:14px;letter-spacing:3px;text-transform:uppercase;color:#8fb0ff;margin:0 0 14px}
.hero__title{font-family:Oswald,sans-serif;font-size:clamp(56px,11vw,132px);line-height:.92;margin:0;letter-spacing:2px;text-transform:uppercase}
.hero__title span{color:#5b8cff;-webkit-text-stroke:0}
.hero__sub{font-size:clamp(16px,2.4vw,24px);font-style:italic;margin:16px 0 6px;color:#dbe4f5}
.hero__meta{color:#b9c6dd;margin:0 0 30px}
.hero__meta strong{color:#fff}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap}
.hero__banner{margin-top:38px;display:inline-block;background:var(--blue);padding:12px 22px;font-family:Oswald,sans-serif;text-transform:uppercase;letter-spacing:1.5px;transform:rotate(-1.2deg)}

/* BUTTONS */
.btn{display:inline-block;font-weight:600;text-decoration:none;padding:13px 26px;border-radius:4px;border:2px solid transparent;cursor:pointer;font-size:15px;transition:.2s}
.btn--primary{background:var(--blue);color:#fff;border-color:var(--blue)}
.btn--primary:hover{background:#0d2f7a;border-color:#0d2f7a}
.btn--ghost{border-color:currentColor;color:inherit;background:transparent}
.btn--ghost:hover{background:rgba(127,127,127,.12)}
.btn--sm{padding:9px 18px;font-size:14px}

/* SECTIONS */
.section{padding:96px 0}
.section--alt{background:var(--bg-alt)}
.section--dark{background:var(--dark);color:#e8edf6}
.h2{font-family:Oswald,sans-serif;font-size:clamp(30px,5vw,46px);text-transform:uppercase;letter-spacing:1px;margin:0 0 8px}
.h2 span{color:var(--blue)}
.h2--light span{color:#5b8cff}
.h2::after{content:"";display:block;width:88px;height:4px;background:var(--blue);margin-top:14px;border-radius:2px}
.lead{max-width:70ch;color:var(--muted);margin:14px 0 40px;font-size:17px}
.section--dark .lead{color:#a9b6cc}
.note{font-size:14px;color:var(--muted)}
.section--dark .note{color:#8f9db5}
.note--center{text-align:center;margin-top:34px}

/* CARDS */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:30px;transition:.25s}
.card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(16,30,60,.10)}
.card__icon{width:52px;height:52px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-family:Oswald,sans-serif;font-size:19px;margin-bottom:18px}
.card h3{font-family:Oswald,sans-serif;text-transform:uppercase;letter-spacing:.5px;margin:0 0 10px;font-size:20px}
.card p{margin:0;color:var(--muted)}

/* SPLIT */
.split{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.split p{color:var(--muted)}
.ticks{list-style:none;padding:0;margin:22px 0 28px}
.ticks li{padding-left:28px;position:relative;margin-bottom:10px}
.ticks li::before{content:"";position:absolute;left:0;top:9px;width:14px;height:8px;border-left:3px solid var(--blue);border-bottom:3px solid var(--blue);transform:rotate(-45deg)}
.logo-block{margin:0;text-align:center}
.logo-block img{width:min(100%,420px);height:auto;margin:0 auto;border-radius:50%;background:#fff;box-shadow:0 18px 44px rgba(16,30,60,.16)}
.logo-block figcaption{margin-top:16px;font-size:14px;letter-spacing:2px;color:var(--muted)}

.sensei{border-left:4px solid var(--blue);padding:4px 0 4px 20px;margin:0 0 28px}
.sensei__role{margin:0;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--blue);font-weight:600}
.sensei__name{margin:4px 0 0;font-family:Oswald,sans-serif;font-size:26px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink)}
.sensei__grade{margin:2px 0 0;color:var(--muted);font-size:15px}

/* PANELS / TABLE */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.panel{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:28px}
.section:not(.section--dark) .panel{background:#fff;border-color:var(--line)}
.panel h3{font-family:Oswald,sans-serif;text-transform:uppercase;margin:0 0 16px;font-size:20px;letter-spacing:.5px}
.tbl{width:100%;border-collapse:collapse}
.tbl th,.tbl td{text-align:left;padding:12px 8px;border-bottom:1px solid rgba(255,255,255,.12)}
.tbl th{font-family:Oswald,sans-serif;color:#5b8cff;text-transform:uppercase;width:110px}
address{font-style:normal;margin-bottom:18px;line-height:1.8}
.map{margin-top:24px;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.12)}
.map iframe{width:100%;height:380px;border:0;display:block;filter:grayscale(.15)}
.map__legend{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0;padding:14px 18px;font-size:14px;background:rgba(255,255,255,.06);border-top:1px solid rgba(255,255,255,.12)}
.map__legend a{margin-left:auto;color:#5b8cff;font-weight:600}
.map__pin{width:12px;height:12px;flex:0 0 12px;border-radius:50%;background:#e33;box-shadow:0 0 0 4px rgba(238,51,51,.25)}

/* PRICING */
.price{background:#fff;border:1px solid var(--line);border-radius:8px;padding:30px;text-align:center;transition:.25s}
.price:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(16,30,60,.10)}
.cards--one{grid-template-columns:minmax(0,420px);justify-content:center}
.price--feat{border:2px solid var(--blue);position:relative}
.price--feat::before{content:"Tout compris";position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--blue);color:#fff;font-size:12px;letter-spacing:1px;text-transform:uppercase;padding:4px 12px;border-radius:20px;white-space:nowrap}
.price h3{font-family:Oswald,sans-serif;text-transform:uppercase;margin:0 0 6px;font-size:19px}
.price__amount{font-family:Oswald,sans-serif;font-size:34px;color:var(--blue);margin:0 0 18px}
.price ul{list-style:none;padding:0;margin:0 0 22px;color:var(--muted);font-size:15px}
.price li{padding:7px 0;border-bottom:1px solid var(--line)}
.price li:last-child{border-bottom:0}

/* GALERIE */
.gal{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.gal__it{margin:0}
.ph{aspect-ratio:4/3;border-radius:8px;background:repeating-linear-gradient(45deg,#e8ecf4,#e8ecf4 12px,#dfe5f0 12px,#dfe5f0 24px);display:grid;place-items:center;color:#8a94a6;font-family:Oswald,sans-serif;letter-spacing:1px;text-transform:uppercase;transition:.25s}
.gal__it:hover .ph{transform:scale(1.02)}

/* CONTACT */
.contact{list-style:none;padding:0;margin:0 0 18px}
.contact li{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.contact a{color:#e8edf6;text-decoration:none}
.contact a:hover{color:#5b8cff}
.ic{width:40px;height:40px;flex:0 0 40px;border-radius:50%;background:var(--blue);display:grid;place-items:center;color:#fff}
.ic svg{width:21px;height:21px;display:block}
.ic--ig{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fd5949 45%,#d6249f 60%,#285AEB 90%)}
.ic--fb{background:#1877f2}
.form{display:flex;flex-direction:column;gap:14px}
.form label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
.form input,.form textarea{font:inherit;padding:11px 13px;border-radius:4px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.07);color:#fff}
.form input:focus,.form textarea:focus{outline:2px solid #5b8cff;outline-offset:1px}

/* FOOT */
.foot{background:#0a0f16;color:#8f9db5;padding:26px 0;font-size:14px}
.foot__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.foot__logo{width:44px;height:44px;border-radius:50%;background:#fff;flex:0 0 auto}
.foot a{color:#8f9db5}

/* REVEAL */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* RESPONSIVE */
@media (max-width:900px){
  .split,.grid2{grid-template-columns:1fr;gap:34px}
  .burger{display:block}
  .menu{position:fixed;inset:74px 0 auto 0;background:#fff;flex-direction:column;align-items:stretch;gap:0;padding:8px 20px 20px;border-bottom:1px solid var(--line);transform:translateY(-140%);transition:transform .3s;box-shadow:0 12px 30px rgba(0,0,0,.1)}
  .menu.is-open{transform:none}
  .menu a{padding:14px 0;border-bottom:1px solid var(--line)}
  .menu__cta{text-align:center;margin-top:12px;border-bottom:0}
}
@media (max-width:520px){
  .section{padding:64px 0}
  .hero__logo{width:104px;height:104px;margin-bottom:18px}
  .hero__inner{padding:110px 20px 60px}
}

/* Honeypot anti-spam du formulaire */
.hp { position: absolute; left: -9999px; opacity: 0; }

/* Paiement en ligne */
.price .btn{margin:0 4px 6px}
.pay-note{margin-top:12px;font-size:13px}
.panel .btn--sm{margin-top:16px}
