/* ===========================================================================
   STYLE — composants et pages (BEM, mobile-first)

     1. Boutons
     2. site-header
     3. site-footer
     4. page-intro
     5. portrait
     6. therapist-grid / therapist-card
     7. therapist-hero
     8. therapist-body / therapist-aside
     9. contact-actions
    10. aside-section / method-list
    11. rich-text / lang-tag
    12. therapist-pager
    13. Apparitions au scroll
   =========================================================================== */


/* 1. BOUTONS ---------------------------------------------------------------- */
.canopee-theme .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 20px;
    border: 2px solid transparent;
    border-radius: var(--radius-pill);
    font-family: var(--ff-text);
    font-size: var(--fs-nav);
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 200ms ease, color 200ms ease, border-color 200ms ease;
}
.canopee-theme .btn svg { flex: none; width: 20px; height: 20px; }
.canopee-theme .btn__detail { font-weight: 400; white-space: nowrap; }

.canopee-theme .btn--primary {
    background: var(--c-forest);
    color: var(--c-cream);
}
.canopee-theme .btn--primary:hover { background: var(--c-forest-dark); color: var(--c-cream); }

.canopee-theme .btn--outline {
    padding-block: 12px;
    border-color: var(--c-forest);
    color: var(--c-forest);
}
.canopee-theme .btn--outline:hover { background: var(--c-sage-100); color: var(--c-forest); }

.canopee-theme .btn--secondary {
    padding-block: 12px;
    border-color: var(--c-forest);
    color: var(--c-forest);
}
.canopee-theme .btn--secondary:hover { background: var(--c-forest); color: #fff; }

.canopee-theme .btn--pill {
    padding: 10px 20px;
    border-color: var(--c-forest);
    color: var(--c-forest);
    font-weight: 400;
}
.canopee-theme .btn--pill:hover { background: var(--c-forest); color: #fff; }


/* 2. SITE-HEADER ------------------------------------------------------------ */
.canopee-theme .site-header {
    background: var(--c-forest);
    color: var(--c-cream);
}
.canopee-theme .site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-s) var(--space-l);
    flex-wrap: wrap;
}
.canopee-theme .site-header__logo { display: block; line-height: 0; }
.canopee-theme .site-header__logo img { width: auto; height: 80px; }

.canopee-theme .site-header__toggle {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2xs);
    padding: 8px 16px;
    border: 2px solid rgba(243, 241, 234, 0.4);
    border-radius: var(--radius-pill);
    background: transparent;
    color: var(--c-cream);
    font: 600 var(--fs-ui) / 1.2 var(--ff-text);
    cursor: pointer;
}
.canopee-theme .site-header__toggle svg { width: 20px; height: 20px; }

.canopee-theme .site-nav { flex-basis: 100%; }
.canopee-theme .site-nav__list {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 0;
    padding: 0 0 var(--space-2xs);
    list-style: none;
}
.canopee-theme .site-nav__link {
    display: block;
    padding: 8px 16px;
    border-radius: var(--radius-pill);
    color: var(--c-cream);
    font-size: var(--fs-nav);
    text-decoration: none;
    transition: background-color 200ms ease;
}
.canopee-theme .site-nav__link:hover { background: rgba(243, 241, 234, 0.12); color: var(--c-cream); }
.canopee-theme .site-nav__link[aria-current="page"],
.canopee-theme .site-nav__link--ancestor { background: rgba(243, 241, 234, 0.16); }

/* Menu replié seulement quand le JS est là (sans JS, la nav reste visible) */
.js-nav .canopee-theme .site-nav[data-open="false"] { display: none; }

@media (min-width: 860px) {
    .canopee-theme .site-header__logo img { height: 100px; }
    .canopee-theme .site-header__toggle { display: none; }
    .canopee-theme .site-nav,
    .js-nav .canopee-theme .site-nav[data-open="false"] { display: block; flex-basis: auto; }
    .canopee-theme .site-nav__list { flex-direction: row; flex-wrap: wrap; gap: 6px; padding: 0; }
}
@media (max-width: 859.98px) {
    :root:not(.js-nav) .canopee-theme .site-header__toggle { display: none; }
}


/* 3. SITE-FOOTER ------------------------------------------------------------ */
.canopee-theme .site-footer {
    background: var(--c-forest);
    color: var(--c-cream);
    font-size: var(--fs-ui);
    line-height: 1.6;
}
.canopee-theme .site-footer__inner {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--space-l);
    padding-block: 56px 48px;
}
.canopee-theme .site-footer__name {
    font-family: var(--ff-display);
    font-size: 1.75rem;
    line-height: 1.2;
}
.canopee-theme .site-footer address { font-style: normal; }
.canopee-theme .site-footer__links {
    display: flex;
    flex-direction: column;
    gap: var(--space-3xs);
    margin: 0;
    padding: 0;
    list-style: none;
}
.canopee-theme .site-footer a { color: var(--c-cream); }
.canopee-theme .site-footer a:hover { color: var(--c-sage-100); }


/* 4. PAGE-INTRO ------------------------------------------------------------- */
.canopee-theme .page-intro { padding-block: var(--space-2xl) 56px; }
.canopee-theme .page-intro__content { display: flex; flex-direction: column; gap: var(--space-l); }
.canopee-theme .page-intro__title {
    font-size: var(--fs-h1);
    line-height: var(--lh-tight);
    letter-spacing: -0.01em;
}
/* Intro d'une seule langue : chapô limité à 58ch, comme la liste des thérapeutes */
.canopee-theme .page-intro .bilingual--single .bilingual__body { max-width: 58ch; font-size: 1.25rem; line-height: 1.6; }


/* 5. PORTRAIT --------------------------------------------------------------- */
.canopee-theme .portrait {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: var(--c-foliage-bg);
}
.canopee-theme .portrait img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.canopee-theme .portrait--round {
    aspect-ratio: 1;
    border: 8px solid var(--c-cream);
    border-radius: 50%;
}
/* Sans portrait : motif de feuillage neutre */
.canopee-theme .portrait--empty {
    background-color: var(--c-foliage-bg);
    background-image:
        radial-gradient(ellipse 24% 13% at 28% 28%, var(--c-foliage-1) 97%, transparent 100%),
        radial-gradient(ellipse 15% 24% at 70% 22%, var(--c-foliage-2) 97%, transparent 100%),
        radial-gradient(ellipse 28% 15% at 62% 58%, var(--c-foliage-1) 97%, transparent 100%),
        radial-gradient(ellipse 14% 22% at 24% 70%, var(--c-foliage-2) 97%, transparent 100%),
        radial-gradient(ellipse 16% 10% at 82% 84%, var(--c-foliage-1) 97%, transparent 100%);
}


/* 6. THERAPIST-GRID / THERAPIST-CARD ---------------------------------------- */
/* + marge de rythme de #main (concrete.css) ≈ 120 px avant le footer */
.canopee-theme .therapist-grid { padding-bottom: var(--space-l); }
.canopee-theme .therapist-grid__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-xl) var(--space-s);
    margin: 0;
    padding: 0;
    list-style: none;
}
@media (max-width: 359.98px) {
    .canopee-theme .therapist-grid__list { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 560px) {
    .canopee-theme .therapist-grid__list {
        grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
        gap: 56px var(--space-l);
    }
}

.canopee-theme .therapist-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: var(--space-s);
}
.canopee-theme .therapist-card__body { display: flex; flex-direction: column; gap: var(--space-3xs); }
.canopee-theme .therapist-card__name {
    font-family: var(--ff-display);
    font-size: clamp(1.25rem, 1rem + 0.8vw, var(--fs-card-name));
    line-height: 1.2;
    color: var(--c-forest);
    text-decoration: none;
}
/* Lien étendu : toute la carte est cliquable */
.canopee-theme .therapist-card__name::after { content: ''; position: absolute; inset: 0; }
.canopee-theme .therapist-card:hover .therapist-card__name,
.canopee-theme .therapist-card__name:focus-visible {
    text-decoration: underline;
    text-decoration-color: var(--c-sun);
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}
.canopee-theme .therapist-card__name:focus-visible { outline: none; }
.canopee-theme .therapist-card:has(.therapist-card__name:focus-visible) {
    outline: 2px solid var(--focus);
    outline-offset: 6px;
}
.canopee-theme .therapist-card__title {
    font-size: var(--fs-ui);
    line-height: 1.4;
    color: var(--c-ink-soft);
}
.canopee-theme .therapist-card__langs {
    margin-top: var(--space-3xs);
    font-size: var(--fs-label);
    font-weight: 600;
    letter-spacing: 0.08em;
    color: var(--c-ink-soft);
}


/* 7. THERAPIST-HERO --------------------------------------------------------- */
.canopee-theme .therapist-hero {
    background: var(--c-forest);
    color: var(--c-cream);
    border-top: 1px solid rgba(243, 241, 234, 0.15);
}
.canopee-theme .therapist-hero__inner {
    display: flex;
    flex-direction: column;
    gap: var(--space-m);
    padding-block: var(--space-xl) 96px; /* place pour le portrait qui chevauche */
}
.canopee-theme .therapist-hero__back {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: var(--space-2xs);
    font-size: var(--fs-ui);
    color: var(--c-cream);
    text-decoration: none;
}
.canopee-theme .therapist-hero__back:hover { color: var(--c-cream); text-decoration: underline; }
.canopee-theme .therapist-hero__back svg { width: 18px; height: 18px; }
.canopee-theme .therapist-hero__name {
    margin-top: var(--space-s);
    font-size: var(--fs-h1-hero);
    line-height: 1;
    letter-spacing: -0.01em;
    color: var(--c-cream);
}
.canopee-theme .therapist-hero__title {
    margin-top: calc(-1 * var(--space-s)); /* collé au nom, malgré le gap du bandeau */
    font-size: clamp(1.125rem, 1rem + 0.5vw, 1.375rem);
    color: var(--c-sage-100);
}
@media (min-width: 900px) {
    .canopee-theme .therapist-hero__inner {
        gap: 28px;
        padding-block: var(--space-xl) var(--space-3xl);
    }
    .canopee-theme .therapist-hero__name { margin-top: 40px; }
    /* Le nom occupe la colonne de texte, pas celle du portrait qui chevauche */
    .canopee-theme .therapist-hero__inner > * { max-width: calc(100% - 300px - 64px); }
}


/* 8. THERAPIST-BODY / THERAPIST-ASIDE --------------------------------------- */
.canopee-theme .therapist-body {
    display: grid;
    gap: var(--space-xl);
    padding-block: 0 var(--space-3xl);
}
.canopee-theme .therapist-aside {
    display: flex;
    flex-direction: column;
    gap: 28px;
    margin-top: -64px; /* portrait à cheval sur le bandeau */
}
.canopee-theme .therapist-aside .portrait--round { width: 160px; }

@media (min-width: 900px) {
    .canopee-theme .therapist-body {
        grid-template-columns: 340px minmax(0, 1fr);
        gap: 80px;
        align-items: start;
        padding-top: 0;
    }
    .canopee-theme .therapist-aside {
        position: sticky;
        top: var(--space-m);
        margin-top: -80px;
        z-index: var(--z-base);
    }
    .canopee-theme .therapist-aside .portrait--round { width: 100%; }
    .canopee-theme .therapist-body__text { padding-top: 72px; }
}


/* 9. CONTACT-ACTIONS -------------------------------------------------------- */
.canopee-theme .contact-actions { display: flex; flex-direction: column; gap: var(--space-xs); }
.canopee-theme .contact-actions__web {
    align-self: center;
    margin-top: var(--space-3xs);
    font-size: var(--fs-ui);
    overflow-wrap: anywhere;
}


/* 10. ASIDE-SECTION / METHOD-LIST ------------------------------------------- */
.canopee-theme .aside-section {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xs);
    padding-top: var(--space-m);
    border-top: 1px solid var(--c-rule);
}
.canopee-theme .aside-section--methods { gap: var(--space-xs); }
.canopee-theme .aside-section__label {
    font-family: var(--ff-text);
    font-size: var(--fs-label);
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--c-label);
}
.canopee-theme .aside-section__text { font-size: var(--fs-nav); }

.canopee-theme .method-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.canopee-theme .method-list__item {
    display: grid;
    grid-template-columns: 10px minmax(0, 1fr);
    gap: var(--space-xs);
    font-size: var(--fs-nav);
    line-height: 1.35;
}
.canopee-theme .method-list__item::before {
    content: '';
    width: 8px;
    height: 8px;
    margin-top: 8px;
    border-radius: 50%;
    background: var(--c-sage);
}
.canopee-theme .method-list__names { display: flex; flex-direction: column; gap: 2px; }
.canopee-theme .method-list__sub {
    font-size: 0.9375rem;
    font-style: italic;
    color: var(--c-ink-soft);
}


/* 11. RICH-TEXT / LANG-TAG -------------------------------------------------- */
.canopee-theme .rich-text-stack { display: flex; flex-direction: column; gap: var(--space-xl); }

.canopee-theme .rich-text {
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: var(--measure);
    overflow-wrap: break-word;
}
.canopee-theme .rich-text__body > * + * { margin-top: 20px; }
.canopee-theme .rich-text__body > :first-child { margin-top: 0; }
.canopee-theme .rich-text__body > p:first-child {
    font-size: var(--fs-lead);
    line-height: 1.55;
}
.canopee-theme .rich-text__body h2 {
    margin-top: 48px;
    font-size: var(--fs-h2);
    font-weight: 500;
    line-height: 1.2;
    color: var(--c-forest);
}
.canopee-theme .rich-text__body h3 {
    margin-top: 32px;
    font-size: var(--fs-h3);
    font-weight: 500;
    line-height: 1.3;
    color: var(--c-ink);
}
.canopee-theme .rich-text__body h4 {
    margin-top: 28px;
    font-family: var(--ff-text);
    font-size: var(--fs-body);
    font-weight: 600;
    color: var(--c-ink);
}
.canopee-theme .rich-text__body :where(h2, h3, h4) + * { margin-top: 12px; }
.canopee-theme .rich-text__body :where(ul, ol) {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-left: 1.2em;
}
.canopee-theme .rich-text__body li::marker { color: var(--c-forest); }
.canopee-theme .rich-text__body a {
    color: var(--c-forest);
    text-decoration-color: var(--c-sun);
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}
.canopee-theme .rich-text__body blockquote {
    margin-block: 36px;
    padding-left: var(--space-l);
    font-family: var(--ff-display);
    font-size: var(--fs-quote);
    font-style: italic;
    line-height: 1.4;
    color: var(--c-forest);
    text-wrap: balance;
}
.canopee-theme .rich-text__body blockquote p { font-size: inherit; line-height: inherit; }
.canopee-theme .rich-text__body img { border-radius: 12px; }

/* Bloc DE d'une fiche bilingue */
.canopee-theme .rich-text--boxed {
    max-width: calc(var(--measure) + 80px);
    padding: 28px var(--space-m) var(--space-l);
    border-radius: var(--radius-card);
    background: var(--c-sage-50);
}
.canopee-theme .rich-text--boxed .rich-text__body { max-width: 62ch; }
@media (min-width: 600px) {
    .canopee-theme .rich-text--boxed { padding: 36px 40px 40px; }
}

.canopee-theme .lang-tag {
    align-self: flex-start;
    padding: 3px 12px;
    border-radius: var(--radius-pill);
    background: var(--c-sage);
    color: var(--c-sage-ink);
    font-size: var(--fs-label);
    font-weight: 600;
    letter-spacing: 0.08em;
    line-height: 1.4;
}


/* 12. THERAPIST-PAGER ------------------------------------------------------- */
.canopee-theme .therapist-pager { border-top: 1px solid var(--c-rule); }
.canopee-theme .therapist-pager__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
        "all all"
        "prev next";
    gap: var(--space-m);
    align-items: center;
    padding-block: var(--space-l);
    font-size: var(--fs-nav);
}
.canopee-theme .therapist-pager__all { grid-area: all; justify-self: center; }
.canopee-theme .therapist-pager__link {
    display: flex;
    flex-direction: column;
    color: var(--c-forest);
    text-decoration: none;
}
.canopee-theme .therapist-pager__link--prev { grid-area: prev; justify-self: start; }
.canopee-theme .therapist-pager__link--next { grid-area: next; justify-self: end; text-align: right; }
.canopee-theme .therapist-pager__link:hover .therapist-pager__name { text-decoration: underline; }
.canopee-theme .therapist-pager__label { font-size: var(--fs-small); color: var(--c-ink-soft); }
.canopee-theme .therapist-pager__name {
    font-family: var(--ff-display);
    font-size: clamp(1.25rem, 1.05rem + 0.6vw, 1.5rem);
    line-height: 1.2;
}
@media (min-width: 700px) {
    .canopee-theme .therapist-pager__inner {
        grid-template-columns: 1fr auto 1fr;
        grid-template-areas: "prev all next";
    }
}


/* 13. APPARITIONS AU SCROLL ------------------------------------------------- */
/* Classe posée par main.js seulement : sans JS, tout reste visible. */
.reveal-ready .canopee-theme [data-reveal] {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity var(--dur-reveal) var(--ease-out), transform var(--dur-reveal) var(--ease-out);
}
.reveal-ready .canopee-theme [data-reveal].is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
    .reveal-ready .canopee-theme [data-reveal] { opacity: 1; transform: none; transition: none; }
}



/* ===========================================================================
   PAGES GÉNÉRALES
     15. Éléments partagés (surtitre, rangée de boutons, lien texte, titres de section)
     16. bilingual (texte FR / DE)
     17. Sections pleine largeur (feuillage)
     18. home-hero
     19. news-teaser
     20. announcement
     21. event-card / event-entry
     22. photo-grid (galeries)
     23. contact-main / map-consent
   =========================================================================== */


/* 15. ÉLÉMENTS PARTAGÉS ----------------------------------------------------- */
.canopee-theme .eyebrow {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--c-label);
}
/* Pastille orange : seul aplat orange du site (block Annonce) */
.canopee-theme .eyebrow--dot::before {
    content: '';
    flex: none;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--c-sun);
}
.canopee-theme .btn-row { display: flex; flex-wrap: wrap; gap: var(--space-xs); align-items: center; }
.canopee-theme .text-link {
    font-size: var(--fs-nav);
    color: var(--c-forest);
    text-underline-offset: 3px;
}
.canopee-theme .section-heading { margin: 0; }
.canopee-theme .section-heading--label {
    font-family: var(--ff-text);
    font-size: 0.9375rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--c-label);
}
.canopee-theme .section-heading--title {
    font-size: clamp(2rem, 1.5rem + 1.6vw, 2.75rem);
    font-weight: 400;
    line-height: 1.1;
}
/* L'intitulé colle au contenu qu'il annonce */
.canopee-theme #main > .layout-container:has(> .section-heading) { margin-bottom: 0; }
.canopee-theme #main > .layout-container:has(> .section-heading) + .layout-container { margin-top: var(--space-m); }
.canopee-theme .section-block__inner > .section-heading + * { margin-top: var(--space-l); }


/* 16. BILINGUAL (texte FR / DE) --------------------------------------------- */
.canopee-theme .bilingual__lang { display: flex; flex-direction: column; gap: var(--space-s); min-width: 0; }
.canopee-theme .bilingual__title {
    margin: 0;
    font-size: clamp(2rem, 1.4rem + 1.8vw, 2.75rem);
    font-weight: 400;
    line-height: 1.15;
}
.canopee-theme .bilingual--small .bilingual__title { font-size: clamp(1.5rem, 1.3rem + 0.6vw, 1.875rem); }

.canopee-theme .bilingual--columns {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
    gap: 40px 72px;
    align-items: start;
}
.canopee-theme .bilingual--columns .bilingual__lang { max-width: 60ch; }

.canopee-theme .bilingual--blocks { display: flex; flex-direction: column; gap: var(--space-l); }
.canopee-theme .bilingual--blocks .bilingual__lang { max-width: 64ch; }
.canopee-theme .bilingual--blocks:not(.bilingual--single) .bilingual__lang--de {
    max-width: calc(64ch + 80px);
    padding: 28px var(--space-m) var(--space-l);
    border-radius: var(--radius-card);
    background: var(--c-sage-50);
}
.canopee-theme .bilingual--blocks.bilingual--small .bilingual__lang--de .bilingual__title { font-size: 1.625rem; }
@media (min-width: 600px) {
    .canopee-theme .bilingual--blocks:not(.bilingual--single) .bilingual__lang--de { padding: 32px 40px 36px; }
}
.canopee-theme .lang-tag--outline {
    padding: 2px 11px;
    border: 1.5px solid var(--c-sage);
    background: transparent;
    color: var(--c-ink);
}

/* Sur fond vert forêt : texte et titres crème */
.canopee-theme .section-block--forest .bilingual,
.canopee-theme .section-block--forest .bilingual__title { color: var(--c-cream); }
.canopee-theme .section-block--forest .lang-tag--outline { border-color: rgba(243, 241, 234, 0.5); color: var(--c-cream); }
.canopee-theme .section-block--forest .bilingual--blocks:not(.bilingual--single) .bilingual__lang--de { background: rgba(243, 241, 234, 0.08); }


/* 17. SECTIONS PLEINE LARGEUR ----------------------------------------------- */
/* Seule texture de feuillage du site : container « Section — vert forêt, feuillage » */
.canopee-theme .section-block--leaves {
    background-image:
        radial-gradient(ellipse 30% 22% at 92% 8%, rgba(157, 202, 178, 0.10) 60%, transparent 100%),
        radial-gradient(ellipse 18% 14% at 80% 20%, rgba(157, 202, 178, 0.07) 60%, transparent 100%),
        radial-gradient(ellipse 22% 16% at 98% 30%, rgba(157, 202, 178, 0.06) 60%, transparent 100%);
}


/* 18. HOME-HERO ------------------------------------------------------------- */
.canopee-theme .home-hero {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
    gap: var(--space-xl) 64px;
    align-items: center;
    padding-block: clamp(3rem, 2rem + 4vw, 5.5rem) clamp(3.5rem, 2rem + 5vw, 6.5rem);
}
.canopee-theme .home-hero__content { display: flex; flex-direction: column; gap: var(--space-l); }
.canopee-theme .home-hero__title {
    font-size: clamp(2.75rem, 1.5rem + 4.4vw, 4.75rem);
    line-height: var(--lh-tight);
    letter-spacing: -0.01em;
}
.canopee-theme .home-hero__address { margin: 0; font-size: var(--fs-nav); line-height: 1.5; }
.canopee-theme .home-hero__address-note { color: var(--c-ink-soft); }
.canopee-theme .home-hero__media {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border-radius: 16px;
    background: var(--c-foliage-bg);
}
.canopee-theme .home-hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }


/* 19. NEWS-TEASER ----------------------------------------------------------- */
.canopee-theme .news-teaser {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
    gap: var(--space-m) 64px;
    align-items: end;
}
.canopee-theme .news-teaser > .btn { justify-self: start; }
.canopee-theme .news-teaser__text { display: flex; flex-direction: column; gap: var(--space-xs); }
.canopee-theme .news-teaser__title { font-size: clamp(2.25rem, 1.6rem + 2vw, 3rem); font-weight: 400; line-height: 1.1; }
.canopee-theme .news-teaser__title-de {
    margin: 0;
    font-family: var(--ff-display);
    font-size: clamp(1.25rem, 1.05rem + 0.6vw, 1.625rem);
    font-style: italic;
    line-height: 1.3;
    color: var(--c-label);
}


/* 20. ANNOUNCEMENT ---------------------------------------------------------- */
.canopee-theme .announcement {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
    gap: var(--space-l) 64px;
    align-items: center;
    padding: clamp(1.75rem, 1rem + 2.5vw, 3rem);
    border: 2px solid var(--c-sage);
    border-radius: var(--radius-card);
}
.canopee-theme .announcement__text { display: flex; flex-direction: column; gap: var(--space-xs); }
.canopee-theme .announcement__title { font-size: clamp(1.875rem, 1.4rem + 1.5vw, 2.5rem); font-weight: 400; line-height: 1.15; }
.canopee-theme .announcement__de { margin: 0; color: var(--c-ink-soft); }


/* 21. EVENT-CARD / EVENT-ENTRY ---------------------------------------------- */
.canopee-theme .event-card {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
    gap: var(--space-l) 64px;
    padding: clamp(1.75rem, 1rem + 2.5vw, 3rem);
    border-radius: var(--radius-card);
    background: var(--c-sage-100);
}
.canopee-theme .event-card + .event-card,
.canopee-theme #main > .layout-container:has(> .event-card) + .layout-container:has(> .event-card) { margin-top: var(--space-m); }
.canopee-theme .event-card__when { display: flex; flex-direction: column; gap: 6px; }
.canopee-theme .event-card__time {
    margin: 0;
    font-family: var(--ff-display);
    font-size: clamp(2.5rem, 1.9rem + 2vw, 3.5rem);
    line-height: 1;
    color: var(--c-forest);
}
.canopee-theme .event-card__days { margin: 0; }
.canopee-theme .event-card__days-de { margin: 0; font-size: var(--fs-ui); color: var(--c-ink-soft); }
.canopee-theme .event-card__body { display: flex; flex-direction: column; gap: var(--space-s); min-width: 0; }
.canopee-theme .event-card__title { font-size: clamp(1.875rem, 1.4rem + 1.5vw, 2.5rem); font-weight: 400; line-height: 1.1; color: var(--c-forest); }
.canopee-theme .event-card__body .btn-row { margin-top: var(--space-2xs); }
@media (min-width: 900px) {
    .canopee-theme .event-card { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
}

.canopee-theme .event-entry {
    display: grid;
    gap: var(--space-m) 64px;
    padding-block: 40px;
    border-top: 1px solid var(--c-rule);
}
.canopee-theme #main > .layout-container:has(> .event-entry) + .layout-container:has(> .event-entry) { margin-top: 0; }
.canopee-theme #main > .layout-container:has(> .event-entry):has(+ .layout-container > .event-entry) { margin-bottom: 0; }
.canopee-theme .event-entry__date { margin: 0; font-size: var(--fs-nav); color: var(--c-ink-soft); }
.canopee-theme .event-entry__body { display: flex; flex-direction: column; gap: var(--space-s); min-width: 0; }
.canopee-theme .event-entry__title { font-size: clamp(1.75rem, 1.35rem + 1.3vw, 2.25rem); font-weight: 400; line-height: 1.15; color: var(--c-forest); }
@media (min-width: 900px) {
    .canopee-theme .event-entry { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
}


/* 22. PHOTO-GRID (vues « Grille » et « Mosaïque » du block Galerie) --------- */
.canopee-theme .photo-grid {
    display: grid;
    gap: var(--space-m);
    margin: 0;
    padding: 0;
    list-style: none;
}
.canopee-theme .photo-grid__item { position: relative; overflow: hidden; border-radius: 16px; background: var(--c-foliage-bg); max-width: none; }
.canopee-theme .photo-grid__item a { display: block; height: 100%; }
.canopee-theme .photo-grid__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 400ms var(--ease-out), opacity 250ms ease;
}
.canopee-theme .photo-grid__item a:hover img { transform: scale(1.03); }
.canopee-theme .photo-grid--even { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.canopee-theme .photo-grid--even .photo-grid__item { aspect-ratio: 4 / 3; }
.canopee-theme .photo-grid--mosaic {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
    grid-auto-rows: 220px;
}
@media (min-width: 600px) {
    .canopee-theme .photo-grid--mosaic { grid-auto-rows: 280px; }
    .canopee-theme .photo-grid--mosaic .photo-grid__item:first-child { grid-column: span 2; grid-row: span 2; }
}
@media (prefers-reduced-motion: reduce) {
    .canopee-theme .photo-grid__item a:hover img { transform: none; }
}


/* 23. CONTACT-MAIN / MAP-CONSENT -------------------------------------------- */
.canopee-theme .contact-main {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
    gap: var(--space-xl) 64px;
    align-items: start;
    padding-block: var(--space-2xl) var(--space-3xl);
}
.canopee-theme .contact-main__info { display: flex; flex-direction: column; gap: 40px; }
.canopee-theme .contact-main__title { font-size: var(--fs-h1); line-height: var(--lh-tight); letter-spacing: -0.01em; }
.canopee-theme .contact-main__address { font-style: normal; font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.375rem); line-height: 1.5; }
.canopee-theme .contact-main__note { max-width: 52ch; font-size: var(--fs-nav); line-height: 1.55; color: var(--c-ink-soft); }
.canopee-theme .contact-main__map { margin-top: var(--space-m); }

.canopee-theme .map-consent {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-s);
    aspect-ratio: 4 / 3;
    padding: var(--space-l);
    overflow: hidden;
    border-radius: var(--radius-card);
    background-color: var(--c-foliage-bg);
    background-image:
        radial-gradient(ellipse 24% 13% at 28% 28%, var(--c-foliage-1) 97%, transparent 100%),
        radial-gradient(ellipse 28% 15% at 62% 58%, var(--c-foliage-1) 97%, transparent 100%),
        radial-gradient(ellipse 16% 10% at 82% 84%, var(--c-foliage-2) 97%, transparent 100%);
    text-align: center;
}
.canopee-theme .map-consent__text {
    max-width: 40ch;
    padding: var(--space-s) var(--space-m);
    border-radius: 16px;
    background: rgba(243, 241, 234, 0.92);
    font-size: var(--fs-ui);
    line-height: 1.5;
}
.canopee-theme .map-consent iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
