/* =========================================================
   Mairie de Quinssaines, gabarits de contenu
   Shared stylesheet: vanilla prototype + WordPress (Global Styles > CSS additionnel)
   Prefix: .qs-
   ========================================================= */

:root {
  --qs-blue: #15498a;
  --qs-blue-dark: #0f3a70;
  --qs-ink: #111111;
  --qs-text: #4a4a4a;
  --qs-muted: #6b7280;
  --qs-line: #d9dee7;
  --qs-tint: #eef2f9;
  --qs-tint-2: #f4f6fa;
  --qs-amber: #f5a623;
  --qs-amber-soft: #fdebc8;
  --qs-red: #b42318;
  --qs-red-soft: #fef3f2;
  --qs-white: #ffffff;
  --qs-max: 1440px; /* 1120px */
  --qs-gutter: 20px;
  --qs-head: 184px; /* space under the floating site header */
  --qs-sticky: 170px; /* sticky offset below the fixed header */
  --qs-wave: url(https://dev.mairie-quinssaines.fr/wp-content/uploads/2026/09/separateur-pattern.svg);
  --qs-icons: https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons;
  --qs-font: "Roboto-GS", Roboto, system-ui, -apple-system, "Segoe UI", sans-serif;
}
@media (max-width: 991.98px) { :root { --qs-head: 128px; --qs-sticky: 104px; } }

/* ---------- Base ---------- */
.qs-page p:empty { display: none; }
.qs-page { font-family: var(--qs-font); color: var(--qs-ink); background: var(--qs-white); -webkit-font-smoothing: antialiased; }
.qs-page *, .qs-page *::before, .qs-page *::after { box-sizing: border-box; }
.qs-page a { color: var(--qs-blue); }
.qs-page a:hover { color: var(--qs-blue-dark); }
.qs-page :focus-visible { outline: 2px solid #fff; box-shadow: 0 0 0 4px var(--qs-ink); }
.qs-page img { max-width: 100%; height: auto; }
.qs-wrap { width: 100%; max-width: calc(var(--qs-max) + var(--qs-gutter) * 2); margin-inline: auto; padding-inline: var(--qs-gutter); }
.qs-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.qs-page :where(h1, h2, h3, p, ul, ol, dl, figure, blockquote) { margin: 0; }

/* ---------- Type scale ---------- */
.qs-eyebrow { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; line-height: 1.3; }
.qs-h1 { font-size: clamp(32px, 4vw, 48px); line-height: 1.1; font-weight: 700; letter-spacing: -.02em; text-wrap: balance; }
.qs-h2 { font-size: clamp(24px, 2.6vw, 32px); line-height: 1.2; font-weight: 700; letter-spacing: -.02em; }
.qs-h3 { font-size: 20px; line-height: 1.3; font-weight: 700; letter-spacing: -.01em; }
.qs-lead { font-size: clamp(18px, 1.6vw, 20px); line-height: 1.55; font-weight: 500; color: var(--qs-ink); text-wrap: pretty; }
.qs-meta { font-size: 14px; color: var(--qs-text); }

/* ---------- Icons (lucide masks) ---------- */
.qs-i { display: inline-block; flex: none; width: 1em; height: 1em; background: currentColor; -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.qs-i--arrow { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/move-right.svg); }
.qs-i--back { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/move-left.svg); }
.qs-i--chev-l { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/chevron-left.svg); }
.qs-i--chev-r { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/chevron-right.svg); }
.qs-i--chev-d { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/chevron-down.svg); }
.qs-i--info { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/info.svg); }
.qs-i--ext { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/external-link.svg); }
.qs-i--file { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/file-text.svg); }
.qs-i--dl { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/download.svg); }
.qs-i--plus { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/plus.svg); }
.qs-i--minus { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/minus.svg); }
.qs-i--print { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/printer.svg); }
.qs-i--share { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/share-2.svg); }
.qs-i--cal { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/calendar.svg); }
.qs-i--cal-days { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/calendar-days.svg); }
.qs-i--cal-x { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/calendar-x-2.svg); }
.qs-i--cal-plus { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/calendar-plus.svg); }
.qs-i--clock { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/clock.svg); }
.qs-i--pin { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/map-pin.svg); }
.qs-i--ticket { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/ticket.svg); }
.qs-i--users { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/users.svg); }
.qs-i--org { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/building-2.svg); }
.qs-i--list { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/list.svg); }
.qs-i--grid { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/layout-grid.svg); }
.qs-i--search { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/search.svg); }
.qs-i--search-x { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/search-x.svg); }
.qs-i--phone { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/phone.svg); }
.qs-i--mail { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/mail.svg); }
.qs-i--nav { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/navigation.svg); }
.qs-i--globe { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/globe.svg); }
.qs-i--user { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/user.svg); }
.qs-i--link { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/link.svg); }
.qs-i--fb { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/facebook.svg); }
.qs-i--alert { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/circle-alert.svg); }
.qs-i--clip { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/paperclip.svg); }

/* ---------- Buttons & links ---------- */
.qs-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 22px; border: 1px solid var(--qs-blue); background: var(--qs-blue); color: #fff !important; font: 600 12px/1.2 var(--qs-font); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s; }
.qs-btn:hover { background: var(--qs-blue-dark); border-color: var(--qs-blue-dark); }
.qs-btn .qs-i { width: 16px; height: 16px; }
.qs-btn--ghost { background: #fff; color: var(--qs-blue) !important; }
.qs-btn--ghost:hover { background: var(--qs-tint); color: var(--qs-blue-dark) !important; }
.qs-btn--light { background: #fff; border-color: #fff; color: var(--qs-blue) !important; }
.qs-btn--light:hover { background: var(--qs-tint); border-color: var(--qs-tint); }
.qs-btn--outline-light { background: transparent; border-color: #fff; }
.qs-btn--quiet { background: #fff; border-color: var(--qs-line); color: var(--qs-ink) !important; }
.qs-btn--quiet:hover { background: var(--qs-tint-2); border-color: var(--qs-ink); }
.qs-btn--block { display: flex; width: 100%; }

.qs-more { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--qs-ink) !important; text-decoration: none; font-size: 14px; font-weight: 700; }
.qs-more .qs-i { width: 24px; height: 24px; color: var(--qs-blue); transition: transform .15s; }
.qs-more:hover .qs-i { transform: translateX(3px); }
.qs-more--back .qs-i { order: -1; }
.qs-more--back:hover .qs-i { transform: translateX(-3px); }
.qs-more--caps { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }

.qs-chip { display: inline-block; padding: 5px 10px; background: var(--qs-tint); color: var(--qs-blue); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; line-height: 1.3; }
.qs-chip--solid { background: var(--qs-blue); color: #fff; }
.qs-chip--light { background: #fff; color: var(--qs-blue); }

/* ---------- Breadcrumb ---------- */
.qs-crumbs, .qs-crumbs ol, .qs-crumbs .breadcrumb { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 10px; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: inherit; }
.qs-crumbs li { display: flex; align-items: center; gap: 10px; }
.qs-crumbs li + li::before { content: "›"; letter-spacing: 0; }
.qs-crumbs a { color: inherit !important; text-decoration: none; }
.qs-crumbs a:hover { text-decoration: underline; text-underline-offset: 3px; }
.qs-crumbs [aria-current] { opacity: 1; }
.qs-crumbs .separator { display: none; }

/* ---------- Blue band (hero) with wave ---------- */
.qs-band { position: relative; background: var(--qs-blue); color: #fff; padding-top: var(--qs-head); padding-bottom: 72px; }
.qs-band::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 100px; background: var(--qs-wave) repeat-x left top / auto 100%; pointer-events: none; }
.qs-band a { color: #fff; }
.qs-band .qs-crumbs { margin-bottom: 20px; }
.qs-band--tall { padding-bottom: 260px; }
.qs-band--overlap { padding-bottom: 200px; }
.qs-band + * { position: relative; z-index: 1; }
.qs-wrap.qs-after-band, .qs-after-band { padding-top: 140px; }
@media (max-width: 781.98px) {
  .qs-band { padding-bottom: 40px; }
  .qs-band::after { height: 56px; }
  .qs-band--tall, .qs-band--overlap { padding-bottom: 150px; }
  .qs-wrap.qs-after-band, .qs-after-band { padding-top: 84px; }
}

/* Photo hero (01 with photo, 04 article) */
.qs-photo-hero { position: relative; min-height: 520px; display: flex; align-items: flex-end; color: #fff; background: var(--qs-blue); overflow: hidden; }
.qs-photo-hero__img, .qs-photo-hero .wp-block-post-featured-image { position: absolute !important; inset: 0; margin: 0 !important; width: 100%; height: 100% !important; }
.qs-photo-hero__img img, .qs-photo-hero .wp-block-post-featured-image img, img.qs-photo-hero__img { width: 100%; height: 100% !important; object-fit: cover; }
.qs-photo-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(10, 26, 58, .35) 0%, rgba(10, 26, 58, .15) 35%, rgba(10, 26, 58, .85) 100%); }
.qs-photo-hero__body { position: relative; z-index: 2; width: 100%; padding-top: var(--qs-head); padding-bottom: 56px; }
.qs-photo-hero a { color: #fff; }
.qs-photo-hero .qs-crumbs { margin-bottom: 20px; }
.qs-photo-hero .qs-h1 { max-width: 880px; margin-bottom: 20px; }
@media (max-width: 781.98px) { .qs-photo-hero { min-height: 420px; } .qs-photo-hero__body { padding-bottom: 32px; } }

.qs-facts { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; font-size: 15px; }
.qs-facts li { display: flex; align-items: center; gap: 8px; }
.qs-facts .qs-i { width: 16px; height: 16px; }

/* ---------- Pills (filters) ---------- */
.qs-pills { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.qs-pills a, .qs-pills button { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border: 1px solid var(--qs-line); background: #fff; color: var(--qs-ink) !important; font: 600 12px/1.2 var(--qs-font); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; white-space: nowrap; cursor: pointer; }
.qs-pills a:hover, .qs-pills button:hover { border-color: var(--qs-blue); }
.qs-pills [aria-current="page"], .qs-pills [aria-pressed="true"], .qs-pills .is-current { background: var(--qs-blue); border-color: var(--qs-blue); color: #fff !important; }
.qs-pills--blue a { border-color: var(--qs-blue); color: var(--qs-blue) !important; }
.qs-pills .qs-count { font-weight: 400; letter-spacing: 0; font-size: 14px; }
@media (max-width: 781.98px) {
  .qs-pills { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--qs-gutter) * -1); padding-inline: var(--qs-gutter); scrollbar-width: none; }
  .qs-pills li { flex: none; }
}

/* ---------- View toggle (segmented) ---------- */
.qs-seg { display: inline-flex; border: 1px solid var(--qs-blue); height: 48px; }
.qs-seg button { display: flex; align-items: center; gap: 8px; padding: 0 18px; border: 0; background: #fff; color: var(--qs-blue); font: 600 12px var(--qs-font); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.qs-seg button[aria-pressed="true"] { background: var(--qs-blue); color: #fff; }
.qs-seg .qs-i { width: 16px; height: 16px; }

/* ---------- Cards grid ---------- */
.qs-grid, .qs-grid > .wp-block-post-template { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.qs-grid > .wp-block-post-template { grid-column: 1 / -1; }
.qs-grid.wp-block-query { display: block; }
@media (max-width: 1023.98px) { .qs-grid, .qs-grid > .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 639.98px) { .qs-grid, .qs-grid > .wp-block-post-template { grid-template-columns: 1fr; gap: 16px; } }
.qs-grid .wp-block-post { margin: 0; }

.qs-card { position: relative; display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--qs-line); box-shadow: 0 2px 6px rgba(17, 17, 17, .04); transition: border-color .15s, box-shadow .15s; }
.qs-card:hover { border-color: #b9c2d2; box-shadow: 0 8px 24px rgba(17, 17, 17, .08); }
.qs-card__media { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--qs-tint); margin: 0 !important; }
.qs-card__media img, .qs-card__media .wp-block-post-featured-image img, .qs-card .wp-block-post-featured-image img { display: block; width: 100%; height: 100% !important; object-fit: cover; }
.qs-card .wp-block-post-featured-image { margin: 0; height: 100%; }
.qs-card__media .wp-block-post-featured-image a { display: block; height: 100%; }
.qs-card__body { flex: 1; display: flex; flex-direction: column; gap: 8px; padding: 20px 20px 16px; }
.qs-card__date, .qs-card .wp-block-post-date { font-size: 13px; color: var(--qs-text); }
.qs-card__title, .qs-card .wp-block-post-title { font-size: 20px; line-height: 1.3; font-weight: 700; letter-spacing: -.01em; color: var(--qs-ink); }
.qs-card__title a, .qs-card .wp-block-post-title a { color: inherit !important; text-decoration: none; }
.qs-card__title a::after, .qs-card .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.qs-card__excerpt, .qs-card .wp-block-post-excerpt { margin: 0 0 8px; font-size: 15px; line-height: 1.55; color: var(--qs-text); }
.qs-card .wp-block-post-excerpt__excerpt { margin: 0; }
.qs-card__more { margin-top: auto; align-self: flex-end; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 14px; font-weight: 700; color: var(--qs-ink); }
.qs-card__more .qs-i { width: 24px; height: 24px; color: var(--qs-blue); transition: transform .15s; }
.qs-card:hover .qs-card__more .qs-i { transform: translateX(3px); }
.qs-card a[href^="tel:"], .qs-card a[href^="mailto:"] { position: relative; z-index: 2; }

/* Feature card (À la une) */
.qs-feature { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); border: 1px solid var(--qs-line); position: relative; margin-bottom: 40px; }
.qs-feature .qs-card__media { aspect-ratio: 16 / 9; height: 100%; }
.qs-feature__body { padding: 40px; display: flex; flex-direction: column; gap: 12px; }
.qs-feature .wp-block-post-title { font-size: clamp(24px, 2.4vw, 32px); line-height: 1.2; letter-spacing: -.02em; }
.qs-feature .qs-card__more { align-self: flex-start; }
.qs-feature__kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; font-size: 14px; color: var(--qs-text); }
.qs-feature__kicker .wp-block-post-date { font-size: 14px; }
@media (max-width: 781.98px) { .qs-feature { grid-template-columns: 1fr; } .qs-feature__body { padding: 20px; } }

/* ---------- Pagination (core/query-pagination + static) ---------- */
.qs-pager, .qs-pager.wp-block-query-pagination { margin-top: 56px; display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 8px; }
.qs-pager .wp-block-query-pagination-numbers { display: flex; gap: 8px; margin: 0; }
.qs-pager a, .qs-pager .page-numbers, .qs-pager > span { min-width: 44px; height: 44px; padding: 0 12px; display: grid; place-items: center; border: 1px solid var(--qs-line); color: var(--qs-ink) !important; text-decoration: none; font-weight: 600; font-size: 15px; margin: 0 !important; }
.qs-pager .page-numbers.current, .qs-pager [aria-current="page"] { background: var(--qs-blue); border-color: var(--qs-blue); color: #fff !important; }
.qs-pager .page-numbers.dots { border: 0; }
.qs-pager .wp-block-query-pagination-previous, .qs-pager .wp-block-query-pagination-next { border-color: var(--qs-blue); color: var(--qs-blue) !important; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.qs-pager a:hover { border-color: var(--qs-blue); }

/* ---------- Content page (01) ---------- */
.qs-content { display: grid; grid-template-columns: 260px minmax(0, 720px); gap: 0 100px; align-items: start; padding-top: 72px; padding-bottom: 96px; }
.qs-content--solo { grid-template-columns: minmax(0, 720px); justify-content: center; }
@media (max-width: 1023.98px) { .qs-content { grid-template-columns: 1fr; padding-top: 40px; padding-bottom: 56px; } }

.qs-toc { position: sticky; top: var(--qs-sticky); }
.qs-toc summary { list-style: none; }
.qs-toc summary::-webkit-details-marker { display: none; }
.qs-toc__title { margin: 0 0 12px; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--qs-ink); }
.qs-toc ul { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--qs-line); }
.qs-toc a { display: flex; align-items: center; min-height: 44px; padding: 6px 0 6px 16px; margin-left: -1px; border-left: 3px solid transparent; color: var(--qs-text) !important; text-decoration: none; font-size: 15px; line-height: 1.35; }
.qs-toc a:hover { color: var(--qs-ink) !important; }
.qs-toc a.is-active { border-left-color: var(--qs-blue); color: var(--qs-blue) !important; font-weight: 600; }
.qs-toc[hidden] { display: none; }
@media (min-width: 1024px) { .qs-toc summary { pointer-events: none; } .qs-toc summary .qs-i { display: none; } }
@media (max-width: 1023.98px) {
  .qs-toc { position: static; margin-bottom: 28px; }
  .qs-toc summary { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 0 16px; border: 1px solid var(--qs-ink); cursor: pointer; margin: 0; }
  .qs-toc[open] summary { background: var(--qs-blue); border-color: var(--qs-blue); color: #fff; }
  .qs-toc[open] summary .qs-i { transform: rotate(180deg); }
  .qs-toc ul { border: 1px solid var(--qs-blue); border-top: 0; padding: 8px 0; }
  .qs-toc a { border-left: 0; min-height: 48px; padding: 0 16px; color: var(--qs-ink) !important; font-size: 16px; }
}

/* Prose (post-content) */
.qs-prose { color: var(--qs-text); font-size: 17px; line-height: 1.6; }
.qs-prose > * + * { margin-top: 20px; }
.qs-prose > :first-child { margin-top: 0; }
.qs-prose h2 { margin: 48px 0 16px; font-size: clamp(24px, 2.6vw, 32px); line-height: 1.2; font-weight: 700; letter-spacing: -.02em; color: var(--qs-ink); scroll-margin-top: var(--qs-sticky); }
.qs-prose h3 { margin: 32px 0 12px; font-size: 22px; line-height: 1.3; font-weight: 700; color: var(--qs-ink); }
.qs-prose h2 + *, .qs-prose h3 + * { margin-top: 0; }
.qs-prose ul, .qs-prose ol { padding-left: 22px; }
.qs-prose li + li { margin-top: 8px; }
.qs-prose strong { color: var(--qs-ink); }
.qs-prose a { text-underline-offset: 3px; }
.qs-prose > p:first-child, .qs-prose .is-style-lead, .qs-prose .qs-lead { font-size: clamp(18px, 1.6vw, 20px); line-height: 1.55; font-weight: 500; color: var(--qs-ink); margin-bottom: 32px; }
.qs-prose figure { margin: 40px 0; }
.qs-prose figure img { display: block; width: 100%; }
.qs-prose figcaption { margin-top: 12px; font-size: 14px; color: var(--qs-text); text-align: left; }
.qs-prose blockquote, .qs-prose .wp-block-quote, .qs-prose .wp-block-pullquote { margin: 40px 0; padding: 32px 0; border: 0; border-top: 1px solid var(--qs-ink); border-bottom: 1px solid var(--qs-ink); text-align: left; }
.qs-prose blockquote p { font-size: clamp(21px, 2vw, 26px); line-height: 1.35; font-weight: 700; letter-spacing: -.01em; color: var(--qs-blue); }
.qs-prose blockquote cite, .qs-prose blockquote footer { display: block; margin-top: 12px; font-size: 15px; font-style: normal; color: var(--qs-text); }
.qs-prose table, .qs-prose .wp-block-table table { width: 100%; border-collapse: collapse; font-size: 15px; }
.qs-prose .wp-block-table { margin: 32px 0; overflow-x: auto; }
.qs-prose thead { border: 0; }
.qs-prose thead th, .qs-prose thead td { background: var(--qs-blue); color: #fff; text-align: left; padding: 14px 16px; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; border: 0; }
.qs-prose tbody td, .qs-prose tbody th { padding: 14px 16px; border: 0; border-bottom: 1px solid var(--qs-line); text-align: left; }
.qs-prose tbody tr:nth-child(even) { background: var(--qs-tint-2); }
.qs-prose tbody th, .qs-prose tbody td:first-child { font-weight: 600; color: var(--qs-ink); }
.qs-prose table caption, .qs-prose .wp-element-caption { caption-side: top; text-align: left; margin-bottom: 12px; color: var(--qs-text); font-size: 15px; }
.qs-prose .wp-block-gallery { gap: 8px; }
.qs-prose .wp-block-image img { height: auto; }

/* FAQ with core/details */
.qs-prose details, .qs-faq details { border-bottom: 1px solid var(--qs-line); margin: 0; }
.qs-prose details:first-of-type, .qs-faq details:first-of-type { border-top: 1px solid var(--qs-line); }
.qs-prose details + details { margin-top: 0; }
.qs-prose h2 + details { border-top: 1px solid var(--qs-line); }
.qs-prose details summary, .qs-faq summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; padding: 12px 0; cursor: pointer; font-weight: 600; font-size: 17px; line-height: 1.4; color: var(--qs-ink); }
.qs-prose details summary::-webkit-details-marker { display: none; }
.qs-prose details summary::after { content: ""; flex: none; width: 20px; height: 20px; background: var(--qs-blue); -webkit-mask: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/plus.svg) center / contain no-repeat; mask: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/plus.svg) center / contain no-repeat; }
.qs-prose details[open] summary::after { -webkit-mask-image: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/minus.svg); mask-image: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/minus.svg); }
.qs-prose details > :not(summary) { margin: 0 0 20px; padding-right: 40px; }

/* Note "Bon à savoir" */
.qs-note { display: flex; gap: 16px; background: var(--qs-tint); padding: 24px 28px; margin: 0 0 48px !important; color: var(--qs-ink); }
.qs-note::before { content: ""; flex: none; width: 24px; height: 24px; margin-top: 2px; background: var(--qs-blue); -webkit-mask: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/info.svg) center / contain no-repeat; mask: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/info.svg) center / contain no-repeat; }
.qs-note > div > :first-child, .qs-note .qs-eyebrow { color: var(--qs-blue); margin-bottom: 4px; }
.qs-note p { margin: 0; }

/* CTA bar "Démarche en ligne" */
.qs-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; background: var(--qs-blue); color: #fff; padding: 28px 32px; margin: 0 0 48px !important; }
.qs-cta p { margin: 0; }
.qs-cta__title { font-size: 20px; font-weight: 700; letter-spacing: -.01em; margin-bottom: 4px !important; }
.qs-cta__text { font-size: 15px; }
@media (max-width: 781.98px) { .qs-cta { flex-direction: column; align-items: stretch; padding: 24px 20px; } }

/* Documents list (core/file restyled) */
.qs-prose .wp-block-file { display: flex; align-items: center; gap: 16px; padding: 16px 0; margin: 0; border-bottom: 1px solid var(--qs-line); }
.qs-prose h2 + .wp-block-file, .qs-prose .wp-block-file:first-of-type { border-top: 1px solid var(--qs-line); }
.qs-prose .wp-block-file + .wp-block-file { margin-top: 0; }
.qs-prose .wp-block-file::before { content: ""; flex: none; width: 44px; height: 44px; background: var(--qs-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%2315498a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4'/%3E%3Cpath d='M10 9H8'/%3E%3Cpath d='M16 13H8'/%3E%3Cpath d='M16 17H8'/%3E%3C/svg%3E") center no-repeat; }
.qs-prose .wp-block-file > a:not(.wp-block-file__button) { flex: 1; color: var(--qs-ink); font-weight: 600; text-decoration: none; }
.qs-prose .wp-block-file__button, .qs-prose .wp-block-file .wp-element-button { flex: none; display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--qs-blue); border-radius: 0; background: #fff; color: var(--qs-blue) !important; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; }
.qs-prose .wp-block-file__button:hover { background: var(--qs-tint); }
.qs-prose .wp-block-file__embed { display: none; }

/* Service contact box */
.qs-service { display: grid; grid-template-columns: 1fr auto; border: 1px solid var(--qs-line); margin: 48px 0 !important; }
.qs-service > div { padding: 28px 32px; }
.qs-service > div + div { display: flex; align-items: center; border-left: 1px solid var(--qs-line); }
.qs-service h2, .qs-service .qs-service__title { margin: 4px 0 12px !important; font-size: 24px; letter-spacing: -.01em; }
.qs-service p { font-size: 15px; margin: 0; }
@media (max-width: 781.98px) { .qs-service { grid-template-columns: 1fr; } .qs-service > div { padding: 20px; } .qs-service > div + div { border-left: 0; border-top: 1px solid var(--qs-line); } }

/* Page foot: updated + print/share */
.qs-pagefoot { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding-top: 24px; margin-top: 48px; border-top: 1px solid var(--qs-ink); }
.qs-pagefoot p, .qs-pagefoot .wp-block-post-modified-date { margin: 0; font-size: 14px; color: var(--qs-text); }
.qs-pagefoot__actions { display: flex; gap: 8px; }
.qs-pagefoot__actions .qs-btn { min-height: 44px; padding: 0 16px; }

/* ---------- Page-chapeau (02) ---------- */
.qs-hub { position: relative; z-index: 2; margin-top: -200px; background: #fff; box-shadow: 0 1px 0 var(--qs-line), 0 12px 40px rgba(17, 17, 17, .10); display: grid; grid-template-columns: 272px minmax(0, 1fr); }
.qs-hub__nav { padding: 48px 0 48px 40px; }
.qs-hub__nav .qs-eyebrow { color: var(--qs-blue); margin-bottom: 16px; }
.qs-hub__nav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.qs-hub__nav ul ul { display: none; }
.qs-hub__nav li { margin: 0; }
.qs-hub__nav a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 8px 16px; color: var(--qs-ink) !important; text-decoration: none; font-size: 15px; line-height: 1.3; }
.qs-hub__nav a::after { content: ""; flex: none; width: 16px; height: 16px; background: currentColor; -webkit-mask: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/chevron-right.svg) center / contain no-repeat; mask: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/chevron-right.svg) center / contain no-repeat; }
.qs-hub__nav a:hover { background: var(--qs-tint); }
.qs-hub__nav .current-menu-item > a, .qs-hub__nav a[aria-current="page"] { background: var(--qs-blue); color: #fff !important; font-weight: 600; }
.qs-hub__main { padding: 48px 48px 64px; min-width: 0; }
.qs-hub__main .qs-h1 { color: var(--qs-ink); margin-bottom: 20px; }
.qs-hub__intro { max-width: 680px; margin-bottom: 40px !important; font-size: 18px; line-height: 1.6; color: var(--qs-text); }
.qs-hub__intro:empty { display: none; }
.qs-tiles .wp-block-post-template, ul.qs-tiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.qs-tile { position: relative; display: flex; flex-direction: column; height: 100%; border: 1px solid var(--qs-line); background: #fff; transition: border-color .15s, box-shadow .15s; }
.qs-tile:hover { border-color: #b9c2d2; box-shadow: 0 8px 24px rgba(17, 17, 17, .08); }
.qs-tile__media { display: block; aspect-ratio: 3 / 2; background: var(--qs-blue) var(--qs-wave) repeat-x left bottom / 200px auto; overflow: hidden; margin: 0 !important; }
.qs-tile__media img { width: 100%; height: 100% !important; object-fit: cover; display: block; filter: grayscale(1) contrast(1.1) brightness(1.15); mix-blend-mode: screen; transition: filter .25s; }
.qs-tile:hover .qs-tile__media img { filter: none; mix-blend-mode: normal; }
.qs-tile__label { flex: 1; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px; }
.qs-tile__label .wp-block-post-title, .qs-tile__title { margin: 0; font-size: 17px; line-height: 1.35; font-weight: 700; color: var(--qs-ink); }
.qs-tile__label a { color: inherit !important; text-decoration: none; }
.qs-tile__label a::after { content: ""; position: absolute; inset: 0; }
.qs-tile__label::after { content: ""; flex: none; width: 24px; height: 24px; background: var(--qs-blue); -webkit-mask: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/move-right.svg) center / contain no-repeat; mask: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/move-right.svg) center / contain no-repeat; transition: transform .15s; }
.qs-tile:hover .qs-tile__label::after { transform: translateX(3px); }
@media (max-width: 1023.98px) {
  .qs-hub { grid-template-columns: 1fr; margin-top: -150px; }
  .qs-hub__nav { padding: 24px 16px 0; }
  .qs-hub__main { padding: 24px 16px 32px; }
  .qs-tiles .wp-block-post-template, ul.qs-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}
@media (max-width: 639.98px) {
  .qs-tiles .wp-block-post-template, ul.qs-tiles { grid-template-columns: 1fr; }
  .qs-tile { display: grid; grid-template-columns: 96px 1fr; }
  .qs-tile__media { aspect-ratio: auto; height: 80px; }
  .qs-tile__label { padding: 12px 14px; }
}
/* Mobile: sister nav collapses into dropdown */
.qs-hub__nav details summary { list-style: none; }
.qs-hub__nav details summary::-webkit-details-marker { display: none; }
@media (min-width: 1024px) { .qs-hub__nav details > summary { display: none; } }
@media (max-width: 1023.98px) {
  .qs-hub__nav details > summary { display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: 0 14px; border: 1px solid var(--qs-ink); font-size: 16px; font-weight: 500; cursor: pointer; }
  .qs-hub__nav details:not([open]) > ul, .qs-hub__nav details:not([open]) > .wp-block-page-list { display: none; }
  .qs-hub__nav details[open] > ul, .qs-hub__nav details[open] > .wp-block-page-list { border: 1px solid var(--qs-ink); border-top: 0; padding: 4px 0; }
  .qs-hub__nav details[open] summary .qs-i { transform: rotate(180deg); }
}

/* ---------- Article (04) ---------- */
.qs-article { display: grid; grid-template-columns: 44px minmax(0, 720px); gap: 80px; justify-content: center; padding-top: 64px; padding-bottom: 80px; }
.qs-article > .qs-share { transform: translateX(-62px); }
.qs-share { position: sticky; top: var(--qs-sticky); align-self: start; display: grid; gap: 8px; }
.qs-share__label { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--qs-text); writing-mode: vertical-rl; transform: rotate(180deg); justify-self: center; margin-bottom: 4px; }
.qs-share a, .qs-share button { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--qs-line); background: #fff; color: var(--qs-blue); cursor: pointer; padding: 0; }
.qs-share a:hover, .qs-share button:hover { border-color: var(--qs-blue); }
.qs-share .qs-i { width: 18px; height: 18px; }
@media (max-width: 1023.98px) {
  .qs-article { grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: 32px; padding-bottom: 32px; }
  .qs-article > .qs-share { transform: none; order: 2; position: sticky; bottom: 0; top: auto; z-index: 20; grid-template-columns: 1fr repeat(4, 44px); align-items: center; margin: 32px calc(var(--qs-gutter) * -1) 0; padding: 10px 16px; background: #fff; border-top: 1px solid var(--qs-line); box-shadow: 0 -6px 16px rgba(17, 17, 17, .06); }
  .qs-share__label { writing-mode: horizontal-tb; transform: none; justify-self: start; margin: 0; font-size: 12px; color: var(--qs-ink); }
}

.qs-related { background: var(--qs-tint); padding: 72px 0 96px; }
.qs-related__head { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-bottom: 28px; }
.qs-related .qs-card { box-shadow: none; }
@media (max-width: 781.98px) { .qs-related { padding: 48px 0 56px; } }

/* ---------- Agenda (05) ---------- */
.qs-filterbar { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 16px; padding: 20px 24px; background: var(--qs-tint); margin-bottom: 48px; }
.qs-field__label { display: block; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--qs-ink); margin-bottom: 6px; }
.qs-monthnav { display: flex; align-items: center; background: #fff; border: 1px solid var(--qs-ink); height: 48px; }
.qs-monthnav button { width: 44px; height: 46px; border: 0; background: none; color: var(--qs-blue); cursor: pointer; display: grid; place-items: center; }
.qs-monthnav button:disabled { color: var(--qs-line); cursor: default; }
.qs-monthnav button .qs-i { width: 18px; height: 18px; }
.qs-monthnav output { min-width: 170px; text-align: center; font-size: 16px; font-weight: 600; color: var(--qs-ink); }
.qs-filterbar .qs-seg { margin-left: auto; }
@media (max-width: 781.98px) { .qs-filterbar { padding: 16px; } .qs-filterbar .qs-seg { margin-left: 0; width: 100%; } .qs-filterbar .qs-seg button { flex: 1; justify-content: center; } .qs-monthnav { width: 100%; justify-content: space-between; } }

.qs-month { margin-bottom: 56px; }
.qs-month__title { display: flex; align-items: center; gap: 20px; margin: 0 0 24px !important; font-size: 24px; font-weight: 700; letter-spacing: -.01em; color: var(--qs-ink); }
.qs-month__title::after { content: ""; flex: 1; height: 1px; background: var(--qs-line); }

.qs-datebadge { position: absolute; top: 12px; left: 12px; z-index: 1; width: 56px; padding: 7px 0 6px; text-align: center; background: #fff; color: var(--qs-blue); line-height: 1; }
.qs-datebadge__d { display: block; font-size: 26px; font-weight: 700; }
.qs-datebadge__m { display: block; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; margin-top: 3px; }
.qs-ev__facts { display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: 14px; }
.qs-ev__facts > * { display: flex; align-items: center; gap: 6px; }
.qs-ev__facts .qs-i { width: 15px; height: 15px; color: var(--qs-blue); }
.qs-ev__range { font-size: 13px; }
.qs-ev__range::first-letter { text-transform: uppercase; }
/* first upcoming event highlighted */
.qs-ev.is-next { background: var(--qs-blue); border-color: var(--qs-blue); color: #fff; }
.qs-ev.is-next .qs-card__title, .qs-ev.is-next .wp-block-post-title, .qs-ev.is-next .qs-ev__range, .qs-ev.is-next .qs-card__more { color: #fff; }
.qs-ev.is-next .qs-datebadge { background: var(--qs-amber); color: var(--qs-ink); }
.qs-ev.is-next .qs-ev__facts .qs-i { color: var(--qs-amber); }
.qs-ev.is-next .qs-card__more .qs-i { color: #fff; }
.qs-ev.is-past { opacity: .7; }

.qs-empty { border: 1px dashed var(--qs-blue); padding: 56px 24px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; }
.qs-empty > .qs-i { width: 48px; height: 48px; color: var(--qs-blue); }
.qs-empty__title { font-size: 24px; font-weight: 700; color: var(--qs-ink); }
.qs-empty p { max-width: 500px; font-size: 17px; color: var(--qs-text); }
.qs-empty__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 12px; }

.qs-cal { border-left: 1px solid var(--qs-line); border-top: 1px solid var(--qs-line); }
.qs-cal__row { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.qs-cal__dow { padding: 12px; font-size: 12px; font-weight: 600; letter-spacing: .12em; color: var(--qs-ink); border-right: 1px solid var(--qs-line); border-bottom: 1px solid var(--qs-line); background: var(--qs-tint); }
.qs-cal__cell { min-height: 112px; padding: 10px; border-right: 1px solid var(--qs-line); border-bottom: 1px solid var(--qs-line); background: #fff; display: flex; flex-direction: column; gap: 6px; }
.qs-cal__cell.is-out { background: #f7f8fa; }
.qs-cal__cell.is-past .qs-cal__n { color: var(--qs-muted); }
.qs-cal__cell.is-today { box-shadow: inset 0 0 0 2px var(--qs-ink); }
.qs-cal__cell.is-today .qs-cal__n { font-weight: 700; }
.qs-cal__n { font-size: 15px; color: var(--qs-ink); }
.qs-cal__ev { display: block; padding: 6px 8px; background: var(--qs-tint); color: var(--qs-blue) !important; text-decoration: none; font-size: 13px; font-weight: 600; line-height: 1.3; }
.qs-cal__ev:hover { background: var(--qs-blue); color: #fff !important; }
.qs-cal__note { margin-top: 12px !important; font-size: 14px; color: var(--qs-text); }
@media (max-width: 781.98px) {
  .qs-cal__dow { padding: 8px 0; text-align: center; font-size: 11px; letter-spacing: 0; }
  .qs-cal__cell { min-height: 56px; padding: 6px 4px; align-items: center; }
  .qs-cal__ev { width: 8px; height: 8px; padding: 0; font-size: 0; background: var(--qs-blue); }
}

/* Event single (06) */
.qs-evhero { position: relative; z-index: 2; margin-top: -230px; }
.qs-evhero__img, .qs-evhero .wp-block-post-featured-image { margin: 0 !important; height: 440px; background: var(--qs-tint); }
.qs-evhero__img img, .qs-evhero .wp-block-post-featured-image img { width: 100%; height: 100% !important; object-fit: cover; display: block; }
.qs-evdate { position: absolute; left: 0; bottom: -48px; display: flex; align-items: stretch; background: #fff; box-shadow: 0 12px 32px rgba(17, 17, 17, .14); }
.qs-evdate__day { background: var(--qs-amber); color: var(--qs-ink); padding: 20px 24px; display: flex; flex-direction: column; justify-content: center; line-height: 1; }
.qs-evdate__status { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 8px; }
.qs-evdate__big { font-size: 56px; font-weight: 700; letter-spacing: -.03em; }
.qs-evdate__my { font-size: 14px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; margin-top: 6px; }
.qs-evdate__facts { padding: 20px 28px; display: flex; flex-direction: column; justify-content: center; gap: 6px; font-size: 15px; color: var(--qs-text); }
.qs-evdate__facts > * { display: flex; align-items: center; gap: 8px; }
.qs-evdate__facts .qs-i { width: 16px; height: 16px; color: var(--qs-blue); }
.qs-evdate.is-past .qs-evdate__day { background: var(--qs-line); }
.qs-evbody { display: grid; grid-template-columns: minmax(0, 720px) 340px; justify-content: space-between; align-items: start; gap: 48px; padding-top: 104px; padding-bottom: 96px; }
.qs-evbody .qs-eyebrow { color: var(--qs-blue); margin-bottom: 8px; }
.qs-evbody .qs-h1 { margin-bottom: 24px; }
@media (max-width: 1023.98px) {
  .qs-evhero { margin-top: -120px; }
  .qs-evhero__img, .qs-evhero .wp-block-post-featured-image { height: auto; aspect-ratio: 4 / 3; }
  .qs-evdate { left: 16px; bottom: -32px; }
  .qs-evdate__facts { display: none; }
  .qs-evdate__day { padding: 12px 16px; }
  .qs-evdate__big { font-size: 36px; }
  .qs-evbody { grid-template-columns: 1fr; padding-top: 64px; gap: 32px; }
  .qs-evbody > aside { order: -1; position: static; }
}

/* Info panel (06 infos pratiques, 08 coordonnées) */
.qs-panel { position: sticky; top: var(--qs-sticky); border: 1px solid var(--qs-line); box-shadow: 0 8px 24px rgba(17, 17, 17, .06); background: #fff; }
.qs-panel__title { margin: 0 !important; padding: 20px 24px; background: var(--qs-blue); color: #fff; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.qs-panel__title--ink { background: var(--qs-ink); }
.qs-panel dl { margin: 0; padding: 8px 24px; }
.qs-panel__row { display: grid; grid-template-columns: 20px 1fr; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--qs-line); }
.qs-panel__row > .qs-i { width: 18px; height: 18px; margin-top: 2px; color: var(--qs-blue); }
.qs-panel dt { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--qs-text); }
.qs-panel dd { margin: 2px 0 0; font-size: 16px; line-height: 1.45; color: var(--qs-ink); overflow-wrap: anywhere; }
.qs-panel dd a { text-underline-offset: 3px; }
.qs-panel__row.is-empty { display: none; }
.qs-panel__actions { padding: 16px 24px 24px; display: grid; gap: 8px; }
.qs-panel__ics { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; color: var(--qs-ink) !important; text-decoration: none; font-size: 14px; font-weight: 500; background: none; border: 0; cursor: pointer; font-family: inherit; }
.qs-panel__ics .qs-i { width: 16px; height: 16px; color: var(--qs-blue); }
.qs-panel__body { padding: 20px 24px; }
@media (max-width: 781.98px) { .qs-panel dl { padding: 0 16px; } .qs-panel__title { padding: 14px 16px; } .qs-panel__actions { padding: 12px 16px 16px; } }

.qs-map iframe, iframe.qs-map { width: 100%; height: 360px; border: 1px solid var(--qs-line); display: block; filter: grayscale(.6); }
.qs-map__links { margin-top: 12px !important; font-size: 15px; }

.qs-stickybar { display: none; }
@media (max-width: 781.98px) {
  .qs-stickybar { display: grid; position: sticky; bottom: 0; z-index: 30; padding: 12px 16px; background: #fff; border-top: 1px solid var(--qs-line); box-shadow: 0 -6px 16px rgba(17, 17, 17, .06); }
  .qs-stickybar--3 { grid-template-columns: repeat(3, 1fr); padding: 0; }
  .qs-stickybar--3 a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 64px; color: var(--qs-blue); text-decoration: none; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
  .qs-stickybar--3 a:first-child { background: var(--qs-blue); color: #fff; }
  .qs-stickybar--3 a + a { border-left: 1px solid var(--qs-line); }
  .qs-stickybar--3 .qs-i { width: 20px; height: 20px; }
}

/* ---------- Annuaire (07/08) ---------- */
.qs-dirsearch { max-width: 720px; margin-top: 32px; }
.qs-dirsearch__row { display: flex; height: 56px; }
.qs-dirsearch input { flex: 1; min-width: 0; border: 0; padding: 0 20px; font: 400 17px var(--qs-font); color: var(--qs-ink); background: #fff; border-radius: 0; }
.qs-dirsearch input::placeholder { color: var(--qs-muted); }
.qs-dirsearch button { display: flex; align-items: center; gap: 10px; padding: 0 24px; border: 0; border-left: 1px solid var(--qs-line); background: #fff; color: var(--qs-blue); font: 600 12px var(--qs-font); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.qs-dirsearch button .qs-i { width: 18px; height: 18px; }
.qs-dirsearch .qs-field__label { color: #fff; margin-bottom: 8px; }
@media (max-width: 639.98px) { .qs-dirsearch button span:not(.qs-i) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } .qs-dirsearch button { padding: 0 16px; } }

.qs-toolbar { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 16px; padding-bottom: 20px; border-bottom: 1px solid var(--qs-line); margin: 24px 0 32px; }
.qs-toolbar__count { margin: 0; font-size: 16px; color: var(--qs-text); padding-bottom: 12px; }
.qs-toolbar__count strong { color: var(--qs-ink); font-size: 20px; }
.qs-toolbar .qs-seg { margin-left: auto; }
.qs-select { position: relative; }
.qs-select select { appearance: none; -webkit-appearance: none; width: 100%; min-width: 240px; height: 48px; padding: 0 44px 0 14px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 14px center no-repeat; border: 1px solid var(--qs-ink); border-radius: 0; font: 400 16px var(--qs-font); color: var(--qs-ink); cursor: pointer; }

.qs-dircard .qs-card__media { background: var(--qs-blue); display: grid; place-items: center; }
.qs-dircard .qs-card__media img { position: absolute; inset: 0; }
.qs-dircard.has-logo .qs-card__media { background: #f2f4f7; }
.qs-dircard.has-logo .qs-card__media img { object-fit: contain; padding: 16px; background: #fff; }
.qs-initial { width: 88px; height: 88px; display: grid; place-items: center; border: 2px solid #fff; color: #fff; font-size: 44px; font-weight: 700; letter-spacing: -.02em; }
.qs-dircard .qs-card__body { gap: 10px; padding: 18px 20px 12px; }
.qs-dircard .qs-chip { align-self: flex-start; }
.qs-dircard .qs-chip:empty, .qs-chip:has(.jet-listing-dynamic-field__content:empty) { display: none; }
.qs-contactlines { display: grid; gap: 6px; font-size: 15px; color: var(--qs-text); }
.qs-contactlines > * { display: flex; align-items: center; gap: 8px; }
.qs-contactlines .qs-i { width: 15px; height: 15px; color: var(--qs-blue); }
.qs-contactlines a { color: var(--qs-blue); font-weight: 600; text-underline-offset: 3px; min-height: 32px; display: inline-flex; align-items: center; gap: 8px; }

/* list view for directory */
.qs-dirlist.is-list .wp-block-post-template, .qs-dirlist.is-list > ul { grid-template-columns: 1fr; gap: 0; }
.qs-dirlist.is-list .qs-dircard { display: grid; grid-template-columns: 96px minmax(0, 1.3fr) minmax(0, 1.4fr) 44px; align-items: center; gap: 28px; padding: 16px 0; border: 0; border-bottom: 1px solid var(--qs-line); box-shadow: none; }
.qs-dirlist.is-list .qs-dircard .qs-card__media { width: 96px; height: 96px; aspect-ratio: auto; }
.qs-dirlist.is-list .qs-initial { width: auto; height: auto; border: 0; font-size: 36px; }
.qs-dirlist.is-list .qs-card__body { display: contents; }
.qs-dirlist.is-list .qs-card__more { width: 44px; height: 44px; justify-content: center; border: 1px solid var(--qs-blue); font-size: 0; gap: 0; align-self: center; }
.qs-dirlist.is-list .qs-card__more .qs-i { width: 22px; height: 22px; }
@media (max-width: 781.98px) {
  .qs-dirlist .wp-block-post-template, .qs-dirlist > ul { grid-template-columns: 1fr; gap: 12px; }
  .qs-dirlist .qs-dircard, .qs-dirlist.is-list .qs-dircard { display: grid; grid-template-columns: 80px 1fr; gap: 4px 14px; padding: 12px; border: 1px solid var(--qs-line); align-items: start; }
  .qs-dirlist .qs-dircard .qs-card__media { width: 80px; height: 80px; aspect-ratio: auto; grid-row: span 4; }
  .qs-dirlist .qs-initial { width: auto; height: auto; border: 0; font-size: 30px; }
  .qs-dirlist .qs-card__body { display: contents; }
  .qs-dirlist .qs-card__more { display: none; }
  .qs-dirlist .qs-card__title, .qs-dirlist .qs-dircard .wp-block-post-title { font-size: 17px; }
  .qs-toolbar .qs-seg { display: none; }
}

/* Fiche (08) */
.qs-fiche { display: grid; grid-template-columns: minmax(0, 1fr) 540px; gap: 64px; align-items: center; padding-top: 72px; padding-bottom: 64px; }
.qs-fiche__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.qs-fiche__chips .qs-chip { font-size: 12px; padding: 6px 12px; }
.qs-fiche .qs-h1 { margin-bottom: 16px; color: var(--qs-ink); }
.qs-fiche .qs-lead { margin-bottom: 32px; }
.qs-fiche__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.qs-fiche__visual { position: relative; height: 380px; overflow: hidden; background: var(--qs-blue); display: grid; place-items: center; }
.qs-fiche__visual img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; display: block; }
.qs-fiche__visual.has-logo { background: #f2f4f7; }
.qs-fiche__visual.has-logo img { object-fit: contain; padding: 40px; }
.qs-fiche__visual::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 64px; background: url(https://dev.mairie-quinssaines.fr/wp-content/uploads/2026/09/separateur-pattern-hz-w.svg) repeat-y right top / 100% auto; pointer-events: none; }
.qs-fiche__visual .qs-initial { width: 140px; height: 140px; border-width: 3px; font-size: 72px; }
.qs-fichebody { display: grid; grid-template-columns: minmax(0, 680px) 380px; justify-content: space-between; align-items: start; gap: 48px; padding-bottom: 96px; }
@media (max-width: 1023.98px) {
  .qs-fiche { grid-template-columns: 1fr; gap: 24px; padding-top: 32px; padding-bottom: 32px; }
  .qs-fiche__visual { height: 220px; order: -1; }
  .qs-fichebody { grid-template-columns: 1fr; gap: 32px; padding-bottom: 48px; }
  .qs-fichebody > aside { order: -1; position: static; }
}
@media (max-width: 781.98px) { .qs-fiche__actions { display: none; } }

/* ---------- Contact / search / 404 (09) ---------- */
.qs-contact { position: relative; z-index: 2; margin-top: -120px; display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 32px; align-items: start; padding-bottom: 96px; }
.qs-form { background: #fff; padding: 48px; box-shadow: 0 12px 32px rgba(17, 17, 17, .12); border: 1px solid var(--qs-line); }
.qs-form__intro { font-size: 17px; line-height: 1.6; color: var(--qs-text); margin-bottom: 8px !important; }
.qs-form__req { font-size: 14px; color: var(--qs-text); margin-bottom: 28px !important; }
.qs-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; }
.qs-form__full { grid-column: 1 / -1; }
.qs-form label, .qs-form .qs-form__label { display: block; margin-bottom: 6px; font-size: 15px; font-weight: 600; color: var(--qs-ink); }
.qs-form input[type=text], .qs-form input[type=email], .qs-form input[type=tel], .qs-form select, .qs-form textarea { width: 100%; height: 48px; padding: 0 14px; border: 1px solid var(--qs-ink); border-radius: 0; font: 400 16px var(--qs-font); color: var(--qs-ink); background: #fff; }
.qs-form textarea { height: auto; padding: 12px 14px; line-height: 1.6; resize: vertical; }
.qs-form select { appearance: none; -webkit-appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 14px center no-repeat; padding-right: 44px; }
.qs-form [aria-invalid="true"] { border: 2px solid var(--qs-red) !important; }
.qs-form__err { display: flex; align-items: center; gap: 6px; margin-top: 6px !important; font-size: 14px; color: var(--qs-red); }
.qs-form__err .qs-i { width: 15px; height: 15px; }
.qs-form__err[hidden] { display: none; }
.qs-form__summary { display: grid; grid-template-columns: 22px 1fr; gap: 12px; padding: 16px 20px; margin-bottom: 28px; border: 2px solid var(--qs-red); background: var(--qs-red-soft); font-size: 15px; color: var(--qs-ink); }
.qs-form__summary[hidden] { display: none; }
.qs-form__summary > .qs-i { width: 20px; height: 20px; color: var(--qs-red); }
.qs-form__summary ul { margin: 6px 0 0; padding-left: 18px; }
.qs-form__summary a { color: var(--qs-red); }
.qs-form__file { position: relative; display: flex !important; align-items: center; gap: 12px; min-height: 56px; padding: 0 16px; border: 1px dashed var(--qs-blue); color: var(--qs-blue) !important; font-weight: 500 !important; cursor: pointer; }
.qs-form__file input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.qs-form__file .qs-i { width: 18px; height: 18px; }
.qs-form__check { display: grid !important; grid-template-columns: 24px 1fr; gap: 12px; align-items: start; font-weight: 400 !important; line-height: 1.5; cursor: pointer; }
.qs-form__check input { width: 24px; height: 24px; margin: 0; accent-color: var(--qs-blue); }
.qs-form__check input[aria-invalid="true"] { outline: 2px solid var(--qs-red); outline-offset: 1px; }
.qs-form__check + .qs-form__err { margin-left: 36px; }
.qs-form button[type=submit] { margin-top: 32px; min-height: 52px; padding: 0 28px; }
.qs-form__ok { padding: 16px 20px; margin-bottom: 28px; border: 2px solid var(--qs-blue); background: var(--qs-tint); color: var(--qs-ink); }
.qs-form__ok[hidden] { display: none; }
.qs-contact__aside { display: grid; gap: 24px; }
.qs-contact__aside .qs-panel { position: static; }
.qs-panel__phone { display: flex; align-items: center; gap: 12px; font-size: 20px; font-weight: 700; color: var(--qs-blue) !important; text-decoration: none; }
.qs-panel__phone .qs-i { width: 18px; height: 18px; }
.qs-hours { width: 100%; border-collapse: collapse; font-size: 15px; }
.qs-hours caption { text-align: left; padding-bottom: 8px; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--qs-text); }
.qs-hours th, .qs-hours td { padding: 8px 0; border-top: 1px solid var(--qs-tint); font-weight: 400; text-align: left; }
.qs-hours td { text-align: right; }
.qs-hours .is-today th, .qs-hours .is-today td { font-weight: 700; }
.qs-urgent { padding: 24px; background: var(--qs-tint); }
.qs-urgent p { font-size: 15px; line-height: 1.6; color: var(--qs-text); }
.qs-urgent .qs-eyebrow { color: var(--qs-ink); margin-bottom: 8px; }
.qs-contact__quick { display: none; }
@media (max-width: 1023.98px) {
  .qs-contact { grid-template-columns: 1fr; margin-top: -40px; }
  .qs-contact__aside { order: -1; }
  .qs-form { padding: 24px 20px; }
  .qs-form__grid { grid-template-columns: 1fr; }
}
@media (max-width: 781.98px) { .qs-contact__quick { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 16px; } }

.qs-search { display: flex; height: 56px; max-width: 760px; }
.qs-search input, .qs-search .wp-block-search__input { flex: 1; min-width: 0; height: 56px; border: 1px solid var(--qs-ink); border-right: 0; border-radius: 0; padding: 0 20px; font: 400 17px var(--qs-font); color: var(--qs-ink); background: #fff; margin: 0; }
.qs-search button, .qs-search .wp-block-search__button { display: flex; align-items: center; gap: 10px; height: 56px; margin: 0; padding: 0 24px; border: 0; border-radius: 0; background: var(--qs-blue); color: #fff; font: 600 12px var(--qs-font); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.qs-search .wp-block-search__inside-wrapper { display: flex; width: 100%; padding: 0; border: 0; }
.qs-search.wp-block-search { display: block; max-width: 760px; height: auto; }
.qs-search--light input, .qs-search--light .wp-block-search__input { border: 0; }
.qs-search--light button, .qs-search--light .wp-block-search__button { background: #fff; color: var(--qs-blue); border-left: 1px solid var(--qs-line); }

.qs-results { list-style: none; margin: 0; padding: 0; max-width: 820px; }
.qs-results > li, .qs-results .wp-block-post { padding: 28px 0; border-bottom: 1px solid var(--qs-line); margin: 0; }
.qs-result__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 8px !important; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--qs-text); }
.qs-result__meta .wp-block-post-date { font-size: 12px; }
.qs-results .wp-block-post-title, .qs-result__title { margin: 0 0 8px !important; font-size: 22px; line-height: 1.3; font-weight: 700; }
.qs-results .wp-block-post-title a, .qs-result__title a { color: var(--qs-ink) !important; text-decoration: underline; text-decoration-color: var(--qs-blue); text-underline-offset: 4px; }
.qs-results .wp-block-post-excerpt, .qs-result__ex { font-size: 16px; line-height: 1.6; color: var(--qs-text); }
.qs-results .wp-block-post-excerpt__excerpt { margin: 0; }
.qs-results mark { background: var(--qs-amber-soft); color: var(--qs-ink); }
.qs-results .wp-block-query-no-results { padding: 28px 0; border: 0; }

.qs-404 { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 64px; align-items: end; }
.qs-404 .qs-h1 { font-size: clamp(40px, 5vw, 64px); line-height: 1.05; letter-spacing: -.03em; margin: 12px 0 20px; }
.qs-404 p { max-width: 560px; font-size: 18px; line-height: 1.6; margin-bottom: 32px !important; }
.qs-404__box { background: #fff; color: var(--qs-ink); padding: 28px 32px; }
.qs-404__box ul { list-style: none; margin: 8px 0 20px; padding: 0; }
.qs-404__box li { border-bottom: 1px solid var(--qs-line); }
.qs-404__box li a { display: flex; align-items: center; justify-content: space-between; min-height: 52px; color: var(--qs-ink) !important; text-decoration: none; font-size: 16px; font-weight: 500; }
.qs-404__box li a .qs-i { width: 22px; height: 22px; color: var(--qs-blue); }
@media (max-width: 1023.98px) { .qs-404 { grid-template-columns: 1fr; gap: 32px; } }

/* ---------- Section spacing helpers ---------- */
.qs-section { padding-top: 48px; padding-bottom: 96px; }
.qs-head-row { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 16px 24px; }
.qs-band .qs-h1 + .qs-band__intro { margin-top: 12px !important; max-width: 640px; font-size: 18px; line-height: 1.6; }
@media (max-width: 781.98px) { .qs-section { padding-top: 24px; padding-bottom: 56px; } }

/* Utility: hide JetEngine empty wrappers */
.qs-page .jet-listing-dynamic-field__inline-wrap, .qs-page .jet-listing-dynamic-field { display: contents; }
.qs-page .jet-listing-dynamic-field-block { display: contents; }

@media print {
  .qs-band, .qs-toc, .qs-share, .qs-pagefoot__actions, .qs-related, .qs-stickybar, header.gsbp-e548c36603a7c, footer { display: none !important; }
  .qs-content { display: block; padding: 0; }
}

@media (prefers-reduced-motion: reduce) { .qs-page * { transition: none !important; } }

/* ---------- Fixes ---------- */
.qs-page [hidden] { display: none !important; }
.qs-dircard .qs-chip { justify-self: start; }
@media (max-width: 781.98px) { .qs-dirlist .qs-dircard.has-logo .qs-card__media img { padding: 6px; } }

/* =========================================================
   WordPress bindings (core + JetEngine block output)
   ========================================================= */
/* Icon aliases without double dash, used inside JetEngine formats */
.qs-i.i-pin { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/map-pin.svg); }
.qs-i.i-phone { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/phone.svg); }
.qs-i.i-mail { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/mail.svg); }
.qs-i.i-clock { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/clock.svg); }
.qs-i.i-user { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/user.svg); }
.qs-i.i-arrow { --i: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/move-right.svg); }

.qs-page .wp-block-group { margin-block: 0; }
.qs-page .jet-listing-dynamic-field-block:empty, .qs-page .jet-listing-dynamic-link-block:empty { display: none; }
.qs-page .jet-listing-dynamic-link, .qs-page .jet-listing-dynamic-link-block, .qs-page .jet-listing-dynamic-image { display: contents; }
.qs-ev__start, .qs-ev__end { display: none !important; }
.qs-ev__facts .jet-listing-dynamic-field__content, .qs-evdate__facts .jet-listing-dynamic-field__content { display: inline-flex; align-items: center; gap: 6px; }
.qs-evdate__facts .jet-listing-dynamic-field__content { gap: 8px; }
.qs-ev__facts .qs-i, .qs-evdate__facts .qs-i { width: 15px; height: 15px; color: var(--qs-blue); }
.qs-ev.is-next .qs-ev__facts .qs-i { color: var(--qs-amber); }
.qs-ev .qs-card__media .wp-block-post-featured-image, .qs-card__media > .wp-block-post-featured-image { position: absolute; inset: 0; }
.qs-card__media:not(:has(img)) { background: var(--qs-blue) var(--qs-wave) repeat-x left bottom / auto 40%; }
.qs-grid > .wp-block-post-template > li { display: flex; }
.qs-grid > .wp-block-post-template > li > .qs-card { width: 100%; }

/* JetEngine dynamic link as card "more" (stretched) */
.qs-card__more .jet-listing-dynamic-link__link, a.qs-card__more-link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--qs-ink) !important; text-decoration: none; font-size: 14px; font-weight: 700; }
.qs-card__more .jet-listing-dynamic-link__link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.qs-card__more .jet-listing-dynamic-link__label::after { content: ""; display: inline-block; vertical-align: middle; margin-left: 10px; width: 24px; height: 24px; background: var(--qs-blue); -webkit-mask: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/move-right.svg) center / contain no-repeat; mask: url(https://cdn.jsdelivr.net/npm/lucide-static@0.460.0/icons/move-right.svg) center / contain no-repeat; transition: transform .15s; }
.qs-card:hover .qs-card__more .jet-listing-dynamic-link__label::after { transform: translateX(3px); }
.qs-card__more:has(.jet-listing-dynamic-link) { margin-top: auto; align-self: flex-end; }
.qs-dircard > .qs-card__body > .qs-card__more { margin-top: auto; align-self: flex-end; }

/* Directory names rendered by JetEngine */
.qs-name, .qs-name .jet-listing-dynamic-field__content { margin: 0; font-size: 20px; line-height: 1.3; font-weight: 700; letter-spacing: -.01em; color: var(--qs-ink); }
.qs-fiche .qs-name, .qs-fiche .qs-name .jet-listing-dynamic-field__content { font-size: clamp(32px, 4vw, 48px); line-height: 1.1; letter-spacing: -.02em; }
.qs-addr { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 0 5px; }
.qs-addr > .qs-i { margin-top: 3px; margin-right: 3px; }
.qs-dircard .qs-card__media .jet-listing-dynamic-image__img, .qs-fiche__visual .jet-listing-dynamic-image__img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: contain; padding: 16px; background: #fff; }
.qs-fiche__visual .jet-listing-dynamic-image__img { padding: 40px; }
.qs-card__media:has(.jet-listing-dynamic-image__img) .qs-initial, .qs-fiche__visual:has(.jet-listing-dynamic-image__img) .qs-initial { display: none; }
.qs-dirlist.is-list .qs-name, .qs-dirlist.is-list .qs-name .jet-listing-dynamic-field__content { font-size: 20px; }
@media (max-width: 781.98px) {
  .qs-dirlist .qs-name, .qs-dirlist .qs-name .jet-listing-dynamic-field__content { font-size: 17px; }
  .qs-dirlist .qs-dircard .qs-card__media .jet-listing-dynamic-image__img { padding: 6px; }
}
.qs-dirlist.is-list .qs-card__more .jet-listing-dynamic-link__link { width: 44px; height: 44px; justify-content: center; border: 1px solid var(--qs-blue); font-size: 0; }
.qs-dirlist.is-list .qs-card__more .jet-listing-dynamic-link__label::after { margin: 0; width: 22px; height: 22px; }
.qs-dirlist.is-list .qs-card__more { width: auto; height: auto; border: 0; }

/* Panel values from JetEngine */
.qs-panel dd .jet-listing-dynamic-field__content, .qs-panel dd .jet-listing-dynamic-field__content * { font-size: 16px; }
.qs-panel__actions .jet-listing-dynamic-link__link, .qs-stickybar .jet-listing-dynamic-link__link { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 22px; background: var(--qs-blue); border: 1px solid var(--qs-blue); color: #fff !important; font: 600 12px var(--qs-font); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; }
.qs-panel__actions .jet-listing-dynamic-link__link:hover { background: var(--qs-blue-dark); }

/* Page-chapeau content lives inside post-content */
.qs-hub > .wp-block-post-content { display: contents; }
.qs-hub:not(:has(.qs-hub__nav)) { grid-template-columns: 1fr; }
.qs-hub__nav .wp-block-details summary { list-style: none; }
.qs-hub__nav .wp-block-page-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.qs-hub__nav .wp-block-navigation__submenu-container { display: none !important; }
.qs-hub__nav .wp-block-pages-list__item__link { display: flex; }
.qs-tiles .wp-block-post { margin: 0; position: relative; display: flex; flex-direction: column; border: 1px solid var(--qs-line); background: #fff; transition: border-color .15s, box-shadow .15s; }
.qs-tiles .wp-block-post:hover { border-color: #b9c2d2; box-shadow: 0 8px 24px rgba(17, 17, 17, .08); }
.qs-tiles .wp-block-post:not(:has(.qs-tile__media))::before { content: ""; display: block; aspect-ratio: 3 / 2; background: var(--qs-blue) var(--qs-wave) repeat-x left bottom / auto 40%; }
.qs-tiles .wp-block-post:hover .qs-tile__media img { filter: none; mix-blend-mode: normal; }
.qs-tiles .wp-block-post:hover .qs-tile__label::after { transform: translateX(3px); }
.qs-tiles .qs-tile__media { aspect-ratio: 3 / 2; }
.qs-tiles .qs-tile__media a { display: block; height: 100%; }
@media (max-width: 639.98px) {
  .qs-tiles .wp-block-post { display: grid; grid-template-columns: 96px 1fr; }
  .qs-tiles .wp-block-post::before, .qs-tiles .qs-tile__media { aspect-ratio: auto !important; height: 80px; }
}

/* Category pills (core/categories) */
.qs-pillrow { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 40px; }
.qs-pillrow .wp-block-categories { list-style: none; margin: 0; padding: 0; display: contents; }
.qs-pillrow .cat-item-1 { display: none; }
.qs-pillrow .cat-item a, .qs-pillrow > p a { display: flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--qs-line); background: #fff; color: var(--qs-ink) !important; font: 600 12px/1.2 var(--qs-font); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; white-space: nowrap; }
.qs-pillrow .current-cat a, .qs-pillrow > p a[aria-current] { background: var(--qs-blue); border-color: var(--qs-blue); color: #fff !important; }
.qs-pillrow > p { margin: 0; }
@media (max-width: 781.98px) { .qs-pillrow { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--qs-gutter) * -1); padding-inline: var(--qs-gutter); } }

/* Feature (À la une) from core/query */
.qs-featureq .wp-block-post-template { list-style: none; margin: 0; padding: 0; }
.qs-featureq .wp-block-post { margin: 0; }
.qs-feature .wp-block-post-terms a { color: inherit !important; text-decoration: none; }
.qs-feature .wp-block-post-terms { font-size: 14px; }
.qs-card .wp-block-post-featured-image a { display: block; height: 100%; }

/* Post terms chip in article hero */
.qs-photo-hero .wp-block-post-terms a { display: inline-block; background: #fff; color: var(--qs-blue) !important; text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; padding: 6px 10px; }
.qs-photo-hero .wp-block-post-terms__separator { display: none; }
.qs-photo-hero .wp-block-post-terms { display: flex; gap: 6px; }

/* Search results */
.qs-results.wp-block-query .wp-block-post-template { list-style: none; margin: 0; padding: 0; max-width: 820px; }
.qs-results .wp-block-post-date { font-size: 12px; }

/* Misc */
.qs-pagefoot__date { display: flex; gap: .3em; margin: 0; font-size: 14px; color: var(--qs-text); }
.qs-pagefoot__date p, .qs-pagefoot__date .wp-block-post-date { margin: 0; font-size: 14px; }
.qs-page .wp-block-post-content.qs-prose { max-width: none; }
.qs-page .wp-block-query-no-results { color: var(--qs-text); font-size: 17px; }
.qs-panel__list { padding: 8px 24px; }
.qs-panel__row > .wp-block-html, .qs-panel__row > p { display: contents; }
.qs-panel__row > .qs-i { width: 18px; height: 18px; margin-top: 2px; color: var(--qs-blue); }
.qs-dt { margin: 0 !important; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--qs-text); }
.qs-dd { margin-top: 2px; font-size: 16px; line-height: 1.45; color: var(--qs-ink); overflow-wrap: anywhere; }
.qs-dd .qs-addr > .qs-i { display: none; }
.qs-dd a { text-underline-offset: 3px; }
.qs-panel__row.is-empty, .qs-panel__row[hidden] { display: none; }
@media (max-width: 781.98px) { .qs-panel__list { padding: 0 16px; } }
.qs-page h1.jet-listing-dynamic-field__content, .qs-page h2.jet-listing-dynamic-field__content, .qs-page h3.jet-listing-dynamic-field__content { margin: 0; font-size: inherit; line-height: inherit; }
.qs-name { display: block; }
.qs-fiche__actions .jet-listing-dynamic-field__content { display: contents; }
.qs-stickybar--3 .jet-listing-dynamic-field-block, .qs-stickybar--3 .jet-listing-dynamic-field__content { display: contents; }
.qs-stickybar--3 > .wp-block-html { display: contents; }
.qs-facts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; font-size: 15px; }
.qs-facts .wp-block-post-date { margin-right: 12px; }
.qs-fact { display: inline-flex; align-items: center; gap: 8px; }
.qs-fact .qs-i { width: 16px; height: 16px; }
.qs-contactlines > .jet-listing-dynamic-field-block { display: contents; }
.qs-contactlines .jet-listing-dynamic-field__content { display: inline-flex; }
.qs-contactlines a[data-qs-auto] { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; position: relative; z-index: 2; color: var(--qs-blue); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.qs-contactlines a[data-qs-auto] .qs-i { width: 15px; height: 15px; }
.qs-contactlines .qs-addr > .qs-i { width: 15px; height: 15px; color: var(--qs-blue); }
.qs-datebadge:empty { display: none; }
.qs-dd .jet-listing-dynamic-field__content { display: inline; }
@media (max-width: 1023.98px) {
  .qs-band--tall { padding-bottom: 104px; }
  .qs-hub { margin-top: -72px; }
  .qs-evhero { margin-top: -72px; }
  .qs-evbody > aside { order: 0; }
}

/* Page chapeau : hub remonté sous le fil d'Ariane, coins arrondis */
.qs-hub { border-radius: 8px; overflow: clip; }
.qs-page .qs-band--tall:has(+ .qs-wrap .qs-hub) { padding-bottom: 240px; }
.qs-page .qs-hub { margin-top: -216px; }
@media (max-width: 1023.98px) {
  .qs-page .qs-band--tall:has(+ .qs-wrap .qs-hub) { padding-bottom: 104px; }
  .qs-page .qs-hub { margin-top: -88px; }
}

/* Événement : visuel remonté sous le fil d'Ariane, coins arrondis.
   (.qs-page .wp-block-group { margin-block: 0 } écrasait les marges négatives) */
.qs-page .qs-band--tall:has(+ .qs-wrap .qs-evhero) { padding-bottom: 240px; }
body .qs-page .qs-wrap > .qs-hub { margin-top: -216px; }
body .qs-page .qs-wrap > .qs-evhero { margin-top: -216px; }
.qs-evhero__img, .qs-evhero .wp-block-post-featured-image { border-radius: 8px; overflow: clip; }
.qs-evdate { border-radius: 8px; overflow: clip; }
.qs-page .qs-contact { margin-top: -120px; }
@media (max-width: 1023.98px) {
  .qs-page .qs-band--tall:has(+ .qs-wrap .qs-evhero) { padding-bottom: 104px; }
  body .qs-page .qs-wrap > .qs-hub { margin-top: -88px; }
  body .qs-page .qs-wrap > .qs-evhero { margin-top: -88px; }
  .qs-page .qs-contact { margin-top: -40px; }
}

/* Contact : formulaire remonté sous le titre, coins arrondis */
body .qs-page .wp-block-post-content > .qs-contact { margin-top: -160px; }
.qs-form, .qs-contact__aside .qs-panel, .qs-urgent { border-radius: 8px; overflow: clip; }
@media (max-width: 1023.98px) {
  body .qs-page .wp-block-post-content > .qs-contact { margin-top: -72px; }
}

/* =========================================================
   NAVIGATION — Quinssaines
   ========================================================= */

:root {
  --mm-accent: #15498a;
  --mm-text: #000;
  --mm-muted: rgb(107,114,128);
  --mm-border: rgb(229,231,235);
  --mm-ease: cubic-bezier(.4,0,.2,1);
}

html.mm-locked,
html.mm-locked body {
  overflow: hidden;
}

/* Chevrons du menu principal : pivotent vers le bas à l'ouverture */
[class*="mm-trigger-"] svg {
  transition: transform .3s var(--mm-ease, cubic-bezier(.4,0,.2,1));
}
[class*="mm-trigger-"][aria-expanded="true"] svg {
  transform: rotate(90deg);
}

@media (prefers-reduced-motion: reduce) {
  [class*="mm-trigger-"] svg {
    transition: none;
  }
}

/* =========================================================
   MEGA MENU — desktop uniquement
   ========================================================= */

.mega-menu {
  box-sizing: border-box;
  background: #fff;
  border-radius: 8px;
  color: var(--mm-muted);
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s var(--mm-ease), visibility 0s linear .3s;
}
.mega-menu.is-open {
  opacity: 1;
  visibility: visible;
  transition-delay: 0s;
}

@media (min-width: 992px) {
  .mega-menu {
    position: absolute;
    top: 100%;
    left: -2.5rem;
    right: -2.5rem;
    margin-top: 16px;
    z-index: 9;
  }
}
@media (max-width: 991.98px) {
  .mega-menu {
    display: none !important;
  }
}

.mega-menu .mm-inner {
  display: grid;
  grid-template-columns: 40% 60%;
  align-items: start;
}
.mega-menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Colonne de gauche */
.mega-menu .mm-nav {
  padding: 40px 10px 40px 0;
  max-height: 620px;
  overflow-y: auto;
}
.mega-menu .mm-btn {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: calc(100% - 2.75rem);
  margin-left: 44px;
  padding: 20px;
  border: 0;
  cursor: pointer;
  font-family: 'Roboto-GS', sans-serif;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.75rem;
  text-align: left;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--mm-text);
  background-color: #fff;
  transition: background-color .3s var(--mm-ease), color .3s var(--mm-ease);
}
.mega-menu button.mm-btn:hover,
.mega-menu button.mm-btn:focus-visible,
.mega-menu button.mm-btn.is-active {
  background-color: var(--mm-accent);
  color: #fff;
}
.mega-menu .mm-btn:focus-visible {
  outline: 2px solid var(--mm-accent);
  outline-offset: 2px;
}
.mega-menu a.mm-link,
.mega-menu a.mm-link:visited,
.mega-menu a.mm-link:hover,
.mega-menu a.mm-link:focus-visible {
  background-color: transparent;
  color: var(--mm-text);
}
.mega-menu .mm-chevron {
  flex: 0 0 auto;
  width: .5rem;
  height: 1rem;
}

/* Colonne de droite */
.mega-menu .mm-panels {
  padding: 40px;
}
.mega-menu .mm-panel {
  display: grid;
  grid-auto-flow: column;
  grid-template-rows: repeat(9, min-content);
  align-content: start;
  gap: 20px 40px;
  min-height: 320px;
}
.mega-menu .mm-panel[hidden] {
  display: none;
}
.mega-menu .mm-panel a {
  font-family: barlow, ui-sans-serif, system-ui, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.625rem;
  color: var(--mm-muted);
  text-decoration: none;
  transition: color .3s var(--mm-ease);
}
.mega-menu .mm-panel a:hover,
.mega-menu .mm-panel a:focus-visible {
  color: var(--mm-accent);
}
.mega-menu .mm-panel a:focus-visible {
  outline: 2px solid var(--mm-accent);
  outline-offset: 4px;
}

/* =========================================================
   MENU DÉROULANT — tablette et mobile
   ========================================================= */

.mmm-burger,
.mmm {
  display: none;
}

@media (max-width: 991.98px) {

  /* Bouton carré : burger / croix */
  .mmm-burger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: #fff;
    color: var(--mm-text);
    cursor: pointer;
    transition: background-color .3s var(--mm-ease), color .3s var(--mm-ease);
  }
  .mmm-burger:hover,
  .mmm-burger:focus-visible {
    background: var(--mm-accent);
    color: #fff;
  }
  .mmm-burger:focus-visible {
    outline: 2px solid var(--mm-accent);
    outline-offset: 2px;
  }
  .mmm-burger span {
    display: flex;
  }
  .mmm-burger svg {
    width: 24px;
    height: 24px;
  }
  .mmm-burger .mmm-icon-close,
  .mmm-burger[aria-expanded="true"] .mmm-icon-open {
    display: none;
  }
  .mmm-burger[aria-expanded="true"] .mmm-icon-close {
    display: flex;
  }

  /* Panneau sous le bouton, à 8px des bords */
  .mmm {
    display: block;
    position: fixed;
    top: var(--mmm-top, 80px);
    left: 8px;
    right: 8px;
    bottom: calc(8px + env(safe-area-inset-bottom, 0px));
    z-index: 9999;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0,0,0,.12);
    overflow-y: auto;
    overscroll-behavior: contain;
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s var(--mm-ease), visibility 0s linear .3s;
  }
  .mmm.is-open {
    opacity: 1;
    visibility: visible;
    transition-delay: 0s;
  }

  /* Vues (niveaux) */
  .mmm-view {
    padding: 24px 0 40px;
    animation: mmm-fade .3s var(--mm-ease);
  }
  .mmm-view[hidden] {
    display: none;
  }
  @keyframes mmm-fade {
    from { opacity: 0; }
    to   { opacity: 1; }
  }
  .mmm-list,
  .mmm-sublist {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  /* Niveaux 1 et 2 */
  .mmm-item {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding: 20px;
    border: 0;
    cursor: pointer;
    font-family: 'Roboto-GS', sans-serif;
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.75rem;
    text-align: left;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--mm-text);
    background-color: #fff;
    transition: background-color .3s var(--mm-ease), color .3s var(--mm-ease);
  }
  button.mmm-item:hover,
  button.mmm-item:focus-visible {
    background-color: var(--mm-accent);
    color: #fff;
  }
  .mmm-item:focus-visible {
    outline: 2px solid var(--mm-accent);
    outline-offset: -2px;
  }
  a.mmm-link,
  a.mmm-link:visited,
  a.mmm-link:hover,
  a.mmm-link:focus-visible {
    background-color: transparent;
    color: var(--mm-text);
  }
  .mmm .mm-chevron {
    flex: 0 0 auto;
    width: .5rem;
    height: 1rem;
  }

  /* Bouton Retour */
  .mmm-back {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0 0 24px;
    padding: 0 20px;
    border: 0;
    background: transparent;
    cursor: pointer;
    font-family: 'Roboto-GS', sans-serif;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--mm-accent);
  }
  .mmm-back-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 9999px;
    background: var(--mm-accent);
    color: #fff;
  }
  .mmm-back-icon svg {
    width: 1.75rem;
    height: 1.25rem;
  }
  .mmm-back:focus-visible {
    outline: 2px solid var(--mm-accent);
    outline-offset: 4px;
  }

  /* Titre de la section courante */
  .mmm-view-title {
    margin: 0 0 8px;
    padding: 0 20px;
    font-family: 'Roboto-GS', sans-serif;
    font-size: 1.25rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--mm-accent);
  }

  /* Niveau 3 */
  .mmm-sublist {
    padding-top: 16px;
  }
  .mmm-sublist li {
    margin-bottom: 20px;
  }
  .mmm-sublist a {
    display: block;
    padding: 4px 20px;
    font-family: barlow, ui-sans-serif, system-ui, sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.625rem;
    color: var(--mm-muted);
    text-decoration: none;
    transition: color .3s var(--mm-ease);
  }
  .mmm-sublist a:hover,
  .mmm-sublist a:focus-visible {
    color: var(--mm-accent);
  }
  .mmm-sublist a:focus-visible {
    outline: 2px solid var(--mm-accent);
    outline-offset: -2px;
  }
}

/* =========================================================
   SECTION ACTUALITÉS — Quinssaines
   ========================================================= */

/* Évite une barre de défilement horizontale due au débordement */
html {
  overflow-x: clip;
}

.qns-actus {
  --qa-accent: #15498a;
  --qa-text: #000;
  --qa-muted: rgb(107,114,128);
  --qa-border: rgb(229,231,235);
  --qa-ease: cubic-bezier(.4,0,.2,1);
  --qa-gap: 24px;

  /* Pleine largeur, même dans un contenu contraint */
  max-width: 100%;
  /* margin-left: calc(50% - 50vw) !important; */
  /* margin-right: calc(50% - 50vw) !important; */

  background: #fff;
  color: var(--qa-text);
  padding: 160px 0 160px;
  overflow: hidden;
}
.qns-actus *,
.qns-actus *::before,
.qns-actus *::after {
  box-sizing: border-box;
}

/* Conteneur aligné sur la largeur du contenu */
.qns-actus-inner {
  --qa-content: 1440px;
  max-width: var(--qa-content);
  margin: 0 auto;
  padding: 0 32px;
  container-type: inline-size;
}

/* ---------- En-tête : titre + flèches ---------- */
.qns-actus-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 32px;
}
.qns-actus-title {
  margin: 0;
  font-family: 'Roboto-GS', sans-serif;
  font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.01em;
  color: var(--qa-text);
}
.qns-actus-arrows {
  display: flex;
  gap: 8px;
}
.qns-actus-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 2px solid var(--qa-accent);
  border-radius: 9999px;
  background: #fff;
  color: var(--qa-accent);
  cursor: pointer;
  transition: background-color .3s var(--qa-ease), color .3s var(--qa-ease), opacity .3s var(--qa-ease);
}
.qns-actus-arrow:hover:not(:disabled),
.qns-actus-arrow:focus-visible {
  background: var(--qa-accent);
  color: #fff;
}
.qns-actus-arrow:focus-visible {
  outline: 2px solid var(--qa-accent);
  outline-offset: 3px;
}
.qns-actus-arrow:disabled {
  opacity: .35;
  cursor: default;
}
.qns-actus-arrow[hidden] {
  display: none;
}
.qns-actus-arrow svg {
  width: 20px;
  height: 20px;
}

/* ---------- Piste : alignée à gauche, débordante à droite ---------- */
.qns-actus-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 2 * var(--qa-gap)) / 3.15);   /* repli */
  grid-auto-columns: calc((100cqw - 2 * var(--qa-gap)) / 3);
  gap: var(--qa-gap);
  margin: 0 calc(50% - 50vw) 0 -4px;
  padding: 0 32px 4px 4px;
  scroll-padding-left: 4px;
  list-style: none;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.qns-actus-track::-webkit-scrollbar {
  display: none;
}
@media (prefers-reduced-motion: no-preference) {
  .qns-actus-track {
    scroll-behavior: smooth;
  }
}

/* ---------- Carte ---------- */
.qns-card {
  position: relative;
  display: flex;
  margin: 0;
  scroll-snap-align: start;
}
.qns-card-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: 100%;
  background: #fff;
  border: 1px solid var(--qa-border);
  border-radius: 8px;
  overflow: hidden;
}
.qns-card-media {
  aspect-ratio: 16 / 9;
  background: #dbe4ee;
  overflow: hidden;
}
.qns-card-media img,
.qns-card-ph {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--qa-ease);
}
.qns-card-ph svg {
  display: block;
  width: 100%;
  height: 100%;
}
.qns-card:hover .qns-card-media img,
.qns-card:hover .qns-card-ph,
.qns-card:focus-within .qns-card-media img,
.qns-card:focus-within .qns-card-ph {
  transform: scale(1.04);
}
@media (prefers-reduced-motion: reduce) {
  .qns-card-media img,
  .qns-card-ph {
    transition: none;
  }
}

.qns-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 20px 24px 24px;
}
.qns-card-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin: 0 0 12px;
  font-family: barlow, ui-sans-serif, system-ui, sans-serif;
  font-size: 14px;
  color: var(--qa-muted);
}
.qns-card-cat {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 9999px;
  background: #e8eef6;
  color: var(--qa-accent);
  font-weight: 500;
}
.qns-card-title {
  margin: 0 0 12px;
  font-family: 'Roboto-GS', sans-serif;
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--qa-text);
}
.qns-card-title a {
  color: inherit;
  text-decoration: none;
}
/* Toute la carte est cliquable via le lien du titre */
.qns-card-title a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
}
.qns-card-title a:focus-visible {
  outline: none;
}
.qns-card:focus-within .qns-card-inner {
  outline: 2px solid var(--qa-accent);
  outline-offset: 2px;
}
.qns-card-excerpt {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0 0 20px;
  font-family: barlow, ui-sans-serif, system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.625;
  color: var(--qa-muted);
}
.qns-card-more {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: auto;
  align-self: flex-end;
  font-family: 'Roboto-GS', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--qa-text);
}
.qns-card-more svg {
  width: 26px;
  height: 12px;
  color: var(--qa-accent);
  transition: transform .3s var(--qa-ease);
}
.qns-card:hover .qns-card-more svg,
.qns-card:focus-within .qns-card-more svg {
  transform: translateX(4px);
}

/* ---------- Pastilles ---------- */
.qns-actus-dots {
  display: flex;
  justify-content: center;
  gap: 4px;
  margin: 20px 0 32px;
}
.qns-actus-dots[hidden] {
  display: none;
}
.qns-actus-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.qns-actus-dot::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 9999px;
  background: #cbd2da;
  transition: width .3s var(--qa-ease), background-color .3s var(--qa-ease);
}
.qns-actus-dot[aria-current="true"]::before {
  width: 20px;
  background: var(--qa-accent);
}
.qns-actus-dot:focus-visible {
  outline: 2px solid var(--qa-accent);
  outline-offset: 1px;
  border-radius: 9999px;
}

/* ---------- Bouton du bas ---------- */
.qns-actus-cta {
  margin: 0;
  text-align: center;
}
.qns-actus-cta a {
  display: inline-block;
  padding: 16px 32px;
  border-radius: 8px;
  background: var(--qa-accent);
  color: #fff;
  font-family: 'Roboto-GS', sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color .3s var(--qa-ease);
}
.qns-actus-cta a:hover {
  background: #0f3663;
  color: #fff;
}
.qns-actus-cta a:focus-visible {
  outline: 2px solid var(--qa-accent);
  outline-offset: 3px;
}

/* ---------- Tablette ---------- */
@media (max-width: 991.98px) {
  .qns-actus-track {
    grid-auto-columns: calc((100cqw - var(--qa-gap)) / 2);
  }
}

/* ---------- Mobile ---------- */
@media (max-width: 767.98px) {
  .qns-actus {
    padding: 48px 0 56px;
  }
  .qns-actus-inner {
    padding: 0 20px;
  }
  .qns-actus-head {
    margin-bottom: 24px;
  }
  .qns-actus-arrows {
    display: none;
  }
  .qns-actus-track {
    --qa-gap: 16px;
    grid-auto-columns: 84cqw;
    padding-right: 20px;
  }
  .qns-card-title {
    font-size: 1.25rem;
  }
}

/* =========================================================
   AGENDA — variantes de la section actualités
   ========================================================= */

/* Pastille de date sur l'image */
.qns-agenda .qns-card-media {
  position: relative;
}
.qns-ev-date {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  margin: 0;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
  font-family: 'Roboto-GS', sans-serif;
  line-height: 1;
  color: var(--qa-accent);
}
.qns-ev-jour {
  font-size: 1.75rem;
  font-weight: 700;
}
.qns-ev-mois {
  margin-top: 2px;
  font-size: .75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .05em;
}

/* Lieu et heure */
.qns-ev-infos {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  margin: 0 0 12px;
  font-family: barlow, ui-sans-serif, system-ui, sans-serif;
  font-size: 15px;
  color: var(--qa-muted);
}
.qns-ev-info {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.qns-ev-info svg {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  color: var(--qa-accent);
}

/* Aplat de remplacement si pas d'image */
.qns-agenda .qns-card-ph {
  background: linear-gradient(135deg, #1e5ba8 0%, #15498a 100%);
}

/* ---------- Prochain événement : carte pleine couleur ---------- */
.qns-ev.is-next .qns-card-inner {
  background: var(--qa-accent);
  border-color: var(--qa-accent);
}
.qns-ev.is-next .qns-card-title,
.qns-ev.is-next .qns-card-meta,
.qns-ev.is-next .qns-ev-infos,
.qns-ev.is-next .qns-card-excerpt,
.qns-ev.is-next .qns-card-more {
  color: #fff;
}
.qns-ev.is-next .qns-card-cat {
  background: rgba(255,255,255,.18);
  color: #fff;
}
.qns-ev.is-next .qns-ev-info svg,
.qns-ev.is-next .qns-card-more svg {
  color: #fbae17;
}
.qns-ev.is-next .qns-ev-date {
  background: #fbae17;
  color: #15498a;
}
.qns-ev.is-next:focus-within .qns-card-inner {
  outline-color: var(--qa-accent);
}

