/* AOC Site Manager — Homepage composer v1.5.0 */
.aoc-sm-homepage {
    --aoc-sm-content: 1180px;
    --aoc-sm-section-y: 72px;

    --aoc-about-kicker: 11px;
    --aoc-about-title: 42px;
    --aoc-about-lead: 17px;
    --aoc-about-text: 14px;
    --aoc-news-kicker: 11px;
    --aoc-news-title: 46px;
    --aoc-news-featured-title: 29px;
    --aoc-news-secondary-title: 20px;
    --aoc-news-excerpt: 15px;
    --aoc-mission-kicker: 12px;
    --aoc-mission-title: 44px;
    --aoc-mission-intro: 17px;
    --aoc-mission-card-title: 29px;
    --aoc-mission-card-text: 15.5px;
    --aoc-presence-kicker: 12px;
    --aoc-presence-title: 43px;
    --aoc-presence-intro: 17px;
    --aoc-presence-country: 13px;
    --aoc-vocation-kicker: 12px;
    --aoc-vocation-title: 46px;
    --aoc-vocation-intro: 17px;
    --aoc-vocation-box: 14.5px;

    position: relative;
    width: 100vw;
    max-width: none !important;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 0;
    overflow-x: hidden;
    overflow-x: clip;
    background: #fff;
}

.aoc-sm-homepage,
.aoc-sm-homepage * {
    box-sizing: border-box;
}

.aoc-sm-homepage__section {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

/* Le compositeur est déjà pleine largeur : le Hero ne doit pas refaire une seconde sortie 100vw. */
.aoc-sm-homepage .aoc-hero-slider.aoc-hero-slider--full-bleed {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* L'ancien constructeur VamTam ne doit pas injecter de marge entre nos sections. */
.aoc-sm-homepage p:empty {
    display: none;
}

/* ----------------------------------------------------------------------
   Qui sommes-nous
------------------------------------------------------------------------ */
.aoc-sm-about {
    width: 100%;
    padding: var(--aoc-sm-section-y) 24px calc(var(--aoc-sm-section-y) + 4px);
    background: #fff;
    text-align: center;
}

.aoc-sm-about__inner {
    width: min(760px, 100%);
    margin: 0 auto;
}

/* Variante avec photo facultative. Sans photo, le rendu historique reste inchangé. */
.aoc-sm-about--with-media {
    text-align: left;
}

.aoc-sm-about--with-media .aoc-sm-about__inner {
    width: min(var(--aoc-sm-content), 100%);
    display: grid;
    grid-template-columns: minmax(260px, var(--aoc-about-media-width, 38%)) minmax(0, 1fr);
    align-items: center;
    gap: clamp(34px, 5vw, 72px);
}

.aoc-sm-about--media-right .aoc-sm-about__inner {
    grid-template-columns: minmax(0, 1fr) minmax(260px, var(--aoc-about-media-width, 38%));
}

.aoc-sm-about--media-right .aoc-sm-about__media {
    order: 2;
}

.aoc-sm-about--media-right .aoc-sm-about__copy {
    order: 1;
}

.aoc-sm-about__media {
    min-width: 0;
    margin: 0;
}

.aoc-sm-about__image {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 18px;
    box-shadow: 0 18px 44px rgba(28, 24, 18, .10);
}

.aoc-sm-about__caption {
    margin-top: 11px;
    font-size: 13px;
    line-height: 1.45;
    color: #777;
}

.aoc-sm-about--with-media .aoc-sm-about__copy {
    min-width: 0;
    max-width: 680px;
}

.aoc-sm-about--with-media .aoc-sm-about__lead,
.aoc-sm-about--with-media .aoc-sm-about__text {
    margin-left: 0;
    margin-right: 0;
}

.aoc-sm-about__kicker,
.aoc-sm-news-shell__kicker {
    margin: 0 0 15px;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: #8b7d62;
}

.aoc-sm-about__title,
.aoc-sm-news-shell__title {
    margin: 0;
    font-size: clamp(30px, 3vw, 42px);
    line-height: 1.12;
    font-weight: 760;
    letter-spacing: -.025em;
    color: #181818;
}

.aoc-sm-about__lead {
    margin: 24px auto 0;
    max-width: 720px;
    font-size: 17px;
    line-height: 1.65;
    color: #696969;
}

.aoc-sm-about__text {
    margin: 18px auto 0;
    max-width: 650px;
    font-size: 14px;
    line-height: 1.65;
    color: #707070;
}

.aoc-sm-about__action {
    margin: 28px 0 0;
}

.aoc-sm-about__action a,
.aoc-sm-news-shell__all {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding-bottom: 3px;
    border-bottom: 1px solid rgba(176,27,50,.35);
    color: #b01b32 !important;
    font-size: 13px;
    line-height: 1.2;
    font-weight: 700;
    text-decoration: none !important;
}

.aoc-sm-about__action a:hover,
.aoc-sm-news-shell__all:hover {
    border-bottom-color: #b01b32;
}

/* ----------------------------------------------------------------------
   Sections avec largeur de lecture contrôlée
------------------------------------------------------------------------ */
.aoc-sm-homepage__section--news,
.aoc-sm-homepage__section--mission,
.aoc-sm-homepage__section--presence,
.aoc-sm-homepage__section--vocation {
    padding: var(--aoc-sm-section-y) 24px;
}

.aoc-sm-homepage__section--news {
    background: #f7f5f1;
}

.aoc-sm-homepage__section--mission {
    background: #fff;
}

.aoc-sm-homepage__section--presence {
    background: #f6f4ef;
}

.aoc-sm-homepage__section--vocation {
    background: #fffdf7;
}

.aoc-sm-homepage__section--news > .aoc-sm-news-shell,
.aoc-sm-homepage__section--mission > .aoc-home-mission,
.aoc-sm-homepage__section--presence > .aoc-home-presence,
.aoc-sm-homepage__section--vocation > .aoc-home-vocation {
    width: min(var(--aoc-sm-content), 100%);
    max-width: var(--aoc-sm-content);
    margin-left: auto;
    margin-right: auto;
}

/* ----------------------------------------------------------------------
   En-tête Actualités
------------------------------------------------------------------------ */
.aoc-sm-news-shell__heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    margin: 0 0 34px;
}

.aoc-sm-news-shell__title {
    font-size: clamp(32px, 3.2vw, 46px);
}

.aoc-sm-news-shell__all {
    flex: 0 0 auto;
    margin-bottom: 7px;
}

/* Évite des espacements parasites injectés par le thème autour des modules. */
.aoc-sm-homepage__section > .aoc-home-news,
.aoc-sm-homepage__section > .aoc-home-mission,
.aoc-sm-homepage__section > .aoc-home-presence,
.aoc-sm-homepage__section > .aoc-home-vocation,
.aoc-sm-news-shell > .aoc-home-news {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

@media (max-width: 900px) {
    .aoc-sm-homepage__section--news,
    .aoc-sm-homepage__section--mission,
    .aoc-sm-homepage__section--presence,
    .aoc-sm-homepage__section--vocation {
        padding-left: 20px;
        padding-right: 20px;
    }
}

@media (max-width: 820px) {
    .aoc-sm-about--with-media {
        text-align: center;
    }

    .aoc-sm-about--with-media .aoc-sm-about__inner,
    .aoc-sm-about--media-right .aoc-sm-about__inner {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .aoc-sm-about--with-media .aoc-sm-about__media,
    .aoc-sm-about--media-right .aoc-sm-about__media {
        order: -1;
        width: min(520px, 100%);
        margin-left: auto;
        margin-right: auto;
    }

    .aoc-sm-about--with-media .aoc-sm-about__copy,
    .aoc-sm-about--media-right .aoc-sm-about__copy {
        order: 0;
        max-width: 760px;
        margin-left: auto;
        margin-right: auto;
    }

    .aoc-sm-about--with-media .aoc-sm-about__lead,
    .aoc-sm-about--with-media .aoc-sm-about__text {
        margin-left: auto;
        margin-right: auto;
    }
}

@media (max-width: 680px) {
    .aoc-sm-homepage {
        width: 100vw;
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
    }

    .aoc-sm-about {
        padding: 54px 20px 58px;
    }

    .aoc-sm-about__lead {
        font-size: 16px;
    }

    .aoc-sm-homepage__section--news,
    .aoc-sm-homepage__section--mission,
    .aoc-sm-homepage__section--presence,
    .aoc-sm-homepage__section--vocation {
        padding-top: 54px;
        padding-bottom: 54px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .aoc-sm-news-shell__heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;
        margin-bottom: 26px;
    }

    .aoc-sm-news-shell__all {
        margin-bottom: 0;
    }
}


/* ----------------------------------------------------------------------
   Typographie administrable — AOC Site Manager v1.4
   Les !important ciblés sont nécessaires pour neutraliser les tailles
   historiques imposées par certains modules VamTam/AOC.
------------------------------------------------------------------------ */
.aoc-sm-homepage .aoc-sm-about__kicker { font-size: var(--aoc-about-kicker) !important; }
.aoc-sm-homepage .aoc-sm-about__title { font-size: var(--aoc-about-title) !important; }
.aoc-sm-homepage .aoc-sm-about__lead { font-size: var(--aoc-about-lead) !important; }
.aoc-sm-homepage .aoc-sm-about__text { font-size: var(--aoc-about-text) !important; }

.aoc-sm-homepage .aoc-sm-news-shell__kicker { font-size: var(--aoc-news-kicker) !important; }
.aoc-sm-homepage .aoc-sm-news-shell__title { font-size: var(--aoc-news-title) !important; }
.aoc-sm-homepage .aoc-home-news__card--featured .aoc-home-news__title { font-size: var(--aoc-news-featured-title) !important; }
.aoc-sm-homepage .aoc-home-news__card--secondary .aoc-home-news__title { font-size: var(--aoc-news-secondary-title) !important; }
.aoc-sm-homepage .aoc-home-news__excerpt { font-size: var(--aoc-news-excerpt) !important; }

.aoc-sm-homepage .aoc-home-mission__kicker { font-size: var(--aoc-mission-kicker) !important; }
.aoc-sm-homepage .aoc-home-mission__heading-title { font-size: var(--aoc-mission-title) !important; }
.aoc-sm-homepage .aoc-home-mission__intro { font-size: var(--aoc-mission-intro) !important; }
.aoc-sm-homepage .aoc-home-mission__title { font-size: var(--aoc-mission-card-title) !important; }
.aoc-sm-homepage .aoc-home-mission__text { font-size: var(--aoc-mission-card-text) !important; }

.aoc-sm-homepage .aoc-home-presence__kicker { font-size: var(--aoc-presence-kicker) !important; }
.aoc-sm-homepage .aoc-home-presence__content h2 { font-size: var(--aoc-presence-title) !important; }
.aoc-sm-homepage .aoc-home-presence__lead { font-size: var(--aoc-presence-intro) !important; }
.aoc-sm-homepage .aoc-home-presence__country { font-size: var(--aoc-presence-country) !important; }

.aoc-sm-homepage .aoc-home-vocation__kicker { font-size: var(--aoc-vocation-kicker) !important; }
.aoc-sm-homepage .aoc-home-vocation__content h2 { font-size: var(--aoc-vocation-title) !important; }
.aoc-sm-homepage .aoc-home-vocation__lead { font-size: var(--aoc-vocation-intro) !important; }
.aoc-sm-homepage .aoc-home-vocation__first-step p { font-size: var(--aoc-vocation-box) !important; }

@media (max-width: 700px) {
    /* Les valeurs administrées restent les maxima ; le viewport peut les réduire. */
    .aoc-sm-homepage .aoc-sm-about__title,
    .aoc-sm-homepage .aoc-sm-news-shell__title,
    .aoc-sm-homepage .aoc-home-mission__heading-title,
    .aoc-sm-homepage .aoc-home-presence__content h2,
    .aoc-sm-homepage .aoc-home-vocation__content h2 {
        font-size: clamp(22px, 8vw, var(--aoc-about-title)) !important;
    }

    .aoc-sm-homepage .aoc-sm-news-shell__title { font-size: clamp(22px, 8vw, var(--aoc-news-title)) !important; }
    .aoc-sm-homepage .aoc-home-mission__heading-title { font-size: clamp(22px, 8vw, var(--aoc-mission-title)) !important; }
    .aoc-sm-homepage .aoc-home-presence__content h2 { font-size: clamp(22px, 8vw, var(--aoc-presence-title)) !important; }
    .aoc-sm-homepage .aoc-home-vocation__content h2 { font-size: clamp(22px, 8vw, var(--aoc-vocation-title)) !important; }

    .aoc-sm-homepage .aoc-home-news__card--featured .aoc-home-news__title {
        font-size: clamp(18px, 6.5vw, var(--aoc-news-featured-title)) !important;
    }
    .aoc-sm-homepage .aoc-home-news__card--secondary .aoc-home-news__title {
        font-size: clamp(16px, 5.8vw, var(--aoc-news-secondary-title)) !important;
    }
    .aoc-sm-homepage .aoc-home-mission__title {
        font-size: clamp(18px, 6.4vw, var(--aoc-mission-card-title)) !important;
    }
}
