@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --burgundy:#5c1524;
  --burgundy-deep:#3d0e17;
  --ink:#171012;
  --cream:#f7eedc;
  --cream-2:#efe2c8;
  --gold:#c9a24a;
  --gold-bright:#e0bd6e;
  --ivory-line:rgba(201,162,74,0.35);
  --board-light:#f2e6cf;
  --board-dark:#5c1524;
  --serif:'Playfair Display', serif;
  --body:'Inter', sans-serif;
  --radius:2px;

  /* per-activity accent colors — used consistently for nav, hero bands, badges and calendar dots */
  --c-school:#3d6b8c;
  --c-school-soft:rgba(61,107,140,.14);
  --c-club:#6f8f57;
  --c-club-soft:rgba(111,143,87,.15);
  --c-tourn:#c9a24a;
  --c-tourn-soft:rgba(201,162,74,.18);
  --c-lesson:#a13f3f;
  --c-lesson-soft:rgba(161,63,63,.14);
  --c-member:#6b4c8a;
  --c-member-soft:rgba(107,76,138,.14);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--body);
  background:var(--cream);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
button{font-family:inherit; cursor:pointer; border:none; background:none; appearance:none; -webkit-appearance:none;}
input, select, textarea{font-family:inherit;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
.eyebrow{
  font-family:var(--body); font-weight:600; font-size:12px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--burgundy); opacity:.75;
}
h1,h2,h3{font-family:var(--serif); font-weight:600; color:var(--burgundy-deep);}
.btn{
  display:inline-flex; align-items:center; gap:8px; padding:13px 26px;
  font-size:14px; font-weight:600; letter-spacing:.03em; border-radius:var(--radius);
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn-gold{background:var(--gold); color:var(--burgundy-deep);}
.btn-gold:hover{transform:translateY(-1px); box-shadow:0 6px 18px rgba(201,162,74,.4);}
.btn-line{background:transparent; border:1px solid var(--ivory-line); color:var(--cream);}
.btn-line:hover{background:var(--gold); color:var(--burgundy-deep); border-color:var(--gold);}
.btn-line-dark{border:1px solid var(--burgundy); color:var(--burgundy);}
.btn-line-dark:hover{background:rgba(92,21,36,.06);}
.btn-dark{background:var(--burgundy-deep); color:var(--cream);}
.btn-dark:hover{transform:translateY(-1px); box-shadow:0 6px 18px rgba(61,14,23,.35);}
.btn-block{width:100%; justify-content:center;}
.btn[disabled]{opacity:.45; cursor:not-allowed; transform:none !important; box-shadow:none !important;}

/* ---------- NAV ---------- */
header{position:sticky; top:0; z-index:100; background:var(--burgundy-deep); border-bottom:1px solid var(--ivory-line);}
nav{position:relative; display:flex; align-items:center; justify-content:space-between; padding:14px 32px; max-width:1180px; margin:0 auto;}
.menu-toggle{display:none; background:none; color:var(--cream); font-size:22px;}
.brand{display:flex; align-items:center; gap:14px;}
.brand img{height:52px; width:auto; object-fit:contain;}
.brand-text{font-family:var(--serif); color:var(--cream); font-size:21px; letter-spacing:.12em;}
.brand-text small{display:block; font-family:var(--body); font-size:10px; letter-spacing:.2em; color:var(--gold); font-weight:600; text-transform:uppercase; margin-top:2px;}
.nav-links{display:flex; gap:22px; align-items:center;}
.nav-links a{font-size:13px; color:var(--cream); opacity:.78; letter-spacing:.02em; white-space:nowrap;}
.nav-links a:hover, .nav-links a.active{opacity:1; color:var(--gold-bright);}
.nav-cta{display:flex; gap:12px; align-items:center;}
.icon-btn{background:none; color:var(--cream); font-size:18px; opacity:.85; position:relative; display:inline-flex; align-items:center;}
.cart-count{position:absolute; top:-7px; right:-9px; background:var(--gold); color:var(--burgundy-deep); font-size:10px; font-weight:700; width:16px; height:16px; border-radius:50%; display:flex; align-items:center; justify-content:center;}

/* ---------- ACTIVITY PAGE HERO (color-coded top border per activity) ---------- */
.activity-hero{background:var(--burgundy-deep); color:var(--cream); padding:64px 0 56px; border-top:4px solid var(--accent, var(--gold)); position:relative;}
.activity-hero .eyebrow{color:var(--accent, var(--gold-bright)); opacity:1; display:flex; align-items:center; gap:8px;}
.activity-hero .eyebrow .dot{width:7px; height:7px; background:var(--accent, var(--gold)); border-radius:50%; display:inline-block;}
.activity-hero h1{color:var(--cream); font-size:42px; margin-top:12px; max-width:640px;}
.activity-hero p.lede{color:rgba(247,238,220,.75); max-width:560px; margin-top:16px; font-size:15.5px;}
.activity-hero .hero-actions{display:flex; gap:14px; margin-top:28px; flex-wrap:wrap;}
.crumbs{font-size:12px; color:rgba(247,238,220,.5); margin-bottom:10px;}
.crumbs a{color:rgba(247,238,220,.75);}
.crumbs a:hover{color:var(--gold-bright);}

section{padding:88px 0;}
.section-head{max-width:640px; margin-bottom:48px;}
.section-head h2{font-size:33px; margin-top:10px;}
.section-head p{color:#5a4c46; font-size:15.5px; margin-top:14px;}
.divider-dot{display:flex; align-items:center; gap:10px; margin:0 0 8px;}
.divider-dot .dot{width:6px; height:6px; background:var(--accent, var(--gold)); transform:rotate(45deg);}
.divider-dot span{font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--burgundy); font-weight:700;}

/* ---------- BADGES (student level / activity type) ---------- */
.badge{display:inline-flex; padding:4px 11px; border-radius:var(--radius); font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;}
.badge-debutant{background:var(--c-club-soft); color:#3f5a2e;}
.badge-intermediaire{background:var(--c-school-soft); color:#234258;}
.badge-avance{background:var(--c-lesson-soft); color:#7a2e2e;}
.badge-tous{background:var(--c-tourn-soft); color:#6b4f18;}
.badge-school{background:var(--c-school-soft); color:#234258;}
.badge-club{background:var(--c-club-soft); color:#3f5a2e;}
.badge-tourn{background:var(--c-tourn-soft); color:#6b4f18;}
.badge-lesson{background:var(--c-lesson-soft); color:#7a2e2e;}
.badge-member{background:var(--c-member-soft); color:#4a3563;}

/* ---------- ACTIVITY NAV STRIP (cross-links between the 4 activity pages) ---------- */
.activity-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:0;}
.a-tile{border:1px solid var(--ivory-line); border-top:3px solid var(--tile-accent, var(--gold)); background:var(--cream); padding:22px 20px; border-radius:var(--radius); transition:transform .15s ease, box-shadow .15s ease;}
.a-tile:hover{transform:translateY(-4px); box-shadow:0 14px 28px rgba(92,21,36,.1);}
.a-tile .piece{font-size:24px; margin-bottom:10px; color:var(--tile-accent);}
.a-tile h3{font-size:16.5px; margin-bottom:6px;}
.a-tile p{font-size:12.8px; color:#5a4c46; margin-bottom:12px;}
.a-tile a{font-size:12px; font-weight:700; color:var(--burgundy);}

/* ---------- STEPS / TIMELINE (legitimate sequences only) ---------- */
.steps{counter-reset:step; display:flex; flex-direction:column; gap:0; border-left:1px solid var(--ivory-line); margin-left:18px;}
.step{position:relative; padding:0 0 34px 34px;}
.step:last-child{padding-bottom:0;}
.step::before{
  counter-increment:step; content:counter(step);
  position:absolute; left:-19px; top:0; width:36px; height:36px; border-radius:50%;
  background:var(--burgundy-deep); color:var(--gold-bright); font-family:var(--serif); font-size:15px;
  display:flex; align-items:center; justify-content:center; border:2px solid var(--gold);
}
.step h4{font-size:16.5px; margin-bottom:6px; color:var(--burgundy-deep);}
.step p{font-size:13.6px; color:#5a4c46; max-width:520px;}

/* ---------- COMPARISON / DATA TABLE ---------- */
.data-table{width:100%; border-collapse:collapse; font-size:14px;}
.data-table th, .data-table td{padding:14px 16px; text-align:left; border-bottom:1px solid var(--ivory-line);}
.data-table thead th{font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--burgundy); background:var(--cream-2);}
.data-table tbody tr:hover{background:rgba(201,162,74,.06);}
.data-table td.num, .data-table th.num{text-align:center;}
.table-wrap{overflow-x:auto; border:1px solid var(--ivory-line); border-radius:var(--radius);}
.table-wrap .data-table{min-width:640px;}

.map-link{color:var(--burgundy-deep); text-decoration:none; border-bottom:1px dotted var(--gold); padding-bottom:1px;}
.map-link:hover{color:var(--burgundy); border-bottom-style:solid;}
/* ---------- LESSON AVAILABILITY GRID (lecons-privees.html) ---------- */
.availability-grid{display:grid; grid-template-columns:80px repeat(6,1fr); gap:6px;}
.avail-head{font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:#8a7b71; text-align:center; padding:6px 0;}
.avail-time{font-size:12px; color:#8a7b71; display:flex; align-items:center; padding-right:8px; justify-content:flex-end;}
.avail-slot{aspect-ratio:2/1; border-radius:var(--radius); background:var(--cream-2); cursor:pointer; transition:transform .12s ease;}
.avail-slot.available{background:var(--c-lesson-soft); border:1px solid var(--c-lesson);}
.avail-slot.available:hover{transform:scale(1.05);}
.avail-slot.booked{background:#ece4d8; cursor:not-allowed;}
.avail-slot.selected{background:var(--c-lesson); border-color:var(--c-lesson);}

.level-section{margin-bottom:56px;}
.level-head{display:flex; align-items:center; gap:14px; margin-bottom:20px;}
.level-head h3{font-size:22px;}
.level-head p{font-size:13.5px; color:#5a4c46;}

/* ---------- FAQ ---------- */
.faq-item{border-bottom:1px solid var(--ivory-line); padding:18px 0;}
.faq-q{display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-family:var(--serif); font-size:16px; color:var(--burgundy-deep);}
.faq-q .chev{transition:transform .2s ease; color:var(--gold);}
.faq-item.open .faq-q .chev{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .25s ease;}
.faq-item.open .faq-a{max-height:240px;}
.faq-a p{font-size:13.8px; color:#5a4c46; padding-top:12px; max-width:640px;}

/* ---------- FORM ---------- */
.field{margin-bottom:16px;}
.field label{display:block; font-size:12px; font-weight:600; color:var(--burgundy-deep); margin-bottom:6px; letter-spacing:.02em;}
.field input, .field select, .field textarea{width:100%; padding:11px 13px; border:1px solid var(--ivory-line); background:var(--cream); border-radius:var(--radius); font-size:14px; color:var(--ink);}
.field textarea{resize:vertical; min-height:90px;}
.field input:focus, .field select:focus, .field textarea:focus, button:focus-visible, a:focus-visible{outline:2px solid var(--burgundy); outline-offset:2px;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.form-card{background:var(--cream); border:1px solid var(--ivory-line); border-radius:var(--radius); padding:30px;}
.form-card h3{font-size:19px; margin-bottom:6px;}
.form-card p.hint{font-size:12.5px; color:#8a7b71; margin-bottom:20px;}

/* ---------- MEMBERSHIP CARDS ---------- */
.plan-toggle{display:inline-flex; background:var(--cream-2); border:1px solid var(--ivory-line); border-radius:var(--radius); padding:4px; margin-bottom:36px;}
.plan-toggle button{padding:9px 20px; font-size:13px; font-weight:600; color:#8a7b71; border-radius:var(--radius);}
.plan-toggle button.active{background:var(--burgundy-deep); color:var(--cream);}
.plans-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.plan-card{border:1px solid var(--ivory-line); background:var(--cream); border-radius:var(--radius); padding:32px 26px; position:relative; display:flex; flex-direction:column;}
.plan-card.featured{border-color:var(--gold); box-shadow:0 18px 36px rgba(201,162,74,.18); transform:translateY(-6px);}
.plan-card .ribbon{position:absolute; top:-13px; left:26px; background:var(--gold); color:var(--burgundy-deep); font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:5px 12px; border-radius:var(--radius);}
.plan-card h3{font-size:20px; margin-bottom:4px;}
.plan-card .plan-tag{font-size:12.5px; color:#8a7b71; margin-bottom:20px;}
.plan-card .plan-price{font-family:var(--serif); font-size:38px; color:var(--burgundy-deep);}
.plan-card .plan-price span{font-family:var(--body); font-size:13px; color:#8a7b71; font-weight:400;}
.plan-card ul{margin:22px 0 26px; flex:1;}
.plan-card li{font-size:13.6px; color:#42352f; padding:8px 0; border-bottom:1px dashed var(--ivory-line); display:flex; gap:8px;}
.plan-card li:last-child{border-bottom:none;}
.plan-card li::before{content:'✓'; color:var(--gold); font-weight:700;}

/* ---------- CALENDAR ---------- */
.calendar-wrap{display:grid; grid-template-columns:1.4fr 1fr; gap:40px; align-items:start;}
.cal-card{border:1px solid var(--ivory-line); background:var(--cream); border-radius:var(--radius); padding:26px;}
.cal-nav{display:flex; justify-content:space-between; align-items:center; margin-bottom:18px;}
.cal-nav h3{font-size:20px;}
.cal-nav-btns button{background:none; border:1px solid var(--ivory-line); width:32px; height:32px; border-radius:var(--radius); color:var(--burgundy); font-size:14px;}
.cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:4px;}
.cal-grid .dow{font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:#8a7b71; text-align:center; padding-bottom:6px;}
.cal-day{aspect-ratio:1/.85; border:1px solid transparent; border-radius:var(--radius); font-size:13px; padding:6px; color:#544942; position:relative; background:var(--cream-2);}
.cal-day.empty{background:transparent;}
.cal-day .dot-row{position:absolute; bottom:6px; left:6px; display:flex; gap:3px; flex-wrap:wrap;}
.cal-day .evt-dot{width:5px; height:5px; border-radius:50%;}
.evt-school{background:var(--c-school);}
.evt-club{background:var(--c-club);}
.evt-tourn{background:var(--c-tourn);}
.evt-lesson{background:var(--c-lesson);}
.evt-member{background:var(--c-member);}
.cal-day.today{border-color:var(--gold); font-weight:700; color:var(--burgundy-deep);}
.cal-day[style*="cursor:pointer"]:hover{outline:1px solid var(--gold);}
.up-item[style*="cursor:pointer"]:hover{background:rgba(201,162,74,.08);}
.legend{display:flex; gap:16px; margin-top:16px; flex-wrap:wrap;}
.legend div{display:flex; align-items:center; gap:6px; font-size:12px; color:#5a4c46; cursor:pointer; user-select:none; opacity:1; transition:opacity .15s ease;}
.legend div.off{opacity:.35;}
.legend .sw{width:9px; height:9px; border-radius:50%;}
.upcoming-list{border:1px solid var(--ivory-line); background:var(--cream); border-radius:var(--radius); padding:24px;}
.upcoming-list h3{font-size:17px; margin-bottom:16px;}
.up-item{display:flex; gap:14px; padding:12px 0; border-bottom:1px solid var(--ivory-line); align-items:flex-start;}
.up-item:last-child{border-bottom:none;}
.up-date{font-family:var(--serif); text-align:center; min-width:44px;}
.up-date b{display:block; font-size:19px; color:var(--burgundy-deep);}
.up-date span{font-size:10px; text-transform:uppercase; color:#8a7b71;}
.up-info b{display:block; font-size:13.6px; color:var(--ink);}
.up-info span{font-size:12px; color:#8a7b71;}
.up-swatch{width:8px; height:8px; border-radius:50%; display:inline-block; margin-right:6px;}

/* ---------- SERVICE / STORE CARDS (generic reuse) ---------- */
.services-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.s-card{background:var(--cream); border:1px solid var(--ivory-line); padding:30px 24px; border-radius:var(--radius); position:relative; transition:transform .18s ease, box-shadow .18s ease;}
.s-card:hover{transform:translateY(-5px); box-shadow:0 18px 34px rgba(92,21,36,.12); border-color:var(--gold);}
.s-card .piece{font-size:30px; color:var(--burgundy); margin-bottom:16px;}
.s-card h3{font-size:19px; margin-bottom:10px;}
.s-card p{font-size:13.8px; color:#5a4c46; margin-bottom:18px;}
.s-card a{font-size:12.5px; font-weight:700; letter-spacing:.03em; color:var(--burgundy); border-bottom:1px solid var(--gold); padding-bottom:2px;}

.store-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.p-card{border:1px solid var(--ivory-line); background:var(--cream); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column;}
.p-visual{background:var(--burgundy-deep); height:140px; display:flex; align-items:center; justify-content:center; font-size:52px; color:var(--gold-bright);}
.p-body{padding:18px 18px 20px; flex:1; display:flex; flex-direction:column;}
.p-body h4{font-family:var(--serif); font-size:15.5px; color:var(--burgundy-deep); margin-bottom:4px;}
.p-body p{font-size:12.5px; color:#8a7b71; margin-bottom:14px; flex:1;}
.p-row{display:flex; justify-content:space-between; align-items:center;}
.p-price{font-family:var(--serif); font-weight:600; color:var(--burgundy-deep);}
.add-btn{background:var(--burgundy); color:var(--cream); font-size:12px; padding:9px 14px; border-radius:var(--radius);}
.add-btn:hover{background:var(--gold); color:var(--burgundy-deep);}

/* ---------- PROOF / TESTIMONIALS ---------- */
.proof{background:var(--cream-2); border-top:1px solid var(--ivory-line); border-bottom:1px solid var(--ivory-line);}
.proof-strip{display:flex; justify-content:space-between; flex-wrap:wrap; gap:26px; padding:36px 0;}
.proof-strip div{text-align:center; flex:1; min-width:130px;}
.proof-strip b{font-family:var(--serif); font-size:30px; color:var(--burgundy-deep); display:block;}
.proof-strip span{font-size:12.5px; color:#6b5c53; letter-spacing:.02em;}
.testimonials{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:44px;}
.t-card{background:var(--cream); border:1px solid var(--ivory-line); padding:28px 26px; border-radius:var(--radius);}
.t-card .quote-mark{font-family:var(--serif); font-size:36px; color:var(--gold); line-height:1;}
.t-card p{font-size:14.5px; color:#42352f; margin:10px 0 18px; font-style:italic;}
.t-card .who{font-size:13px; font-weight:600; color:var(--burgundy-deep);}
.t-card .who span{display:block; font-weight:400; color:#8a7b71; font-size:12px;}

/* ---------- CTA / FOOTER ---------- */
.cta-band{background:var(--burgundy); color:var(--cream); text-align:center; padding:76px 0;}
.cta-band h2{color:var(--cream); font-size:30px; margin-bottom:14px;}
.cta-band p{color:rgba(247,238,220,.75); max-width:520px; margin:0 auto 30px;}
footer{background:var(--burgundy-deep); color:rgba(247,238,220,.7); padding:60px 0 26px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:36px; border-bottom:1px solid var(--ivory-line);}
.footer-grid h4{color:var(--gold-bright); font-size:12px; letter-spacing:.1em; text-transform:uppercase; margin-bottom:16px; font-family:var(--body); font-weight:700;}
.footer-grid li{margin-bottom:9px; font-size:13.5px;}
.footer-grid li a:hover{color:var(--gold-bright);}
.foot-brand{display:flex; gap:12px; align-items:center; margin-bottom:14px;}
.foot-brand img{height:44px; width:auto;}
.foot-brand span{font-family:var(--serif); color:var(--cream); font-size:18px; letter-spacing:.1em;}
.foot-bottom{display:flex; justify-content:space-between; padding-top:22px; font-size:12px; flex-wrap:wrap; gap:10px;}

/* ---------- CART DRAWER (slides in from the right) ---------- */
.cart-overlay{position:fixed; inset:0; background:rgba(23,16,18,.55); z-index:1090; display:none;}
.cart-overlay.open{display:block;}
.cart-drawer{
  position:fixed; top:0; right:0; height:100vh; width:420px; max-width:92vw;
  background:var(--cream); box-shadow:-14px 0 44px rgba(0,0,0,.3);
  transform:translateX(100%); transition:transform .32s cubic-bezier(.4,0,.2,1);
  z-index:1100; display:flex; flex-direction:column; padding:30px;
}
.cart-drawer.open{transform:translateX(0);}
.cart-drawer h3{font-size:21px; margin-bottom:4px;}
.cart-drawer .cart-scroll{flex:1; overflow-y:auto; margin:18px 0;}
.cart-drawer-close{position:absolute; top:22px; right:22px; background:none; font-size:20px; color:var(--burgundy);}

/* ---------- MODAL / TOAST ---------- */
.modal-bg{position:fixed; inset:0; background:rgba(23,16,18,.72); display:none; align-items:center; justify-content:center; z-index:1000; padding:20px;}
.modal-bg.open{display:flex;}
.modal{background:var(--cream); width:100%; max-width:400px; border-radius:var(--radius); padding:34px; position:relative; border:1px solid var(--gold); max-height:90vh; overflow-y:auto;}
.modal-close{position:absolute; top:16px; right:16px; background:none; font-size:20px; color:var(--burgundy);}
.modal h3{font-size:22px; margin-bottom:6px;}
.modal p.hint{font-size:13px; color:#8a7b71; margin-bottom:22px;}
.modal-tabs{display:flex; gap:6px; margin-bottom:22px; background:var(--cream-2); padding:4px; border-radius:var(--radius);}
.modal-tabs button{flex:1; padding:9px; font-size:13px; font-weight:600; border-radius:var(--radius); background:transparent; color:#8a7b71;}
.modal-tabs button.active{background:var(--burgundy); color:var(--cream);}
.toast{position:fixed; bottom:26px; left:50%; transform:translateX(-50%) translateY(20px); background:var(--burgundy-deep); color:var(--cream); padding:14px 24px; border-radius:var(--radius); font-size:13.5px; border:1px solid var(--gold); opacity:0; transition:all .3s ease; z-index:1200; pointer-events:none; max-width:90vw; text-align:center;}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

/* ---------- HERO BOARD (home page signature) ---------- */
.hero{position:relative; overflow:hidden; background:var(--burgundy-deep); color:var(--cream); padding:96px 0 0;}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:40px; align-items:center;}
.hero h1{font-size:56px; line-height:1.04; color:var(--cream); letter-spacing:-.01em;}
.hero h1 em{font-style:italic; color:var(--gold-bright);}
.hero p.lede{font-size:17px; color:rgba(247,238,220,.78); max-width:460px; margin:22px 0 32px;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap;}
.hero-stats{display:flex; gap:36px; margin-top:52px; padding-top:28px; border-top:1px solid var(--ivory-line); flex-wrap:wrap;}
.hero-stats div b{display:block; font-family:var(--serif); font-size:26px; color:var(--gold-bright);}
.hero-stats div span{font-size:12px; color:rgba(247,238,220,.65); letter-spacing:.03em;}
.board-signature{position:relative; width:100%; max-width:440px; margin:0 auto; aspect-ratio:1/1;}
.chess-board{display:grid; grid-template-columns:repeat(8,1fr); grid-template-rows:repeat(8,1fr); width:100%; height:100%; border:2px solid var(--gold); border-radius:2px; overflow:hidden; box-shadow:0 30px 70px rgba(0,0,0,.45); position:relative;}
.sq{background:var(--board-light);}
.sq.dark{background:var(--board-dark);}
.knight-token{
  position:absolute; color:var(--gold-bright); display:flex; align-items:center; justify-content:center;
  transition:left 0.9s cubic-bezier(.34,1.4,.4,1), top 0.9s cubic-bezier(.34,1.4,.4,1), width .3s ease, height .3s ease;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.5));
  pointer-events:none; z-index:3;
}
@media (prefers-reduced-motion: reduce){ .knight-token{transition:none;} }

/* ---------- RESPONSIVE ---------- */
@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr;}
  .hero h1{font-size:40px;}
  .services-grid, .activity-strip{grid-template-columns:repeat(2,1fr);}
  .testimonials{grid-template-columns:1fr;}
  .calendar-wrap{grid-template-columns:1fr;}
  .store-grid{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .plans-grid{grid-template-columns:1fr;}
  .plan-card.featured{transform:none;}
  .nav-links{display:none; position:absolute; top:100%; left:0; right:0; background:var(--burgundy-deep); flex-direction:column; align-items:flex-start; padding:18px 32px; border-bottom:1px solid var(--ivory-line); gap:16px; z-index:50;}
  .nav-links.mobile-open{display:flex;}
  .menu-toggle{display:block;}
  .activity-hero h1{font-size:34px;}
}
@media (max-width:560px){
  .wrap{padding:0 20px;}
  .hero h1{font-size:30px;}
  .services-grid, .store-grid, .activity-strip{grid-template-columns:1fr;}
  .proof-strip{justify-content:flex-start;}
  .field-row{grid-template-columns:1fr;}
}
