/* ==========================================================================
   Variables
   ========================================================================== */

:root {
    --color-black: #000000;
    --color-text: #1a1a1a;
    --color-bg: #F5F3EF;
    --color-violet: #7B85E1;
    --color-purple: #4A1A7E;
    --color-orange: #F0711C;
    --color-gold: #E2C744;
    --color-white: #ffffff;
    --color-vert: #618274;
    --color-turquoise: #63B6B5;
    --color-gris: #888888;
    --color-blue: #4A5A96;

    --font-family: 'Avenir Next', 'Avenir', system-ui, -apple-system, sans-serif;
}

/* ==========================================================================
   Reset & Base
   ========================================================================== */

*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    font-family: var(--font-family);
    font-size: 1rem;
    line-height: 1.6;
    color: var(--color-text);
    background-color: var(--color-bg);
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
}

ul, ol {
    list-style: none;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 900;
    line-height: 1.2;
    text-transform: uppercase;
}

h1 { font-size: 2.5rem; }
h2 { font-size: 2.1rem; }
h3 { font-size: 2.1rem; }
h4 { font-size: 1.25rem; }

p {
    margin-bottom: 1rem;
}

/* ==========================================================================
   Layout
   ========================================================================== */

.site-wrapper {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.site-content {
    flex: 1;
}

.container {
    width: 100%;
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.container--narrow {
    max-width: 800px;
}

.container--wide {
    max-width: 1440px;
}

/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
    position: relative;
    z-index: 10;
}

.site-header .container {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding-top: 10px;
}

/* Branding / Logo */
.site-branding {
    flex-shrink: 0;
}

.site-branding a {
    display: block;
}

.site-branding img {
    width: auto;
    height: 200px;
    object-fit: contain;
}

/* Navigation */
.main-navigation ul {
    display: flex;
    align-items: center;
    gap: 0;
}

.main-navigation li {
    display: flex;
    align-items: center;
}

/* Séparateur em dash entre les items */
.main-navigation li + li::before {
    content: '\2014';
    display: inline-block;
    margin: 0 1.5rem;
    color: var(--color-text);
    opacity: 0.3;
    font-weight: 300;
}

.main-navigation a {
    font-size: 0.9375rem;
    font-weight: 500;
    letter-spacing: 0.01em;
    transition: opacity 0.2s ease;
}

.main-navigation a:hover {
    opacity: 0.6;
}

/* Groupe de droite : menu + switcher + burger */
.site-header__right {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

/* Sélecteur de langue WPML (toggle), tout à droite */
.lang-switcher {
    position: relative;
}

.lang-switcher__current,
.lang-switcher__item {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--color-text);
    padding: 0.25rem 0.4rem;
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.lang-switcher__current:hover,
.lang-switcher__item:hover {
    opacity: 0.6;
}

.lang-switcher__flag {
    width: 20px;
    height: 14px;
    object-fit: cover;
    border-radius: 2px;
    display: block;
    flex-shrink: 0;
}

.lang-switcher__list {
    position: absolute;
    top: 100%;              /* s'ouvre vers le bas */
    left: 50%;              /* centré sous le drapeau : rendu équilibré */
    transform: translateX(-50%);
    margin: 0;              /* collé au drapeau : pas de zone morte au survol */
    padding: 0.25rem 0.6rem;
    min-width: 100%;
    width: max-content;
    list-style: none;
    background: #fff;
    border: 1px solid #e0ddd7;
    border-radius: 6px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
    display: none;
    flex-direction: column; /* drapeaux empilés */
    gap: 0.15rem;
    white-space: nowrap;
    z-index: 50;
}

.lang-switcher:hover .lang-switcher__list,
.lang-switcher:focus-within .lang-switcher__list,
.lang-switcher.is-open .lang-switcher__list {
    display: flex;
}

/* Neutralise les styles de menu hérités dans le déroulant */
.lang-switcher__list li {
    display: block;
}

.lang-switcher__list li + li::before {
    content: none;
    margin: 0;
}

.lang-switcher__item {
    white-space: nowrap;
}

/* Mobile menu toggle */
.menu-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
    z-index: 10;
}

.menu-toggle span {
    display: block;
    width: 24px;
    height: 2px;
    background-color: var(--color-text);
    margin: 5px 0;
    transition: all 0.3s ease;
}

/* Menu toggle animation */
.menu-toggle[aria-expanded="true"] span:nth-child(1) {
    transform: rotate(45deg) translate(5px, 5px);
}

.menu-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
}

.menu-toggle[aria-expanded="true"] span:nth-child(3) {
    transform: rotate(-45deg) translate(5px, -5px);
}

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer {
    padding: 0;
    margin-top: 4rem;
    border-top: 1px solid #d0cdc7;
    background-color: var(--color-bg);
}

/* Grille 3 colonnes */
.footer-main {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    align-items: start;
    gap: 2rem;
    padding: 3rem 0 2.5rem;
}

/* Colonne logo */
.footer-col--logo img,
.footer-col--logo .widget img,
.footer-col--logo .widget_media_image img {
    width: auto;
    height: 150px;
    max-width: 100%;
    object-fit: contain;
    display: block;
}

/* Colonne navigation */
.footer-col--nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-col--nav li {
    margin-bottom: 0.5rem;
}

.footer-col--nav a {
    font-size: 0.9375rem;
    font-weight: 500;
    transition: opacity 0.2s ease;
}

.footer-col--nav a:hover {
    opacity: 0.6;
}

/* Colonne CTA */
.footer-col--cta {
    text-align: right;
}

.footer-col--cta .widget,
.footer-col--cta .widget p,
.footer-col--cta .widget .textwidget,
.footer-col--cta .widget .textwidget p {
    color: var(--color-text);
    font-weight: 900;
    font-size: 1.25rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    line-height: 1.5;
}

.footer-col--cta a {
    color: var(--color-gold);
    transition: opacity 0.2s ease;
}

.footer-col--cta a:hover {
    opacity: 0.7;
}

/* Mentions légales */
.footer-legal {
    border-top: 1px solid #d0cdc7;
    padding: 1.5rem 0;
    text-align: center;
}

.footer-legal p {
    font-size: 0.75rem;
    color: #888;
    margin-bottom: 0;
    line-height: 1.5;
}

/* ==========================================================================
   Gutenberg Blocks
   ========================================================================== */

/* Entry content: default container for Gutenberg blocks */
.entry-content {
    overflow-x: hidden;
    margin-top: -150px;
    position: relative;
}

.page-template-page-nos-ateliers .entry-content {
    margin-top: -100px;
}

.page-template-page-nos-ateliers .ateliers-slider:first-child {
    padding-top: 40px;
}

.single-post .entry-content {
    margin-top: 0;
}

.entry-content > * {
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.entry-content--wide > * {
    max-width: none;
}

.entry-content > .alignwide {
    max-width: 1140px;
}

.entry-content > .alignfull {
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}

/* Gutenberg color classes */
.has-noir-color { color: var(--color-text); }
.has-or-color { color: var(--color-gold); }
.has-orange-color { color: var(--color-orange); }
.has-violet-color { color: var(--color-violet); }
.has-blanc-casse-color { color: var(--color-bg); }
.has-blanc-color { color: var(--color-white); }
.has-vert-color { color: var(--color-vert); }
.has-gris-color { color: var(--color-gris); }
.has-purple-color { color: var(--color-purple); }
.has-bleu-color { color: var(--color-blue); }
.has-turquoise-color { color: var(--color-turquoise); }

.has-noir-background-color { background-color: var(--color-text); }
.has-or-background-color { background-color: var(--color-gold); }
.has-orange-background-color { background-color: var(--color-orange); }
.has-violet-background-color { background-color: var(--color-violet); }
.has-blanc-casse-background-color { background-color: var(--color-bg); }
.has-blanc-background-color { background-color: var(--color-white); }
.has-vert-background-color { background-color: var(--color-vert); }
.has-gris-background-color { background-color: var(--color-gris); }
.has-purple-background-color { background-color: var(--color-purple); }
.has-bleu-background-color { background-color: var(--color-blue); }
.has-turquoise-background-color { background-color: var(--color-turquoise); }

/* Group block */
.wp-block-group {
    padding: 3rem 1.5rem;
}

.wp-block-group .wp-block-group__inner-container > * {
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
}

.wp-block-group.alignwide .wp-block-group__inner-container > * {
    max-width: 1140px;
}

/* Columns block */
.wp-block-columns {
    gap: 2rem;
}

/* Separator block */
.wp-block-separator {
    border: none;
    border-top: 1px solid #d0cdc7;
    width: 100%;
    max-width: 1140px;
    margin: 2rem auto;
    opacity: 1;
}

.wp-block-separator.is-style-wide {
    max-width: 100%;
}

/* Buttons block */
.wp-block-button__link {
    font-family: var(--font-family);
    font-size: 0.875rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 1rem 2.5rem;
    border-radius: 4px;
    transition: opacity 0.2s ease;
    background-color: var(--color-turquoise) !important;
    color: var(--color-white) !important;
}

.wp-block-button__link:hover {
    opacity: 0.85;
}

/* Heading block spacing */
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4 {
    margin-bottom: 1rem;
}

/* Spacer block — no overrides needed, respects WP settings */

/* ==========================================================================
   Forminator Forms
   ========================================================================== */

/* Form container */
.forminator-custom-form {
    font-family: var(--font-family) !important;
}

/* Field labels */
.forminator-custom-form .forminator-label {
    font-family: var(--font-family) !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    color: var(--color-text) !important;
    margin-bottom: 0.5rem !important;
}

/* Input fields */
.forminator-custom-form .forminator-input,
.forminator-custom-form .forminator-textarea {
    font-family: var(--font-family) !important;
    font-size: 0.9375rem !important;
    color: var(--color-text) !important;
    background-color: transparent !important;
    border: none !important;
    border-bottom: 1px solid #d0cdc7 !important;
    border-radius: 0 !important;
    padding: 0.75rem 0 !important;
    box-shadow: none !important;
    transition: border-color 0.2s ease !important;
}

.forminator-custom-form .forminator-input:focus,
.forminator-custom-form .forminator-textarea:focus {
    border-bottom-color: var(--color-text) !important;
    outline: none !important;
    box-shadow: none !important;
}

.forminator-custom-form .forminator-input::placeholder,
.forminator-custom-form .forminator-textarea::placeholder {
    color: #aaa !important;
    font-weight: 400 !important;
}

/* Textarea */
.forminator-custom-form .forminator-textarea {
    min-height: 100px !important;
    resize: vertical !important;
}

/* Form rows (2 columns) */
.forminator-custom-form .forminator-row {
    margin-bottom: 1.5rem !important;
}

/* Submit button */
.forminator-custom-form .forminator-button-submit {
    font-family: var(--font-family) !important;
    font-size: 0.875rem !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    background-color: var(--color-turquoise) !important;
    color: var(--color-white) !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 1rem 2.5rem !important;
    cursor: pointer !important;
    transition: opacity 0.2s ease !important;
}

.forminator-custom-form .forminator-button-submit:hover {
    opacity: 0.85 !important;
    background-color: var(--color-turquoise) !important;
}

/* Remove Forminator default backgrounds */
.forminator-custom-form .forminator-field {
    background: transparent !important;
}

/* ==========================================================================
   Contact page — info columns
   ========================================================================== */

/* H1 et H2 page contact */
.page-id-6174 h1.wp-block-heading {
    color: var(--color-purple) !important;
}

.page-id-6174 .has-or-color {
    color: var(--color-orange) !important;
    font-weight: 900 !important;
}

.contact-info-columns {
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
    padding: 3rem 1.5rem;
    text-align: center;
}

.contact-info-columns .wp-block-column h6 {
    text-align: center;
}

.contact-info-columns .wp-block-column p {
    margin-bottom: 0.25rem;
    text-align: center;
}

/* ==========================================================================
   Contact — Section bottom (image + titre + infos)
   ========================================================================== */

.contact-bottom-section {
    padding: 0 !important;
    margin-top: 3rem;
}

.contact-bottom-cols {
    gap: 0 !important;
    min-height: 400px;
}

/* Col image */
.contact-bottom-col--image {
    overflow: hidden;
}

.contact-bottom-col--image .wp-block-image {
    height: 100%;
    margin: 0;
}

.contact-bottom-col--image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    position: absolute;
    inset: 0;
}

.contact-bottom-col--image .wp-block-image {
    position: relative;
}

/* Col titre */
.contact-bottom-col--title {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
}

.contact-bottom-heading {
    color: var(--color-turquoise) !important;
    font-size: 2.1rem !important;
    font-weight: 900;
    text-align: center;
    line-height: 1.1;
}

/* Col infos */
.contact-bottom-col--info {
    background-color: #E8E5DF;
    padding: 2rem 2rem;
}

.contact-bottom-email {
    font-weight: 700;
    margin-bottom: 1rem;
}

/* Réseaux sociaux */
.contact-bottom-socials {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.contact-bottom-socials a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-color: var(--color-text);
    color: var(--color-white);
    transition: opacity 0.2s ease;
}

.contact-bottom-socials a:hover {
    opacity: 0.7;
}

.contact-bottom-socials svg {
    width: 16px;
    height: 16px;
}

/* Newsletter title */
.contact-newsletter-title {
    font-size: 0.875rem !important;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin-bottom: 0.75rem;
    margin-top: 1rem;
}

/* Newsletter */
.contact-newsletter {
    margin-top: 0.5rem;
}

.contact-newsletter__field {
    display: flex;
    gap: 0;
    margin-bottom: 0.75rem;
}

.contact-newsletter__field input[type="email"] {
    flex: 1;
    font-family: var(--font-family);
    font-size: 0.875rem;
    padding: 0.75rem 1rem;
    border: 1px solid #d0cdc7;
    border-right: none;
    border-radius: 4px 0 0 4px;
    background: var(--color-white);
    color: var(--color-text);
    outline: none;
}

.contact-newsletter__field input[type="email"]::placeholder {
    color: #aaa;
}

.contact-newsletter__field button {
    font-family: var(--font-family);
    font-size: 0.875rem;
    font-weight: 900;
    padding: 0.75rem 1.25rem;
    background-color: var(--color-turquoise);
    color: var(--color-white);
    border: none;
    border-radius: 0 4px 4px 0;
    cursor: pointer;
    transition: opacity 0.2s ease;
}

.contact-newsletter__field button:hover {
    opacity: 0.85;
}

.contact-newsletter__consent {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    cursor: pointer;
}

.contact-newsletter__consent input[type="checkbox"] {
    margin-top: 3px;
    flex-shrink: 0;
}

.contact-newsletter__consent span {
    font-size: 0.625rem;
    line-height: 1.4;
    color: var(--color-gris);
}

/* ==========================================================================
   Contact — Section about (image + titres + textes)
   ========================================================================== */

.contact-about-section {
    padding: 3rem 1.5rem !important;
}

.contact-about-cols {
    gap: 3rem !important;
    align-items: center;
}

.contact-about-cols img {
    width: 100%;
    height: 400px;
    object-fit: cover;
    border-radius: 0;
}

.contact-about-heading {
    color: var(--color-turquoise) !important;
    font-size: 2.1rem !important;
    font-weight: 900;
    margin-bottom: 0.75rem;
}

.contact-about-cols p {
    margin-bottom: 2rem;
}

/* ==========================================================================
   Ateliers Slider (Swiper)
   ========================================================================== */

.title-atelier {
    color: var(--color-blue) !important;
}

.vuitton h3 {
    color: var(--color-turquoise) !important;
}

.ateliers-slider {
    margin-bottom: 1.5rem;
    width: 100%;
    max-width: 100%;
}

.ateliers-swiper {
    overflow: hidden;
    padding-left: 3%;
    padding-right: 3%;
}

.ateliers-swiper .swiper-slide-active .slider-slide__item {
    transform: scale(1);
    opacity: 1;
}

.ateliers-swiper .swiper-slide:not(.swiper-slide-active) .slider-slide__item {
    opacity: 0.55;
    transition: opacity 0.4s ease;
}

/* Chaque slide */
.ateliers-swiper .swiper-slide {
    width: auto;
}

/* Item image */
.slider-slide__item {
    display: block;
    overflow: hidden;
    border-radius: 4px;
    height: 550px;
}

.slider-slide__item img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.slider-slide__item:hover img {
    transform: scale(1.02);
}

.slider-slide__item--small .slider-slide__title {
    font-size: 2rem;
}

/* Controls */
.slider-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-top: 1.5rem;
}

.slider-btn {
    background: none;
    border: 1px solid #d0cdc7;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
    color: var(--color-text);
}

.slider-btn:hover {
    background-color: var(--color-text);
    color: var(--color-white);
    border-color: var(--color-text);
}

/* Swiper pagination dots override */
.ateliers-pagination {
    position: static !important;
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    width: auto !important;
}

.ateliers-pagination .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1px solid #d0cdc7;
    background: transparent;
    opacity: 1;
    margin: 0 !important;
    transition: all 0.2s ease;
}

.ateliers-pagination .swiper-pagination-bullet-active {
    background-color: var(--color-text);
    border-color: var(--color-text);
}

/* Ateliers Slider Responsive — see main responsive block */

/* ==========================================================================
   Ateliers — Projets (layout alterné)
   ========================================================================== */

.ateliers-projets {
    max-width: 1140px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
}

/* Chaque projet */
.projet-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    margin-bottom: 4rem;
    max-width: 960px;
    scroll-margin-top: 120px;
}

/* Centré, pas de décalage */
.projet-row--right,
.projet-row--left {
    margin-left: auto;
    margin-right: auto;
}

.projet-row--left {
    direction: rtl;
}

.projet-row--left > * {
    direction: ltr;
}

/* Image */
.projet-row__visual {
    position: relative;
    overflow: hidden;
}

.projet-row__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    position: absolute;
    inset: 0;
}

.projet-row__visual::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0) 50%);
    pointer-events: none;
}

.projet-row__title {
    position: absolute;
    bottom: 1.25rem;
    left: 1.25rem;
    right: 1.25rem;
    z-index: 2;
    color: var(--color-white);
    font-size: 1.75rem;
    font-weight: 900;
    text-transform: uppercase;
    line-height: 1.05;
    margin: 0;
}

/* Panel info */
.projet-row__info {
    padding: 1.5rem 1.75rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: var(--color-white);
}

.projet-row__label {
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--color-gold);
    margin-bottom: 1rem;
}

.projet-row__quote {
    font-size: 1rem;
    font-style: italic;
    line-height: 1.5;
    margin: 0 0 1.25rem;
    padding: 0;
    border: none;
    color: var(--color-white);
}

.projet-row__desc {
    font-size: 0.8125rem;
    line-height: 1.6;
    opacity: 0.85;
}

.projet-row__desc p {
    margin-bottom: 0.5rem;
    color: var(--color-white);
}

.projet-row__meta {
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--color-gold);
    margin-top: auto;
    padding-top: 1rem;
    margin-bottom: 0;
}

/* Ateliers Projets Responsive — see main responsive block */

/* ==========================================================================
   Notre Mission — Sections custom
   ========================================================================== */

/* Video/image section */
.mission-video-section {
    align-items: flex-start;
    margin-bottom: 2.5rem;
}

.mission-video-section .wp-block-image {
    margin-top: -40px;
}

.mission-video-section h3 {
    margin-top: 3rem;
    font-size: 2.1rem;
    color: var(--color-violet);
}

/* Premier titre Notre mission en vert */
.page-id-6168 .entry-content > .wp-block-group:first-child h2:first-of-type {
    color: var(--color-vert) !important;
}

/* Cercles méthodologie */
.mission-circles {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 2rem 0;
}

.mission-circle {
    width: 260px;
    height: 260px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 2.5rem;
    color: var(--color-white);
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.4;
}

.mission-circle--left {
    background-color: #8B3A3A;
    z-index: 1;
    position: relative;
    margin-right: -50px;
}

.mission-circle--right {
    background-color: #A08B7B;
    position: relative;
}

/* Méthodologie section */
.mission-methodo-section {
    align-items: center;
    padding-top: 3rem;
}

/* Process steps */
.mission-process {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    max-width: 1140px;
    margin: 2.5rem auto;
    padding: 2rem 1.5rem;
    border-top: 1px solid #d0cdc7;
    border-bottom: 1px solid #d0cdc7;
}

.mission-process__step {
    padding: 0 1.25rem;
    position: relative;
}

.mission-process__title {
    font-family: var(--font-family);
    font-size: 1rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 0.75rem;
    display: inline;
}

/* Couleurs par étape */
.mission-process__step:nth-child(1) .mission-process__title { color: var(--color-turquoise); }
.mission-process__step:nth-child(2) .mission-process__title { color: var(--color-purple); }
.mission-process__step:nth-child(3) .mission-process__title { color: var(--color-orange); }
.mission-process__step:nth-child(4) .mission-process__title { color: var(--color-purple); }

.mission-process__arrow {
    display: inline-block;
    margin-left: 0.5rem;
    font-size: 1rem;
    color: var(--color-text);
    opacity: 0.4;
}

.mission-process__desc {
    font-size: 1rem;
    line-height: 1.5;
    color: var(--color-text);
    margin-top: 0.5rem;
    margin-bottom: 0;
}

/* Médiation 3-col */
.mission-mediation {
    align-items: flex-start;
    gap: 2.5rem;
    padding-top: 3rem;
    padding-bottom: 3rem;
}

/* Puces "check" noires (le list-style est désactivé globalement) */
.mission-mediation li {
    position: relative;
    padding-left: 1.5rem;
    margin-bottom: 0.5rem;
}

.mission-mediation li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: #000;
    font-size: 0.85em;
    font-weight: 700;
}

/* CTA section */
.mission-cta-section {
    gap: 2.5rem;
    padding-top: 2rem;
    padding-bottom: 3rem;
}

.mission-cta-image img {
    border-radius: 0;
    width: 100%;
    height: 520px;
    object-fit: cover;
}

/* Notre Mission Responsive — see main responsive block */

/* ==========================================================================
   Homepage
   ========================================================================== */

/* --- Front page entry content: remonter davantage --- */
.home .entry-content,
.page-template-default.page-id-6166 .entry-content {
    margin-top: -210px;
}

/* --- Vidéo homepage --- */
.home .wp-block-embed-vimeo,
.home .wp-block-embed {
    max-width: 100% !important;
    width: 100%;
}

.home .wp-block-embed-vimeo iframe {
    width: 1000px;
    max-width: 100%;
    height: 560px;
    display: block;
    margin: 0 auto;
    border-radius: 4px;
}

/* La colonne qui contient la vidéo doit être pleine largeur */
.home .wp-block-embed-vimeo .wp-block-embed__wrapper {
    display: flex;
    justify-content: center;
}

.wp-block-embed-vimeo figcaption {
    text-align: end !important;
    font-size: 10px;
    color: #888888;
}

/* --- Hero --- */
.section-hero {
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 1.5rem 2rem;
}

.section-hero > .wp-block-columns {
    align-items: flex-start;
    gap: 1.5rem;
}

/* Col 1 : titre + texte + bouton — compenser la remontée */
.hero-col-content {
    padding-top: 150px;
}

h1.hero-title,
.hero-col-content h1.hero-title,
.hero-col-content .hero-title {
    font-size: 2.75rem;
    font-weight: 900;
    line-height: 1.05;
    text-transform: uppercase;
    color: var(--color-gold) !important;
    margin-bottom: 1rem;
}

.hero-col-content p {
    font-size: 0.9375rem;
    line-height: 1.6;
}

/* Col 2 : 3 images carrées empilées */
.hero-col-images {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.hero-col-images .wp-block-image {
    margin: 0;
}

.hero-col-images .wp-block-image img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 4px;
}

/* Col 3 : grande image + titre doré — compenser la remontée (1er hero seulement) */
.entry-content > .section-hero:first-child .hero-col-right {
    padding-top: 200px;
}

.hero-col-right .wp-block-image {
    margin-bottom: 1rem;
}

.hero-col-right .wp-block-image img {
    width: 100%;
    height: 340px;
    object-fit: cover;
}

.hero-col-right h2 {
    font-size: 2.1rem;
    font-weight: 900;
    text-transform: uppercase;
    line-height: 1.1;
    color: var(--color-black);
}

/* --- Section présentation --- */
.home-presentation {
    padding: 3rem 1.5rem;
    align-items: center;
    gap: 3rem;
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
}

.home-presentation img {
    width: 100%;
    height: 380px;
    object-fit: cover;
}

/* --- Derniers ateliers --- */
.home-ateliers {
    padding: 3rem 0;
}

.home-ateliers__header {
    margin-bottom: 2rem;
    text-align: center;
}

.home-ateliers__header p {
    max-width: 800px !important;
    margin-left: auto;
    margin-right: auto;
}

.home-projets-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    max-width: 1140px;
    margin: 0 auto;
}

.home-projet-card {
    background: var(--color-white);
    border-radius: 6px;
    overflow: hidden;
}

.home-projet-card__image {
    display: block;
    overflow: hidden;
}

.home-projet-card__image img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.home-projet-card:hover .home-projet-card__image img {
    transform: scale(1.03);
}

.home-projet-card__content {
    padding: 1.25rem;
}

.home-projet-card__title {
    font-size: 0.8125rem;
    font-weight: 800;
    text-transform: uppercase;
    line-height: 1.3;
    margin-bottom: 0.5rem;
}

.home-projet-card__title a {
    transition: opacity 0.2s ease;
}

.home-projet-card__title a:hover {
    opacity: 0.6;
}

.home-projet-card__excerpt {
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--color-text);
    margin-bottom: 0.75rem;
}

.home-projet-card__link {
    font-size: 0.6875rem;
    font-weight: 700;
    color: var(--color-gold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.home-projet-card__link:hover {
    opacity: 0.7;
}

/* --- Derniers articles (home) --- */
.home-articles-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    max-width: 1140px;
    margin: 0 auto;
}

.home-article-card {
    display: block;
    transition: opacity 0.2s ease;
}

.home-article-card:hover {
    opacity: 0.85;
}

.home-article-card__visual {
    position: relative;
    overflow: hidden;
    border-radius: 0;
    aspect-ratio: 16 / 9;
}

.home-article-card__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.home-article-card:hover .home-article-card__visual img {
    transform: scale(1.03);
}

.home-article-card__visual::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0) 55%);
    pointer-events: none;
}

.home-article-card__title {
    display: none;
}

.home-article-card__visual::after {
    display: none;
}

.home-article-card__excerpt {
    font-size: 0.8125rem;
    color: var(--color-text);
    font-weight: 700;
    margin: 0.625rem 0 0;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* --- Fondatrices --- */
.home-fondatrices {
    padding: 3rem 0;
    align-items: center;
    gap: 2rem;
}

.home-fondatrices img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.home-fondatrices h3 {
    font-size: 2.1rem !important;
}

.home-fondatrices .wp-block-column:first-child h3 {
    color: var(--color-vert) !important;
}

.home-fondatrices .wp-block-column:last-child h3 {
    color: var(--color-violet) !important;
}

.home-fondatrices__attribution {
    text-align: center;
    padding-top: 1.5rem;
}

.home-fondatrices .wp-block-image figcaption {
    text-align: center;
}

/* --- Méthodologie --- */
.home-methodologie {
    padding: 3rem 1.5rem;
    max-width: 1140px;
    margin: 0 auto;
}

/* Titres dans la dernière section hero */
.section-hero .hero-col-content h3,
.section-hero .hero-col-right h2 {
    font-size: 2.75rem !important;
    font-weight: 900;
    line-height: 1.05;
}

.section-methodologie {
    padding: 0;
}

/* Titre */
.section-methodologie h2 {
    font-size: 2.1rem !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em;
    margin-bottom: 2rem;
}

/* Colonnes principales : 80% gauche + 20% droite */
.section-methodologie > .wp-block-columns {
    gap: 1.5rem;
    align-items: flex-start;
}

/* Colonne droite (20%) : 3 images carrées empilées */
.section-methodologie .wp-block-column[style*="flex-basis:20%"] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.section-methodologie .wp-block-column[style*="flex-basis:20%"] .wp-block-image {
    margin: 0;
}

.section-methodologie .wp-block-column[style*="flex-basis:20%"] .wp-block-image img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 4px;
}

/* Colonne gauche (80%) : sous-colonnes image + texte */
.section-methodologie .wp-block-column[style*="flex-basis:80%"] > .wp-block-columns {
    margin-bottom: 1.5rem;
}

.section-methodologie .wp-block-column[style*="flex-basis:80%"] > .wp-block-columns img {
    width: 100%;
    height: 280px;
    object-fit: cover;
}

.section-methodologie .wp-block-column[style*="flex-basis:80%"] > .wp-block-columns p {
    font-size: 0.8125rem;
    line-height: 1.6;
}

/* Liste numérotée en dessous */
.section-methodologie .wp-block-column[style*="flex-basis:80%"] > ol,
.section-methodologie .wp-block-column[style*="flex-basis:80%"] > .wp-block-list {
    list-style: decimal;
    padding-left: 1.25rem;
    margin-top: 1rem;
}

.section-methodologie .wp-block-column[style*="flex-basis:80%"] li {
    font-size: 0.8125rem;
    line-height: 1.6;
    margin-bottom: 0.75rem;
}

/* --- Sections confiance / partenaires --- */
.home .entry-content > .wp-block-columns {
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
    padding: 2rem 1.5rem;
    align-items: center;
}

/* 1ère section asymétrique : titre en orange */
.home .entry-content > .wp-block-columns:nth-last-of-type(2) h2 {
    color: var(--color-orange) !important;
    font-size: 2.75rem !important;
    font-weight: 900;
}

/* 2ème section asymétrique : titre en vert */
.home .entry-content > .wp-block-columns:nth-last-of-type(1) h2 {
    color: var(--color-vert) !important;
    font-size: 2.75rem !important;
    font-weight: 900;
}

.home .entry-content > .wp-block-columns img {
    width: 100%;
    height: auto;
    border-radius: 0;
}

/* Homepage Responsive — see main responsive block */

/* ==========================================================================
   Single Post
   ========================================================================== */

/* Hero */
.single-hero {
    padding: 2rem 0 3rem;
}

.single-hero__category {
    font-size: 20px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--color-gold);
    margin-bottom: 1rem;
}

.single-hero__title {
    font-size: 3rem;
    font-weight: 800;
    line-height: 1.1;
    margin-bottom: 1.25rem;
    max-width: 700px;
}

.single-hero__excerpt {
    font-size: 1.125rem;
    line-height: 1.6;
    color: var(--color-text);
    max-width: 550px;
    margin-bottom: 1.5rem;
}

.single-hero__meta {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 0.8125rem;
    color: var(--color-gris);
}

.single-hero__meta-line {
    display: block;
    width: 40px;
    height: 1px;
    background-color: var(--color-gris);
}

/* Thumbnail */
.single-thumbnail {
    margin-bottom: 3rem;
}

.single-thumbnail img {
    width: 100%;
    height: auto;
    border-radius: 0;
}

/* Single hero — margin négatif pour empiéter sur le header */
.single-hero {
    margin-top: -150px;
    position: relative;
}

/* Gutenberg images in single — captions */
.single-post .entry-content .wp-block-image figcaption {
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--color-gris);
    margin-top: 0.75rem;
}

/* ==========================================================================
   Related Posts
   ========================================================================== */

.related-posts {
    padding: 4rem 0;
}

.related-posts__title {
    font-size: 2rem !important;
    font-weight: 900 !important;
    margin-bottom: 2rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--color-text);
    display: inline-block;
}

.related-posts__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}

/* Related card */
.related-card {
    display: block;
    overflow: hidden;
    transition: transform 0.3s ease;
}

.related-card:hover {
    transform: translateY(-4px);
}

.related-card__image {
    overflow: hidden;
}

.related-card__image img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.related-card:hover .related-card__image img {
    transform: scale(1.03);
}

.related-card__category {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--color-gris);
    margin: 1rem 1rem 0.375rem;
}

.related-card__title {
    font-size: 1rem;
    font-weight: 900 !important;
    line-height: 1.35;
    padding: 10px 0 !important;
    margin: 0;
}

/* ==========================================================================
   Single & Related Responsive
   ========================================================================== */

/* Single & Related Responsive — see main responsive block */

/* ==========================================================================
   Galerie de projets — Grid avec espaces vides
   ========================================================================== */

.galerie-page-title {
    font-size: 2.1rem;
    font-weight: 900;
    color: var(--color-purple);
    text-transform: uppercase;
    text-align: center;
    margin-bottom: 2rem;
    padding-top: 2rem;
}

.galerie-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
    max-width: 1140px;
    margin: 0 auto;
}

.galerie-grid__empty {
    min-height: 1px;
}

.galerie-card {
    overflow: hidden;
}

.galerie-card__link {
    display: block;
    transition: opacity 0.2s ease;
}

.galerie-card__link:hover {
    opacity: 0.85;
}

.galerie-card__image {
    overflow: hidden;
}

.galerie-card__image img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
    border-radius: 0;
    transition: transform 0.4s ease;
}

.galerie-card__link:hover .galerie-card__image img {
    transform: scale(1.03);
}

.galerie-card__content {
    padding: 0.5rem 0;
}

.galerie-card__title {
    font-size: 0.9375rem;
    font-weight: 900;
    line-height: 1.3;
    margin-bottom: 0px;
}

.galerie-card__content h3 {
    margin-bottom: 0px;
}

.galerie-card__content .entry-content h3 {
    margin-bottom: 0px !important;
}

.galerie-card__category {
    margin-bottom: 1rem;
}

.galerie-card__excerpt {
    font-size: 0.8125rem;
    color: var(--color-text);
    line-height: 1.4;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Pagination */
.masonry-pagination {
    margin-top: 4rem;
    text-align: center;
}

.masonry-pagination .nav-links {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
}

.masonry-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    font-size: 0.875rem;
    font-weight: 500;
    transition: all 0.2s ease;
}

.masonry-pagination .page-numbers.current {
    background-color: var(--color-text);
    color: var(--color-white);
}

.masonry-pagination .page-numbers:hover:not(.current) {
    background-color: #e5e3df;
}

/* ==========================================================================
   WordPress Defaults
   ========================================================================== */

.alignleft {
    float: left;
    margin-right: 1.5rem;
    margin-bottom: 1rem;
}

.alignright {
    float: right;
    margin-left: 1.5rem;
    margin-bottom: 1rem;
}

.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1rem;
}

.wp-caption {
    max-width: 100%;
}

.wp-caption-text {
    font-size: 0.875rem;
    color: #666;
    margin-top: 0.5rem;
}

.screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    word-wrap: normal !important;
}

/* ==========================================================================
   RESPONSIVE — TABLET (max 1024px)
   ========================================================================== */

@media (max-width: 1024px) {
    .masonry-grid {
        columns: 3;
    }
}

/* ==========================================================================
   RESPONSIVE — MOBILE (max 768px)
   ========================================================================== */

@media (max-width: 768px) {

    /* --- Global padding mobile --- */
    .site-wrapper {
        padding-left: 10px;
        padding-right: 10px;
        overflow-x: hidden;
    }

    /* --- Base typography --- */
    html {
        font-size: 15px;
    }

    h1 { font-size: 1.75rem; }
    h2 { font-size: 1.5rem !important; }
    h3 { font-size: 1.35rem !important; }
    h4 { font-size: 1.1rem; }

    body {
        line-height: 1.5;
    }

    /* --- Entry content : réduire le margin négatif sur mobile --- */
    .entry-content {
        margin-top: -80px;
    }

    /* --- Header --- */
    .site-header .container {
        position: relative;
    }

    .site-branding img {
        height: 80px;
    }

    .menu-toggle {
        display: block;
    }

    .main-navigation {
        display: none;
        position: absolute;
        top: 100%;
        left: -10px;
        right: -10px;
        background: var(--color-bg);
        padding: 2rem 1.5rem;
        z-index: 100;
        box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    }

    .main-navigation.is-active {
        display: block;
    }

    .main-navigation ul {
        flex-direction: column;
        gap: 1.25rem;
    }

    .main-navigation a {
        font-size: 1rem;
    }

    .main-navigation li + li::before {
        display: none;
    }

    /* --- Gutenberg blocks --- */
    .entry-content > * {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .wp-block-columns {
        flex-direction: column !important;
        gap: 1.5rem !important;
    }

    .wp-block-columns .wp-block-column {
        flex-basis: 100% !important;
    }

    .wp-block-group {
        padding: 1.5rem 1rem;
    }

    /* --- Footer --- */
    .footer-main {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 2rem;
    }

    .footer-col--logo img {
        margin: 0 auto;
    }

    .footer-col--cta {
        text-align: center;
    }

    .footer-col--cta .widget,
    .footer-col--cta .widget p,
    .footer-col--cta .widget .textwidget,
    .footer-col--cta .widget .textwidget p {
        font-size: 1rem;
    }

    .footer-legal p {
        font-size: 0.6875rem;
        padding: 0 1rem;
    }

    /* --- Homepage Hero --- */
    .home .entry-content,
    .page-template-default.page-id-6166 .entry-content {
        margin-top: -80px;
    }

    .section-hero {
        padding: 0 1rem 1.5rem;
        margin-bottom: 2rem;
    }

    .section-hero > .wp-block-columns {
        flex-direction: column !important;
    }

    .hero-col-content {
        padding-top: 100px;
    }

    .hero-col-content .hero-title {
        font-size: 2rem;
    }

    .hero-col-images {
        flex-direction: row;
        gap: 0.5rem;
    }

    .hero-col-images .wp-block-image img {
        aspect-ratio: 1 / 1;
        height: auto;
    }

    .hero-col-right {
        padding-top: 0;
    }

    .hero-col-right .wp-block-image img {
        height: 220px;
    }

    .hero-col-right h2 {
        font-size: 1.5rem !important;
    }

    /* --- Homepage sections --- */
    .home-presentation {
        padding: 2rem 1rem;
    }

    .home-presentation img {
        height: 220px;
    }

    .home-ateliers {
        padding: 2rem 0;
    }

    .home-projets-grid {
        grid-template-columns: 1fr;
        gap: 1.25rem;
        padding: 0 1rem;
    }

    .home-articles-grid {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .home-projet-card__image img {
        height: 180px;
    }

    .home-fondatrices {
        padding: 2rem 0;
        text-align: center;
    }

    .home-fondatrices img {
        max-width: 220px;
        margin: 0 auto;
    }

    .home-fondatrices h3 {
        font-size: 1.35rem !important;
        text-align: center;
    }

    .home-methodologie {
        padding: 2rem 1rem;
    }

    .section-methodologie .wp-block-column[style*="flex-basis:20%"] .wp-block-image img {
        aspect-ratio: 16/9;
    }

    .section-methodologie .wp-block-column[style*="flex-basis:80%"] > .wp-block-columns img {
        height: 200px;
    }

    /* --- Pages sans margin négatif sur mobile --- */
    .page-template-page-nos-ateliers .entry-content,
    .blog .entry-content,
    .page-id-6174 .entry-content,
    .page-id-6168 .entry-content {
        margin-top: 0;
    }

    /* --- Slider Ateliers --- */
    .ateliers-slider {
        padding: 0;
    }

    .slider-slide__images {
        grid-template-columns: 1fr !important;
        gap: 0;
    }

    /* Cacher le 2e projet sur mobile — un seul par slide */
    .slider-slide__item--small {
        display: none;
    }

    .slider-slide__item {
        height: 260px !important;
    }

    .slider-slide__title {
        font-size: 1.5rem !important;
        bottom: 1rem;
        left: 1rem;
        right: 1rem;
    }

    .slider-controls {
        margin-top: 1rem;
    }

    .slider-btn {
        width: 36px;
        height: 36px;
    }

    /* --- Projet rows (ateliers) --- */
    .ateliers-projets {
        padding: 1.5rem 1rem;
    }

    .projet-row {
        grid-template-columns: 1fr;
        max-width: 100%;
        margin-bottom: 2.5rem;
    }

    .projet-row--left {
        direction: ltr;
    }

    .projet-row--right,
    .projet-row--left {
        margin-left: 0;
        margin-right: 0;
    }

    .projet-row__visual {
        height: 220px;
    }

    .projet-row__visual img {
        position: relative;
        height: 220px;
    }

    .projet-row__title {
        font-size: 1.35rem;
    }

    .projet-row__info {
        padding: 1.25rem;
    }

    .projet-row__quote {
        font-size: 0.875rem;
    }

    .projet-row__desc {
        font-size: 0.75rem;
    }

    /* --- Notre mission --- */
    .mission-video-section .wp-block-image {
        margin-top: 0;
    }

    .mission-video-section h3 {
        margin-top: 1rem;
        font-size: 1.5rem !important;
    }

    .mission-circles {
        flex-direction: column;
        align-items: center;
    }

    .mission-circle {
        width: 200px;
        height: 200px;
        padding: 1.75rem;
        font-size: 0.8125rem;
    }

    .mission-circle--left {
        margin-right: 0;
        margin-bottom: -35px;
    }

    .mission-process {
        grid-template-columns: 1fr 1fr;
        gap: 1.25rem;
        padding: 1.5rem 1rem;
        margin: 1.5rem auto;
    }

    .mission-process__title {
        font-size: 0.6875rem;
    }

    .mission-process__desc {
        font-size: 0.6875rem;
    }

    .mission-mediation {
        padding: 2rem 0;
    }

    .mission-cta-section {
        padding: 1.5rem 0;
    }

    .mission-cta-image img {
        height: 280px;
    }

    /* --- Single post --- */
    .single-hero {
        margin-top: -80px;
        padding: 1.5rem 0 2rem;
    }

    .single-hero__category {
        padding-top: 80px;
    }

    .single-hero__title {
        font-size: 1.75rem;
        max-width: 100%;
    }

    .single-hero__excerpt {
        font-size: 0.9375rem;
    }

    .single-thumbnail img {
        height: auto;
    }

    .related-posts {
        padding: 2rem 0;
    }

    .related-posts__grid {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .related-card__image img {
        height: 180px;
    }

    /* --- Contact --- */
    .contact-info-columns {
        padding: 2rem 1rem;
    }

    /* --- Galerie / Archives --- */
    .galerie-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
    }

    .galerie-grid__empty {
        display: none;
    }

    .galerie-card__image img {
        height: 140px;
    }
}

/* ==========================================================================
   RESPONSIVE — SMALL MOBILE (max 480px)
   ========================================================================== */

@media (max-width: 480px) {
    .container {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    h1 { font-size: 1.5rem; }
    h2 { font-size: 1.35rem !important; }
    h3 { font-size: 1.2rem !important; }

    .hero-col-content .hero-title {
        font-size: 1.75rem;
    }

    .hero-col-images {
        gap: 0.375rem;
    }

    .hero-col-right .wp-block-image img {
        height: 180px;
    }

    .slider-slide__item {
        height: 180px !important;
    }

    .slider-slide__title {
        font-size: 1.25rem !important;
    }

    .masonry-grid {
        columns: 1;
    }

    .masonry-card,
    .masonry-card:nth-child(n) {
        margin-top: 0 !important;
        margin-bottom: 1.25rem;
    }

    .mission-process {
        grid-template-columns: 1fr;
    }

    .mission-circle {
        width: 180px;
        height: 180px;
        padding: 1.5rem;
        font-size: 0.75rem;
    }

    .projet-row__visual {
        height: 180px;
    }

    .projet-row__visual img {
        height: 180px;
    }

    .home-fondatrices img {
        max-width: 180px;
    }

    .footer-col--cta .widget,
    .footer-col--cta .widget p,
    .footer-col--cta .widget .textwidget,
    .footer-col--cta .widget .textwidget p {
        font-size: 0.875rem;
    }
}

/* ==========================================================================
   Scroll Reveal Animations
   ========================================================================== */

/* Base : fade in simple */
.reveal {
    opacity: 0;
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.reveal--visible {
    opacity: 1;
    transform: none !important;
}

/* Images : fade + léger slide up */
.wp-block-image.reveal {
    transform: translateY(20px);
}

/* Cartes : fade simple (le stagger fait le travail) */
.masonry-card.reveal,
.home-projet-card.reveal,
.related-card.reveal {
    transform: translateY(15px);
}

/* Projet rows : slide latéral */
.projet-row.reveal {
    transform: translateX(-25px);
}

.projet-row--left.reveal {
    transform: translateX(25px);
}

/* Cercles : scale */
.mission-circle.reveal {
    transform: scale(0.85);
}

/* Process steps : fade up */
.mission-process__step.reveal {
    transform: translateY(15px);
}

/* Footer : fade simple */
.footer-main.reveal {
    transform: translateY(15px);
}

/* Respect prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
    .reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

