:root {
    --nh-primary: #008000;
    --nh-primary-dark: #005f2b;
    --nh-primary-deep: #003823;
    --nh-primary-ink: #00291b;
    --nh-lime: #c8f27a;
    --nh-gold: #e4b94f;
    --nh-ink: #0b1f15;
    --nh-body: #34483d;
    --nh-muted: #4b5e54;
    --nh-surface: #ffffff;
    --nh-soft: #f3faf4;
    --nh-soft-2: #eaf6ed;
    --nh-border: #dcebdd;
    --nh-shadow: 0 24px 70px rgba(0, 61, 35, 0.14);
    --nh-shadow-soft: 0 14px 42px rgba(0, 61, 35, 0.08);
    --nh-radius: 26px;
    --nh-container: 1220px;
}

.nh-header,
.nh-home,
.nh-about,
.nh-programs,
.nh-news,
.nh-agenda,
.nh-offers,
.nh-resources,
.nh-contact,
.nh-join,
.nh-footer {
    position: relative;
    left: auto;
    width: 100%;
    max-width: none;
    margin: 0;
    clear: both;
    float: none;
    font-family: inherit;
    color: var(--nh-ink);
}

/*
 * Mise en page pleine largeur automatique pour Blocksy et Gutenberg.
 * Le plugin ne dépend plus d'un réglage manuel de page et ne peut plus être
 * enfermé dans une colonne, une barre latérale ou un conteneur étroit.
 */
body.nh-core-custom-page .hero-section,
body.nh-core-custom-page .page-title,
body.nh-core-custom-page .ct-page-title,
body.nh-core-custom-page .ct-sidebar {
    display: none !important;
}

body.nh-core-custom-page #main,
body.nh-core-custom-page .site-main,
body.nh-core-custom-page .content-area,
body.nh-core-custom-page .ct-container,
body.nh-core-custom-page .ct-container-full,
body.nh-core-custom-page article.page,
body.nh-core-custom-page .entry-content,
body.nh-core-custom-page [data-content="normal"],
body.nh-core-custom-page [data-content="wide"] {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    grid-template-columns: minmax(0, 1fr) !important;
}

body.nh-core-custom-page .entry-content > *,
body.nh-core-custom-page .wp-block-shortcode,
body.nh-core-custom-page .wp-block-group,
body.nh-core-custom-page .wp-block-columns,
body.nh-core-custom-page .wp-block-column {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

body.nh-core-custom-page .wp-block-columns {
    display: block !important;
}

body.nh-core-custom-page .nh-header,
body.nh-core-custom-page .nh-home,
body.nh-core-custom-page .nh-about,
body.nh-core-custom-page .nh-programs,
body.nh-core-custom-page .nh-news,
body.nh-core-custom-page .nh-agenda,
body.nh-core-custom-page .nh-offers,
body.nh-core-custom-page .nh-resources,
body.nh-core-custom-page .nh-contact,
body.nh-core-custom-page .nh-join,
body.nh-core-custom-page .nh-footer {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-right: calc(50% - 50vw) !important;
    margin-left: calc(50% - 50vw) !important;
}

body.admin-bar .nh-header {
    top: 32px;
}

@media (max-width: 782px) {
    body.admin-bar .nh-header {
        top: 46px;
    }
}

.nh-home {
    color: var(--nh-ink);
}

.nh-home :where(h1, h2, h3, h4, h5, h6) {
    color: var(--nh-ink);
}

.nh-home :where(p, li, blockquote) {
    color: var(--nh-body);
}

.nh-home ::selection,
.nh-about ::selection,
.nh-programs ::selection,
.nh-news ::selection,
.nh-agenda ::selection,
.nh-offers ::selection,
.nh-resources ::selection,
.nh-contact ::selection,
.nh-join ::selection,
.nh-header ::selection,
.nh-footer ::selection {
    background: var(--nh-lime);
    color: var(--nh-primary-ink);
}

.nh-home :where(a, button):focus-visible,
.nh-about :where(a, button):focus-visible,
.nh-programs :where(a, button):focus-visible,
.nh-news :where(a, button):focus-visible,
.nh-agenda :where(a, button):focus-visible,
.nh-offers :where(a, button):focus-visible,
.nh-resources :where(a, button):focus-visible,
.nh-contact :where(a, button):focus-visible,
.nh-join :where(a, button):focus-visible,
.nh-header :where(a, button):focus-visible,
.nh-footer :where(a, button):focus-visible {
    outline: 3px solid var(--nh-gold);
    outline-offset: 4px;
}

.nh-container {
    width: min(calc(100% - 40px), var(--nh-container));
    margin-inline: auto;
}

.nh-home *,
.nh-about *,
.nh-programs *,
.nh-news *,
.nh-agenda *,
.nh-offers *,
.nh-resources *,
.nh-contact *,
.nh-join *,
.nh-header *,
.nh-footer * {
    box-sizing: border-box;
}

.nh-home img,
.nh-about img,
.nh-programs img,
.nh-news img,
.nh-agenda img,
.nh-offers img,
.nh-resources img,
.nh-contact img,
.nh-join img,
.nh-header img,
.nh-footer img {
    max-width: 100%;
    height: auto;
}

.nh-home a,
.nh-about a,
.nh-programs a,
.nh-news a,
.nh-agenda a,
.nh-offers a,
.nh-resources a,
.nh-contact a,
.nh-join a,
.nh-header a,
.nh-footer a,
.nh-home button,
.nh-about button,
.nh-programs button,
.nh-news button,
.nh-agenda button,
.nh-offers button,
.nh-resources button,
.nh-contact button,
.nh-join button,
.nh-header button {
    -webkit-tap-highlight-color: transparent;
}

.nh-eyebrow,
.nh-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    color: var(--nh-primary);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.nh-eyebrow::before {
    width: 30px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    content: "";
}

.nh-eyebrow--light {
    color: #d8ffd8;
}

.nh-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 50px;
    padding: 13px 23px;
    border: 1px solid var(--nh-primary);
    border-radius: 999px;
    background: var(--nh-primary);
    color: #fff;
    font-size: .94rem;
    font-weight: 850;
    line-height: 1.1;
    text-decoration: none;
    transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
}

.nh-button:hover,
.nh-button:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 15px 32px rgba(0, 96, 44, .24);
    color: #fff;
}

.nh-button--bright {
    border-color: var(--nh-lime);
    background: var(--nh-lime);
    color: #123518;
}

.nh-button--bright:hover,
.nh-button--bright:focus-visible {
    color: #123518;
    box-shadow: 0 15px 34px rgba(184, 238, 99, .2);
}

.nh-button--ghost {
    border-color: rgba(0, 128, 0, .28);
    background: transparent;
    color: var(--nh-primary-dark);
}

.nh-button--ghost:hover,
.nh-button--ghost:focus-visible {
    border-color: var(--nh-primary);
    background: var(--nh-primary);
    color: #fff;
}

.nh-button--glass {
    border-color: rgba(255, 255, 255, .35);
    background: rgba(255, 255, 255, .08);
    color: #fff;
    backdrop-filter: blur(14px);
}

.nh-button--glass:hover,
.nh-button--glass:focus-visible {
    border-color: rgba(255, 255, 255, .7);
    background: rgba(255, 255, 255, .16);
}

.nh-button--light {
    border-color: #fff;
    background: #fff;
    color: var(--nh-primary-deep);
}

.nh-button--light:hover,
.nh-button--light:focus-visible {
    color: var(--nh-primary-deep);
}

.nh-button--outline-light {
    border-color: rgba(255, 255, 255, .55);
    background: transparent;
    color: #fff;
}

.nh-text-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--nh-primary);
    font-weight: 850;
    text-decoration: none;
}

.nh-text-link::after {
    content: "→";
    transition: transform .2s ease;
}

.nh-text-link:hover::after,
.nh-text-link:focus-visible::after {
    transform: translateX(4px);
}

.nh-admin-warning {
    padding: 12px;
    border: 1px solid #cc1818;
    background: #fff4f4;
    color: #7a1111;
}

/* Le contenu reste toujours lisible, même si un optimiseur retarde ou bloque le JavaScript.
   L'effet d'apparition est désormais un enrichissement visuel et non une condition d'affichage. */
[data-nh-reveal] {
    opacity: 1;
    transform: none;
}

[data-nh-reveal].is-visible {
    animation: nh-safe-reveal .72s cubic-bezier(.2,.7,.2,1) both;
}

@keyframes nh-safe-reveal {
    from { transform: translateY(22px); }
    to { transform: translateY(0); }
}

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

    [data-nh-reveal] {
        opacity: 1;
        transform: none;
    }
}

@media (max-width: 640px) {
    .nh-container {
        width: min(calc(100% - 28px), var(--nh-container));
    }
}
