/* ============================================================================
   SMIB — site-style.css (v0.3.0 — full redesign per design_handoff)
   Tokens: Congo flag (green/gold/red) + ink/cream neutrals
   Typography: Bricolage Grotesque (display) / Fraunces italic (serif accent)
               / Inter (body) / JetBrains Mono (mono labels)
   ============================================================================ */

:root {
    /* Brand — Congo flag */
    --green: #0B7A3B;
    --green-deep: #054D26;
    --green-ink: #03331A;
    --green-soft: #E8F2EC;
    --red: #CE1126;
    --red-deep: #8E0A18;
    --gold: #FFD034;
    --gold-deep: #C99700;
    --gold-soft: #FFF4CC;

    /* Neutrals */
    --cream: #F7F1E3;
    --cream-warm: #FBF6E9;
    --paper: #FAFAF7;
    --ink: #0C1411;
    --ink-2: #2A3530;
    --muted: #6E7A75;
    --line: #E4E1D6;
    --line-2: #D9D5C5;

    /* Radii */
    --r-sm: 6px;
    --r-md: 10px;
    --r-lg: 18px;
    --r-xl: 28px;

    /* Shadows */
    --shadow-sm: 0 1px 2px rgba(7,30,18,.06), 0 2px 6px rgba(7,30,18,.04);
    --shadow-md: 0 6px 24px rgba(7,30,18,.08);
    --shadow-lg: 0 24px 60px rgba(7,30,18,.18);

    /* Type stacks */
    --display: 'Bricolage Grotesque', 'Archivo', 'Helvetica Neue', sans-serif;
    --serif:   'Fraunces', 'Source Serif Pro', Georgia, serif;
    --body:    'Inter', 'Helvetica Neue', Arial, sans-serif;
    --mono:    'JetBrains Mono', ui-monospace, Menlo, monospace;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
    font-family: var(--body);
    color: var(--ink);
    background: var(--paper);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: color .15s ease; }
button { font-family: inherit; cursor: pointer; border: 0; background: none; }
::selection { background: var(--green); color: #fff; }

/* === Type utilities === */
.smib-display { font-family: var(--display); font-weight: 800; letter-spacing: -.02em; line-height: .95; }
.smib-serif { font-family: var(--serif); font-style: italic; font-weight: 400; }
.smib-eyebrow {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 700;
    display: inline-block;
}
.smib-kicker {
    font-family: var(--mono);
    font-size: 12px;
    letter-spacing: .2em;
    text-transform: uppercase;
}

h1, h2, h3, h4, h5 {
    font-family: var(--display);
    color: var(--ink);
    line-height: 1.1;
    margin: 0 0 .6em;
    font-weight: 800;
    letter-spacing: -.02em;
}

p { margin: 0 0 14px; }

/* === Container === */
.smib-container { max-width: 1280px; margin: 0 auto; padding: 0 28px; }

/* ============================================================================
   TOPSTRIP
   ============================================================================ */
.smib-topstrip {
    background: var(--green-ink);
    color: #cfe9d8;
    font-family: var(--mono);
    font-size: 12.5px;
    letter-spacing: .14em;
    text-transform: uppercase;
    padding: 11px 0;
    font-weight: 500;
}
.smib-topstrip-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 28px;
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    flex-wrap: wrap;
}
.smib-topstrip .pulse {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #FF4040;
    margin-right: 8px;
    box-shadow: 0 0 0 0 rgba(255,64,64,.55);
    animation: smib-pulse 1.8s infinite;
}
.smib-topstrip-meta { display: flex; gap: 24px; align-items: center; }
.smib-topstrip-meta span { display: inline-flex; align-items: center; gap: 6px; }
.smib-topstrip-lead {
    display: inline-flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}
.smib-topstrip-about {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--gold) !important;
    text-decoration: none !important;
    border-bottom: 0 !important;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.smib-topstrip-about .dot-gold {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #fff;
    flex-shrink: 0;
}
.smib-topstrip-about:hover { color: #fff !important; }
.smib-topstrip-about:hover .dot-gold { background: var(--gold); }
.smib-topstrip-sep {
    width: 1px;
    height: 14px;
    background: rgba(255,255,255,.25);
    display: inline-block;
}
@keyframes smib-pulse {
    0%   { box-shadow: 0 0 0 0 rgba(255,64,64,.55); }
    70%  { box-shadow: 0 0 0 10px rgba(255,64,64,0); }
    100% { box-shadow: 0 0 0 0 rgba(255,64,64,0); }
}

/* ============================================================================
   TOPSTRIP — auth-state extensions
   ============================================================================ */
.smib-topstrip-right {
    display: inline-flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}
.smib-topstrip-manual {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #fff !important;
    text-decoration: none !important;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.smib-topstrip-manual svg { color: var(--gold); flex-shrink: 0; }
.smib-topstrip-manual:hover { color: var(--gold) !important; }
.smib-topstrip-login {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--gold) !important;
    text-decoration: none !important;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 5px 12px;
    border: 1px solid rgba(255, 208, 52, .4);
    border-radius: 999px;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.smib-topstrip-login:hover {
    background: rgba(255, 208, 52, .12);
    border-color: var(--gold);
    color: #fff !important;
}
.smib-topstrip-account {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 3px 12px 3px 3px;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 999px;
    color: #fff;
    font-family: var(--body);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: none;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease;
}
.smib-topstrip-account:hover {
    background: rgba(255, 208, 52, .08);
    border-color: rgba(255, 208, 52, .4);
}
.smib-topstrip-account-avatar {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--gold), var(--gold-deep));
    color: var(--green-ink);
    display: grid;
    place-items: center;
    font-family: var(--display);
    font-size: 11px;
    font-weight: 800;
}
.smib-topstrip-account-name { letter-spacing: .02em; }
.smib-topstrip-account-role {
    font-family: var(--mono);
    font-size: 9.5px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--gold);
    opacity: .9;
    padding-left: 8px;
    border-left: 1px solid rgba(255, 255, 255, .18);
}
.smib-topstrip-account .chev {
    opacity: .55;
    margin-left: -2px;
    transition: transform .15s ease, opacity .15s ease;
}
.smib-topstrip-account[aria-expanded="true"] .chev {
    transform: rotate(180deg);
    opacity: 1;
}
.smib-topstrip-manual:focus-visible,
.smib-topstrip-login:focus-visible,
.smib-topstrip-account:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: 2px;
}
@media (max-width: 768px) {
    .smib-topstrip-right { gap: 14px; }
}

/* ============================================================================
   NAV
   ============================================================================ */
.smib-site-header {
    position: sticky;
    top: 0;
    z-index: 40;
    background: rgba(250,250,247,.92);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--line);
}
.smib-header-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 18px 28px;
    display: flex;
    align-items: center;
    gap: 28px;
}
.smib-logo {
    display: flex;
    align-items: center;
    gap: 10px;
}
.smib-logo img { height: 64px; width: auto; transition: transform .2s ease; }
.smib-logo:hover img { transform: scale(1.05); }

.smib-primary-nav { flex: 1; }
.smib-menu {
    display: flex;
    gap: 4px;
    margin: 0 0 0 auto;
    padding: 0;
    list-style: none;
    flex-wrap: wrap;
    border: 0;
}
.smib-menu li {
    white-space: nowrap;
    border: 0;
}
.smib-menu li a {
    font-family: var(--body);
    font-size: 16px;
    font-weight: 500;
    color: var(--ink-2);
    padding: 10px 14px;
    border-radius: 8px;
    transition: background .15s ease, color .15s ease;
    position: relative;
    display: inline-block;
    line-height: 1.2;
    border: 0;
    text-decoration: none;
}
.smib-menu li a:hover { background: var(--green-soft); color: var(--green-deep); }
.smib-menu li.current-menu-item > a {
    color: var(--green-deep);
    font-weight: 600;
    border: 0;
    text-decoration: none;
}
.smib-menu li.current-menu-item > a::after {
    content: "";
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 2px;
    height: 2px;
    background: var(--red);
    border-radius: 2px;
}
.smib-menu .sub-menu { display: none; }

.smib-header-cta { display: flex; align-items: center; gap: 8px; }

/* Hide redundant Inscription menu item on desktop (CTA button covers it) */
@media (min-width: 769px) {
    .smib-menu li a[href*="/inscription/"]:not(.smib-btn),
    .smib-menu li a[href*="/registration/"]:not(.smib-btn) { display: none; }
    .smib-menu li:has(> a[href*="/inscription/"]:not(.smib-btn)),
    .smib-menu li:has(> a[href*="/registration/"]:not(.smib-btn)) { display: none; }
}

/* Lang switcher — toggle pill */
.smib-lang-switcher {
    display: inline-flex;
    background: var(--cream);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 3px;
}
.smib-lang-switcher ul,
.smib-lang {
    display: flex;
    gap: 0;
    list-style: none !important;
    margin: 0;
    padding: 0;
    font-family: var(--mono);
    font-size: 12px;
    letter-spacing: .12em;
}
.smib-lang-switcher li,
.smib-lang li {
    border: 0;
    margin: 0;
    padding: 0;
    list-style: none !important;
    list-style-type: none !important;
}
.smib-lang-switcher li::marker,
.smib-lang li::marker { content: none; }
.smib-lang-switcher li::before,
.smib-lang li::before { content: none !important; }
.smib-lang-switcher a,
.smib-lang-switcher span,
.smib-lang button,
.smib-lang a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    padding: 6px 12px;
    border-radius: 999px;
    color: var(--muted);
    font-weight: 700;
    text-transform: uppercase;
    text-decoration: none;
    transition: background .15s ease, color .15s ease;
    border: 0;
    background: transparent;
    cursor: pointer;
}
.smib-lang-switcher a:hover,
.smib-lang button:hover,
.smib-lang a:hover { color: var(--ink); }
.smib-lang-switcher .current-lang a,
.smib-lang-switcher li.current-menu-item a,
.smib-lang-switcher li.current-lang a,
.smib-lang-switcher li.current-lang span,
.smib-lang button.on,
.smib-lang a.on {
    background: var(--green);
    color: #fff;
    box-shadow: 0 2px 6px rgba(11,122,59,.25);
}

.smib-mobile-toggle {
    display: none;
    background: none;
    border: 0;
    cursor: pointer;
    padding: 8px;
}
.smib-mobile-toggle span {
    display: block;
    width: 26px;
    height: 3px;
    background: var(--ink);
    margin: 5px 0;
    border-radius: 3px;
    transition: transform .2s ease, opacity .2s ease;
}

/* ============================================================================
   BUTTONS
   ============================================================================ */
.smib-btn,
.smib-btn-primary,
.smib-btn-cta,
.smib-btn-ghost,
.smib-btn-gold,
.smib-btn-green {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 18px;
    border-radius: 999px;
    font-weight: 600;
    font-size: 14px;
    transition: transform .15s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
    white-space: nowrap;
    border: 0;
    cursor: pointer;
    text-decoration: none;
    line-height: 1.2;
    font-family: var(--body);
}
.smib-btn:hover { transform: translateY(-1px); }

.smib-btn-primary,
.smib-btn-cta {
    background: var(--red);
    color: #fff;
    box-shadow: 0 6px 20px -6px rgba(206,17,38,.6);
}
.smib-btn-primary:hover,
.smib-btn-cta:hover {
    background: var(--red-deep);
    box-shadow: 0 10px 26px -6px rgba(206,17,38,.7);
    color: #fff;
}

.smib-btn-ghost {
    background: transparent;
    color: var(--ink);
    border: 1.5px solid var(--ink);
}
.smib-btn-ghost:hover { background: var(--ink); color: var(--paper); }

.smib-btn-gold,
.smib-btn-cta-yellow {
    background: var(--gold);
    color: var(--green-ink);
    box-shadow: 0 6px 20px -6px rgba(255,208,52,.6);
}
.smib-btn-gold:hover,
.smib-btn-cta-yellow:hover { background: var(--gold-deep); color: #fff; }

.smib-btn-green { background: var(--green); color: #fff; }
.smib-btn-green:hover { background: var(--green-deep); color: #fff; }

.smib-btn-light {
    background: rgba(255,255,255,.08);
    color: #fff;
    border: 1px solid rgba(255,255,255,.2);
}
.smib-btn-light:hover { background: rgba(255,255,255,.15); color: #fff; }

/* Volunteer CTA — cream/ink, distinct from gold/green/red. */
.smib-btn-volunteer {
    background: var(--cream-warm);
    color: var(--ink);
    border: 1px solid var(--ink);
    box-shadow: 0 6px 20px -6px rgba(12,20,17,.35);
}
.smib-btn-volunteer:hover { background: #fff; color: var(--ink); border-color: var(--ink); }

/* Contact-page volunteer callout — appears when recruitment toggle is ON. */
.smib-volunteer-callout {
    margin-top: 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    background: linear-gradient(135deg, var(--ink) 0%, var(--ink-2) 100%);
    color: var(--cream-warm);
    border-radius: 14px;
    padding: 28px 32px;
    box-shadow: 0 10px 32px -10px rgba(12,20,17,.4);
}
.smib-volunteer-callout-body { flex: 1 1 360px; }
.smib-volunteer-callout-eyebrow {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 8px;
}
.smib-volunteer-callout h3 {
    margin: 0 0 8px;
    font-size: 24px;
    color: #fff;
}
.smib-volunteer-callout p {
    margin: 0;
    font-size: 15px;
    line-height: 1.55;
    color: rgba(247,241,227,.85);
}
.smib-volunteer-callout .smib-btn { flex: 0 0 auto; }
@media (max-width: 640px) {
    .smib-volunteer-callout { padding: 22px; }
    .smib-volunteer-callout h3 { font-size: 20px; }
}

/* ---------- Multi-video gallery ---------- */
.smib-video-list {
    display: grid;
    gap: 36px;
    margin: 24px 0;
}
.smib-video-item {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.smib-video-title {
    font-family: var(--display, 'Bricolage Grotesque', sans-serif);
    font-size: 22px;
    font-weight: 700;
    color: var(--green-ink, #03331A);
    margin: 0;
}
.smib-video-description {
    color: var(--ink-2, #2A3530);
    font-size: 15px;
    line-height: 1.55;
    margin: 0;
}

/* ---------- Gallery — themed cards + lightbox + protection ----------
   Used by single-galerie.php + assets/gallery.js. Layout coherent with the
   rest of the SMIB design system (cream/green-ink/gold, Bricolage/Inter). */
.smib-galerie-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(60% 80% at 90% 0%, rgba(255,208,52,.10), transparent 60%),
        radial-gradient(40% 60% at 0% 100%, rgba(206,17,38,.08), transparent 60%);
    pointer-events: none;
    z-index: 0;
}
.smib-galerie-content {
    margin: 36px auto 0;
    max-width: 760px;
    font-size: 16px;
    line-height: 1.7;
    color: var(--ink-2, #2A3530);
}

.smib-photo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 22px;
    margin: 36px 0 12px;
}
.smib-photo-grid--protected {
    user-select: none;
    -webkit-user-select: none;
    -webkit-user-drag: none;
}
.smib-photo-item {
    margin: 0;
    background: #fff;
    border: 1px solid var(--line, #E4E1D6);
    border-radius: 14px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    cursor: zoom-in;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.smib-photo-item:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 32px -16px rgba(3,51,26,.35);
    border-color: var(--gold, #FFD034);
}
.smib-photo-item:focus-visible {
    outline: 2px solid var(--gold, #FFD034);
    outline-offset: 2px;
}
.smib-photo-frame {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--cream, #F7F1E3);
}
.smib-photo-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    pointer-events: none;
    -webkit-user-drag: none;
    user-drag: none;
    transition: transform .35s ease;
}
.smib-photo-item:hover .smib-photo-frame img {
    transform: scale(1.04);
}
.smib-photo-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 55%, rgba(3,51,26,.45) 100%);
    pointer-events: none;
    opacity: 0;
    transition: opacity .25s ease;
}
.smib-photo-item:hover .smib-photo-overlay { opacity: 1; }
.smib-photo-watermark {
    position: absolute;
    right: 10px;
    bottom: 8px;
    font-family: var(--mono, monospace);
    font-size: 10px;
    letter-spacing: .14em;
    color: rgba(255,255,255,.92);
    text-shadow: 0 1px 3px rgba(0,0,0,.65);
    pointer-events: none;
    z-index: 2;
}
/* Caption pinned under the photo as a typographic card footer. */
.smib-photo-caption {
    padding: 14px 16px 16px;
    background: var(--cream-warm, #FBF6E9);
    border-top: 1px solid var(--line, #E4E1D6);
    flex: 1 1 auto;
}
.smib-photo-caption-title {
    display: block;
    font-family: var(--display, 'Bricolage Grotesque', sans-serif);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--green-ink, #03331A);
}

/* Pagination (themed to match results-page chrome). */
.smib-gallery-pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    align-items: center;
    margin: 36px 0 8px;
}
.smib-gallery-pagination a,
.smib-gallery-pagination span {
    min-width: 40px;
    padding: 9px 14px;
    border-radius: 99px;
    text-decoration: none;
    text-align: center;
    font-family: var(--body, 'Inter', sans-serif);
    font-size: 14px;
    font-weight: 600;
    color: var(--green-deep, #054D26);
    background: #fff;
    border: 1px solid var(--line, #E4E1D6);
    transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
.smib-gallery-pagination a:hover {
    background: var(--cream-warm, #FBF6E9);
    border-color: var(--gold, #FFD034);
    transform: translateY(-1px);
}
.smib-gallery-pagination a.is-current {
    background: var(--green-ink, #03331A);
    color: #fff;
    border-color: var(--green-ink, #03331A);
}
.smib-gallery-pagination a.smib-gp-arrow {
    background: transparent;
    border-color: transparent;
    color: var(--green-deep, #054D26);
    font-family: var(--mono, monospace);
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.smib-gallery-pagination a.smib-gp-arrow:hover {
    background: var(--cream-warm, #FBF6E9);
    border-color: transparent;
}
.smib-gallery-pagination .smib-gp-dots {
    background: transparent;
    border: 0;
    color: #999;
    font-weight: 400;
}

/* Lightbox */
.smib-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(3,20,12,.95);
    z-index: 99998;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.smib-lightbox[hidden] { display: none; }
.smib-lightbox-figure {
    margin: 0;
    max-width: 92vw;
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    position: relative;
}
.smib-lightbox-img {
    max-width: 92vw;
    max-height: 80vh;
    width: auto;
    height: auto;
    border-radius: 6px;
    box-shadow: 0 24px 60px -20px rgba(0,0,0,.6);
    pointer-events: none;
    -webkit-user-drag: none;
    user-drag: none;
}
.smib-lightbox-caption {
    color: #fff;
    font-size: 14px;
    text-align: center;
    max-width: 80ch;
}
.smib-lightbox-counter {
    position: absolute;
    top: 18px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--mono, monospace);
    font-size: 12px;
    letter-spacing: .14em;
    color: rgba(255,255,255,.7);
}
.smib-lightbox-close,
.smib-lightbox-prev,
.smib-lightbox-next {
    position: absolute;
    background: rgba(255,255,255,.12);
    color: #fff;
    border: 0;
    border-radius: 50%;
    cursor: pointer;
    font-size: 32px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .15s ease, transform .15s ease;
}
.smib-lightbox-close { top: 18px; right: 18px; width: 44px; height: 44px; }
.smib-lightbox-prev  { left: 18px; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; font-size: 36px; padding-bottom: 4px; }
.smib-lightbox-next  { right: 18px; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; font-size: 36px; padding-bottom: 4px; }
.smib-lightbox-close:hover,
.smib-lightbox-prev:hover,
.smib-lightbox-next:hover {
    background: var(--gold, #FFD034);
    color: var(--green-ink, #03331A);
}
.smib-lightbox-prev:hover { transform: translateY(-50%) scale(1.05); }
.smib-lightbox-next:hover { transform: translateY(-50%) scale(1.05); }
.smib-photo-watermark--lb {
    bottom: -22px;
    right: 6px;
    font-size: 11px;
    color: rgba(255,255,255,.6);
    text-shadow: none;
}
@media (max-width: 640px) {
    .smib-photo-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
    .smib-photo-watermark { font-size: 9px; }
    .smib-lightbox-prev,
    .smib-lightbox-next { width: 40px; height: 40px; font-size: 26px; }
    .smib-lightbox-close { width: 38px; height: 38px; font-size: 26px; }
}

/* ---------- LIVE banner (Régie jour J) ----------
   Rendered by smib_live_banner_render() right after <body>. */
.smib-live-banner {
    width: 100%;
    font-family: var(--body);
    font-size: 14px;
    line-height: 1.4;
    position: relative;
    z-index: 9999;
}
.smib-live-banner-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 10px 20px;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.smib-live-banner-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 0 0 currentColor;
    animation: smib-live-pulse 1.6s ease-out infinite;
    flex-shrink: 0;
}
@keyframes smib-live-pulse {
    0%   { box-shadow: 0 0 0 0 rgba(255,255,255,.7); }
    70%  { box-shadow: 0 0 0 8px rgba(255,255,255,0); }
    100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); }
}
.smib-live-banner-label {
    font-family: var(--mono);
    font-weight: 700;
    letter-spacing: .18em;
    font-size: 11px;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 99px;
    background: rgba(0,0,0,.18);
    flex-shrink: 0;
}
.smib-live-banner--warning .smib-live-banner-label { background: rgba(3,51,26,.15); }
.smib-live-banner-msg {
    flex: 1 1 auto;
    font-weight: 500;
}
.smib-live-banner-cta {
    color: inherit !important;
    text-decoration: underline;
    font-weight: 700;
    flex-shrink: 0;
}
.smib-live-banner-cta:hover { opacity: .85; }
@media (max-width: 640px) {
    .smib-live-banner { font-size: 13px; }
    .smib-live-banner-inner { padding: 8px 14px; gap: 8px; }
}

/* ---------- Footer volunteer hero (Option 2B · GOLD) ----------
   Renders only when the recruitment toggle is ON. Sits between the
   flag bar and the 4-column grid; the grid below is unchanged. */
.smib-volunteer-wrap {
    position: relative;
    z-index: 2;
    max-width: 1280px;
    margin: 0 auto;
    padding: 48px 40px 0;
}
.smib-volunteer-card {
    background: var(--gold);
    color: var(--green-ink);
    border-radius: 18px;
    padding: 32px 36px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 32px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 18px 50px -20px rgba(255,208,52,.45),
                inset 0 0 0 1px rgba(0,0,0,.04);
}
.smib-volunteer-card::before,
.smib-volunteer-card::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 120px;
    pointer-events: none;
    background-image: repeating-linear-gradient(
        45deg,
        var(--green-ink) 0 10px,
        transparent 10px 20px
    );
    opacity: .12;
}
.smib-volunteer-card::before { left: 0; }
.smib-volunteer-card::after  { right: 0; transform: scaleX(-1); }

.smib-volunteer-mark {
    position: relative;
    z-index: 1;
    width: 88px;
    height: 88px;
    border-radius: 50%;
    background: var(--green-ink);
    color: var(--gold);
    display: grid;
    place-items: center;
    box-shadow: inset 0 0 0 4px var(--gold), 0 0 0 1px rgba(0,0,0,.05);
}
.smib-volunteer-mark svg { width: 36px; height: 36px; }
.smib-volunteer-badge {
    position: absolute;
    bottom: -6px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--red);
    color: #fff;
    font-family: var(--mono);
    font-size: 9px;
    letter-spacing: .18em;
    text-transform: uppercase;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 999px;
    white-space: nowrap;
}

.smib-volunteer-copy { position: relative; z-index: 1; }
.smib-volunteer-eyebrow {
    font-family: var(--mono);
    font-size: 13px;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--red-deep);
    font-weight: 700;
    margin-bottom: 12px;
}
.smib-volunteer-headline {
    font-family: var(--display);
    font-weight: 800;
    font-size: 30px;
    letter-spacing: -.02em;
    color: var(--green-ink);
    margin: 0 0 10px;
    line-height: 1.05;
}
.smib-volunteer-headline em {
    font-family: var(--serif);
    font-style: italic;
    font-weight: 300;
    color: var(--red-deep);
}
.smib-volunteer-body {
    margin: 0;
    font-size: 14px;
    color: rgba(3,51,26,.78);
    max-width: 520px;
    line-height: 1.55;
}

.smib-volunteer-cta {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-end;
}
.smib-volunteer-button {
    background: var(--red);
    color: #fff !important;
    font-weight: 600;
    font-size: 15px;
    padding: 14px 22px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    border: 0;
    cursor: pointer;
    font-family: var(--body);
    text-decoration: none;
    box-shadow: 0 10px 26px -8px rgba(142,10,24,.55);
    transition: transform .15s, background .2s;
}
.smib-volunteer-button:hover {
    transform: translateY(-1px);
    background: var(--red-deep);
    color: #fff !important;
    padding-left: 22px;
}
.smib-volunteer-button:focus-visible {
    outline: 2px solid var(--red-deep);
    outline-offset: 2px;
}
.smib-volunteer-meta {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: rgba(3,51,26,.6);
    font-weight: 600;
}

@media (max-width: 1023px) {
    .smib-volunteer-card {
        grid-template-columns: auto 1fr;
        gap: 24px;
        padding: 28px 24px;
    }
    .smib-volunteer-headline { font-size: 26px; }
    .smib-volunteer-cta {
        grid-column: 1 / -1;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        width: 100%;
    }
    .smib-volunteer-button { width: auto; }
}
@media (max-width: 767px) {
    .smib-volunteer-wrap { padding: 32px 20px 0; }
    .smib-volunteer-card { grid-template-columns: 1fr; padding: 22px 20px; }
    .smib-volunteer-card::before,
    .smib-volunteer-card::after { width: 60px; }
    .smib-volunteer-mark { width: 64px; height: 64px; }
    .smib-volunteer-mark svg { width: 28px; height: 28px; }
    .smib-volunteer-headline { font-size: 24px; }
    .smib-volunteer-cta {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }
    .smib-volunteer-button { justify-content: center; width: 100%; }
    .smib-volunteer-meta { text-align: center; }
}

.smib-btn-xl { padding: 16px 28px; font-size: 15px; }

/* Linear "read more" arrow text */
.smib-link-arrow {
    color: var(--green-deep);
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: gap .2s ease, color .15s ease;
}
.smib-link-arrow:hover { gap: 8px; color: var(--green); }

/* Eyebrow with red dot */
.smib-section-label {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--green);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
}
.smib-section-label::before {
    content: "";
    width: 8px;
    height: 8px;
    background: var(--red);
    border-radius: 50%;
}

/* ============================================================================
   SECTIONS / HEADERS
   ============================================================================ */
.smib-section { padding: 96px 0; position: relative; }
.smib-section-tight { padding: 64px 0; }
.smib-section-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 40px;
    margin-bottom: 48px;
    flex-wrap: wrap;
}
.smib-section-head h2 {
    font-family: var(--display);
    font-size: clamp(32px, 4vw, 56px);
    font-weight: 800;
    letter-spacing: -.025em;
    margin: 8px 0 0;
    color: var(--ink);
    line-height: 1;
}
.smib-section-head h2 .smib-it,
.smib-section-head h2 .it {
    font-family: var(--serif);
    font-style: italic;
    font-weight: 400;
    color: var(--red);
}
.smib-section-head .smib-lead {
    max-width: 480px;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.6;
}

/* ============================================================================
   HERO A — Editorial photo
   ============================================================================ */
.smib-hero {
    position: relative;
    overflow: hidden;
    background: var(--green-ink);
    color: #fff;
    min-height: 720px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 80px 0 0;
}
.smib-hero-photo {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(180deg, rgba(10,20,16,.55) 0%, rgba(10,20,16,.5) 30%, rgba(10,20,16,.95) 100%),
        var(--smib-hero-img, url('banniere-officielle.jpeg'));
    background-size: cover;
    background-position: center;
}
.smib-hero-photo::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(10,20,16,.85), rgba(10,20,16,.45) 55%, rgba(10,20,16,.55) 100%);
}
.smib-hero-photo::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(255,255,255,.06) 1px, transparent 1px);
    background-size: 3px 3px;
    mix-blend-mode: overlay;
    opacity: .4;
}
.smib-hero-grid {
    position: relative;
    max-width: 1280px;
    margin: 0 auto;
    padding: 60px 28px 0;
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 40px;
    align-items: end;
    width: 100%;
}
.smib-hero-edition {
    display: flex;
    align-items: center;
    gap: 14px;
    font-family: var(--mono);
    font-size: 12px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: #cfe9d8;
    margin-bottom: 24px;
}
.smib-hero-edition .num {
    font-family: var(--display);
    font-size: 40px;
    color: var(--gold);
    letter-spacing: 0;
    line-height: 1;
    font-weight: 800;
}
.smib-hero-edition .num sup { font-size: 18px; }
.smib-hero-edition .meta-sub { color: var(--gold); font-size: 10px; }
.smib-hero h1 {
    font-family: var(--display);
    font-weight: 800;
    font-size: clamp(72px, 10vw, 168px);
    letter-spacing: -.04em;
    line-height: .86;
    margin: 0;
    color: #fff;
    text-shadow: 0 4px 40px rgba(0,0,0,.6);
    text-wrap: balance;
}
.smib-hero h1 .accent {
    color: var(--gold);
    font-style: italic;
    font-family: var(--serif);
    font-weight: 400;
    letter-spacing: -.02em;
}
.smib-hero h1 .accent2 {
    display: block;
    color: #fff;
    font-weight: 800;
    font-style: normal;
}
.smib-hero-sub {
    font-family: var(--serif);
    font-size: 22px;
    font-style: italic;
    color: #eaf6ee;
    max-width: 540px;
    margin: 24px 0 32px;
    line-height: 1.4;
    text-shadow: 0 2px 16px rgba(0,0,0,.6);
}
.smib-hero-cta {
    display: flex;
    gap: 14px;
    align-items: center;
    flex-wrap: wrap;
    padding-bottom: 60px;
}
.smib-hero-cta .meta {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: #9bb6a4;
    margin-left: 6px;
}

.smib-hero-right {
    padding-bottom: 60px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 18px;
}
.smib-date-stamp {
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: var(--r-lg);
    padding: 24px;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    min-width: 280px;
}
.smib-date-stamp .label {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: #cfe9d8;
    display: flex;
    justify-content: space-between;
    margin-bottom: 14px;
}
.smib-date-stamp .big {
    font-family: var(--display);
    font-size: 60px;
    line-height: 1;
    color: var(--gold);
    font-weight: 800;
    letter-spacing: -.02em;
}
.smib-date-stamp .month {
    font-family: var(--display);
    font-size: 24px;
    color: #fff;
    letter-spacing: .02em;
    font-weight: 700;
    margin-top: 4px;
}
.smib-date-stamp .where {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px dashed rgba(255,255,255,.18);
    font-size: 13px;
    color: #cfe9d8;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Ticker */
.smib-ticker {
    background: var(--green-ink);
    color: #fff;
    font-family: var(--mono);
    font-size: 14px;
    letter-spacing: .18em;
    text-transform: uppercase;
    font-weight: 700;
    padding: 18px 0;
    display: flex;
    gap: 48px;
    overflow: hidden;
    white-space: nowrap;
    border-top: 3px solid var(--gold);
    border-bottom: 3px solid var(--red);
}
.smib-ticker-track {
    display: flex;
    gap: 48px;
    animation: smib-ticker-scroll 40s linear infinite;
    padding-left: 48px;
}
.smib-ticker:hover .smib-ticker-track { animation-play-state: paused; }
.smib-ticker-track span::after {
    content: "★";
    margin-left: 48px;
    color: var(--gold);
}
@keyframes smib-ticker-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

/* ============================================================================
   PATRONAGE
   ============================================================================ */
.smib-patronage {
    background: linear-gradient(180deg, var(--cream-warm), var(--paper));
}
.smib-patronage-grid {
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: 60px;
    align-items: center;
}
.smib-patron-photo {
    position: relative;
    border-radius: var(--r-lg);
    overflow: hidden;
    aspect-ratio: 4/5;
    background: #cbd6cf;
    box-shadow: var(--shadow-lg);
}
.smib-patron-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 65%; }
.smib-patron-photo::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 50%, rgba(3,51,26,.5));
    pointer-events: none;
}
.smib-patron-photo .seal {
    position: absolute;
    top: 18px;
    right: 18px;
    background: var(--gold);
    color: var(--green-ink);
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .18em;
    text-transform: uppercase;
    padding: 6px 10px;
    border-radius: 6px;
    font-weight: 700;
    box-shadow: 0 2px 8px rgba(0,0,0,.18);
}
.smib-patron-photo .name {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 18px;
    color: #fff;
    z-index: 2;
}
.smib-patron-photo .name .t {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: #fff;
    text-shadow: 0 1px 6px rgba(0,0,0,.75), 0 0 18px rgba(3,51,26,.55);
}
.smib-patron-photo .name .n {
    font-family: var(--display);
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -.01em;
    margin-top: 4px;
    color: #fff;
    text-shadow: 0 1px 6px rgba(0,0,0,.8), 0 0 24px rgba(3,51,26,.6);
}
/* Strengthen bottom gradient so caption pops on light photo backgrounds. */
.smib-patron-photo::after {
    background: linear-gradient(180deg, transparent 40%, rgba(3,51,26,.85)) !important;
}
.smib-patron-text .quote {
    font-family: var(--serif);
    font-style: italic;
    font-size: clamp(28px, 3.4vw, 42px);
    line-height: 1.2;
    color: var(--green-deep);
    font-weight: 300;
    margin: 60px 0 28px;
    position: relative;
}
.smib-patron-text .quote::before {
    content: "\201C";
    font-family: var(--serif);
    font-size: 96px;
    color: var(--gold);
    position: absolute;
    left: -14px;
    top: -28px;
    line-height: 1;
    font-weight: 400;
    z-index: 0;
    opacity: .85;
    pointer-events: none;
}
.smib-patron-text .smib-section-label {
    position: relative;
    z-index: 1;
}
.smib-patron-text p {
    font-size: 16px;
    color: var(--ink-2);
    line-height: 1.7;
    max-width: 520px;
}
.smib-patron-text .signature {
    margin-top: 24px;
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--muted);
}

/* ============================================================================
   COUNTDOWN
   ============================================================================ */
.smib-section-countdown {
    background: var(--cream-warm);
    padding: 80px 0;
    text-align: center;
}
.smib-cd-eyebrow {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--red);
    margin-bottom: 6px;
    font-weight: 700;
}
.smib-section-countdown h2 {
    font-family: var(--display);
    font-size: clamp(28px, 3.4vw, 42px);
    font-weight: 800;
    letter-spacing: -.02em;
    margin: 0 0 36px;
    color: var(--green-ink);
}
.smib-cd-grid,
.smib-countdown-grid {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
}
.smib-countdown-cell,
.smib-cd-cell {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    min-width: 130px;
    padding: 24px 20px;
    box-shadow: var(--shadow-sm);
    transition: transform .2s ease, box-shadow .2s ease;
}
.smib-cd-cell:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.smib-countdown-num,
.smib-cd-cell .v {
    display: block;
    font-family: var(--display);
    font-size: 56px;
    font-weight: 800;
    color: var(--red);
    line-height: 1;
    letter-spacing: -.04em;
}
.smib-countdown-unit,
.smib-cd-cell .l {
    display: block;
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--muted);
    margin-top: 8px;
    font-weight: 700;
}
.smib-cd-cta { margin-top: 36px; }
.smib-cd-note {
    margin-top: 14px;
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--muted);
}

/* ============================================================================
   STATS
   ============================================================================ */
.smib-section-stats {
    background: var(--green-ink);
    color: #fff;
    position: relative;
    overflow: hidden;
}
.smib-section-stats::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(50% 80% at 50% 0%, rgba(255,208,52,.08), transparent 70%);
    pointer-events: none;
}
.smib-stats-head {
    position: relative;
    text-align: center;
    padding: 60px 0 32px;
}
.smib-stats-head .lab {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--gold);
    font-weight: 700;
}
.smib-stats-head h2 {
    font-family: var(--display);
    font-size: clamp(32px, 4vw, 52px);
    font-weight: 800;
    letter-spacing: -.02em;
    color: #fff;
    margin: 8px 0 0;
}
.smib-stats-head .smib-stats-lead {
    max-width: 760px;
    margin: 18px auto 0;
    color: rgba(255,255,255,.78);
    font-family: var(--body);
    font-size: 16px;
    line-height: 1.6;
}
.smib-stats-grid {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid rgba(255,255,255,.1);
    border-bottom: 1px solid rgba(255,255,255,.1);
}
.smib-stat-cell {
    padding: 48px 28px;
    border-right: 1px solid rgba(255,255,255,.1);
    position: relative;
    text-align: center;
}
.smib-stat-cell:last-child { border-right: 0; }
.smib-stat-num {
    font-family: var(--display);
    font-size: clamp(48px, 6vw, 84px);
    font-weight: 800;
    letter-spacing: -.03em;
    color: var(--gold);
    line-height: 1;
}
.smib-stat-lbl {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: #cfe9d8;
    margin-top: 8px;
    font-weight: 700;
}
.smib-stat-desc {
    font-size: 13px;
    color: #9bb6a4;
    margin-top: 8px;
}

/* ============================================================================
   WHY-RUN CARDS (3 value props)
   ============================================================================ */
.smib-why-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.smib-why-card {
    position: relative;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: 32px;
    background: #fff;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    overflow: hidden;
}
.smib-why-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
    border-color: transparent;
}
.smib-why-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--green);
    transition: width .2s ease;
}
.smib-why-card:hover::before { width: 6px; }
.smib-why-card .num {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .2em;
    color: var(--muted);
    margin-bottom: 16px;
    display: block;
}
.smib-why-card h3 {
    font-family: var(--display);
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -.01em;
    margin: 0 0 12px;
    line-height: 1.15;
}
.smib-why-card p {
    margin: 0;
    font-size: 14px;
    color: var(--ink-2);
    line-height: 1.65;
}
.smib-why-card .icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--green-soft);
    color: var(--green-deep);
    display: grid;
    place-items: center;
    margin-bottom: 18px;
}
.smib-why-card.alt::before { background: var(--red); }
.smib-why-card.alt .icon { background: #FCE5E7; color: var(--red-deep); }
.smib-why-card.gold::before { background: var(--gold); }
.smib-why-card.gold .icon { background: #FFF5D6; color: var(--gold-deep); }

/* ============================================================================
   NEWS GRID
   ============================================================================ */
.smib-news-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: 24px;
}
.smib-news-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform .2s ease, box-shadow .2s ease;
}
.smib-news-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.smib-news-thumb {
    aspect-ratio: 16/10;
    background: var(--cream);
    position: relative;
    overflow: hidden;
    display: block;
}
.smib-news-card.feat .smib-news-thumb { aspect-ratio: 4/3; }
.smib-news-thumb img,
.smib-news-thumb svg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}
.smib-news-card:hover .smib-news-thumb img { transform: scale(1.04); }
.smib-news-thumb-tag {
    position: absolute;
    top: 14px;
    left: 14px;
    background: var(--gold);
    color: var(--green-ink);
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .18em;
    text-transform: uppercase;
    padding: 6px 10px;
    border-radius: 6px;
    font-weight: 700;
}
.smib-news-thumb-tag.tag-conseils { background: var(--red); color: #fff; }
.smib-news-thumb-tag.tag-sponsor  { background: var(--green-deep); color: #fff; }
.smib-news-body {
    padding: 22px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}
.smib-news-meta {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--muted);
    display: flex;
    gap: 14px;
}
.smib-news-card h3 {
    font-family: var(--display);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -.01em;
    line-height: 1.25;
    margin: 0;
    color: var(--ink);
}
.smib-news-card.feat h3 { font-size: 28px; }
.smib-news-card h3 a { color: inherit; text-decoration: none; }
.smib-news-card h3 a:hover { color: var(--green); text-decoration: none; }
.smib-news-card p {
    margin: 0;
    font-size: 14px;
    color: var(--ink-2);
    line-height: 1.6;
}
.smib-news-card .read,
.smib-news-card .smib-link-arrow { margin-top: auto; }

/* ============================================================================
   ROUTE PREVIEW (homepage tease)
   ============================================================================ */
.smib-route-preview {
    background: linear-gradient(180deg, var(--paper), var(--cream-warm) 70%, var(--paper));
}
.smib-route-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 48px;
    align-items: center;
}
.smib-route-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: 24px;
    box-shadow: var(--shadow-md);
}
.smib-route-card .head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 14px;
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--muted);
}
.smib-route-card .head .live {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--green-deep);
    font-weight: 700;
}
.smib-route-card .head .live .d {
    width: 8px;
    height: 8px;
    background: var(--red);
    border-radius: 50%;
    animation: smib-pulse 1.6s infinite;
}
.smib-route-card .map {
    aspect-ratio: 5/4;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    position: relative;
}
.smib-route-card .map img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #fff;
}
.smib-route-card .pts {
    display: flex;
    justify-content: space-between;
    margin-top: 14px;
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--muted);
    padding-top: 14px;
    border-top: 1px dashed var(--line-2);
}
.smib-route-card .pts .it {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}
.smib-route-card .pts .it .v {
    color: var(--green-deep);
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 0;
    text-transform: none;
}
.smib-route-info h2 {
    font-family: var(--display);
    font-size: clamp(32px, 4vw, 56px);
    font-weight: 800;
    letter-spacing: -.025em;
    margin: 8px 0 18px;
    line-height: 1;
}
.smib-route-info h2 .km {
    font-family: var(--serif);
    font-style: italic;
    font-weight: 300;
    color: var(--red);
}
.smib-route-info p {
    color: var(--ink-2);
    font-size: 16px;
    line-height: 1.7;
    max-width: 460px;
    margin: 0 0 24px;
}
.smib-checkpoints {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin: 24px 0 28px;
}
.smib-cp {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 12px;
    border-left: 2px solid var(--green);
    background: #fff;
    border-radius: 0 8px 8px 0;
}
.smib-cp .km-pill {
    font-family: var(--mono);
    font-size: 11px;
    background: var(--green);
    color: #fff;
    padding: 3px 8px;
    border-radius: 6px;
    font-weight: 700;
    letter-spacing: .05em;
}
.smib-cp .name {
    font-family: var(--display);
    font-weight: 700;
    font-size: 14px;
    color: var(--ink);
    line-height: 1.3;
    margin-top: 1px;
}

/* ============================================================================
   SPONSORS
   ============================================================================ */
.smib-section-sponsors { background: var(--paper); }
.smib-sponsor-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 24px;
}
.smib-sponsor-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: 36px;
    display: flex;
    align-items: center;
    gap: 28px;
    position: relative;
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease;
}
.smib-sponsor-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.smib-sponsor-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
}
.smib-sponsor-card.principal::before,
.smib-sponsor-card-official::before { background: var(--gold); }
.smib-sponsor-card.partner::before,
.smib-sponsor-card-partner::before { background: var(--green); }
.smib-sponsor-tag {
    position: absolute;
    top: 16px;
    right: 16px;
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .2em;
    text-transform: uppercase;
    background: var(--cream);
    padding: 4px 10px;
    border-radius: 6px;
    color: var(--ink-2);
    font-weight: 700;
}
.smib-sponsor-card.principal .smib-sponsor-tag,
.smib-sponsor-tag-gold { background: var(--gold); color: var(--green-ink); }
.smib-sponsor-card.partner .smib-sponsor-tag,
.smib-sponsor-tag-green { background: var(--green); color: #fff; }
.smib-sponsor-logo,
.smib-sponsor-logo-large {
    width: 120px;
    height: 120px;
    background: var(--cream);
    border-radius: 14px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    padding: 18px;
}
.smib-sponsor-logo img,
.smib-sponsor-logo-large img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.smib-sponsor-card h3,
.smib-sponsor-name {
    font-family: var(--display);
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -.01em;
    margin: 0 0 8px;
    color: var(--ink);
}
.smib-sponsor-card .desc,
.smib-sponsor-meta {
    font-size: 14px;
    color: var(--ink-2);
    line-height: 1.55;
    margin: 0 0 12px;
}
.smib-sponsor-card .role {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--green-deep);
    font-weight: 600;
}
.smib-sponsors-honour {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 24px;
    margin-top: 32px;
}

/* === Sponsors page tiers === */
.smib-sp-tier {
    margin-bottom: 48px;
}
.smib-sp-tier-label {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 14px;
    font-weight: 700;
}
.smib-sp-tier-label::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--line);
}

/* Sponsors page: cards stack vertically (single big card per tier) */
.smib-sp-tier .smib-sponsor-card {
    flex-wrap: wrap;
}

.smib-haut-patronage {
    background: var(--cream-warm);
    border: 1px dashed var(--gold);
    border-radius: var(--r-lg);
    padding: 32px;
    text-align: center;
    margin-top: 32px;
}
.smib-haut-patronage h3 {
    font-family: var(--display);
    font-size: 24px;
    font-weight: 700;
    margin: 8px 0;
    color: var(--green-ink);
    letter-spacing: -.01em;
}
.smib-haut-patronage-name {
    font-family: var(--display);
    font-size: 20px;
    color: var(--green-deep);
    font-weight: 800;
    letter-spacing: -.01em;
}

@media (max-width: 768px) {
    .smib-sp-tier .smib-sponsor-card {
        padding: 28px !important;
        flex-direction: column;
        text-align: center;
    }
    .smib-sp-tier .smib-sponsor-card .smib-sponsor-logo {
        width: 120px !important;
        height: 120px !important;
        margin: 0 auto;
    }
}

/* ============================================================================
   TESTIMONIALS
   ============================================================================ */
.smib-testimonials {
    background: var(--green-ink);
    color: #fff;
    position: relative;
    overflow: hidden;
}
.smib-testimonials::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(50% 80% at 70% 30%, rgba(255,208,52,.08), transparent 60%);
}
.smib-test-grid {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.smib-test-card {
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: var(--r-lg);
    padding: 32px;
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    transition: transform .2s ease, background .2s ease;
}
.smib-test-card:hover { transform: translateY(-4px); background: rgba(255,255,255,.06); }
.smib-test-card .quote-icon {
    font-family: var(--serif);
    font-size: 64px;
    color: var(--gold);
    line-height: 1;
    margin-bottom: 8px;
    display: block;
}
.smib-test-card .quote {
    font-family: var(--serif);
    font-style: italic;
    font-weight: 300;
    font-size: 18px;
    line-height: 1.5;
    color: #fff;
    margin: 0 0 24px;
}
.smib-test-card .who {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,.1);
}
.smib-test-card .who .ph {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--green);
    display: grid;
    place-items: center;
    font-family: var(--display);
    font-weight: 800;
    color: var(--gold);
    font-size: 18px;
    flex-shrink: 0;
}
.smib-test-card .who .name {
    font-family: var(--display);
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    letter-spacing: -.01em;
}
.smib-test-card .who .role {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #9bb6a4;
    margin-top: 2px;
}
.smib-test-card .flag {
    margin-left: auto;
    font-size: 24px;
    line-height: 1;
}

/* ============================================================================
   CTA BANNER (final)
   ============================================================================ */
.smib-section-cta-final,
.smib-cta-banner {
    background: var(--red);
    color: #fff;
    position: relative;
    overflow: hidden;
}
.smib-cta-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(50% 80% at 90% 50%, rgba(255,208,52,.18), transparent 60%),
        radial-gradient(40% 60% at 10% 50%, rgba(0,0,0,.2), transparent 60%);
}
.smib-cta-banner-inner,
.smib-cta-final {
    position: relative;
    max-width: 1280px;
    margin: 0 auto;
    padding: 80px 28px;
    display: grid;
    grid-template-columns: 1.4fr auto;
    gap: 48px;
    align-items: center;
}
.smib-cta-banner h2,
.smib-cta-final h2 {
    font-family: var(--display);
    font-size: clamp(36px, 5vw, 72px);
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: .95;
    margin: 0;
    color: #fff;
}
.smib-cta-banner h2 .it,
.smib-cta-final h2 .it {
    font-family: var(--serif);
    font-style: italic;
    font-weight: 300;
    color: var(--gold);
}
.smib-cta-banner p {
    font-size: 17px;
    color: #ffd5d8;
    margin: 18px 0 0;
    max-width: 480px;
    line-height: 1.55;
}
.smib-cta-block {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: flex-end;
}
.smib-cta-block .free-tag {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--gold);
    font-weight: 700;
}
.smib-cta-block .smib-btn { padding: 18px 32px; font-size: 15px; }
.smib-cta-final-note {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #ffd5d8;
}

/* ============================================================================
   FAQ
   ============================================================================ */
.smib-faq-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
}
.smib-faq-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.smib-faq-item {
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    background: #fff;
    overflow: hidden;
    transition: border-color .2s ease;
}
.smib-faq-item.open { border-color: var(--green); }
.smib-faq-q {
    padding: 18px 22px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-family: var(--display);
    font-size: 16px;
    font-weight: 600;
    color: var(--ink);
    gap: 18px;
    width: 100%;
    text-align: left;
    background: transparent;
    border: 0;
}
.smib-faq-q .chev {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--cream);
    display: grid;
    place-items: center;
    font-size: 14px;
    color: var(--green-deep);
    transition: transform .2s ease, background .2s ease, color .2s ease;
    flex-shrink: 0;
}
.smib-faq-item.open .chev {
    transform: rotate(180deg);
    background: var(--green);
    color: #fff;
}
.smib-faq-a {
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s ease, padding .25s ease;
    padding: 0 22px;
}
.smib-faq-item.open .smib-faq-a {
    max-height: 400px;
    padding: 0 22px 18px;
    color: var(--ink-2);
    font-size: 14px;
    line-height: 1.6;
}

/* ============================================================================
   PRESS / KIT MEDIA card
   ============================================================================ */
.smib-press-card {
    background: linear-gradient(135deg, var(--green-deep), var(--green-ink));
    color: #fff;
    border-radius: var(--r-lg);
    padding: 48px;
    position: relative;
    overflow: hidden;
}
.smib-press-card::before {
    content: "";
    position: absolute;
    right: -40px;
    top: -40px;
    width: 240px;
    height: 240px;
    background: radial-gradient(closest-side, rgba(255,208,52,.18), transparent 70%);
    border-radius: 50%;
}
.smib-press-card .label {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--gold);
    font-weight: 700;
}
.smib-press-card h3 {
    font-family: var(--display);
    font-size: 32px;
    font-weight: 800;
    letter-spacing: -.02em;
    margin: 8px 0 14px;
    color: #fff;
}
.smib-press-card p {
    color: #cfe9d8;
    font-size: 15px;
    line-height: 1.6;
    margin: 0 0 24px;
    max-width: 380px;
}
.smib-press-card .links {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}
.smib-press-card .lk {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 999px;
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #fff;
    transition: background .2s ease;
}
.smib-press-card .lk:hover { background: rgba(255,255,255,.1); color: #fff; }

/* ============================================================================
   PAGE HERO (inner pages)
   ============================================================================ */
.smib-page-hero,
.smib-news-hero,
.smib-page-hero-rich {
    padding: 80px 0 60px;
    background: linear-gradient(180deg, var(--cream-warm), var(--paper));
    border-bottom: 1px solid var(--line);
    position: relative;
    overflow: hidden;
}
.smib-page-hero::before,
.smib-news-hero::before {
    content: "";
    position: absolute;
    right: -100px;
    top: -100px;
    width: 400px;
    height: 400px;
    background: radial-gradient(closest-side, rgba(11,122,59,.06), transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}
.smib-page-hero-inner {
    position: relative;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 28px;
}
.smib-page-hero .crumbs {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 14px;
    display: flex;
    gap: 8px;
    align-items: center;
}
.smib-page-hero .crumbs .sep { color: var(--line-2); }
.smib-page-hero .crumbs a { color: var(--muted); }
.smib-page-hero .crumbs a:hover { color: var(--green-deep); }
.smib-page-hero .crumbs .current {
    color: var(--green-deep);
    font-weight: 700;
}
.smib-page-hero h1,
.smib-news-hero h1 {
    font-family: var(--display);
    font-size: clamp(48px, 7vw, 104px);
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: .92;
    margin: 0;
    color: var(--green-ink);
}
.smib-page-hero h1 .it,
.smib-news-hero h1 .it {
    font-family: var(--serif);
    font-style: italic;
    font-weight: 300;
    color: var(--red);
}
.smib-page-hero .lead,
.smib-news-hero p {
    font-size: 18px;
    color: var(--ink-2);
    line-height: 1.55;
    max-width: 480px;
    margin: 24px 0 0;
}
.smib-page-hero .meta-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}
.smib-page-hero .meta-strip .pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--ink-2);
}
.smib-page-hero .meta-strip .pill .dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--green);
}

/* ============================================================================
   LA COURSE — stat row + checkpoint cards + rules
   ============================================================================ */
.smib-course-stat-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    margin-bottom: 60px;
}
.smib-course-stat {
    padding: 24px;
    border-right: 1px solid var(--line);
    text-align: center;
}
.smib-course-stat:last-child { border-right: 0; }
.smib-course-stat .v {
    font-family: var(--display);
    font-size: 36px;
    font-weight: 800;
    letter-spacing: -.02em;
    color: var(--green-deep);
    line-height: 1;
}
.smib-course-stat .l {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--muted);
    margin-top: 6px;
}

.smib-checkpoints-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 48px;
}
.smib-cp-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    padding: 18px;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.smib-cp-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
    border-color: var(--green);
}
.smib-cp-card .km {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .14em;
    font-weight: 700;
    color: var(--green);
    background: var(--green-soft);
    display: inline-block;
    padding: 3px 8px;
    border-radius: 6px;
    margin-bottom: 12px;
}
.smib-cp-card h4 {
    font-family: var(--display);
    font-weight: 700;
    font-size: 15px;
    letter-spacing: -.01em;
    margin: 0 0 6px;
    color: var(--ink);
}
.smib-cp-card p {
    margin: 0;
    font-size: 13px;
    color: var(--ink-2);
    line-height: 1.5;
}

.smib-rules-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}
.smib-rule {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    padding: 24px;
}
.smib-rule .icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: var(--green-soft);
    color: var(--green-deep);
    display: grid;
    place-items: center;
    margin-bottom: 14px;
}
.smib-rule h4 {
    font-family: var(--display);
    font-weight: 700;
    font-size: 16px;
    letter-spacing: -.01em;
    margin: 0 0 6px;
    color: var(--ink);
}
.smib-rule p {
    margin: 0;
    font-size: 13px;
    color: var(--ink-2);
    line-height: 1.55;
}

.smib-parcours-figure {
    margin: 0 0 30px;
    background: #fff;
    padding: 24px;
    border-radius: var(--r-lg);
    border: 1px solid var(--line);
    box-shadow: var(--shadow-md);
}
.smib-parcours-figure img {
    border-radius: var(--r-md);
    width: 100%;
    height: auto;
}
.smib-parcours-figure figcaption {
    margin-top: 14px;
    font-family: var(--mono);
    font-size: 11px;
    color: var(--muted);
    text-align: center;
    letter-spacing: .12em;
    text-transform: uppercase;
}

/* ============================================================================
   EDITIONS
   ============================================================================ */
.smib-editions-grid,
.smib-edition-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.smib-edition-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform .2s ease, box-shadow .2s ease;
    text-decoration: none;
    color: inherit;
}
.smib-edition-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.smib-edition-thumb,
.smib-edition-card .top {
    aspect-ratio: 5/3;
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: linear-gradient(135deg, var(--green-deep), var(--green-ink));
    color: #fff;
}
.smib-edition-card.upcoming .top { background: linear-gradient(135deg, var(--cream-warm), var(--cream)); }
.smib-edition-card.archive .top { background: #1a1a1a; }
.smib-edition-card.archive .top img { width: 100%; height: 100%; object-fit: cover; opacity: .85; }
.smib-edition-num,
.smib-edition-card .num {
    font-family: var(--display);
    font-size: 104px;
    font-weight: 800;
    letter-spacing: -.05em;
    line-height: 1;
    color: var(--gold);
    position: relative;
    z-index: 1;
}
.smib-edition-card.upcoming .num { color: var(--green-deep); }
.smib-edition-num sup,
.smib-edition-card .num sup {
    font-size: 36px;
    color: var(--red);
    font-weight: 800;
    letter-spacing: 0;
}
.smib-edition-card.upcoming .num sup { color: var(--red); }
.smib-edition-card .ribbon {
    position: absolute;
    top: 14px;
    right: 14px;
    background: var(--red);
    color: #fff;
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .2em;
    text-transform: uppercase;
    padding: 6px 10px;
    border-radius: 6px;
    font-weight: 700;
}
.smib-edition-card.upcoming .ribbon { background: var(--gold); color: var(--green-ink); }
.smib-edition-body,
.smib-edition-card .body {
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}
.smib-edition-card .body h3 {
    font-family: var(--display);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -.01em;
    margin: 0;
    color: var(--ink);
}
.smib-edition-card .body .date,
.smib-edition-meta {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 8px;
}
.smib-edition-card .meta-list {
    display: flex;
    flex-direction: column;
    margin-top: 8px;
    font-size: 13px;
    color: var(--ink-2);
    font-family: var(--mono);
    list-style: none;
    padding: 0;
}
.smib-edition-card .meta-list .row,
.smib-edition-card .meta-list li {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px dashed var(--line);
    padding: 6px 0;
}
.smib-edition-card .meta-list .lk {
    color: var(--muted);
    font-size: 10px;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.smib-edition-card .meta-list .vk {
    font-family: var(--display);
    font-weight: 700;
    color: var(--ink);
    font-size: 14px;
    letter-spacing: 0;
}
.smib-edition-card .body .read,
.smib-edition-card .body .smib-link-arrow {
    margin-top: auto;
    padding-top: 14px;
}

/* ============================================================================
   ACTUALITÉS PAGE
   ============================================================================ */
.smib-news-page-grid,
.smib-news-archive-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.smib-news-filter {
    display: flex;
    gap: 8px;
    margin-bottom: 32px;
    overflow-x: auto;
    padding-bottom: 6px;
}
.smib-news-filter button,
.smib-news-filter a {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    padding: 8px 14px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--line);
    color: var(--muted);
    font-weight: 600;
    flex-shrink: 0;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
    text-decoration: none !important;
    border-bottom-width: 1px !important;
}
.smib-news-filter button:hover,
.smib-news-filter a:hover {
    border-color: var(--green);
    color: var(--green-deep);
    text-decoration: none !important;
}
.smib-news-filter button.on,
.smib-news-filter a.on,
.smib-news-filter .current {
    background: var(--green-ink);
    color: #fff;
    border-color: var(--green-ink);
}

/* News archive uses news-card pattern */
.smib-news-archive { padding: 60px 0 100px; background: var(--paper); }
.smib-news-archive-card { /* alias to .smib-news-card */
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform .2s ease, box-shadow .2s ease;
}
.smib-news-archive-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.smib-news-archive-thumb {
    aspect-ratio: 16/10;
    background: var(--cream);
    overflow: hidden;
}
.smib-news-archive-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.smib-news-archive-card:hover .smib-news-archive-thumb img { transform: scale(1.04); }
.smib-news-archive-thumb-placeholder {
    height: 100%;
    background: linear-gradient(135deg, var(--green-soft), var(--cream-warm));
    display: grid;
    place-items: center;
    color: var(--green-deep);
    font-family: var(--display);
    font-weight: 800;
    font-size: 24px;
    letter-spacing: 4px;
}
.smib-news-archive-body { padding: 22px; flex: 1; display: flex; flex-direction: column; gap: 10px; }
.smib-news-archive-meta {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--muted);
}
.smib-news-archive-body h2 {
    font-family: var(--display);
    font-size: 19px;
    font-weight: 700;
    letter-spacing: -.01em;
    line-height: 1.3;
    margin: 0;
}
.smib-news-archive-body h2 a {
    color: var(--ink);
    text-decoration: none !important;
    border-bottom: 0 !important;
}
.smib-news-archive-body h2 a:hover {
    color: var(--green-deep);
    text-decoration: none !important;
    border-bottom: 0 !important;
}
/* Read-more link uses .smib-link-arrow — keep that one without underline too */
.smib-news-archive-body a.smib-link-arrow,
.smib-news-archive-body p a {
    text-decoration: none !important;
    border-bottom: 0 !important;
}
.smib-news-archive-excerpt { color: var(--ink-2); font-size: 14px; line-height: 1.55; flex: 1; }
@media (min-width: 769px) {
    .smib-news-archive-card-featured {
        grid-column: span 2;
        flex-direction: row;
    }
    .smib-news-archive-card-featured .smib-news-archive-thumb { flex: 1.2; aspect-ratio: 4/3; }
    .smib-news-archive-card-featured .smib-news-archive-body { flex: 1; padding: 28px; }
    .smib-news-archive-card-featured h2 { font-size: 28px; }
}

/* ============================================================================
   MEDIAS / GALERIE
   ============================================================================ */
.smib-galerie-tabs,
.smib-media-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 32px;
    overflow-x: auto;
    padding-bottom: 6px;
}
.smib-galerie-tabs .smib-tab,
.smib-media-tabs button,
.smib-media-tabs a {
    padding: 10px 18px;
    border-radius: 10px;
    background: #fff;
    border: 1px solid var(--line);
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    flex-shrink: 0;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.smib-galerie-tabs .smib-tab.is-active,
.smib-media-tabs button.on,
.smib-media-tabs a.on {
    background: var(--green-ink);
    color: #fff;
    border-color: var(--green-ink);
}
.smib-galerie-tabs .smib-tab strong { display: block; font-size: 12px; letter-spacing: 0; text-transform: none; }
.smib-galerie-tabs .smib-tab span { display: block; font-size: 10px; }

.smib-galerie-grid,
.smib-media-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-bottom: 48px;
}
.smib-galerie-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform .2s ease, box-shadow .2s ease;
    display: flex;
    flex-direction: column;
}
.smib-galerie-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.smib-galerie-cover {
    aspect-ratio: 4/3;
    background: var(--cream);
    position: relative;
    overflow: hidden;
}
.smib-galerie-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}
.smib-galerie-card:hover .smib-galerie-cover img { transform: scale(1.05); }
.smib-galerie-cover-placeholder {
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: linear-gradient(135deg, var(--cream), var(--cream-warm));
    color: var(--green-deep);
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .18em;
    text-transform: uppercase;
    font-weight: 700;
}
.smib-galerie-cover-placeholder svg { opacity: .5; color: var(--green); }
.smib-galerie-cover-placeholder span { color: var(--muted); }
.smib-galerie-overlay {
    position: absolute;
    bottom: 8px;
    left: 8px;
    background: rgba(0,0,0,0.65);
    color: #fff;
    padding: 4px 10px;
    border-radius: 6px;
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.smib-galerie-info {
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}
.smib-galerie-info h3 {
    font-family: var(--display);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -.01em;
    margin: 0;
    color: var(--ink);
}
.smib-badge {
    align-self: flex-start;
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    background: var(--green-soft);
    color: var(--green-deep);
    padding: 4px 8px;
    border-radius: 6px;
    font-weight: 700;
}

/* Video grid */
.smib-video-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-bottom: 48px;
}
.smib-video-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    overflow: hidden;
}
.smib-video-embed {
    aspect-ratio: 16/9;
    background: #000;
    position: relative;
}
.smib-video-embed iframe { width: 100%; height: 100%; border: 0; }
.smib-video-embed img { width: 100%; height: 100%; object-fit: cover; }
.smib-video-placeholder {
    height: 100%;
    display: grid;
    place-items: center;
    color: #fff;
    background: rgba(0,0,0,.7);
    font-size: 32px;
}
.smib-video-card-body { padding: 14px 18px; }
.smib-video-card-body h4 {
    font-family: var(--display);
    font-size: 14px;
    margin: 0 0 4px;
}

/* Search dossard card */
.smib-dossard-search {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: 28px;
    text-align: center;
    margin-top: 32px;
}
.smib-dossard-search h2 {
    font-family: var(--display);
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 8px;
}
.smib-dossard-search p { color: var(--muted); margin-bottom: 18px; font-size: 14px; }
.smib-dossard-form {
    display: flex;
    gap: 10px;
    max-width: 480px;
    margin: 0 auto;
}
.smib-dossard-form input {
    flex: 1;
    padding: 12px 14px;
    border: 1.5px solid var(--line);
    border-radius: 10px;
    font-family: var(--body);
    font-size: 14px;
}
.smib-dossard-form input:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(11,122,59,.15); }

/* ============================================================================
   CONTACT
   ============================================================================ */
.smib-contact-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 32px;
    align-items: start;
}
.smib-contact-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: 28px;
}
.smib-contact-card h3 {
    font-family: var(--display);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -.01em;
    margin: 0 0 18px;
    color: var(--ink);
}
.smib-contact-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.smib-contact-item {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 14px;
    border-radius: 10px;
    background: var(--cream);
    transition: background .15s ease;
}
.smib-contact-item:hover { background: var(--green-soft); }
.smib-contact-item .ic {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: var(--green-deep);
    color: #fff;
    display: grid;
    place-items: center;
    flex-shrink: 0;
}
.smib-contact-item .lab {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 700;
}
.smib-contact-item .val {
    font-family: var(--display);
    font-weight: 600;
    color: var(--ink);
    margin-top: 2px;
}
.smib-contact-item .val a { color: var(--green-deep); }
.smib-contact-item .val a:hover { color: var(--green); }
.smib-map-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    overflow: hidden;
    aspect-ratio: 1.2/1;
    position: relative;
}
.smib-map-card .map-bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(60% 60% at 60% 50%, #d6e7d4, #c2d8c0 70%, #a8c4a6);
}
.smib-map-card .map-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,.4) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.4) 1px, transparent 1px);
    background-size: 32px 32px;
}
.smib-map-card .pin {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -100%);
    width: 32px;
    height: 42px;
    color: var(--red);
    filter: drop-shadow(0 4px 8px rgba(0,0,0,.3));
}
.smib-map-card .label {
    position: absolute;
    left: 24px;
    bottom: 24px;
    background: #fff;
    border-radius: 8px;
    padding: 10px 14px;
    box-shadow: var(--shadow-md);
}
.smib-map-card .label .n {
    font-family: var(--display);
    font-weight: 700;
    font-size: 14px;
    color: var(--ink);
}
.smib-map-card .label .a {
    font-family: var(--mono);
    font-size: 11px;
    color: var(--muted);
    margin-top: 2px;
    letter-spacing: .06em;
}

/* Live embedded map (Google / OSM iframe) */
.smib-map-card--live { aspect-ratio: 1.2/1; min-height: 320px; }
.smib-map-card--live iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}
.smib-map-card--live .label {
    z-index: 2;
    pointer-events: auto;
    max-width: calc(100% - 48px);
}
.smib-map-card--live .smib-map-link {
    display: inline-block;
    margin-top: 6px;
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--green-deep);
    font-weight: 700;
    text-decoration: none;
}
.smib-map-card--live .smib-map-link:hover { color: var(--red); }

/* ============================================================================
   INSCRIPTION (4-step)
   ============================================================================ */
.smib-page-hero.insc {
    background: linear-gradient(180deg, #fff8e8, #fff);
}
.smib-page-hero.insc::before {
    background: radial-gradient(closest-side, rgba(207,33,38,.08), transparent 70%);
}
.smib-page-hero.insc h1 { color: var(--ink); }
.smib-page-hero.insc h1 .it { color: var(--red); }

.smib-steps-bar {
    display: flex;
    gap: 0;
    margin-bottom: 48px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: 6px;
    box-shadow: var(--shadow-sm);
}
.smib-step-pill {
    flex: 1;
    padding: 14px;
    text-align: center;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    cursor: pointer;
    transition: background .2s ease;
    background: transparent;
    border: 0;
}
.smib-step-pill .n {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .16em;
    color: var(--muted);
    text-transform: uppercase;
}
.smib-step-pill .t {
    font-family: var(--display);
    font-weight: 700;
    font-size: 13px;
    color: var(--ink);
}
.smib-step-pill.on {
    background: linear-gradient(135deg, var(--red), #c93030);
    color: #fff;
}
.smib-step-pill.on .n,
.smib-step-pill.on .t { color: #fff; }
.smib-step-pill.done { background: var(--gold-soft); }
.smib-step-pill.done .t { color: #8a6d00; }
.smib-step-pill.done .n::after { content: " ✓"; color: var(--gold); }

.smib-inscription-wrap,
.smib-form-grid {
    display: grid;
    grid-template-columns: 1fr 1.6fr;
    gap: 32px;
    align-items: start;
    margin: 30px 0;
}
.smib-inscription-side,
.smib-form-side {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: 28px;
    position: sticky;
    top: 110px;
    box-shadow: var(--shadow-sm);
}
.smib-form-side h4,
.smib-inscription-side h3 {
    font-family: var(--display);
    font-size: 16px;
    font-weight: 700;
    color: var(--ink);
    margin: 0 0 16px;
    letter-spacing: -.01em;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--gold);
    display: inline-block;
}
.smib-form-side ul,
.smib-inscription-side ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.smib-form-side ul li,
.smib-inscription-side ul li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 13px;
    color: var(--ink-2);
    line-height: 1.5;
}
.smib-form-side ul li .ic {
    width: 24px;
    height: 24px;
    border-radius: 6px;
    background: var(--gold-soft);
    color: #8a6d00;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    margin-top: 1px;
    border: 1px solid rgba(255,208,52,.4);
}
.smib-inscription-form-card,
.smib-form-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: 36px;
    box-shadow: var(--shadow-sm);
}
.smib-inscription-side-note {
    margin-top: 18px;
    padding: 14px;
    background: var(--green-ink);
    color: #eaf6ee;
    border-radius: 8px;
    font-size: 12px;
    line-height: 1.55;
    border-left: 3px solid var(--gold);
}
.smib-inscription-side-note a {
    text-decoration: underline;
    color: var(--gold);
}

/* Multi-step pagination layer (JS-driven).
   Inactive step fields → !important hides them (beats GF inline display).
   Active step fields → no !important, so GF conditional logic
   (inline display:none) still wins for hide-when-no. */
.smib-form-card.smib-stepped .gfield:not([data-step-active="true"]) {
    display: none !important;
}
.smib-form-card.smib-stepped .gfield[data-step-active="true"] {
    display: block;
}
/* Section dividers, honeypot, unmapped fields → fully hidden in stepped mode.
   Pills already show step name — no need for redundant in-form h3. */
.smib-form-card.smib-stepped .gfield[data-step-other="true"],
.smib-form-card.smib-stepped .gsection,
.smib-form-card.smib-stepped .gsection_title,
.smib-form-card.smib-stepped .gsection_description {
    display: none !important;
}
/* Navigation row sticky at bottom of form */
.smib-form-step-nav {
    display: flex;
    justify-content: space-between;
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px dashed var(--line);
    gap: 12px;
}
.smib-form-step-nav .smib-btn {
    padding: 14px 24px;
    font-size: 14px;
    border-radius: 999px;
    font-weight: 700;
    cursor: pointer;
    transition: background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

/* Retour button — gold-soft (matches done step pill) */
.smib-form-step-nav .smib-step-prev,
.smib-form-step-nav .smib-step-prev.smib-btn {
    background: var(--gold-soft) !important;
    color: var(--gold-deep) !important;
    border: 1.5px solid var(--gold) !important;
    box-shadow: none;
}
.smib-form-step-nav .smib-step-prev:hover,
.smib-form-step-nav .smib-step-prev.smib-btn:hover {
    background: var(--gold) !important;
    color: var(--green-ink) !important;
    border-color: var(--gold-deep) !important;
}

/* Continuer button — green base, light green-soft on hover per user feedback */
.smib-form-step-nav .smib-step-next,
.smib-form-step-nav .smib-step-next.smib-btn {
    background: var(--green) !important;
    color: #fff !important;
    border: 1.5px solid var(--green) !important;
    margin-left: auto;
    box-shadow: 0 6px 20px -6px rgba(11,122,59,.55);
}
.smib-form-step-nav .smib-step-next:hover,
.smib-form-step-nav .smib-step-next.smib-btn:hover {
    background: var(--green-soft) !important;
    color: var(--green-deep) !important;
    border-color: var(--green) !important;
}

/* GF native footer + submit hidden visually but kept in DOM at off-screen
   position so JS .click() / form.requestSubmit() still works (GF AJAX
   handlers may check element visibility before processing). */
.smib-form-card.smib-stepped .gform_footer {
    position: absolute !important;
    left: -9999px !important;
    top: -9999px !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}
.smib-form-card.smib-stepped .gform_button {
    /* keep clickable but invisible */
    opacity: 0;
    pointer-events: auto;
}
/* Last-step submit styling — green, same shape as Continuer */
.smib-form-step-nav .smib-step-next.smib-step-submit,
.smib-form-step-nav .smib-step-next.smib-step-submit.smib-btn {
    background: var(--green) !important;
    color: #fff !important;
    border-color: var(--green-deep) !important;
    box-shadow: 0 8px 22px -6px rgba(11,122,59,.65) !important;
    font-weight: 700;
}
.smib-form-step-nav .smib-step-next.smib-step-submit:hover {
    background: var(--green-deep) !important;
    color: #fff !important;
    border-color: var(--green-deep) !important;
}

/* Step pill — clickable + light green hover */
.smib-step-pill { cursor: pointer; }
.smib-step-pill:not(.on):not(.done):hover {
    background: var(--green-soft);
    color: var(--green-deep);
}
.smib-step-pill:not(.on):not(.done):hover .n,
.smib-step-pill:not(.on):not(.done):hover .t {
    color: var(--green-deep);
}
.smib-form-card h2 {
    font-family: var(--display);
    font-size: 22px;
    font-weight: 700;
    color: var(--ink);
    margin: 0 0 6px;
}
.smib-form-card .sub {
    color: var(--muted);
    margin: 0 0 24px;
    font-size: 13px;
}

/* === Form fields (Gravity Forms compat) === */
.smib-field,
.gform_wrapper .gfield {
    margin-bottom: 18px;
}
.smib-field label,
.gform_wrapper .gfield_label {
    display: block;
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 6px;
    font-weight: 700;
}
.smib-field label .req,
.gform_wrapper .gfield_required { color: var(--red); margin-left: 4px; }

.smib-field input,
.smib-field select,
.smib-field textarea,
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="date"],
.gform_wrapper input[type="number"],
.gform_wrapper input[type="time"],
.gform_wrapper input[type="url"],
.gform_wrapper select,
.gform_wrapper textarea,
.smib-page input[type="text"],
.smib-page input[type="email"],
.smib-page input[type="tel"],
.smib-page select,
.smib-page textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1.5px solid var(--line);
    border-radius: 8px;
    font-family: var(--body);
    font-size: 14px;
    color: var(--ink);
    background: #fff;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.smib-field input:focus,
.smib-field select:focus,
.smib-field textarea:focus,
.gform_wrapper input:focus,
.gform_wrapper select:focus,
.gform_wrapper textarea:focus,
.smib-page input:focus,
.smib-page select:focus,
.smib-page textarea:focus {
    outline: none;
    border-color: var(--ink);
    box-shadow: 0 0 0 3px rgba(12,20,17,.08);
}

/* Custom radio pill (ink/gold) */
.smib-radio-group {
    display: flex;
    gap: 10px;
}
.smib-radio-pill {
    flex: 1;
    padding: 14px;
    border: 1.5px solid var(--line);
    border-radius: 10px;
    cursor: pointer;
    font-size: 14px;
    text-align: center;
    color: var(--ink-2);
    transition: all .15s ease;
    background: #fff;
}
.smib-radio-pill:hover { border-color: var(--green); }
.smib-radio-pill.on,
.smib-radio-pill input:checked + label,
.smib-radio-pill:has(input:checked) {
    background: var(--green);
    border-color: var(--green);
    color: #fff;
    font-weight: 600;
}
.smib-radio-pill.on::before,
.smib-radio-pill:has(input:checked)::before {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--gold);
    margin-right: 8px;
    vertical-align: middle;
}

.gform_wrapper .gchoice {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
    padding: 10px 14px;
    border: 1.5px solid var(--line);
    border-radius: 10px;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
    background: #fff;
}
.gform_wrapper .gchoice:hover {
    border-color: var(--green);
    background: var(--green-soft);
}
.gform_wrapper .gchoice:has(input:checked) {
    background: var(--green);
    border-color: var(--green);
    color: #fff;
    font-weight: 600;
}
.gform_wrapper .gchoice:has(input:checked) label { color: #fff; }
.gform_wrapper .gchoice:has(input:checked)::before {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--gold);
    flex-shrink: 0;
}
.gform_wrapper .gchoice input[type="radio"],
.gform_wrapper .gchoice input[type="checkbox"] {
    accent-color: var(--green);
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    cursor: pointer;
    margin: 0;
}
.gform_wrapper .gchoice:has(input:checked) input[type="radio"],
.gform_wrapper .gchoice:has(input:checked) input[type="checkbox"] {
    accent-color: var(--gold);
}
.gform_wrapper .gchoice label { margin: 0; cursor: pointer; font-weight: 500; flex: 1; }
/* Drop the gold pseudo-dot — real radio circle now visible */
.gform_wrapper .gchoice:has(input:checked)::before { display: none; }
/* Custom selects — match radio pill styling */
.gform_wrapper select,
.smib-page select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%236E7A75' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='1 1 6 6 11 1'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 38px;
}

/* Section break */
.gform_wrapper .gsection {
    border-top: 1px solid var(--line);
    margin: 32px 0 18px;
    padding-top: 24px;
}
.gform_wrapper .gsection_title {
    font-family: var(--display);
    font-size: 18px;
    font-weight: 700;
    color: var(--green-deep);
    margin: 0;
    letter-spacing: -.01em;
}
.gform_wrapper .gsection_description {
    color: var(--muted);
    font-size: 14px;
    margin-top: 6px;
}

/* Submit */
.gform_wrapper .gform_button,
.gform_wrapper input[type="submit"],
.smib-form-card input[type="submit"],
button[type="submit"] {
    background: var(--red) !important;
    color: #fff !important;
    border: 0 !important;
    padding: 16px 32px !important;
    border-radius: 999px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    cursor: pointer;
    box-shadow: 0 6px 20px -6px rgba(206,17,38,.6);
    transition: background .2s ease, box-shadow .2s ease, transform .15s ease;
    width: auto !important;
    font-family: var(--body) !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}
.gform_wrapper .gform_button:hover,
.gform_wrapper input[type="submit"]:hover,
button[type="submit"]:hover {
    background: var(--red-deep) !important;
    box-shadow: 0 10px 26px -6px rgba(206,17,38,.7);
    transform: translateY(-1px);
}

.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error select,
.gform_wrapper .gfield_error textarea {
    border-color: var(--red) !important;
    background: rgba(206,17,38,.04);
}
.gform_wrapper .gfield_error label { color: var(--red); }
.gform_wrapper .validation_error,
.gform_wrapper .gform_validation_errors,
.gform_wrapper .gfield_validation_message {
    color: var(--red);
    background: rgba(206,17,38,.06);
    border: 1px solid rgba(206,17,38,.2);
    border-left: 4px solid var(--red);
    padding: 14px 18px;
    border-radius: 8px;
    font-size: 14px;
    line-height: 1.55;
    margin-top: 8px;
    font-weight: 500;
}
.gform_wrapper .gform_validation_errors {
    margin: 0 0 24px;
    padding: 18px 22px;
}
.gform_wrapper .gform_validation_errors h2,
.gform_wrapper .gform_validation_errors__header {
    font-family: var(--display);
    font-size: 16px;
    font-weight: 700;
    color: var(--red);
    margin: 0 0 6px;
    letter-spacing: -.01em;
}
.smib-error-detail {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed rgba(206,17,38,.3);
    font-size: 14px;
    color: var(--ink-2);
    font-weight: 400;
}
/* Field-level error message — make readable */
.gform_wrapper .gfield_error .gfield_validation_message {
    background: transparent;
    border: 0;
    padding: 6px 0 0;
    font-size: 13px;
}

/* Custom server-rendered error summary (replaces generic GF banner).
   Lists each failed field grouped by step with a jump-back button. */
.smib-form-error-summary {
    background: #fff;
    border: 1px solid rgba(206,17,38,.25);
    border-left: 4px solid var(--red);
    border-radius: 12px;
    padding: 18px 22px;
    margin: 0 0 24px;
    color: var(--ink-2);
    font-size: 14px;
    line-height: 1.55;
    box-shadow: 0 4px 14px rgba(206,17,38,.08);
}
.smib-fes-heading {
    font-family: var(--display);
    font-size: 16px;
    font-weight: 700;
    color: var(--red);
    margin: 0 0 14px;
    letter-spacing: -.01em;
}
.smib-fes-steps {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 12px;
}
.smib-fes-step {
    background: rgba(206,17,38,.04);
    border: 1px solid rgba(206,17,38,.12);
    border-radius: 10px;
    padding: 12px 14px;
}
.smib-fes-jump {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--red);
    color: #fff;
    border: 0;
    border-radius: 999px;
    padding: 8px 16px;
    font-family: var(--display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .15s ease, transform .15s ease;
}
.smib-fes-jump:hover,
.smib-fes-jump:focus-visible {
    background: var(--green-deep, #054D26);
    transform: translateY(-1px);
    outline: none;
}
.smib-fes-step-n {
    font-family: var(--mono, 'JetBrains Mono', monospace);
    font-size: 11px;
    opacity: .85;
}
.smib-fes-step-l { font-size: 13px; }
.smib-fes-step-arrow {
    font-size: 14px;
    line-height: 1;
    margin-left: 2px;
}
.smib-fes-fields {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    display: grid;
    gap: 6px;
}
.smib-fes-fields li {
    font-size: 13.5px;
    color: var(--ink-2);
    padding-left: 18px;
    position: relative;
}
.smib-fes-fields li::before {
    content: "•";
    color: var(--red);
    position: absolute;
    left: 6px;
    top: 0;
    font-weight: 700;
}
.smib-fes-fields strong { color: var(--ink, #0C1411); }

/* ============================================================================
   FOOTER
   ============================================================================ */
.smib-site-footer {
    margin-top: auto;
    background: var(--green-ink);
    color: #bcd6c5;
    position: relative;
    overflow: hidden;
}
.smib-site-footer::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(60% 80% at 90% 0%, rgba(255,208,52,.08), transparent 60%),
        radial-gradient(40% 60% at 0% 100%, rgba(206,17,38,.10), transparent 60%);
    pointer-events: none;
}
.smib-footer-flag {
    height: 6px;
    display: flex;
}
.smib-footer-flag span { flex: 1; }
.smib-footer-flag span:nth-child(1) { background: var(--green); }
.smib-footer-flag span:nth-child(2) { background: var(--gold); }
.smib-footer-flag span:nth-child(3) { background: var(--red); }
.smib-footer-grid,
.smib-footer-inner {
    position: relative;
    max-width: 1280px;
    margin: 0 auto;
    padding: 64px 28px 36px;
    display: grid;
    gap: 48px;
    grid-template-columns: 1.4fr 1fr 1.2fr 1fr;
}
.smib-site-footer h3,
.smib-site-footer h4 {
    font-family: var(--display);
    color: #fff;
    font-size: 14px;
    letter-spacing: .16em;
    text-transform: uppercase;
    margin: 0 0 16px;
    font-weight: 700;
}
.smib-site-footer ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    font-size: 14px;
}
.smib-site-footer a { color: #bcd6c5; transition: color .15s ease, padding-left .15s ease; }
.smib-site-footer a:hover { color: var(--gold); padding-left: 4px; }

.smib-footer-brand {
    /* brand block */
}
.smib-footer-brand .smib {
    font-family: var(--display);
    font-size: 36px;
    color: #fff;
    letter-spacing: -.01em;
    font-weight: 800;
    line-height: 1;
}
.smib-footer-brand-link {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    font-size: 22px !important;
    color: #fff !important;
    text-decoration: none;
    font-weight: 800;
}
.smib-footer-brand-link:hover { color: var(--gold) !important; padding-left: 0 !important; }
.smib-footer-brand-link .smib-footer-brand-accent { color: var(--gold); }
.smib-footer-brand-link .smib-footer-brand-arrow {
    font-size: 10px;
    color: rgba(155,182,164,.55);
    font-family: var(--mono);
    font-weight: 500;
    letter-spacing: 0;
    margin-left: 2px;
    opacity: .7;
}
.smib-footer-brand-link:hover .smib-footer-brand-arrow {
    color: var(--gold);
    opacity: 1;
}
.smib-footer-brand-tagline {
    font-size: 14px;
    color: #9bb6a4;
    line-height: 1.6;
    max-width: 280px;
    margin: 14px 0 16px;
}
.smib-footer-socials-row {
    display: flex;
    gap: 10px;
    margin-top: 14px;
}
.smib-footer-socials-row a {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.1);
    display: grid;
    place-items: center;
    color: #cfe9d8;
    transition: background .2s ease, color .2s ease;
}
.smib-footer-socials-row a:hover {
    background: var(--gold);
    color: var(--green-ink);
    padding-left: 0 !important;
}
.smib-footer-contact {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.smib-footer-contact li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 14px;
}
.smib-footer-contact .smib-svg {
    flex-shrink: 0;
    color: var(--gold);
    margin-top: 2px;
}
.smib-footer-contact a { color: var(--gold); }

/* Newsletter — outlined dark input + compact gold action button. */
.smib-newsletter-form {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 14px;
    align-items: center;
}
.smib-newsletter-form .smib-msg {
    flex-basis: 100%;
    margin: 6px 0 0;
}
.smib-newsletter-form input {
    flex: 1;
    min-width: 0;
    height: 44px;
    padding: 0 16px;
    border-radius: 10px;
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.04);
    color: #fff;
    font-size: 14px;
    font-family: var(--body);
    transition: border-color .15s ease, background .15s ease;
}
.smib-newsletter-form input::placeholder {
    color: rgba(255,255,255,.55);
    font-size: 14px;
}
.smib-newsletter-form input:focus {
    outline: none;
    border-color: var(--gold);
    background: rgba(255,255,255,.08);
}
.smib-newsletter-form button {
    width: 40px;
    height: 40px;
    padding: 0;
    background: var(--gold);
    color: var(--green-ink);
    border-radius: 10px;
    border: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background .2s ease, transform .15s ease;
}
.smib-newsletter-form button svg { width: 16px; height: 16px; }
.smib-newsletter-form button:hover { background: var(--gold-deep); color: var(--green-ink); transform: translateY(-1px); }
.smib-newsletter-tag {
    margin-top: 18px;
    padding: 14px;
    background: rgba(255,208,52,.08);
    border: 1px solid rgba(255,208,52,.2);
    border-radius: 10px;
    font-size: 12px;
    color: #cfe9d8;
}
.smib-newsletter-tag-label {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 4px;
    font-weight: 700;
}

.smib-footer-bottom {
    position: relative;
    border-top: 1px solid rgba(255,255,255,.1);
    padding: 18px 28px;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    font-size: 12px;
    color: #7e9686;
    font-family: var(--mono);
    letter-spacing: .08em;
    text-transform: uppercase;
    max-width: 1280px;
    margin: 0 auto;
}
.smib-footer-bottom a { color: #7e9686; }
.smib-footer-bottom a:hover { color: var(--gold); }
.smib-footer-bottom-links { display: flex; gap: 24px; flex-wrap: wrap; }

/* ============================================================================
   404
   ============================================================================ */
.smib-404-section {
    min-height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, var(--cream-warm), var(--paper));
    padding: 80px 0;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.smib-404-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(50% 60% at 30% 20%, rgba(11,122,59,.08), transparent 60%),
        radial-gradient(40% 60% at 70% 80%, rgba(206,17,38,.06), transparent 60%);
    pointer-events: none;
}
.smib-404-inner { max-width: 720px; position: relative; z-index: 1; }
.smib-404-graphic {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    margin-bottom: 32px;
}
.smib-404-num {
    font-family: var(--display);
    font-size: clamp(96px, 16vw, 180px);
    font-weight: 800;
    line-height: 1;
    color: var(--green-deep);
    letter-spacing: -.04em;
}
.smib-404-runner {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(80px, 13vw, 140px);
    height: clamp(80px, 13vw, 140px);
    background: var(--red);
    color: #fff;
    border-radius: 50%;
    box-shadow: 0 14px 40px rgba(206,17,38,.30);
    animation: smib-404-pulse 2.4s ease-in-out infinite;
}
@keyframes smib-404-pulse {
    0%, 100% { transform: scale(1); }
    50%      { transform: scale(1.05); }
}
.smib-404-section h1 {
    font-family: var(--display);
    font-size: clamp(26px, 4vw, 44px);
    margin-bottom: 16px;
    color: var(--ink);
    font-weight: 800;
}
.smib-404-sub {
    color: var(--muted);
    font-size: 17px;
    max-width: 540px;
    margin: 0 auto 32px;
    line-height: 1.6;
}
.smib-404-cta {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: center;
    margin-bottom: 48px;
}
.smib-404-links {
    border-top: 1px solid var(--line);
    padding-top: 32px;
    margin-top: 16px;
}
.smib-404-links-title {
    font-family: var(--mono);
    color: var(--muted);
    font-size: 11px;
    letter-spacing: .22em;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 16px;
}
.smib-404-links ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    justify-content: center;
}
.smib-404-links a {
    color: var(--green-deep);
    font-family: var(--mono);
    font-size: 12px;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-weight: 700;
    border-bottom: 2px solid transparent;
}
.smib-404-links a:hover { border-color: var(--green); }

/* ============================================================================
   ACCESSIBILITY + UTILS
   ============================================================================ */
a:focus-visible,
button:focus-visible,
.smib-btn:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid var(--gold);
    outline-offset: 2px;
    border-radius: 6px;
}

::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: var(--paper); }
::-webkit-scrollbar-thumb {
    background: var(--line-2);
    border-radius: 6px;
    border: 2px solid var(--paper);
}
::-webkit-scrollbar-thumb:hover { background: var(--green); }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    .smib-ticker-track { animation: none; }
}

/* ============================================================================
   RESPONSIVE
   ============================================================================ */
@media (max-width: 1024px) {
    .smib-section { padding: 72px 0; }
    .smib-hero-grid,
    .smib-patronage-grid,
    .smib-route-grid,
    .smib-form-grid,
    .smib-inscription-wrap,
    .smib-faq-grid,
    .smib-page-hero-inner,
    .smib-cta-banner-inner,
    .smib-cta-final { grid-template-columns: 1fr; }
    .smib-footer-grid,
    .smib-footer-inner { grid-template-columns: repeat(2, 1fr); gap: 36px; }
    .smib-news-grid,
    .smib-news-page-grid,
    .smib-news-archive-grid,
    .smib-why-grid,
    .smib-test-grid,
    .smib-editions-grid,
    .smib-edition-grid,
    .smib-checkpoints-grid,
    .smib-galerie-grid,
    .smib-media-grid,
    .smib-video-grid,
    .smib-rules-grid,
    .smib-sponsor-grid,
    .smib-sponsors-honour { grid-template-columns: 1fr 1fr; }
    .smib-stats-grid,
    .smib-course-stat-row { grid-template-columns: 1fr 1fr; }
    .smib-stat-cell { border-bottom: 1px solid rgba(255,255,255,.08); }
    .smib-stat-cell:nth-child(2n) { border-right: 0; }
    .smib-hero { min-height: 600px; }
    .smib-hero-right { align-items: stretch; }
}

@media (max-width: 768px) {
    .smib-mobile-toggle { display: block; margin-left: auto; }
    .smib-primary-nav,
    .smib-header-cta { display: none; }
    .smib-site-header.is-mobile-open .smib-primary-nav,
    .smib-site-header.is-mobile-open .smib-header-cta {
        display: block;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: #fff;
        padding: 18px 20px;
        border-top: 1px solid var(--line);
        box-shadow: var(--shadow-md);
    }
    .smib-site-header.is-mobile-open .smib-menu {
        flex-direction: column;
        gap: 6px;
        align-items: stretch;
    }
    .smib-site-header.is-mobile-open .smib-menu li a {
        padding: 12px 16px;
        background: var(--paper);
        border-radius: 8px;
        display: block;
    }
    .smib-site-header.is-mobile-open .smib-header-cta {
        position: static;
        padding: 12px 20px 18px;
        flex-direction: column;
        align-items: stretch;
    }
    .smib-section { padding: 60px 0; }
    .smib-hero { min-height: 520px; }
    .smib-hero h1 { font-size: clamp(48px, 12vw, 96px); }
    .smib-topstrip-meta { display: none; }
}

@media (max-width: 600px) {
    .smib-container { padding: 0 18px; }
    .smib-news-grid,
    .smib-news-page-grid,
    .smib-news-archive-grid,
    .smib-why-grid,
    .smib-test-grid,
    .smib-editions-grid,
    .smib-edition-grid,
    .smib-checkpoints-grid,
    .smib-galerie-grid,
    .smib-media-grid,
    .smib-video-grid,
    .smib-rules-grid,
    .smib-sponsor-grid,
    .smib-sponsors-honour,
    .smib-stats-grid,
    .smib-course-stat-row,
    .smib-footer-grid,
    .smib-footer-inner { grid-template-columns: 1fr; }
    .smib-stat-cell { border-right: 0; padding: 32px 20px; }
    .smib-cta-block { align-items: stretch; }
    .smib-404-cta { flex-direction: column; }
    .smib-404-cta .smib-btn { width: 100%; }
    .smib-radio-group { flex-direction: column; }
}

.smib-muted-block {
    background: linear-gradient(135deg, var(--cream), var(--cream-warm));
    padding: 32px 24px;
    border-radius: var(--r-lg);
    color: var(--muted);
    text-align: center;
    border: 1px dashed var(--line-2);
    font-size: 15px;
}

/* ============================================================================
   SOCIAL FEED
   ============================================================================ */
.smib-social-feed {
    background: var(--cream-warm);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}
.smib-sf-handles {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}
.smib-sf-handle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--line);
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ink);
    font-weight: 600;
    transition: transform .15s ease, border-color .15s ease;
    text-decoration: none;
}
.smib-sf-handle:hover { transform: translateY(-1px); border-color: var(--ink); }
.smib-sf-handle.ig { color: #c13584; }
.smib-sf-handle.fb { color: #1877f2; }
.smib-sf-handle.x  { color: #000; }
.smib-sf-handle.yt { color: #ff0000; }

.smib-sf-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-top: 32px;
}
.smib-sf-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform .2s ease, box-shadow .2s ease;
    color: inherit;
    text-decoration: none;
}
.smib-sf-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.smib-sf-thumb {
    aspect-ratio: 1.4 / 1;
    position: relative;
    display: grid;
    place-items: center;
    background: repeating-linear-gradient(45deg, var(--cream), var(--cream) 8px, var(--cream-warm) 8px, var(--cream-warm) 16px);
}
.smib-sf-card.net-ig .smib-sf-thumb { background: linear-gradient(135deg, #feda75, #fa7e1e 30%, #d62976 60%, #962fbf 80%, #4f5bd5); }
.smib-sf-card.net-fb .smib-sf-thumb { background: linear-gradient(135deg, #1877f2, #0a4f99); }
.smib-sf-card.net-x .smib-sf-thumb { background: linear-gradient(135deg, #15202b, #000); }
.smib-sf-card.net-yt .smib-sf-thumb { background: linear-gradient(135deg, #ff0000, #8b0000); }
.smib-sf-tag {
    position: absolute;
    top: 14px;
    left: 14px;
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .18em;
    color: #fff;
    background: rgba(0,0,0,.4);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    padding: 6px 10px;
    border-radius: 6px;
    font-weight: 700;
}
.smib-sf-net {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: rgba(255,255,255,.95);
    display: grid;
    place-items: center;
    color: var(--ink);
}
.smib-sf-card.net-ig .smib-sf-net { color: #c13584; }
.smib-sf-card.net-fb .smib-sf-net { color: #1877f2; }
.smib-sf-card.net-x .smib-sf-net { color: #000; }
.smib-sf-card.net-yt .smib-sf-net { color: #ff0000; }
.smib-sf-body {
    padding: 18px 18px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}
.smib-sf-user {
    font-family: var(--display);
    font-weight: 700;
    font-size: 13px;
    color: var(--ink);
}
.smib-sf-when {
    font-family: var(--mono);
    font-size: 10px;
    color: var(--muted);
    font-weight: 400;
    margin-left: 6px;
    letter-spacing: .08em;
}
.smib-sf-text {
    font-size: 14px;
    color: var(--ink-2);
    line-height: 1.5;
    flex: 1;
}
.smib-sf-actions {
    display: flex;
    gap: 14px;
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .08em;
    color: var(--muted);
    padding-top: 10px;
    border-top: 1px dashed var(--line);
    margin-top: auto;
}
.smib-sf-actions span { display: inline-flex; align-items: center; gap: 4px; }
@media (max-width: 960px) { .smib-sf-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .smib-sf-grid { grid-template-columns: 1fr; } }

/* ============================================================================
   SINGLE POST
   ============================================================================ */
.smib-single-post-cover {
    height: 480px;
    background-size: cover;
    background-position: center;
    background-color: var(--green-deep);
    position: relative;
}
.smib-single-post-cover::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(3,51,26,0) 60%, rgba(3,51,26,.65));
}
.smib-single-post-cover-fallback {
    background: linear-gradient(135deg, var(--green-deep), var(--green-ink));
}
.smib-single-post-wrap {
    max-width: 760px;
    margin: -120px auto 80px;
    background: #fff;
    border-radius: var(--r-lg);
    padding: 56px 56px 48px;
    box-shadow: var(--shadow-md);
    position: relative;
    z-index: 1;
}
.smib-single-post-header {
    margin-bottom: 32px;
    padding-bottom: 28px;
    border-bottom: 1px solid var(--line);
}
.smib-single-post-meta {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--muted);
    margin: 0 0 14px;
    display: flex;
    gap: 8px;
    align-items: center;
}
.smib-single-post-meta .smib-dot { color: var(--line-2); }
.smib-single-post-header h1 {
    font-family: var(--display);
    font-size: clamp(32px, 4.5vw, 56px);
    font-weight: 800;
    letter-spacing: -.025em;
    line-height: 1.1;
    margin: 0 0 14px;
    color: var(--ink);
}
.smib-single-post-excerpt {
    font-family: var(--serif);
    font-style: italic;
    font-size: 19px;
    color: var(--ink-2);
    line-height: 1.55;
    margin: 0;
}
.smib-single-post-content {
    font-size: 17px;
    line-height: 1.7;
    color: var(--ink-2);
}
.smib-single-post-content h2 {
    font-family: var(--display);
    font-size: 28px;
    font-weight: 700;
    color: var(--ink);
    margin: 40px 0 16px;
    letter-spacing: -.02em;
}
.smib-single-post-content h3 {
    font-family: var(--display);
    font-size: 22px;
    font-weight: 700;
    color: var(--ink);
    margin: 32px 0 12px;
    letter-spacing: -.01em;
}
.smib-single-post-content p { margin: 0 0 18px; }
.smib-single-post-content blockquote {
    border-left: 4px solid var(--gold);
    padding: 8px 0 8px 24px;
    margin: 24px 0;
    font-family: var(--serif);
    font-style: italic;
    font-size: 22px;
    color: var(--green-deep);
}
.smib-single-post-content a {
    color: var(--green-deep);
    border-bottom: 1px solid var(--gold);
}
.smib-single-post-content a:hover {
    color: var(--green);
    border-bottom-color: var(--green);
}
.smib-single-post-content img {
    border-radius: var(--r-md);
    margin: 24px 0;
}
.smib-single-post-footer {
    margin-top: 40px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
}

/* ============================================================================
   SINGLE EDITION
   ============================================================================ */
.smib-edition-single { padding: 0; }
.smib-edition-single-header {
    background: linear-gradient(180deg, var(--cream-warm), var(--paper));
    padding: 80px 0 60px;
    text-align: center;
    border-bottom: 1px solid var(--line);
}
.smib-edition-single-header h1 {
    font-family: var(--display);
    font-size: clamp(40px, 6vw, 72px);
    font-weight: 800;
    letter-spacing: -.03em;
    color: var(--green-ink);
    margin: 0 0 14px;
}
.smib-edition-single-meta {
    font-family: var(--mono);
    font-size: 12px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 700;
}
.smib-edition-cover-wrap {
    background: linear-gradient(180deg, var(--paper), var(--cream-warm));
    padding: 40px 0 60px;
}
.smib-edition-cover-card {
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    aspect-ratio: 21/9;
    background: var(--green-ink);
}
.smib-edition-cover-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.smib-edition-content-grid {
    display: grid;
    grid-template-columns: 1fr 1.6fr;
    gap: 48px;
    align-items: start;
}
.smib-edition-highlights-body {
    font-size: 16px;
    line-height: 1.75;
    color: var(--ink-2);
}
.smib-edition-highlights-body p { margin: 0 0 18px; }
.smib-edition-highlights-body h3 {
    font-family: var(--display);
    font-size: 22px;
    margin: 32px 0 12px;
    color: var(--ink);
    font-weight: 700;
    letter-spacing: -.01em;
}
.smib-edition-highlights-body ul,
.smib-edition-highlights-body ol { padding-left: 22px; }
.smib-edition-highlights-body li { margin-bottom: 8px; }

.smib-winners-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 28px;
    margin-top: 24px;
    position: relative;
    z-index: 1;
}
.smib-winner-card {
    text-align: center;
    padding: 36px 28px;
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: var(--r-lg);
    transition: transform .2s ease, background .2s ease;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    color: #fff;
    position: relative;
}
.smib-winner-card:hover {
    transform: translateY(-4px);
    background: rgba(255,255,255,.07);
}
.smib-winner-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 32px;
    right: 32px;
    height: 4px;
    background: linear-gradient(90deg, var(--green), var(--gold), var(--red));
    border-radius: 0 0 4px 4px;
}
.smib-winner-photo img,
.smib-winner-placeholder {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    object-fit: cover;
    margin: 0 auto 18px;
    background: rgba(255,255,255,.06);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--display);
    font-weight: 800;
    font-size: 48px;
    color: var(--gold);
    border: 4px solid var(--gold);
}
.smib-winner-cat {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--gold);
    font-weight: 700;
    margin-bottom: 6px;
}
.smib-winner-name {
    font-family: var(--display);
    font-size: 22px;
    font-weight: 800;
    color: #fff;
    margin: 0 0 10px;
    letter-spacing: -.01em;
}
.smib-winner-time {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--red);
    font-weight: 700;
    font-family: var(--mono);
    font-size: 14px;
    letter-spacing: .12em;
    background: #fff;
    padding: 6px 14px;
    border-radius: 999px;
}

@media (max-width: 960px) {
    .smib-edition-content-grid { grid-template-columns: 1fr; gap: 24px; }
}

/* ============================================================================
   GENERIC PAGE
   ============================================================================ */
.smib-page {
    padding: 60px 0 80px;
    background: var(--paper);
}
.smib-page-content {
    max-width: 760px;
    margin: 0 auto;
    padding: 0 28px;
    line-height: 1.7;
    font-size: 17px;
    color: var(--ink-2);
}
.smib-page-content h2,
.smib-page-content h3 {
    font-family: var(--display);
    color: var(--ink);
    margin-top: 40px;
}
.smib-page-content h2 { font-size: 28px; font-weight: 700; }
.smib-page-content h3 { font-size: 22px; font-weight: 700; }
.smib-page-content a { color: var(--green-deep); border-bottom: 1px solid var(--gold); }
.smib-page-content a:hover { color: var(--green); border-bottom-color: var(--green); }
.smib-page-content blockquote {
    border-left: 4px solid var(--gold);
    padding: 8px 0 8px 24px;
    margin: 24px 0;
    font-family: var(--serif);
    font-style: italic;
}
.smib-page-content ul,
.smib-page-content ol {
    padding-left: 22px;
    margin: 0 0 22px;
}
.smib-page-content li { margin-bottom: 8px; }

/* News pagination */
.smib-news-pagination {
    margin-top: 60px;
    text-align: center;
}
.smib-news-pagination .nav-links {
    display: inline-flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
}
.smib-news-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 14px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--line);
    color: var(--ink-2);
    font-family: var(--mono);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.smib-news-pagination .page-numbers:hover { border-color: var(--green); color: var(--green-deep); }
.smib-news-pagination .page-numbers.current {
    background: var(--green-ink);
    color: #fff;
    border-color: var(--green-ink);
}

/* ============================================================================
   ARTICLE SINGLE — rich layout (port of design <ArticlePage>)
   ============================================================================ */
.smib-art {
    background: #fff;
}
.smib-art-hero {
    position: relative;
    padding: 48px 0 64px;
    color: #fff;
    overflow: hidden;
    background: var(--green-ink);
}
.smib-art-hero-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}
.smib-art-hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .35;
    filter: saturate(.85);
}
.smib-art-hero-shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(11,77,46,.78) 0%, rgba(8,36,22,.94) 100%);
}
.smib-art-hero-inner {
    position: relative;
    z-index: 1;
    max-width: 920px;
}
.smib-art-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.18);
    color: #fff;
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
    cursor: pointer;
    margin-bottom: 32px;
    transition: background .2s;
    text-decoration: none;
}
.smib-art-back:hover { background: rgba(255,255,255,.18); color: #fff; }
.smib-art-back svg { transform: rotate(180deg); }
.smib-art-eyebrow {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: rgba(255,255,255,.78);
    margin-bottom: 20px;
    flex-wrap: wrap;
}
.smib-art-eyebrow .tag {
    background: var(--gold);
    color: var(--ink);
    padding: 4px 10px;
    border-radius: 4px;
    font-weight: 700;
    letter-spacing: .14em;
}
.smib-art-eyebrow .dot { opacity: .5; }
.smib-art-title {
    font-family: var(--display);
    font-size: clamp(36px, 5vw, 68px);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -.025em;
    margin: 0 0 20px;
    color: #fff;
}
.smib-art-lead {
    font-size: 20px;
    line-height: 1.55;
    color: rgba(255,255,255,.85);
    margin: 0 0 36px;
    max-width: 760px;
}
.smib-art-byline {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    padding-top: 24px;
    border-top: 1px solid rgba(255,255,255,.18);
}
.smib-art-byline .avatar {
    width: 44px;
    height: 44px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--gold), var(--red));
    display: grid;
    place-items: center;
    font-family: var(--display);
    font-weight: 800;
    color: var(--ink);
    font-size: 14px;
    letter-spacing: .04em;
}
.smib-art-byline .who { flex: 1; min-width: 180px; }
.smib-art-byline .name {
    font-family: var(--display);
    font-weight: 700;
    font-size: 15px;
    color: #fff;
}
.smib-art-byline .role {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .1em;
    color: rgba(255,255,255,.65);
    margin-top: 2px;
}
.smib-art-share {
    display: flex;
    align-items: center;
    gap: 8px;
}
.smib-art-share .lab {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .18em;
    color: rgba(255,255,255,.6);
    margin-right: 4px;
}
.smib-art-share .sh {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.18);
    color: #fff;
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: all .2s;
    text-decoration: none;
}
.smib-art-share .sh:hover {
    background: var(--gold);
    border-color: var(--gold);
    color: var(--ink);
}

.smib-art-body-section {
    padding: 64px 0 32px;
    background: #fff;
}
.smib-art-body-grid {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 64px;
    max-width: 1100px;
    margin: 0 auto;
}
/* When TOC is hidden (article has no h2 headings), collapse to single
   centered column so body doesn't get squeezed into the 1fr remainder. */
.smib-art-body-grid:has(> .smib-art-toc[hidden]) {
    grid-template-columns: minmax(0, 760px);
    justify-content: center;
    gap: 0;
    max-width: 760px;
}
.smib-art-body-grid:has(> .smib-art-toc[hidden]) .smib-art-toc {
    display: none;
}
.smib-art-toc {
    position: sticky;
    top: 96px;
    align-self: start;
    font-family: var(--mono);
}
.smib-art-toc .toc-label {
    font-size: 10px;
    letter-spacing: .2em;
    color: var(--muted);
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--line);
}
.smib-art-toc ol {
    list-style: none;
    padding: 0;
    margin: 0;
    counter-reset: toc;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.smib-art-toc li {
    counter-increment: toc;
    font-size: 13px;
    line-height: 1.45;
    font-family: var(--display);
    font-weight: 500;
}
.smib-art-toc li::before {
    content: counter(toc, decimal-leading-zero);
    font-family: var(--mono);
    font-size: 10px;
    color: var(--gold);
    margin-right: 10px;
    letter-spacing: .1em;
}
.smib-art-toc a {
    color: var(--ink-2);
    text-decoration: none;
    transition: color .15s;
}
.smib-art-toc a:hover,
.smib-art-toc a.is-active { color: var(--red); }
.smib-art-toc .toc-stat {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
}
.smib-art-toc .toc-stat .ks {
    font-family: var(--display);
    font-size: 32px;
    font-weight: 800;
    color: var(--ink);
    line-height: 1;
}
.smib-art-toc .toc-stat .ls {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .1em;
    color: var(--muted);
    margin-top: 6px;
}

.smib-art-body {
    max-width: 760px;
    width: 100%;
    font-size: 17px;
    line-height: 1.7;
    color: var(--ink-2);
}
.smib-art-body h2 {
    font-family: var(--display);
    font-size: 28px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.2;
    letter-spacing: -.01em;
    margin: 40px 0 16px;
    scroll-margin-top: 96px;
}
.smib-art-body h2:first-child { margin-top: 0; }
.smib-art-body h3 {
    font-family: var(--display);
    font-size: 22px;
    font-weight: 700;
    color: var(--ink);
    margin: 32px 0 12px;
}
.smib-art-body p { margin: 0 0 20px; }
.smib-art-body p:first-of-type::first-letter {
    font-family: var(--display);
    font-weight: 800;
    font-size: 64px;
    float: left;
    line-height: .9;
    margin: 6px 12px 0 0;
    color: var(--red);
}
.smib-art-body a {
    color: var(--green-deep);
    border-bottom: 1px solid var(--gold);
}
.smib-art-body a:hover {
    color: var(--green);
    border-bottom-color: var(--green);
}
.smib-art-body img {
    border-radius: var(--r-md);
    margin: 24px 0;
}
.smib-art-body ul,
.smib-art-body ol {
    padding-left: 22px;
    margin: 0 0 22px;
}
.smib-art-body li { margin-bottom: 8px; }

/* WP block-quote styled as design pullquote */
.smib-art-body blockquote,
.smib-art-body .wp-block-quote {
    margin: 32px 0;
    padding: 24px 28px 24px 32px;
    background: var(--cream-warm);
    border-left: 4px solid var(--gold);
    border-radius: 0 12px 12px 0;
    position: relative;
}
.smib-art-body blockquote::before,
.smib-art-body .wp-block-quote::before {
    content: "\201C";
    font-family: var(--display);
    font-size: 80px;
    line-height: .5;
    color: var(--gold);
    opacity: .3;
    position: absolute;
    top: 32px;
    left: 14px;
}
.smib-art-body blockquote p,
.smib-art-body .wp-block-quote p {
    font-family: var(--display);
    font-size: 22px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--ink);
    margin: 0 0 10px;
    font-style: italic;
}
.smib-art-body blockquote cite,
.smib-art-body .wp-block-quote cite {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .14em;
    color: var(--muted);
    font-style: normal;
    text-transform: uppercase;
}

.smib-art-factbox {
    margin: 40px 0;
    padding: 28px;
    background: linear-gradient(135deg, var(--green-ink), var(--green-deep));
    border-radius: var(--r-lg);
    color: #fff;
}
.smib-art-factbox .fb-label {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .2em;
    color: var(--gold);
    margin-bottom: 14px;
    font-weight: 700;
}
.smib-art-factbox ul {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.smib-art-factbox li {
    font-size: 15px;
    font-weight: 500;
    padding-left: 20px;
    position: relative;
    color: #fff;
}
.smib-art-factbox li::before {
    content: "→";
    color: var(--gold);
    position: absolute;
    left: 0;
    font-weight: 700;
}
.smib-btn-sm { padding: 10px 18px; font-size: 12px; }

.smib-art-meta-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
    margin-top: 48px;
    padding-top: 32px;
    border-top: 1px solid var(--line);
}
.smib-art-meta-bottom .lab {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .18em;
    color: var(--muted);
}
.tags-inline {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.tags-inline .chip {
    padding: 4px 10px;
    background: var(--cream);
    border-radius: 999px;
    font-family: var(--mono);
    font-size: 11px;
    color: var(--ink-2);
    letter-spacing: .04em;
}
.smib-art-meta-bottom .smib-art-share .sh {
    background: #fff;
    border-color: var(--line);
    color: var(--ink-2);
}
.smib-art-meta-bottom .smib-art-share .sh:hover {
    background: var(--gold);
    border-color: var(--gold);
    color: var(--ink);
}

.smib-art-related {
    padding: 64px 0 96px;
    background: var(--cream);
}
.smib-art-related-h { margin-bottom: 32px; }
.smib-art-related-title {
    font-family: var(--display);
    font-size: 36px;
    font-weight: 700;
    letter-spacing: -.015em;
    color: var(--ink);
    margin: 6px 0 0;
}
.smib-art-related-title em {
    font-style: italic;
    color: var(--red);
}

@media (max-width: 900px) {
    .smib-art-body-grid { grid-template-columns: 1fr; gap: 32px; }
    .smib-art-toc { display: none; }
}

/* === Galerie/Media page section flow === */
.smib-galerie-search-block {
    background: var(--green-soft);
    padding: 56px 0;
    border-top: 1px solid rgba(11,122,59,.15);
    border-bottom: 1px solid rgba(11,122,59,.15);
}
.smib-galerie-tabs-block {
    background: var(--paper);
    padding: 32px 0 24px;
    border-bottom: 1px solid var(--line);
}
.smib-galerie-photos-block {
    background: var(--cream);
    padding: 56px 0;
}
.smib-galerie-videos-block {
    background: var(--paper);
    padding: 56px 0;
}
.smib-galerie-page .smib-section-head {
    margin-bottom: 28px;
}

/* === Search card (light green, prominent) === */
.smib-photo-search {
    background: #fff;
    border: 1px solid rgba(11,122,59,.18);
    border-radius: var(--r-lg);
    padding: 32px 36px;
    box-shadow: var(--shadow-sm);
    max-width: 720px;
    margin: 0 auto;
}
.smib-photo-search-head {
    text-align: left;
    margin-bottom: 18px;
}
.smib-photo-search h3 {
    font-family: var(--display);
    font-size: 22px;
    font-weight: 700;
    color: var(--ink);
    margin: 0 0 6px;
    display: flex;
    align-items: center;
    gap: 10px;
    letter-spacing: -.01em;
}
.smib-photo-search h3 svg { color: var(--green); }
.smib-photo-search-head p {
    color: var(--muted);
    font-size: 14px;
    margin: 0;
    line-height: 1.55;
}
.smib-photo-search-form { margin: 0; }
.smib-search-input-group {
    display: flex;
    gap: 10px;
    align-items: stretch;
}
.smib-search-input-group input[type="text"] {
    flex: 1;
    padding: 14px 18px;
    border: 1.5px solid var(--line);
    border-radius: 10px;
    font-family: var(--body);
    font-size: 15px;
    background: var(--paper);
    transition: border-color .15s ease, box-shadow .15s ease;
}
.smib-search-input-group input[type="text"]:focus {
    outline: none;
    border-color: var(--green);
    box-shadow: 0 0 0 3px rgba(11,122,59,.15);
}
.smib-search-input-group .smib-btn {
    padding: 14px 24px;
    flex-shrink: 0;
}
.smib-photo-search-help {
    font-family: var(--mono);
    font-size: 12px;
    letter-spacing: .08em;
    color: var(--muted);
    margin-top: 14px;
}
.smib-photo-search-help a {
    color: var(--green-deep);
    border-bottom: 1px solid var(--gold);
    font-weight: 700;
    margin-left: 4px;
}
.smib-photo-search-help a:hover {
    color: var(--green);
    border-bottom-color: var(--green);
}
.smib-search-result {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px dashed var(--line);
}
.smib-search-runner {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    font-size: 14px;
    color: var(--ink-2);
    margin: 0 0 16px;
}
.smib-search-runner svg { color: var(--green); }
.smib-search-runner code {
    font-family: var(--mono);
    background: var(--cream);
    padding: 2px 8px;
    border-radius: 4px;
    color: var(--green-deep);
    font-weight: 700;
}
.smib-photo-results-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 8px;
}
.smib-photo-results-grid img {
    width: 100%;
    aspect-ratio: 1/1;
    object-fit: cover;
    border-radius: 8px;
    transition: transform .2s ease;
}
.smib-photo-results-grid a:hover img { transform: scale(1.03); }
.smib-search-galerie-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 14px;
}

/* === Tab count badges === */
.smib-galerie-tabs .smib-tab {
    flex-direction: row;
    gap: 8px;
    align-items: center;
    padding: 12px 18px;
}
.smib-galerie-tabs .smib-tab strong {
    font-size: 12px;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-family: var(--display);
    font-weight: 700;
    color: inherit;
}
.smib-galerie-tabs .smib-tab .smib-tab-year {
    font-family: var(--mono);
    font-size: 11px;
    color: inherit;
    opacity: .7;
}
.smib-galerie-tabs .smib-tab .smib-tab-count {
    background: var(--cream);
    color: var(--ink-2);
    padding: 2px 8px;
    border-radius: 999px;
    font-family: var(--mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
    margin-left: 4px;
    min-width: 22px;
    text-align: center;
}
.smib-galerie-tabs .smib-tab.on .smib-tab-count,
.smib-galerie-tabs .smib-tab.is-active .smib-tab-count {
    background: rgba(255,255,255,.18);
    color: #fff;
}

/* Custom paginated grid */
.smib-pagination {
    margin-top: 32px;
    text-align: center;
    display: flex;
    justify-content: center;
    gap: 6px;
    flex-wrap: wrap;
}
.smib-pagination button {
    min-width: 40px;
    height: 40px;
    padding: 0 14px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--line);
    color: var(--ink-2);
    font-family: var(--mono);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.smib-pagination button:hover { border-color: var(--green); color: var(--green-deep); }
.smib-pagination button.current {
    background: var(--green-ink);
    color: #fff;
    border-color: var(--green-ink);
}
.smib-pagination-counter {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--muted);
    background: var(--cream);
    padding: 6px 12px;
    border-radius: 999px;
}

/* Server-side paginate_links wrap */
.smib-pager-wrap {
    margin-top: 48px;
    text-align: center;
}
.smib-pager-wrap ul.smib-pagination,
.smib-pager-wrap ul.page-numbers {
    list-style: none;
    padding: 0;
    margin: 0;
    display: inline-flex;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: center;
}
.smib-pager-wrap a.smib-pager-num,
.smib-pager-wrap span.smib-pager-num,
.smib-pager-wrap a.page-numbers,
.smib-pager-wrap span.page-numbers {
    min-width: 40px;
    height: 40px;
    padding: 0 14px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--line);
    color: var(--ink-2);
    font-family: var(--mono);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
    text-decoration: none;
}
.smib-pager-wrap a.smib-pager-num:hover,
.smib-pager-wrap a.page-numbers:hover {
    border-color: var(--green);
    color: var(--green-deep);
}
.smib-pager-wrap span.smib-pager-num.current,
.smib-pager-wrap span.page-numbers.current,
.smib-pager-wrap span.current {
    background: var(--green-ink);
    color: #fff;
    border-color: var(--green-ink);
}

/* ============================================================================
   ABOUT PAGE
   ============================================================================ */
.smib-about-eyebrow {
    font-family: var(--mono);
    font-size: 13px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--green);
    font-weight: 700;
    margin-bottom: 14px;
}
.smib-about-eyebrow.gold { color: var(--gold); }

.smib-about-stats {
    padding: 56px 0;
    background: var(--cream);
}
.smib-about-stats-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border: 1px solid rgba(11,122,59,.15);
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
}
.smib-about-stats-row .cell {
    padding: 32px 24px;
    border-right: 1px solid rgba(11,122,59,.1);
    text-align: center;
}
.smib-about-stats-row .cell:last-child { border-right: 0; }
.smib-about-stats-row .v {
    font-family: var(--display);
    font-size: 48px;
    font-weight: 800;
    color: var(--green);
    line-height: 1;
    letter-spacing: -.02em;
}
.smib-about-stats-row .l {
    font-family: var(--mono);
    font-size: 12px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--ink-2);
    margin-top: 10px;
    font-weight: 700;
}

.smib-about-mission { padding: 72px 0; background: #fff; }
.smib-about-mission-grid {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 64px;
    align-items: start;
}
.smib-about-mission-side { position: sticky; top: 120px; }
.smib-about-mission-side h2 {
    font-family: var(--display);
    font-size: 48px;
    line-height: 1.05;
    letter-spacing: -.02em;
    margin: 0 0 20px;
    color: var(--green-ink);
    font-weight: 800;
}
.smib-about-mission-side h2 em {
    color: var(--red);
    font-style: italic;
    font-family: var(--serif);
    font-weight: 400;
}
.smib-about-mission-lead {
    font-size: 17px;
    line-height: 1.6;
    color: var(--ink-2);
    margin: 0 0 16px;
}
.smib-about-mission-text {
    font-size: 15px;
    line-height: 1.7;
    color: var(--muted);
}
.smib-about-values {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}
.smib-about-value {
    padding: 28px;
    background: #f6f4ef;
    border-radius: 14px;
    border: 1px solid rgba(11,122,59,.15);
}
.smib-about-value .ic {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: var(--green);
    display: grid;
    place-items: center;
    color: #fff;
    margin-bottom: 18px;
}
.smib-about-value h3 {
    font-family: var(--display);
    font-size: 22px;
    margin: 0 0 10px;
    letter-spacing: -.01em;
    color: var(--green-ink);
    font-weight: 700;
}
.smib-about-value p {
    font-size: 14px;
    line-height: 1.55;
    margin: 0;
    color: var(--ink-2);
}

.smib-about-timeline {
    padding: 72px 0;
    background: var(--green-ink);
    color: #fff;
}
.smib-about-timeline-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 40px;
    flex-wrap: wrap;
    gap: 20px;
}
.smib-about-timeline-head h2 {
    font-family: var(--display);
    font-size: 52px;
    margin: 0;
    letter-spacing: -.02em;
    line-height: 1.05;
    color: #fff;
    font-weight: 800;
}
.smib-about-timeline-head h2 em {
    font-style: italic;
    color: var(--gold);
    font-family: var(--serif);
    font-weight: 400;
}
.smib-about-timeline-head .period {
    font-family: var(--mono);
    font-size: 12px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: #9bb6a4;
    font-weight: 600;
}
.smib-about-timeline-body { position: relative; }
.smib-about-timeline-line {
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 1px;
    background: rgba(255,255,255,.12);
    transform: translateX(-50%);
}
.smib-about-milestone {
    display: grid;
    grid-template-columns: 1fr 80px 1fr;
    margin-bottom: 36px;
    align-items: center;
}
.smib-about-milestone .text { padding: 0 40px; }
.smib-about-milestone--left .text {
    grid-column: 1;
    text-align: right;
    padding: 0 40px 0 0;
}
.smib-about-milestone--right .text {
    grid-column: 3;
    text-align: left;
    padding: 0 0 0 40px;
}
.smib-about-milestone .dot {
    grid-column: 2;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--gold);
    border: 4px solid var(--green-ink);
    box-shadow: 0 0 0 1px rgba(255,208,52,.4);
    justify-self: center;
}
.smib-about-milestone .year {
    font-family: var(--mono);
    font-size: 12px;
    letter-spacing: .18em;
    color: var(--gold);
    margin-bottom: 8px;
    font-weight: 700;
}
.smib-about-milestone h3 {
    font-family: var(--display);
    font-size: 24px;
    margin: 0 0 8px;
    letter-spacing: -.01em;
    color: #fff;
    font-weight: 700;
}
.smib-about-milestone p {
    font-size: 14px;
    line-height: 1.6;
    color: #9bb6a4;
    margin: 0;
}

.smib-about-team {
    padding: 72px 0;
    background: var(--cream);
}
.smib-about-team h2 {
    font-family: var(--display);
    font-size: 48px;
    margin: 0 0 36px;
    letter-spacing: -.02em;
    color: var(--green-ink);
    font-weight: 800;
}
.smib-about-team h2 em {
    font-style: italic;
    color: var(--red);
    font-family: var(--serif);
    font-weight: 400;
}
.smib-about-team-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}
.smib-about-team-card {
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid rgba(11,122,59,.12);
}
.smib-about-team-card .avatar {
    aspect-ratio: 1/1;
    background: linear-gradient(135deg, var(--green) 0%, var(--green-ink) 100%);
    display: grid;
    place-items: center;
    color: rgba(255,255,255,.2);
    font-family: var(--display);
    font-size: 80px;
    font-weight: 800;
}
.smib-about-team-card .body { padding: 20px; }
.smib-about-team-card .role {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--green);
    margin-bottom: 6px;
    font-weight: 700;
}
.smib-about-team-card .name {
    font-family: var(--display);
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--green-ink);
    margin-bottom: 8px;
}
.smib-about-team-card .tag {
    display: inline-block;
    padding: 4px 8px;
    background: rgba(255,208,52,.18);
    color: #7a5a00;
    font-size: 11px;
    border-radius: 4px;
    font-family: var(--mono);
    letter-spacing: .04em;
    font-weight: 700;
}

.smib-about-patron {
    padding: 72px 0;
    background: #fff;
}
.smib-about-patron-grid {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 56px;
    align-items: center;
}
.smib-about-patron h2 {
    font-family: var(--display);
    font-size: 42px;
    margin: 0 0 18px;
    letter-spacing: -.02em;
    color: var(--green-ink);
    font-weight: 800;
}
.smib-about-patron .lead {
    font-size: 16px;
    line-height: 1.65;
    color: var(--ink-2);
    margin: 0 0 16px;
}
.smib-about-patron p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--muted);
}
.smib-about-patron-card {
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid rgba(11,122,59,.15);
    background: var(--green-ink);
}
.smib-about-patron-card .photo {
    aspect-ratio: 4/3;
    overflow: hidden;
    background: linear-gradient(135deg, var(--green-ink) 0%, var(--green) 60%, var(--green-ink) 100%);
}
.smib-about-patron-card .photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.smib-about-patron-card .body {
    padding: 24px 28px;
    color: #fff;
    background: var(--green-ink);
}
.smib-about-patron-card .hashtag {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .18em;
    color: var(--gold);
    margin-bottom: 14px;
    font-weight: 700;
}
.smib-about-patron-card .quote {
    font-family: var(--display);
    font-size: 22px;
    line-height: 1.25;
    letter-spacing: -.01em;
    color: #fff;
    margin-bottom: 14px;
    font-weight: 600;
}
.smib-about-patron-card .signoff {
    font-size: 13px;
    color: #cfe9d8;
}
.smib-about-patron-card .signoff span { color: #9bb6a4; }

.smib-about-cta {
    padding: 72px 0;
    background: var(--green);
    position: relative;
    overflow: hidden;
    text-align: center;
}
.smib-about-cta::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 80% 20%, rgba(255,208,52,.18), transparent 50%),
        radial-gradient(circle at 10% 80%, rgba(0,0,0,.15), transparent 50%);
}
.smib-about-cta > .smib-container { position: relative; }
.smib-about-cta h2 {
    font-family: var(--display);
    font-size: 48px;
    margin: 0 0 18px;
    letter-spacing: -.02em;
    line-height: 1.05;
    color: #fff;
    font-weight: 800;
}
.smib-about-cta h2 em {
    font-style: italic;
    color: var(--gold);
    font-family: var(--serif);
    font-weight: 400;
}
.smib-about-cta p {
    font-size: 17px;
    color: #fff;
    max-width: 560px;
    margin: 0 auto 32px;
    line-height: 1.6;
    opacity: .95;
}
.smib-about-cta-row {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}

@media (max-width: 960px) {
    .smib-about-stats-row { grid-template-columns: 1fr 1fr; }
    .smib-about-stats-row .cell:nth-child(2n) { border-right: 0; }
    .smib-about-mission-grid,
    .smib-about-patron-grid { grid-template-columns: 1fr; gap: 32px; }
    .smib-about-mission-side { position: static; }
    .smib-about-team-grid { grid-template-columns: 1fr 1fr; }
    .smib-about-milestone { grid-template-columns: 60px 1fr; }
    .smib-about-timeline-line { left: 30px; transform: none; }
    .smib-about-milestone--left .text,
    .smib-about-milestone--right .text {
        grid-column: 2;
        text-align: left;
        padding: 0 0 0 24px;
    }
    .smib-about-milestone .dot { grid-column: 1; }
}
@media (max-width: 600px) {
    .smib-about-stats-row { grid-template-columns: 1fr; }
    .smib-about-stats-row .cell { border-right: 0; border-bottom: 1px solid rgba(11,122,59,.1); }
    .smib-about-values { grid-template-columns: 1fr; }
    .smib-about-team-grid { grid-template-columns: 1fr; }
}

/* ============================================================================
   REGISTRATION FORM POLISH
   ============================================================================ */
/* Read-only age field — visually distinct from editable inputs. */
.smib-readonly-age input,
.smib-age-readonly {
    background: #fafaf6 !important;
    color: var(--ink-2) !important;
    cursor: not-allowed !important;
    caret-color: transparent !important;
    border-color: var(--line) !important;
    -moz-appearance: textfield;
    appearance: textfield;
}
.smib-readonly-age input:focus,
.smib-age-readonly:focus {
    outline: none !important;
    box-shadow: none !important;
}
/* Hide the up/down spinner — age is computed, not entered. */
.smib-readonly-age input[type="number"]::-webkit-outer-spin-button,
.smib-readonly-age input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    appearance: none !important;
    margin: 0 !important;
}
.smib-readonly-age input[type="number"] {
    -moz-appearance: textfield !important;
    appearance: textfield !important;
}
.smib-readonly-age .gfield_description {
    font-style: italic;
    color: var(--ink-2);
}

/* Tighten gap between Date of birth and Age fields when they are adjacent. */
.gform_wrapper .gform_fields .gfield--type-date + .smib-readonly-age,
.gform_wrapper .gform_fields .gfield--type-date + .gfield.smib-readonly-age {
    margin-top: -8px;
}

/* HH:MM:SS time field — monospace for legibility. */
.smib-time-hms input {
    font-family: var(--mono, "JetBrains Mono", monospace);
    letter-spacing: .04em;
}

/* International phone hint styling. */
.smib-intl-phone .gfield_description {
    color: var(--ink-2);
    font-size: 12px;
}

/* Unified message component lives in assets/messages.css (.smib-msg). */

/* Underage notice — inline next to the Age field, stacks content vertically. */
.smib-underage-notice {
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
}
.smib-underage-notice .smib-msg__action {
    margin-top: 6px;
}

.smib-email-error { font-weight: 500; }

/* Disable sticky form-side on tablet/mobile — keeps "Bon à savoir" inline. */
@media (max-width: 1024px) {
    .smib-form-side,
    .smib-inscription-side {
        position: static !important;
        top: auto !important;
    }
}


/* ============================================================================
   FAQ page  —  ported from design_handoff_smib_redesign/styles.css §FAQ
   Selectors prefixed with .smib- to avoid plugin collisions.
   ============================================================================ */
/* ============ FAQ page ============ */
.smib-faq-search-section{padding:0 0 12px;background:var(--paper)}
.smib-faq-search-card{
  display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:14px 18px;box-shadow:var(--shadow-sm);
  margin-top:-32px;position:relative;z-index:2;
}
.smib-faq-search-input{display:flex;align-items:center;gap:12px;flex:1;min-width:280px}
.smib-faq-search-input svg{color:var(--muted);flex-shrink:0}
.smib-faq-search-input input{
  flex:1;border:0;outline:none;background:transparent;
  font-family:var(--body);font-size:15px;color:var(--ink);
  padding:8px 0;
}
.smib-faq-search-input input::placeholder{color:var(--muted)}
.smib-faq-search-clear{
  width:28px;height:28px;border-radius:999px;background:var(--cream);
  color:var(--ink-2);font-size:18px;line-height:1;display:grid;place-items:center;
  cursor:pointer;transition:background .15s;
}
.smib-faq-search-clear:hover{background:var(--cream-warm);color:var(--red)}
.smib-faq-search-meta{display:flex;align-items:baseline;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-right:6px}
.smib-faq-search-meta .smib-fsm-n{font-family:var(--display);font-size:22px;font-weight:800;color:var(--green-deep);letter-spacing:-.02em}
.smib-faq-search-meta .smib-fsm-l{font-weight:600}

.smib-faq-page-section{padding:60px 0 80px;background:var(--paper)}
.smib-faq-page-grid{display:grid;grid-template-columns:260px 1fr;gap:48px;align-items:start}

/* Sticky category nav */
.smib-faq-side{position:sticky;top:96px;align-self:start;display:flex;flex-direction:column;gap:6px}
.smib-faq-side-h{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.smib-faq-cat-link{
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;border-radius:10px;background:#fff;border:1px solid var(--line);
  font-family:var(--body);font-size:14px;font-weight:600;color:var(--ink-2);
  text-align:left;cursor:pointer;transition:all .15s;width:100%;
}
.smib-faq-cat-link:hover{border-color:var(--green);color:var(--green-deep);transform:translateX(2px)}
.smib-faq-cat-link.on{background:var(--green-ink);color:#fff;border-color:var(--green-ink);box-shadow:0 6px 16px -8px rgba(3,51,26,.4)}
.smib-fcl-n{
  font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.04em;
  width:28px;height:28px;border-radius:8px;
  background:var(--cream);color:var(--muted);
  display:grid;place-items:center;flex-shrink:0;
  transition:all .15s;
}
.smib-faq-cat-link.on .smib-fcl-n{background:var(--gold);color:var(--green-ink)}
.smib-fcl-label{flex:1}
.smib-fcl-c{
  font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.04em;
  padding:3px 8px;border-radius:6px;background:var(--cream);color:var(--muted);
  transition:all .15s;
}
.smib-faq-cat-link.on .smib-fcl-c{background:rgba(255,255,255,.1);color:#cfe9d8}

.smib-faq-tools{display:flex;gap:6px;margin-top:14px;padding:10px 4px;border-top:1px dashed var(--line);padding-top:14px}
.smib-faq-tool{
  flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:8px 10px;border-radius:8px;background:transparent;border:1px solid var(--line);
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);font-weight:600;cursor:pointer;transition:all .15s;
}
.smib-faq-tool:hover{border-color:var(--green);color:var(--green-deep);background:var(--green-soft)}

.smib-faq-side-help{
  margin-top:20px;padding:18px;border-radius:12px;
  background:linear-gradient(135deg,var(--cream),var(--cream-warm));
  border:1px solid var(--line);
  display:flex;flex-direction:column;gap:10px;
}
.smib-fsh-lab{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);font-weight:700}
.smib-fsh-link{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;color:var(--ink);font-weight:600;transition:color .15s}
.smib-fsh-link:hover{color:var(--green-deep)}
.smib-fsh-link svg{color:var(--green-deep)}

/* Content column */
.smib-faq-content{display:flex;flex-direction:column;gap:40px}
.smib-faq-cat-block{display:flex;flex-direction:column;gap:14px}
.smib-faq-cat-h{display:flex;align-items:center;gap:16px;padding-bottom:14px;border-bottom:2px solid var(--gold)}
.smib-faq-cat-n{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--gold-deep);letter-spacing:.1em;padding:6px 10px;background:rgba(255,208,52,.16);border-radius:6px}
.smib-faq-cat-meta{flex:1;display:flex;flex-direction:column;gap:4px}
.smib-faq-cat-title{font-family:var(--display);font-size:24px;font-weight:800;letter-spacing:-.015em;color:var(--ink);margin:0;line-height:1.1}
.smib-faq-cat-count{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.smib-faq-cat-icon{width:44px;height:44px;border-radius:12px;background:var(--green-soft);color:var(--green-deep);display:grid;place-items:center;flex-shrink:0}

/* Per-question overrides — base styles inlined here too so LiteSpeed CSS
   optimization keeps them (otherwise the bare .smib-faq-q rule above can be
   dropped from the combined sheet, leaving the button without color/flex). */
.smib-faq-page-section .smib-faq-q {
    width: 100%;
    background: transparent;
    text-align: left;
    padding: 20px 24px;
    font-size: 16px;
    line-height: 1.35;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-family: var(--display);
    font-weight: 600;
    color: var(--ink);
    gap: 18px;
    border: 0;
}
.smib-faq-page-section .smib-faq-q-text { flex: 1; text-wrap: pretty; color: var(--ink); }
.smib-faq-page-section .smib-faq-q .chev {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--cream);
    display: grid;
    place-items: center;
    font-size: 14px;
    color: var(--green-deep);
    transition: transform .2s ease, background .2s ease, color .2s ease;
    flex-shrink: 0;
}
.smib-faq-page-section .smib-faq-item.open .chev {
    transform: rotate(180deg);
    background: var(--green);
    color: #fff;
}
.smib-faq-page-section .smib-faq-item{transition:border-color .2s, box-shadow .2s}
.smib-faq-page-section .smib-faq-item.open{box-shadow:0 6px 20px -8px rgba(7,30,18,.12)}
.smib-faq-page-section .smib-faq-a{max-height:0;padding:0 24px;font-size:15px}
.smib-faq-page-section .smib-faq-item.open .smib-faq-a{max-height:600px;padding:0 24px 22px;line-height:1.7;color:var(--ink-2)}
.smib-faq-page-section .smib-faq-a p{margin:0 0 14px}
.smib-faq-page-section .smib-faq-a p:last-child{margin-bottom:0}

.smib-faq-inline-cta{
  display:inline-flex;align-items:center;gap:8px;
  margin-top:6px;padding:9px 16px;border-radius:999px;
  background:var(--green-ink);color:#fff;
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  transition:background .15s, transform .15s;
}
.smib-faq-inline-cta:hover{background:var(--green-deep);transform:translateY(-1px)}
.smib-faq-inline-cta svg{color:var(--gold)}

.smib-faq-empty{
  padding:48px 32px;text-align:center;
  background:linear-gradient(135deg,var(--cream-warm),var(--cream));
  border:1px dashed var(--line-2);border-radius:var(--r-lg);
  display:flex;flex-direction:column;gap:14px;align-items:center;
}
.smib-fe-h{font-family:var(--display);font-size:18px;font-weight:700;color:var(--ink)}
.smib-faq-empty p{margin:0;color:var(--ink-2);font-size:14px;max-width:380px}

/* Bottom CTA card */
.smib-faq-cta-section{padding:48px 0 96px;background:var(--paper)}
.smib-faq-cta-card{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg, var(--green-ink), var(--green-deep));
  color:#fff;border-radius:var(--r-lg);
  display:grid;grid-template-columns:1.3fr 1fr;gap:0;
  box-shadow:0 24px 60px rgba(3,51,26,.32);
}
.smib-faq-cta-card::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(60% 60% at 80% 10%, rgba(255,208,52,.18), transparent 70%);
  pointer-events:none;
}
.smib-faq-cta-l{position:relative;padding:48px 40px 48px 56px;border-right:1px solid rgba(255,255,255,.08)}
.smib-faq-cta-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.smib-faq-cta-title{font-family:var(--display);font-size:clamp(28px,3.4vw,40px);font-weight:800;letter-spacing:-.025em;line-height:1.1;margin:0 0 14px;color:#fff}
.smib-faq-cta-title .it{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--gold)}
.smib-faq-cta-lead{font-size:15px;line-height:1.6;color:rgba(255,255,255,.85);margin:0;max-width:440px}
.smib-faq-cta-r{position:relative;padding:48px 40px;display:flex;flex-direction:column;gap:12px;justify-content:center}
.smib-faq-cta-row{display:flex;align-items:center;gap:14px;padding:14px 16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:12px;transition:background .15s, transform .15s;color:#fff}
.smib-faq-cta-row:hover{background:rgba(255,255,255,.08);transform:translateY(-1px)}
.smib-fcr-ic{width:40px;height:40px;border-radius:10px;background:var(--gold);color:var(--green-ink);display:grid;place-items:center;flex-shrink:0}
.smib-fcr-l{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#cfe9d8}
.smib-fcr-v{font-family:var(--display);font-weight:700;font-size:15px;color:#fff;margin-top:2px;letter-spacing:-.01em}

@media (max-width:960px){
  .smib-faq-page-grid{grid-template-columns:1fr}
  .smib-faq-side{position:static;flex-direction:row;flex-wrap:wrap;gap:8px}
  .smib-faq-side-h{flex-basis:100%;margin-bottom:4px}
  .smib-faq-cat-link{flex:0 0 auto;padding:8px 12px;font-size:13px}
  .smib-faq-cat-link .smib-fcl-n{width:22px;height:22px;font-size:10px}
  .smib-faq-tools{flex-basis:100%;border-top:0;padding-top:0;margin-top:8px}
  .smib-faq-side-help{flex-basis:100%}
  .smib-faq-cta-card{grid-template-columns:1fr}
  .smib-faq-cta-l{padding:36px 28px;border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}
  .smib-faq-cta-r{padding:28px}
}
@media (max-width:640px){
  .smib-faq-search-card{margin-top:-20px;padding:12px 14px;flex-direction:column;align-items:stretch}
  .smib-faq-search-meta{justify-content:flex-start;padding:0;border-top:1px dashed var(--line);padding-top:8px}
  .smib-faq-cat-h{flex-wrap:wrap}
  .smib-faq-cat-icon{display:none}
}

/* ============================================================================
   Kit Presse page  —  ported from design_handoff_smib_redesign/styles.css §Press
   ============================================================================ */
/* ============ Kit Presse page ============ */
.smib-press-section{background:var(--paper)}
.smib-press-section--alt{background:var(--cream-warm)}
.smib-press-h{max-width:780px;margin:0 auto 48px;text-align:center}
.smib-press-h .eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--green-deep);margin-bottom:14px;display:inline-flex;align-items:center;gap:10px}
.smib-press-h .eyebrow::before{content:"";width:24px;height:1px;background:var(--gold)}
.smib-press-h .eyebrow::after{content:"";width:24px;height:1px;background:var(--gold)}
.smib-press-h h2{font-family:var(--display);font-size:clamp(32px,4vw,52px);font-weight:800;letter-spacing:-.025em;line-height:1.05;margin:0 0 14px;color:var(--ink)}
.smib-press-h h2 .it{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--red)}
.smib-press-h .lead{font-size:16px;color:var(--ink-2);line-height:1.7;margin:0;text-wrap:pretty}
.smib-press-h .lead em{font-style:italic;color:var(--green-deep);font-weight:500}

/* Communiqués list */
.smib-press-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}

/* Toolbar — year filter + count, sits above the list */
.smib-press-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:18px}
.smib-press-filter{display:flex;gap:8px;flex-wrap:wrap}
.smib-pf-chip{
  font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  padding:9px 16px;border-radius:999px;
  background:#fff;border:1px solid var(--line);color:var(--muted);
  cursor:pointer;transition:all .15s;
}
.smib-pf-chip:hover{border-color:var(--green);color:var(--green-deep)}
.smib-pf-chip.on{background:var(--green-ink);color:#fff;border-color:var(--green-ink);box-shadow:0 4px 12px -4px rgba(3,51,26,.4)}
.smib-press-count{display:inline-flex;align-items:baseline;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.smib-press-count .pc-n{font-family:var(--display);font-size:24px;font-weight:800;color:var(--green-deep);letter-spacing:-.02em}
.smib-press-count .pc-l{font-weight:600}
.smib-press-empty{padding:48px 24px;text-align:center;background:#fff;border:1px dashed var(--line-2);border-radius:var(--r-lg);font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.smib-press-row{
  display:grid;
  grid-template-columns:64px 200px 1fr auto;
  gap:24px;align-items:center;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:22px 28px;
  transition:transform .15s, box-shadow .2s, border-color .15s;
  position:relative;
}
.smib-press-row.published{cursor:pointer}
.smib-press-row.published:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--green)}
.smib-press-row.upcoming{background:linear-gradient(135deg,#fcf9ef,#f7f1e3);border-style:dashed;border-color:var(--line-2);opacity:.96}
.smib-pr-rail{display:flex;flex-direction:column;align-items:center;gap:10px}
.smib-pr-n{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.1em}
.smib-pr-dot{width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(11,122,59,.12)}
.smib-press-row.upcoming .smib-pr-dot{background:var(--gold);box-shadow:0 0 0 4px rgba(255,208,52,.18)}
.smib-pr-meta{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}
.smib-pr-date{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.smib-press-row.published .smib-pr-date{color:var(--green-deep)}
.smib-pr-kind{display:inline-block;padding:3px 10px;background:var(--cream);border-radius:6px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);font-weight:700}
.smib-press-row.upcoming .smib-pr-kind{background:#fff5d8;color:var(--gold-deep)}
.smib-pr-title{font-family:var(--display);font-size:18px;font-weight:700;letter-spacing:-.01em;line-height:1.3;margin:0;color:var(--ink);align-self:center}
.smib-pr-action{justify-self:end}
.smib-pr-dl{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;background:var(--green-ink);color:#fff;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;transition:background .15s,transform .15s}
.smib-pr-dl:hover{background:var(--green-deep);transform:translateY(-1px)}
.smib-pr-soon{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);font-weight:700;padding:8px 14px;border:1px dashed var(--gold);border-radius:999px;background:rgba(255,208,52,.08)}
.smib-press-note{text-align:center;font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--muted);margin:32px 0 0;font-style:normal}

/* Layout: title on row 1 cols 2 (so date/kind stack on row 1 col 2 too) — simpler: redo */
@media (min-width:760px){
  .smib-press-row{grid-template-columns:64px 200px 1fr auto;align-items:center}
  .smib-pr-title{grid-column:auto}
}
@media (max-width:759px){
  .smib-press-row{grid-template-columns:48px 1fr;gap:14px;padding:18px 18px}
  .smib-pr-action{grid-column:1 / -1;justify-self:start;margin-top:6px}
  .smib-pr-title{grid-column:2}
  .smib-pr-meta{grid-column:2}
}

/* Logo grid */
.smib-logo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.smib-logo-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;transition:transform .15s, box-shadow .2s, border-color .15s}
.smib-logo-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--green)}
.smib-lc-preview{aspect-ratio:16/8;display:grid;place-items:center;position:relative;overflow:hidden}
.smib-logo-card--light .smib-lc-preview{background:linear-gradient(135deg,#fafaf7,#f2efe5)}
.smib-logo-card--dark .smib-lc-preview{background:linear-gradient(135deg,var(--green-ink),var(--green-deep))}
.smib-logo-card--doc .smib-lc-preview{background:linear-gradient(135deg,#f6efde,#e9dec0)}
.smib-logo-card--banner .smib-lc-preview{background:linear-gradient(120deg,var(--green) 0%,var(--green) 33%,var(--gold) 33%,var(--gold) 66%,var(--red) 66%,var(--red) 100%);position:relative}
.smib-lc-logo{height:64px;width:auto;max-width:60%;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,0,0,.08))}
.smib-lc-logo--invert{filter:drop-shadow(0 4px 12px rgba(0,0,0,.3))}
.smib-lc-doc{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.smib-lc-doc-stripe{width:160px;height:8px;border-radius:4px;background:var(--gold-deep);opacity:.45}
.smib-lc-doc-stripe.stripe-short{width:90px;opacity:.6}
.smib-lc-banner{background:rgba(0,0,0,.55);backdrop-filter:blur(6px);padding:10px 18px;border-radius:8px}
.smib-lc-banner-tag{font-family:var(--display);font-weight:800;font-size:16px;color:#fff;letter-spacing:.04em}
.smib-lc-body{padding:22px 24px;display:flex;flex-direction:column;gap:8px;flex:1}
.smib-lc-body h3{font-family:var(--display);font-size:16px;font-weight:700;letter-spacing:-.01em;margin:0;color:var(--ink)}
.smib-lc-note{font-size:13px;color:var(--ink-2);line-height:1.5;margin:0 0 10px}
.smib-lc-row{margin-top:auto;display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px dashed var(--line)}
.smib-lc-formats{display:flex;gap:6px;flex-wrap:wrap}
.smib-lc-fmt{font-family:var(--mono);font-size:10px;letter-spacing:.14em;font-weight:700;padding:4px 8px;border-radius:4px;background:var(--cream);color:var(--ink-2)}
.smib-lc-dl{width:38px;height:38px;border-radius:10px;background:var(--green-ink);color:#fff;display:grid;place-items:center;transition:background .15s, transform .15s}
.smib-lc-dl:hover{background:var(--green-deep);transform:translateY(-1px)}
@media (max-width:760px){.smib-logo-grid{grid-template-columns:1fr}}

/* Photothèque */
.smib-photo-split{display:grid;grid-template-columns:1.2fr 1fr;gap:36px;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
.smib-ps-left{padding:24px;background:linear-gradient(135deg,var(--cream-warm),var(--cream));display:flex;align-items:center}
.smib-ps-collage{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:10px;width:100%;height:380px}
.smib-ps-tile{position:relative;border-radius:10px;overflow:hidden;background:repeating-linear-gradient(45deg, #e8dfc4, #e8dfc4 10px, #ddd3b3 10px, #ddd3b3 20px);box-shadow:0 6px 18px rgba(7,30,18,.08);display:flex;align-items:flex-end}
.smib-ps-tile--1{background:linear-gradient(135deg,#0b4d2e,#03331a),repeating-linear-gradient(45deg, transparent, transparent 8px, rgba(255,255,255,.05) 8px, rgba(255,255,255,.05) 16px)}
.smib-ps-tile--2{background:linear-gradient(135deg,#c08a3e,#8a5d1e)}
.smib-ps-tile--3{background:linear-gradient(135deg,#ce1126,#8e0a18)}
.smib-ps-tile--4{background:linear-gradient(135deg,#6e7a75,#3a4540)}
.smib-ps-cap{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:#fff;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);padding:6px 10px;border-radius:6px;margin:10px;text-transform:uppercase;font-weight:600}
.smib-ps-right{padding:32px 32px 32px 0;display:flex;flex-direction:column;gap:18px}
.smib-ps-stat{padding-bottom:18px;border-bottom:1px solid var(--line)}
.smib-ps-stat-n{font-family:var(--display);font-size:44px;font-weight:800;letter-spacing:-.02em;color:var(--green-deep);line-height:1}
.smib-ps-stat-l{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.smib-ps-points{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.smib-ps-points li{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink-2)}
.smib-ps-points li svg{color:var(--green);flex-shrink:0}
.smib-ps-credit{background:linear-gradient(135deg,var(--cream),var(--cream-warm));border:1px dashed var(--gold);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.smib-ps-credit-lab{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);font-weight:700}
.smib-ps-credit-v{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--ink);font-weight:500}
.smib-ps-right .btn{align-self:flex-start;margin-top:4px}
@media (max-width:900px){
  .smib-photo-split{grid-template-columns:1fr}
  .smib-ps-right{padding:0 24px 28px}
  .smib-ps-left{padding:24px}
}

/* Chiffres-clés */
.smib-fig-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.smib-fig-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:28px 28px 22px;position:relative;transition:transform .15s, box-shadow .2s, border-color .15s}
.smib-fig-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--gold)}
.smib-fig-card::before{content:"";position:absolute;left:0;top:0;width:4px;bottom:0;background:var(--gold);border-radius:var(--r-lg) 0 0 var(--r-lg);opacity:.6}
.smib-fig-v{font-family:var(--display);font-size:44px;font-weight:800;letter-spacing:-.02em;color:var(--green-deep);line-height:1}
.smib-fig-l{font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);margin-top:10px;font-weight:700}
.smib-fig-d{font-size:13px;color:var(--muted);line-height:1.5;margin-top:6px}
.smib-fig-source{margin-top:24px;text-align:center;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--muted)}
.smib-fig-src-lab{font-weight:700;color:var(--ink-2)}
.smib-fig-source a{color:var(--green-deep);font-weight:600;border-bottom:1px solid currentColor}
@media (max-width:760px){.smib-fig-grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.smib-fig-grid{grid-template-columns:1fr}}

/* Accréditation */
.smib-press-accred{background:var(--paper);padding:60px 0 96px}
.smib-accred-card{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg, var(--green-ink), var(--green-deep));
  color:#fff;border-radius:var(--r-lg);
  display:grid;grid-template-columns:1.4fr 1fr;gap:0;
  box-shadow:0 24px 60px rgba(3,51,26,.32);
}
.smib-accred-glow{position:absolute;inset:0;background:
  radial-gradient(60% 60% at 90% 10%, rgba(255,208,52,.22), transparent 70%),
  radial-gradient(40% 60% at 0% 100%, rgba(206,17,38,.16), transparent 70%);
  pointer-events:none;
}
.smib-accred-l{position:relative;padding:56px 48px 56px 56px;border-right:1px solid rgba(255,255,255,.08)}
.smib-accred-label{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.smib-accred-title{font-family:var(--display);font-size:clamp(32px,4vw,48px);font-weight:800;letter-spacing:-.025em;line-height:1.05;margin:0 0 18px;color:#fff}
.smib-accred-title .it{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--gold)}
.smib-accred-lead{font-size:16px;line-height:1.6;color:rgba(255,255,255,.85);margin:0 0 24px;max-width:480px}
.smib-accred-lead strong{color:var(--gold);font-weight:700}
.smib-accred-chips{display:flex;gap:8px;flex-wrap:wrap}
.smib-achip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:999px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:#cfe9d8;font-weight:600}
.smib-achip svg{color:var(--gold)}
.smib-accred-r{position:relative;padding:56px 48px;display:flex;flex-direction:column;gap:14px;justify-content:center}
.smib-accred-row{display:flex;align-items:center;gap:16px;padding:18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:14px;transition:background .15s, transform .15s;color:#fff}
.smib-accred-row:hover{background:rgba(255,255,255,.08);transform:translateY(-1px)}
.smib-ar-ic{width:44px;height:44px;border-radius:12px;background:var(--gold);color:var(--green-ink);display:grid;place-items:center;flex-shrink:0}
.smib-ar-l{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#cfe9d8}
.smib-ar-v{font-family:var(--display);font-weight:700;font-size:16px;color:#fff;margin-top:2px;letter-spacing:-.01em}
.smib-accred-deadline{margin-top:10px;padding:14px 16px;border:1px dashed var(--gold);border-radius:10px;display:flex;flex-direction:column;gap:4px;background:rgba(255,208,52,.06)}
.smib-ad-lab{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:700}
.smib-ad-v{font-family:var(--display);font-size:14px;color:#fff;font-weight:600}
@media (max-width:900px){
  .smib-accred-card{grid-template-columns:1fr}
  .smib-accred-l{padding:40px 32px;border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}
  .smib-accred-r{padding:32px}
}


/* ============================================================================
   Guides utilisateur — ported from design_handoff_smib_redesign/styles.css
   Selectors prefixed with .smib- to avoid plugin collisions.
   ============================================================================ */
/* ============ Guides utilisateur (password-protected docs) ============ */

/* Top strip — Brazza-SMIB · Guides utilisateur + FR/EN */
.smib-guides-strip{background:var(--green-deep);color:#fff;border-top:3px solid var(--gold);border-bottom:3px solid var(--gold);position:sticky;top:0;z-index:30}
.smib-guides-strip-inner{display:flex;justify-content:space-between;align-items:center;padding:14px 28px;gap:18px;flex-wrap:wrap}
.smib-gs-brand{display:flex;align-items:center;gap:12px}
.smib-gs-flag{width:24px;height:16px;border-radius:2px;box-shadow:0 1px 2px rgba(0,0,0,.3);overflow:hidden}
.smib-gs-title{font-family:var(--display);font-weight:700;font-size:14px;letter-spacing:-.01em;color:#fff}
.smib-gs-tools{display:flex;align-items:center;gap:10px}
.smib-gs-lang{display:inline-flex;background:rgba(0,0,0,.2);border-radius:999px;padding:3px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;font-weight:700}
.smib-gs-lang button{padding:6px 12px;border-radius:999px;color:rgba(255,255,255,.6);background:transparent;border:0;cursor:pointer;transition:all .15s}
.smib-gs-lang button.on{background:var(--gold);color:var(--green-ink)}

.smib-guides-section{padding:48px 0 96px;background:var(--paper)}

/* Two-column grid: sticky sidebar + content */
.smib-guides-grid{display:grid;grid-template-columns:260px 1fr;gap:48px;align-items:start}

.smib-guides-side{position:sticky;top:96px;align-self:start;display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;box-shadow:var(--shadow-sm)}
.smib-gs-label{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.smib-gs-link{
  display:flex;align-items:center;gap:12px;
  padding:10px 12px;border-radius:8px;
  font-family:var(--body);font-size:13px;font-weight:600;color:var(--ink-2);
  cursor:pointer;transition:all .15s;text-decoration:none;
}
.smib-gs-link:hover{background:var(--green-soft);color:var(--green-deep);transform:translateX(2px)}
.smib-gs-n{
  font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.04em;
  width:24px;height:24px;border-radius:6px;
  background:var(--cream);color:var(--muted);
  display:grid;place-items:center;flex-shrink:0;
}
.smib-gs-link:hover .smib-gs-n{background:var(--gold);color:var(--green-ink)}
.smib-gs-l{flex:1;text-wrap:pretty;line-height:1.3}
.smib-gs-back{
  display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:8px 12px;
  border-radius:8px;background:var(--cream);color:var(--ink-2);
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  border:1px solid var(--line);transition:all .15s;text-decoration:none;
}
.smib-gs-back:hover{background:var(--green-ink);color:#fff;border-color:var(--green-ink)}
.smib-gs-helper{
  margin-top:14px;padding:14px;border-radius:10px;
  background:linear-gradient(135deg,var(--cream),var(--cream-warm));
  border:1px solid var(--line);
  display:flex;flex-direction:column;gap:8px;
}
.smib-gs-helper-lab{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);font-weight:700}
.smib-gs-helper-link{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;color:var(--ink);font-weight:600;text-decoration:none}
.smib-gs-helper-link:hover{color:var(--green-deep)}
.smib-gs-helper-link svg{color:var(--green-deep);flex-shrink:0}

/* Content */
.smib-guides-content{display:flex;flex-direction:column;gap:64px}
.smib-g-block{display:flex;flex-direction:column;gap:20px;scroll-margin-top:140px}
.smib-g-block-h{display:flex;gap:16px;align-items:flex-start;padding-bottom:16px;border-bottom:2px solid var(--gold)}
.smib-g-block-n{
  font-family:var(--mono);font-size:11px;font-weight:700;color:var(--gold-deep);letter-spacing:.1em;
  padding:8px 12px;background:rgba(255,208,52,.16);border-radius:6px;flex-shrink:0;align-self:flex-start;
}
.smib-g-block-n--red{color:var(--red-deep);background:#fdecee}
.smib-g-block-n--green{color:var(--green-deep);background:var(--green-soft)}
.smib-g-block-n--gold{color:var(--gold-deep);background:rgba(255,208,52,.16)}
.smib-g-block-title{font-family:var(--display);font-size:32px;font-weight:800;letter-spacing:-.02em;color:var(--ink);margin:0 0 6px;line-height:1.05}
.smib-g-block-title .it{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--red)}
.smib-g-block-lead{font-size:15px;color:var(--ink-2);line-height:1.6;margin:0;text-wrap:pretty;max-width:560px}

/* Role grid (home page) */
.smib-role-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.smib-role-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:24px;display:flex;flex-direction:column;gap:12px;
  transition:transform .15s, box-shadow .2s, border-color .15s;
  position:relative;overflow:hidden;
}
.smib-role-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--green);transition:width .15s}
.smib-role-card--red::before{background:var(--red)}
.smib-role-card--gold::before{background:var(--gold)}
.smib-role-card--green::before{background:var(--green)}
.smib-role-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:transparent}
.smib-role-card:hover::before{width:6px}
.smib-rc-top{display:flex;justify-content:space-between;align-items:center}
.smib-rc-n{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.1em}
.smib-rc-ic{width:40px;height:40px;border-radius:10px;background:var(--cream);color:var(--green-deep);display:grid;place-items:center}
.smib-role-card--red .smib-rc-ic{background:#fdecee;color:var(--red-deep)}
.smib-role-card--gold .smib-rc-ic{background:rgba(255,208,52,.18);color:var(--gold-deep)}
.smib-role-card--green .smib-rc-ic{background:var(--green-soft);color:var(--green-deep)}
.smib-rc-title{font-family:var(--display);font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--ink);margin:0}
.smib-rc-tagline{font-family:var(--serif);font-style:italic;font-weight:300;font-size:15px;color:var(--ink-2);line-height:1.45;margin:0}
.smib-rc-bullets{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.smib-rc-bullets li{font-size:13px;color:var(--ink-2);line-height:1.5;padding-left:16px;position:relative}
.smib-rc-bullets li::before{content:"→";position:absolute;left:0;color:var(--green);font-weight:700}
.smib-role-card--red .smib-rc-bullets li::before{color:var(--red)}
.smib-role-card--gold .smib-rc-bullets li::before{color:var(--gold-deep)}
.smib-rc-foot{margin-top:auto;padding-top:14px;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:12px}
.smib-rc-meta{display:flex;flex-direction:column;gap:2px}
.smib-rc-aud{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700}
.smib-rc-dur{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink-2)}
.smib-rc-cta{
  align-self:stretch;
  display:inline-flex;align-items:center;justify-content:space-between;gap:8px;
  padding:11px 16px;border-radius:999px;background:var(--green-ink);color:#fff;
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  border:0;cursor:pointer;transition:background .15s, transform .15s;
}
.smib-rc-cta:hover{background:var(--green-deep);transform:translateY(-1px)}
.smib-rc-cta svg{color:var(--gold)}
.smib-role-card--red .smib-rc-cta{background:var(--red)}
.smib-role-card--red .smib-rc-cta:hover{background:var(--red-deep)}
.smib-role-card--gold .smib-rc-cta{background:var(--gold-deep);color:#fff}
.smib-role-card--gold .smib-rc-cta:hover{background:var(--gold-deep);filter:brightness(1.1)}

@media (max-width:760px){.smib-role-grid{grid-template-columns:1fr}}

/* Workflow steps */
.smib-wf-steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;counter-reset:wf}
.smib-wf-step{display:grid;grid-template-columns:48px 1fr 32px;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 22px;position:relative;transition:transform .15s, box-shadow .2s, border-color .15s}
.smib-wf-step:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--green)}
.smib-wf-n{font-family:var(--display);font-size:24px;font-weight:800;color:var(--gold-deep);letter-spacing:-.02em;line-height:1;grid-row:1}
.smib-wf-body{display:flex;flex-direction:column;gap:6px;min-width:0}
.smib-wf-t{font-family:var(--display);font-size:15px;font-weight:700;color:var(--ink);letter-spacing:-.01em;line-height:1.3}
.smib-wf-meta{display:flex;gap:14px;flex-wrap:wrap;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.smib-wf-who{color:var(--green-deep)}
.smib-wf-sys{color:var(--muted)}
.smib-wf-arrow{font-family:var(--display);font-size:20px;color:var(--gold);font-weight:700;text-align:center}
.smib-wf-step:last-child .smib-wf-arrow{display:none}

/* Tools */
.smib-tools-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.smib-tool-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:18px;transition:transform .15s, box-shadow .2s, border-color .15s}
.smib-tool-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--gold)}
.smib-tool-h{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed var(--line)}
.smib-tool-role{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);font-weight:700}
.smib-tool-name{font-family:var(--display);font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--ink);margin:0}
.smib-tool-note{font-size:13px;color:var(--ink-2);line-height:1.5;margin:0}
@media (max-width:760px){.smib-tools-grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.smib-tools-grid{grid-template-columns:1fr}}

/* Glossary */
.smib-gloss-list{margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.smib-gloss-row{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.smib-gloss-row dt{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--green-deep);text-transform:uppercase}
.smib-gloss-row dd{margin:0;font-size:13px;color:var(--ink-2);line-height:1.55}
@media (max-width:760px){.smib-gloss-list{grid-template-columns:1fr}}

/* Help CTA card */
.smib-help-card{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg, var(--green-ink), var(--green-deep));
  color:#fff;border-radius:var(--r-lg);
  display:grid;grid-template-columns:1.3fr 1fr;gap:0;
  box-shadow:0 24px 60px rgba(3,51,26,.32);
}
.smib-help-glow{position:absolute;inset:0;background:radial-gradient(60% 60% at 90% 10%, rgba(255,208,52,.22), transparent 70%);pointer-events:none}
.smib-help-l{position:relative;padding:36px 32px 36px 40px;border-right:1px solid rgba(255,255,255,.08)}
.smib-help-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.smib-help-title{font-family:var(--display);font-size:clamp(24px,3vw,32px);font-weight:800;letter-spacing:-.02em;line-height:1.1;margin:0 0 12px;color:#fff}
.smib-help-title .it{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--gold)}
.smib-help-lead{font-size:14px;line-height:1.6;color:rgba(255,255,255,.85);margin:0}
.smib-help-r{position:relative;padding:36px 32px;display:flex;flex-direction:column;gap:10px;justify-content:center}
.smib-help-row{display:flex;align-items:center;gap:14px;padding:14px 16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:12px;transition:background .15s, transform .15s;color:#fff;text-decoration:none}
.smib-help-row:hover{background:rgba(255,255,255,.08);transform:translateY(-1px)}
.smib-hr-ic{width:38px;height:38px;border-radius:10px;background:var(--gold);color:var(--green-ink);display:grid;place-items:center;flex-shrink:0}
.smib-hr-l{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#cfe9d8}
.smib-hr-v{font-family:var(--display);font-weight:700;font-size:14px;color:#fff;margin-top:2px;letter-spacing:-.01em}

/* Role-page-specific tweaks */
.smib-g-block--role .smib-role-section-body{display:grid;grid-template-columns:1fr;gap:20px}
.smib-role-placeholder{
  background:repeating-linear-gradient(45deg, var(--cream), var(--cream) 10px, var(--cream-warm) 10px, var(--cream-warm) 20px);
  border:1px dashed var(--line-2);border-radius:10px;
  height:240px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;
}
.smib-rp-lab{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:700}
.smib-rp-sub{font-size:12px;color:var(--muted)}
.smib-role-section-body p{font-size:15px;color:var(--ink-2);line-height:1.65;margin:0}

@media (max-width:960px){
  .smib-guides-grid{grid-template-columns:1fr}
  .smib-guides-side{position:static;flex-direction:row;flex-wrap:wrap;gap:6px}
  .smib-gs-label{flex-basis:100%;margin-bottom:4px}
  .smib-gs-link{flex:0 0 auto}
  .smib-gs-back{flex-basis:100%;justify-content:center}
  .smib-gs-helper{flex-basis:100%}
  .smib-help-card{grid-template-columns:1fr}
  .smib-help-l{padding:32px 28px;border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}
  .smib-help-r{padding:28px}
  .smib-g-block-title{font-size:26px}
}
@media (max-width:640px){
  .smib-wf-step{grid-template-columns:36px 1fr;gap:12px;padding:14px 16px}
  .smib-wf-arrow{display:none}
}
/* ============ Guides — role page primitives ============ */

/* Hero accents per role */
.role-hero{position:relative;overflow:hidden}
.role-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px}
.role-hero--red::after{background:var(--red)}
.role-hero--green::after{background:var(--green)}
.role-hero--gold::after{background:var(--gold)}
.role-hero-row{display:flex;align-items:center;gap:20px;margin-top:8px}
.role-hero-ic{
  width:64px;height:64px;border-radius:18px;display:grid;place-items:center;flex-shrink:0;
  box-shadow:var(--shadow-sm);
}
.role-hero-ic--red{background:#fdecee;color:var(--red-deep)}
.role-hero-ic--green{background:var(--green-soft);color:var(--green-deep)}
.role-hero-ic--gold{background:rgba(255,208,52,.22);color:var(--gold-deep)}

/* Intro paragraph at top of each section */
.g-intro{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:20px;line-height:1.5;color:var(--green-deep);
  margin:0 0 22px;max-width:680px;text-wrap:pretty;
}

.g-block-body{display:flex;flex-direction:column;gap:20px}

/* === Steps === */
.g-steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;counter-reset:gs}
.g-step{
  display:grid;grid-template-columns:44px 1fr;gap:18px;align-items:flex-start;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md);
  padding:16px 18px;
  transition:transform .15s, box-shadow .15s, border-color .15s;
}
.g-step:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm);border-color:var(--green)}
.g-step-n{
  font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;
  width:36px;height:36px;border-radius:10px;
  background:var(--green-ink);color:var(--gold);
  display:grid;place-items:center;flex-shrink:0;
}
.g-step-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.g-step-t{font-family:var(--display);font-size:15px;font-weight:700;color:var(--ink);letter-spacing:-.005em;line-height:1.35;text-wrap:pretty}
.g-step-d{font-size:13px;color:var(--ink-2);line-height:1.55;text-wrap:pretty}

/* === Callouts === */
.g-callout{
  display:grid;grid-template-columns:32px 1fr;gap:14px;
  padding:16px 18px;border-radius:var(--r-md);
  border:1px solid;
}
.g-callout--info{background:#eaf2fc;border-color:#b8d0ee;color:#143f80}
.g-callout--info .gc-ic{background:#1f5fbf;color:#fff}
.g-callout--tip{background:#fff7df;border-color:#f1d97a;color:#7a5a00}
.g-callout--tip .gc-ic{background:#b88600;color:#fff}
.g-callout--warning{background:#fff7df;border-color:#f1d97a;color:#7a5a00}
.g-callout--warning .gc-ic{background:#b88600;color:#fff}
.g-callout--danger{background:#fdecee;border-color:#f4b5bb;color:#8a1418}
.g-callout--danger .gc-ic{background:#cf2126;color:#fff}
.gc-ic{
  width:32px;height:32px;border-radius:10px;
  display:grid;place-items:center;flex-shrink:0;
}
.gc-body{display:flex;flex-direction:column;gap:6px;min-width:0}
.gc-title{font-family:var(--display);font-size:14px;font-weight:700;letter-spacing:-.005em;color:inherit;text-wrap:pretty}
.gc-text{font-size:14px;line-height:1.55;color:inherit;text-wrap:pretty}
.gc-text strong{color:inherit;font-weight:700}

/* === Admin mock === */
.g-mock{margin:6px 0;display:flex;flex-direction:column;gap:8px}
.gm-frame{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md);
  overflow:hidden;box-shadow:var(--shadow-sm);
}
.gm-bar{
  display:flex;align-items:center;gap:8px;padding:10px 14px;background:#f3eedf;border-bottom:1px solid var(--line);
}
.gm-dot{width:10px;height:10px;border-radius:50%;background:#cf2126;flex-shrink:0}
.gm-dot:nth-child(2){background:#ffb020}
.gm-dot:nth-child(3){background:#0B7A3B}
.gm-url{margin-left:6px;font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.04em}
.gm-shell{display:grid;grid-template-columns:180px 1fr;min-height:280px}
.gm-side{background:var(--green-ink);color:#cfe9d8;padding:16px 0}
.gm-brand{padding:0 18px 12px;font-family:var(--display);font-weight:800;font-size:13px;color:var(--gold);letter-spacing:.04em;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:8px}
.gm-side ul{list-style:none;padding:0;margin:0}
.gm-side li{
  display:flex;align-items:center;gap:10px;padding:9px 18px;font-family:var(--body);font-size:12px;color:rgba(255,255,255,.7);letter-spacing:0;
  border-left:3px solid transparent;cursor:default;
}
.gm-side li.on{background:rgba(255,208,52,.1);color:#fff;border-left-color:var(--gold);font-weight:600}
.gm-side-dot{width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0;opacity:.6}
.gm-side li.on .gm-side-dot{background:var(--gold);opacity:1}
.gm-main{padding:18px 22px;background:#fafaf7;display:flex;flex-direction:column;gap:14px}
.gm-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--line)}
.gm-head h4{font-family:var(--display);font-size:15px;font-weight:700;margin:0;color:var(--ink);letter-spacing:-.01em}
.gm-btn{
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  padding:7px 12px;border-radius:6px;background:var(--green);color:#fff;
}
.gm-content{flex:1;display:flex;flex-direction:column;gap:10px}

/* Mock — table */
.gm-table{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.gm-row{display:grid;grid-template-columns:1.2fr 1.4fr 2fr 1fr;gap:14px;padding:9px 12px;background:#fff;font-size:12px;color:var(--ink-2);align-items:center}
.gm-row--head{background:#f1ece0;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}
.gm-tag{padding:3px 8px;border-radius:4px;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.06em;text-align:center;width:fit-content;justify-self:start}
.gm-tag.ok{background:#e6f4ec;color:var(--green-deep)}
.gm-tag.warn{background:#fff7df;color:#7a5a00}
.gm-tag.err{background:#fdecee;color:#8a1418}

/* Mock — form */
.gm-form{display:flex;flex-direction:column;gap:10px}
.gm-field{display:flex;flex-direction:column;gap:4px}
.gm-field label{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700}
.gm-input{padding:8px 11px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:12px;color:var(--ink);font-family:var(--body)}
.gm-input--img{background:repeating-linear-gradient(45deg,#f7f1e3,#f7f1e3 6px,#ede4d3 6px,#ede4d3 12px);color:var(--muted);font-family:var(--mono);font-size:11px;letter-spacing:.04em}
.gm-input--ta{min-height:48px;font-family:var(--body)}
.gm-input--mono{font-family:var(--mono);font-size:11px;letter-spacing:.04em}
.gm-field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* Mock — live */
.gm-live{display:flex;flex-direction:column;gap:12px}
.gm-live-toggle{padding:14px;border-radius:8px;background:var(--cream);font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--muted);display:flex;align-items:center;gap:10px}
.gm-live-toggle--on{background:#fdecee;color:#8a1418}
.gm-live-pulse{width:8px;height:8px;border-radius:50%;background:#cf2126;box-shadow:0 0 0 0 rgba(207,33,38,.6);animation:gmpulse 1.8s infinite}
@keyframes gmpulse{0%{box-shadow:0 0 0 0 rgba(207,33,38,.6)}70%{box-shadow:0 0 0 10px rgba(207,33,38,0)}100%{box-shadow:0 0 0 0 rgba(207,33,38,0)}}
.gm-live-msgs{display:flex;flex-direction:column;gap:6px}
.gm-live-msg{padding:8px 12px;border:1px solid var(--line);border-radius:6px;font-size:12px;color:var(--muted);background:#fff;font-family:var(--body)}
.gm-live-msg.on{background:var(--green-soft);border-color:var(--green);color:var(--green-deep);font-weight:600}

.g-mock figcaption{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--muted);line-height:1.5;text-wrap:pretty;padding:0 4px}

/* === Tables === */
.g-table-wrap{display:flex;flex-direction:column;gap:8px;overflow-x:auto}
.g-table-cap{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}
.g-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;font-size:13px;color:var(--ink-2);min-width:480px}
.g-table th{background:var(--cream);font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);font-weight:700;padding:11px 14px;text-align:left;border-bottom:1px solid var(--line)}
.g-table td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.5}
.g-table tr:last-child td{border-bottom:0}
.g-table tbody tr:hover{background:var(--cream-warm)}

/* === Checklist === */
.g-checklist{
  background:linear-gradient(135deg,var(--cream),var(--cream-warm));
  border:1px solid var(--line);border-radius:var(--r-md);
  padding:18px 22px;display:flex;flex-direction:column;gap:10px;
}
.g-checklist-h{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);font-weight:700}
.g-checklist ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.g-checklist li{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--ink-2);line-height:1.55}
.g-check-box{
  width:20px;height:20px;border-radius:5px;border:1.5px solid var(--green);background:#fff;
  display:grid;place-items:center;color:var(--green);flex-shrink:0;margin-top:1px;
}

/* === Shortcuts === */
.g-shortcuts{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.g-sc{
  display:flex;align-items:center;gap:14px;padding:12px 14px;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md);
}
.g-sc kbd{
  font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.04em;
  padding:5px 10px;border-radius:5px;
  background:var(--green-ink);color:var(--gold);
  border:1px solid var(--green-deep);
  box-shadow:0 1px 0 var(--green-deep);
  flex-shrink:0;
}
.g-sc span{font-size:13px;color:var(--ink-2);line-height:1.4}
@media (max-width:600px){.g-shortcuts{grid-template-columns:1fr}}

/* === Key/Value list === */
.g-kv{margin:0;padding:0;display:flex;flex-direction:column;gap:0;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.g-kv-row{display:grid;grid-template-columns:200px 1fr;gap:0;border-bottom:1px solid var(--line)}
.g-kv-row:last-child{border-bottom:0}
.g-kv-row dt{padding:12px 16px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700;background:var(--cream);border-right:1px solid var(--line);align-self:stretch;display:flex;align-items:center}
.g-kv-row dd{padding:12px 16px;margin:0;font-size:14px;color:var(--ink);line-height:1.5;font-family:var(--body)}
@media (max-width:600px){.g-kv-row{grid-template-columns:1fr}.g-kv-row dt{border-right:0;border-bottom:1px solid var(--line)}}

/* === Related === */
.g-related{display:flex;flex-direction:column;gap:10px;padding-top:8px;border-top:1px dashed var(--line)}
.g-related-lab{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-weight:700}
.g-related-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.g-related-link{
  display:flex;align-items:center;gap:14px;padding:14px 16px;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md);
  text-decoration:none;transition:all .15s;
}
.g-related-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--gold)}
.grl-arrow{
  width:30px;height:30px;border-radius:8px;background:var(--cream);color:var(--green-deep);
  display:grid;place-items:center;flex-shrink:0;transition:all .15s;
}
.g-related-link:hover .grl-arrow{background:var(--gold);color:var(--green-ink)}
.grl-eyebrow{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}
.grl-t{display:block;font-family:var(--display);font-size:14px;font-weight:600;color:var(--ink);letter-spacing:-.005em;margin-top:2px}
@media (max-width:600px){.g-related-grid{grid-template-columns:1fr}}

/* Empty state for roles without content yet */
.g-empty{padding:48px;text-align:center;background:linear-gradient(135deg,var(--cream-warm),var(--cream));border:1px dashed var(--line-2);border-radius:var(--r-lg);display:flex;flex-direction:column;align-items:center;gap:14px}
.g-empty p{color:var(--ink-2);margin:0}

@media (max-width:760px){
  .gm-shell{grid-template-columns:1fr}
  .gm-side{display:flex;overflow-x:auto;padding:10px 0}
  .gm-side ul{display:flex;flex-direction:row;gap:0}
  .gm-side li{border-left:0;border-bottom:3px solid transparent;white-space:nowrap}
  .gm-side li.on{border-left:0;border-bottom-color:var(--gold)}
  .gm-brand{border-bottom:0;padding-bottom:0}
  .gm-row{grid-template-columns:1fr 1fr;gap:8px;font-size:11px}
  .gm-row span:nth-child(n+3){grid-column:span 2}
  .gm-row--head{display:none}
}

/* ============ Guides — hero compactor + print button + print styles ============ */
.smib-page-hero--guides { padding: 56px 0 44px; }
.smib-page-hero--guides .smib-page-hero-inner { grid-template-columns: 1fr; }
.smib-page-hero--guides h1 { font-size: clamp(34px, 4.4vw, 60px); line-height: 1.05; letter-spacing: -.025em; }
.smib-page-hero--guides .lead { max-width: 820px; font-size: 16px; margin-top: 18px; }
.smib-page-hero--guides .smib-page-hero-pills { margin-top: 18px; }

/* Sidebar print button (guides hub + role pages) */
.smib-gs-print {
    display: flex; align-items: center; gap: 8px;
    width: 100%; margin: 10px 0 16px; padding: 10px 14px;
    background: var(--green-ink); color: var(--gold);
    border: 0; border-radius: 8px; cursor: pointer;
    font-family: var(--mono); font-size: 11px; letter-spacing: .14em;
    text-transform: uppercase; font-weight: 700;
    transition: background .15s, transform .15s;
}
.smib-gs-print:hover, .smib-gs-print:focus-visible {
    background: var(--green-deep); transform: translateY(-1px); outline: none;
}
.smib-gs-print svg { flex-shrink: 0; }

@media print {
    /* Hide chrome */
    .smib-site-header, .smib-site-footer, .smib-guides-header-strip,
    .smib-guides-side, .smib-page-hero-pills, .crumbs, .smib-gs-back,
    .smib-gs-print, .smib-gs-helper, #wpadminbar, .smib-skip-link,
    .smib-footer-bottom, .gform_validation_errors, .smib-newsletter-form { display: none !important; }
    /* Full-width content */
    .smib-guides-grid { display: block !important; }
    .smib-guides-content { width: 100% !important; max-width: 100% !important; }
    .smib-page-hero, .smib-page-hero--guides { padding: 20px 0 14px !important; background: #fff !important; border-bottom: 1px solid #000 !important; }
    .smib-page-hero--guides::before { display: none; }
    .smib-page-hero--guides h1 { font-size: 28px !important; color: #000 !important; }
    /* Break inside block sections is bad */
    .smib-g-block, .g-block, .g-step, .g-callout, .g-mock, .g-table-wrap, .g-checklist { break-inside: avoid; page-break-inside: avoid; }
    /* Neutral tones */
    body { background: #fff !important; color: #000 !important; font-size: 11pt; }
    a { color: #000 !important; text-decoration: underline; }
    .g-step, .g-callout, .g-checklist, .g-kv, .gm-frame, .g-table { box-shadow: none !important; }
}

/* ====================================================================
   20e ÉDITION REDESIGN — additive blocks (ported from
   design_handoff_20e_edition_redesign/styles.css)
   ==================================================================== */

/* Silver / bronze tokens (used by rank pills). */
:root { --silver:#C8CCD2; --bronze:#C68A4E; }

/* ===== TopStats — 5-cell band ===== */
.smib-edition-stats-band { background: var(--paper, #FAFAF7); border-bottom: 1px solid var(--line, #E4E1D6); padding: 36px 0 60px; }
.smib-edition-stats-band h2 { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: clamp(34px, 3.6vw, 48px); font-weight: 800; letter-spacing: -.025em; color: var(--green-ink, #03331A); margin: 14px 0 36px; }
.smib-edition-stats-band h2 .it { font-family: var(--serif, 'Fraunces', serif); font-style: italic; font-weight: 300; color: var(--red, #CE1126); }
.smib-edition-stats-row { display: grid; grid-template-columns: repeat(5, 1fr); background: #fff; border: 1px solid var(--line, #E4E1D6); border-radius: var(--r-lg, 18px); overflow: hidden; }
.smib-edition-stats-row .cell { padding: 28px; border-right: 1px solid var(--line, #E4E1D6); }
.smib-edition-stats-row .cell:last-child { border-right: 0; }
.smib-edition-stats-row .v { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: 44px; font-weight: 800; letter-spacing: -.03em; color: var(--green-deep, #054D26); line-height: 1; }
.smib-edition-stats-row .l { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--muted, #6E7A75); margin-top: 10px; font-weight: 600; }
.smib-edition-stats-row .s { font-size: 12px; color: var(--ink-2, #2A3530); margin-top: 6px; }

/* ===== Overall Podium — green-ink hero ===== */
.smib-overall { background: var(--green-ink, #03331A); color: #fff; padding: 96px 0; position: relative; overflow: hidden; }
.smib-overall::before { content: ""; position: absolute; left: -120px; top: -120px; width: 400px; height: 400px; background: radial-gradient(closest-side, rgba(255,208,52,.12), transparent 70%); border-radius: 50%; pointer-events: none; }
.smib-overall::after { content: ""; position: absolute; right: -160px; bottom: -160px; width: 500px; height: 500px; background: radial-gradient(closest-side, rgba(206,17,38,.08), transparent 70%); border-radius: 50%; pointer-events: none; }
.smib-overall .head { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 56px; gap: 32px; flex-wrap: wrap; position: relative; }
.smib-overall h2 { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: clamp(48px, 5.6vw, 80px); font-weight: 800; letter-spacing: -.03em; color: #fff; margin: 14px 0 0; line-height: .95; }
.smib-overall h2 .it { font-family: var(--serif, 'Fraunces', serif); font-style: italic; font-weight: 300; color: var(--gold, #FFD034); }
.smib-overall .lead { font-size: 15px; color: #bcd6c5; max-width: 380px; line-height: 1.55; }
.smib-overall .eyebrow { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: #cfe9d8; display: inline-flex; align-items: center; gap: 8px; }
.smib-overall .eyebrow .bullet { width: 6px; height: 6px; border-radius: 50%; background: var(--gold, #FFD034); }
.smib-ov-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; position: relative; }
.smib-ov-col { position: relative; }
.smib-ov-coltitle { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: 28px; font-weight: 800; letter-spacing: -.02em; color: #fff; padding-bottom: 18px; border-bottom: 2px solid rgba(255,208,52,.4); margin-bottom: 36px; display: flex; align-items: center; gap: 14px; }
.smib-ov-coltitle .count-inline { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: #9bb6a4; font-weight: 600; margin-left: auto; }
.smib-ov-pip { width: 14px; height: 14px; border-radius: 50%; }
.smib-ov-pip.m { background: var(--green, #0B7A3B); box-shadow: 0 0 0 4px rgba(11,122,59,.25); }
.smib-ov-pip.f { background: var(--red, #CE1126); box-shadow: 0 0 0 4px rgba(206,17,38,.25); }
.smib-ov-steps { display: grid; grid-template-columns: 1.15fr 1fr 0.92fr; gap: 18px; align-items: end; }
.smib-oc { background: linear-gradient(180deg, rgba(255,255,255,.05) 0%, rgba(255,255,255,.015) 100%); border: 1px solid rgba(255,255,255,.1); border-radius: var(--r-lg, 18px); position: relative; transition: transform .2s, box-shadow .2s; display: flex; flex-direction: column; overflow: hidden; }
.smib-oc:hover { transform: translateY(-4px); box-shadow: 0 18px 50px rgba(0,0,0,.3); }
.smib-oc.r1 { min-height: 440px; border-color: rgba(255,208,52,.45); background: linear-gradient(180deg, rgba(255,208,52,.14) 0%, rgba(255,208,52,.04) 50%, rgba(255,255,255,.02) 100%); }
.smib-oc.r2 { min-height: 360px; }
.smib-oc.r3 { min-height: 300px; }
.smib-oc-rank { position: relative; padding: 18px 20px 0; display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; }
.smib-oc-rk-num { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: 64px; font-weight: 800; letter-spacing: -.05em; color: transparent; -webkit-text-stroke: 1.5px rgba(255,255,255,.3); line-height: .85; }
.smib-oc.r1 .smib-oc-rk-num { font-size: 88px; -webkit-text-stroke: 1.5px rgba(255,208,52,.55); }
.smib-oc.r2 .smib-oc-rk-num { font-size: 54px; }
.smib-oc.r3 .smib-oc-rk-num { font-size: 48px; }
.smib-oc-cup { filter: drop-shadow(0 6px 20px rgba(255,208,52,.45)); }
.smib-oc-body { padding: 8px 24px 26px; display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; flex: 1; justify-content: flex-end; }
.smib-oc.r1 .smib-oc-body { padding-bottom: 30px; }
.smib-oc-photo { background: linear-gradient(135deg, #2a3530 0%, #0c1411 100%); border-radius: 50%; overflow: hidden; display: grid; place-items: center; color: rgba(255,255,255,.35); position: relative; }
.smib-oc-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.smib-oc.r1 .smib-oc-photo { width: 120px; height: 120px; border: 2px solid rgba(255,208,52,.4); }
.smib-oc.r2 .smib-oc-photo { width: 86px; height: 86px; }
.smib-oc.r3 .smib-oc-photo { width: 72px; height: 72px; }
.smib-oc-name { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-weight: 700; color: #fff; letter-spacing: -.01em; line-height: 1.2; margin-top: 10px; font-size: 16px; }
.smib-oc.r1 .smib-oc-name { font-size: 22px; }
.smib-oc.r2 .smib-oc-name { font-size: 17px; }
.smib-oc-country { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: #cfe9d8; font-weight: 600; }
.smib-oc.r1 .smib-oc-country { font-size: 11px; letter-spacing: .2em; }
.smib-oc-time { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-weight: 800; letter-spacing: -.02em; color: var(--gold, #FFD034); font-variant-numeric: tabular-nums; line-height: 1; margin-top: 6px; font-size: 22px; }
.smib-oc.r1 .smib-oc-time { font-size: 34px; }
.smib-oc.r2 .smib-oc-time { font-size: 24px; }
.smib-oc-pace { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: #9bb6a4; font-weight: 600; }
.smib-oc.r1 .smib-oc-pace { color: var(--gold, #FFD034); font-weight: 700; }
.smib-ov-foot { margin-top: 56px; padding-top: 32px; border-top: 1px dashed rgba(255,255,255,.14); display: flex; flex-direction: column; align-items: center; gap: 18px; }
.smib-ov-foot .meta { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: #9bb6a4; font-weight: 600; text-align: center; }
.smib-results-cta { display: inline-flex; align-items: center; gap: 14px; background: var(--gold, #FFD034); color: var(--green-ink, #03331A); padding: 18px 30px; border-radius: 999px; font-family: var(--body, Inter, sans-serif); font-size: 16px; font-weight: 700; box-shadow: 0 10px 32px -8px rgba(255,208,52,.55), 0 0 0 1px rgba(255,208,52,.4); transition: transform .15s, box-shadow .15s, background .15s; text-decoration: none !important; }
.smib-results-cta:hover { background: #FFE57A; transform: translateY(-2px); color: var(--green-ink, #03331A); }
.smib-results-cta .arrow { width: 30px; height: 30px; border-radius: 50%; background: var(--green-ink, #03331A); color: var(--gold, #FFD034); display: grid; place-items: center; }
.smib-results-cta .count-badge { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; background: rgba(3,51,26,.12); padding: 4px 10px; border-radius: 999px; font-weight: 700; }

/* ===== Podium V2 — 3 scoreboard cards ===== */
.smib-podium-v2 { background: var(--paper, #FAFAF7); padding: 96px 0; }
.smib-podium-v2 .head { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 48px; gap: 32px; flex-wrap: wrap; }
.smib-podium-v2 h2 { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: clamp(40px, 4.6vw, 64px); font-weight: 800; letter-spacing: -.03em; color: var(--green-ink, #03331A); margin: 14px 0 0; line-height: .95; }
.smib-podium-v2 h2 .it { font-family: var(--serif, 'Fraunces', serif); font-style: italic; font-weight: 300; color: var(--red, #CE1126); }
.smib-podium-v2 .lead { font-size: 15px; color: var(--ink-2, #2A3530); max-width: 380px; line-height: 1.55; }
.smib-podium-v2 .eyebrow { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--muted, #6E7A75); display: inline-flex; align-items: center; gap: 8px; }
.smib-podium-v2 .eyebrow .bullet { width: 6px; height: 6px; border-radius: 50%; background: var(--red, #CE1126); }
.smib-scorecat { margin-bottom: 28px; background: #fff; border: 1px solid var(--line, #E4E1D6); border-radius: var(--r-lg, 18px); overflow: hidden; }
.smib-schead { display: flex; align-items: center; gap: 18px; padding: 24px 32px; border-bottom: 1px solid var(--line, #E4E1D6); background: linear-gradient(90deg, var(--cream, #F7F1E3) 0%, #fff 60%); }
.smib-schead .badge { width: 48px; height: 48px; border-radius: 12px; background: var(--green-ink, #03331A); color: var(--gold, #FFD034); font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-weight: 800; font-size: 22px; display: grid; place-items: center; letter-spacing: -.02em; }
.smib-scorecat.amateur .smib-schead .badge { background: var(--red, #CE1126); color: #fff; }
.smib-scorecat.cgo .smib-schead .badge { background: linear-gradient(135deg, var(--green, #0B7A3B) 33.33%, var(--gold, #FFD034) 33.33% 66.66%, var(--red, #CE1126) 66.66%); color: transparent; }
.smib-schead .tw { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.smib-schead .tw .lab { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: var(--muted, #6E7A75); font-weight: 700; }
.smib-schead .tw .ti { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: 26px; font-weight: 800; color: var(--green-ink, #03331A); letter-spacing: -.02em; }
.smib-schead .tw .ti .it { font-family: var(--serif, 'Fraunces', serif); font-style: italic; font-weight: 300; color: var(--red, #CE1126); }
.smib-schead .count { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-2, #2A3530); background: var(--green-soft, #E8F2EC); padding: 8px 14px; border-radius: 999px; font-weight: 700; }
.smib-scoresplit { display: grid; grid-template-columns: 1fr 1fr; }
.smib-scorehalf { padding: 28px 32px; position: relative; }
.smib-scorehalf:first-child { border-right: 1px solid var(--line, #E4E1D6); }
.smib-scorehalf .hl { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--muted, #6E7A75); font-weight: 700; display: flex; align-items: center; gap: 10px; margin-bottom: 20px; }
.smib-scorehalf .hl .pip { width: 8px; height: 8px; border-radius: 50%; }
.smib-scorehalf.m .hl .pip { background: var(--green, #0B7A3B); }
.smib-scorehalf.f .hl .pip { background: var(--red, #CE1126); }
.smib-scorehalf .hl strong { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: 16px; color: var(--ink, #0C1411); font-weight: 700; }
.smib-runner { display: grid; grid-template-columns: 32px 56px 1fr auto; align-items: center; gap: 16px; padding: 14px 0; border-top: 1px solid var(--line, #E4E1D6); }
.smib-runner:first-of-type { border-top: 0; }
.smib-runner .rk { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: 28px; font-weight: 800; color: var(--muted, #6E7A75); letter-spacing: -.04em; font-variant-numeric: tabular-nums; line-height: 1; }
.smib-runner.r1 .rk { color: var(--gold-deep, #C99700); }
.smib-runner.r2 .rk { color: var(--silver, #C8CCD2); filter: saturate(.4) brightness(.8); }
.smib-runner.r3 .rk { color: var(--bronze, #C68A4E); }
.smib-runner .ph { width: 56px; height: 56px; border-radius: 12px; overflow: hidden; background: linear-gradient(135deg, #2a3530, #0c1411); position: relative; display: grid; place-items: center; color: rgba(255,255,255,.4); }
.smib-runner .ph img { width: 100%; height: 100%; object-fit: cover; }
.smib-runner.r1 .ph { box-shadow: 0 0 0 2px var(--gold, #FFD034); }
.smib-runner .info { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.smib-runner .nm { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: 16px; font-weight: 700; color: var(--ink, #0C1411); letter-spacing: -.01em; line-height: 1.2; }
.smib-runner.r1 .nm { font-size: 17px; }
.smib-runner .ct { display: inline-flex; align-items: center; gap: 6px; font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted, #6E7A75); font-weight: 600; }
.smib-runner .tm { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: 22px; font-weight: 800; color: var(--green-ink, #03331A); letter-spacing: -.02em; font-variant-numeric: tabular-nums; line-height: 1; text-align: right; }
.smib-runner.r1 .tm { color: var(--red, #CE1126); }
.smib-runner .tm .pace { display: block; font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 9px; letter-spacing: .18em; text-transform: uppercase; color: var(--muted, #6E7A75); font-weight: 600; margin-top: 4px; }

/* ===== StatsX — 3 analysis cards ===== */
.smib-statsx { padding: 80px 0; background: var(--cream-warm, #FBF6E9); position: relative; overflow: hidden; }
.smib-statsx::before { content: ""; position: absolute; right: -200px; top: -200px; width: 500px; height: 500px; background: radial-gradient(closest-side, rgba(206,17,38,.05), transparent 70%); border-radius: 50%; }
.smib-statsx .head { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 36px; gap: 32px; flex-wrap: wrap; position: relative; }
.smib-statsx h2 { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: clamp(34px, 3.6vw, 48px); font-weight: 800; letter-spacing: -.025em; color: var(--green-ink, #03331A); margin: 14px 0 0; }
.smib-statsx h2 .it { font-family: var(--serif, 'Fraunces', serif); font-style: italic; font-weight: 300; color: var(--red, #CE1126); }
.smib-statsx .lead { font-size: 15px; color: var(--ink-2, #2A3530); max-width: 380px; line-height: 1.55; }
.smib-statsx .eyebrow { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--muted, #6E7A75); display: inline-flex; align-items: center; gap: 8px; }
.smib-statsx .eyebrow .bullet { width: 6px; height: 6px; border-radius: 50%; background: var(--red, #CE1126); }
.smib-statsx-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 18px; position: relative; }
.smib-sx-card { background: #fff; border: 1px solid var(--line, #E4E1D6); border-radius: var(--r-lg, 18px); padding: 28px; display: flex; flex-direction: column; gap: 16px; }
.smib-sx-card .h { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; }
.smib-sx-card .h .lab { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--muted, #6E7A75); font-weight: 600; }
.smib-sx-card .h .ico { width: 36px; height: 36px; border-radius: 10px; background: var(--green-soft, #E8F2EC); display: grid; place-items: center; color: var(--green-deep, #054D26); }
.smib-sx-card .v { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: 64px; font-weight: 800; letter-spacing: -.04em; color: var(--green-ink, #03331A); line-height: 1; }
.smib-sx-card .v .unit { font-size: 24px; color: var(--muted, #6E7A75); font-weight: 600; margin-left: 6px; letter-spacing: -.02em; }
.smib-sx-card .sub { font-size: 13px; color: var(--ink-2, #2A3530); line-height: 1.5; }
.smib-sx-card .sub strong { color: var(--ink, #0C1411); font-weight: 700; }
.smib-sx-card.split .splitbar { display: flex; height: 10px; border-radius: 999px; overflow: hidden; background: var(--line, #E4E1D6); margin-top: 4px; }
.smib-sx-card.split .splitbar .m { background: var(--green, #0B7A3B); }
.smib-sx-card.split .splitbar .f { background: var(--red, #CE1126); }
.smib-sx-card.split .splitlabels { display: flex; justify-content: space-between; font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted, #6E7A75); font-weight: 600; margin-top: 8px; }
.smib-sx-card.split .splitlabels strong { color: var(--ink, #0C1411); font-weight: 700; font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: 14px; letter-spacing: -.01em; margin-left: 6px; }
.smib-sx-card.split .splitlabels .dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.smib-sx-card.split .splitlabels .dot.m { background: var(--green, #0B7A3B); }
.smib-sx-card.split .splitlabels .dot.f { background: var(--red, #CE1126); }
.smib-sx-card.age .agebar { position: relative; height: 36px; margin-top: 6px; }
.smib-sx-card.age .agebar .track { position: absolute; left: 0; right: 0; top: 50%; height: 4px; background: var(--line, #E4E1D6); border-radius: 999px; transform: translateY(-50%); }
.smib-sx-card.age .agebar .fill { position: absolute; top: 50%; height: 4px; background: linear-gradient(90deg, var(--green, #0B7A3B), var(--gold, #FFD034), var(--red, #CE1126)); border-radius: 999px; transform: translateY(-50%); left: 6%; right: 18%; }
.smib-sx-card.age .agebar .tick { position: absolute; top: 50%; width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 2px solid var(--green-deep, #054D26); transform: translate(-50%, -50%); }
.smib-sx-card.age .agebar .tick.avg { background: var(--gold, #FFD034); border-color: var(--gold-deep, #C99700); width: 18px; height: 18px; }
.smib-sx-card.age .ageticks { display: flex; justify-content: space-between; font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 10px; letter-spacing: .16em; color: var(--muted, #6E7A75); font-weight: 600; margin-top: 6px; }
.smib-sx-card.age .ageticks strong { color: var(--ink, #0C1411); font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: 14px; letter-spacing: -.01em; }

/* ===== Essentiel — 4-paragraph race recap ===== */
.smib-essentiel { background: var(--paper, #FAFAF7); padding: 80px 0; border-top: 1px solid var(--line, #E4E1D6); }
.smib-essentiel .container { display: grid; grid-template-columns: 1fr 2fr; gap: 64px; align-items: start; }
.smib-essentiel h2 { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: clamp(32px, 3.4vw, 44px); font-weight: 800; letter-spacing: -.025em; color: var(--green-ink, #03331A); margin: 14px 0 0; line-height: 1; }
.smib-essentiel h2 .it { font-family: var(--serif, 'Fraunces', serif); font-style: italic; font-weight: 300; color: var(--red, #CE1126); }
.smib-essentiel .eyebrow { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--muted, #6E7A75); display: inline-flex; align-items: center; gap: 8px; }
.smib-essentiel .eyebrow .bullet { width: 6px; height: 6px; border-radius: 50%; background: var(--red, #CE1126); }
.smib-essentiel .col p { font-size: 15px; color: var(--ink-2, #2A3530); line-height: 1.7; }
.smib-essentiel .col p strong { color: var(--ink, #0C1411); font-weight: 700; }
.smib-essentiel .col p + p { margin-top: 14px; }

/* Responsive ≤1023 ≤767 */
@media (max-width: 1023px) {
    .smib-edition-stats-row { grid-template-columns: repeat(2, 1fr); }
    .smib-edition-stats-row .cell:nth-child(2n) { border-right: 0; }
    .smib-ov-grid { grid-template-columns: 1fr; }
    .smib-statsx-grid { grid-template-columns: 1fr 1fr; }
    .smib-scoresplit { grid-template-columns: 1fr; }
    .smib-scorehalf:first-child { border-right: 0; border-bottom: 1px solid var(--line, #E4E1D6); }
    .smib-essentiel .container { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 767px) {
    .smib-edition-stats-row { grid-template-columns: 1fr; }
    .smib-edition-stats-row .cell { border-right: 0; border-bottom: 1px solid var(--line, #E4E1D6); }
    .smib-ov-steps { grid-template-columns: 1fr; }
    .smib-statsx-grid { grid-template-columns: 1fr; }
}

/* ====================================================================
   SMIB · /resultats-<year>/ — Tous les classements (handoff Phase 2)
   ==================================================================== */

/* Compact hero variant */
.results-hero { padding: 48px 0 40px; background: linear-gradient(180deg, var(--cream-warm, #FBF6E9), var(--paper, #FAFAF7)); border-bottom: 1px solid var(--line, #E4E1D6); position: relative; overflow: hidden; }
.results-hero::before { content: ""; position: absolute; right: -100px; top: -100px; width: 380px; height: 380px; background: radial-gradient(closest-side, rgba(11,122,59,.06), transparent 70%); border-radius: 50%; pointer-events: none; }
.results-hero .smib-container { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; flex-wrap: wrap; }
.results-hero .crumbs { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--muted, #6E7A75); margin-bottom: 14px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.results-hero .crumbs a { color: var(--muted, #6E7A75); text-decoration: none; }
.results-hero .crumbs a:hover { color: var(--green-ink, #03331A); }
.results-hero .crumbs .sep { color: var(--line, #E4E1D6); }
.results-hero h1 { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: clamp(40px, 5.6vw, 80px); font-weight: 800; letter-spacing: -.035em; line-height: .95; margin: 0; color: var(--green-ink, #03331A); text-wrap: balance; }
.results-hero h1 .it { font-family: var(--serif, 'Fraunces', serif); font-style: italic; font-weight: 300; color: var(--red, #CE1126); }
.results-hero .editsel { display: flex; flex-direction: column; gap: 10px; padding-bottom: 8px; }
.results-hero .editsel .lab { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--muted, #6E7A75); font-weight: 700; }
.results-hero .editsel .pills { display: flex; gap: 6px; flex-wrap: wrap; }
.results-hero .editsel .pills a { padding: 10px 14px; border-radius: 999px; border: 1px solid var(--line, #E4E1D6); background: #fff; font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-2, #2A3530); font-weight: 700; text-decoration: none; transition: all .12s; }
.results-hero .editsel .pills a:hover { border-color: var(--green-deep, #054D26); color: var(--green-deep, #054D26); }
.results-hero .editsel .pills a.on { background: var(--green-ink, #03331A); color: #fff; border-color: var(--green-ink, #03331A); }
.results-hero .editsel .pills a.on .y { color: var(--gold, #FFD034); margin-left: 6px; }
.results-hero .editsel .pills a .y { color: var(--muted, #6E7A75); margin-left: 6px; }

/* Podium summary strip — green band, top 3 H + F */
.podium-strip { background: var(--green-ink, #03331A); color: #fff; padding: 36px 0; position: relative; overflow: hidden; }
.podium-strip::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, var(--green, #0B7A3B) 0%, var(--green, #0B7A3B) 33%, var(--gold, #FFD034) 33%, var(--gold, #FFD034) 66%, var(--red, #CE1126) 66%, var(--red, #CE1126) 100%); }
.podium-strip .smib-container { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.podium-strip .ps-col h3 { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--gold, #FFD034); margin: 0 0 16px; font-weight: 700; display: flex; align-items: center; gap: 10px; }
.podium-strip .ps-col h3 .pip { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.podium-strip .ps-col.m h3 .pip { background: var(--green, #0B7A3B); }
.podium-strip .ps-col.f h3 .pip { background: var(--red, #CE1126); }
.podium-strip .ps-list { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; }
.podium-strip .ps-card { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: var(--r-md, 12px); padding: 14px 16px; display: flex; align-items: center; gap: 12px; position: relative; }
.podium-strip .ps-card.r1 { border-color: rgba(255,208,52,.4); background: rgba(255,208,52,.08); }
.podium-strip .ps-card .rk { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: 30px; font-weight: 800; letter-spacing: -.04em; color: rgba(255,255,255,.3); line-height: 1; }
.podium-strip .ps-card.r1 .rk { color: var(--gold, #FFD034); }
.podium-strip .ps-card.r2 .rk { color: var(--silver, #C0C5C9); }
.podium-strip .ps-card.r3 .rk { color: var(--bronze, #CD7F32); }
.podium-strip .ps-card .info { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1; }
.podium-strip .ps-card .nm { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: 13px; font-weight: 700; color: #fff; letter-spacing: -.01em; line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.podium-strip .ps-card .ct { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 9px; letter-spacing: .16em; text-transform: uppercase; color: #9bb6a4; display: flex; align-items: center; gap: 6px; }
.podium-strip .ps-card .tm { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: 15px; font-weight: 800; letter-spacing: -.02em; color: var(--gold, #FFD034); font-variant-numeric: tabular-nums; line-height: 1; }
.podium-strip .ps-card.r1 .tm { font-size: 17px; }

/* Filter / search bar */
.filters { padding: 32px 0 24px; background: var(--paper, #FAFAF7); border-bottom: 1px solid var(--line, #E4E1D6); }
.filters .smib-container { display: flex; flex-direction: column; gap: 18px; }
.filters .f-row { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.filters .f-search { flex: 1; min-width: 260px; display: flex; align-items: center; gap: 10px; background: #fff; border: 1.5px solid var(--line, #E4E1D6); border-radius: var(--r-md, 12px); padding: 12px 16px; transition: border-color .15s; cursor: text; }
.filters .f-search:focus-within { border-color: var(--green-deep, #054D26); }
.filters .f-search input { flex: 1; border: 0; outline: 0; background: transparent; font-family: var(--body, 'Inter', sans-serif); font-size: 15px; color: var(--ink, #0C1411); }
.filters .f-select { display: flex; align-items: center; gap: 8px; background: #fff; border: 1.5px solid var(--line, #E4E1D6); border-radius: var(--r-md, 12px); padding: 10px 14px; font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink, #0C1411); font-weight: 700; cursor: pointer; }
.filters .f-select .lab { color: var(--muted, #6E7A75); font-weight: 600; margin-right: 6px; }
.filters .f-select select { border: 0; outline: 0; background: transparent; font: inherit; color: inherit; text-transform: uppercase; cursor: pointer; -webkit-appearance: none; appearance: none; padding-right: 18px; }
.filters .f-tabs { display: inline-flex; background: #fff; border: 1.5px solid var(--line, #E4E1D6); border-radius: 999px; padding: 3px; gap: 0; }
.filters .f-tabs a { padding: 9px 16px; border-radius: 999px; font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted, #6E7A75); font-weight: 700; text-decoration: none; display: inline-flex; align-items: center; }
.filters .f-tabs a.on { background: var(--green-ink, #03331A); color: #fff; }
.filters .f-tabs a .ct { margin-left: 8px; background: rgba(255,255,255,.18); padding: 2px 7px; border-radius: 999px; font-size: 9px; letter-spacing: .1em; }
.filters .f-tabs a:not(.on) .ct { background: var(--cream-warm, #FBF6E9); color: var(--ink-2, #2A3530); }
.filters .f-meta { display: flex; justify-content: space-between; align-items: center; font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted, #6E7A75); font-weight: 600; flex-wrap: wrap; gap: 8px; }
.filters .f-meta strong { color: var(--ink, #0C1411); font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-weight: 800; font-size: 14px; letter-spacing: -.01em; margin: 0 4px; }

/* Results table */
.results-section { padding: 32px 0 64px; background: var(--paper, #FAFAF7); }
.results-section .rtable { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--line, #E4E1D6); border-radius: var(--r-lg, 18px); overflow: hidden; }
.results-section .rtable thead { background: var(--green-ink, #03331A); color: #fff; }
.results-section .rtable thead th { padding: 16px 18px; text-align: left; font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 10px; letter-spacing: .22em; text-transform: uppercase; font-weight: 700; color: #cfe9d8; white-space: nowrap; }
.results-section .rtable thead th.sorted { color: var(--gold, #FFD034); }
.results-section .rtable thead th.num { text-align: right; }
.results-section .rtable thead th.col-rk { width: 80px; }
.results-section .rtable thead th.col-bib { width: 130px; }
.results-section .rtable thead th.col-country { width: 170px; }
.results-section .rtable thead th.col-cat { width: 160px; }
.results-section .rtable thead th.col-gen { width: 90px; }
.results-section .rtable thead th.col-time { width: 140px; text-align: right; }
.results-section .rtable tbody tr { border-top: 1px solid var(--line, #E4E1D6); transition: background .12s; }
.results-section .rtable tbody tr:hover { background: var(--cream-warm, #FBF6E9); }
.results-section .rtable tbody tr.podium { background: linear-gradient(90deg, rgba(255,208,52,.06), transparent 40%); }
.results-section .rtable tbody tr.podium:hover { background: linear-gradient(90deg, rgba(255,208,52,.12), var(--cream-warm, #FBF6E9)); }
.results-section .rtable tbody td { padding: 14px 18px; font-size: 14px; color: var(--ink, #0C1411); vertical-align: middle; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.results-section .rtable td.col-rk { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-weight: 800; font-size: 18px; letter-spacing: -.02em; color: var(--ink-2, #2A3530); font-variant-numeric: tabular-nums; }
.results-section .rtable tr.r1 td.col-rk { color: var(--gold-deep, #C99700); }
.results-section .rtable tr.r2 td.col-rk { color: #8a8e94; }
.results-section .rtable tr.r3 td.col-rk { color: var(--bronze, #CD7F32); }
.results-section .rtable td.col-rk .medal { display: inline-block; margin-right: 6px; width: 22px; height: 22px; border-radius: 50%; background: var(--gold, #FFD034); color: var(--green-ink, #03331A); font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-size: 12px; line-height: 22px; text-align: center; font-weight: 800; vertical-align: 1px; }
.results-section .rtable tr.r2 td.col-rk .medal { background: var(--silver, #C0C5C9); }
.results-section .rtable tr.r3 td.col-rk .medal { background: var(--bronze, #CD7F32); color: #fff; }
.results-section .rtable td.col-bib { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 12px; letter-spacing: .06em; color: var(--ink-2, #2A3530); font-weight: 600; }
.results-section .rtable td.col-name { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-weight: 700; font-size: 15px; letter-spacing: -.01em; }
.results-section .rtable td.col-country { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-2, #2A3530); font-weight: 600; }
.results-section .rtable td.col-country .flag-svg { display: inline-block; margin-right: 10px; vertical-align: -2px; }
.results-section .rtable td.col-cat .badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; background: rgba(11,122,59,.1); color: var(--green-deep, #054D26); }
.results-section .rtable td.col-cat .badge.amateur { background: var(--cream-warm, #FBF6E9); color: var(--gold-deep, #C99700); }
.results-section .rtable td.col-cat .badge.cgo { background: rgba(206,17,38,.08); color: var(--red-deep, #8E0A18); }
.results-section .rtable td.col-gen { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-2, #2A3530); font-weight: 700; }
.results-section .rtable td.col-gen .pip { display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: 8px; vertical-align: 1px; }
.results-section .rtable td.col-gen.m .pip { background: var(--green, #0B7A3B); }
.results-section .rtable td.col-gen.f .pip { background: var(--red, #CE1126); }
.results-section .rtable td.col-time { font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-weight: 800; font-size: 16px; letter-spacing: -.02em; color: var(--green-ink, #03331A); font-variant-numeric: tabular-nums; text-align: right; }
.results-section .rtable tr.r1 td.col-time { color: var(--red, #CE1126); }

/* Pagination */
.rpager { display: flex; justify-content: space-between; align-items: center; margin-top: 24px; gap: 14px; flex-wrap: wrap; }
.rpager .pginfo { font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted, #6E7A75); font-weight: 600; }
.rpager .pginfo strong { color: var(--ink, #0C1411); font-family: var(--display, 'Bricolage Grotesque', sans-serif); font-weight: 800; font-size: 14px; letter-spacing: -.01em; }
.rpager .pgctl { display: inline-flex; align-items: center; gap: 4px; }
.rpager .pgctl a { width: 38px; height: 38px; border-radius: 8px; border: 1px solid var(--line, #E4E1D6); background: #fff; font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 13px; font-weight: 700; color: var(--ink-2, #2A3530); text-decoration: none; cursor: pointer; transition: all .12s; display: grid; place-items: center; }
.rpager .pgctl a:hover { border-color: var(--green-deep, #054D26); color: var(--green-deep, #054D26); }
.rpager .pgctl a.on { background: var(--green-ink, #03331A); color: #fff; border-color: var(--green-ink, #03331A); }
.rpager .pgctl .dots { display: inline-grid; place-items: center; width: 26px; color: var(--muted, #6E7A75); font-family: var(--mono, 'JetBrains Mono', monospace); }

/* Responsive */
@media (max-width: 1023px) {
    .results-hero h1 { font-size: clamp(36px, 7vw, 56px); }
    .podium-strip .smib-container { grid-template-columns: 1fr; gap: 28px; }
    .podium-strip .ps-list { grid-template-columns: 1fr; }
    .results-section .rtable thead th.col-bib,
    .results-section .rtable td.col-bib,
    .results-section .rtable thead th.col-cat,
    .results-section .rtable td.col-cat { display: none; }
}
@media (max-width: 767px) {
    .results-section .rtable thead th.col-country,
    .results-section .rtable td.col-country { display: none; }
    .results-section .rtable thead th { padding: 12px 10px; font-size: 9px; letter-spacing: .15em; }
    .results-section .rtable tbody td { padding: 10px; font-size: 13px; }
}

/* "Tout savoir sur la course" summary table (page-la-course.php) */
.smib-course-summary { margin: 0 0 48px; }
.smib-course-summary table { width: 100%; max-width: 720px; border-collapse: collapse; background: #fff; border: 1px solid var(--line, #E4E1D6); border-radius: var(--r-md, 12px); overflow: hidden; }
.smib-course-summary tr { border-top: 1px solid var(--line, #E4E1D6); }
.smib-course-summary tr:first-child { border-top: 0; }
.smib-course-summary th { text-align: left; padding: 14px 18px; font-family: var(--mono, 'JetBrains Mono', monospace); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted, #6E7A75); font-weight: 700; width: 200px; vertical-align: middle; background: var(--cream-warm, #FBF6E9); }
.smib-course-summary td { padding: 14px 18px; font-family: var(--body, 'Inter', sans-serif); font-size: 15px; color: var(--ink, #0C1411); vertical-align: middle; }
@media (max-width: 640px) {
    .smib-course-summary th, .smib-course-summary td { display: block; width: auto; padding: 10px 14px; }
    .smib-course-summary th { padding-bottom: 0; background: transparent; color: var(--green-deep, #054D26); }
    .smib-course-summary td { padding-top: 4px; }
}
