/*
Theme Name: Corbuilder
Description: Thème WordPress classique ultra-léger. Chaque page se compose de sections (ajout, ordre, fond, boutons avec icônes) gérées depuis le Customizer. Modules par dossier : sections, headers, footers, styles, animations, compositions, icons.
Author: Louis Corbet
Version: 2.3.2
Requires at least: 6.0
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: corbuilder
*/

:root{
	--c-primary:#2563eb;--c-primary-text:#fff;--c-secondary:#0f766e;--c-secondary-text:#fff;--c-secondary-tint:#e7f1f0;
	--radius:12px;--btn-radius:var(--radius);--section-pad:clamp(3rem,7vw,5.5rem);--divider-h:clamp(32px,5vw,64px);
	--c-text:#1f2328;--c-muted:#5b6470;--c-bg:#fff;--w:1140px;
	/* variables que les styles globaux (dossier /styles) peuvent redéfinir */
	--font-body:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
	--font-heading:var(--font-body);--heading-weight:700;--heading-spacing:0;
	--bar-display:block;--bar-w:56px;--bar-h:4px;
	--subtitle-transform:none;--subtitle-spacing:0;--subtitle-size:1.1rem
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--c-bg);color:var(--c-text);font:17px/1.65 var(--font-body);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:var(--c-primary)}
a:hover{text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-heading);font-weight:var(--heading-weight);letter-spacing:var(--heading-spacing);line-height:1.25}
p,ul,ol,blockquote,figure,pre{margin:0 0 1.2em}
.wrap{width:100%;max-width:var(--w);margin-inline:auto;padding-inline:1.25rem}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link:focus{position:fixed;top:.5rem;left:.5rem;width:auto;height:auto;clip:auto;background:#fff;color:#000;padding:.75rem 1rem;z-index:100}
.alignleft{float:left;margin:0 1.2em 1em 0}.alignright{float:right;margin:0 0 1em 1.2em}.aligncenter{margin-inline:auto}
.entry-content img{border-radius:var(--radius)}

/* Boutons (champ « bouton » des sections, blocs bouton, formulaires) */
.btn,.wp-block-button__link,button,input[type=submit]{display:inline-flex;align-items:center;gap:.5em;padding:.7em 1.4em;border:2px solid var(--c-primary);border-radius:var(--btn-radius);background:var(--c-primary);color:var(--c-primary-text);font:inherit;font-weight:600;line-height:1.2;text-decoration:none;cursor:pointer}
.btn:hover,.wp-block-button__link:hover,button:hover,input[type=submit]:hover{filter:brightness(.92)}
.btn__icon{width:1.15em;height:1.15em;flex:none}
img.btn__icon{object-fit:contain}
.btn__icon--mask{background:currentColor;-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat}
.btn-outline .btn,.btn-outline .wp-block-button__link{background:transparent;color:var(--c-primary)}
.is-light-text .btn{background:#fff;border-color:#fff;color:#111827}
.btn-outline .is-light-text .btn{background:transparent;color:#fff}
.hero__actions,.section__actions,.card__actions{margin-top:1.4rem}
.hero__actions{display:flex;flex-wrap:wrap;gap:.8rem}

/* Barre d'annonce */
.announce{background:var(--c-primary);color:var(--c-primary-text);font-size:.9em}
.announce[hidden]{display:none}
.announce__inner{display:flex;align-items:center;justify-content:center;gap:1rem;padding-block:.5rem;text-align:center;position:relative}
.announce a{color:inherit}
.announce__close{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);padding:.1rem .6rem;border:0;background:transparent;color:inherit;font-size:1.4rem;line-height:1}

/* En-tête (la mise en page des variantes est dans /headers) */
.site-header{background:var(--header-bg,#fff);border-bottom:1px solid var(--header-line,rgba(0,0,0,.08))}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.9rem;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.75rem}
.custom-logo-link{display:block}
.custom-logo{max-height:56px;width:auto}
.site-title{font-family:var(--font-heading);font-weight:700;font-size:1.25rem;color:var(--header-fg,var(--c-text));text-decoration:none}
.main-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:1.5rem;flex-wrap:wrap}
.main-nav a{color:var(--header-fg,var(--c-text));text-decoration:none;padding:.25rem 0;border-bottom:2px solid transparent}
.main-nav a:hover,.main-nav .current-menu-item>a{color:var(--header-hover,var(--c-primary));border-color:var(--header-hover,var(--c-primary))}
.main-nav .sub-menu a{color:var(--c-text)}
.main-nav .sub-menu a:hover,.main-nav .sub-menu .current-menu-item>a{color:var(--c-primary);border-color:var(--c-primary)}
/* Petite flèche à côté des liens qui ont des sous-éléments */
.main-nav .menu-item-has-children>a::after{content:"";display:inline-block;width:.42em;height:.42em;margin-left:.5em;border:solid currentColor;border-width:0 2px 2px 0;transform:translateY(-.15em) rotate(45deg);transition:transform .2s}
.main-nav .menu-item-has-children:hover>a::after,.main-nav .menu-item-has-children:focus-within>a::after{transform:translateY(.05em) rotate(-135deg)}
@media(prefers-reduced-motion:reduce){.main-nav .menu-item-has-children>a::after{transition:none}}
.main-nav li{position:relative}
.main-nav .sub-menu{display:none;position:absolute;left:0;top:100%;background:#fff;padding:.75rem 1rem;flex-direction:column;gap:.5rem;min-width:190px;border-radius:var(--radius);box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:20}
.main-nav li:hover>.sub-menu,.main-nav li:focus-within>.sub-menu{display:flex}
.nav-toggle{display:none;position:relative;flex:none;width:44px;height:44px;padding:0;border:0;background:none;color:var(--header-fg,var(--c-text));cursor:pointer}
.nav-toggle__bars,.nav-toggle__bars::before,.nav-toggle__bars::after{position:absolute;width:22px;height:2px;border-radius:2px;background:currentColor;transition:transform .25s,top .25s,background-color .25s}
.nav-toggle__bars{top:21px;left:11px}
.nav-toggle__bars::before,.nav-toggle__bars::after{content:"";left:0}
.nav-toggle__bars::before{top:-7px}
.nav-toggle__bars::after{top:7px}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars{background:transparent}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before{top:0;transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after{top:0;transform:rotate(-45deg)}
.nav-toggle:focus-visible{outline:2px solid currentColor;outline-offset:-4px;border-radius:6px}
@media(prefers-reduced-motion:reduce){.nav-toggle__bars,.nav-toggle__bars::before,.nav-toggle__bars::after{transition:none}}
@media(max-width:768px){
	.nav-toggle{display:block}
	.header-inner{gap:.5rem}
	.brand{gap:.5rem;min-width:0}
	.custom-logo{max-height:34px;max-width:45vw}
	.site-title{font-size:1.05rem;line-height:1.2;overflow-wrap:anywhere}
	.hide-name-mobile .brand .site-title{display:none}
	.main-nav{display:none;width:100%}
	.main-nav.is-open{display:block}
	.main-nav ul{flex-direction:column;gap:.5rem}
	.main-nav .sub-menu{display:flex;position:static;box-shadow:none;padding:.25rem 0 .25rem 1rem}
	.has-header-color .main-nav .sub-menu{background:transparent}
	.has-header-color .main-nav .sub-menu a{color:var(--header-fg)}
	.has-header-color .main-nav .sub-menu a:hover{color:var(--header-hover);border-color:var(--header-hover)}
}
/* Menu en boutons (« Appel à l'action » ou « Boutons ») : forme et remplissage suivent les réglages de boutons */
.main-nav--has-buttons>ul{align-items:center}
.main-nav>ul>li>a.btn{padding:.5em 1.15em;border:2px solid var(--c-primary);color:var(--c-primary-text)}
.btn-outline .main-nav>ul>li>a.btn{color:var(--c-primary)}
.header-transparent .main-nav>ul>li>a.btn{background:#fff;border-color:#fff;color:#111827}
.btn-outline .header-transparent .main-nav>ul>li>a.btn{background:transparent;color:#fff}
@media(max-width:768px){.main-nav--has-buttons>ul{align-items:stretch}.main-nav>ul>li>a.btn{display:flex;justify-content:center}}
/* Menu en boutons sur un en-tête de couleur choisie : boutons inversés */
.has-header-color .main-nav>ul>li>a.btn{background:var(--header-fg);border-color:var(--header-fg);color:var(--header-bg)}
.btn-outline.has-header-color .main-nav>ul>li>a.btn{background:transparent;border-color:currentColor;color:var(--header-fg)}
/* En-tête transparent sur un bandeau (réglage « En-tête ») */
.header-transparent .site-header{position:absolute;left:0;right:0;z-index:30;background:transparent;border-bottom:0}
.header-transparent .site-title,.header-transparent .main-nav>ul>li>a{color:#fff}
.header-transparent .nav-toggle{color:#fff;border-color:rgba(255,255,255,.6)}
.header-transparent .site-main>.section--hero:first-child{padding-top:calc(var(--section-pad) + 4.5rem)}
/* En-tête fixe (réglage « En-tête ») : il se masque quand on descend et réapparaît dès qu'on remonte */
.has-sticky-header .site-header{position:sticky;top:var(--wp-admin--admin-bar--height,0px);z-index:40;transition:transform .3s ease,background-color .3s ease}
.has-sticky-header .site-header.is-hidden{transform:translateY(-100%)}
.header-transparent.has-sticky-header .site-header{position:fixed;left:0;right:0}
.header-transparent .site-header.is-stuck{background:var(--header-bg,#fff);border-bottom:1px solid var(--header-line,rgba(0,0,0,.08))}
.header-transparent .site-header.is-stuck .site-title,.header-transparent .site-header.is-stuck .main-nav>ul>li>a,.header-transparent .site-header.is-stuck .nav-toggle{color:var(--header-fg,var(--c-text))}
.header-transparent .site-header.is-stuck .main-nav>ul>li>a.btn{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-primary-text)}
.btn-outline.header-transparent .site-header.is-stuck .main-nav>ul>li>a.btn{background:transparent;color:var(--c-primary)}
.has-header-color.header-transparent .site-header.is-stuck .main-nav>ul>li>a.btn{background:var(--header-fg);border-color:var(--header-fg);color:var(--header-bg)}
@media(prefers-reduced-motion:reduce){.has-sticky-header .site-header{transition:none}}

/* Sections : fond commun (image + couleur par-dessus) */
.section{position:relative;isolation:isolate;overflow:hidden;padding:var(--section-pad) 0}
.section::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--sec-overlay,transparent)}
.section__bgimg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.section.is-light-text{color:#fff}
.is-light-text a:not(.btn){color:inherit}
.is-light-text .section__subtitle{color:inherit;opacity:.9}
/* Transitions : le bas de la section est DÉCOUPÉ (masque), la suivante remonte dessous et son contenu redescend d'autant */
.section.has-divider{padding-bottom:max(var(--section-pad),calc(var(--divider-h) + 1rem));-webkit-mask-image:linear-gradient(#000,#000),var(--cut);mask-image:linear-gradient(#000,#000),var(--cut);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% calc(100% - var(--divider-h) + 1px),100% var(--divider-h);mask-size:100% calc(100% - var(--divider-h) + 1px),100% var(--divider-h);-webkit-mask-position:top,bottom;mask-position:top,bottom}
.has-divider--wave{--cut:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath d='M0,0 L1440,0 L1440,40 C1200,0 960,80 720,40 C480,0 240,80 0,40 Z'/%3E%3C/svg%3E")}
.has-divider--curve{--cut:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath d='M0,0 L1440,0 L1440,80 C1080,0 360,0 0,80 Z'/%3E%3C/svg%3E")}
.has-divider--diagonal{--cut:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath d='M0,0 L1440,0 L1440,10 L0,80 Z'/%3E%3C/svg%3E")}
.sec-z-1{z-index:1}.sec-z-2{z-index:2}.sec-z-3{z-index:3}.sec-z-4{z-index:4}.sec-z-5{z-index:5}.sec-z-6{z-index:6}.sec-z-7{z-index:7}.sec-z-8{z-index:8}.sec-z-9{z-index:9}.sec-z-10{z-index:10}.sec-z-11{z-index:11}.sec-z-12{z-index:12}.sec-z-13{z-index:13}.sec-z-14{z-index:14}.sec-z-15{z-index:15}.sec-z-16{z-index:16}.sec-z-17{z-index:17}.sec-z-18{z-index:18}.sec-z-19{z-index:19}
.section.after-divider{margin-top:calc(var(--divider-h) * -1);padding-top:calc(var(--section-pad) + var(--divider-h))}
.section-band{position:relative;z-index:0;height:var(--divider-h);margin-top:calc(var(--divider-h) * -1);background:var(--footer-bg,var(--c-secondary))}
.section-band--page{background:var(--c-bg)}
.hide-mobile{}.hide-desktop{}
@media(max-width:768px){.hide-mobile{display:none!important}}
@media(min-width:769px){.hide-desktop{display:none!important}}

.section__head{max-width:720px;margin:0 auto var(--head-end,3.5rem);text-align:center}
.section__head--left{margin-left:0;text-align:left}
.section__head--right{margin-right:0;text-align:right}
.section__head--left .section__title::after{margin-left:0;margin-right:auto}
.section__head--right .section__title::after{margin-left:auto;margin-right:0}
.section__title{margin:0 0 var(--head-title-gap,.75rem);font-size:clamp(1.7rem,3.5vw,2.4rem)}
.section__title::after{content:"";display:var(--bar-display);width:var(--bar-w);height:var(--bar-h);border-radius:4px;background:var(--c-primary);margin:.7rem auto 0}
.section__subtitle{margin:0 0 var(--head-sub-gap,1.5rem);font-size:var(--subtitle-size);font-weight:600;color:var(--c-primary);text-transform:var(--subtitle-transform);letter-spacing:var(--subtitle-spacing)}
.section__title+.section__text{margin-top:var(--head-sub-gap,1.5rem)} /* titre suivi directement du texte : même écart que sous-titre → texte */
.section__text p:last-child{margin-bottom:0}

/* Section : Image Head */
.section--hero{display:flex;align-items:center;min-height:clamp(380px,62vh,640px)}
.section--hero>.wrap{width:100%}
.hero__title{margin:0 0 var(--head-sub-gap,1.5rem);font-size:clamp(2rem,5vw,3.4rem);line-height:1.15}
.hero__text{max-width:640px;font-size:1.15rem}
.hero__text p:last-child{margin-bottom:0}
.hero__title--sub{margin-bottom:var(--head-title-gap,.75rem)}
.hero--align-center{text-align:center}
.hero--align-center .hero__text{margin-inline:auto}
.hero--align-center .hero__actions{justify-content:center}
.hero--align-right{text-align:right}
.hero--align-right .hero__text{margin-left:auto}
.hero--align-right .hero__actions{justify-content:flex-end}

/* Section : Image + texte */
.single__grid{display:grid;gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
@media(min-width:800px){
	.single__grid{grid-template-columns:1fr 1fr}
	.single__grid--noimg{grid-template-columns:1fr}
	.single__grid--right .single__img,.single__grid--right .single__media{order:2}
}
.single__img img{width:100%;border-radius:var(--radius)}
.single__img--shadow-soft img{box-shadow:0 6px 18px rgba(0,0,0,.14)}
.single__img--shadow-strong img{box-shadow:0 18px 44px rgba(0,0,0,.32)}
/* Section : Texte + éléments (la grille d'images 2 × 2 remplace l'image d'« Image + texte ») */
.elements{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.elements--n1{grid-template-columns:minmax(0,1fr)}
.elements__item{margin:0}
.elements__img img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:var(--radius)}
.elements--ratio-43 .elements__img img{aspect-ratio:4/3}
.elements--ratio-32 .elements__img img{aspect-ratio:3/2}
.elements--shadow-soft .elements__img img{box-shadow:0 6px 18px rgba(0,0,0,.14)}
.elements--shadow-strong .elements__img img{box-shadow:0 18px 44px rgba(0,0,0,.32)}
.elements__caption{margin-top:.5rem;font-size:.9rem;line-height:1.4;text-align:center;opacity:.85}
.single .section__title::after{margin-left:0}

/* Section : Cartes */
.cards__grid{display:grid;gap:1.75rem;grid-template-columns:repeat(auto-fit,minmax(260px,360px));justify-content:center}
.card{display:flex;flex-direction:column;background:#fff;color:var(--c-text);border-radius:var(--radius);overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.08),0 8px 24px rgba(0,0,0,.05)}
.card a:not(.btn){color:var(--c-primary)}
.card__img img{width:100%;aspect-ratio:16/10;object-fit:cover}
.card__body{padding:1.4rem 1.5rem 1.7rem}
.card__title{margin:0 0 .5rem;font-size:1.25rem}
.card__text p:last-child{margin-bottom:0}
.card-strong .card{box-shadow:0 2px 4px rgba(0,0,0,.12),0 18px 44px rgba(0,0,0,.28)}
.card-border .card{box-shadow:none;border:1px solid rgba(0,0,0,.14)}
.card-flat .card{box-shadow:none}

/* Section : Plan du site */
.sitemap__list,.sitemap__list ul{list-style:none;margin:0;padding:0}
.sitemap__list{column-count:var(--cols,2);column-gap:2.5rem}
.sitemap__list li{break-inside:avoid;padding:.3rem 0}
.sitemap__list ul{margin:.2rem 0 .2rem .35rem;padding-left:1rem;border-left:2px solid var(--c-secondary)}
.sitemap__list a{color:inherit;text-decoration:none;font-weight:600}
.sitemap__list ul a{font-weight:400}
.sitemap__list a:hover{color:var(--c-primary);text-decoration:underline}
.is-light-text .sitemap__list a:hover{color:inherit}
@media(max-width:600px){.sitemap__list{column-count:1}}

/* Section : Composant (compositions et motifs) */
.reusable__content>:last-child{margin-bottom:0}
.reusable__empty{margin:0;text-align:center;opacity:.6}
.corbuilder-contact{max-width:640px;margin-inline:auto}

/* Animations : le contenu reste visible sans la classe « js » (posée seulement par le script) */
.no-anim .anim{opacity:1!important;transform:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.anim{opacity:1!important;transform:none!important;transition:none!important}}

/* Contenu classique (pages sans section, articles) */
.content-area{padding-block:2.5rem}
.entry{margin-bottom:3rem}
.entry-title{margin-top:0}
.entry-title a{color:inherit;text-decoration:none}
.entry-title a:hover{color:var(--c-primary)}
.entry-meta{font-size:.85em;color:var(--c-muted);margin-bottom:1rem}
.entry-thumb{display:block;margin-bottom:1rem}
.entry-thumb img{width:100%;border-radius:var(--radius)}
.page-title{margin-top:0}
.nav-links{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:2rem}
.page-numbers{padding:.3rem .7rem;border:1px solid rgba(0,0,0,.2);border-radius:var(--radius);text-decoration:none}
.page-numbers.current{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-primary-text)}
.search-form{display:flex;gap:.5rem}
.search-field{flex:1;min-width:0}
.comments-area{margin-top:3rem}
.comment-list{list-style:none;padding:0}
.comment-list .children{list-style:none;padding-left:1.5rem}

/* Pied de page (la mise en page des variantes est dans /footers) */
.site-footer{background:var(--footer-bg,var(--c-secondary));color:var(--footer-fg,var(--c-secondary-text));font-size:.9em}
.site-footer a{color:var(--footer-fg,var(--c-secondary-text))}
.footer-inner{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:2rem}
.footer-text p{margin:0}
.footer-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:1.25rem;flex-wrap:wrap}

/* Section : Équipe (à ajouter à la fin de style.css) */
.team__grid{--cols:3;display:grid;gap:3.5rem 1.75rem;grid-template-columns:repeat(var(--cols),minmax(0,1fr));justify-items:center}
.team__grid--cols-2{--cols:2}.team__grid--cols-3{--cols:3}.team__grid--cols-4{--cols:4}.team__grid--cols-5{--cols:5}
@media(max-width:960px){.team__grid--cols-3,.team__grid--cols-4,.team__grid--cols-5{--cols:2}}
@media(max-width:560px){.team__grid{--cols:1!important}}
.team__member{width:100%;max-width:340px;text-align:center}
.team__photo{margin:0 auto 1rem}
.team__photo img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:var(--radius)}
.team__grid--round .team__photo{max-width:240px}
.team__grid--round .team__photo img{border-radius:50%}
.team__name{margin:0 0 .15rem;font-size:1.2rem}
.team__role{margin:0;font-weight:600;color:var(--c-primary)}
.team__degree{margin:.15rem 0 0;font-size:.9em;font-style:italic;opacity:.75}
.team__text{margin-top:.75rem;font-size:.95em}
.team__text p:last-child{margin-bottom:0}
.team__contact{display:flex;flex-direction:column;align-items:center;gap:.35rem;margin:.9rem 0 0;padding:0;list-style:none;font-size:.95em}
.team__contact li{display:flex;align-items:center;gap:.5rem}
.team__contact-icon{display:inline-flex;flex:none;width:1.05em;height:1.05em;color:var(--c-primary)}
.team__contact-svg{width:100%;height:100%}
.team__contact a{color:inherit;text-decoration:none;word-break:break-word}
.team__contact a:hover{color:var(--c-primary);text-decoration:underline}
.is-light-text .team__role{color:inherit;opacity:.9}

/* Modèle des articles */
.post-header{max-width:820px;margin-inline:auto}
.post-header__title{margin:0 0 .6rem;font-size:clamp(2rem,4.6vw,3rem);line-height:1.15}
.post-meta{margin:0 0 1.2rem;font-size:.9em;color:var(--c-muted)}
.post-meta__item+.post-meta__item::before{content:"·";margin:0 .55em}
.post-meta a{color:inherit}
.is-light-text .post-meta{color:inherit;opacity:.85}
.post-header__image{margin-top:1.5rem}
.post-header__image img{width:100%;border-radius:var(--radius)}
.post-header--banner{padding-block:clamp(1.5rem,5vw,3.5rem);text-align:center}
.post-content{margin-inline:auto}
.post-content--narrow{max-width:680px}.post-content--medium{max-width:820px}.post-content--wide{max-width:none}
.post-content>:last-child{margin-bottom:0}
.post-nav{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;max-width:820px;margin-inline:auto}
.post-nav__link{display:flex;flex-direction:column;max-width:48%;padding:1rem 1.25rem;border:1px solid rgba(0,0,0,.14);border-radius:var(--radius);color:inherit;text-decoration:none}
.post-nav__link--next{margin-left:auto;text-align:right}
.post-nav__label{font-size:.8em;opacity:.7}
.post-nav__title{font-weight:600}
.post-nav__link:hover .post-nav__title{color:var(--c-primary)}
@media(max-width:560px){.post-nav__link{max-width:100%;width:100%}}
.section--post-comments .comments-area{max-width:820px;margin:0 auto}

/* Section : Liste d'articles */
.posts__grid{--cols:3;display:grid;gap:1.75rem;grid-template-columns:repeat(var(--cols),minmax(0,1fr))}
.posts__grid--cols-2{--cols:2}.posts__grid--cols-3{--cols:3}.posts__grid--cols-4{--cols:4}
@media(max-width:960px){.posts__grid--cols-3,.posts__grid--cols-4{--cols:2}}
@media(max-width:560px){.posts__grid{--cols:1!important}}
.post-card .card__img{display:block}
.post-card__meta,.post-row__meta{margin:0 0 .4rem;font-size:.8em;opacity:.7}
.post-card .card__title a,.post-row__title a{color:inherit;text-decoration:none}
.post-card .card__title a:hover,.post-row__title a:hover{color:var(--c-primary)}
.posts__list{display:grid;gap:1.5rem;max-width:880px;margin-inline:auto}
.post-row{display:grid;gap:1.25rem;grid-template-columns:1fr;padding-bottom:1.5rem;border-bottom:1px solid rgba(0,0,0,.12)}
@media(min-width:640px){.post-row--has-image{grid-template-columns:200px 1fr}}
.post-row__img{display:block}
.post-row__img img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius)}
.post-row__title{margin:0 0 .3rem;font-size:1.25rem}
.post-row__excerpt p{margin:0}
.is-light-text .post-row{border-color:rgba(255,255,255,.3)}

/* Pied de page : navigation et liens légaux */
.footer-nav a{text-decoration:none;opacity:.9}
.footer-nav a:hover{text-decoration:underline;opacity:1}
.footer-nav .sub-menu{list-style:none;margin:.3rem 0 0 .9rem;padding:0;display:flex;flex-direction:column;gap:.3rem;font-size:.95em}
.footer-legal-bar{position:relative;font-size:.85em}
.footer-legal-bar::before{content:"";position:absolute;left:0;right:0;top:0;border-top:1px solid currentColor;opacity:.25}
.footer-legal-bar .wrap{padding-block:1rem}
.footer-legal ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem 1.25rem}
.footer-legal a{text-decoration:none;opacity:.85}
.footer-legal a:hover{text-decoration:underline;opacity:1}

/* Formulaires : champs, listes déroulantes, cases, fichiers, messages (Contact Form 7, commentaires, recherche) */
.site-main input:not([type=submit]):not([type=button]):not([type=reset]):not([type=image]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=hidden]),.site-main select,.site-main textarea{width:100%;padding:.65rem .85rem;border:1px solid rgba(0,0,0,.28);border-radius:var(--radius);background:#fff;color:var(--c-text);font:inherit;line-height:1.4}
.site-main textarea{min-height:9rem;resize:vertical}
.site-main select{-webkit-appearance:none;appearance:none;padding-right:2.6rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6470' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;background-size:1.1rem;cursor:pointer}
.site-main select[multiple],.site-main select[size]:not([size="1"]){background-image:none;padding-right:.85rem}
.site-main input::placeholder,.site-main textarea::placeholder{color:#8a919c;opacity:1}
.site-main input:not([type=submit]):not([type=button]):not([type=reset]):not([type=image]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=hidden]):focus,.site-main select:focus,.site-main textarea:focus{outline:2px solid var(--c-primary);outline-offset:1px;border-color:var(--c-primary)}
.site-main input:not([type=submit]):not([type=button]):not([type=reset]):not([type=image]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=hidden]):disabled,.site-main select:disabled,.site-main textarea:disabled{opacity:.6;cursor:not-allowed}
.site-main input[type=checkbox],.site-main input[type=radio]{flex:none;width:1.15em;height:1.15em;margin:0 .5em 0 0;accent-color:var(--c-primary);vertical-align:-.15em}
.site-main input[type=range]{width:100%;accent-color:var(--c-primary)}
.site-main input[type=file]{width:100%;padding:.5rem;border:1px dashed rgba(0,0,0,.35);border-radius:var(--radius);background:#fff;color:var(--c-text);font:inherit}
.site-main input[type=file]::file-selector-button{margin-right:.8rem;padding:.45rem .9rem;border:0;border-radius:var(--btn-radius);background:var(--c-primary);color:var(--c-primary-text);font:inherit;font-weight:600;cursor:pointer}
.site-main form label{font-weight:600}
.site-main form p{margin:0 0 1rem}
.wpcf7-form-control-wrap{display:block;margin-top:.3rem}
.wpcf7-list-item{display:block;margin:.3rem 0}
.wpcf7-list-item label,.comment-form-cookies-consent label{display:inline-flex;align-items:center;font-weight:400}
.wpcf7-not-valid-tip{display:block;margin-top:.3rem;color:#b42318;font-size:.85em}
.is-light-text .wpcf7-not-valid-tip{color:#ffd7d3}
.wpcf7-not-valid{border-color:#b42318!important}
.wpcf7-response-output{margin:1rem 0 0!important;padding:.7rem 1rem!important;border-radius:var(--radius)}
.wpcf7-spinner{margin:0 0 0 .75rem;vertical-align:middle}

/* Image Head : hauteur du bandeau */
.section--hero.hero--h-compact{min-height:clamp(240px,38vh,380px)}
.section--hero.hero--h-tall{min-height:clamp(520px,82vh,840px)}
.section--hero.hero--h-full{min-height:100vh;min-height:100svh}

/* Image + texte : alignement du texte */
.single__body--align-right{text-align:right}
.single__body--align-center{text-align:center}
.single__body--align-justify .section__text{text-align:justify;-webkit-hyphens:auto;hyphens:auto}
.single__body--align-right .section__title::after{margin-left:auto;margin-right:0}
.single__body--align-center .section__title::after{margin-inline:auto}
.single__body--align-right .section__actions{display:flex;justify-content:flex-end}
.single__body--align-center .section__actions{display:flex;justify-content:center}

/* Bouton de fin de section */
.section__end-button{display:flex;margin-top:var(--end-gap,3rem)}
.section__end-button--center{justify-content:center}
.section__end-button--left{justify-content:flex-start}
.section__end-button--right{justify-content:flex-end}

/* Cartes : colonnes au choix, éléments enrichis, mise en avant, tarifs */
.cards__grid[class*="cards__grid--cols-"]{--cols:3;grid-template-columns:repeat(var(--cols),minmax(0,1fr));justify-content:stretch}
.cards__grid.cards__grid--cols-2{--cols:2}.cards__grid.cards__grid--cols-3{--cols:3}.cards__grid.cards__grid--cols-4{--cols:4}.cards__grid.cards__grid--cols-5{--cols:5}
@media(max-width:960px){.cards__grid.cards__grid--cols-3,.cards__grid.cards__grid--cols-4,.cards__grid.cards__grid--cols-5{--cols:2}}
@media(max-width:560px){.cards__grid[class*="cards__grid--cols-"]{--cols:1!important}}
.card{position:relative}
.card__body{display:flex;flex:1;flex-direction:column}
.card__actions{margin-top:auto;padding-top:1.2rem}
.card__badge{position:absolute;top:.8rem;right:.8rem;z-index:2;padding:.2rem .7rem;border-radius:999px;background:var(--c-primary);color:var(--c-primary-text);font-size:.75rem;font-weight:700;letter-spacing:.02em}
.card__icon{display:inline-flex;margin-bottom:.8rem;color:var(--icon-color,var(--c-primary))}
.card__icon-svg{width:2.2rem;height:2.2rem}
.card__subtitle{margin:-.2rem 0 .6rem;font-weight:600;color:var(--c-primary)}
.card__price{display:flex;align-items:baseline;gap:.35rem;margin:.2rem 0 .8rem}
.card__price-amount{font-family:var(--font-heading);font-size:2rem;font-weight:700;line-height:1}
.card__price-note{font-size:.9rem;opacity:.7}
.card__features{list-style:none;margin:0 0 1rem;padding:0}
.card__features li{display:flex;align-items:flex-start;gap:.6rem;margin:.35rem 0}
.card__point-icon{display:inline-flex;flex:none;width:1.15em;height:1.15em;margin-top:.28em;color:var(--icon-color,var(--c-primary))}
.card__point-svg{width:100%;height:100%}
.card__footer{margin:1rem 0 0;font-size:.85rem;opacity:.7}
/* Mise en avant : « bordure » (tracée par-dessus l'image) et/ou « taille augmentée » (propriété scale, indépendante des animations) */
.card--featured-border,.card--featured-size{isolation:isolate}
.card--featured-border::after{content:"";position:absolute;inset:0;z-index:3;border:solid var(--card-bc,var(--c-primary));border-width:var(--card-bw,3px);border-radius:inherit;pointer-events:none}
.card--featured-size{z-index:1;scale:1.05}
@media(max-width:560px){.card--featured-size{scale:1.03}}
/* Groupes d'une carte : en-tête, contenu, pied ; chacun avec son alignement */
.card__header,.card__content{display:flex;flex-direction:column}
.card__align--left{text-align:left}
.card__align--center{text-align:center}
.card__align--right{text-align:right}
.card__align--center .card__icon{justify-content:center}
.card__align--right .card__icon{justify-content:flex-end}
.card__align--center .card__price{justify-content:center}
.card__align--right .card__price{justify-content:flex-end}
.card__align--center .card__features{align-self:center}
.card__align--right .card__features{align-self:flex-end}
.card__align--center .card__features,.card__align--right .card__features{text-align:left}
/* Image en fond de carte, couleur par-dessus (comme le fond des sections) */
.card--bg{isolation:isolate;min-height:20rem;background:transparent}
.card--bg::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--card-overlay,transparent)}
.card__bgimg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.card--light{color:#fff}
.card--light a:not(.btn){color:inherit}
.card--light .card__subtitle{color:inherit}
.card--light .card__icon,.card--light .card__point-icon{color:var(--icon-color,inherit)}
.card--light .card__subtitle{opacity:.9}
.card--light .btn{background:#fff;border-color:#fff;color:#111827}
.btn-outline .card--light .btn{background:transparent;color:#fff}

/* Densité « Aérée » des cartes (sections Cartes et Liste) */
.cards__grid--airy{gap:2.5rem}
.cards__list--airy{gap:2.25rem}
.cards__grid--airy .card__body,.cards__list--airy .card__body{gap:.55rem;padding:2.1rem 2.3rem 2.4rem}
.cards__grid--airy .card__features li,.cards__list--airy .card__features li{margin:.55rem 0}
.cards__grid--airy .card__text,.cards__list--airy .card__text{line-height:1.75}

/* Section : Liste (les cartes, une par ligne : image à gauche, texte à droite) */
.cards__list{display:grid;gap:1.5rem}
.cards__list .card{flex-direction:row}
.cards__list .card__img{position:relative;flex:0 0 min(34%,320px);min-height:10rem}
.cards__list .card__img img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.cards__list .card--featured-size{scale:1.03}
.cards__list .card--img-right{flex-direction:row-reverse}
.cards__list .card--bg{min-height:12rem}
@media(max-width:640px){.cards__list .card{flex-direction:column}.cards__list .card__img{flex:none;min-height:0;aspect-ratio:16/10}}

/* Section : Bandeau défilant (défilement continu, boucle sans coupure) */
.marquee{overflow:hidden}
.marquee__track{display:flex;width:max-content;animation:corbuilder-marquee var(--marquee-dur,40s) linear infinite}
.marquee--reverse .marquee__track{animation-direction:reverse}
.marquee--pause:hover .marquee__track,.marquee--pause:focus-within .marquee__track{animation-play-state:paused}
.marquee__list{display:flex;align-items:center;flex:none;gap:var(--marquee-gap,48px);margin:0;padding:0 var(--marquee-gap,48px) 0 0;list-style:none}
.marquee__item{margin:0;flex:none}
/* Arrondi des images : celui du style global (ou rond, comme les photos de l'équipe) */
.marquee{--marquee-radius:var(--radius)}
.marquee--round{--marquee-radius:50%}
.marquee__item a{display:block;overflow:hidden;border-radius:var(--marquee-radius)}
.marquee__img{display:block;height:var(--marquee-h,80px);width:auto;max-width:none;border-radius:var(--marquee-radius)}
.marquee--round .marquee__img{width:var(--marquee-h,80px);aspect-ratio:1/1;object-fit:cover}
/* Image avec lien : léger zoom au survol, comme dans la galerie */
.marquee__item a .marquee__img{transition:transform .3s}
.marquee__item a:hover .marquee__img{transform:scale(1.04)}
@keyframes corbuilder-marquee{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marquee__item a .marquee__img{transition:none}.marquee__item a:hover .marquee__img{transform:none}}
@media(prefers-reduced-motion:reduce){.marquee{overflow-x:auto}.marquee__track{animation:none}.marquee [aria-hidden="true"]{display:none}}

/* Section : Compteurs */
.counters{--cols:4;display:grid;gap:2.5rem 1.75rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.counters[class*="counters--cols-"]{grid-template-columns:repeat(var(--cols),minmax(0,1fr))}
.counters--cols-2{--cols:2}.counters--cols-3{--cols:3}.counters--cols-4{--cols:4}.counters--cols-5{--cols:5}
@media(max-width:960px){.counters--cols-3,.counters--cols-4,.counters--cols-5{--cols:2}}
@media(max-width:560px){.counters[class*="counters--cols-"]{--cols:1}}
.counter{text-align:center}
.counter__value{display:block;font-size:clamp(2.6rem,5.2vw,3.8rem);font-weight:700;line-height:1.1;color:var(--counter-color,var(--c-primary));font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.counter__fix{font-size:.45em;font-weight:600;letter-spacing:0}
.counter__fix--normal{font-size:.55em}
.counter__fix--sup{vertical-align:super;line-height:0}
.counter__fix--sub{vertical-align:sub;line-height:0}
.counter__fix--before{margin-right:.2em}
.counter__fix--after{margin-left:.15em}
.counter__desc{margin:.6rem auto 0;max-width:22ch;font-size:1rem}
.counter__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Section : Vidéo */
.video{margin-inline:auto;max-width:var(--video-w,960px)}
.video--small{--video-w:520px}.video--medium{--video-w:760px}.video--large{--video-w:960px}.video--full{--video-w:none}
.video__frame{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:var(--radius);background:#000}
.video__frame iframe,.video__frame video{position:absolute;inset:0;width:100%;height:100%;border:0}
.video__notice{text-align:center;opacity:.7}

/* Section : Paragraphe */
.paragraph{--p-w:720px;max-width:var(--p-w)}
.paragraph--w-narrow{--p-w:560px}.paragraph--w-medium{--p-w:720px}.paragraph--w-wide{--p-w:960px}
.paragraph--columns.paragraph--w-narrow{--p-w:720px}.paragraph--columns.paragraph--w-medium{--p-w:960px}.paragraph--columns.paragraph--w-wide{--p-w:1140px}
.paragraph--align-left{margin-right:auto;text-align:left}
.paragraph--align-center{margin-inline:auto;text-align:center}
.paragraph--align-right{margin-left:auto;text-align:right}
.paragraph--align-left .section__title::after{margin-left:0;margin-right:auto}
.paragraph--align-right .section__title::after{margin-left:auto;margin-right:0}
.paragraph__body{font-size:1.1rem;line-height:1.8}
.paragraph__body>:first-child{margin-top:0}
.paragraph__body>:last-child{margin-bottom:0}
.paragraph__body ul,.paragraph__body ol{padding-left:1.4rem;text-align:left}
.paragraph__body li{margin:.3rem 0}
.paragraph__block{margin-top:2.25rem;break-inside:avoid}
.paragraph__content>:first-child,.paragraph__content>.paragraph__block:first-child{margin-top:0}
.paragraph__content>.paragraph__body+.paragraph__block{margin-top:2.25rem}
.paragraph__heading{margin:0 0 .6rem;font-size:1.25rem}
.paragraph--boxed{padding:clamp(1.5rem,3.5vw,2.5rem);border-left:4px solid var(--c-primary);border-radius:var(--radius);background:var(--c-secondary-tint)}
.paragraph--boxed.paragraph--align-right{border-left:0;border-right:4px solid var(--c-primary)}
.is-light-text .paragraph--boxed{background:rgba(255,255,255,.12)}
.paragraph--quote .paragraph__body{position:relative;padding-top:2.8rem;font-family:var(--font-heading);font-size:clamp(1.35rem,2.6vw,1.9rem);font-style:italic;line-height:1.45}
.paragraph--quote .paragraph__body::before{content:"\201C";position:absolute;top:-.2rem;left:0;color:var(--c-primary);font:normal 5rem/1 Georgia,serif}
.paragraph--quote.paragraph--align-center .paragraph__body::before{left:50%;transform:translateX(-50%)}
.paragraph--quote.paragraph--align-right .paragraph__body::before{right:0;left:auto}
@media(min-width:768px){.paragraph--columns .paragraph__content{column-count:2;column-gap:3rem}}
.paragraph--dropcap .paragraph__body--first>p:first-of-type::first-letter{float:left;margin:.06em .12em 0 0;color:var(--c-primary);font-family:var(--font-heading);font-size:3.6em;font-weight:700;line-height:.85}

/* Section : Téléchargement */
.download__grid{--cols:3;display:grid;gap:1.75rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.download__grid[class*="download__grid--cols-"]{grid-template-columns:repeat(var(--cols),minmax(0,1fr))}
.download__grid--cols-2{--cols:2}.download__grid--cols-3{--cols:3}.download__grid--cols-4{--cols:4}.download__grid--cols-5{--cols:5}
@media(max-width:960px){.download__grid--cols-3,.download__grid--cols-4,.download__grid--cols-5{--cols:2}}
@media(max-width:560px){.download__grid[class*="download__grid--cols-"]{--cols:1}}
.download-card__preview{position:relative;height:150px;overflow:hidden;background:#eef0f3}
.download-card__preview--pdf{height:320px}
.download-card__preview iframe{display:block;width:100%;height:100%;border:0;background:#fff}
.download-card__fallback{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;color:var(--c-primary)}
.download-card__preview:not(.download-card__preview--pdf) .download-card__fallback{display:flex}
.download-card__svg{width:3rem;height:3rem}
.download-card__ext{font-size:.95rem;font-weight:700;letter-spacing:.06em}
@media(max-width:768px){
	.download-card__preview--pdf{height:150px}
	.download-card__preview--pdf iframe{display:none}
	.download-card__preview--pdf .download-card__fallback{display:flex}
}
.download-card__body{display:flex;flex:1;flex-direction:column;gap:.4rem;padding:1.25rem 1.4rem 1.5rem}
.download-card__title{margin:0;font-size:1.15rem}
.download-card__desc,.download-card__meta{margin:0}
.download-card__meta{font-size:.85rem;opacity:.7}
.download-card__actions{margin-top:auto;padding-top:.9rem}

/* Appel à l'action */
.cta{display:flex;flex-direction:column;align-items:center;max-width:760px;margin-inline:auto;text-align:center}
.cta__main{width:100%}
.cta__main>:last-child{margin-bottom:0}
.cta__title{margin:0 0 var(--head-sub-gap,1.5rem);font-size:clamp(1.7rem,3.6vw,2.5rem)}
.cta__title--sub{margin-bottom:var(--head-title-gap,.75rem)}
.cta__text p:last-child{margin-bottom:0}
.cta__actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.4rem;justify-content:center}
.cta--align-left{align-items:flex-start;margin-inline:0;text-align:left}
.cta--align-left .cta__actions{justify-content:flex-start}
.cta--align-right{align-items:flex-end;margin-left:auto;margin-right:0;text-align:right}
.cta--align-right .cta__actions{justify-content:flex-end}
/* Sur une ligne et bandeau : le texte d'un côté, les boutons de l'autre */
.cta--split,.cta--band{flex-direction:row;align-items:center;justify-content:space-between;gap:1.5rem 2.5rem;max-width:none;margin-inline:0;text-align:left}
.cta--split .cta__main,.cta--band .cta__main{flex:1;width:auto}
.cta--split .cta__actions,.cta--band .cta__actions{flex:none;margin-top:0;justify-content:flex-end}
.cta--split.cta--align-right,.cta--band.cta--align-right{flex-direction:row-reverse;text-align:right}
.cta--split.cta--align-right .cta__actions,.cta--band.cta--align-right .cta__actions{justify-content:flex-start}
@media(max-width:768px){
	.cta--split,.cta--band,.cta--split.cta--align-right,.cta--band.cta--align-right{flex-direction:column;align-items:flex-start;text-align:left}
	.cta--split .cta__actions,.cta--band .cta__actions,.cta--split.cta--align-right .cta__actions,.cta--band.cta--align-right .cta__actions{justify-content:flex-start;margin-top:1.4rem}
}
.cta--band{padding:clamp(1.4rem,3.5vw,2.4rem) clamp(1.4rem,4vw,3rem);border-radius:var(--radius);background:rgba(0,0,0,.16)}
/* Encadré : carte claire avec ombre, quel que soit le fond de la section */
.cta--card{max-width:860px;padding:clamp(1.75rem,4vw,3rem);border-radius:var(--radius);background:#fff;color:var(--c-text);box-shadow:0 12px 40px rgba(0,0,0,.16)}
.cta--card .btn,.is-light-text .cta--card .btn{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-primary-text)}
.cta--card .btn.btn--secondary,.is-light-text .cta--card .btn.btn--secondary{background:transparent;border-color:var(--c-primary);color:var(--c-primary)}
.btn-outline .cta--card .btn,.btn-outline .is-light-text .cta--card .btn{background:transparent;color:var(--c-primary)}
.cta--card .section__subtitle,.is-light-text .cta--card .section__subtitle{color:var(--c-primary);opacity:1}

/* Variantes de bouton choisies bouton par bouton (plein, contour, texte seul) : elles passent avant le réglage général et la couleur du fond */
.btn.btn--solid,.btn-outline .btn.btn--solid{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-primary-text)}
.btn.btn--outline,.btn-outline .btn.btn--outline{background:transparent;border-color:var(--c-primary);color:var(--c-primary)}
.btn.btn--text,.btn-outline .btn.btn--text{background:transparent;border-color:transparent;color:var(--c-primary)}
.btn.btn--text:hover{filter:none;text-decoration:underline;text-underline-offset:.25em}
.is-light-text .btn.btn--solid,.btn-outline .is-light-text .btn.btn--solid,.card--light .btn.btn--solid,.btn-outline .card--light .btn.btn--solid{background:#fff;border-color:#fff;color:#111827}
.is-light-text .btn.btn--outline,.btn-outline .is-light-text .btn.btn--outline,.card--light .btn.btn--outline,.btn-outline .card--light .btn.btn--outline{background:transparent;border-color:#fff;color:#fff}
.is-light-text .btn.btn--text,.btn-outline .is-light-text .btn.btn--text,.card--light .btn.btn--text,.btn-outline .card--light .btn.btn--text{background:transparent;border-color:transparent;color:#fff}
.cta--card .btn.btn--solid,.is-light-text .cta--card .btn.btn--solid,.btn-outline .cta--card .btn.btn--solid,.btn-outline .is-light-text .cta--card .btn.btn--solid{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-primary-text)}
.cta--card .btn.btn--outline,.is-light-text .cta--card .btn.btn--outline,.btn-outline .cta--card .btn.btn--outline,.btn-outline .is-light-text .cta--card .btn.btn--outline{background:transparent;border-color:var(--c-primary);color:var(--c-primary)}
.cta--card .btn.btn--text,.is-light-text .cta--card .btn.btn--text,.btn-outline .cta--card .btn.btn--text,.btn-outline .is-light-text .cta--card .btn.btn--text{background:transparent;border-color:transparent;color:var(--c-primary)}
.btn--secondary{background:transparent;color:var(--c-primary)}
.is-light-text .btn.btn--secondary{background:transparent;border-color:#fff;color:#fff}

/* Coordonnées : informations, horaires, réseaux sociaux, carte */
.contact-grid{display:grid;gap:1.5rem 2rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
/* Deux colonnes : les horaires d'un côté, le reste de l'autre (une seule colonne si l'une est vide) */
.contact-cols{display:grid;gap:2rem 3rem;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.contact-cols .contact-grid{grid-template-columns:1fr}
.contact-cols .contact-social{justify-content:flex-start;margin-top:1.5rem}
@media(max-width:700px){.contact-cols{grid-template-columns:1fr}}
.contact-item{display:flex;align-items:flex-start;gap:.9rem}
.contact-item__icon{display:inline-flex;flex:none;align-items:center;justify-content:center;width:2.6rem;height:2.6rem;border-radius:50%;background:var(--c-secondary-tint);background:color-mix(in srgb,var(--icon-color,var(--c-secondary)) 14%,transparent);color:var(--icon-color,var(--c-secondary))}
.is-light-text .contact-item__icon{background:rgba(255,255,255,.18);color:var(--icon-color,inherit)}
.contact-item__svg{width:1.3rem;height:1.3rem}
.contact-item__title{margin:0 0 .25rem;font-size:1.05rem}
.contact-item__body p{margin:0}
.contact-item__link{font-size:.9em}
.hours{margin:0}
.hours__row{display:grid;grid-template-columns:minmax(7rem,max-content) 1fr;column-gap:2rem;padding:.3rem 0;border-bottom:1px dashed rgba(127,127,127,.35)}
.hours dt{font-weight:600}
.hours dd{margin:0}
.hours__row.is-closed dd{opacity:.6}
.contact-social,.contact-map{margin-top:2rem}
.contact-social{display:flex;justify-content:center}
.social{display:flex;flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none}
.social a{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--c-secondary-tint);color:var(--c-secondary);transition:background .15s,color .15s}
.social a:hover{background:var(--c-primary);color:var(--c-primary-text)}
.is-light-text .social a{background:rgba(255,255,255,.18);color:inherit}
.social__icon{width:1.15rem;height:1.15rem}
.social--footer a{background:rgba(255,255,255,.16);background:color-mix(in srgb,currentColor 16%,transparent);color:inherit}
.social--footer a:hover{background:var(--footer-fg,#fff);color:var(--footer-bg,var(--c-secondary))}
.footer-about{display:flex;flex-direction:column;gap:.8rem}
.footer-contact{display:flex;flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none}
.footer-col .social{margin-top:.8rem}
.map{position:relative;min-height:320px;overflow:hidden;border-radius:var(--radius);background:var(--c-secondary-tint);color:var(--c-text)}
.map__placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;min-height:320px;padding:1.5rem;text-align:center}
.map__placeholder p{max-width:34rem;margin:0;font-size:.9rem}
.map iframe{display:block;width:100%;height:360px;border:0}
.map--shadow-soft{box-shadow:0 6px 18px rgba(0,0,0,.14)}
.map--shadow-strong{box-shadow:0 18px 44px rgba(0,0,0,.32)}
/* Coordonnées sur 2 colonnes : informations à gauche, carte à droite */
.contact-split{display:grid;gap:2rem 3rem;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.contact-split .contact-grid{grid-template-columns:1fr}
.contact-split .contact-cols{grid-template-columns:1fr}
.contact-split .contact-social{justify-content:flex-start}
.contact-split__map .map{height:100%;min-height:360px}
.contact-split__map .map__placeholder{height:100%;min-height:360px}
.contact-split__map .map iframe{height:100%;min-height:360px}
@media(max-width:700px){.contact-split{grid-template-columns:1fr}.contact-split__map .map,.contact-split__map .map__placeholder,.contact-split__map .map iframe{min-height:320px}}

/* Galerie et visionneuse */
.gallery__grid{--cols:3;display:grid;gap:.75rem;grid-template-columns:repeat(var(--cols),minmax(0,1fr));margin:0;padding:0;list-style:none}
.gallery__grid--cols-2{--cols:2}.gallery__grid--cols-3{--cols:3}.gallery__grid--cols-4{--cols:4}.gallery__grid--cols-5{--cols:5}.gallery__grid--cols-6{--cols:6}
@media(max-width:960px){.gallery__grid--cols-4,.gallery__grid--cols-5,.gallery__grid--cols-6{--cols:3}}
@media(max-width:560px){.gallery__grid{--cols:2!important}}
.gallery__item{margin:0}
.gallery__link{display:block;overflow:hidden;border-radius:var(--radius);cursor:zoom-in}
.gallery__item img{width:100%;border-radius:var(--radius)}
.gallery__grid--square img{aspect-ratio:1/1;object-fit:cover}
.gallery__grid--landscape img{aspect-ratio:4/3;object-fit:cover}
.gallery__link img{transition:transform .3s}
.gallery__link:hover img{transform:scale(1.04)}
.gallery__caption{margin:.4rem 0 0;font-size:.85rem;opacity:.8}
.gallery__grid--natural{display:block;column-count:var(--cols);column-gap:.75rem}
.gallery__grid--natural .gallery__item{margin-bottom:.75rem;break-inside:avoid}
@media(prefers-reduced-motion:reduce){.gallery__link img{transition:none}.gallery__link:hover img{transform:none}}
.lb{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.9);color:#fff}
.lb[hidden]{display:none}
.lb__figure{display:flex;flex-direction:column;align-items:center;max-width:min(92vw,1400px);max-height:88vh;margin:0}
.lb__img{width:auto;height:auto;max-width:100%;max-height:78vh;object-fit:contain;border-radius:4px}
.lb__caption{max-width:60ch;margin:.8rem 0 0;text-align:center;font-size:.95rem}
.lb__btn{position:absolute;display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:1.6rem;line-height:1;cursor:pointer}
.lb__btn:hover,.lb__btn:focus-visible{background:rgba(255,255,255,.3);filter:none}
.lb__close{top:1rem;right:1rem}
.lb__prev{left:1rem;top:50%;transform:translateY(-50%)}
.lb__next{right:1rem;top:50%;transform:translateY(-50%)}
.lb__count{position:absolute;top:1.2rem;left:1.2rem;font-size:.9rem;opacity:.8}
.lb--single .lb__prev,.lb--single .lb__next,.lb--single .lb__count{display:none}
body.lb-open{overflow:hidden}
