/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* REALISATIONS GALLERY V2 (DC) — carte + page détail */

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* ROOT (page détail) */
.realisations-gallery{display:block;background:#fff;color:#1f2a1f;font-family:inherit}
.realisations-gallery *,.realisations-gallery *:before,.realisations-gallery *:after{box-sizing:border-box}
.realisations-gallery img{max-width:100%;height:auto;display:block}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* SEARCH INPUT — aligné visuellement sur .c-moteur__form__select-trigger */
.c-moteur__form__search-input{display:block;width:100%;padding:15px;border:1px solid #dcdcdc;border-radius:6px;background:#fff;color:#3d3f34;font-size:1.8rem;font-family:inherit;-webkit-appearance:none;appearance:none}
.c-moteur__form__search-input:hover{background:#eee}
.c-moteur__form__search-input:focus{outline:0;border-color:#ffcb00;background:#fff}
.c-moteur__form__search-input::placeholder{color:#888}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* FILTRE ARBORESCENT — indentation des nœuds enfants (--filter-depth posé par le PHP) */
.c-moteur__critere--child{padding-left:calc(var(--filter-depth, 1) * 15px)}

/* Branches repliables : chevron + masquage des enfants repliés */
[data-role="installations-listing"] .c-moteur__critere{display:flex;align-items:center}
.c-moteur__critere__toggle,.c-moteur__critere__toggle-spacer{flex:0 0 1.2em;width:1.2em;height:1.2em}
.c-moteur__critere__toggle{padding:0;border:0;background:none;cursor:pointer;color:#8a8a8a;line-height:1;text-align:center}
.c-moteur__critere__toggle::before{content:'\25B8';display:inline-block;transition:transform .12s ease}
.c-moteur__critere--parent:not(.is-collapsed) > .c-moteur__critere__toggle::before{transform:rotate(90deg)}
.c-moteur__critere--parent.is-collapsed + .c-moteur__critere__children{display:none}
/* Famille sans item disponible (facettage) : select affiché mais vide. */
.c-moteur__critere--empty{color:#999;font-style:italic;cursor:default}

/* Item cliquable (pas de case à cocher visible ; une seule sélection par famille) */
[data-role="installations-listing"] .c-moteur__checkbox-critere{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;margin:0}
[data-role="installations-listing"] .c-moteur__critere > label{flex:1 1 auto;display:block;margin:0;padding:.25em .5em;border-radius:4px;cursor:pointer;transition:background .12s}
[data-role="installations-listing"] .c-moteur__critere > label:hover{background:#f4f4f4}
[data-role="installations-listing"] .c-moteur__critere.is-selected > label{background:#ffcb00;font-weight:600}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* BARRE — Matériau et recherche à la même hauteur. Les .c-moteur__form__input */
/* sont stretchés entre eux par .c-moteur__form ; on propage ce stretch jusqu'au */
/* select-trigger et à l'input (sinon chacun garde sa hauteur de contenu, qui */
/* diffère : line-height du site sur le span vs line-height navigateur de l'input). */
/* Barre élargie + pas de wrap : les filtres + la recherche restent sur une seule
   ligne (la barre jaune était plafonnée à 50% → trop étroite dès 3 filtres). */
[data-role="installations-listing"] .c-moteur__center__landing{max-width:900px}
[data-role="installations-listing"] .c-moteur__form{flex-wrap:nowrap}
/* Conteneur des filtres (swappé en AJAX) : transparent au flux flex du moteur. */
[data-role="installations-listing"] [data-role="filter-fields"]{display:contents}
[data-role="installations-listing"] .c-moteur__form__input{display:flex;flex-direction:column;flex:1 1 150px;min-width:0}
[data-role="installations-listing"] .c-moteur__select-criteres{display:flex;flex-direction:column;flex:1 1 auto}
[data-role="installations-listing"] .c-moteur__form__select-trigger{flex:1 1 auto}
[data-role="installations-listing"] .c-moteur__form__search-input{flex:1 1 auto;line-height:inherit}
/* La recherche prend plus de place que les filtres (labels courts). */
[data-role="installations-listing"] .c-moteur__form__input--search{flex:2 1 200px}
/* Hauteur réduite : padding vertical 10px au lieu des 15px du style DC */
[data-role="installations-listing"] .c-moteur__form__select-trigger,
[data-role="installations-listing"] .c-moteur__form__search-input{padding-top:10px;padding-bottom:10px}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* WRAPPER FLEX — force les u-fl-b1-3 de nos blocs v2 à être des conteneurs flex */
/* pour que la carte (height:100%) remplisse la hauteur stretched par align-items */
[data-role="installations-listing"] .u-fl-b1-3,
[data-role="other-installations"] .u-fl-b1-3,
[data-role="franchise-realisations"] .u-fl-b1-3{display:flex;flex-direction:column;padding-bottom:1.5em}
/* Page d'accueil : conteneur .c-mosaique__installation (2 colonnes 48%, comme l'ancien rendu).
   La colonne devient flex pour que la carte (height:100%) remplisse la hauteur. */
[data-role="home-installations"] .u-fl-b1-2{display:flex;flex-direction:column;margin-bottom:1.5em}
/* Page d'accueil : cartes en overlay (titre + entreprise sur l'image), vignettes au format de l'ancien rendu (440x230) */
[data-role="home-installations"] .realisations-gallery__card__media{aspect-ratio:440 / 230;height:100%}
.realisations-gallery__card--overlay{position:relative;margin:0}
/* Légende masquée par défaut, révélée au survol (glisse vers le haut), façon ancien card */
.realisations-gallery__card--overlay .realisations-gallery__card__overlay{position:absolute;left:0;right:0;bottom:0;margin:0;padding:1.6em 1em .85em;background:linear-gradient(to top,rgba(0,0,0,.82) 0%,rgba(0,0,0,.38) 55%,rgba(0,0,0,0) 100%);color:#fff;pointer-events:none;transform:translateY(100%);transition:transform .35s ease}
.realisations-gallery__card--overlay:hover .realisations-gallery__card__overlay,
.realisations-gallery__card--overlay:focus-within .realisations-gallery__card__overlay{transform:translateY(0)}
.realisations-gallery__card--overlay .realisations-gallery__card__overlay a{pointer-events:auto;color:#fff;text-decoration:none}
.realisations-gallery__card--overlay .realisations-gallery__card__overlay a:hover{text-decoration:underline}
.realisations-gallery__card--overlay .realisations-gallery__card__overlay .realisations-gallery__card__title{min-height:0;margin:0 0 .12em;padding:0;border:0;color:#fff;font-size:1.05em;font-weight:700;line-height:1.25}
.realisations-gallery__card--overlay .realisations-gallery__card__company{margin:0;padding:0;font-size:.85em;line-height:1.3;color:#ececec}
.realisations-gallery__card--overlay .realisations-gallery__card__company strong{color:#ffcb00;font-weight:700}

/* Padding-bottom sur la section franchise — reste visible même quand le bouton "plus" est masqué */
[data-role="franchise-realisations"]{padding-bottom:2em}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* CARD — utilisée par _partial__realisation_card.php (listing, franchise, autres installations, détail) */
.realisations-gallery__card{display:flex;flex-direction:column;min-width:0;height:100%;background:#fff;border-radius:.75em;overflow:hidden;box-shadow:0 .25em .75em rgba(0,0,0,.06);text-decoration:none;color:inherit;transition:transform .25s,box-shadow .25s}
.realisations-gallery__card:hover{transform:translateY(-.25em);box-shadow:0 .75em 1.5em rgba(0,0,0,.12)}
.realisations-gallery__card__media{aspect-ratio:4 / 3;overflow:hidden;background:#f4f4f4;position:relative;width:100%;flex-shrink:0}
.realisations-gallery__card__media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .4s}
.realisations-gallery__card:hover .realisations-gallery__card__media img{transform:scale(1.05)}
.realisations-gallery__card__media__placeholder{width:100%;height:100%;background:linear-gradient(135deg,#f4f4f4 25%,#e6e6e6 50%,#f4f4f4 75%)}
.realisations-gallery__card__body{padding:1em 1.15em 1.25em;display:flex;flex-direction:column;gap:.35em;flex:1 1 auto}
.realisations-gallery__card__tag{display:inline-block;align-self:flex-start;padding:.25em .6em;background:#fff5cc;color:#8a6a00;border-radius:.25em;font-size:.75em;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
/* Double classe pour battre .c-suggestion__mosaique h3 de DC (qui ajoute padding/border/margin) */
.realisations-gallery__card__tag--empty{visibility:hidden}
/* Titre : hauteur fixe de 2 lignes (clamp au-delà, espace réservé en deçà) pour des cartes uniformes */
.realisations-gallery__card .realisations-gallery__card__title{margin:0;padding:0;border:0;font-size:1.05em;font-weight:600;line-height:1.3;min-height:2.6em;color:#1f2a1f;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.realisations-gallery__card .realisations-gallery__card__meta{margin:auto 0 0;padding:0;font-size:.9em;color:#4a5a4a}
.realisations-gallery__card__meta strong{color:#8a6a00}
.realisations-gallery__card__play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:3em;height:3em;background:rgba(0,0,0,.55);border-radius:50%;color:#fff;pointer-events:none;transition:background .25s,transform .25s}
.realisations-gallery__card__play svg{width:1.4em;height:1.4em;margin-left:.15em}
.realisations-gallery__card:hover .realisations-gallery__card__play{background:rgba(0,0,0,.7);transform:translate(-50%,-50%) scale(1.1)}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* DETAIL — page mc_page_v2.php */
.realisations-gallery--detail{background:#fff;overflow-x:hidden}
.realisations-gallery__detail{max-width:80em;margin:0 auto;padding:1.25em 1em;display:grid;gap:1.5em;grid-template-columns:1fr}
@media (min-width:60em){
	.realisations-gallery__detail{grid-template-columns:3fr 2fr;padding:3em 2em;gap:3em}
}
.realisations-gallery__detail__gallery{min-width:0}
.realisations-gallery__detail__content{min-width:0}
/* Breadcrumb : organisation conservée mais style allégé — fini la barre jaune */
/* pleine largeur du c-gamme__ariane, on passe en fil d'ariane discret. */
.realisations-gallery__detail__content .c-gamme__ariane{background:none;padding:0;margin-bottom:1.25em;font-size:.9em}
.realisations-gallery__detail__content .c-gamme__ariane a{color:#4a5a4a}
.realisations-gallery__detail__content .c-gamme__ariane a strong{color:#8a6a00;font-weight:700}

/* Ordre colonne : retour → description → CTA en dernier */
.realisations-gallery__detail__content .realisations-gallery__detail__description{margin:1.5em 0 0}
.realisations-gallery__detail__content .realisations-gallery__detail__cta{margin-top:1.5em}
.realisations-gallery__detail__slideshow{position:relative;aspect-ratio:4 / 3;overflow:hidden;border-radius:.75em;background:#f4f4f4;width:100%}
.realisations-gallery__detail__slide{margin:0;position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;transition:opacity .3s}
.realisations-gallery__detail__slide[data-state="active"]{opacity:1}
.realisations-gallery__detail__slide img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.realisations-gallery__detail__media__placeholder{aspect-ratio:4 / 3;background:linear-gradient(135deg,#f4f4f4 25%,#e6e6e6 50%,#f4f4f4 75%);border-radius:.75em}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* DETAIL — vidéo */
.realisations-gallery__detail__slide[data-type="video"][data-state="active"]{z-index:3}
.realisations-gallery__detail__slide[data-type="video"][data-state="inactive"]{pointer-events:none}
.realisations-gallery__detail__slide video{display:block;width:100%;height:100%;object-fit:contain;background:#000}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* DETAIL — flèches */
.realisations-gallery__detail__arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;display:flex;align-items:center;justify-content:center;width:2.75em;height:2.75em;padding:0;background:rgba(255,255,255,.85);color:#1f2a1f;border:0;border-radius:50%;font-size:1.5em;line-height:1;cursor:pointer;transition:background .15s,transform .15s;-webkit-tap-highlight-color:transparent}
.realisations-gallery__detail__arrow:hover{background:#fff}
.realisations-gallery__detail__arrow:active{transform:translateY(-50%) scale(.92)}
.realisations-gallery__detail__arrow--prev{left:.6em}
.realisations-gallery__detail__arrow--next{right:.6em}
@media (min-width:60em){
	.realisations-gallery__detail__arrow{display:none}
}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* DETAIL — compteur */
.realisations-gallery__detail__counter{position:absolute;bottom:.6em;right:.6em;z-index:2;padding:.25em .65em;background:rgba(0,0,0,.55);color:#fff;border-radius:1em;font-size:.8em;font-weight:600;pointer-events:none}
@media (min-width:60em){
	.realisations-gallery__detail__counter{display:none}
}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* DETAIL — thumbs */
.realisations-gallery__detail__thumbs{display:flex;gap:.5em;margin-top:.75em;overflow-x:auto;padding-bottom:.25em;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}
.realisations-gallery__detail__thumb{position:relative;flex:0 0 4.5em;width:4.5em;height:3.5em;padding:0;border:2px solid transparent;border-radius:.35em;overflow:hidden;background:none;cursor:pointer;transition:border-color .15s;scroll-snap-align:center}
.realisations-gallery__detail__thumb[data-state="active"]{border-color:#ffcb00}
.realisations-gallery__detail__thumb img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.realisations-gallery__detail__thumb[data-type="video"]{background:#1a1a1a}
.realisations-gallery__detail__thumb__play{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.35);color:#fff}
.realisations-gallery__detail__thumb__play svg{width:1.2em;height:1.2em}
@media (min-width:60em){
	.realisations-gallery__detail__thumb{flex:0 0 5em;width:5em;height:4em}
}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* DETAIL — info */
.realisations-gallery__detail__tag{display:inline-block;padding:.3em .7em;background:#fff5cc;color:#8a6a00;border-radius:.25em;font-size:.8em;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:1em}
.realisations-gallery__detail__title{margin:0 0 .5em;font-size:1.75em;font-weight:600;line-height:1.2;color:#1f2a1f}
.realisations-gallery__detail__location{margin:0 0 1.5em;font-size:1.05em;color:#4a5a4a}
.realisations-gallery__detail__location strong{color:#8a6a00}
.realisations-gallery__detail__company{margin:0 0 .4em;font-size:1.05em;color:#4a5a4a}
.realisations-gallery__detail__company a,.realisations-gallery__detail__company strong{color:#8a6a00;font-weight:600}
.realisations-gallery__detail__company a{text-decoration:none}
.realisations-gallery__detail__company a:hover{text-decoration:underline}
.realisations-gallery__detail__description{margin:0 0 1.5em;line-height:1.6;color:#3a4a3a}
.realisations-gallery__detail__cta{display:inline-block;padding:.85em 1.75em;background:#ffcb00;color:#1f2a1f;border-radius:.4em;font-size:1em;font-weight:700;text-decoration:none;transition:background .15s}
.realisations-gallery__detail__cta:hover{background:#e6b800}
.realisations-gallery__detail__back{display:block;margin-top:1.5em;color:#4a5a4a;text-decoration:none;font-size:.9em}
.realisations-gallery__detail__back:hover{color:#8a6a00}
@media (min-width:60em){
	.realisations-gallery__detail__title{font-size:2.25em}
}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* ORDRE V2 — réal avant vis-à-vis (pages installation ?v2)             */
/* Ce fichier n'est chargé que par le partial v2, donc ces marges ne    */
/* s'appliquent qu'en v2. Le <link> émis avant la section réal casse    */
/* l'adjacence .seo__section+.seo__section : on rétablit donc un        */
/* margin-top sur la réal, et un margin-bottom sur le vis-à-vis.        */
.seo__realisations.seo__section{margin-top:5rem}
.seo__visavis.seo__section{margin-bottom:5rem}
@media (min-width:45em){
	.seo__realisations.seo__section{margin-top:6rem}
	.seo__visavis.seo__section{margin-bottom:6rem}
}
