
/* __DESIGN_SITE__ */
/* socle filtres (ajouté par design_site.py) */
html:not(#_) .ds-hide{ display: none !important; }
html:not(#_) body[data-ds-filtres="aucun"] .filters{ display: none !important; }
html:not(#_) body[data-ds-filtres="sans-genre"] .filters .filter-btn[data-filter="type"]{ display: none !important; }
html:not(#_) body[data-ds-filtres="sans-age"] .filters .filter-btn[data-filter="age"]{ display: none !important; }
html:not(#_) body[data-ds-filtres="ligne"] .filters{ display: flex !important; flex-wrap: nowrap !important; overflow-x: auto; gap: 8px; scrollbar-width: none; -webkit-overflow-scrolling: touch; padding-bottom: 4px; }
html:not(#_) body[data-ds-filtres="ligne"] .filters::-webkit-scrollbar{ display: none; }
html:not(#_) body[data-ds-filtres="ligne"] .filters .filter-btn{ flex: 0 0 auto; white-space: nowrap; }
html:not(#_) .filters select.ds-fsel{ appearance: none; -webkit-appearance: none; font: inherit; cursor: pointer; padding-right: 2.1em; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='currentColor' stroke-width='2'/></svg>"); background-repeat: no-repeat; background-position: right .7em center; background-size: 12px 8px; }
html:not(#_) .filters .ds-fgroup{ display: contents; }
/* Next : barre React (div.shadow-sm > div.scrollbar-hide > .form-group > select ×2 + bouton Recherche) */
html:not(#_) body[data-ds-filtres="aucun"] div.rounded-lg.shadow-sm:has(> div.scrollbar-hide > div.form-group > select){ display: none !important; }
html:not(#_) body[data-ds-filtres="sans-genre"] div.scrollbar-hide > div.form-group:first-child:has(> select){ display: none !important; }
html:not(#_) body[data-ds-filtres="sans-tri"] div.scrollbar-hide > div.form-group:nth-child(2):has(> select){ display: none !important; }
html:not(#_) body[data-ds-filtres="sans-recherche"] div.scrollbar-hide > div.relative.flex-shrink-0:has(> button){ display: none !important; }
/* Next `chips` : pastilles d'âge construites par design_filtres.js (le select natif est caché) */
html:not(#_) .ds-fnext{ display: flex; gap: 8px; flex-wrap: nowrap; }
html:not(#_) .ds-fnext .ds-fchip{ flex: 0 0 auto; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--secondary-color, #999); background: transparent; color: inherit; font: inherit; font-size: .85rem; cursor: pointer; white-space: nowrap; }
html:not(#_) .ds-fnext .ds-fchip.active{ background: var(--secondary-color, #18181b); color: #fff; border-color: transparent; }

/* socle menu mobile Astro (ajouté par design_site.py) */
/* 19/09 : la croix du tiroir (label x injecte dans .sidebar-inner) n'etait cachee QUE sous 768 px -> visible en haut
   de la sidebar desktop (3 agents du lot 22 l'ont masquee a la main). Cachee hors tiroir, toutes largeurs. */
html:not(#_) .ds-menu-close{ display: none; }
@media (max-width: 768px) {
  html:not(#_) .ds-burger{ display: flex; flex-direction: column; justify-content: center; gap: 4px; width: 40px; height: 34px; padding: 0 9px; margin-right: 8px; cursor: pointer; border-radius: 8px; color: inherit; flex-shrink: 0; }
  html:not(#_) .ds-burger span{ display: block; height: 2px; border-radius: 2px; background: currentColor; transition: transform .2s, opacity .2s; }
  html:not(#_) body:has(#ds-menu:checked) .ds-burger span:nth-child(1){ transform: translateY(6px) rotate(45deg); }
  html:not(#_) body:has(#ds-menu:checked) .ds-burger span:nth-child(2){ opacity: 0; }
  html:not(#_) body:has(#ds-menu:checked) .ds-burger span:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }
  html:not(#_) .ds-menu-overlay{ display: none; position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 1290; }
  html:not(#_) body:has(#ds-menu:checked) .ds-menu-overlay{ display: block; }
  html:not(#_) .ds-menu-close{ display: none; }
  html:not(#_) body:has(#ds-menu:checked) aside.sidebar{ display: block !important; position: fixed !important; top: 0 !important; left: 0; bottom: 0; height: auto !important; width: min(86vw, 340px) !important; max-width: none; margin: 0 !important; padding: 12px; padding-top: calc(12px + env(safe-area-inset-top, 0px)); z-index: 1300; overflow-y: auto !important; max-height: 100vh; max-height: 100dvh; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; border-radius: 0; box-shadow: 8px 0 30px rgba(0,0,0,.35); }
  html:not(#_) body:has(#ds-menu:checked) .ds-menu-close{ display: flex; align-items: center; justify-content: center; position: absolute; top: 10px; right: 10px; width: 36px; height: 36px; border-radius: 50%; font-size: 26px; line-height: 1; cursor: pointer; z-index: 2; }
  html:not(#_) body:has(#ds-menu:checked) aside.sidebar .sidebar-inner{ height: auto; min-height: 100%; }
  html:not(#_) body:has(#ds-menu:checked){ overflow: hidden; }
}
@media (prefers-reduced-motion: reduce) { html:not(#_) .ds-burger span{ transition: none; } }

/* baise-gratuite.be — « ticket de fête foraine » (15/11/2026). Groseille du favicon (#e11d48, #be123c pour le texte)
   sur crème et sable, encre brun-groseille. Formes : ticket perforé (encoches + découpe pointillée), guirlande
   d'ampoules, numéros en chasse fixe. */

html:not(#_):root{
  --bg-acc: #e11d48; --bg-accd: #be123c; --bg-accl: #fde4e9; --bg-acc2: #f9c5cf;
  --bg-creme: #fbf4e8; --bg-carte: #fffaf2; --bg-sable: #f4e6cf; --bg-sabled: #e6d2b2;
  --bg-encre: #2a1418; --bg-encrem: #6a5257; --bg-texte: #4a3438;
  --bgs: #fbf4e8;
  --bg: #fbf4e8; --bg-alt: #f4e6cf; --bg-card: #fffaf2; --text: #2a1418; --text-muted: #6a5257; --border: #e6d2b2;
  --card-radius: 16px; --card-border-c: #e6d2b2;
  --bg-slab: Rockwell, "Rockwell Nova", "Roboto Slab", "Zilla Slab", "Clarendon", Georgia, serif;
  --bg-mono: ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, monospace;
  --bg-grad: linear-gradient(160deg, #e11d48, #be123c);
  --bg-perfo-h: repeating-linear-gradient(90deg, #d9bf98 0 7px, transparent 7px 12px);
  --bg-guirlande: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='80' height='34' viewBox='0 0 80 34'><path d='M0 4Q40 22 80 4' fill='none' stroke='%232a1418' stroke-width='1.3'/><rect x='15' y='8' width='5' height='4' rx='1' fill='%232a1418'/><ellipse cx='17.5' cy='17' rx='4.6' ry='6' fill='%23fff4dc' stroke='%23be123c' stroke-width='1.2'/><rect x='37' y='11' width='6' height='5' rx='1' fill='%232a1418'/><ellipse cx='40' cy='23' rx='5.6' ry='7.4' fill='%23e11d48'/><ellipse cx='38' cy='20' rx='1.6' ry='2.6' fill='%23fff' opacity='.55'/><rect x='60' y='8' width='5' height='4' rx='1' fill='%232a1418'/><ellipse cx='62.5' cy='17' rx='4.6' ry='6' fill='%23fff4dc' stroke='%23be123c' stroke-width='1.2'/></svg>");
  --bg-lueur: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='80' height='34' viewBox='0 0 80 34'><defs><radialGradient id='g'><stop offset='0' stop-color='%23ffd9a8' stop-opacity='.9'/><stop offset='1' stop-color='%23ffd9a8' stop-opacity='0'/></radialGradient></defs><circle cx='17.5' cy='17' r='11' fill='url(%23g)'/><circle cx='62.5' cy='17' r='11' fill='url(%23g)'/></svg>");
}
html:not(#_) body, html:not(#_) [style*="--secondary"]{ --secondary: #be123c !important; }
html:not(#_) body, html:not(#_) [style*="--primary"]{ --primary: #e11d48 !important; }
html:not(#_) body{ background: var(--bg-creme); color: var(--bg-encre); }

/* -- sidebar : logo en ticket d'entrée, liens en souches */
html:not(#_) .sidebar-inner{
  --bgs: #fffaf2; background: var(--bg-carte); border: 1px solid var(--bg-sabled); border-radius: 20px; padding: 14px 12px 16px;
  box-shadow: 0 14px 30px rgba(190, 18, 60, .07), 0 2px 6px rgba(42, 20, 24, .05);
}
html:not(#_) .sb-logo{
  position: relative; gap: 0; margin: 0 0 16px; padding: 14px 12px 14px 0; border-radius: 10px; flex-shrink: 0;
  background: radial-gradient(90% 120% at 85% 0, rgba(255, 255, 255, .22), transparent 60%), var(--bg-grad);
  box-shadow: inset 0 0 0 4px rgba(255, 255, 255, 0), inset 0 0 0 5px rgba(255, 255, 255, .45), 0 10px 20px rgba(190, 18, 60, .28);
}
html:not(#_) .sb-logo::before, html:not(#_) .sb-logo::after{
  content: ""; position: absolute; left: 33px; width: 14px; height: 14px; border-radius: 50%; background: var(--bgs);
}
html:not(#_) .sb-logo::before{ top: -7px; }
html:not(#_) .sb-logo::after{ bottom: -7px; }
html:not(#_) .sb-logo-dot{
  width: 40px; height: 34px; border-radius: 0; background: transparent; border-right: 2px dashed rgba(255, 255, 255, .7); margin-right: 10px;
}
html:not(#_) .sb-logo-dot svg{ color: #fff; width: 22px; height: 22px; }
html:not(#_) .sb-logo-text{ white-space: normal; line-height: 1.15; color: #fff; font-family: var(--bg-slab); font-weight: 700; font-size: 1rem; letter-spacing: .02em; text-shadow: 0 1px 0 rgba(120, 10, 35, .35); }

html:not(#_) .sb-nav{ gap: 6px; }
html:not(#_) .sb-link{
  position: relative; box-sizing: border-box; color: var(--bg-texte); font-size: .87rem; font-weight: 600; min-height: 40px; padding: 6px 14px 6px 10px; border-radius: 6px;
  background: radial-gradient(circle at 0 50%, var(--bgs) 5px, transparent 5.5px), radial-gradient(circle at 100% 50%, var(--bgs) 5px, transparent 5.5px), var(--bg-sable);
  transition: transform .18s ease, background-color .18s;
}
html:not(#_) .sb-link .sb-ico{ width: 30px; height: 26px; padding-right: 8px; margin-left: 2px; border-right: 1.5px dashed #cdb08a; color: var(--bg-accd); flex-shrink: 0; }
html:not(#_) .sb-link:hover{
  color: var(--bg-encre); transform: translateX(3px);
  background: radial-gradient(circle at 0 50%, var(--bgs) 5px, transparent 5.5px), radial-gradient(circle at 100% 50%, var(--bgs) 5px, transparent 5.5px), #f0dcbc;
}
html:not(#_) .sb-link.active{
  color: #fff;
  background: radial-gradient(circle at 0 50%, var(--bgs) 5px, transparent 5.5px), radial-gradient(circle at 100% 50%, var(--bgs) 5px, transparent 5.5px), var(--bg-grad);
  box-shadow: 0 6px 14px rgba(190, 18, 60, .22);
}
html:not(#_) .sb-link.active .sb-ico{ color: #fff; border-right-color: rgba(255, 255, 255, .7); }
html:not(#_) .sb-section{ border-top: 2px dashed var(--bg-sabled); padding-top: 12px; margin-top: 12px; }
html:not(#_) .sb-section-title{ color: var(--bg-encrem); letter-spacing: .12em; font-size: .7rem; gap: 9px; align-items: center; }
html:not(#_) .sb-section-title::before{
  content: ""; flex: 0 0 9px; width: 9px; height: 11px; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  background: var(--bg-acc); box-shadow: 0 0 0 3px rgba(255, 217, 168, .55), 0 0 10px rgba(225, 29, 72, .45);
}
html:not(#_) .sb-map-quick-link{ color: var(--bg-accd); font-weight: 600; border-radius: 8px; }
html:not(#_) .sb-map-quick-link:hover{ background: var(--bg-accl); }
html:not(#_) .sb-silo-region, html:not(#_) .sb-top-item{ color: var(--bg-texte); border-radius: 6px; border-bottom: 1.5px dashed var(--bg-sable); }
html:not(#_) .sb-silo-region:hover, html:not(#_) .sb-top-item:hover, html:not(#_) .sb-silo-ville:hover{ background: var(--bg-accl); color: var(--bg-accd); }
html:not(#_) .sb-silo-ville{ color: var(--bg-encrem); border-radius: 6px; }
html:not(#_) .sb-silo-villes{ border-left: 2px dashed var(--bg-acc2); margin-left: 12px; padding-left: 6px; }
html:not(#_) .sb-silo-more{ color: var(--bg-accd); font-weight: 600; }
html:not(#_) .sb-top-item .sb-ico, html:not(#_) .sb-chevron{ color: var(--bg-accd); }

/* -- barre haute mobile : crème, ligne de découpe, bouton en pilule */
@media (max-width: 768px) {
  html:not(#_) .mobile-guest-top{
    background: var(--bg-perfo-h) left 0 bottom 3px / 100% 2px no-repeat, var(--bg-carte);
    color: var(--bg-encre); box-shadow: 0 8px 22px rgba(190, 18, 60, .13); padding-bottom: 6px;
  }
  html:not(#_) .mobile-guest-head{ border-bottom: 1.5px dashed var(--bg-sabled); }
  html:not(#_) .mobile-guest-brand{ color: var(--bg-accd) !important; font-family: var(--bg-slab); font-weight: 700; font-size: 1.06rem; }
  html:not(#_) .mobile-guest-login{ color: var(--bg-encre) !important; font-weight: 700; font-size: .82rem; }
  html:not(#_) .mobile-guest-cta-offer, html:not(#_) .mobile-guest-timer-label{ color: var(--bg-encrem); }
  html:not(#_) .mobile-guest-cta-kw{ color: var(--bg-encre); font-family: var(--bg-slab); font-weight: 700; }
  html:not(#_) #mobileGuestTimer{ color: var(--bg-accd); font-family: var(--bg-mono); background: var(--bg-accl); border-radius: 4px; padding: 2px 6px; }
  html:not(#_) .mobile-guest-cta-btn{
    background: var(--bg-grad); color: #fff !important; border-radius: 999px; min-height: 44px; display: flex; align-items: center; justify-content: center;
    box-sizing: border-box; font-size: .95rem; box-shadow: 0 8px 18px rgba(190, 18, 60, .3), inset 0 1px 0 rgba(255, 255, 255, .25);
  }
  html:not(#_) body.has-mobile-guest-top{ padding-top: calc(164px + env(safe-area-inset-top, 0px)); }
  html:not(#_) .ds-burger{ color: var(--bg-encre); background: var(--bg-sable); border-radius: 6px; width: 38px; height: 36px; padding: 0 10px; box-sizing: border-box; }
  html:not(#_) .ds-menu-overlay{ background: rgba(42, 20, 24, .5); }
  html:not(#_) body:has(#ds-menu:checked) aside.sidebar{ background: var(--bg-sable); }
  html:not(#_) .ds-menu-close{ background: var(--bg-carte); color: var(--bg-accd); border: 2px dashed var(--bg-acc2); box-sizing: border-box; }
  html:not(#_) aside.sidebar .sidebar-inner{ box-sizing: border-box; }
  html:not(#_) aside.sidebar .sb-logo{ margin-right: 46px; }
  html:not(#_) aside.sidebar .sb-link, html:not(#_) aside.sidebar .sb-silo-region, html:not(#_) aside.sidebar .sb-top-item{ min-height: 44px; font-size: .95rem; box-sizing: border-box; }
  html:not(#_) aside.sidebar .sb-silo-ville{ padding: 9px 10px; font-size: .9rem; }
}

/* -- barre basse mobile : ligne de découpe en haut */
html:not(#_) .bottom-bar{ background: var(--bg-perfo-h) left 0 top 0 / 100% 2px no-repeat, var(--bg-carte); border-top: 0; box-shadow: 0 -8px 20px rgba(190, 18, 60, .09); }
html:not(#_) .bottom-bar .btab{ color: var(--bg-encrem); }
html:not(#_) .bottom-bar .btab .btab-lbl{ color: inherit; }
html:not(#_) .bottom-bar .btab.active, html:not(#_) .bottom-bar .btab:hover{ color: var(--bg-accd); }
html:not(#_) .bottom-bar .btab.active .btab-ico{ background: var(--bg-accl); border-radius: 6px; box-shadow: 0 0 0 4px var(--bg-accl); }

/* -- footer : guirlande d'ampoules au-dessus de trois tickets */
html:not(#_) .footer-v3{
  --bgs: #f4e6cf; position: relative; margin-top: 4rem; padding: 46px 0 0; color: var(--bg-encre);
  background: var(--bg-guirlande) left 0 top 0 / 80px 34px repeat-x, var(--bg-sable);
  box-shadow: inset 0 1px 0 var(--bg-sabled);
}
html:not(#_) .footer-v3::before{
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 34px; pointer-events: none;
  background: var(--bg-lueur) left 0 top 0 / 80px 34px repeat-x; animation: bg-scintille 3.2s ease-in-out infinite;
}
@keyframes bg-scintille { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }
html:not(#_) .footer-v3 .footer-inner{ max-width: 1180px; margin: 0 auto; padding: 0 1.5rem; box-sizing: border-box; }
html:not(#_) .footer-v3 .footer-top{ border-bottom: 2px dashed var(--bg-sabled); padding: 1.6rem 0 1.8rem; gap: 1.2rem; }
html:not(#_) .footer-v3 .footer-brand h3{ color: var(--bg-accd); font-family: var(--bg-slab); font-weight: 700; font-size: 1.6rem; margin: 0 0 .2rem; }
html:not(#_) .footer-v3 .footer-brand p, html:not(#_) .footer-v3 .footer-newsletter p{ color: var(--bg-encrem); margin: 0; }
html:not(#_) .footer-v3 .footer-newsletter{ display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
html:not(#_) .footer-v3 .footer-newsletter .btn{
  border-radius: 999px; min-height: 44px; padding: 10px 30px; display: inline-flex; align-items: center; box-sizing: border-box;
  background: var(--bg-grad); color: #fff; box-shadow: 0 8px 18px rgba(190, 18, 60, .28);
}
html:not(#_) .footer-v3 .footer-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; padding: 2rem 0; margin: 0; }
html:not(#_) .footer-v3 .footer-col{ position: relative; overflow: hidden; background: var(--bg-carte); border-radius: 12px; padding: 0 18px 16px; box-shadow: 0 8px 20px rgba(190, 18, 60, .07); min-width: 0; }
html:not(#_) .footer-v3 .footer-col::before, html:not(#_) .footer-v3 .footer-col::after{ content: ""; position: absolute; top: 37px; width: 16px; height: 16px; border-radius: 50%; background: var(--bgs); }
html:not(#_) .footer-v3 .footer-col::before{ left: -8px; }
html:not(#_) .footer-v3 .footer-col::after{ right: -8px; }
html:not(#_) .footer-v3 .footer-col h4{
  color: var(--bg-encre); font-family: var(--bg-slab); font-size: 1rem; font-weight: 700; text-transform: none; letter-spacing: 0;
  margin: 0 -18px 12px; padding: 14px 18px 0; height: 45px; box-sizing: border-box; border-bottom: 2px dashed var(--bg-sabled); display: flex; align-items: flex-start; gap: 8px;
}
html:not(#_) .footer-v3 .footer-col h4::before{ content: ""; flex: 0 0 9px; height: 11px; margin-top: 5px; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; background: var(--bg-acc); box-shadow: 0 0 8px rgba(225, 29, 72, .45); }
html:not(#_) .footer-v3 .footer-col ul{ padding: 0; margin: 0; list-style: none; }
html:not(#_) .footer-v3 .footer-col a, html:not(#_) .footer-v3 .footer-col p{ color: var(--bg-texte); font-size: .88rem; text-decoration: none; }
html:not(#_) .footer-v3 .footer-col a:hover{ color: var(--bg-accd); text-decoration: underline; text-underline-offset: 3px; }
html:not(#_) .footer-v3 .footer-col:nth-child(1){ order: 1; }
html:not(#_) .footer-v3 .footer-col:nth-child(3){ order: 2; }
html:not(#_) .footer-v3 .footer-col:nth-child(4){ order: 3; }
html:not(#_) .footer-v3 .footer-col:nth-child(2){ order: 4; grid-column: 1 / span 2; }
html:not(#_) .footer-v3 .footer-col:nth-child(5){ order: 5; }
html:not(#_) .footer-v3 .footer-col:nth-child(2) ul{ display: flex; flex-wrap: wrap; gap: 4px 18px; }
html:not(#_) .footer-v3 .footer-col:nth-child(2) li{ margin: 0; }
html:not(#_) .footer-v3 .footer-bottom.footer-bottom{ border-top: 2px dashed var(--bg-sabled); padding: 1.1rem 0 1.5rem; }
html:not(#_) .footer-v3 .footer-bottom.footer-bottom p, html:not(#_) .footer-v3 .footer-bottom.footer-bottom a{ color: var(--bg-encrem); }
@media (max-width: 768px) {
  html:not(#_) .footer-v3{ margin-top: 3rem; padding-bottom: 66px; }
  html:not(#_) .footer-v3 .footer-inner{ padding: 0 16px; }
  html:not(#_) .footer-v3 .footer-top{ flex-direction: column; align-items: flex-start; }
  html:not(#_) .footer-v3 .footer-grid{ grid-template-columns: minmax(0, 1fr); gap: 16px; }
  html:not(#_) .footer-v3 .footer-col:nth-child(2){ grid-column: auto; }
  html:not(#_) .footer-v3 .footer-col:nth-child(1) ul, html:not(#_) .footer-v3 .footer-col:nth-child(3) ul{ columns: 2; column-gap: 16px; }
  html:not(#_) .page-header{ padding-top: .75rem; }
  html:not(#_) .footer-v3 .footer-col a{ overflow-wrap: anywhere; }
}

/* -- pages : crème, cartes à découpe, titres calmes */
html:not(#_) .section{ --bgs: #fffaf2; background: var(--bg-carte); border: 1px solid var(--bg-sabled); border-radius: 20px; box-shadow: 0 14px 30px rgba(190, 18, 60, .05); }
html:not(#_) .section > h2, html:not(#_) .section-header h2, html:not(#_) .info-duo-title, html:not(#_) .map-section-head h2{ font-family: var(--bg-slab); font-weight: 700; color: var(--bg-encre); letter-spacing: .005em; }
html:not(#_) .section > h2, html:not(#_) .section-header h2{ display: flex; align-items: center; gap: 12px; }
html:not(#_) .section > h2::before, html:not(#_) .section-header h2::before{
  content: ""; flex: 0 0 11px; height: 14px; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  background: var(--bg-acc); box-shadow: 0 0 0 4px rgba(255, 217, 168, .5), 0 0 12px rgba(225, 29, 72, .4);
}
html:not(#_) .page-header h1, html:not(#_) .magazine-header h1, html:not(#_) .ville-hero h1, html:not(#_) .region-hero h1, html:not(#_) main .container > h1{ font-family: var(--bg-slab); font-weight: 700; color: var(--bg-encre); letter-spacing: -.005em; }
html:not(#_) .page-header p, html:not(#_) .magazine-header p{ color: var(--bg-encrem); }
html:not(#_) .seo-text p, html:not(#_) .seo-content p, html:not(#_) .region-main > p{ color: var(--bg-texte) !important; }
html:not(#_) .section a:not(.btn):not(.link-tag):not(.pill):not(.pagination-link){ color: var(--bg-accd); }
html:not(#_) .breadcrumb, html:not(#_) .breadcrumb a, html:not(#_) .breadcrumb span{ color: var(--bg-encrem); }
html:not(#_) .breadcrumb a{ text-decoration: underline; text-decoration-style: dashed; text-decoration-color: var(--bg-acc2); text-underline-offset: 4px; }
html:not(#_) .breadcrumb a:hover{ color: var(--bg-accd) !important; }

html:not(#_) .search-input{ border-radius: 999px; border: 1.5px solid var(--bg-sabled); background: var(--bg-carte); color: var(--bg-encre); }
html:not(#_) .search-input::placeholder{ color: #75606a; }
html:not(#_) .search-input:focus{ border-color: var(--bg-acc); outline: none; box-shadow: 0 0 0 3px var(--bg-accl); }
html:not(#_) .search-submit{ border-radius: 999px; }
html:not(#_) .trust-badges .badge{
  background: radial-gradient(circle at 0 50%, var(--bgs) 6px, transparent 6.5px), radial-gradient(circle at 100% 50%, var(--bgs) 6px, transparent 6.5px), var(--bg-carte);
  border-radius: 8px; padding: .5rem 1.2rem; color: var(--bg-encre); font-weight: 700; box-shadow: 0 6px 14px rgba(190, 18, 60, .08);
}
html:not(#_) .trust-badges .badge-icon{ padding-right: 10px; margin-right: 4px; border-right: 1.5px dashed #cdb08a; }

html:not(#_) .region-hero{ background: var(--bg-sable); color: var(--bg-encre); border-bottom: 2px dashed var(--bg-sabled); }
html:not(#_) .region-hero .breadcrumb, html:not(#_) .region-hero .breadcrumb a, html:not(#_) .region-hero .breadcrumb span{ color: var(--bg-encrem) !important; }
html:not(#_) .region-sidebar{ background: var(--bg-carte); border: 1px solid var(--bg-sabled); border-radius: 18px; }
html:not(#_) .magazine-header{ border-bottom: 2px dashed var(--bg-sabled); }
html:not(#_) .map-card{ background: var(--bg-sable); border-color: var(--bg-sabled); }
html:not(#_) .map-container{ background: var(--bg-carte); }
html:not(#_) .region-tag{ background: var(--bg-accd); color: #fff; border-radius: 999px; }

html:not(#_) .btn-primary{ background: var(--bg-grad); color: #fff; border-radius: 999px; box-shadow: 0 8px 18px rgba(190, 18, 60, .24); }
html:not(#_) .btn-primary:hover{ filter: none; background: var(--bg-accd); }

/* cartes profil : ticket avec découpe entre la photo et le texte */
html:not(#_) .profile-grid{ gap: 20px; }
html:not(#_) .profile-card{ position: relative; background: var(--bg-carte); border: 1px solid var(--bg-sabled); border-radius: 16px; box-shadow: 0 10px 24px rgba(190, 18, 60, .08); }
html:not(#_) .profile-card:hover{ box-shadow: 0 18px 34px rgba(190, 18, 60, .16); }
html:not(#_) .profile-photo{ background: var(--bg-sable); }
html:not(#_) .profile-photo img{ transition: transform .6s ease; }
html:not(#_) .profile-card:hover .profile-photo.blurred img{ transform: scale(1.12); }
html:not(#_) .profile-info{ position: relative; border-top: 2px dashed var(--bg-sabled); padding-top: .8rem; }
html:not(#_) .profile-info::before, html:not(#_) .profile-info::after{ content: ""; position: absolute; top: -9px; width: 16px; height: 16px; border-radius: 50%; background: var(--bgs); box-shadow: inset 0 0 0 1px var(--bg-sabled); }
html:not(#_) .profile-info::before{ left: -9px; }
html:not(#_) .profile-info::after{ right: -9px; }
html:not(#_) .profile-age{
  top: auto; right: auto; bottom: 10px; left: 10px; border-radius: 3px; padding: .28rem .7rem;
  background: var(--bg-carte); color: var(--bg-accd); font-family: var(--bg-mono); font-weight: 700; font-size: .74rem; letter-spacing: .02em;
  -webkit-mask: radial-gradient(circle 4px at 0 50%, #0000 96%, #000) 0 0 / 51% 100% no-repeat, radial-gradient(circle 4px at 100% 50%, #0000 96%, #000) 100% 0 / 51% 100% no-repeat;
  mask: radial-gradient(circle 4px at 0 50%, #0000 96%, #000) 0 0 / 51% 100% no-repeat, radial-gradient(circle 4px at 100% 50%, #0000 96%, #000) 100% 0 / 51% 100% no-repeat;
}
html:not(#_) .profile-lock{ background: rgba(190, 18, 60, .85); }
html:not(#_) .profile-title{ color: var(--bg-accd); font-weight: 700; }
html:not(#_) .profile-name{ font-family: var(--bg-slab); font-weight: 700; color: var(--bg-encre); }
html:not(#_) .profile-ville{ color: var(--bg-encrem); }
html:not(#_) .profile-bio{ color: var(--bg-texte); }
html:not(#_) .profile-footer{ border-top: 0; padding: .3rem .6rem .8rem; }
html:not(#_) .profile-cta{
  background: transparent; border: 1.5px solid var(--bg-accd); color: var(--bg-accd); border-radius: 999px; font-weight: 700;
  min-height: 40px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; transition: background .2s, color .2s;
}
html:not(#_) .profile-card:hover .profile-cta{ background: var(--bg-accd); color: #fff; }

/* filtres, onglets */
html:not(#_) .filters{ gap: 8px; }
html:not(#_) .filters .filter-btn, html:not(#_) .tabs .tab{
  background: radial-gradient(circle at 0 50%, var(--bgs) 5px, transparent 5.5px), radial-gradient(circle at 100% 50%, var(--bgs) 5px, transparent 5.5px), var(--bg-sable);
  border: 0; color: var(--bg-encre); border-radius: 6px; min-height: 40px; padding: 6px 18px; font-weight: 600;
}
html:not(#_) .filters .filter-btn:hover, html:not(#_) .tabs .tab:hover{ color: var(--bg-accd); }
html:not(#_) .filters .filter-btn.active, html:not(#_) .tabs .tab.active{
  background: radial-gradient(circle at 0 50%, var(--bgs) 5px, transparent 5.5px), radial-gradient(circle at 100% 50%, var(--bgs) 5px, transparent 5.5px), var(--bg-grad);
  color: #fff; box-shadow: 0 6px 14px rgba(190, 18, 60, .22);
}
html:not(#_) .filters select.ds-fsel{ background-color: var(--bg-sable); color: var(--bg-encre); padding-left: 16px; }
html:not(#_) .tabs{ gap: 8px; border-bottom: 2px dashed var(--bg-sabled); padding-bottom: 10px; }
html:not(#_) .tabs .tab{ margin-bottom: 0; border-bottom: 0; }
html:not(#_) .pagination-link, html:not(#_) .pagination-current, html:not(#_) .pagination-ellipsis{ border-radius: 6px; font-family: var(--bg-mono); }
html:not(#_) .pagination-link{ background: var(--bg-sable); border: 0; color: var(--bg-encre) !important; }
html:not(#_) .pagination-link:hover{ background: var(--bg-accl); color: var(--bg-accd) !important; }
html:not(#_) .pagination-current{ background: var(--bg-grad); color: #fff; box-shadow: 0 6px 14px rgba(190, 18, 60, .25); }
html:not(#_) .pagination-ellipsis{ color: var(--bg-encrem); }

html:not(#_) .link-tag{ background: var(--bg-creme); border: 1.5px dashed var(--bg-sabled); border-radius: 8px; color: var(--bg-encre); }
html:not(#_) .link-tag:hover{ border-color: var(--bg-acc); border-style: solid; color: var(--bg-accd); background: var(--bg-carte); }
html:not(#_) .ville-pills .pill, html:not(#_) .rcs-chip{ background: var(--bg-carte); border: 1.5px dashed var(--bg-sabled); color: var(--bg-encre); border-radius: 999px; }
html:not(#_) .ville-pills .pill:hover, html:not(#_) .rcs-chip:hover{ border-color: var(--bg-acc); color: var(--bg-accd); }

/* CTA : carte de rencontre en ticket d'entrée, guirlande en tête, lueur sous le bouton */
html:not(#_) .cta-section{
  position: relative; box-sizing: border-box; width: 100%; max-width: 580px; margin-left: auto; margin-right: auto; overflow: hidden;
  background: radial-gradient(60% 50% at 50% 100%, rgba(225, 29, 72, .14), transparent 70%), var(--bg-guirlande) left 0 top 0 / 80px 34px repeat-x, var(--bg-carte);
  color: var(--bg-encre); border: 1px solid var(--bg-sabled); border-radius: 18px; padding: 58px 34px 38px;
  box-shadow: inset 0 0 0 8px var(--bg-carte), inset 0 0 0 10px var(--bg-accl), 0 18px 40px rgba(190, 18, 60, .13);
}
html:not(#_) .cta-section::before, html:not(#_) .cta-section::after{
  content: ""; position: absolute; top: 50%; width: 30px; height: 30px; margin-top: -15px; border-radius: 50%;
  background: var(--bgs); box-shadow: inset 0 0 0 1px var(--bg-sabled);
}
html:not(#_) .cta-section::before{ left: -15px; }
html:not(#_) .cta-section::after{ right: -15px; }
html:not(#_) .cta-section h2{ position: relative; color: var(--bg-encre); font-family: var(--bg-slab); font-weight: 700; }
html:not(#_) .cta-section p{ position: relative; color: var(--bg-encrem); }
html:not(#_) .cta-section a.btn.btn-primary{
  position: relative; align-self: center; min-width: 220px; max-width: 100%; box-sizing: border-box; min-height: 50px; padding: 13px 38px; font-size: 1.05rem;
  display: inline-flex; align-items: center; justify-content: center; background: var(--bg-grad); color: #fff;
  box-shadow: 0 12px 26px rgba(190, 18, 60, .34), inset 0 1px 0 rgba(255, 255, 255, .25); transition: transform .2s ease, box-shadow .2s ease;
}
html:not(#_) .cta-section a.btn.btn-primary:hover{ transform: translateY(-2px); box-shadow: 0 16px 30px rgba(190, 18, 60, .42); }

/* FAQ et carte de la ville */
html:not(#_) .info-duo-col, html:not(#_) #tab-faq .accordion{ background: var(--bg-carte); border: 1px solid var(--bg-sabled); border-radius: 18px; }
html:not(#_) #tab-faq .accordion{ padding: 6px 14px; margin-top: 16px; box-shadow: 0 10px 24px rgba(190, 18, 60, .06); }
html:not(#_) .info-duo-title{ background: var(--bg-sable); border-bottom: 2px dashed var(--bg-sabled); }
html:not(#_) .info-duo-title svg{ color: var(--bg-accd); }
html:not(#_) .accordion-item{ border-bottom: 1.5px dashed var(--bg-sabled); }
html:not(#_) .accordion-item:last-child{ border-bottom: 0; }
html:not(#_) .accordion-header{ color: var(--bg-encre); border-radius: 8px; }
html:not(#_) .accordion-header:hover{ background: var(--bg-creme); }
html:not(#_) .accordion-item[open] > .accordion-header{ color: var(--bg-accd); }
html:not(#_) .accordion-header::after{ border-color: var(--bg-accd); }
html:not(#_) .accordion-body{ color: var(--bg-texte); }
html:not(#_) .accordion-badge, html:not(#_) .ville-map-badge{ background: var(--bg-accd); color: #fff; font-family: var(--bg-mono); }
html:not(#_) .ville-map-card{ border-radius: 18px; border-color: var(--bg-sabled); background: var(--bg-carte); }
html:not(#_) .ville-map-header{ border-bottom: 2px dashed var(--bg-sabled); }
html:not(#_) .ville-map-container{ background: var(--bg-sable); }
html:not(#_) .ville-map-header h3{ font-family: var(--bg-slab); font-weight: 700; color: var(--bg-encre); }

/* retour en haut */
html:not(#_) .back-to-top{ background: var(--bg-grad); color: #fff; box-shadow: inset 0 0 0 3px var(--bg-acc), inset 0 0 0 4.5px rgba(255, 255, 255, .6), 0 10px 20px rgba(190, 18, 60, .3); }

/* pop-ups : couleurs, bordures, rayons seulement */
html:not(#_) .modal-content{ border-radius: 22px; background: var(--bg-carte); }
html:not(#_) .modal-body h3, html:not(#_) .modal-name{ font-family: var(--bg-slab); color: var(--bg-encre); }
html:not(#_) .modal-body .modal-meta{ color: var(--bg-accd); }
html:not(#_) .modal-bio{ color: var(--bg-texte); }
html:not(#_) .modal-body .modal-tag{ background: var(--bg-sable); color: var(--bg-encre); border: 1px dashed var(--bg-sabled); }
html:not(#_) .modal-actions-sticky{ background: var(--bg-carte); }
html:not(#_) .modal-action-primary{ background: var(--bg-grad); color: #fff; border-radius: 999px; }
html:not(#_) .btn-cta-overlay{ background: var(--bg-accd); color: #fff; border-radius: 999px; }
html:not(#_) .popup-card{ border-radius: 22px; background: var(--bg-carte); border: 1px solid var(--bg-sabled); box-shadow: inset 0 4px 0 var(--bg-acc), 0 24px 60px rgba(42, 20, 24, .3); }
html:not(#_) .popup-title{ font-family: var(--bg-slab); font-weight: 700; color: var(--bg-encre); }
html:not(#_) .popup-desc{ color: var(--bg-encrem); }
html:not(#_) .popup-icon, html:not(#_) .popup-icon.popup-icon-login{ background: var(--bg-accl); border: 1.5px dashed var(--bg-acc2); border-radius: 8px; }
html:not(#_) .popup-icon svg, html:not(#_) .popup-icon.popup-icon-login svg{ color: var(--bg-accd); }
html:not(#_) .popup-btn{ background: var(--bg-grad); color: #fff; border-radius: 999px; box-shadow: 0 8px 18px rgba(190, 18, 60, .25); }
html:not(#_) .popup-btn-ghost{ color: var(--bg-encrem); border-radius: 999px; }
html:not(#_) .popup-field input{ border-radius: 10px; border-color: var(--bg-sabled); background: #fff; color: var(--bg-encre); }
html:not(#_) .popup-field label{ color: var(--bg-encre); }
html:not(#_) .popup-field input::placeholder{ color: #75606a; }
html:not(#_) .popup-footer{ border-top: 1.5px dashed var(--bg-sabled); color: var(--bg-encrem); }
html:not(#_) .popup-footer a{ color: var(--bg-accd); }
html:not(#_) .popup-close{ color: var(--bg-encre); background: var(--bg-sable); }
html:not(#_) #map-belgique .map-region:not(.selected-region){ fill: #f9c5cf !important; stroke: #be123c !important; }
html:not(#_) #map-belgique .map-region:not(.selected-region):hover{ fill: #e11d48 !important; }
html:not(#_) .age-gate-modal{ background: var(--bg-carte); border-radius: 22px; border: 1px solid var(--bg-sabled); box-shadow: inset 0 0 0 7px var(--bg-carte), inset 0 0 0 8.5px var(--bg-acc2), 0 26px 60px rgba(42, 20, 24, .35); }
html:not(#_) .age-gate-modal h2{ font-family: var(--bg-slab); font-weight: 700; color: var(--bg-encre); }
html:not(#_) .age-gate-lead{ color: var(--bg-encre); }
html:not(#_) .age-gate-body, html:not(#_) .age-gate-actions{ color: var(--bg-texte); }
html:not(#_) .age-gate-footnote{ color: var(--bg-encrem); }
html:not(#_) .age-gate-link{ color: var(--bg-accd); }
html:not(#_) .age-gate-buttons .btn{ border-radius: 999px; }

@media (max-width: 640px) {
  html:not(#_) .cta-section{ padding: 54px 20px 32px; }
  html:not(#_) .cta-section::before{ left: -13px; }
  html:not(#_) .cta-section::after{ right: -13px; }
  html:not(#_) .profile-grid{ gap: 14px; }
  html:not(#_) .profile-age{ font-size: .7rem; left: 8px; bottom: 8px; }
}

/* -- recette Astro · cta-faq (copiée telle quelle) */
@media (min-width: 992px) {
  html:not(#_) body.design-v-cta-faq div.container.ds-cf{ display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; align-items: start; }
  html:not(#_) body.design-v-cta-faq div.container.ds-cf > *{ grid-column: 1 / -1; }
  html:not(#_) body.design-v-cta-faq div.container > section.cta-section, html:not(#_) body.design-v-cta-faq div.container > section.section.ds-faq{ grid-column: auto; align-self: stretch; }
  html:not(#_) body.design-v-cta-faq div.container > section.cta-section{ display: flex; flex-direction: column; justify-content: center; align-self: center; margin-top: 2.5rem; margin-bottom: 2.5rem; }
  html:not(#_) body.design-v-cta-faq div.container > section.section > .info-duo{ grid-template-columns: minmax(0, 1fr); }
}
/* recette Astro · cta-faq, page ville en ONGLETS (copiée telle quelle) */
@media (min-width: 992px) {
  html:not(#_) body.design-v-cta-faq div.container.ds-ct{ display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; align-items: start; }
  html:not(#_) body.design-v-cta-faq div.container.ds-ct > *{ grid-column: 1 / -1; }
  html:not(#_) body.design-v-cta-faq div.container > .tabs .tab[data-tab="faq"]{ display: none; }
  html:not(#_) body.design-v-cta-faq div.container > #tab-faq{ display: block; grid-column: auto; align-self: stretch; }
  html:not(#_) body.design-v-cta-faq div.container > section.cta-section{ grid-column: auto; align-self: center; margin-top: 2.5rem; margin-bottom: 2.5rem; display: flex; flex-direction: column; justify-content: center; }
}

/* -- mouvement réduit */
@media (prefers-reduced-motion: reduce) {
  html:not(#_) .footer-v3::before{ animation: none; opacity: .7; }
  html:not(#_) .sb-link, html:not(#_) .profile-card, html:not(#_) .profile-photo img, html:not(#_) .profile-cta, html:not(#_) .cta-section a.btn.btn-primary{ transition: none !important; }
  html:not(#_) .sb-link:hover, html:not(#_) .cta-section a.btn.btn-primary:hover{ transform: none; }
  html:not(#_) .profile-card:hover .profile-photo.blurred img{ transform: scale(1.06); }
}

@media (prefers-reduced-motion: reduce){html:not(#_) .sidebar-inner{animation:none !important;transition:none !important;}}
html:not(#_) .sidebar-inner{scrollbar-width:thin;scrollbar-color:rgba(128,128,128,.45) transparent;}
/* __END_DESIGN_SITE__ */
