/* --- Contenu principal (site public uniquement — pas l’admin) --- */
body.ggz-public-theme #main-content {
    flex: 1;
    max-width: var(--ggz-max-content);
    margin: 0 auto;
    padding: 2rem 1.25rem 3rem;
    width: 100%;
}

body.ggz-public-theme #main-content.ggz-layout-narrow {
    max-width: var(--ggz-max-narrow);
}

body.ggz-public-theme #main-content.ggz-layout-full {
    max-width: var(--ggz-max-wide);
}

/* Hero compact legacy (h1 sans .section__title) */
#main-content .ggz-page-hero h1:not(.section__title):not(.ggz-section-title) {
    font-family: var(--ggz-font-display);
    font-size: clamp(2rem, 4.5vw, 2.85rem);
    line-height: var(--ggz-line-heading);
    font-weight: 800;
    letter-spacing: -0.035em;
    margin: 0 0 0.85rem;
}

/* Hero structuré : même titre que les pages CMS (presse fiche, mentions, projets…) */
#main-content .ggz-page-hero.ggz-page-hero--structured :is(h1, h2).section__title,
#main-content .ggz-page-hero.ggz-page-hero--structured :is(h1, h2).ggz-section-title {
    font-family: var(--font-display);
    font-size: var(--ggz-type-section-title);
    line-height: 1.05;
    letter-spacing: -0.01em;
    font-weight: 400;
    text-transform: none;
    color: var(--text-bright);
    margin: 0 0 1.25rem;
}

.card {
    background: var(--ggz-bg-card-overlay);
    border-radius: var(--ggz-radius-card);
    padding: 1.5rem 1.35rem;
    margin-bottom: 1rem;
    border: 1px solid var(--ggz-border-panel);
    box-shadow: var(--ggz-shadow-card);
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.card:hover {
    border-color: rgba(255, 165, 134, 0.22);
    box-shadow: var(--ggz-shadow-card-hover);
}

.card > h3:first-child {
    margin: 0 0 0.65rem;
    font-family: var(--ggz-font-sans);
    font-size: 1.08rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ggz-text-on-dark);
}

.ggz-cta-band .ggz-cta-band__title {
    margin: 0 0 0.5rem;
    font-family: var(--ggz-font-display);
    font-size: clamp(1.35rem, 2.5vw, 1.85rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: var(--ggz-line-heading);
}

.ggz-cta-band__text {
    margin: 0 0 0.25rem;
    max-width: 40rem;
}

.muted {
    color: var(--ggz-text-meta);
    font-size: 0.9rem;
}

/* --- Hero / sections (structure proche govgenz-bull, palette charte sombre) --- */
.ggz-page-hero {
    padding: 2rem 1.35rem;
    margin-bottom: 1.25rem;
    border-radius: var(--ggz-radius-card);
    background: var(--ggz-gradient-hero);
    border: 1px solid rgba(56, 67, 88, 0.45);
    box-shadow: var(--ggz-shadow-card);
}

.ggz-page-hero--compact {
    padding: 1.5rem 1.25rem;
    margin-bottom: 1rem;
}

.ggz-page-hero h1 + .ggz-lead {
    margin-top: 0;
}

.ggz-page-hero h1 + .ggz-intro {
    margin-top: 0.45rem;
}

.ggz-page-hero--structured {
    padding: 1rem 0;
    margin-bottom: 0.5rem;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: none;
}

#main-content .ggz-page-hero.ggz-page-hero--structured {
    border-color: transparent;
    background: none;
    box-shadow: none;
    backdrop-filter: none;
}

.ggz-page-hero__inner {
    display: grid;
    gap: 0.75rem;
    align-items: center;
}

@media (min-width: 768px) {
    .ggz-page-hero--has-media .ggz-page-hero__inner {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
    }
}

.ggz-page-hero__figure {
    margin: 0;
}

.ggz-page-hero__img {
    width: 100%;
    height: auto;
    border-radius: var(--ggz-radius-card);
    display: block;
}

.ggz-page-hero__copy {
    min-width: 0;
}

.ggz-page-hero--structured .section__header {
    text-align: center;
    margin: 0;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.ggz-page-hero--structured .section__overline {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.35em;
    text-transform: none;
    color: var(--red-soft);
    margin: 0 0 1rem;
    display: inline-block;
    padding: 0.4rem 1rem;
    border: 1px solid rgba(220, 38, 38, 0.3);
    border-radius: 100px;
    background: rgba(220, 38, 38, 0.05);
}

.ggz-page-hero--structured .section__lead {
    font-family: var(--font-body);
    font-size: clamp(1rem, 1.5vw, 1.15rem);
    font-style: italic;
    font-weight: 400;
    color: var(--text-secondary);
    line-height: 1.7;
    max-width: 700px;
    margin: 0 auto;
}

.ggz-eyebrow {
    display: inline-block;
    margin: 0 0 0.5rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ggz-peach);
}

.ggz-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
    margin-top: 1.25rem;
}

.ggz-actions .btn,
.ggz-actions button {
    margin-top: 0;
}

.ggz-trust-list {
    margin: 1.25rem 0 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.ggz-trust-list li {
    padding: 0.45rem 0.75rem;
    border-radius: 999px;
    border: 1px solid rgba(56, 67, 88, 0.65);
    background: rgba(22, 30, 47, 0.55);
    font-size: 0.84rem;
    color: var(--ggz-text-meta);
}

/* Icônes/carte "Qui sommes-nous" alignées sur site_govgenz */
.cercle__icon {
    color: #fca5a5;
}

.cercle__icon img {
    width: 100%;
    height: 100%;
    display: block;
    filter: invert(83%) sepia(20%) saturate(726%) hue-rotate(302deg) brightness(102%) contrast(98%);
}

.cercle__title {
    font-family: var(--font-display);
    font-size: 1.4rem;
    text-transform: uppercase;
}

#main-content.ggz-main-shell :is(article.wysiwyg, .ggz-shell-wysiwyg) h3.cercle__title {
    font-family: var(--font-display);
    text-transform: uppercase;
    font-size: 1.4rem;
}

.ggz-section {
    margin-bottom: 1.5rem;
}

.ggz-cards-row {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

/* --- Page d’accueil type govgenz.org (charte sombre) --- */
.ggz-home-section {
    scroll-margin-top: 5.5rem;
}

/* Intro rubrique : rendu site_govgenz (.ggz-section-*) défini dans govgenz-bridge.css */

.ggz-home-editorial-title {
    font-family: var(--ggz-font-display);
    margin-top: 0;
}

#main-content :is(article.wysiwyg, .ggz-shell-wysiwyg) .hero__inner {
    text-align: center;
}

#main-content :is(article.wysiwyg, .ggz-shell-wysiwyg) .hero__tagline {
    text-align: center;
    margin: 0 auto 3rem;
}

.ggz-source-note {
    margin: 1rem 0 0;
    font-size: 0.82rem;
}

.ggz-inline-mail {
    color: var(--ggz-peach);
    font-weight: 600;
    text-decoration: none;
    word-break: break-all;
}

.ggz-inline-mail:hover {
    text-decoration: underline;
}

.ggz-pillar-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

.ggz-pillar-card__step {
    margin: 0 0 0.65rem;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ggz-peach);
}

.ggz-pillar-card h3 {
    margin: 0 0 0.65rem;
    font-size: 1.05rem;
    font-weight: 800;
}

.ggz-checklist {
    margin: 0;
    padding-left: 1.1rem;
    font-size: 0.92rem;
    line-height: 1.55;
    color: var(--ggz-text-meta);
}

.ggz-checklist li {
    margin-bottom: 0.35rem;
}

.ggz-sector-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.85rem;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
}

.ggz-sector-card {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1rem 1.1rem;
}

.ggz-sector-card__code {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: var(--ggz-peach);
}

.ggz-sector-card__label {
    font-size: 0.92rem;
    font-weight: 600;
    line-height: 1.45;
}

.ggz-sector-card__mail {
    margin-top: auto;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--ggz-peach);
    text-decoration: none;
    word-break: break-all;
}

.ggz-sector-card__mail:hover {
    text-decoration: underline;
}

.ggz-metric-strip {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    margin-bottom: 1rem;
}

.ggz-metric {
    text-align: center;
    padding: 1.1rem 1rem;
}

.ggz-metric__value {
    margin: 0 0 0.35rem;
    font-size: 1.65rem;
    font-weight: 800;
    color: var(--ggz-peach);
}

.ggz-metric__label {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.45;
    color: var(--ggz-text-meta);
}

.ggz-contact-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    margin-top: 1rem;
}

.ggz-contact-tile h3 {
    margin: 0 0 0.45rem;
    font-size: 0.95rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ggz-contact-tile a {
    color: var(--ggz-peach);
    font-weight: 700;
    text-decoration: none;
}

.ggz-contact-tile a:hover {
    text-decoration: underline;
}

.ggz-contact-tile .muted {
    margin: 0.45rem 0 0;
    font-size: 0.86rem;
}

.ggz-cta-band__kicker {
    margin-bottom: 0.35rem;
}

/* --- Contenu éditorial (CMS) --- */
article.wysiwyg {
    line-height: var(--ggz-line-body);
}

article.wysiwyg > *:first-child {
    margin-top: 0;
}

article.wysiwyg h2:not(.section__title):not(.ggz-section-title):where(:not(.ggz-legal-prose *), :not(.ggz-editorial-prose *)),
article.wysiwyg h3:where(:not(.ggz-legal-prose *), :not(.ggz-editorial-prose *)) {
    line-height: var(--ggz-line-heading);
    margin-top: 1.5rem;
    margin-bottom: 0.65rem;
    font-weight: 800;
}

article.wysiwyg h2:not(.section__title):not(.ggz-section-title):where(:not(.ggz-legal-prose *), :not(.ggz-editorial-prose *)) {
    font-size: 1.35rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

article.wysiwyg h3 {
    font-size: 1.12rem;
}

article.wysiwyg p {
    margin: 0 0 1rem;
}

/* Pages CMS « liste programme projets » : note sur le corps (non affichée sur /projects). */
#main-content article.wysiwyg.ggz-cms-page--projects-program-note > p {
    text-align: center;
    max-width: 42rem;
    margin-left: auto;
    margin-right: auto;
}

article.wysiwyg a:not(.btn) {
    color: var(--ggz-peach);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

article.wysiwyg a:not(.btn):hover {
    color: var(--ggz-text-on-dark);
}

article.wysiwyg ul,
article.wysiwyg ol {
    padding-left: 1.35rem;
    margin: 0 0 1rem;
}

article.wysiwyg blockquote {
    margin: 1.25rem 0;
    padding: 0.85rem 1rem 0.85rem 1rem;
    border-left: 4px solid var(--ggz-peach);
    background: rgba(255, 165, 134, 0.08);
    color: var(--ggz-text-on-dark);
    font-style: normal;
}

article.wysiwyg.ggz-home-wysiwyg > .muted {
    margin-top: 1rem;
}

article.wysiwyg.ggz-home-wysiwyg section.ggz-home-section + section.ggz-home-section,
article.wysiwyg.ggz-home-wysiwyg section.cms-section + section.cms-section {
    margin-top: 2.25rem;
}

/*
 * Blocs « simplifiés » pour les éditeurs : peu de classes cms-* + insertion TinyMCE « Blocs ».
 * Les anciennes classes ggz-* du seed historique restent prises en charge.
 */
article.wysiwyg section.cms-section {
    scroll-margin-top: 5.5rem;
    margin-bottom: 1.5rem;
}

article.wysiwyg section.cms-section > header {
    margin-bottom: 1.25rem;
    max-width: 46rem;
}

article.wysiwyg .cms-kicker {
    margin: 0 0 0.35rem;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ggz-peach);
}

article.wysiwyg section.cms-section > header > h2 {
    margin: 0 0 0.65rem;
    font-family: var(--ggz-font-display);
    font-size: clamp(1.5rem, 3.2vw, 2.1rem);
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1.12;
}

article.wysiwyg .cms-lead {
    margin: 0;
    font-size: 1.02rem;
    line-height: 1.6;
}

article.wysiwyg dl.cms-metrics {
    margin: 0 0 1rem;
    padding: 0;
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}

article.wysiwyg dl.cms-metrics > div {
    margin: 0;
    padding: 1.1rem 1rem;
    text-align: center;
    background: var(--ggz-night-blue);
    border-radius: var(--ggz-radius-card);
    border: 1px solid rgba(56, 67, 88, 0.45);
    box-shadow: var(--ggz-shadow-card);
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

article.wysiwyg dl.cms-metrics > div:hover {
    border-color: rgba(255, 165, 134, 0.22);
    box-shadow: var(--ggz-shadow-card-hover);
}

article.wysiwyg dl.cms-metrics dt {
    margin: 0 0 0.35rem;
    font-size: 1.65rem;
    font-weight: 800;
    color: var(--ggz-peach);
    font-variant-numeric: tabular-nums;
}

article.wysiwyg dl.cms-metrics dd {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.45;
    color: var(--ggz-text-meta);
}

article.wysiwyg .cms-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: center;
    margin-top: 1rem;
}

article.wysiwyg .cms-actions .cms-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 0;
    padding: 0.65rem 1.35rem;
    min-height: 46px;
    border-radius: var(--ggz-radius-btn);
    font-weight: 700;
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        filter 0.2s ease,
        background-color 0.2s ease,
        border-color 0.2s ease;
}

article.wysiwyg .cms-actions .cms-btn:hover {
    filter: brightness(1.05);
}

article.wysiwyg .cms-actions .cms-btn--primary {
    background: linear-gradient(150deg, var(--ggz-peach) 0%, #ff9270 42%, #c94a3d 120%);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.22);
    box-shadow: 0 6px 20px rgba(84, 26, 62, 0.38);
}

article.wysiwyg .cms-actions .cms-btn--primary:hover {
    background: linear-gradient(150deg, #ffc4ae 0%, var(--ggz-peach) 45%, var(--ggz-bordeaux) 125%);
    box-shadow: 0 10px 28px rgba(84, 26, 62, 0.42);
    transform: translateY(-2px);
    filter: none;
}

article.wysiwyg .cms-actions .cms-btn--secondary {
    background: rgba(35, 47, 73, 0.65);
    border: 2px solid rgba(255, 165, 134, 0.55);
    color: var(--ggz-text-on-dark);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
}

article.wysiwyg .cms-actions .cms-btn--secondary:hover {
    background: rgba(35, 47, 73, 0.92);
    border-color: var(--ggz-peach);
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28);
    transform: translateY(-2px);
    filter: none;
}

/* Alertes (flash, erreurs, bandeau prévisualisation) */
.ggz-alert {
    padding: 0.85rem 1rem 0.85rem 1.1rem;
    border-radius: var(--ggz-radius-btn);
    margin-bottom: 1rem;
    font-weight: 600;
    line-height: 1.45;
    border: 1px solid transparent;
    border-left-width: 4px;
}

.ggz-alert__line + .ggz-alert__line {
    margin-top: 0.35rem;
}

.ggz-alert--success {
    background: rgba(255, 165, 134, 0.14);
    border-color: rgba(255, 165, 134, 0.35);
    border-left-color: var(--ggz-peach);
    color: var(--ggz-text-on-dark);
}

.ggz-alert--danger {
    background: rgba(213, 26, 43, 0.16);
    border-color: rgba(213, 26, 43, 0.35);
    border-left-color: var(--ggz-red-action);
    color: var(--ggz-text-on-dark);
}

.ggz-alert--info {
    background: rgba(36, 47, 73, 0.85);
    border-color: rgba(56, 67, 88, 0.65);
    border-left-color: var(--ggz-peach);
    color: var(--ggz-text-on-dark);
}

/* Compat : bandeaux hors layout (ex. anciennes vues) */
.flash {
    padding: 0.85rem 1rem 0.85rem 1.1rem;
    border-radius: var(--ggz-radius-btn);
    margin-bottom: 1rem;
    font-weight: 600;
    line-height: 1.45;
    border: 1px solid rgba(255, 165, 134, 0.35);
    border-left: 4px solid var(--ggz-peach);
    background: rgba(255, 165, 134, 0.14);
    color: var(--ggz-text-on-dark);
}

.errors {
    padding: 0.85rem 1rem 0.85rem 1.1rem;
    border-radius: var(--ggz-radius-btn);
    margin-bottom: 1rem;
    font-weight: 600;
    line-height: 1.45;
    border: 1px solid rgba(213, 26, 43, 0.35);
    border-left: 4px solid var(--ggz-red-action);
    background: rgba(213, 26, 43, 0.16);
    color: var(--ggz-text-on-dark);
}

/* --- Formulaires --- */
label {
    display: block;
    margin-top: 0.85rem;
    font-weight: 700;
    font-size: 0.88rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: rgba(250, 250, 250, 0.92);
}

input,
textarea,
select {
    width: 100%;
    max-width: 35rem;
    padding: 0.55rem 0.7rem;
    margin-top: 0.35rem;
    border-radius: 10px;
    border: 1px solid var(--ggz-blue-gray);
    background: var(--ggz-night-deep);
    color: var(--ggz-text-on-dark);
    font-family: inherit;
    font-size: 1rem;
}

select[multiple] {
    min-height: 12rem;
}

textarea {
    min-height: 8rem;
    resize: vertical;
}

/* Hors vocabulaire template (.btn--primary / .btn--ghost) — évite d’écraser FR/EN et les CTA site_govgenz */
button:not(.lang-toggle):not(.menu-toggle):not(.iti__selected-country):not(.iti__search-clear):not(.projects-program-page__pill):not(.project-fund-dialog__close):not(.project-fund-form__item-remove):not(.projects-program-show__btn):not(.projects-program-show__share-icon-btn):not(.ggz-project-cta-btn),
.btn:not(.btn--primary):not(.btn--ghost) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 1rem;
    padding: 0.65rem 1.35rem;
    min-height: 46px;
    border-radius: var(--ggz-radius-btn);
    border: none;
    background: var(--ggz-peach);
    color: var(--ggz-night-deep);
    font-weight: 800;
    cursor: pointer;
    text-decoration: none;
    font-family: inherit;
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        filter 0.2s ease,
        background-color 0.2s ease,
        border-color 0.2s ease;
}

button:not(.lang-toggle):not(.menu-toggle):not(.iti__selected-country):not(.iti__search-clear):not(.projects-program-page__pill):not(.project-fund-dialog__close):not(.project-fund-form__item-remove):not(.projects-program-show__btn):not(.projects-program-show__share-icon-btn):not(.ggz-project-cta-btn):hover,
.btn:not(.btn--primary):not(.btn--ghost):hover {
    filter: brightness(1.05);
}

.btn.btn-primary,
button.btn-primary {
    background: linear-gradient(150deg, var(--ggz-peach) 0%, #ff9270 42%, #c94a3d 120%);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.22);
    box-shadow: 0 6px 20px rgba(84, 26, 62, 0.38);
}

.btn.btn-primary:hover,
button.btn-primary:hover {
    background: linear-gradient(150deg, #ffc4ae 0%, var(--ggz-peach) 45%, var(--ggz-bordeaux) 125%);
    box-shadow: 0 10px 28px rgba(84, 26, 62, 0.42);
    transform: translateY(-2px);
    filter: none;
}

.btn.btn-secondary,
button.secondary,
.btn.secondary,
button.btn-secondary {
    background: rgba(35, 47, 73, 0.65);
    border: 2px solid rgba(255, 165, 134, 0.55);
    color: var(--ggz-text-on-dark);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
}

.btn.btn-secondary:hover,
button.secondary:hover,
.btn.secondary:hover,
button.btn-secondary:hover {
    background: rgba(35, 47, 73, 0.92);
    border-color: var(--ggz-peach);
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28);
    transform: translateY(-2px);
    filter: none;
}

button.secondary,
.btn.secondary {
    text-transform: uppercase;
}

/* CTA fort : styles dans govgenz-components.css (.ggz-btn-urgent, .btn--primary) */

/* --- Listes simples dans une carte --- */
.card ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.card ul li {
    padding: 0.65rem 0;
    border-bottom: 1px solid rgba(56, 67, 88, 0.45);
}

.card ul li:last-child {
    border-bottom: none;
}

.card ul a {
    color: var(--ggz-peach);
    font-weight: 700;
    text-decoration: none;
}

.card ul a:hover {
    text-decoration: underline;
}

/* --- Textes d’introduction & états vides --- */
.ggz-intro {
    margin: 0 0 1.25rem;
    line-height: var(--ggz-line-body);
    max-width: 42rem;
}

/* --- Fil d’Ariane --- */
.ggz-breadcrumb {
    font-size: 0.88rem;
    margin: 0 0 1rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
}

.ggz-breadcrumb a {
    color: var(--ggz-peach);
    font-weight: 600;
    text-decoration: none;
}

.ggz-breadcrumb a:hover {
    text-decoration: underline;
}

.ggz-breadcrumb__sep {
    color: var(--ggz-text-meta);
    user-select: none;
}

/* --- Article presse (fiche) --- */
.ggz-press-header {
    margin-bottom: 1.25rem;
}

.ggz-press-meta {
    margin: 0.35rem 0 0;
    font-size: 0.9rem;
    color: var(--ggz-text-meta);
}

.ggz-lead {
    margin: 1rem 0 0;
    font-family: var(--ggz-font-sans);
    font-size: clamp(1.03rem, 1.5vw, 1.18rem);
    line-height: 1.62;
    color: rgba(250, 250, 250, 0.94);
    font-weight: 500;
    max-width: 62ch;
}

.ggz-back-row {
    margin: 2rem 0 0;
    padding-top: 1rem;
    border-top: 1px solid rgba(56, 67, 88, 0.45);
}

.ggz-btn-back {
    margin-top: 0;
}

/* --- Formulaire structuré (Rejoindre, etc.) --- */
.ggz-form .ggz-field:first-child label {
    margin-top: 0;
}

.ggz-field-hint {
    margin: 0.25rem 0 0.45rem;
    font-size: 0.88rem;
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
    color: var(--ggz-text-meta);
}

.ggz-fieldset {
    border: 1px solid rgba(56, 67, 88, 0.55);
    border-radius: 14px;
    padding: 1rem 1.15rem 1.2rem;
    margin: 1.35rem 0 0;
}

.ggz-fieldset--optional {
    border-style: dashed;
}

.ggz-fieldset-legend {
    padding: 0 0.4rem;
    font-weight: 800;
    font-size: 0.78rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: rgba(250, 250, 250, 0.92);
}

.ggz-optional-tag {
    font-weight: 600;
    font-size: 0.82rem;
    letter-spacing: 0.02em;
    text-transform: none;
    color: var(--ggz-text-meta);
}

.ggz-form-actions {
    margin-top: 1.5rem;
}

.ggz-form-actions .btn,
.ggz-form-actions button {
    margin-top: 0;
}

/* Page Rejoindre — panneau formulaire (sans carte générique au survol) */
#main-content.ggz-main-shell .ggz-page-join {
    max-width: 38rem;
    margin: 0 auto;
    padding: clamp(1.35rem, 3vw, 2rem) clamp(1.35rem, 3vw, 2rem);
    border-radius: 16px;
    border: 1px solid rgba(56, 67, 88, 0.55);
    background: rgba(22, 30, 47, 0.72);
    box-shadow: 0 12px 44px rgba(0, 0, 0, 0.32);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

#main-content.ggz-main-shell .ggz-page-join .ggz-form {
    margin: 0;
}

#main-content.ggz-main-shell .ggz-page-join .ggz-field {
    margin-top: 0;
}

#main-content.ggz-main-shell .ggz-page-join .ggz-field + .ggz-field {
    margin-top: 1rem;
}

#main-content.ggz-main-shell .ggz-page-join .ggz-form label {
    font-family: var(--ggz-font-sans);
    font-weight: 600;
    font-size: 0.9375rem;
    letter-spacing: 0.01em;
    text-transform: none;
    color: var(--ggz-text-on-dark);
    margin-top: 0;
}

#main-content.ggz-main-shell .ggz-page-join .ggz-field-hint {
    font-family: var(--ggz-font-sans);
}

#main-content.ggz-main-shell .ggz-page-join .ggz-form input:not(.multi-select-search):not(.iti__search-input),
#main-content.ggz-main-shell .ggz-page-join .ggz-form textarea,
#main-content.ggz-main-shell .ggz-page-join .ggz-form select {
    font-family: var(--ggz-font-sans);
    max-width: none;
    width: 100%;
    margin-top: 0.4rem;
    padding: 0.68rem 0.9rem;
    border-radius: 12px;
    border: 1px solid rgba(56, 67, 88, 0.85);
    background: rgba(10, 14, 24, 0.78);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease;
}

#main-content.ggz-main-shell .ggz-page-join .ggz-phone-row {
    display: grid;
    grid-template-columns: minmax(9rem, 11rem) minmax(0, 1fr);
    gap: 0.65rem;
}

#main-content.ggz-main-shell .ggz-page-join .ggz-form input:not(.multi-select-search):not(.iti__search-input):hover,
#main-content.ggz-main-shell .ggz-page-join .ggz-form textarea:hover,
#main-content.ggz-main-shell .ggz-page-join .ggz-form select:hover {
    border-color: rgba(90, 102, 122, 0.95);
}

#main-content.ggz-main-shell .ggz-page-join .ggz-form input:not(.multi-select-search):not(.iti__search-input):focus,
#main-content.ggz-main-shell .ggz-page-join .ggz-form textarea:focus,
#main-content.ggz-main-shell .ggz-page-join .ggz-form select:focus {
    outline: none;
    /* Pêche / corail : pas le rouge « erreur » (220,38,38) */
    border-color: rgba(255, 164, 138, 0.72);
    box-shadow:
        0 0 0 3px rgba(255, 146, 112, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

/* Secteurs : multi-select-dropdown-js (voir join-enhancements.css) */

#main-content.ggz-main-shell .ggz-page-join #phone_country {
    min-width: 11rem;
}

#main-content.ggz-main-shell .ggz-page-join .ggz-fieldset {
    margin: 1.5rem 0 0;
    padding: 1.35rem 0 0;
    border: none;
    border-radius: 0;
    border-top: 1px solid rgba(56, 67, 88, 0.5);
    background: transparent;
}

#main-content.ggz-main-shell .ggz-page-join .ggz-fieldset--optional {
    border-top-style: dashed;
    border-top-color: rgba(56, 67, 88, 0.42);
}

#main-content.ggz-main-shell .ggz-page-join .ggz-fieldset-legend {
    font-family: var(--font-mono);
    font-weight: 700;
    font-size: 0.69rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--ggz-peach);
    padding: 0;
    margin: 0 0 0.85rem;
    float: none;
}

#main-content.ggz-main-shell .ggz-page-join .ggz-fieldset .ggz-field:first-of-type label {
    margin-top: 0;
}

#main-content.ggz-main-shell .ggz-page-join .ggz-optional-tag {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    font-family: var(--ggz-font-sans);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--ggz-text-meta);
    border: 1px solid rgba(56, 67, 88, 0.75);
    background: rgba(0, 0, 0, 0.22);
    vertical-align: middle;
}

#main-content.ggz-main-shell .ggz-page-join .ggz-form-actions {
    margin-top: 1.75rem;
    padding-top: 1.35rem;
    border-top: 1px solid rgba(56, 67, 88, 0.45);
}

#main-content.ggz-main-shell .ggz-page-join .ggz-form-actions .ggz-project-cta-btn--red {
    width: 100%;
}

@media (min-width: 480px) {
    #main-content.ggz-main-shell .ggz-page-join .ggz-form-actions .ggz-project-cta-btn--red {
        width: auto;
        min-width: min(100%, 16rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    #main-content.ggz-main-shell .ggz-page-join .ggz-form input:not(.multi-select-search):not(.iti__search-input):focus,
    #main-content.ggz-main-shell .ggz-page-join .ggz-form textarea:focus,
    #main-content.ggz-main-shell .ggz-page-join .ggz-form select:focus {
        transition: none;
    }
}

/* Presse : voir ggz-press-page.css */

.cercle__title a {
    color: var(--ggz-text-on-dark);
    text-decoration: none;
}

.cercle__title a:hover {
    color: var(--ggz-peach);
}

@media (prefers-reduced-motion: reduce) {
    .btn.btn-primary:hover,
    button.btn-primary:hover,
    .btn.btn-secondary:hover,
    button.secondary:hover,
    .btn.secondary:hover,
    button.btn-secondary:hover {
        transform: none;
    }

    button:not(.lang-toggle):not(.menu-toggle):not(.iti__selected-country):not(.iti__search-clear):not(.projects-program-page__pill):not(.ggz-project-cta-btn),
    .btn:not(.btn--primary):not(.btn--ghost),
    .card {
        transition-duration: 0.01ms !important;
    }
}

