/**
 * Civika CMS — Front CSS
 * Styles statiques extraits du layout (pas de variables PHP)
 */

/* ── Alpine.js ─────────────────────────────────────────────────── */
[x-cloak] { display: none !important; }

/* ── Fix Firefox : scale/transform sur enfants de overflow:hidden rounded ──
   Sans ça, Firefox laisse parfois déborder les coins au hover (image group-hover:scale-105).
   isolation:isolate force un nouveau stacking context qui respecte le clipping du parent.
   Appliqué aux cards home (actu-card, evt-card) + swipers + toute card avec overflow-hidden + rounded. */
.actu-card,
.evt-card,
.alaune-swiper .swiper-slide > a,
.gallery-card,
.video-card,
.yt-video-card,
.publication-card,
.salle-card {
    isolation: isolate;
}

/* ── Recherche header ──────────────────────────────────────────── */
#nav-search-input::placeholder { color: rgba(107,114,128,0.6); }
#nav-search-input.search-dark::placeholder { color: rgba(255,255,255,0.5); }

/* ── Boutons "Voir tout" sections accueil ──────────────────────── */
.voir-tout-btn { border: none; color: var(--color-primary) !important; opacity: 0.6 !important; }
.voir-tout-btn:hover { opacity: 1 !important; }

/* ── Case à cocher RGPD (même look que le widget Altcha) ────────── */
.form-consent-box {
    display: flex;
    align-items: stretch;
    gap: 0.75rem;
    padding: 0.625rem 1rem;
    margin: 0.35rem 0;
    border: 1px solid rgba(0,0,0,.12);
    border-radius: var(--card-radius, .75rem);
    cursor: pointer;
    user-select: none;
    background: #fff;
    font-size: 0.9em;
    line-height: 1.45;
    color: inherit;
}
.form-consent-box input[type="checkbox"] {
    flex-shrink: 0;
    align-self: center;
    width: 18px;
    height: 18px;
    accent-color: var(--color-primary);
    cursor: pointer;
}
.form-consent-box > span {
    flex: 1;
    /* négatifs verticaux + paddings = filet bord-à-bord (du haut au bas de la box) */
    margin: -0.625rem -1rem -0.625rem 0;
    padding: 0.625rem 1rem 0.625rem 0.75rem;
    border-left: 1px solid rgba(0,0,0,.1);
    display: flex;
    align-items: center;
}

/* ── Input file uniformisé (mêmes bordure/coins que les box consent/Altcha) ──── */
input[type="file"] {
    display: block;
    width: 100%;
    padding: 0.5rem 0.75rem;
    margin: 0.35rem 0;
    background: #fff;
    border: 1px solid rgba(0,0,0,.12);
    border-radius: var(--card-radius, .75rem);
    font-size: 0.85em;
    line-height: 1.45;
    color: inherit;
    cursor: pointer;
}

/* ── Espace plus aéré entre consent/altcha et le bouton de soumission ──── */
.form-consent-box ~ button[type="submit"],
.form-consent-box ~ * button[type="submit"],
altcha-widget ~ button[type="submit"],
altcha-widget ~ * button[type="submit"] {
    margin-top: 1.25rem;
}
input[type="file"]::file-selector-button {
    background: #f3f4f6;
    border: none;
    border-radius: calc(var(--card-radius, .75rem) * 0.6);
    padding: 0.35em 0.85em;
    margin-right: 0.75em;
    font-size: inherit;
    color: inherit;
    cursor: pointer;
    transition: background .15s;
}
input[type="file"]::file-selector-button:hover {
    background: #e5e7eb;
}

/* ── Tronquage texte ───────────────────────────────────────────── */
.line-clamp-1, .line-clamp-2, .line-clamp-3, .line-clamp-4 { padding-bottom: 0.1em; }
.line-clamp-2 { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.line-clamp-3 { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }

/* ── Couleurs utilitaires ──────────────────────────────────────── */
.bg-primary        { background-color: var(--color-primary) !important; }
.bg-primary-dark   { background-color: var(--color-primary-dark) !important; }
.text-primary      { color: var(--color-primary) !important; }
.border-primary    { border-color: var(--color-primary) !important; }
.hover\:text-primary:hover { color: var(--color-primary) !important; }
.hover\:bg-primary:hover   { background-color: var(--color-primary) !important; }
.ring-primary      { --tw-ring-color: var(--color-primary) !important; }

/* ── Animations ────────────────────────────────────────────────── */
.fade-in {
    opacity: 0; transform: translateY(20px);
    animation: fadeIn 0.6s ease-out forwards;
}
@keyframes fadeIn {
    to { opacity:1; transform:translateY(0); }
}
.slide-up {
    opacity: 0; transform: translateY(30px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}
.slide-up.visible {
    opacity: 1; transform: translateY(0);
}

/* ── Prose (contenu Quill) ─────────────────────────────────────── */
.prose { max-width:none; }
.prose h2 { font-size:1.5em; font-weight:700; margin:1.5em 0 .5em; color:#111827; }
.prose h3 { font-size:1.25em; font-weight:600; margin:1.2em 0 .4em; color:#1f2937; }
.prose p  { margin-bottom:1em; line-height:1.8; }
.prose p:empty { display:none; }
.prose p:has(> br:only-child) { display:none; }
.prose ul,.prose ol { margin:.75em 0 1em; padding-left:1.5em; }
.prose ul { list-style-type:disc; }
.prose ol { list-style-type:decimal; }
/* TipTap englobe le contenu des <li> dans un <p> : on le neutralise pour que la puce native s'aligne bien */
.prose li > p { margin:0; }
.prose ul .ql-indent-1 { margin-left:1.5em; }
.prose ul .ql-indent-2 { margin-left:3em; }
.prose ol .ql-indent-1 { list-style-type:lower-alpha; margin-left:1.5em; }
.prose ol .ql-indent-2 { list-style-type:lower-roman; margin-left:3em; }
.prose li { margin-bottom:.25em; line-height:1.7; }
.prose img { border-radius:var(--card-radius); max-width:100%; height:auto; margin:1.5em 0; box-shadow:0 4px 12px rgba(0,0,0,.08); }
.prose a:has(> img) { display:block; border-radius:var(--card-radius); overflow:hidden; }
.prose img.size-small, .prose a > img.size-small { width:calc(33.33% - 0.75rem); float:left; margin:0 0.75rem 0.75rem 0; }
.prose img.size-medium, .prose a > img.size-medium { width:calc(50% - 0.75rem); float:left; margin:0 0.75rem 0.75rem 0; }
.prose a:has(> img.size-small) { width:calc(33.33% - 0.75rem); float:left; margin:0 0.75rem 0.75rem 0; }
.prose a:has(> img.size-medium) { width:calc(50% - 0.75rem); float:left; margin:0 0.75rem 0.75rem 0; }
.prose a:has(> img.size-small) > img, .prose a:has(> img.size-medium) > img { width:100%; float:none; margin:0; }
.prose img.size-large { max-width:100%; display:block; clear:both; }
.prose .img-grid a { float:left; width:auto; display:block; border-radius:var(--card-radius); overflow:hidden; }
.prose .img-grid-s a { width:calc(33.33% - 0.75rem); margin:0 0.75rem 0.75rem 0; }
.prose .img-grid-s a > img { width:100%; float:none; margin:0; }
.prose .img-grid-m a { width:calc(50% - 0.75rem); margin:0 0.75rem 0.75rem 0; }
.prose .img-grid-m a > img { width:100%; float:none; margin:0; }
.prose .img-grid { margin-right:-0.75rem; margin-bottom:0.75rem; overflow:hidden; }
.prose .img-grid::after { content:''; display:block; clear:both; }
.prose .img-grid img { margin-bottom:0.75rem; }
@media (max-width: 640px) {
    .prose img.size-small, .prose a > img.size-small, .prose .img-grid-s a, .prose a:has(> img.size-small) { width:calc(50% - 0.75rem); }
    .prose img.size-medium, .prose a > img.size-medium { width:100%; float:none; display:block; margin-right:0; }
    .prose a:has(> img.size-medium) { width:100%; float:none; margin-right:0; }
    .prose .img-grid-m a { width:100%; margin-right:0; }
    .prose .img-grid-m { margin-right:0; }
}
/* Marges floats : bottom réduit pour compenser le half-leading (line-height 1.8) qui s'ajoute visuellement sous l'image */
.prose img.align-left,
.prose img.float-left { float:left; margin:0 1.25em 0.4em 0; }
.prose img.align-center { display:block; margin-left:auto; margin-right:auto; float:none; }
.prose img.align-right,
.prose img.float-right { float:right; margin:0 0 0.4em 1.25em; }
.prose::after { content:''; display:block; clear:both; }
.prose a { color:var(--color-primary); text-decoration:underline; text-decoration-color:currentColor; text-underline-offset:2px; }
.prose table { border-collapse:collapse; width:100% !important; margin:1.5em 0; font-size:0.9em; }
.prose table td, .prose table th { border:1px solid #e5e7eb; padding:0.5em 0.75em; vertical-align:top; line-height:1.5; }
.prose table th { background:#f9fafb; font-weight:600; text-align:left; }
.prose table tr:nth-child(even) td { background:#fafafa; }
.prose a:hover { opacity:.8; }
.prose span[style*="background-color: white"], .prose span[style*="background-color: rgb(255, 255, 255)"], .prose span[style*="background-color: transparent"] { background-color:transparent !important; }
.prose blockquote {
    border-left:4px solid var(--color-primary); padding:1em 1.5em;
    font-style:italic; color:#4b5563; margin:1.5em 0;
    background:rgba(var(--color-primary-rgb),.03); border-radius:0 .5rem .5rem 0;
}
.prose table [contenteditable] { outline:none; cursor:text; caret-color:auto; }
.prose table [contenteditable="false"] { pointer-events:none; cursor:default; user-select:text; }

/* ── Callout / Encart (legacy Quill — sans picto) ─────────────── */
.prose [class*="callout-"] { padding:10px 16px 10px 20px; margin:0; border-left:none; border-radius:0; line-height:1.7; position:relative; overflow:visible; }
.prose .callout-icon-visible::before { display:none !important; }
.prose h2[class*="callout-"] { font-size:1.4em; font-weight:700; margin:0; line-height:1.3; }
.prose h3[class*="callout-"] { font-size:1.15em; font-weight:600; margin:0; line-height:1.3; }
.prose h4[class*="callout-"] { font-size:1em; font-weight:600; margin:0; line-height:1.3; }
.prose p[class*="callout-"] { margin-bottom:0; }
.prose .callout-info { background:#eff6ff; color:#1e40af; }
.prose .callout-warning { background:#fffbeb; color:#92400e; }
.prose .callout-success { background:#f0fdf4; color:#166534; }
.prose .callout-danger { background:#fef2f2; color:#991b1b; }
.prose [class*="callout-"] a { color:inherit !important; text-decoration:underline !important; }
.prose [class*="callout-"]::after { content:''; position:absolute; left:0; top:0; bottom:0; width:4px; }
.prose .callout-info::after { background:#3b82f6; }
.prose .callout-warning::after { background:#f59e0b; }
.prose .callout-success::after { background:#22c55e; }
.prose .callout-danger::after { background:#ef4444; }
/* Picto supprimé — aucun callout (Quill ou TipTap) n'a d'icône */
.prose :not([class*="callout-"]) + .callout-info, .prose :not([class*="callout-"]) + .callout-warning,
.prose :not([class*="callout-"]) + .callout-success, .prose :not([class*="callout-"]) + .callout-danger,
.prose [class*="callout-"]:first-child { border-top-left-radius:var(--btn-radius); border-top-right-radius:var(--btn-radius); margin-top:1em; padding-top:14px; }
.prose :not([class*="callout-"]) + [class*="callout-"]::after, .prose [class*="callout-"]:first-child::after { border-top-left-radius:var(--btn-radius); }
.prose .callout-info:not(:has(+ .callout-info)), .prose .callout-warning:not(:has(+ .callout-warning)),
.prose .callout-success:not(:has(+ .callout-success)), .prose .callout-danger:not(:has(+ .callout-danger)) { border-bottom-left-radius:var(--btn-radius); border-bottom-right-radius:var(--btn-radius); margin-bottom:1em; padding-bottom:14px; }
.prose .callout-info:not(:has(+ .callout-info))::after, .prose .callout-warning:not(:has(+ .callout-warning))::after,
.prose .callout-success:not(:has(+ .callout-success))::after, .prose .callout-danger:not(:has(+ .callout-danger))::after { border-bottom-left-radius:var(--btn-radius); }

/* ── Callouts TipTap : <div class="callout callout-X"><p>...</p></div> (sans picto) ── */
.prose div.callout { position:relative; padding:14px 16px 14px 20px; margin:1.25em 0; border-radius:var(--btn-radius); line-height:1.7; }
.prose div.callout > * { margin-top:.5em; margin-bottom:.5em; }
.prose div.callout > *:first-child { margin-top:0; }
.prose div.callout > *:last-child  { margin-bottom:0; }
/* Titres dans les callouts : héritent de la couleur du callout */
.prose div.callout h2, .prose div.callout h3, .prose div.callout h4 { color:inherit; }
.prose div.callout::after { content:''; position:absolute; left:0; top:0; bottom:0; width:4px; border-top-left-radius:var(--btn-radius); border-bottom-left-radius:var(--btn-radius); }
.prose div.callout-info    { background:#eff6ff; color:#1e40af; }
.prose div.callout-warning { background:#fffbeb; color:#92400e; }
.prose div.callout-success { background:#f0fdf4; color:#166534; }
.prose div.callout-danger  { background:#fef2f2; color:#991b1b; }
.prose div.callout-info::after    { background:#3b82f6; }
.prose div.callout-warning::after { background:#f59e0b; }
.prose div.callout-success::after { background:#22c55e; }
.prose div.callout-danger::after  { background:#ef4444; }
.prose div.callout a { color:inherit !important; text-decoration:underline !important; }

/* ── YouTube play button ───────────────────────────────────────── */
.yt-play-bg { fill: #333; transition: fill .2s ease; }
.group:hover .yt-play-bg { fill: var(--color-primary); }

/* ── Document icons ────────────────────────────────────────────── */
.doc-icon { filter: saturate(0.4) brightness(1.4); opacity: 0.7; transition: all .2s ease; }
.group:hover .doc-icon { filter: saturate(1) brightness(1); opacity: 1; }

/* ── Share icons ───────────────────────────────────────────────── */
.share-icon { background:rgba(0,0,0,0.05); transition: all .2s ease; }
.share-icon:hover { background:rgba(0,0,0,0.80); color:#fff; }

/* ── Card hover ────────────────────────────────────────────────── */
.card-hover {
    transition: all 0.3s cubic-bezier(.4,0,.2,1);
}
.card-hover:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px -12px rgba(0,0,0,.12);
}

/* ── Gradient text ─────────────────────────────────────────────── */
.text-gradient {
    background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* ── Accessibilité ─────────────────────────────────────────────── */
#a11y-panel, #a11y-panel * { font-family: 'Lexend', sans-serif !important; }
body.a11y-contrast #a11y-panel { background: #111 !important; border-color: #fff !important; }
body.a11y-contrast #a11y-panel button { background: #222 !important; border-color: #555 !important; color: #fff !important; }
body.a11y-contrast #a11y-panel button:hover { background: #333 !important; }
body.a11y-contrast #a11y-panel span { color: #fff !important; }
body.a11y-contrast #a11y-panel p { color: #ccc !important; }
body.a11y-contrast #a11y-panel i { color: #fff !important; }
body.a11y-contrast #a11y-panel .a11y-status { color: #aaa !important; }
body.a11y-dyslexia, body.a11y-dyslexia * { font-family: 'Lexend', sans-serif !important; }

/* === CONTRASTE ÉLEVÉ === */
body.a11y-contrast { background: #000 !important; color: #fff !important; }
body.a11y-contrast * { color: #fff !important; border-color: #444 !important; }
body.a11y-contrast a { color: #ffff00 !important; text-decoration: underline !important; }
body.a11y-contrast button, body.a11y-contrast .btn { border: 2px solid #fff !important; }
body.a11y-contrast .shadow-sm, body.a11y-contrast .shadow-md, body.a11y-contrast .shadow-lg,
body.a11y-contrast .shadow-xl, body.a11y-contrast .shadow-2xl { box-shadow: none !important; }
body.a11y-contrast nav, body.a11y-contrast footer, body.a11y-contrast header { background: #111 !important; }

/* Hover des liens nav top-level sans sous-menu : soulignement 2 px en fade-in */
a.nav-link:not(.nav-dd-trigger) { position: relative; display: inline-block; }
a.nav-link:not(.nav-dd-trigger)::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 3px;
    background: currentColor;
    opacity: 0;
    transition: opacity .25s ease;
    pointer-events: none;
}
a.nav-link:not(.nav-dd-trigger):hover::after,
a.nav-link:not(.nav-dd-trigger):focus-visible::after { opacity: 1; }

body.a11y-contrast #main-nav, body.a11y-contrast #mobile-menu { background: #111 !important; }
body.a11y-contrast #nav-logo-wrap img, body.a11y-contrast #nav-logo { filter: brightness(0) invert(1) !important; }
body.a11y-contrast .nav-link, body.a11y-contrast .nav-topbar-link,
body.a11y-contrast #nav-title, body.a11y-contrast #nav-mobile-btn,
body.a11y-contrast .nav-topbar-icon { color: #fff !important; }
body.a11y-contrast #nav-subtitle { color: rgba(255,255,255,0.7) !important; }
body.a11y-contrast #nav-search-input { background: rgba(255,255,255,0.1) !important; border-color: rgba(255,255,255,0.5) !important; color: #fff !important; }
body.a11y-contrast #morph-dd { background: #111 !important; border-color: #333 !important; }
body.a11y-contrast .dd-col a { color: #fff !important; }
body.a11y-contrast .dd-col a:hover { background: #222 !important; }

/* Lien bouton dans le contenu éditorial */
.prose a.btn-link {
    display: inline-block;
    padding: 0.6em 1.4em;
    background: var(--color-primary);
    color: #fff !important;
    border-radius: var(--card-radius, 0.5rem);
    text-decoration: none !important;
    font-weight: 600;
    font-size: 0.95em;
    transition: opacity 0.2s, transform 0.2s;
}
.prose a.btn-link:hover { opacity: 0.85; transform: translateY(-1px); }

/* Pages légales : liens soulignés par défaut (sauf sommaire) */
.legal-content a:not(.btn):not(.button):not([href^="#"]) { text-decoration: underline; text-underline-offset: 2px; }
.legal-content a:not(.btn):not(.button):not([href^="#"]):hover { text-decoration: none; }

/* Nowrap conditionnel : uniquement au-dessus de 540px */
@media (min-width: 540px) {
    .nowrap, .prose .nowrap { white-space: nowrap !important; }
}

/* Hero : fade-in au chargement (attend la police) */
.hero-content-hidden { opacity: 0; }
.hero-content-hidden > *,
.hero-content-hidden .hero-fadein-delay-1,
.hero-content-hidden .hero-fadein-delay-2,
.hero-content-hidden .hero-fadein-delay-3 { opacity: 0; }
.hero-content-visible { opacity: 1; }
.hero-content-visible > *,
.hero-content-visible .hero-fadein-delay-1,
.hero-content-visible .hero-fadein-delay-2,
.hero-content-visible .hero-fadein-delay-3 { opacity: 1; transition: opacity 1s cubic-bezier(.16,.84,.44,1); }
.hero-content-visible .hero-fadein-delay-1 { transition-delay: 0s; }
.hero-content-visible .hero-fadein-delay-2 { transition-delay: 0.15s; }
.hero-content-visible .hero-fadein-delay-3 { transition-delay: 0.3s; }

/* Hero : alignement desktop/mobile */
/* Par défaut : tout à gauche, pas de classes supplémentaires */
.hero-center-all { text-align: center; }
.hero-center-all .hero-align-block { margin-left: auto; margin-right: auto; }
.hero-center-all .hero-align-flex { display: flex; flex-direction: column; align-items: center; }

.hero-center-desktop .hero-align-block,
.hero-center-desktop .hero-align-flex { /* gauche par défaut mobile */ }
@media (min-width: 768px) {
    .hero-center-desktop { text-align: center; }
    .hero-center-desktop .hero-align-block { margin-left: auto; margin-right: auto; }
    .hero-center-desktop .hero-align-flex { display: flex; flex-direction: column; align-items: center; }
}

.hero-center-mobile { text-align: center; }
.hero-center-mobile .hero-align-block { margin-left: auto; margin-right: auto; }
.hero-center-mobile .hero-align-flex { display: flex; flex-direction: column; align-items: center; }
@media (min-width: 768px) {
    .hero-center-mobile { text-align: left; }
    .hero-center-mobile .hero-align-block { margin-left: 0; margin-right: 0; }
    .hero-center-mobile .hero-align-flex { display: block; }
}

/* Sous-menus : tailles de texte par niveau */
.dd-col > a { font-size: 0.95rem; padding-top: 0.35rem; padding-bottom: 0.35rem; }
.dd-col .mt-0\.5 a { font-size: 0.85rem; }
body.a11y-contrast #mobile-menu a { color: #fff !important; }
body.a11y-contrast section, body.a11y-contrast article, body.a11y-contrast aside,
body.a11y-contrast aside > div, body.a11y-contrast main,
body.a11y-contrast .bg-white, body.a11y-contrast .bg-gray-50,
body.a11y-contrast .bg-gray-100, body.a11y-contrast .bg-gray-200,
body.a11y-contrast [class*="bg-primary"], body.a11y-contrast [class*="bg-blue"],
body.a11y-contrast [class*="bg-emerald"], body.a11y-contrast [class*="bg-violet"],
body.a11y-contrast [class*="bg-amber"], body.a11y-contrast [class*="bg-red"],
body.a11y-contrast [class*="bg-green"] { background: #000 !important; border-color: #444 !important; }
body.a11y-contrast .rounded-xl, body.a11y-contrast .rounded-2xl,
body.a11y-contrast .rounded-lg { background-color: #111 !important; border-color: #555 !important; }
body.a11y-contrast [style*="linear-gradient"],
body.a11y-contrast [style*="background:var(--color-primary)"],
body.a11y-contrast [style*="background: var(--color-primary)"],
body.a11y-contrast [style*="background:rgba(var(--color-primary"] { background: #000 !important; }
body.a11y-contrast [class*="bg-gradient"],
body.a11y-contrast .from-black\/80,
body.a11y-contrast .from-black\/50 { background: rgba(0,0,0,0.7) !important; background-image: none !important; }
body.a11y-contrast #hero-section, body.a11y-contrast #hero-section .absolute.inset-0,
body.a11y-contrast #hero-section .absolute.inset-0 div { background: rgba(17,17,17,0.95) !important; background-image: none !important; }
body.a11y-contrast #hero-section h1, body.a11y-contrast #hero-section h2,
body.a11y-contrast #hero-section p, body.a11y-contrast #hero-section span { color: #fff !important; text-shadow: none !important; }
body.a11y-contrast #hero-section svg polygon,
body.a11y-contrast #hero-section svg path { fill: #000 !important; }
body.a11y-contrast section > .absolute.inset-0 { background: #111 !important; background-image: none !important; }
body.a11y-contrast section > .absolute.inset-0[style] { background: #111 !important; }
body.a11y-contrast section svg polygon,
body.a11y-contrast section svg path { fill: #000 !important; }
body.a11y-contrast img { filter: grayscale(100%) contrast(1.2) !important; }
body.a11y-contrast .alaune-slide .absolute.inset-0,
body.a11y-contrast .alaune-slide [class*="bg-gradient"],
body.a11y-contrast .alaune-slide [class*="bg-black"] { background: rgba(0,0,0,0.65) !important; background-image: none !important; }
body.a11y-contrast .alaune-slide img { filter: grayscale(100%) brightness(0.5) contrast(1.2) !important; }
body.a11y-contrast .alaune-slide span, body.a11y-contrast .alaune-slide h2,
body.a11y-contrast .alaune-slide h3, body.a11y-contrast .alaune-slide p { color: #fff !important; }
body.a11y-contrast .alaune-slide .bg-white\/20 { background: rgba(255,255,255,0.3) !important; }
body.a11y-contrast .relative img + .absolute { background: rgba(0,0,0,0.65) !important; background-image: none !important; }
body.a11y-contrast .relative > img.object-cover { filter: grayscale(100%) brightness(0.5) contrast(1.2) !important; }
body.a11y-contrast .relative > .absolute.inset-0 { background: rgba(0,0,0,0.65) !important; background-image: none !important; }
body.a11y-contrast .relative > img.absolute { filter: grayscale(100%) brightness(0.45) contrast(1.2) !important; }
body.a11y-contrast .raccourcis-swiper .swiper-slide a { background-color: #111 !important; border: 2px solid #fff !important; }
body.a11y-contrast .raccourcis-swiper .swiper-slide span,
body.a11y-contrast .raccourcis-swiper .swiper-slide i { color: #fff !important; }
body.a11y-contrast .raccourcis-swiper .swiper-slide .rounded-full { background-color: #000 !important; border-color: #fff !important; }
body.a11y-contrast .raccourcis-swiper .swiper-slide img { filter: grayscale(100%) brightness(0.4) contrast(1.2) !important; }

/* ── Mobile menu (header) ──────────────────────────────────────── */
#mobile-menu { position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center; transition:visibility 0s, opacity .25s ease; }
#mobile-menu.mob-menu-hidden { visibility:hidden; opacity:0; pointer-events:none; transition:visibility 0s .25s, opacity .25s ease; }
.mob-menu-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.45); }
#mobile-menu.mob-menu-hidden .mob-menu-backdrop { opacity:0; }
.mob-menu-panel { position:relative; width:calc(100% - 2rem); height:calc(100% - 2rem); max-width:100%; background:#fff; border-radius:var(--card-radius, 1rem); display:flex; flex-direction:column; overflow:hidden; box-shadow:0 25px 50px -12px rgba(0,0,0,.25); transform:scale(1); transition:transform .25s cubic-bezier(.4,0,.2,1); }
#mobile-menu.mob-menu-hidden .mob-menu-panel { transform:scale(.95); }
.mob-nav-viewport { flex:1; position:relative; overflow:hidden; }
.mob-nav-level { position:absolute; inset:0; overflow-y:auto; transition:transform .3s cubic-bezier(.4,0,.2,1), opacity .3s ease; transform:translateX(100%); opacity:0; pointer-events:none; }
.mob-nav-level.mob-nav-active { transform:translateX(0); opacity:1; pointer-events:auto; }
.mob-nav-level.mob-nav-left { transform:translateX(-30%); opacity:0; pointer-events:none; }

/* ── Contraste — Formulaires ───────────────────────────────────── */
body.a11y-contrast input, body.a11y-contrast textarea, body.a11y-contrast select {
    background: #111 !important; color: #fff !important; border-color: #666 !important;
}
body.a11y-contrast input::placeholder, body.a11y-contrast textarea::placeholder {
    color: #888 !important;
}
body.a11y-contrast input:focus, body.a11y-contrast textarea:focus, body.a11y-contrast select:focus {
    border-color: #fff !important; outline-color: #fff !important;
}

/* ── Contraste — Badges / Pills ────────────────────────────────── */
body.a11y-contrast [class*="rounded-full"][class*="bg-"] { background: #222 !important; border: 1px solid #666 !important; }

/* ── Contraste — Pagination ────────────────────────────────────── */
body.a11y-contrast [style*="background:var(--color-primary)"] { background: #fff !important; color: #000 !important; }
body.a11y-contrast a[style*="background:var(--color-primary)"] { color: #000 !important; }

/* ── Contraste — Boutons primary ───────────────────────────────── */
body.a11y-contrast button[style*="background:var(--color-primary)"],
body.a11y-contrast a[class*="bg-primary"],
body.a11y-contrast button[class*="bg-primary"] { background: #fff !important; color: #000 !important; border-color: #fff !important; }

/* ── Contraste — Text gradient → blanc ─────────────────────────── */
body.a11y-contrast .text-gradient { background: none !important; -webkit-background-clip: unset !important; background-clip: unset !important; -webkit-text-fill-color: #fff !important; color: #fff !important; }

/* ── Contraste — Décorations (skew bars) → blanc ───────────────── */
body.a11y-contrast [class*="-skew-x-"] { background: #fff !important; opacity: 0.4 !important; }

/* ── Contraste — Swiper bullets ────────────────────────────────── */
body.a11y-contrast .alaune-bullet-active { background: #fff !important; }
body.a11y-contrast .swiper-pagination-bullet { background: #666 !important; }

/* ── Contraste — Footer ────────────────────────────────────────── */
body.a11y-contrast footer, body.a11y-contrast footer > div,
body.a11y-contrast footer .relative, body.a11y-contrast footer + div,
body.a11y-contrast footer ~ div { background: #111 !important; color: #fff !important; }
body.a11y-contrast div[style*="height:5rem"] { background: #000 !important; }
body.a11y-contrast footer div[style*="background:"] { background: #111 !important; }
body.a11y-contrast footer img { filter: grayscale(100%) brightness(0.4) contrast(1.2) !important; }
body.a11y-contrast footer .absolute.inset-0[style*="linear-gradient"] { background: rgba(0,0,0,0.7) !important; }
body.a11y-contrast footer div[style*="height:"] { background: #000 !important; }
body.a11y-contrast footer svg polygon, body.a11y-contrast footer svg path { fill: #111 !important; }
body.a11y-contrast footer h3, body.a11y-contrast footer h4,
body.a11y-contrast footer p, body.a11y-contrast footer span,
body.a11y-contrast footer li, body.a11y-contrast footer div { color: #fff !important; }
body.a11y-contrast footer a { color: #ffff00 !important; }
body.a11y-contrast footer a svg { fill: #fff !important; color: #fff !important; }
body.a11y-contrast footer a svg path, body.a11y-contrast footer a svg circle { fill: #fff !important; }
body.a11y-contrast footer img[src*="logo"] { filter: brightness(0) invert(1) !important; }
body.a11y-contrast footer div[style*="border-top"],
body.a11y-contrast footer .border-t { border-color: #444 !important; }

/* ── Accessibilité — Soulignement liens ────────────────────────── */
body.a11y-underline a { text-decoration: underline !important; }

/* ── Accessibilité — Bouton actif ──────────────────────────────── */
body.a11y-btn-active { background: var(--color-primary) !important; border-color: var(--color-primary) !important; }
body.a11y-btn-active span { color: #fff !important; }
body.a11y-btn-active i { color: #fff !important; }

/* ── Largeur maximale du contenu ───────────────────────────────── */
.max-w-7xl { max-width: 88rem !important; }

/* ── Marges latérales élargies ─────────────────────────────────── */
.max-w-7xl { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }
@media (min-width: 640px) {
    .max-w-7xl { padding-left: 2rem !important; padding-right: 2rem !important; }
}
@media (min-width: 1024px) {
    .max-w-7xl { padding-left: 3rem !important; padding-right: 3rem !important; }
}
@media (min-width: 1280px) {
    .max-w-7xl { padding-left: 4rem !important; padding-right: 4rem !important; }
}
