/* ========================================================
   Page détail d'activité /activites/{slug}. Langue v5 marketing
   (rotations permises). Scopé .activite-detail.
   ======================================================== */
.activite-detail { background: var(--paper-warm, #F2ECE0); color: var(--ink-warm, #241F17); font-family: var(--font-sans-v5, 'Instrument Sans', system-ui, sans-serif); }
.activite-detail .act-wrap { max-width: 760px; margin: 0 auto; padding: clamp(2rem, 5vw, 3.4rem) clamp(18px, 5vw, 28px) clamp(3rem, 6vw, 4.5rem); }

.activite-detail .act-chip { display: inline-block; font-weight: 700; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; border: 2px solid var(--ink-warm, #241F17); border-radius: 999px; padding: .3em 1em; box-shadow: var(--hard-sm, 3px 3px 0 #241F17); transform: rotate(-2deg); }
.activite-detail .act-chip.rouge { background: var(--rouge-soft, #F3E0D4); }
.activite-detail .act-chip.jaune { background: var(--jaune-soft, #F6E7C4); }
.activite-detail .act-chip.vert  { background: var(--green-tint, #E2ECE4); }
.activite-detail .act-chip.neutre{ background: var(--neutre, #EAE2D0); }

.activite-detail h1 { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: clamp(1.9rem, 5vw, 2.8rem); line-height: 1.1; letter-spacing: -.01em; margin: .8rem 0 1.4rem; }

.activite-detail .act-annulee { background: var(--rouge-soft, #F3E0D4); border: 2.5px solid var(--ink-warm, #241F17); box-shadow: var(--hard-sm, 3px 3px 0 #241F17); border-radius: 12px; padding: 1rem 1.2rem; margin: 0 0 1.6rem; font-weight: 600; }
.activite-detail .act-annulee a { color: var(--green, #1C7A53); text-decoration: underline; }

.activite-detail .act-sommaire { display: flex; gap: 1.3rem; align-items: flex-start; background: var(--white-warm, #FFFDF8); border: 2.5px solid var(--ink-warm, #241F17); border-radius: 16px; box-shadow: var(--hard, 4px 4px 0 #241F17); padding: clamp(1.3rem, 3vw, 1.8rem); margin: 0 0 1.8rem; flex-wrap: wrap; }
.activite-detail .act-feuillet { flex-shrink: 0; text-align: center; border: 2px solid var(--ink-warm, #241F17); border-radius: 12px; background: var(--green-tint, #E2ECE4); padding: .5rem .9rem .6rem; min-width: 72px; }
.activite-detail .act-feuillet .j { display: block; font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-size: 2rem; line-height: 1; }
.activite-detail .act-feuillet .m { font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--green-dark, #12523A); }
.activite-detail .act-feuillet .an { display: block; font-size: .72rem; color: var(--ink-warm-soft, #5C5346); margin-top: .1rem; }
.activite-detail .act-terme { display: inline-block; margin-top: .4rem; font-size: .7rem; font-weight: 700; text-transform: uppercase; background: var(--neutre, #EAE2D0); border: 1.5px solid var(--ink-warm, #241F17); border-radius: 999px; padding: .1em .6em; }
.activite-detail .act-infos { flex: 1 1 240px; }
.activite-detail .act-infos dl { display: grid; grid-template-columns: auto 1fr; gap: .3rem .9rem; margin: 0; }
.activite-detail .act-infos dt { color: var(--ink-warm-soft, #5C5346); font-size: .9rem; }
.activite-detail .act-infos dd { margin: 0; font-weight: 600; font-size: .95rem; }
.activite-detail .act-prix { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-size: 1.3rem; color: var(--green, #1C7A53); }

.activite-detail .act-desc { font-size: 1.05rem; line-height: 1.7; color: var(--ink-warm, #241F17); white-space: pre-wrap; margin: 0 0 2rem; }

.activite-detail .act-action { border-top: 2px dashed var(--line-warm, #DFD5C1); padding-top: 1.6rem; }
.activite-detail .act-btn { display: inline-flex; align-items: center; gap: .5em; font-weight: 700; font-size: 1rem; text-decoration: none; padding: .8em 1.4em; border-radius: 12px; border: 2.5px solid var(--ink-warm, #241F17); box-shadow: var(--hard-sm, 3px 3px 0 #241F17); background: var(--green, #1C7A53); color: var(--white-warm, #FFFDF8); }
.activite-detail .act-btn:hover { background: var(--green-dark, #12523A); }
.activite-detail .act-btn.blanc { background: var(--white-warm, #FFFDF8); color: var(--ink-warm, #241F17); }
.activite-detail .act-note { color: var(--ink-warm-soft, #5C5346); font-size: .92rem; margin-top: .8rem; }
.activite-detail .act-ics { display: inline-block; margin-top: 1rem; color: var(--green, #1C7A53); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.activite-detail a:focus-visible, .activite-detail button:focus-visible { outline: 3px solid var(--rouge, #C25438); outline-offset: 3px; }

/* ===== Blocs partagés instance + pages produit (scope .act-page) ===== */
.act-page { background: var(--paper-warm, #F2ECE0); color: var(--ink-warm, #241F17); font-family: var(--font-sans-v5, 'Instrument Sans', system-ui, sans-serif); }
.act-page .act-wrap { max-width: 820px; margin: 0 auto; padding: clamp(2rem, 5vw, 3.4rem) clamp(18px, 5vw, 28px) clamp(3rem, 6vw, 4.5rem); }

/* Fil d'Ariane */
.act-page .act-fil { font-size: .9rem; color: var(--ink-warm-soft, #5C5346); margin: 0 0 1rem; }
.act-page .act-fil a { color: var(--green, #1C7A53); text-decoration: underline; text-underline-offset: 3px; }
.act-page .act-fil .sep { margin: 0 .4rem; color: var(--line-warm, #DFD5C1); }

/* Section h2 partagée */
.act-page section h2 { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: clamp(1.4rem, 3vw, 1.9rem); line-height: 1.14; letter-spacing: -.01em; margin: 2.6rem 0 1.1rem; }

/* Déroulé en pas (tournoi, camp) */
.act-page .act-deroule { display: grid; gap: 1rem; }
.act-page .act-pas { display: grid; grid-template-columns: auto 1fr; gap: 0 1.1rem; align-items: start; background: var(--white-warm, #FFFDF8); border: 2px solid var(--ink-warm, #241F17); border-radius: 14px; box-shadow: var(--hard-sm, 3px 3px 0 #241F17); padding: 1.1rem 1.2rem; }
.act-page .act-pas .num { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-size: 2rem; line-height: 1; color: var(--green, #1C7A53); grid-row: span 2; }
.act-page .act-pas h3 { margin: .1rem 0 .3rem; font-size: 1.05rem; }
.act-page .act-pas p { margin: 0; color: var(--ink-warm-soft, #5C5346); line-height: 1.5; }

/* Trois lignes à amorce grasse (club) */
.act-page .act-lignes p { margin: 0 0 1rem; font-size: 1.05rem; line-height: 1.6; color: var(--ink-warm-soft, #5C5346); }
.act-page .act-lignes strong { color: var(--ink-warm, #241F17); }

/* FAQ par type */
.act-page .act-faq details { background: var(--white-warm, #FFFDF8); border: 2px solid var(--ink-warm, #241F17); border-radius: 12px; box-shadow: var(--hard-sm, 3px 3px 0 #241F17); margin-bottom: .8rem; overflow: hidden; }
.act-page .act-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .95rem 1.15rem; font-weight: 700; }
.act-page .act-faq summary::-webkit-details-marker { display: none; }
.act-page .act-faq summary::after { content: "+"; flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--ink-warm, #241F17); background: var(--jaune, #DFA83C); display: grid; place-items: center; font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); }
.act-page .act-faq details[open] summary::after { content: "\2212"; }
.act-page .act-faq details p { padding: 0 1.15rem 1rem; margin: 0; color: var(--ink-warm-soft, #5C5346); }

/* Aussi à venir + grille des dates (produit) */
.act-page .act-mini { display: flex; flex-wrap: wrap; gap: 1rem; }
.act-page .act-mini a { display: flex; gap: .8rem; align-items: center; text-decoration: none; color: inherit; background: var(--white-warm, #FFFDF8); border: 2px solid var(--ink-warm, #241F17); border-radius: 12px; box-shadow: var(--hard-sm, 3px 3px 0 #241F17); padding: .8rem 1rem; flex: 1 1 220px; }
.act-page .act-mini a:hover { transform: translate(1px, 1px); box-shadow: 1px 1px 0 var(--ink-warm, #241F17); }
.act-page .mini-feuillet { flex-shrink: 0; text-align: center; border: 2px solid var(--ink-warm, #241F17); border-radius: 8px; background: var(--green-tint, #E2ECE4); padding: .3rem .6rem; }
.act-page .mini-feuillet .j { display: block; font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-size: 1.3rem; line-height: 1; }
.act-page .mini-feuillet .m { font-size: .6rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--green-dark, #12523A); }
.act-page .mini-feuillet.rouge { background: var(--rouge-soft, #F3E0D4); } .act-page .mini-feuillet.jaune { background: var(--jaune-soft, #F6E7C4); } .act-page .mini-feuillet.neutre { background: var(--neutre, #EAE2D0); }
.act-page .mini-info h4 { margin: 0 0 .1rem; font-size: .98rem; }
.act-page .mini-info p { margin: 0; font-size: .85rem; color: var(--ink-warm-soft, #5C5346); }
.act-page .etat-chip-sm { display: inline-block; margin-top: .3rem; font-size: .72rem; font-weight: 700; border: 1.5px solid var(--ink-warm, #241F17); border-radius: 999px; padding: .05em .55em; background: var(--green-tint, #E2ECE4); }
.act-page .etat-chip-sm.presque { background: var(--rouge-soft, #F3E0D4); } .act-page .etat-chip-sm.complet { background: var(--jaune-soft, #F6E7C4); } .act-page .etat-chip-sm.courriel { background: var(--neutre, #EAE2D0); }

/* CTA final */
.act-page .act-cta-final { margin-top: 2.6rem; padding-top: 1.8rem; border-top: 2px dashed var(--line-warm, #DFD5C1); }
.act-page .act-btn { display: inline-flex; align-items: center; gap: .5em; font-weight: 700; font-size: 1rem; text-decoration: none; padding: .8em 1.4em; border-radius: 12px; border: 2.5px solid var(--ink-warm, #241F17); box-shadow: var(--hard-sm, 3px 3px 0 #241F17); background: var(--green, #1C7A53); color: var(--white-warm, #FFFDF8); }
.act-page .act-btn:hover { background: var(--green-dark, #12523A); }

/* Chips de filtre (calendrier) */
.act-page .chip-filtre { text-decoration: none; font-weight: 600; font-size: .9rem; color: var(--ink-warm, #241F17); background: var(--white-warm, #FFFDF8); border: 2px solid var(--ink-warm, #241F17); border-radius: 999px; padding: .35em 1em; box-shadow: var(--hard-sm, 3px 3px 0 #241F17); }
.act-page .chip-filtre.actif { background: var(--green, #1C7A53); color: var(--white-warm, #FFFDF8); }
.act-page .chip-filtre:hover { background: var(--green-tint, #E2ECE4); }
.act-page .chip-filtre.actif:hover { background: var(--green-dark, #12523A); }

/* Mode en ligne : chip PRESQUE + erreurs + formulaire (zéro rotation, transactionnel) */
.activite-detail .act-presque { display: inline-block; font-weight: 700; font-size: .85rem; background: var(--rouge-soft, #F3E0D4); border: 2px solid var(--ink-warm, #241F17); border-radius: 999px; padding: .3em 1em; box-shadow: var(--hard-sm, 3px 3px 0 #241F17); margin: 0 0 1rem; }
.activite-detail .act-errors { background: var(--rouge-soft, #F3E0D4); border: 2px solid var(--ink-warm, #241F17); border-radius: 12px; padding: .8rem 1rem; margin: 0 0 1.2rem; }
.activite-detail .act-errors ul { margin: 0; padding-left: 1.1rem; }
.activite-detail .act-form { max-width: 460px; }
.activite-detail .act-form.form-public .form-submit { margin-top: .4rem; }

/* ========================================================
   Page d'univers /club (refonte). Langue v5 marketing
   (rotations permises). Scopé .produit-club. Hérite de .act-page.
   ======================================================== */
.produit-club .club-wrap { max-width: 1060px; margin: 0 auto; padding: clamp(2rem, 5vw, 3.4rem) clamp(18px, 5vw, 28px) clamp(3rem, 6vw, 4.5rem); }
.produit-club .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Étiquette de section */
.produit-club .club-tag { display: inline-block; font-weight: 700; font-size: .78rem; letter-spacing: .09em; text-transform: uppercase; border: 2px solid var(--ink-warm, #241F17); border-radius: 999px; padding: .32em 1em; box-shadow: var(--hard-sm, 3px 3px 0 #241F17); background: var(--green-tint, #E2ECE4); transform: rotate(-1.5deg); }
.produit-club .club-tag.jaune { background: var(--jaune-soft, #F6E7C4); }
.produit-club .club-tag.rouge { background: var(--rouge-soft, #F3E0D4); }

/* Boutons */
.produit-club .btn-club { display: inline-flex; align-items: center; gap: .5em; font-weight: 700; font-size: 1rem; text-decoration: none; padding: .8em 1.4em; border-radius: 12px; border: 2.5px solid var(--ink-warm, #241F17); box-shadow: var(--hard-sm, 3px 3px 0 #241F17); transition: transform .16s ease, box-shadow .16s ease, background .16s ease; }
.produit-club .btn-club.btn-vert { background: var(--green, #1C7A53); color: var(--white-warm, #FFFDF8); }
.produit-club .btn-club.btn-vert:hover { background: var(--green-dark, #12523A); }
.produit-club .btn-club.btn-blanc { background: var(--white-warm, #FFFDF8); color: var(--ink-warm, #241F17); }
.produit-club .btn-club.btn-blanc:hover { transform: translate(1px, 1px); box-shadow: 1px 1px 0 var(--ink-warm, #241F17); }
.produit-club a:focus-visible { outline: 3px solid var(--rouge, #C25438); outline-offset: 3px; }

/* 1. Hero deux colonnes */
.produit-club .club-hero { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(1.6rem, 4vw, 3rem); align-items: center; }
.produit-club .club-hero h1 { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: clamp(2rem, 5vw, 3rem); line-height: 1.08; letter-spacing: -.01em; margin: .9rem 0 1rem; }
.produit-club .club-sous { font-size: 1.08rem; line-height: 1.65; color: var(--ink-warm-soft, #5C5346); max-width: 40ch; }
.produit-club .club-hero-ctas { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.6rem; }

/* Échelle du club */
.produit-club .echelle-club { background: var(--white-warm, #FFFDF8); border: 2.5px solid var(--ink-warm, #241F17); border-radius: var(--r-warm, 16px); box-shadow: var(--hard, 4px 4px 0 #241F17); padding: 1.1rem 1.1rem 1.3rem; transform: rotate(-1deg); }
.produit-club .echelle-titre { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: 1.2rem; text-align: center; padding: .3rem 0 .8rem; border-bottom: 2px solid var(--ink-warm, #241F17); margin-bottom: .9rem; }
.produit-club .echelle-liste { display: flex; flex-direction: column; gap: .55rem; }
.produit-club .plaquette { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: .6rem; background: var(--paper-warm, #F2ECE0); border: 2px solid var(--ink-warm, #241F17); border-radius: 10px; box-shadow: var(--hard-sm, 3px 3px 0 #241F17); padding: .5rem .8rem; }
.produit-club .plaquette:nth-child(odd) { transform: rotate(-.8deg); }
.produit-club .plaquette:nth-child(even) { transform: rotate(.8deg); }
.produit-club .plaquette.tete { background: var(--jaune-soft, #F6E7C4); }
.produit-club .pl-prenom { font-weight: 700; }
.produit-club .pl-cote { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-size: 1.15rem; line-height: 1; }
.produit-club .pl-tend { display: inline-flex; align-items: center; }
.produit-club .pl-tend.up { color: var(--green, #1C7A53); }
.produit-club .pl-tend.down { color: var(--ink-warm-soft, #5C5346); }
.produit-club .echelle-legende { font-size: .8rem; color: var(--ink-warm-soft, #5C5346); text-align: center; margin: .9rem auto 0; max-width: 34ch; }

/* Sections */
.produit-club .club-section { margin-top: clamp(2.6rem, 6vw, 4rem); }
.produit-club .club-section > .club-tag { margin-bottom: 1.3rem; }
.produit-club .club-ligne { font-size: 1.02rem; line-height: 1.6; color: var(--ink-warm-soft, #5C5346); margin: .7rem 0 0; }

/* 2. Billets de soirée */
.produit-club .billets { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.3rem; }
@media (max-width: 680px) { .produit-club .billets { grid-template-columns: 1fr; } }
.produit-club .billet-soiree { position: relative; display: flex; align-items: stretch; text-decoration: none; color: inherit; background: var(--white-warm, #FFFDF8); border: 2.5px solid var(--ink-warm, #241F17); border-radius: var(--r-warm-sm, 12px); box-shadow: var(--hard, 4px 4px 0 #241F17); transition: transform .16s ease, box-shadow .16s ease; }
.produit-club .billet-soiree:nth-child(odd) { transform: rotate(-.6deg); }
.produit-club .billet-soiree:nth-child(even) { transform: rotate(.6deg); }
.produit-club .billet-soiree:hover { transform: rotate(0) translateY(-2px); box-shadow: 6px 6px 0 var(--ink-warm, #241F17); }
.produit-club .billet-corps { display: flex; flex-direction: column; align-items: flex-start; gap: .3rem; flex: 1 1 auto; padding: 1.1rem 1.2rem; min-width: 0; }
.produit-club .billet-titre { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: 1.25rem; line-height: 1.15; }
.produit-club .billet-ligne { font-size: .9rem; color: var(--ink-warm-soft, #5C5346); }
.produit-club .billet-prix { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-size: 1.05rem; color: var(--green, #1C7A53); margin-top: .1rem; }
.produit-club .billet-perfo { position: relative; flex: 0 0 2.5px; width: 2.5px; margin: 0 .1rem; background: repeating-linear-gradient(to bottom, var(--ink-warm, #241F17) 0 6px, transparent 6px 12px); }
.produit-club .billet-perfo::before, .produit-club .billet-perfo::after { content: ""; position: absolute; left: 50%; transform: translateX(-50%); width: 17px; height: 17px; border-radius: 50%; background: var(--paper-warm, #F2ECE0); border: 2.5px solid var(--ink-warm, #241F17); }
.produit-club .billet-perfo::before { top: -9px; }
.produit-club .billet-perfo::after { bottom: -9px; }
.produit-club .billet-talon { flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 0 1.1rem; background: var(--green-tint, #E2ECE4); border-left: 0; border-top-right-radius: var(--r-warm-sm, 12px); border-bottom-right-radius: var(--r-warm-sm, 12px); }
.produit-club .billet-talon .bt-j { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-size: 2rem; line-height: 1; }
.produit-club .billet-talon .bt-m { font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--green-dark, #12523A); }

/* Billet fantôme (état vide) */
.produit-club .billet-fantome { border: 2.5px dashed var(--ink-warm-soft, #5C5346); border-radius: var(--r-warm-sm, 12px); background: var(--white-warm, #FFFDF8); padding: 1.5rem 1.4rem; max-width: 460px; }
.produit-club .bf-titre { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: 1.25rem; margin: 0 0 .3rem; }
.produit-club .bf-sous { margin: 0; color: var(--ink-warm-soft, #5C5346); }

/* 3. Bandeau de jalons */
.produit-club .club-jalons { display: flex; flex-wrap: wrap; align-items: stretch; gap: .4rem; margin-top: .4rem; }
.produit-club .cj-temps { flex: 1 1 180px; background: var(--white-warm, #FFFDF8); border: 2px solid var(--ink-warm, #241F17); border-radius: var(--r-warm-sm, 12px); box-shadow: var(--hard-sm, 3px 3px 0 #241F17); padding: 1rem 1.05rem 1.1rem; }
.produit-club .cj-temps:nth-child(4n+1) { transform: rotate(-.7deg); }
.produit-club .cj-temps:nth-child(4n+3) { transform: rotate(.7deg); }
.produit-club .cj-point { display: inline-block; width: 11px; height: 11px; background: var(--green, #1C7A53); border: 2px solid var(--ink-warm, #241F17); border-radius: 50%; margin-bottom: .5rem; }
.produit-club .cj-temps h3 { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: 1.12rem; margin: 0 0 .35rem; }
.produit-club .cj-temps p { margin: 0; font-size: .9rem; line-height: 1.5; color: var(--ink-warm-soft, #5C5346); }
.produit-club .cj-fil { flex: 0 0 14px; align-self: center; height: 0; border-top: 2px dashed var(--ink-warm-soft, #5C5346); }
@media (max-width: 780px) { .produit-club .club-jalons { flex-direction: column; } .produit-club .cj-fil { display: none; } .produit-club .cj-temps { transform: none; } }

/* 4. Duo classement + coup */
.produit-club .club-duo { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.4rem, 4vw, 2.4rem); align-items: start; margin-top: clamp(2.6rem, 6vw, 4rem); }
@media (max-width: 820px) { .produit-club .club-duo { grid-template-columns: 1fr; } }
.produit-club .duo-col > .club-tag { margin-bottom: 1rem; }
.produit-club .duo-texte { font-size: 1.05rem; line-height: 1.65; color: var(--ink-warm-soft, #5C5346); }
.produit-club .coup-soiree { background: var(--white-warm, #FFFDF8); border: 2.5px solid var(--ink-warm, #241F17); border-radius: var(--r-warm, 16px); box-shadow: var(--hard, 4px 4px 0 #241F17); padding: 1.2rem 1.3rem 1.4rem; transform: rotate(.8deg); }
.produit-club .coup-soiree h3 { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: 1.2rem; margin: 0 0 .9rem; }
.produit-club .coup-mini { display: block; width: 100%; max-width: 300px; height: auto; margin: 0 auto; border: 2.5px solid var(--ink-warm, #241F17); border-radius: 8px; }
.produit-club .coup-legende { margin: .9rem 0 0; font-size: .9rem; font-weight: 600; text-align: center; color: var(--ink-warm, #241F17); }

/* 5. La diagonale */
.produit-club .club-diagonale { margin-top: clamp(2.6rem, 6vw, 4rem); }
.produit-club .diago-intro { font-size: 1.08rem; color: var(--ink-warm, #241F17); max-width: 52ch; }
.produit-club .diago-visuel { margin-top: 1.2rem; max-width: 340px; }
.produit-club .diago-svg { display: block; width: 100%; height: auto; }
.produit-club .diago-libelles { display: grid; grid-template-columns: repeat(3, 1fr); gap: .4rem; margin-top: .5rem; text-align: center; }
.produit-club .diago-libelles a { font-weight: 700; color: var(--green, #1C7A53); text-decoration: underline; text-underline-offset: 3px; font-size: .92rem; }
.produit-club .diago-ici { font-weight: 700; color: var(--ink-warm, #241F17); font-size: .92rem; }

/* 6. CTA final */
.produit-club .club-cta { margin-top: clamp(2.6rem, 6vw, 4rem); background: var(--green-tint, #E2ECE4); border: 2.5px solid var(--ink-warm, #241F17); border-radius: var(--r-warm, 16px); box-shadow: var(--hard, 4px 4px 0 #241F17); padding: clamp(1.6rem, 4vw, 2.4rem); text-align: center; }
.produit-club .club-cta h2 { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: clamp(1.4rem, 3.4vw, 2rem); line-height: 1.15; margin: 0 0 1.3rem; }
.produit-club .club-cta-btns { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }

/* Hero : empilement mobile (échelle sous le texte) */
@media (max-width: 860px) { .produit-club .club-hero { grid-template-columns: 1fr; } .produit-club .club-hero-visuel { max-width: 420px; } }

@media (prefers-reduced-motion: reduce) {
  .produit-club *, .produit-club *::before, .produit-club *::after { transition: none !important; }
}

/* ========================================================
   Page d'univers /tournois (refonte). Métaphore affiche
   placardée + registre. Scopé .produit-tournois. Hérite .act-page.
   AUCUN composant du club (échelle/billets/diagonale).
   ======================================================== */
.produit-tournois .trn-wrap { max-width: 1000px; margin: 0 auto; padding: clamp(2rem, 5vw, 3.2rem) clamp(18px, 5vw, 28px) clamp(3rem, 6vw, 4.5rem); }
.produit-tournois .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Tags + boutons */
.produit-tournois .trn-tag { display: inline-block; font-weight: 700; font-size: .78rem; letter-spacing: .09em; text-transform: uppercase; border: 2px solid var(--ink-warm, #241F17); border-radius: 999px; padding: .32em 1em; box-shadow: var(--hard-sm, 3px 3px 0 #241F17); background: var(--rouge-soft, #F3E0D4); transform: rotate(-1.5deg); }
.produit-tournois .trn-tag.jaune { background: var(--jaune-soft, #F6E7C4); }
.produit-tournois .btn-trn { display: inline-flex; align-items: center; gap: .5em; font-weight: 700; font-size: 1rem; text-decoration: none; padding: .8em 1.4em; border-radius: 12px; border: 2.5px solid var(--ink-warm, #241F17); box-shadow: var(--hard-sm, 3px 3px 0 #241F17); transition: transform .16s ease, box-shadow .16s ease, background .16s ease; }
.produit-tournois .btn-trn.btn-vert { background: var(--green, #1C7A53); color: var(--white-warm, #FFFDF8); }
.produit-tournois .btn-trn.btn-vert:hover { background: var(--green-dark, #12523A); }
.produit-tournois .btn-trn.btn-blanc { background: var(--white-warm, #FFFDF8); color: var(--ink-warm, #241F17); }
.produit-tournois .btn-trn.btn-blanc:hover { transform: translate(1px, 1px); box-shadow: 1px 1px 0 var(--ink-warm, #241F17); }
.produit-tournois a:focus-visible { outline: 3px solid var(--rouge, #C25438); outline-offset: 3px; }

/* Chips d'affiche */
.produit-tournois .trn-chip { display: inline-block; font-weight: 700; font-size: .78rem; border: 2px solid var(--ink-warm, #241F17); border-radius: 999px; padding: .28em .9em; background: var(--paper-warm, #F2ECE0); }
.produit-tournois .trn-chip.prix { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); color: var(--green, #1C7A53); }
.produit-tournois .trn-chip.vedette-chip { background: var(--rouge-soft, #F3E0D4); text-transform: uppercase; letter-spacing: .06em; }

/* Punaises */
.produit-tournois .trn-punaise { position: absolute; top: -11px; left: 50%; transform: translateX(-50%); width: 20px; height: 20px; border-radius: 50%; background: var(--rouge, #C25438); border: 2.5px solid var(--ink-warm, #241F17); box-shadow: inset -2px -2px 0 rgba(36,31,23,.18); }
.produit-tournois .trn-punaise.petite { width: 15px; height: 15px; top: -8px; }
.produit-tournois .trn-punaise.doree { background: var(--jaune, #DFA83C); }

/* 1. Hero bandeau */
.produit-tournois .trn-hero { position: relative; padding: clamp(1.2rem, 3vw, 2rem) 0 clamp(1.4rem, 3vw, 2.2rem); }
.produit-tournois .trn-hero-txt { max-width: 620px; }
.produit-tournois .trn-hero h1 { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: clamp(2rem, 5vw, 3rem); line-height: 1.08; letter-spacing: -.01em; margin: .8rem 0 .9rem; }
.produit-tournois .trn-sous { font-size: 1.06rem; line-height: 1.6; color: var(--ink-warm-soft, #5C5346); margin: 0 0 1.4rem; }
.produit-tournois .trn-pendule { position: absolute; right: 0; top: 50%; width: 190px; height: auto; transform: translateY(-50%) rotate(-5deg); }
@media (max-width: 768px) { .produit-tournois .trn-pendule { display: none; } }

/* 2. L'affiche vedette */
.produit-tournois .trn-vedette-wrap { margin-top: 1rem; }
.produit-tournois .trn-affiche { position: relative; display: flex; gap: clamp(1rem, 3vw, 1.8rem); align-items: stretch; text-decoration: none; color: inherit; background: var(--white-warm, #FFFDF8); border: 2.5px solid var(--ink-warm, #241F17); border-radius: var(--r-warm, 16px); box-shadow: var(--hard, 4px 4px 0 #241F17); padding: clamp(1.4rem, 3.5vw, 2.2rem); transform: rotate(-.8deg); transition: transform .18s ease, box-shadow .18s ease; }
.produit-tournois .trn-affiche:hover { transform: rotate(0) translateY(-2px); box-shadow: 7px 7px 0 var(--ink-warm, #241F17); }
.produit-tournois .trn-affiche-corps { flex: 1 1 auto; display: flex; flex-direction: column; align-items: flex-start; gap: .7rem; min-width: 0; }
.produit-tournois .trn-affiche-tete { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; }
.produit-tournois .trn-prochain { font-weight: 700; font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-warm-soft, #5C5346); }
.produit-tournois .trn-affiche-titre { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: clamp(1.8rem, 4.5vw, 2.8rem); line-height: 1.05; letter-spacing: -.01em; }
.produit-tournois .trn-affiche-meta { color: var(--ink-warm-soft, #5C5346); font-size: .98rem; }
.produit-tournois .trn-affiche-chips { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.produit-tournois .trn-affiche-cta { margin-top: .5rem; }
.produit-tournois .trn-feuillet-xl { flex: 0 0 auto; align-self: flex-start; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; min-width: 118px; padding: 1rem .9rem 1.1rem; border: 2.5px solid var(--ink-warm, #241F17); border-radius: 14px; background: var(--rouge-soft, #F3E0D4); }
.produit-tournois .trn-feuillet-xl.vert { background: var(--green-tint, #E2ECE4); } .produit-tournois .trn-feuillet-xl.jaune { background: var(--jaune-soft, #F6E7C4); } .produit-tournois .trn-feuillet-xl.neutre { background: var(--neutre, #EAE2D0); }
.produit-tournois .trn-feuillet-xl .fx-j { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-size: 3.4rem; line-height: .95; }
.produit-tournois .trn-feuillet-xl .fx-m { font-weight: 700; letter-spacing: .12em; text-transform: uppercase; font-size: .82rem; margin-top: .2rem; }
.produit-tournois .trn-feuillet-xl .fx-a { font-size: .8rem; color: var(--ink-warm-soft, #5C5346); }
@media (max-width: 640px) { .produit-tournois .trn-affiche { flex-direction: column-reverse; } .produit-tournois .trn-feuillet-xl { align-self: center; } }

/* Affiche fantôme */
.produit-tournois .trn-affiche-fantome { position: relative; border: 2.5px dashed var(--ink-warm-soft, #5C5346); border-radius: var(--r-warm, 16px); background: var(--white-warm, #FFFDF8); padding: clamp(1.6rem, 4vw, 2.4rem); text-align: center; }
.produit-tournois .taf-titre { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: clamp(1.5rem, 3.5vw, 2rem); margin: 0 0 .4rem; }
.produit-tournois .taf-sous { color: var(--ink-warm-soft, #5C5346); margin: 0 0 .8rem; }
.produit-tournois .trn-lien { font-weight: 700; color: var(--green, #1C7A53); text-decoration: underline; text-underline-offset: 3px; }

/* Sections */
.produit-tournois .trn-section { margin-top: clamp(2.4rem, 5.5vw, 3.6rem); }
.produit-tournois .trn-soustitre, .produit-tournois .trn-h2 { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: clamp(1.3rem, 3vw, 1.8rem); letter-spacing: -.01em; margin: 0 0 1.2rem; }
.produit-tournois .trn-soustitre { font-size: 1.1rem; color: var(--ink-warm-soft, #5C5346); }

/* 3. Aussi au calendrier */
.produit-tournois .trn-affichettes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
@media (max-width: 760px) { .produit-tournois .trn-affichettes { grid-template-columns: 1fr; } }
.produit-tournois .trn-affichette { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: .5rem; text-decoration: none; color: inherit; background: var(--white-warm, #FFFDF8); border: 2.5px solid var(--ink-warm, #241F17); border-radius: var(--r-warm-sm, 12px); box-shadow: var(--hard-sm, 3px 3px 0 #241F17); padding: 1.4rem 1.2rem 1.2rem; }
.produit-tournois .trn-affichette:nth-child(even) { transform: rotate(.7deg); }
.produit-tournois .trn-affichette:nth-child(odd) { transform: rotate(-.7deg); }
.produit-tournois .trn-affichette:hover { transform: rotate(0) translateY(-2px); box-shadow: 5px 5px 0 var(--ink-warm, #241F17); }
.produit-tournois .trn-feuillet { display: inline-flex; flex-direction: column; align-items: center; text-align: center; border: 2px solid var(--ink-warm, #241F17); border-radius: 8px; background: var(--rouge-soft, #F3E0D4); padding: .3rem .7rem; }
.produit-tournois .trn-feuillet.vert { background: var(--green-tint, #E2ECE4); } .produit-tournois .trn-feuillet.jaune { background: var(--jaune-soft, #F6E7C4); } .produit-tournois .trn-feuillet.neutre { background: var(--neutre, #EAE2D0); }
.produit-tournois .trn-feuillet .tf-j { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-size: 1.5rem; line-height: 1; }
.produit-tournois .trn-feuillet .tf-m { font-size: .64rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.produit-tournois .trn-affichette-titre { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: 1.2rem; line-height: 1.15; }
.produit-tournois .trn-affichette-lieu { font-size: .88rem; color: var(--ink-warm-soft, #5C5346); }

/* 4. Callout premier tournoi */
.produit-tournois .trn-callout { position: relative; max-width: 640px; background: var(--jaune-soft, #F6E7C4); border: 2.5px solid var(--ink-warm, #241F17); border-radius: var(--r-warm-sm, 12px); box-shadow: var(--hard-sm, 3px 3px 0 #241F17); padding: 1.2rem 1.4rem; transform: rotate(-.5deg); }
.produit-tournois .trn-callout p { margin: 0; line-height: 1.55; }

/* 6. Le code du joueur */
.produit-tournois .trn-code { position: relative; max-width: 620px; margin: 0 auto; background: var(--white-warm, #FFFDF8); background-image: repeating-linear-gradient(to bottom, transparent 0 calc(2rem - 1px), var(--line-warm, #DFD5C1) calc(2rem - 1px) 2rem); border: 2.5px solid var(--ink-warm, #241F17); border-radius: var(--r-warm, 16px); box-shadow: var(--hard, 4px 4px 0 #241F17); padding: 1.8rem 1.8rem 1.6rem; transform: rotate(.6deg); }
.produit-tournois .trn-code h2 { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: 1.5rem; margin: 0 0 1.1rem; }
.produit-tournois .trn-regles { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .8rem; }
.produit-tournois .trn-regles li { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: 1.18rem; line-height: 1.35; display: flex; gap: .6rem; align-items: baseline; }
.produit-tournois .trn-regles .tr-num { color: var(--green, #1C7A53); flex-shrink: 0; }
.produit-tournois .trn-code-cloture { margin: 1.2rem 0 0; font-size: 1rem; line-height: 1.55; color: var(--ink-warm-soft, #5C5346); }
.produit-tournois .trn-code-signature { margin: 1rem 0 0; text-align: right; font-weight: 700; font-size: .85rem; letter-spacing: .04em; color: var(--ink-warm-soft, #5C5346); }

/* 7. Le registre */
.produit-tournois .trn-registre-sous { font-size: 1.02rem; color: var(--ink-warm-soft, #5C5346); margin: .8rem 0 1.1rem; }
.produit-tournois .trn-registre { border-top: 2px solid var(--line-warm, #DFD5C1); }
.produit-tournois .trn-ligne { display: flex; align-items: center; gap: 1rem; text-decoration: none; color: inherit; padding: .9rem .4rem; border-bottom: 2px solid var(--line-warm, #DFD5C1); }
.produit-tournois .trn-ligne:hover { background: var(--paper-warm, #F2ECE0); }
.produit-tournois .trn-feuillet-mini { flex: 0 0 auto; display: inline-flex; flex-direction: column; align-items: center; text-align: center; border: 2px solid var(--ink-warm, #241F17); border-radius: 6px; background: var(--rouge-soft, #F3E0D4); padding: .18rem .5rem; min-width: 42px; }
.produit-tournois .trn-feuillet-mini.vert { background: var(--green-tint, #E2ECE4); } .produit-tournois .trn-feuillet-mini.jaune { background: var(--jaune-soft, #F6E7C4); } .produit-tournois .trn-feuillet-mini.neutre { background: var(--neutre, #EAE2D0); }
.produit-tournois .trn-feuillet-mini .fm-j { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-size: 1.15rem; line-height: 1; }
.produit-tournois .trn-feuillet-mini .fm-m { font-size: .58rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.produit-tournois .trn-ligne-titre { flex: 1 1 auto; font-weight: 600; min-width: 0; }
.produit-tournois .trn-ligne-n { flex: 0 0 auto; font-size: .88rem; color: var(--ink-warm-soft, #5C5346); }
.produit-tournois .trn-ligne-fleche { flex: 0 0 auto; font-weight: 700; color: var(--green, #1C7A53); }

/* 8. L'aiguillage */
.produit-tournois .trn-fourche { display: block; width: 120px; height: auto; margin: 0 auto -2px; }
.produit-tournois .trn-voies { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.2rem, 3vw, 2rem); }
@media (max-width: 760px) { .produit-tournois .trn-voies { grid-template-columns: 1fr; } .produit-tournois .trn-fourche { display: none; } }
.produit-tournois .trn-voie { background: var(--white-warm, #FFFDF8); border: 2.5px solid var(--ink-warm, #241F17); border-radius: var(--r-warm, 16px); box-shadow: var(--hard, 4px 4px 0 #241F17); padding: 1.4rem 1.5rem 1.6rem; }
.produit-tournois .trn-voie.ici { background: var(--green-tint, #E2ECE4); }
.produit-tournois .trn-voie h3 { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: 1.35rem; margin: .7rem 0 .6rem; }
.produit-tournois .trn-voie p { margin: 0 0 1rem; color: var(--ink-warm-soft, #5C5346); line-height: 1.55; }
.produit-tournois .trn-voie.ici p { margin-bottom: 0; }

/* 9. CTA final */
.produit-tournois .trn-cta { margin-top: clamp(2.4rem, 5.5vw, 3.6rem); background: var(--green-tint, #E2ECE4); border: 2.5px solid var(--ink-warm, #241F17); border-radius: var(--r-warm, 16px); box-shadow: var(--hard, 4px 4px 0 #241F17); padding: clamp(1.6rem, 4vw, 2.4rem); text-align: center; }
.produit-tournois .trn-cta h2 { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: clamp(1.4rem, 3.4vw, 2rem); margin: 0 0 1.3rem; }
.produit-tournois .trn-cta-btns { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }

@media (prefers-reduced-motion: reduce) {
  .produit-tournois *, .produit-tournois *::before, .produit-tournois *::after { transition: none !important; }
}

/* ========================================================
   Page d'univers /camps (refonte). Métaphore : la semaine.
   Scopé .produit-camps. Hérite .act-page. AUCUN composant
   du club (échelle/billets/diagonale) ni des tournois
   (affiches/registre/aiguillage).
   ======================================================== */
.produit-camps .cmp-wrap { max-width: 1000px; margin: 0 auto; padding: clamp(2rem, 5vw, 3.2rem) clamp(18px, 5vw, 28px) clamp(3rem, 6vw, 4.5rem); }
.produit-camps .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Tags + boutons */
.produit-camps .cmp-tag { display: inline-block; font-weight: 700; font-size: .78rem; letter-spacing: .09em; text-transform: uppercase; border: 2px solid var(--ink-warm, #241F17); border-radius: 999px; padding: .32em 1em; box-shadow: var(--hard-sm, 3px 3px 0 #241F17); background: var(--green-tint, #E2ECE4); transform: rotate(-1.5deg); }
.produit-camps .cmp-tag.jaune { background: var(--jaune-soft, #F6E7C4); }
.produit-camps .btn-cmp { display: inline-flex; align-items: center; gap: .5em; font-weight: 700; font-size: 1rem; text-decoration: none; padding: .8em 1.4em; border-radius: 12px; border: 2.5px solid var(--ink-warm, #241F17); box-shadow: var(--hard-sm, 3px 3px 0 #241F17); transition: transform .16s ease, box-shadow .16s ease, background .16s ease; }
.produit-camps .btn-cmp.btn-vert { background: var(--green, #1C7A53); color: var(--white-warm, #FFFDF8); }
.produit-camps .btn-cmp.btn-vert:hover { background: var(--green-dark, #12523A); }
.produit-camps .btn-cmp.btn-blanc { background: var(--white-warm, #FFFDF8); color: var(--ink-warm, #241F17); }
.produit-camps .btn-cmp.btn-blanc:hover { transform: translate(1px, 1px); box-shadow: 1px 1px 0 var(--ink-warm, #241F17); }
.produit-camps a:focus-visible { outline: 3px solid var(--rouge, #C25438); outline-offset: 3px; }

/* 1. Hero bandeau */
.produit-camps .cmp-hero { position: relative; padding: clamp(1.2rem, 3vw, 2rem) 0 clamp(1.4rem, 3vw, 2.2rem); }
.produit-camps .cmp-hero-txt { max-width: 620px; }
.produit-camps .cmp-hero h1 { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: clamp(2rem, 5vw, 3rem); line-height: 1.08; letter-spacing: -.01em; margin: .8rem 0 .9rem; }
.produit-camps .cmp-sous { font-size: 1.06rem; line-height: 1.6; color: var(--ink-warm-soft, #5C5346); margin: 0 0 1.4rem; }
.produit-camps .cmp-soleil { position: absolute; right: 6px; top: 50%; width: 130px; height: auto; transform: translateY(-50%) rotate(-4deg); }
@media (max-width: 768px) { .produit-camps .cmp-soleil { display: none; } }

/* 2. Le diptyque */
.produit-camps .cmp-section { margin-top: clamp(2.4rem, 5.5vw, 3.6rem); }
.produit-camps .cmp-diptyque { display: grid; grid-template-columns: 1fr auto 1fr; border: 2.5px solid var(--ink-warm, #241F17); border-radius: var(--r-warm, 16px); box-shadow: var(--hard, 4px 4px 0 #241F17); overflow: hidden; }
.produit-camps .dip-moitie { padding: clamp(1.4rem, 3.5vw, 2.2rem); }
.produit-camps .dip-moitie.matin { background: var(--green-tint, #E2ECE4); }
.produit-camps .dip-moitie.aprem { background: var(--jaune-soft, #F6E7C4); }
.produit-camps .dip-moitie h3 { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: clamp(1.4rem, 3.2vw, 1.9rem); margin: 0 0 .7rem; }
.produit-camps .dip-moitie p { margin: 0; line-height: 1.6; color: var(--ink-warm, #241F17); }
.produit-camps .dip-charniere { position: relative; width: 8px; background: var(--paper-warm, #F2ECE0); border-left: 2px solid var(--ink-warm, #241F17); border-right: 2px solid var(--ink-warm, #241F17); }
.produit-camps .dip-charniere .gond { position: absolute; left: 50%; transform: translateX(-50%); width: 14px; height: 14px; border-radius: 50%; background: var(--white-warm, #FFFDF8); border: 2.5px solid var(--ink-warm, #241F17); }
.produit-camps .dip-charniere .gond:first-child { top: 22%; } .produit-camps .dip-charniere .gond:last-child { bottom: 22%; }
.produit-camps .dip-midi { display: flex; justify-content: center; margin-top: -1px; }
.produit-camps .dip-midi p { margin: 1rem 0 0; background: var(--white-warm, #FFFDF8); border: 2px solid var(--ink-warm, #241F17); border-radius: 999px; box-shadow: var(--hard-sm, 3px 3px 0 #241F17); padding: .6rem 1.3rem; font-size: .95rem; font-weight: 600; transform: rotate(-1.2deg); text-align: center; }
@media (max-width: 720px) {
  .produit-camps .cmp-diptyque { grid-template-columns: 1fr; }
  .produit-camps .dip-charniere { width: auto; height: 8px; border: 0; border-top: 2px solid var(--ink-warm, #241F17); border-bottom: 2px solid var(--ink-warm, #241F17); }
  .produit-camps .dip-charniere .gond { display: none; }
}

/* 3. Les semaines au calendrier */
.produit-camps .cmp-semaines { display: flex; flex-direction: column; gap: 1.2rem; margin-top: 1.2rem; }
.produit-camps .carte-semaine { display: flex; gap: clamp(1rem, 3vw, 1.6rem); align-items: center; text-decoration: none; color: inherit; background: var(--white-warm, #FFFDF8); border: 2.5px solid var(--ink-warm, #241F17); border-radius: var(--r-warm, 16px); box-shadow: var(--hard, 4px 4px 0 #241F17); padding: clamp(1.1rem, 3vw, 1.5rem); transition: transform .16s ease, box-shadow .16s ease; }
.produit-camps .carte-semaine:nth-child(odd) { transform: rotate(-.6deg); }
.produit-camps .carte-semaine:nth-child(even) { transform: rotate(.6deg); }
.produit-camps .carte-semaine:hover { transform: rotate(0) translateY(-2px); box-shadow: 6px 6px 0 var(--ink-warm, #241F17); }
.produit-camps .semaine-reglette { flex: 0 0 auto; display: inline-flex; border: 2px solid var(--ink-warm, #241F17); border-radius: 8px; overflow: hidden; }
.produit-camps .jour-case { width: clamp(30px, 6vw, 38px); height: clamp(30px, 6vw, 38px); display: grid; place-items: center; font-weight: 700; font-size: .82rem; border-right: 2px solid var(--ink-warm, #241F17); background: var(--white-warm, #FFFDF8); }
.produit-camps .jour-case:last-child { border-right: 0; }
.produit-camps .jour-case:nth-child(even) { background: var(--green-tint, #E2ECE4); }
.produit-camps .semaine-reglette.fantome { border-style: dashed; border-color: var(--ink-warm-soft, #5C5346); }
.produit-camps .semaine-reglette.fantome .jour-case { border-right-style: dashed; border-right-color: var(--ink-warm-soft, #5C5346); background: var(--white-warm, #FFFDF8); }
.produit-camps .semaine-info { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.produit-camps .semaine-titre { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: clamp(1.25rem, 3vw, 1.6rem); line-height: 1.1; }
.produit-camps .semaine-plage { font-weight: 600; color: var(--ink-warm, #241F17); font-size: .95rem; }
.produit-camps .semaine-lieu { font-size: .9rem; color: var(--ink-warm-soft, #5C5346); }
.produit-camps .semaine-bas { display: flex; align-items: center; gap: .7rem; margin-top: .2rem; flex-wrap: wrap; }
.produit-camps .semaine-prix { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-size: 1.15rem; color: var(--green, #1C7A53); }
@media (max-width: 560px) { .produit-camps .carte-semaine { flex-direction: column; align-items: flex-start; } }

/* Semaine fantôme */
.produit-camps .semaine-fantome { margin-top: 1.2rem; border: 2.5px dashed var(--ink-warm-soft, #5C5346); border-radius: var(--r-warm, 16px); background: var(--white-warm, #FFFDF8); padding: clamp(1.4rem, 3.5vw, 2rem); display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; }
.produit-camps .sf-txt { margin: 0; font-size: 1.02rem; line-height: 1.55; color: var(--ink-warm-soft, #5C5346); max-width: 52ch; }

/* 4. L'encadrement */
.produit-camps .cmp-encadrement { margin-top: 1.2rem; display: flex; flex-direction: column; gap: 1rem; max-width: 720px; }
.produit-camps .cmp-encadrement p { margin: 0; font-size: 1.02rem; line-height: 1.6; color: var(--ink-warm-soft, #5C5346); padding-left: 1.1rem; border-left: 3px solid var(--green, #1C7A53); }
.produit-camps .cmp-encadrement strong { color: var(--ink-warm, #241F17); }

/* 5. CTA final */
.produit-camps .cmp-cta { margin-top: clamp(2.4rem, 5.5vw, 3.6rem); background: var(--green-tint, #E2ECE4); border: 2.5px solid var(--ink-warm, #241F17); border-radius: var(--r-warm, 16px); box-shadow: var(--hard, 4px 4px 0 #241F17); padding: clamp(1.6rem, 4vw, 2.4rem); text-align: center; }
.produit-camps .cmp-cta h2 { font-family: var(--font-serif-v5, 'Young Serif', Georgia, serif); font-weight: 400; font-size: clamp(1.4rem, 3.4vw, 2rem); margin: 0 0 1.3rem; }
.produit-camps .cmp-cta-btns { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }

@media (prefers-reduced-motion: reduce) {
  .produit-camps *, .produit-camps *::before, .produit-camps *::after { transition: none !important; }
}
