/* ======================================================================
   C'EST COINCHÉ — Site styles
   ====================================================================== */
@import url('tokens.css');

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--cc-blanc);color:var(--cc-noir);font-family:var(--cc-ff-body)}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}

/* ---- Nav ---- */
.nav{position:sticky;top:0;z-index:50;background:var(--cc-jaune);border-bottom:2.5px solid var(--cc-noir)}
.nav-inner{max-width:1280px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.nav-logo{display:flex;align-items:center;gap:10px;font-family:var(--cc-ff-display);font-size:22px;text-transform:uppercase;letter-spacing:-.5px;cursor:pointer}
.nav-logo .sq{width:28px;height:28px;background:var(--cc-noir);color:var(--cc-jaune);display:grid;place-items:center;font-family:var(--cc-ff-display);font-size:22px;line-height:1}
.nav-links{display:flex;gap:22px;font-family:var(--cc-ff-headline);font-size:11px;text-transform:uppercase;letter-spacing:.16em}
.nav-links a{cursor:pointer}
.nav-links a:hover{text-decoration:underline;text-decoration-thickness:2.5px;text-underline-offset:4px}
.nav-cta{background:var(--cc-noir);color:var(--cc-jaune);padding:10px 16px;font-family:var(--cc-ff-headline);font-size:11px;text-transform:uppercase;letter-spacing:.16em;border:2.5px solid var(--cc-noir);box-shadow:3px 3px 0 var(--cc-noir);cursor:pointer}
.nav-cta:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--cc-noir)}
.nav-cta.cart{background:var(--cc-rouge);color:var(--cc-blanc);display:none}
.nav-cta.cart.on{display:inline-flex}
.nav-cta.outline{background:transparent;color:var(--cc-noir);box-shadow:none}
.nav-cta.outline:hover{background:var(--cc-noir);color:var(--cc-jaune)}

/* ---- Btn ---- */
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 22px;font-family:var(--cc-ff-headline);font-size:13px;text-transform:uppercase;letter-spacing:.1em;border:2.5px solid var(--cc-noir);cursor:pointer;font-weight:900;background:var(--cc-jaune);color:var(--cc-noir);box-shadow:4px 4px 0 var(--cc-noir);transition:transform 120ms var(--cc-ease-snap),box-shadow 120ms var(--cc-ease-snap)}
.btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--cc-noir)}
.btn:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--cc-noir)}
.btn.inverse{background:var(--cc-noir);color:var(--cc-jaune);box-shadow:4px 4px 0 var(--cc-jaune)}
.btn.inverse:hover{box-shadow:6px 6px 0 var(--cc-jaune)}
.btn.red{background:var(--cc-rouge);color:var(--cc-blanc)}
.btn.ghost{background:transparent;box-shadow:none}
.btn.ghost:hover{background:var(--cc-noir);color:var(--cc-jaune);transform:none}
.btn.sm{padding:9px 14px;font-size:11px;box-shadow:2px 2px 0 var(--cc-noir)}
.btn.lg{padding:18px 30px;font-size:16px}

/* ---- Sections ---- */
section{padding:80px 24px;border-bottom:2.5px solid var(--cc-noir)}
.wrap{max-width:1280px;margin:0 auto}
.eyebrow{font-family:var(--cc-ff-headline);font-size:12px;text-transform:uppercase;letter-spacing:.2em;display:inline-flex;align-items:center;gap:10px;margin-bottom:18px}
.eyebrow::before{content:"";width:28px;height:3px;background:var(--cc-noir)}
.section-title{font-family:var(--cc-ff-display);font-size:clamp(48px,7vw,96px);line-height:.9;text-transform:uppercase;margin:0 0 30px;letter-spacing:-2px}

/* ---- Hero ---- */
.hero{background:var(--cc-jaune);padding:60px 24px 40px;position:relative;overflow:hidden;border-bottom:4px solid var(--cc-noir)}
.hero-inner{max-width:1280px;margin:0 auto;position:relative}
.hero-tagline{font-family:var(--cc-ff-body);font-size:clamp(13px,1.8vw,22px);letter-spacing:.2em;text-transform:uppercase;font-weight:500;opacity:.75;margin:22px 0 0;text-align:center}
.hero-title{font-family:var(--cc-ff-display);font-size:min(19vw,240px);line-height:.82;letter-spacing:-6px;text-transform:uppercase;margin:0;text-align:center}
.hero-title .stamp{display:inline-block;background:var(--cc-noir);color:var(--cc-jaune);padding:0 16px;transform:rotate(-2deg);font-size:.5em;vertical-align:middle;margin-left:14px;letter-spacing:-2px;box-shadow:8px 8px 0 var(--cc-rouge)}
.hero-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:50px;border-top:3px solid var(--cc-noir);border-bottom:3px solid var(--cc-noir)}
.hero-meta .cell{padding:16px 18px;border-right:2.5px solid var(--cc-noir);font-family:var(--cc-ff-body)}
.hero-meta .cell:last-child{border-right:none}
.hero-meta .k{font-family:var(--cc-ff-headline);font-size:10px;letter-spacing:.18em;text-transform:uppercase;opacity:.7;margin-bottom:4px}
.hero-meta .v{font-family:var(--cc-ff-display);font-size:32px;line-height:1;text-transform:uppercase}
.hero-ctas{display:flex;gap:14px;justify-content:center;margin-top:32px;flex-wrap:wrap}
.hero-suits{position:absolute;top:20px;right:30px;display:flex;gap:14px;font-size:44px;font-family:serif}
.hero-suits .rd{color:var(--cc-rouge)}

/* ---- Rules ---- */
.rules{background:var(--cc-blanc)}
.rules-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:30px;gap:20px;flex-wrap:wrap}
.rules-head h2{max-width:700px;margin:0}
.rules-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.rule{background:var(--cc-blanc-pur);border:2.5px solid var(--cc-noir);padding:22px;box-shadow:5px 5px 0 var(--cc-noir)}
.rule .num{font-family:var(--cc-ff-display);font-size:64px;line-height:1;margin-bottom:8px}
.rule h3{font-family:var(--cc-ff-headline);font-size:15px;text-transform:uppercase;margin:0 0 8px;letter-spacing:.04em}
.rule p{font-size:14px;line-height:1.5;margin:0}

/* ---- Program ---- */
.program{background:var(--cc-noir);color:var(--cc-blanc)}
.program h2,.program .section-title{color:var(--cc-jaune)}
.program .eyebrow{color:var(--cc-jaune)}
.program .eyebrow::before{background:var(--cc-jaune)}
.program-row{display:grid;grid-template-columns:110px 240px 1fr auto;gap:24px;align-items:center;padding:18px 0;border-top:1.5px solid #F4EEDC33}
.program-row:first-of-type{border-top:1.5px solid var(--cc-jaune)}
.program-row:last-of-type{border-bottom:1.5px solid var(--cc-jaune)}
.program-row .time{font-family:var(--cc-ff-display);font-size:44px;color:var(--cc-jaune);line-height:1}
.program-row .day{font-family:var(--cc-ff-headline);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--cc-jaune)}
.program-row .title{font-family:var(--cc-ff-headline);font-size:20px;text-transform:uppercase;letter-spacing:.02em}
.program-row .tag{background:var(--cc-jaune);color:var(--cc-noir);padding:4px 10px;font-family:var(--cc-ff-headline);font-size:10px;letter-spacing:.15em;text-transform:uppercase}

/* ---- Info ---- */
.info{background:var(--cc-jaune)}
.info-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:30px}
.info-card{background:var(--cc-blanc-pur);border:2.5px solid var(--cc-noir);padding:30px;box-shadow:6px 6px 0 var(--cc-noir)}
.info-card h3{font-family:var(--cc-ff-display);font-size:42px;line-height:.95;text-transform:uppercase;margin:0 0 12px}
.info-card ul{list-style:none;padding:0;margin:16px 0 0}
.info-card li{padding:8px 0;border-bottom:1px dashed #0B0B0B55;display:flex;justify-content:space-between;font-size:14px}
.info-card li b{font-family:var(--cc-ff-headline);text-transform:uppercase;font-size:12px;letter-spacing:.08em}
.map{border:2.5px solid var(--cc-noir);box-shadow:6px 6px 0 var(--cc-noir);overflow:hidden;min-height:280px;position:relative}
.map iframe{display:block;width:100%;height:100%;min-height:280px;border:0;filter:grayscale(.15) contrast(1.05)}
.map .addr{position:absolute;bottom:12px;left:12px;right:12px;background:var(--cc-noir);color:var(--cc-blanc);padding:10px 14px;font-family:var(--cc-ff-headline);font-size:11px;letter-spacing:.15em;text-transform:uppercase;pointer-events:none}

/* ---- Sign up ---- */
.signup{background:var(--cc-blanc)}
.signup-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.signup h2{font-size:clamp(56px,8vw,110px);margin:0 0 20px;letter-spacing:-3px}
.signup p.lead{font-size:18px;line-height:1.4;max-width:480px}
.price-tag{display:inline-block;background:var(--cc-rouge);color:var(--cc-blanc);font-family:var(--cc-ff-display);font-size:64px;line-height:1;padding:8px 20px;transform:rotate(-4deg);margin-top:10px;box-shadow:6px 6px 0 var(--cc-noir);border:2.5px solid var(--cc-noir)}
form.signup-form{background:var(--cc-noir);color:var(--cc-blanc);padding:30px;border:2.5px solid var(--cc-noir);box-shadow:8px 8px 0 var(--cc-jaune)}
form label{display:block;font-family:var(--cc-ff-headline);font-size:10px;text-transform:uppercase;letter-spacing:.18em;margin:14px 0 6px;color:var(--cc-jaune)}
form input{width:100%;padding:11px 14px;font-family:var(--cc-ff-body);font-size:15px;background:var(--cc-blanc);border:2.5px solid var(--cc-blanc);color:var(--cc-noir);outline:none}
form input:focus{background:var(--cc-jaune);border-color:var(--cc-jaune)}
form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
form .row.solo{grid-template-columns:1fr}
form .submit{margin-top:22px;width:100%;background:var(--cc-jaune);color:var(--cc-noir);padding:16px;font-family:var(--cc-ff-headline);font-size:14px;letter-spacing:.12em;text-transform:uppercase;border:2.5px solid var(--cc-jaune);cursor:pointer}
form .submit:hover{background:var(--cc-blanc);border-color:var(--cc-blanc)}
form .fine{font-size:11px;opacity:.6;margin-top:10px;font-family:'Archivo Black';letter-spacing:.15em;text-transform:uppercase}
.type-toggle{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:22px}
.type-toggle input{position:absolute;opacity:0;pointer-events:none}
.type-toggle label{display:block;margin:0;padding:14px;text-align:center;font-family:var(--cc-ff-headline);font-size:12px;letter-spacing:.1em;text-transform:none;color:var(--cc-blanc);background:transparent;border:2.5px solid var(--cc-blanc);cursor:pointer;transition:background 120ms var(--cc-ease-snap),color 120ms var(--cc-ease-snap)}
.type-toggle label .price{display:block;font-family:var(--cc-ff-display);font-size:22px;margin-top:4px}
.type-toggle input:checked + label{background:var(--cc-jaune);color:var(--cc-noir);border-color:var(--cc-jaune)}
.check-row{display:flex;align-items:flex-start;gap:10px;margin:18px 0 0}
.check-row input{width:18px;height:18px;flex-shrink:0;margin:1px 0 0;accent-color:var(--cc-jaune);cursor:pointer}
.check-row label{margin:0;color:var(--cc-blanc);font-family:var(--cc-ff-body);font-size:13px;line-height:1.45;text-transform:none;letter-spacing:normal;cursor:pointer}
.solo-note{font-size:13px;line-height:1.5;color:var(--cc-blanc);opacity:.85;margin:18px 0 0;padding:12px 14px;border:2px solid var(--cc-jaune)}
.badge.info{background:var(--cc-blanc);color:var(--cc-noir)}
.success{background:var(--cc-jaune);color:var(--cc-noir);padding:30px;border:2.5px solid var(--cc-noir);box-shadow:8px 8px 0 var(--cc-rouge)}
.success h3{font-family:var(--cc-ff-display);font-size:56px;line-height:.9;text-transform:uppercase;margin:0 0 10px}
.success .num{font-family:'Anton';font-size:28px}
.hidden{display:none !important}

/* ---- Shop ---- */
.shop{background:var(--cc-blanc)}
.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px}
.tshirt{display:block;border:2.5px solid var(--cc-noir);background:var(--cc-blanc-pur);box-shadow:5px 5px 0 var(--cc-noir);overflow:hidden;cursor:pointer;transition:transform 120ms var(--cc-ease-snap),box-shadow 120ms var(--cc-ease-snap)}
.tshirt:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--cc-noir)}
.tshirt .visual{aspect-ratio:1/1.05;background:var(--cc-noir);color:var(--cc-jaune);display:flex;align-items:center;justify-content:center;padding:18%;text-align:center;border-bottom:2.5px solid var(--cc-noir)}
.tshirt .visual.y{background:var(--cc-jaune);color:var(--cc-noir)}
.tshirt .visual.w{background:var(--cc-blanc);color:var(--cc-noir)}
.tshirt .visual img{width:100%;height:100%;object-fit:cover}

/* ---- Fiche produit ---- */
.product-detail{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.product-detail .tshirt{max-width:480px}
.product-info h2{font-family:var(--cc-ff-display);font-size:clamp(36px,5vw,56px);line-height:1;text-transform:uppercase;letter-spacing:-1px}
.size-options{display:flex;gap:10px;flex-wrap:wrap}
.size-option{padding:10px 18px;font-family:var(--cc-ff-headline);font-size:13px;text-transform:uppercase;letter-spacing:.08em;border:2.5px solid var(--cc-noir);background:var(--cc-blanc-pur);cursor:pointer}
.size-option.on{background:var(--cc-jaune)}
@media (max-width:860px){
  .product-detail{grid-template-columns:1fr}
}
.tshirt .visual .t{font-family:var(--cc-ff-display);font-size:58px;line-height:.82;text-transform:uppercase;letter-spacing:-1px}
.tshirt .visual .t.red,.tshirt .visual .t .red{color:#D93A26}
.tshirt .visual .t.yellow,.tshirt .visual .t .yellow{color:#F7D417}
.tshirt .visual .s{font-family:var(--cc-ff-headline);font-size:9px;letter-spacing:.22em;text-transform:uppercase;margin-top:10px}
.tshirt .meta{padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.tshirt .meta .name{font-family:var(--cc-ff-headline);font-size:13px;text-transform:uppercase;letter-spacing:.05em}
.tshirt .meta .price{font-family:var(--cc-ff-display);font-size:22px;line-height:1}
.tshirt .meta .qty{font-size:10px;opacity:.55;margin-top:2px;font-family:'Archivo Black';letter-spacing:.18em;text-transform:uppercase}

/* ---- FAQ ---- */
.faq{background:var(--cc-jaune)}
.faq-list{max-width:860px;margin:0 auto}
.faq-item{border-top:2.5px solid var(--cc-noir);padding:18px 0;cursor:pointer}
.faq-item:last-child{border-bottom:2.5px solid var(--cc-noir)}
.faq-item summary{font-family:var(--cc-ff-headline);font-size:18px;text-transform:uppercase;letter-spacing:.02em;display:flex;justify-content:space-between;align-items:center;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary .ic{font-family:var(--cc-ff-display);font-size:32px;line-height:1;transition:transform 220ms var(--cc-ease)}
.faq-item[open] summary .ic{transform:rotate(45deg)}
.faq-item p{margin:12px 0 0;font-size:15px;line-height:1.5;max-width:720px}

/* ---- Partners ---- */
.partners{background:var(--cc-blanc)}
.partners-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:24px}
.partner{background:var(--cc-blanc-pur);border:2.5px solid var(--cc-noir);padding:20px;text-align:center;font-family:var(--cc-ff-display);font-size:22px;text-transform:uppercase;line-height:1;display:grid;place-items:center;min-height:100px}

/* ---- Footer ---- */
footer{background:var(--cc-noir);color:var(--cc-jaune);padding:60px 24px 30px;border-top:4px solid var(--cc-noir);border-bottom:none}
.foot-inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px}
footer h4{font-family:var(--cc-ff-headline);font-size:11px;letter-spacing:.2em;text-transform:uppercase;margin:0 0 12px;color:var(--cc-jaune)}
footer ul{list-style:none;padding:0;margin:0}
footer li{padding:4px 0;font-family:var(--cc-ff-body);font-size:14px;color:var(--cc-blanc);cursor:pointer}
footer li:hover{color:var(--cc-jaune)}
.foot-wm{font-family:var(--cc-ff-display);font-size:64px;line-height:.88;text-transform:uppercase;letter-spacing:-2px;color:var(--cc-jaune)}
.foot-desc{color:#F4EEDCcc;margin-top:14px;font-size:14px;max-width:320px}
.foot-legal{border-top:1px solid #F4EEDC22;margin-top:40px;padding-top:20px;max-width:1280px;margin-left:auto;margin-right:auto;display:flex;justify-content:space-between;font-family:var(--cc-ff-headline);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#F4EEDC99}

/* ---- Cart bar ---- */
.cartbar{position:fixed;bottom:0;left:0;right:0;background:var(--cc-rouge);color:var(--cc-blanc);padding:12px 24px;z-index:40;border-top:2.5px solid var(--cc-noir);display:flex;justify-content:space-between;align-items:center;font-family:var(--cc-ff-headline);font-size:13px;text-transform:uppercase;letter-spacing:.1em;transform:translateY(100%);transition:transform 220ms var(--cc-ease)}
.cartbar.on{transform:translateY(0)}
.cartbar .btn{background:var(--cc-noir);color:var(--cc-jaune);box-shadow:3px 3px 0 var(--cc-blanc)}

/* ---- Page hero (sub-pages: inscription, règlement, merci) ---- */
.page-hero{background:var(--cc-jaune);padding:60px 24px 40px;border-bottom:4px solid var(--cc-noir);text-align:center}
.page-hero .eyebrow{justify-content:center}
.page-hero h1{font-size:clamp(56px,11vw,150px);line-height:.88;letter-spacing:-4px;margin:6px 0 0}
.page-hero p{max-width:640px;margin:18px auto 0;font-size:18px}

/* ---- Inscription page ---- */
.inscription{background:var(--cc-blanc)}
.inscription-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.pay-card{background:var(--cc-noir);color:var(--cc-blanc);padding:30px;border:2.5px solid var(--cc-noir);box-shadow:8px 8px 0 var(--cc-jaune);margin-top:24px}
.pay-card h3{color:var(--cc-jaune);font-size:28px;margin-bottom:10px}
.pay-card p{color:var(--cc-blanc);font-size:14px;opacity:.85}
.pay-card .btn{margin-top:14px}

/* ---- Article / règlement ---- */
.article{max-width:820px;margin:0 auto}
.article h3{margin:46px 0 14px}
.article h3:first-child{margin-top:0}
.article h4{margin:24px 0 8px;font-size:18px}
.article p,.article li{font-size:16px;line-height:1.65}
.article ul,.article ol{padding-left:22px}
.article .callout{background:var(--cc-blanc-pur);border:2.5px solid var(--cc-noir);padding:20px 24px;box-shadow:5px 5px 0 var(--cc-noir);margin:20px 0}
.article .callout p:last-child{margin-bottom:0}
.article table{width:100%;border-collapse:collapse;margin:16px 0;font-size:15px}
.article th,.article td{border:1.5px solid var(--cc-noir);padding:8px 12px;text-align:left}
.article th{background:var(--cc-jaune);font-family:var(--cc-ff-headline);text-transform:uppercase;font-size:12px;letter-spacing:.08em}

/* ---- Merci page ---- */
.merci{background:var(--cc-blanc);text-align:center}
.merci .success{display:inline-block;text-align:left;max-width:520px;margin:0 auto}

/* ---- Équipes ---- */
.teams{background:var(--cc-blanc)}
.teams-count{text-align:center;margin:0 auto 30px;max-width:680px;font-family:var(--cc-ff-display);font-size:32px}
.teams-count b{color:var(--cc-rouge)}
.teams-list{max-width:680px;margin:0 auto;list-style:none;padding:0}
.teams-list li{display:flex;align-items:center;gap:16px;padding:14px 18px;border-bottom:2px solid var(--cc-noir);font-family:var(--cc-ff-headline);font-size:16px;text-transform:uppercase;letter-spacing:.05em}
.teams-list li:first-child{border-top:2.5px solid var(--cc-noir)}
.teams-list .num{background:var(--cc-jaune);border:2.5px solid var(--cc-noir);width:36px;height:36px;display:grid;place-items:center;font-family:var(--cc-ff-display);font-size:15px;flex:none}
.teams-empty,.bracket-empty{text-align:center;opacity:.6;padding:40px 0;font-size:16px}

/* ---- Arbre du tournoi ---- */
.bracket-wrap{overflow-x:auto;padding-bottom:10px}
.bracket{display:flex;gap:30px;min-width:max-content;margin:0 auto}
.bracket-round{display:flex;flex-direction:column;justify-content:space-around;gap:24px;min-width:220px}
.bracket-round h4{text-align:center;margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.15em}
.bracket-match{background:var(--cc-blanc-pur);border:2.5px solid var(--cc-noir);box-shadow:4px 4px 0 var(--cc-noir)}
.bracket-match .team{display:flex;justify-content:space-between;gap:10px;padding:9px 14px;font-size:13px;border-bottom:1.5px solid var(--cc-noir);font-family:var(--cc-ff-body)}
.bracket-match .team:last-child{border-bottom:0}
.bracket-match .team.winner{background:var(--cc-jaune);font-weight:700}
.bracket-match .team .score{font-family:'Anton';font-size:15px}
.bracket-match .team .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---- Admin note ---- */
.admin-note{max-width:680px;margin:40px auto 0;background:var(--cc-noir);color:var(--cc-blanc);padding:20px 24px;border:2.5px solid var(--cc-noir);font-size:13px;line-height:1.6}
.admin-note b{color:var(--cc-jaune)}

/* ---- Mon équipe ---- */
.badge{display:inline-block;padding:6px 14px;font-family:var(--cc-ff-headline);font-size:11px;text-transform:uppercase;letter-spacing:.15em;border:2px solid var(--cc-noir)}
.badge.paid{background:var(--cc-vert);color:var(--cc-blanc)}
.badge.pending{background:var(--cc-jaune)}
.team-info{background:var(--cc-blanc-pur);border:2.5px solid var(--cc-noir);box-shadow:6px 6px 0 var(--cc-noir);padding:24px;margin-bottom:24px}
.team-info h3{margin-bottom:6px}
.team-info dl{display:grid;grid-template-columns:90px 1fr;gap:10px 16px;margin-top:14px;font-size:15px}
.players-grid{display:grid;grid-template-columns:1fr;gap:18px 0}
.team-info dt{font-family:var(--cc-ff-headline);font-size:11px;text-transform:uppercase;letter-spacing:.12em;opacity:.6;align-self:center}
.team-info label{display:block;font-family:var(--cc-ff-headline);font-size:10px;text-transform:uppercase;letter-spacing:.18em;margin:14px 0 6px;color:var(--cc-noir);opacity:.6}
.team-info input[type="text"],.team-info input[type="email"],.team-info input:not([type]),.team-info textarea{width:100%;padding:11px 14px;font-family:var(--cc-ff-body);font-size:15px;background:var(--cc-blanc);border:2.5px solid var(--cc-noir);color:var(--cc-noir);outline:none;resize:vertical}
.team-info input:focus,.team-info textarea:focus{background:var(--cc-jaune);border-color:var(--cc-jaune)}
.binome-row{flex-wrap:wrap}
.binome-row .bio{flex-basis:100%;font-family:var(--cc-ff-body);font-size:13px;opacity:.75;margin-top:4px}
.level-toggle{display:flex;gap:18px;flex-wrap:wrap;margin-top:6px}
.level-toggle label{display:flex;align-items:center;gap:8px;font-family:var(--cc-ff-body);font-size:14px;text-transform:none;letter-spacing:normal;cursor:pointer;color:var(--cc-noir);margin:0}
.level-toggle input{width:18px;height:18px;accent-color:var(--cc-jaune);cursor:pointer}
.seekers-filter{display:flex;align-items:center;gap:10px;margin:10px 0 14px;flex-wrap:wrap}
.seekers-filter label{font-family:var(--cc-ff-headline);font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--cc-noir);opacity:.6}
.seekers-filter select{padding:9px 12px;font-family:var(--cc-ff-body);font-size:14px;background:var(--cc-blanc);border:2.5px solid var(--cc-noir);color:var(--cc-noir);outline:none}
.team-info .check-row label{color:var(--cc-noir);margin:0}
.matches-list{margin-top:10px}
.binome-row{display:flex;justify-content:space-between;align-items:center;gap:14px;background:var(--cc-blanc-pur);border:2.5px solid var(--cc-noir);box-shadow:4px 4px 0 var(--cc-noir);padding:12px 16px;margin-bottom:10px}
.binome-row .name{font-family:var(--cc-ff-body);font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.binome-row .actions{display:flex;gap:8px;flex-shrink:0}

/* ---- Admin page ---- */
.admin{background:var(--cc-blanc)}
.admin-gate{max-width:480px;margin:0 auto;background:var(--cc-noir);color:var(--cc-blanc);padding:30px;border:2.5px solid var(--cc-noir);box-shadow:8px 8px 0 var(--cc-jaune)}
.admin-gate label{display:block;font-family:var(--cc-ff-headline);font-size:10px;text-transform:uppercase;letter-spacing:.18em;margin:14px 0 6px;color:var(--cc-jaune)}
.admin-gate input{width:100%;padding:11px 14px;font-family:var(--cc-ff-body);font-size:15px;background:var(--cc-blanc);border:2.5px solid var(--cc-blanc);color:var(--cc-noir);outline:none}
.admin-gate .btn{margin-top:16px;width:100%}
.admin-gate p{font-size:12px;opacity:.7;margin-top:14px;line-height:1.6}
.admin-gate p a{color:var(--cc-jaune)}

.admin-editor{max-width:760px;margin:0 auto}
.admin-round{margin-bottom:30px}
.admin-round h4{margin-bottom:10px;font-size:13px;text-transform:uppercase;letter-spacing:.15em}
.admin-match{display:grid;grid-template-columns:1fr 70px 1fr 70px;gap:8px;align-items:center;border:2px solid var(--cc-noir);padding:10px;margin-bottom:10px;background:var(--cc-blanc-pur)}
.admin-match input{padding:8px 10px;border:2px solid var(--cc-noir);font-size:14px;font-family:var(--cc-ff-body);width:100%}
.admin-match input.score{text-align:center}
.admin-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:10px}
.admin-status{font-family:var(--cc-ff-headline);font-size:13px;text-transform:uppercase;letter-spacing:.1em}
.admin-status.ok{color:var(--cc-vert)}
.admin-status.err{color:var(--cc-rouge)}
.fine.ok{color:var(--cc-vert);opacity:1}
.fine.err{color:var(--cc-rouge);opacity:1}

.admin-teams{margin-top:16px}
.admin-team-row{display:grid;grid-template-columns:1fr 110px 140px 160px;gap:10px;align-items:center;border:2px solid var(--cc-noir);padding:10px 14px;margin-bottom:8px;background:var(--cc-blanc-pur);font-size:14px}
.admin-team-row .name{font-family:var(--cc-ff-headline);text-transform:uppercase;letter-spacing:.05em}
.admin-team-row .btn{padding:8px 14px;font-size:11px;width:auto}

.admin-requests{margin-top:16px}
.admin-request-row{display:grid;grid-template-columns:1fr 1fr 140px 160px;gap:10px;align-items:center;border:2px solid var(--cc-noir);padding:10px 14px;margin-bottom:8px;background:var(--cc-blanc-pur);font-size:14px}
.badge.declined,.badge.cancelled{background:var(--cc-rouge);color:var(--cc-blanc)}

.admin-products{margin-top:16px}
.admin-product-row{display:grid;grid-template-columns:90px 1fr auto;gap:14px;align-items:start;border:2px solid var(--cc-noir);padding:14px;margin-bottom:12px;background:var(--cc-blanc-pur)}
.admin-product-row .thumb{width:90px;height:90px;object-fit:cover;border:2px solid var(--cc-noir);background:var(--cc-noir)}
.admin-product-row .fields,.admin-product-new .fields{display:grid;grid-template-columns:1fr 100px;gap:8px}
.admin-product-row .fields input,.admin-product-row .fields select,.admin-product-row .fields textarea,
.admin-product-new .fields input,.admin-product-new .fields select,.admin-product-new .fields textarea{padding:8px 10px;border:2px solid var(--cc-noir);font-size:13px;font-family:var(--cc-ff-body);width:100%}
.admin-product-row .fields textarea,.admin-product-new .fields textarea{grid-column:1/-1;resize:vertical;min-height:50px}
.admin-product-row .actions{display:flex;flex-direction:column;gap:8px}
.admin-product-row .actions .btn{width:auto;padding:8px 14px;font-size:11px}
.admin-product-new{border:2px dashed var(--cc-noir);padding:16px;margin-top:16px}

@media (max-width:620px){
  .admin-match{grid-template-columns:1fr 60px}
  .admin-team-row{grid-template-columns:1fr;text-align:center}
  .admin-request-row{grid-template-columns:1fr;text-align:center}
  .admin-product-row{grid-template-columns:1fr}
  .admin-product-row .fields,.admin-product-new .fields{grid-template-columns:1fr}
}

@media (max-width:860px){
  .nav-links{display:none}
  .hero-meta{grid-template-columns:repeat(2,1fr)}
  .hero-meta .cell:nth-child(2){border-right:none}
  .rules-grid,.shop-grid{grid-template-columns:1fr 1fr}
  .program-row{grid-template-columns:70px 1fr;gap:10px}
  .program-row .title,.program-row .tag{grid-column:2}
  .program-row .day{display:none}
  .info-grid,.signup-grid,.inscription-grid,.foot-inner{grid-template-columns:1fr}
  .partners-grid{grid-template-columns:repeat(2,1fr)}
}

/* ---- Lecteur de musique flottant ---- */
.music-player{position:fixed;bottom:18px;right:18px;z-index:60;display:flex;align-items:center;gap:10px;background:var(--cc-noir);color:var(--cc-jaune);border:2.5px solid var(--cc-noir);box-shadow:4px 4px 0 var(--cc-jaune);padding:10px 14px;font-family:var(--cc-ff-headline);font-size:11px;text-transform:uppercase;letter-spacing:.12em;max-width:calc(100vw - 36px);transition:bottom 220ms var(--cc-ease)}
body:has(.cartbar.on) .music-player{bottom:68px}
.music-player button{background:var(--cc-jaune);color:var(--cc-noir);border:2px solid var(--cc-jaune);width:32px;height:32px;display:grid;place-items:center;cursor:pointer;font-size:13px;line-height:1;flex:none}
.music-player button:hover{background:var(--cc-blanc)}
.music-player .track{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.music-player input[type=range]{width:70px;accent-color:var(--cc-jaune);cursor:pointer;flex:none}
@media (max-width:620px){
  .music-player .track{display:none}
  .music-player input[type=range]{width:50px}
}
