/* Groupe Speed Cloud — design system Bulma 1.x (CDN) + charte graphique Speed Cloud (fév. 2025)
   Palette : #f1e7fd · #d8bdfa · #8a4dfd · #592aa9 · #290654 · #130326 — police Titillium Web.
   Même langage visuel que monasso.eu. */
:root {
    --sc-50: #f6f0ff;
    --sc-100: #e6d6ff;
    --sc-200: #d8bdfa;
    --sc-500: #8a4dfd;
    --sc-600: #7437e6;
    --sc-700: #592aa9;
    --sc-900: #290654;
    --sc-950: #130326;
    --sc-ink: #1b0a33;
    --sc-muted: #5f5078;
    --sc-line: #ece3fa;
    --sc-radius: 1rem;
    --sc-radius-lg: 1.5rem;
    --sc-shadow: 0 1px 2px rgba(19,3,38,.05), 0 8px 24px rgba(19,3,38,.06);

    --bulma-primary-h: 261deg; --bulma-primary-s: 98%; --bulma-primary-l: 65%;
    --bulma-link-h: 261deg; --bulma-link-s: 98%; --bulma-link-l: 65%;
    --bulma-text-h: 274deg; --bulma-text-s: 70%; --bulma-text-l: 10%;
    --bulma-family-primary: 'Titillium Web', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --bulma-body-font-size: 1.0625rem;
    --bulma-radius: .75rem;
    --bulma-navbar-height: 4.5rem;
}
html { scroll-padding-top: 6rem; scroll-behavior: smooth; }
body { background: #fff; color: var(--sc-ink); }
::selection { background: var(--sc-200); }
:focus-visible { outline: 3px solid var(--sc-500); outline-offset: 2px; }
p { text-wrap: pretty; }

/* Typo */
.title { color: var(--sc-ink); font-weight: 700; letter-spacing: -.015em; text-wrap: balance; }
.title.is-1 { font-size: clamp(2.3rem, 5.4vw, 3.6rem); font-weight: 800; line-height: 1.05; letter-spacing: -.03em; }
.title.is-2 { font-size: clamp(2rem, 4.4vw, 2.9rem); font-weight: 800; line-height: 1.1; letter-spacing: -.025em; }
.title.is-4 { font-size: 1.35rem; }
.sc-muted { color: var(--sc-muted); }
.sc-lead { font-size: 1.2rem; line-height: 1.55; color: var(--sc-muted); }
.sc-eyebrow { display: inline-block; margin-bottom: .6rem; font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--sc-500); }
.sc-skip { position: fixed; top: .5rem; left: .5rem; z-index: 100; padding: .55rem 1rem; border-radius: var(--sc-radius); background: #fff; font-weight: 700; transform: translateY(-200%); box-shadow: var(--sc-shadow); }
.sc-skip:focus { transform: none; }

/* Boutons */
.button { font-weight: 600; transition: background-color .15s, border-color .15s, box-shadow .15s, transform .15s; }
.button.is-primary { background: var(--sc-500); border-color: var(--sc-500); color: #fff; }
.button.is-primary:hover { background: var(--sc-600); border-color: var(--sc-600); box-shadow: 0 .5rem 1.2rem rgba(138,77,253,.35); transform: translateY(-1px); }
.button.is-tonal { background: var(--sc-50); border-color: var(--sc-50); color: var(--sc-700); }
.button.is-tonal:hover { background: var(--sc-100); color: var(--sc-900); }
.button.is-white-solid { background: #fff; border-color: #fff; color: var(--sc-700); }
.button.is-white-solid:hover { background: var(--sc-50); color: var(--sc-900); }
.button.is-ghost-light { background: transparent; border-color: rgba(255,255,255,.5); color: #fff; }
.button.is-ghost-light:hover { background: rgba(255,255,255,.14); color: #fff; }

/* Annonce */
.sc-announce { background: var(--sc-50); font-size: .9rem; border-bottom: 1px solid var(--sc-line); }
.sc-announce .container { display: flex; align-items: center; justify-content: center; gap: .9rem; padding: .5rem 1rem; }
.sc-announce a { color: var(--sc-700); font-weight: 700; text-underline-offset: .2em; }

/* Header */
.sc-header { position: sticky; top: 0; z-index: 40; background: rgba(255,255,255,.92); backdrop-filter: blur(10px); box-shadow: 0 1px 0 var(--sc-line); }
.sc-header .navbar { background: transparent; min-height: 4.25rem; }
.sc-brand { display: inline-flex; align-items: center; gap: .6rem; color: var(--sc-500); }
.sc-wordmark { font-style: italic; font-weight: 700; font-size: 1.45rem; line-height: 1; color: var(--sc-500); letter-spacing: -.01em; }
.sc-logo-icon { width: 2.9rem; height: auto; flex: none; }
.sc-header .navbar-item { font-weight: 600; color: var(--sc-muted); background: transparent !important; }
.sc-header a.navbar-item:hover { color: var(--sc-ink); }
.sc-header .navbar-item.sc-brand:hover { color: var(--sc-500); }
.sc-header .navbar-burger { color: var(--sc-ink); }
@media screen and (min-width: 1024px) { .sc-header .navbar-end { gap: .5rem; align-items: center; } }
@media screen and (max-width: 1023px) { .sc-header .navbar-menu { border-top: 1px solid var(--sc-line); box-shadow: none; padding: .75rem; } }

/* Sections */
.sc-section { padding: 5rem 1.5rem; }
.sc-section.is-tint { background: var(--sc-50); }
@media screen and (max-width: 768px) { .sc-section { padding: 3rem 1rem; } }
.sc-head { max-width: 44rem; margin: 0 auto 2.5rem; text-align: center; }
.sc-head .sc-lead { margin: 0; }

/* Hero */
.sc-hero { position: relative; overflow: hidden; padding: 4.5rem 1.5rem 6rem; background: radial-gradient(38rem 22rem at 90% -10%, rgba(138,77,253,.20), transparent 60%), radial-gradient(30rem 20rem at 0% 100%, rgba(216,189,250,.45), transparent 60%), linear-gradient(180deg, #fff, var(--sc-50)); }
.sc-pill { display: inline-block; padding: .3rem .95rem; border-radius: 999px; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; background: #fff; border: 1px solid var(--sc-200); color: var(--sc-700); }
.sc-hero-points { list-style: none; padding: 0; display: grid; gap: 1rem; margin-top: 2rem; }
.sc-hero-points li { display: flex; gap: .9rem; align-items: flex-start; }
.sc-hero-points small { display: block; color: var(--sc-muted); }
@media screen and (max-width: 768px) { .sc-hero { padding: 3rem 1rem 4rem; } }

/* Visuel héros : nuage + flux de données */
.sc-visual { position: relative; border-radius: 1.75rem; padding: 2.5rem 2rem 2rem; background: linear-gradient(135deg, var(--sc-500), var(--sc-700)); color: #fff; box-shadow: 0 1.5rem 3.5rem rgba(89,42,169,.28); transform: rotate(1.5deg); overflow: hidden; }
.sc-visual::before { content: ""; position: absolute; inset: 0; background: radial-gradient(18rem 10rem at 85% 0%, rgba(255,255,255,.25), transparent 60%); }
.sc-visual > * { position: relative; }
.sc-visual-cloud { display: flex; justify-content: center; color: #f1e7fd; }
.sc-visual-cloud .sc-logo-icon { width: 11rem; animation: sc-float 5s ease-in-out infinite; }
.sc-flow { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin-top: 1.5rem; }
.sc-flow div { padding: .75rem .9rem; border-radius: .9rem; background: rgba(255,255,255,.14); }
.sc-flow em { display: block; font-style: normal; font-size: .72rem; opacity: .8; }
.sc-flow strong { font-size: 1.05rem; }
.sc-bars { display: flex; align-items: flex-end; gap: .45rem; height: 4.5rem; margin-top: 1rem; }
.sc-bars span { flex: 1; border-radius: 4px 4px 0 0; background: rgba(241,231,253,.75); animation: sc-pulse 3s ease-in-out infinite; }
.sc-bars span:nth-child(2n) { animation-delay: .4s; background: rgba(241,231,253,.5); }
.sc-bars span:nth-child(3n) { animation-delay: .8s; }
@keyframes sc-float { 50% { transform: translateY(-8px); } }
@keyframes sc-pulse { 50% { opacity: .55; } }
@media (prefers-reduced-motion: reduce) { .sc-visual-cloud .sc-logo-icon, .sc-bars span { animation: none; } html { scroll-behavior: auto; } }

/* Bandeau chiffres */
.sc-strip { position: relative; z-index: 2; margin-top: -3rem; padding: 0 1.5rem 1rem; }
.sc-strip .sc-card { box-shadow: var(--sc-shadow); border-color: transparent; }
.sc-stat { text-align: center; }
.sc-stat strong { display: block; font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: 800; line-height: 1.1; color: var(--sc-700); }
.sc-stat span { display: block; margin-top: .25rem; color: var(--sc-muted); font-weight: 600; }

/* Cartes */
.sc-card { position: relative; padding: 1.75rem; border: 1px solid var(--sc-line); border-radius: var(--sc-radius-lg); background: #fff; }
.sc-card.is-soft { background: var(--sc-50); border-color: var(--sc-50); }
.sc-card > :last-child { margin-bottom: 0; }
.sc-hover { transition: transform .15s, box-shadow .15s, border-color .15s; }
.sc-hover:hover { transform: translateY(-3px); box-shadow: var(--sc-shadow); border-color: var(--sc-200); }
.sc-icon { display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border-radius: 1rem; background: var(--sc-50); color: var(--sc-500); margin-bottom: 1rem; flex: none; }
.sc-section.is-tint .sc-icon { background: #fff; box-shadow: var(--sc-shadow); }
.sc-hero-points .sc-icon { margin: 0; background: #fff; box-shadow: var(--sc-shadow); }
.sc-card h3 { font-size: 1.25rem; font-weight: 700; margin-bottom: .4rem; }
.sc-card p { color: var(--sc-muted); }

/* Projet */
.sc-project { display: grid; grid-template-columns: 1.1fr 1fr; gap: 2.5rem; align-items: center; padding: 2.5rem; border-radius: 2rem; background: var(--sc-50); border: 1px solid var(--sc-line); }
.sc-project .sc-tag { margin-bottom: 1rem; }
.sc-tag { display: inline-block; padding: .25rem .8rem; border-radius: 999px; font-size: .85rem; font-weight: 600; background: #fff; color: var(--sc-700); border: 1px solid var(--sc-200); }
.sc-checks { list-style: none; padding: 0; display: grid; gap: .7rem; }
.sc-checks li { display: flex; gap: .8rem; align-items: flex-start; padding: .9rem 1.1rem; border-radius: 1rem; background: #fff; box-shadow: var(--sc-shadow); }
.sc-checks svg { flex: none; color: var(--sc-500); margin-top: .2rem; }
@media screen and (max-width: 900px) { .sc-project { grid-template-columns: 1fr; padding: 1.5rem; } }

/* Logo */
.sc-logo-panel { display: grid; place-items: center; padding: 2.5rem; border-radius: var(--sc-radius-lg); background: var(--sc-950); color: var(--sc-500); }
.sc-logo-panel .sc-logo-icon { width: 8rem; }
.sc-logo-panel p { color: var(--sc-200); margin-top: 1rem; font-style: italic; font-weight: 700; font-size: 1.8rem; }
.sc-swatches { display: grid; grid-template-columns: repeat(6, 1fr); gap: .5rem; margin-top: 1.25rem; }
.sc-swatches i { display: block; aspect-ratio: 1; border-radius: .8rem; border: 1px solid rgba(255,255,255,.15); }

/* Bandeau CTA */
.sc-band { text-align: center; padding: 3.5rem 1.5rem; border-radius: 2rem; color: #fff; background: radial-gradient(28rem 14rem at 85% 0%, rgba(255,255,255,.22), transparent 60%), linear-gradient(135deg, var(--sc-500), var(--sc-700)); }
.sc-band .title { color: #fff; }
.sc-band p { color: #f1e7fd; margin-bottom: 1.5rem; }

/* Footer */
.sc-footer { background: var(--sc-50); border-top: 1px solid var(--sc-line); padding: 3rem 1.5rem 2rem; }
.sc-footer h4 { font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--sc-ink); margin-bottom: .75rem; }
.sc-footer ul { list-style: none; padding: 0; display: grid; gap: .4rem; }
.sc-footer a { color: var(--sc-muted); }
.sc-footer a:hover { color: var(--sc-500); }
.sc-footer .sc-copy { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--sc-line); text-align: center; font-size: .875rem; color: var(--sc-muted); }

/* Mobile : pas de débordement horizontal */
body { overflow-x: clip; }
.sc-band .button { white-space: normal; height: auto; padding-block: .6rem; max-width: 100%; overflow-wrap: anywhere; }
@media screen and (max-width: 768px) { .sc-visual { transform: none; } }

/* ---- Pages intérieures ---- */
.sc-header .navbar-item.is-current { color: var(--sc-500) !important; }
.sc-pagehead { position: relative; overflow: hidden; padding: 3.5rem 1.5rem 3rem; background: var(--sc-50); border-bottom: 1px solid var(--sc-line); }
.sc-pagehead::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(var(--sc-200) 1.2px, transparent 1.2px); background-size: 22px 22px; opacity: .45; mask-image: linear-gradient(90deg, transparent 20%, #000 100%); -webkit-mask-image: linear-gradient(90deg, transparent 20%, #000 100%); }
.sc-pagehead::after { content: ""; position: absolute; right: -6rem; top: -8rem; width: 26rem; height: 26rem; border-radius: 50%; background: radial-gradient(circle, rgba(138,77,253,.28), transparent 65%); }
.sc-pagehead > .container { position: relative; z-index: 1; }
.sc-pagehead .sc-lead { max-width: 44rem; margin-top: .75rem; }
.sc-pagehead.is-center { text-align: center; }
.sc-pagehead.is-center .sc-lead { margin-inline: auto; }
.sc-pagehead.is-center .buttons { justify-content: center; }
.breadcrumb { font-size: .875rem; margin-bottom: 1.25rem; }
.breadcrumb li + li::before { color: var(--sc-200); }
.breadcrumb li.is-active a { color: var(--sc-ink); font-weight: 700; pointer-events: none; }

.sc-measure { max-width: 46rem; margin-inline: auto; }
.sc-prose { font-size: 1.05rem; line-height: 1.75; }
.sc-prose h2 { font-size: 1.55rem; font-weight: 700; margin: 2.5rem 0 .75rem; scroll-margin-top: 6rem; }
.sc-prose h2:first-child { margin-top: 0; }
.sc-prose p { margin-bottom: 1rem; }
.sc-prose ul { list-style: disc; padding-left: 1.4rem; display: grid; gap: .4rem; margin-bottom: 1rem; }
.sc-prose li::marker { color: var(--sc-500); }
.sc-prose a, main a:not([class]) { color: var(--sc-700); font-weight: 600; text-underline-offset: .2em; }
.sc-prose a:hover, main a:not([class]):hover { color: var(--sc-500); }
.sc-toc { padding: 1.25rem 1.5rem; border-radius: var(--sc-radius-lg); background: var(--sc-50); margin-bottom: 2.5rem; }
.sc-toc strong { display: block; margin-bottom: .5rem; }
.sc-toc ol { list-style: decimal; padding-left: 1.3rem; display: grid; gap: .25rem; }
.sc-dl { display: grid; gap: 1.1rem; margin: 0; }
.sc-dl dt { font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--sc-muted); }
.sc-dl dd { margin: .15rem 0 0; font-weight: 600; }

.sc-accordion { border: 1px solid var(--sc-line); border-radius: var(--sc-radius-lg); overflow: hidden; background: #fff; }
.sc-accordion details + details { border-top: 1px solid var(--sc-line); }
.sc-accordion summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.4rem; font-weight: 600; cursor: pointer; list-style: none; }
.sc-accordion summary::-webkit-details-marker { display: none; }
.sc-accordion summary::after { content: ""; flex: 0 0 .6rem; height: .6rem; border-right: 2px solid var(--sc-500); border-bottom: 2px solid var(--sc-500); transform: rotate(45deg); transition: transform .15s; }
.sc-accordion details[open] > summary { background: var(--sc-50); color: var(--sc-900); }
.sc-accordion details[open] > summary::after { transform: rotate(-135deg); }
.sc-accordion .sc-accordion-body { padding: 1.1rem 1.4rem 1.4rem; color: var(--sc-muted); }
.sc-accordion .sc-accordion-body p + p { margin-top: .75rem; }

.sc-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; list-style: none; padding: 0; }
.sc-num { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--sc-500); color: #fff; font-weight: 700; margin-bottom: .75rem; }
@media screen and (max-width: 768px) { .sc-steps { grid-template-columns: 1fr; } }
.sc-notice { padding: 1.1rem 1.4rem; border-radius: var(--sc-radius); background: var(--sc-50); border-left: 4px solid var(--sc-500); }
.sc-notice > :last-child { margin-bottom: 0; }
.sc-link-card { display: block; text-decoration: none !important; color: inherit !important; font-weight: 400 !important; }
.sc-link-card h3 { color: var(--sc-ink); }
.sc-more { display: inline-flex; align-items: center; gap: .35rem; margin-top: .75rem; font-weight: 700; color: var(--sc-700); }
.sc-err { min-height: 55vh; display: grid; place-items: center; text-align: center; padding: 4rem 1.5rem; }
.sc-err strong { display: block; font-size: clamp(4rem, 12vw, 7rem); font-weight: 800; line-height: 1; color: var(--sc-500); }

/* ---- Bureau ---- */
.sc-avatar { display: inline-grid; place-items: center; width: 4rem; height: 4rem; border-radius: 50%; background: var(--sc-500); color: #fff; font-size: 1.6rem; font-weight: 700; margin-bottom: 1rem; }
.pagination-link.is-current { background: var(--sc-500); border-color: var(--sc-500); }

/* ---- Administration ---- */
.sc-admin .table th { color: var(--sc-muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.sc-admin .table td, .sc-admin .table th { vertical-align: middle; }
.sc-admin .navbar-item.is-current { color: var(--sc-500) !important; }
.sc-admin form[data-confirm] { display: inline; }
.sc-admin .sc-userlabel { display: none; }
@media screen and (min-width: 1500px), screen and (max-width: 1023px) { .sc-admin .sc-userlabel { display: inline; } }
.sc-admin .navbar-item { padding-inline: .6rem; }

/* ---- Bureau : fiches des membres ---- */
.sc-head.is-left { text-align: left; margin-inline: 0; max-width: none; }
.sc-tag.is-solid { background: var(--sc-500); color: #fff; border-color: var(--sc-500); }
.sc-member { height: 100%; overflow: hidden; border: 1px solid var(--sc-line); border-radius: var(--sc-radius-lg); background: #fff; transition: transform .15s, box-shadow .15s, border-color .15s; }
.sc-member:hover { transform: translateY(-3px); box-shadow: var(--sc-shadow); border-color: var(--sc-200); }
.sc-member-photo { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; background: var(--sc-50); }
.sc-member-initial { display: grid; place-items: center; font-size: 4.5rem; font-weight: 700; color: #fff; background: linear-gradient(135deg, var(--sc-500), var(--sc-700)); }
.sc-member-body { padding: 1.25rem 1.5rem 1.5rem; }
.sc-member h3 { font-size: 1.3rem; font-weight: 700; margin-bottom: .15rem; }
.sc-member-role { font-weight: 700; color: var(--sc-700); margin-bottom: .5rem; }
.sc-member-bio { color: var(--sc-muted); font-size: .98rem; line-height: 1.6; }
.sc-member.is-compact { display: flex; align-items: center; gap: 1rem; padding: .85rem; }
.sc-member.is-compact .sc-member-photo { width: 4.25rem; flex: none; border-radius: 50%; }
.sc-member.is-compact .sc-member-initial { font-size: 1.6rem; }
.sc-member.is-compact .sc-member-body { padding: 0; }
.sc-member.is-compact h3 { font-size: 1.05rem; }
.sc-member.is-compact .sc-member-role { margin-bottom: 0; }
.sc-thumb { width: 2.6rem; height: 2.6rem; border-radius: 50%; object-fit: cover; background: var(--sc-50); display: inline-grid; place-items: center; color: var(--sc-700); font-weight: 700; vertical-align: middle; }
.sc-admin .file-cta { background: var(--sc-50); color: var(--sc-700); font-weight: 600; border-color: var(--sc-200); }
.sc-admin .file-name { border-color: var(--sc-200); }
.sc-admin .file-label:hover .file-cta { background: var(--sc-100); color: var(--sc-900); }

/* ---- Page dédiée d'un domaine ---- */
.sc-dom { min-height: 100vh; display: flex; flex-direction: column; background: #fff; }
.sc-dom main { flex: 1; }
.sc-dom-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem clamp(1rem, 4vw, 3rem); position: relative; z-index: 2; }
.sc-dom-toplink { font-weight: 600; color: var(--sc-muted); text-decoration: none; }
.sc-dom-toplink:hover { color: var(--sc-500); }

.sc-dom-hero { position: relative; overflow: hidden; display: grid; place-items: center; text-align: center; min-height: min(68vh, 36rem); padding: 3rem 1.5rem 4rem; margin-top: -4.5rem; padding-top: 7.5rem; background: radial-gradient(38rem 24rem at 85% -10%, rgba(138,77,253,.20), transparent 60%), radial-gradient(30rem 20rem at 0% 100%, rgba(216,189,250,.5), transparent 60%), linear-gradient(180deg, #fff, var(--sc-50)); }
.sc-dom-hero::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(var(--sc-200) 1.2px, transparent 1.2px); background-size: 24px 24px; opacity: .4; mask-image: radial-gradient(ellipse at center, #000 10%, transparent 70%); -webkit-mask-image: radial-gradient(ellipse at center, #000 10%, transparent 70%); }
.sc-dom-mark { position: absolute; right: clamp(-4rem, -2vw, 0rem); bottom: -3rem; width: clamp(14rem, 32vw, 26rem); color: var(--sc-500); opacity: .09; transform: rotate(-8deg); pointer-events: none; }
.sc-dom-mark .sc-logo-icon { width: 100%; }
.sc-dom-hero-inner { position: relative; max-width: 46rem; }
.sc-dom-pill { display: inline-flex; align-items: center; gap: .5rem; padding: .35rem 1rem; border-radius: 999px; background: #fff; border: 1px solid var(--sc-200); color: var(--sc-700); font-weight: 700; font-size: .85rem; letter-spacing: .04em; box-shadow: var(--sc-shadow); }
.sc-dom-pill i { width: .55rem; height: .55rem; border-radius: 50%; background: var(--sc-500); box-shadow: 0 0 0 4px rgba(138,77,253,.18); }
.sc-dom-hero h1 { margin: 1.25rem 0 0; font-size: clamp(2.4rem, 6.5vw, 4.2rem); font-weight: 800; line-height: 1.05; letter-spacing: -.03em; color: var(--sc-ink); text-wrap: balance; overflow-wrap: anywhere; }
.sc-dom-lead { margin: 1.1rem auto 0; max-width: 36rem; font-size: 1.25rem; line-height: 1.55; color: var(--sc-muted); }
.sc-dom-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin-top: 2rem; }

.sc-dom-section { padding: 3.5rem 1.5rem 0; }
.sc-dom-section:last-of-type { padding-bottom: 4rem; }
.sc-dom-content { max-width: 46rem; margin-inline: auto; padding: clamp(1.5rem, 4vw, 2.75rem); border: 1px solid var(--sc-line); border-radius: 1.75rem; background: #fff; box-shadow: var(--sc-shadow); }
.sc-dom-content > :last-child { margin-bottom: 0; }
.sc-dom-content img { max-width: 100%; height: auto; border-radius: var(--sc-radius); }

.sc-dom-group { max-width: 62rem; margin-inline: auto; display: grid; grid-template-columns: 1.1fr 1fr; gap: 2rem; align-items: center; padding: clamp(1.5rem, 4vw, 2.5rem); border-radius: 1.75rem; background: var(--sc-50); border: 1px solid var(--sc-line); }
.sc-dom-group h2 { margin: 0 0 .6rem; font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 800; letter-spacing: -.02em; }
.sc-dom-group p { color: var(--sc-muted); line-height: 1.6; }
.sc-dom-links { display: grid; gap: .6rem; }
.sc-dom-links a { display: flex; justify-content: space-between; align-items: center; padding: .85rem 1.1rem; border-radius: 1rem; background: #fff; color: var(--sc-ink); font-weight: 600; text-decoration: none; box-shadow: var(--sc-shadow); transition: transform .15s, color .15s; }
.sc-dom-links a:hover { transform: translateX(3px); color: var(--sc-500); }
@media screen and (max-width: 768px) { .sc-dom-group { grid-template-columns: 1fr; } .sc-dom-section { padding: 2.5rem 1rem 0; } }

.sc-dom-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; padding: 1.5rem clamp(1rem, 4vw, 3rem); border-top: 1px solid var(--sc-line); background: var(--sc-50); color: var(--sc-muted); font-size: .9rem; }
.sc-dom-foot a { color: var(--sc-muted); }
.sc-dom-foot a:hover { color: var(--sc-500); }
@media (prefers-reduced-motion: reduce) { .sc-dom-links a { transition: none; } }
.sc-dom-top .sc-wordmark { font-size: 1.35rem; white-space: nowrap; }
.sc-dom-top .sc-logo-icon { width: 2.6rem; }
@media screen and (max-width: 560px) { .sc-dom-top .sc-wordmark { font-size: 1.15rem; } .sc-dom-top .sc-logo-icon { width: 2.2rem; } .sc-dom-toplink { display: none; } }

/* Titres du contenu rédigé en Markdown (pages dédiées, actualités) */
.sc-prose h3 { font-size: 1.2rem; font-weight: 700; margin: 1.75rem 0 .5rem; }
.sc-prose h4 { font-size: 1.05rem; font-weight: 700; margin: 1.25rem 0 .4rem; }
.sc-prose blockquote { margin: 1.25rem 0; padding: .75rem 1.25rem; border-left: 4px solid var(--sc-500); background: var(--sc-50); border-radius: 0 var(--sc-radius) var(--sc-radius) 0; color: var(--sc-muted); }
.sc-prose ol { list-style: decimal; padding-left: 1.4rem; display: grid; gap: .4rem; margin-bottom: 1rem; }
.sc-prose hr { border: 0; height: 1px; background: var(--sc-line); margin: 2rem 0; }
.sc-prose img { max-width: 100%; height: auto; border-radius: var(--sc-radius); }
.sc-dom-pill { max-width: 100%; border-radius: 1.25rem; overflow-wrap: anywhere; text-align: left; }
.sc-dom-pill i { flex: none; }

/* ---- Formulaires publics ---- */
.sc-form { display: grid; gap: 1.1rem; margin-top: 1rem; }
.sc-form .field { margin: 0; }
.sc-form .label { font-weight: 700; }
.sc-form .input, .sc-form .textarea, .sc-form .select select { border-color: var(--sc-200); border-radius: .75rem; }
.sc-form .input:focus, .sc-form .textarea:focus, .sc-form .select select:focus { border-color: var(--sc-500); box-shadow: 0 0 0 .2rem rgba(138, 77, 253, .18); }
.sc-form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1rem; }
.sc-pot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sc-consent { display: flex; align-items: flex-start; gap: .6rem; font-weight: 400; color: var(--sc-muted); }
.sc-consent input { margin-top: .3rem; }
.sc-alert { padding: 1rem 1.2rem; border-radius: var(--sc-radius); background: #fdecf0; border: 1px solid #f4c3cf; color: #8d1d3c; }
.sc-alert ul { margin: .4rem 0 0 1.1rem; list-style: disc; }
.sc-socials { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 1.1rem 0 0; }
.sc-socials a { display: inline-block; padding: .3rem .9rem; border-radius: 999px; background: #fff; border: 1px solid var(--sc-200); color: var(--sc-700); font-weight: 600; text-decoration: none; }
.sc-socials a:hover { background: var(--sc-500); border-color: var(--sc-500); color: #fff; }

/* ---- Événements ---- */
.sc-events { display: grid; gap: .9rem; }
.sc-event { display: flex; align-items: center; gap: 1.25rem; padding: 1.1rem 1.4rem; border: 1px solid var(--sc-line); border-radius: var(--sc-radius-lg); background: #fff; color: inherit; text-decoration: none; transition: transform .15s, box-shadow .15s, border-color .15s; }
.sc-event:hover { transform: translateY(-2px); box-shadow: var(--sc-shadow); border-color: var(--sc-200); color: inherit; }
.sc-event-date { flex: none; width: 4.2rem; padding: .55rem 0; border-radius: 1rem; background: var(--sc-500); color: #fff; text-align: center; line-height: 1; }
.sc-event-date b { display: block; font-size: 1.8rem; font-weight: 800; }
.sc-event-date span { display: block; margin-top: .25rem; font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.sc-event-body { flex: 1; min-width: 0; }
.sc-event-body h3 { margin: 0; font-size: 1.2rem; font-weight: 700; color: var(--sc-ink); }
.sc-event-body p { margin: .2rem 0 0; color: var(--sc-muted); }
.sc-event-body .sc-event-meta { font-weight: 600; color: var(--sc-700); }
.sc-event-go { color: var(--sc-500); }
.sc-events.is-past .sc-event-date { background: var(--sc-200); color: var(--sc-900); }
@media screen and (max-width: 560px) { .sc-event { padding: .9rem; gap: .9rem; } .sc-event-go { display: none; } }

/* ---- Documents ---- */
.sc-docgroup + .sc-docgroup { margin-top: 2.5rem; }
.sc-docs { display: grid; gap: .7rem; margin-top: 1rem; }
.sc-doc { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.25rem; border: 1px solid var(--sc-line); border-radius: var(--sc-radius-lg); background: #fff; color: inherit; text-decoration: none; transition: transform .15s, box-shadow .15s, border-color .15s; }
.sc-doc:hover { transform: translateY(-2px); box-shadow: var(--sc-shadow); border-color: var(--sc-200); color: inherit; }
.sc-doc .sc-icon { margin: 0; }
.sc-doc-body { flex: 1; min-width: 0; }
.sc-doc-body strong { display: block; color: var(--sc-ink); }
.sc-doc-body small { display: block; color: var(--sc-muted); }
.sc-doc-go { display: inline-flex; align-items: center; gap: .35rem; font-weight: 700; color: var(--sc-700); white-space: nowrap; }
@media screen and (max-width: 560px) { .sc-doc-go { display: none; } }
.sc-member-since { margin: 0 0 .5rem; font-size: .85rem; color: var(--sc-muted); }

/* ---- Partenaires ---- */
.sc-partner { display: block; text-align: center; }
.sc-partner-logo { display: flex; align-items: center; justify-content: center; height: 6rem; margin-bottom: 1rem; overflow: hidden; }
/* Hauteur bornée en rem : un pourcentage ne se résout pas ici et laissait les logos carrés ou hauts déborder sur le texte. */
.sc-partner-logo img { display: block; width: auto; height: auto; max-width: 80%; max-height: 6rem; object-fit: contain; }
.sc-partner-logo span { display: grid; place-items: center; width: 4.5rem; height: 4.5rem; border-radius: 1.2rem; background: var(--sc-50); color: var(--sc-500); font-size: 2rem; font-weight: 800; }
.sc-partners-strip { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1.5rem 2.5rem; }
.sc-partners-strip a, .sc-partners-strip span.sc-ps { display: inline-flex; align-items: center; gap: .6rem; color: var(--sc-muted); font-weight: 700; text-decoration: none; }
.sc-partners-strip a:hover { color: var(--sc-500); }
.sc-partners-strip img { max-height: 2.6rem; max-width: 9rem; object-fit: contain; }

/* ---- Navigation : sous-menu et boutons ---- */
.sc-header .navbar-link { font-weight: 600; color: var(--sc-muted); background: transparent !important; }
.sc-header .navbar-link:hover, .sc-header .navbar-item.has-dropdown:hover > .navbar-link, .sc-header .navbar-item.has-dropdown.is-active > .navbar-link { color: var(--sc-ink); }
.sc-header .navbar-link.is-current, .sc-header .navbar-item.is-current { color: var(--sc-500) !important; }
.sc-header .navbar-link:not(.is-arrowless)::after { border-color: var(--sc-muted); }
.sc-header .navbar-dropdown { border: 1px solid var(--sc-line); border-radius: var(--sc-radius); box-shadow: var(--sc-shadow); padding: .4rem; min-width: 19rem; margin-top: .25rem; }
.sc-header .navbar-dropdown .navbar-item { display: block; white-space: normal; border-radius: .6rem; padding: .6rem .8rem; color: var(--sc-ink); background: transparent !important; }
.sc-header .navbar-dropdown .navbar-item:hover { background: var(--sc-50) !important; color: var(--sc-700); }
.sc-header .navbar-dropdown .navbar-item small { display: block; font-weight: 400; color: var(--sc-muted); }
.sc-header .navbar-item.has-dropdown:focus-within > .navbar-dropdown, .sc-header .navbar-item.has-dropdown.is-active > .navbar-dropdown { display: block; }
.sc-nav-buttons { display: flex; gap: .5rem; align-items: center; }
@media screen and (min-width: 1280px) {
    .sc-header .navbar-end { gap: .05rem; align-items: center; }
    .sc-header .navbar-item, .sc-header .navbar-link { padding-inline: .6rem; }
    .sc-header .navbar-link:not(.is-arrowless) { padding-right: 2.1rem; }
    .sc-header .sc-wordmark { font-size: 1.2rem; }
    .sc-nav-buttons { margin-left: .4rem; padding-inline: 0 !important; }
    .sc-nav-buttons .button { padding-inline: .85rem; }
}
/* Entre 1024 et 1279 px, le menu complet ne tient pas : on garde le menu burger. */
@media screen and (min-width: 1024px) and (max-width: 1279px) {
    .sc-header .navbar-burger { display: flex; }
    .sc-header .navbar-menu { display: none; position: absolute; left: 0; right: 0; top: 100%; padding: .5rem 0; background: #fff; box-shadow: 0 8px 16px rgba(19, 3, 38, .1); }
    .sc-header .navbar-menu.is-active { display: block; }
    .sc-header .navbar-end { display: block; margin-left: 0; }
    .sc-header .navbar-item.has-dropdown { display: block; }
}
@media screen and (max-width: 1279px) {
    .sc-header .navbar-menu { max-height: calc(100vh - 4.25rem); overflow-y: auto; }
    .sc-header .navbar-dropdown { position: static; box-shadow: none; border: 0; padding: 0 0 0 1rem; min-width: 0; display: block; float: none; }
    .sc-nav-buttons { padding: .75rem; }
}

/* Une carte seule dans sa colonne prend toute la hauteur (grilles de cartes égales) ; sinon elle garde sa hauteur. */
.sc-card { height: auto; }
.column > .sc-card:only-child { height: 100%; }

.sc-footer .sc-socials { display: flex; flex-wrap: wrap; gap: .5rem; }

/* Le sous-menu reste ouvert quand la souris descend du lien vers lui : une zone invisible comble le vide entre les deux. */
@media screen and (min-width: 1280px) {
    .sc-header .navbar-dropdown { margin-top: 0; top: calc(100% + .25rem); }
    .sc-header .navbar-dropdown::before { content: ""; position: absolute; left: 0; right: 0; top: -1.5rem; height: 1.5rem; }
}
