/* ============================================================
   Page-specific — BLUEPRINT edition
   ============================================================ */

/* ---- SCHEDULE ---- */
.daytabs{ display:flex; flex-wrap:wrap; gap:0; border:2px solid var(--ink); margin-bottom:2rem; }
.daytabs button{ flex:1; min-width:90px; font-family:var(--f-mono); font-weight:700; text-transform:uppercase; letter-spacing:.06em;
  font-size:.78rem; padding:.9rem .5rem; background:var(--paper); border-left:1px solid var(--ink); color:var(--ink); cursor:pointer; transition:.15s; }
.daytabs button:first-child{ border-left:0; }
.daytabs button:hover{ background:var(--paper-2); }
.daytabs button.active{ background:var(--ink); color:var(--paper); }

.daypanel{ display:none; }
.daypanel.active{ display:block; }
.slotlist{ border:2px solid var(--ink); }
.slot{ display:grid; grid-template-columns:130px 1fr auto; gap:1.2rem; align-items:center;
  padding:1.1rem 1.4rem; border-top:1px solid var(--ink); background:var(--paper); transition:.15s; }
.slot:first-child{ border-top:0; }
.slot:hover{ background:var(--ink); color:var(--paper); }
.slot:hover .swhat p{ color:var(--mut-d); }
.slot .stime{ font-family:var(--f-head); font-size:1.9rem; line-height:.85; }
.slot .stime small{ display:block; font-family:var(--f-mono); font-size:.62rem; letter-spacing:.14em; color:var(--red); margin-top:3px; }
.slot .swhat h3{ font-family:var(--f-head); font-weight:400; text-transform:uppercase; font-size:1.4rem; }
.slot .swhat p{ font-family:var(--f-mono); font-size:.78rem; color:var(--mut); }
.slot .sgo{ font-family:var(--f-mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--red); white-space:nowrap; }
.slot:hover .sgo{ color:var(--paper); }
@media(max-width:600px){ .slot{ grid-template-columns:1fr; gap:.4rem; } .slot .sgo{ justify-self:start; } }

.hourbox{ border:2px solid var(--ink); }
.hourbox .hr{ display:flex; justify-content:space-between; padding:.9rem 1.2rem; border-top:1px solid var(--ink); font-family:var(--f-mono); font-size:.85rem; }
.hourbox .hr:first-child{ border-top:0; }
.hourbox .hr span:first-child{ color:var(--mut); text-transform:uppercase; letter-spacing:.06em; font-size:.72rem; }
.hourbox .hr b{ font-weight:700; }

/* ---- PRICING ---- */
.plans{ display:grid; grid-template-columns:repeat(4,1fr); border:2px solid var(--ink); }
@media(max-width:1000px){ .plans{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .plans{ grid-template-columns:1fr; } }
/* Grille 2 colonnes (offres sur mesure) — placée APRÈS .plans pour primer */
.plans.plans--2{ grid-template-columns:repeat(2,1fr); }
@media(max-width:560px){ .plans.plans--2{ grid-template-columns:1fr; } }
.plan{ border-left:1px solid var(--ink); padding:1.8rem 1.5rem; display:flex; flex-direction:column; background:var(--paper); transition:.15s; position:relative; }
.plan:first-child{ border-left:0; }
@media(max-width:1000px){ .plan:nth-child(odd){ border-left:0; } .plan:nth-child(n+3){ border-top:1px solid var(--ink); } }
@media(max-width:560px){ .plan{ border-left:0; border-top:1px solid var(--ink); } .plan:first-child{ border-top:0; } }
.plan:hover{ background:var(--ink); color:var(--paper); }
.plan:hover .pfreq{ color:var(--mut-d); }
.plan.feat{ background:var(--red); color:var(--paper); }
.plan.feat:hover{ background:var(--ink); }
.plan .pname{ font-family:var(--f-head); font-weight:400; text-transform:uppercase; font-size:1.6rem; }
.plan .pfreq{ font-family:var(--f-mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--red-txt); margin-top:.3rem; }
.plan.feat .pfreq{ color:var(--paper); }
.plan .pamt{ font-family:var(--f-head); font-size:3.8rem; line-height:.85; margin:1.3rem 0 .1rem; }
.plan .pamt sup{ font-size:1.3rem; vertical-align:super; }
.plan .pper{ font-family:var(--f-mono); font-size:.74rem; color:var(--mut); margin-bottom:1.4rem; }
.plan:hover .pper,.plan.feat .pper{ color:var(--mut-d); }
.plan.feat .pper{ color:var(--paper); }
.plan .ptag{ position:absolute; top:0; right:0; background:var(--ink); color:var(--paper); font-family:var(--f-mono); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; padding:.3rem .6rem; }
.plan .btn{ margin-top:auto; justify-content:center; }
.plan:hover .btn{ background:var(--red); border-color:var(--red); box-shadow:none; transform:none; }
.plan.feat .btn{ background:var(--ink); border-color:var(--ink); }

.passes{ display:grid; grid-template-columns:repeat(3,1fr); border:2px solid var(--ink); }
@media(max-width:760px){ .passes{ grid-template-columns:1fr; } }
.pass{ border-left:1px solid var(--ink); padding:1.5rem; display:flex; justify-content:space-between; align-items:baseline; background:var(--paper); transition:.15s; }
.pass:first-child{ border-left:0; }
@media(max-width:760px){ .pass{ border-left:0; border-top:1px solid var(--ink); } .pass:first-child{ border-top:0; } }
.pass:hover{ background:var(--ink); color:var(--paper); }
.pass .pn{ font-family:var(--f-head); font-weight:400; text-transform:uppercase; font-size:1.3rem; }
.pass .pn small{ display:block; font-family:var(--f-mono); font-size:.66rem; color:var(--mut); letter-spacing:.04em; text-transform:none; }
.pass:hover .pn small{ color:var(--mut-d); }
.pass .pv{ font-family:var(--f-head); font-size:2rem; color:var(--red); }

/* ---- TEAM ---- */
.team{ display:grid; grid-template-columns:repeat(3,1fr); border:2px solid var(--ink); }
@media(max-width:860px){ .team{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:540px){ .team{ grid-template-columns:1fr; } }
.coach{ border-left:1px solid var(--ink); background:var(--paper); }
.coach:first-child{ border-left:0; }
@media(max-width:860px){ .coach:nth-child(odd){ border-left:0; } .coach:nth-child(n+3){ border-top:1px solid var(--ink); } }
@media(max-width:540px){ .coach{ border-left:0; border-top:1px solid var(--ink); } .coach:first-child{ border-top:0; } }
.coach__img{ aspect-ratio:1/1; overflow:hidden; border-bottom:1px solid var(--ink); }
.coach__img img{ width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.15); transition:.4s; }
.coach:hover .coach__img img{ filter:grayscale(0) contrast(1.05); }
.coach__b{ padding:1.4rem; }
.coach__b .role{ font-family:var(--f-mono); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--red); }
.coach__b h3{ font-family:var(--f-head); font-weight:400; text-transform:uppercase; font-size:1.7rem; margin:.3rem 0 .5rem; }
.coach__b p{ color:var(--mut); font-size:.9rem; }
.coach__b .tags{ display:flex; flex-wrap:wrap; gap:.4rem; margin-top:1rem; }
.coach__b .tags span{ font-family:var(--f-mono); font-size:.64rem; letter-spacing:.06em; text-transform:uppercase; border:1px solid var(--ink); padding:.25rem .5rem; }

/* ---- CROSSFIT ---- */
.qgrid{ display:grid; grid-template-columns:repeat(5,1fr); border:2px solid var(--ink); }
@media(max-width:900px){ .qgrid{ grid-template-columns:repeat(2,1fr); } }
.qcell{ border-left:1px solid var(--ink); border-top:1px solid var(--ink); padding:1.1rem; background:var(--paper); transition:.15s; }
.qcell:hover{ background:var(--red); color:var(--paper); }
.qcell .qn{ font-family:var(--f-mono); font-size:.72rem; color:var(--red); }
.qcell:hover .qn{ color:var(--paper); }
.qcell .ql{ font-family:var(--f-head); font-weight:400; text-transform:uppercase; font-size:1.05rem; margin-top:.3rem; line-height:1; }
@media(min-width:901px){ .qcell:nth-child(-n+5){ border-top:0; } .qcell:nth-child(5n+1){ border-left:0; } }
@media(max-width:900px){ .qcell:nth-child(-n+2){ border-top:0; } .qcell:nth-child(odd){ border-left:0; } }

.video{ position:relative; aspect-ratio:16/9; border:2px solid var(--ink); overflow:hidden; }
.video iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* ---- TIMELINE ---- */
.tl{ border:2px solid var(--ink); }
.tl-row{ display:grid; grid-template-columns:190px 1fr; border-top:1px solid var(--ink); align-items:start; }
.tl-row:first-child{ border-top:0; }
.tl-row .y{ font-family:var(--f-head); font-size:1.9rem; color:var(--red); padding:1.4rem; border-right:1px solid var(--ink); line-height:.95; overflow-wrap:anywhere; hyphens:auto; }
.tl-row .c{ padding:1.4rem; min-width:0; }
.tl-row .c h3{ font-family:var(--f-head); font-weight:400; text-transform:uppercase; font-size:1.3rem; margin-bottom:.4rem; overflow-wrap:anywhere; }
.tl-row .c p{ color:var(--mut); font-size:.92rem; overflow-wrap:anywhere; }
@media(max-width:560px){ .tl-row{ grid-template-columns:1fr; } .tl-row .y{ border-right:0; border-bottom:1px solid var(--ink); padding-bottom:.8rem; } }

/* ---- CONTACT ---- */
.cgrid{ display:grid; grid-template-columns:1fr 1fr; border:2px solid var(--ink); }
@media(max-width:820px){ .cgrid{ grid-template-columns:1fr; } }
.cgrid > div{ padding:clamp(1.6rem,3vw,2.4rem); }
.cgrid .cinfo{ border-right:1px solid var(--ink); }
@media(max-width:820px){ .cgrid .cinfo{ border-right:0; border-bottom:1px solid var(--ink); } }
.iblock{ border-top:1px solid var(--grid); padding:1rem 0; }
.iblock:first-of-type{ border-top:0; }
.iblock .it{ font-family:var(--f-mono); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--red); margin-bottom:.3rem; }
.iblock p{ font-size:.95rem; }
.iblock a{ color:var(--ink); border-bottom:1px solid var(--red); }
.field{ margin-bottom:1.1rem; }
.field label{ display:block; font-family:var(--f-mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--mut); margin-bottom:.4rem; }
.field input,.field select,.field textarea{ width:100%; background:var(--paper); border:2px solid var(--ink); color:var(--ink);
  padding:.8rem .9rem; font-family:var(--f-body); font-size:1rem; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; background:var(--paper-2); }
.field textarea{ resize:vertical; min-height:120px; }
.formnote{ font-family:var(--f-mono); font-size:.72rem; color:var(--mut); margin-top:.6rem; }
.sent{ display:none; background:var(--ink); color:var(--paper); font-family:var(--f-mono); font-size:.85rem; padding:.9rem; margin-top:1rem; }
.mapwrap{ border:2px solid var(--ink); overflow:hidden; aspect-ratio:16/9; }
.mapwrap iframe{ width:100%; height:100%; border:0; filter:grayscale(1) contrast(1.1); }
