/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* REALISATIONS GALLERY V2 — isolé de la V1, préfixe .realisations-gallery */

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* ROOT */
.realisations-gallery{display:block;background:#fafbf0;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}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* HERO */
.realisations-gallery__hero{padding:3em 1.25em 2.5em;background:linear-gradient(135deg,#aec030 0%,#6d7d1e 100%);color:#fff;text-align:center}
.realisations-gallery__hero__inner{max-width:60em;margin:0 auto}
.realisations-gallery__hero__title{margin:0 0 .5em;font-size:2em;font-weight:300;line-height:1.15}
.realisations-gallery__hero__title strong{font-weight:700}
.realisations-gallery__hero__subtitle{margin:0;font-size:1.05em;opacity:.9}
@media (min-width:60em){
	.realisations-gallery__hero{padding:4.5em 2em 4em}
	.realisations-gallery__hero__title{font-size:2.75em}
	.realisations-gallery__hero__subtitle{font-size:1.2em}
}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* FRANCHISE BADGE */
.realisations-gallery__franchise-badge{max-width:80em;margin:1.5em auto 0;padding:0 1.25em;display:flex;align-items:center}
.realisations-gallery__franchise-badge__link{display:inline-flex;align-items:center;gap:.4em;padding:.45em 1em;background:#fff;color:#6d7d1e;border:1px solid #aec030;border-radius:2em;font-size:.9em;font-weight:600;text-decoration:none;transition:background .15s,color .15s}
.realisations-gallery__franchise-badge__link:before{content:"‹";font-size:1.1em;line-height:1}
.realisations-gallery__franchise-badge__link:hover{background:#aec030;color:#1f2a1f}
.realisations-gallery__franchise-badge__reset{display:inline-flex;align-items:center;justify-content:center;width:2em;height:2em;margin-left:.35em;background:#fff;color:#999;border:1px solid #e1e5d0;border-radius:50%;text-decoration:none;transition:background .15s,color .15s,border-color .15s}
.realisations-gallery__franchise-badge__reset:hover{background:#f5e6e6;color:#c0392b;border-color:#c0392b}
.realisations-gallery__franchise-badge__reset svg{width:1em;height:1em}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* TYPE SUBTITLE (quand un filtre type est actif, à l'intérieur de la section résultats) */
.realisations-gallery__type-subtitle{margin:.5em 0 1.5em;padding:0 1em;font-size:1.5em;font-weight:400;color:#4a5a4a;line-height:1.35;text-align:center}
.realisations-gallery__type-subtitle strong{color:#6d7d1e;font-weight:700}
@media (min-width:48em){
	.realisations-gallery__type-subtitle{font-size:1.8em;margin:1em 0}
}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* TOOLBAR */
.realisations-gallery__toolbar{max-width:80em;margin:-1.5em auto 0;padding:1em 1.25em;background:#fff;border-radius:.75em;box-shadow:0 .5em 1.5em rgba(0,0,0,.08);position:relative;z-index:2}
.realisations-gallery__toolbar__mobile-toggle{display:inline-flex;align-items:center;gap:.5em;width:100%;padding:.75em 1em;background:#aec030;color:#1f2a1f;border:0;border-radius:.5em;font-size:1em;font-weight:700;cursor:pointer}
.realisations-gallery__toolbar__mobile-toggle__count{display:inline-flex;align-items:center;justify-content:center;min-width:1.5em;height:1.5em;padding:0 .4em;background:#1f2a1f;color:#aec030;border-radius:1em;font-size:.8em;font-weight:700}
.realisations-gallery__toolbar__filters{display:none;flex-direction:column;gap:.75em;margin-top:1em}
.realisations-gallery__toolbar__filters[data-state="open"]{display:flex}
@media (min-width:60em){
	.realisations-gallery__toolbar{margin:-2em auto 0;padding:1.25em 1.5em}
	.realisations-gallery__toolbar__mobile-toggle{display:none}
	.realisations-gallery__toolbar__filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(10em,1fr));gap:.75em;margin-top:0;align-items:end}
}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* FILTERS */
.realisations-gallery__filter{display:flex;flex-direction:column;gap:.25em;font-size:.875em}
.realisations-gallery__filter__label{display:inline-flex;align-items:center;align-self:flex-start;gap:.25em;padding:0;background:none;border:0;font-family:inherit;font-weight:600;color:#4a5a4a;font-size:.8em;text-transform:uppercase;letter-spacing:.05em;text-align:left;cursor:pointer;text-decoration:underline dotted;text-underline-offset:.2em;transition:color .15s}
.realisations-gallery__filter__label::after{content:"▸";font-size:.9em;text-decoration:none}
.realisations-gallery__filter__label:hover,.realisations-gallery__filter__label:focus-visible{color:#aec030}
.realisations-gallery__filter__label.is-active{color:#aec030;text-decoration-style:solid}
.realisations-gallery__filter__select{width:100%;padding:.6em .75em;background:#fafbf0;border:1px solid #e1e5d0;border-radius:.4em;font-size:.95em;color:#1f2a1f;font-family:inherit;transition:border-color .15s,box-shadow .15s}
.realisations-gallery__filter__select:focus{outline:0;border-color:#aec030;box-shadow:0 0 0 3px rgba(174,192,48,.2)}
.realisations-gallery__filter__submit{padding:.7em 1.25em;background:#aec030;color:#1f2a1f;border:0;border-radius:.4em;font-size:.95em;font-weight:700;cursor:pointer;transition:background .15s}
.realisations-gallery__filter__submit:hover{background:#9bb028}
.realisations-gallery__filter__reset{display:inline-block;padding:.7em 1em;background:transparent;color:#4a5a4a;border:1px solid #e1e5d0;border-radius:.4em;font-size:.9em;text-align:center;text-decoration:none;transition:background .15s,border-color .15s}
.realisations-gallery__filter__reset:hover{background:#fafbf0;border-color:#aec030}
@media (min-width:60em){
	.realisations-gallery__filter__actions{grid-column-start:1;width:max-content;display:flex;gap:.5em}
}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* TREE SELECT (dropdown arborescent — le select natif, masqué par --enhanced, reste la source du form) */
.realisations-gallery__filter__select--enhanced{display:none}
.realisations-gallery__tree-select{position:relative}
.realisations-gallery__tree-select__button{display:flex;align-items:center;justify-content:space-between;gap:.5em;width:100%;padding:.6em .75em;background:#fafbf0;border:1px solid #e1e5d0;border-radius:.4em;font-size:.95em;color:#1f2a1f;font-family:inherit;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.realisations-gallery__tree-select__button::after{content:"";flex:none;width:.45em;height:.45em;margin-top:-.2em;border-right:2px solid #4a5a4a;border-bottom:2px solid #4a5a4a;transform:rotate(45deg);transition:transform .15s}
.realisations-gallery__tree-select__button[aria-expanded="true"]::after{margin-top:.2em;transform:rotate(225deg)}
.realisations-gallery__tree-select__button:focus{outline:0;border-color:#aec030;box-shadow:0 0 0 3px rgba(174,192,48,.2)}
.realisations-gallery__tree-select__panel{position:absolute;top:calc(100% + .25em);left:0;right:0;min-width:14em;max-height:18em;overflow-y:auto;padding:.25em 0;background:#fff;border:1px solid #e1e5d0;border-radius:.4em;box-shadow:0 .5em 1.5em rgba(0,0,0,.12);z-index:10}
.realisations-gallery__tree-select__list,.realisations-gallery__tree-select__children{list-style:none;margin:0;padding:0}
.realisations-gallery__tree-select__item[data-expanded="false"]>.realisations-gallery__tree-select__children{display:none}
.realisations-gallery__tree-select__row{display:flex;align-items:center;padding-left:calc(var(--tree-depth,0)*1.25em)}
.realisations-gallery__tree-select__toggle{flex:none;display:flex;align-items:center;justify-content:center;width:2.5em;height:2.5em;margin-right:.25em;background:transparent;border:0;cursor:pointer}
.realisations-gallery__tree-select__toggle::before{content:"";width:.55em;height:.55em;border-right:3px solid #4a5a4a;border-bottom:3px solid #4a5a4a;transform:rotate(-45deg);transition:transform .15s}
.realisations-gallery__tree-select__toggle:hover::before,.realisations-gallery__tree-select__toggle:focus::before{border-color:#6d7d1e}
.realisations-gallery__tree-select__toggle:focus{outline:0;background:#fafbf0}
.realisations-gallery__tree-select__item[data-expanded="true"]>.realisations-gallery__tree-select__row .realisations-gallery__tree-select__toggle::before{transform:rotate(45deg)}
.realisations-gallery__tree-select__option{flex:1;padding:.5em .75em;background:transparent;border:0;font-size:.95em;color:#4a5a4a;font-family:inherit;text-align:left;cursor:pointer}
.realisations-gallery__tree-select__row--parent .realisations-gallery__tree-select__option{padding-left:0;color:#1f2a1f}
.realisations-gallery__tree-select__option:hover,.realisations-gallery__tree-select__option:focus{background:#fafbf0;outline:0}
.realisations-gallery__tree-select__option--selected{background:#fafbf0;color:#6d7d1e;font-weight:700}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* RESULTS */
.realisations-gallery__results{max-width:80em;margin:2em auto;padding:0 1.25em;position:relative}
.realisations-gallery__results:last-child{padding-bottom:1.5em}
.realisations-gallery__results__count{margin:0 0 1em;font-size:.95em;color:#4a5a4a}
.realisations-gallery__results__count strong{color:#6d7d1e;font-size:1.2em}
.realisations-gallery__results[data-state="loading"] .realisations-gallery__grid{opacity:.5;pointer-events:none}
.realisations-gallery__results[data-state="loading"]:after{content:"";position:absolute;top:4em;left:50%;width:2.5em;height:2.5em;margin-left:-1.25em;border:3px solid #e1e5d0;border-top-color:#aec030;border-radius:50%;animation:realisations-gallery-spin .8s linear infinite}
@keyframes realisations-gallery-spin{to{transform:rotate(360deg)}}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* GRID */
.realisations-gallery__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16em,1fr));gap:1.25em}
@media (min-width:85em){
	.realisations-gallery__grid{grid-template-columns:repeat(4,1fr);gap:1.75em}
}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* CARD */
.realisations-gallery__card{display:flex;flex-direction:column;min-width:0;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:#eef2d6;position:relative;width:100%}
.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,#eef2d6 25%,#dde3b8 50%,#eef2d6 75%)}
.realisations-gallery__card__body{padding:1em 1.15em 1.25em;display:flex;flex-direction:column;gap:.35em}
.realisations-gallery__card__tag{display:inline-block;align-self:flex-start;padding:.25em .6em;background:#eef2d6;color:#6d7d1e;border-radius:.25em;font-size:.75em;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.realisations-gallery__card__title{margin:0;font-size:1.05em;font-weight:600;line-height:1.3;color:#1f2a1f}
.realisations-gallery__card__meta{margin:0;font-size:.9em;color:#4a5a4a}
.realisations-gallery__card__meta strong{color:#6d7d1e}
.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)}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* STATES (empty, error) */
.realisations-gallery__empty,.realisations-gallery__error{padding:3em 1.5em;text-align:center;background:#fff;border-radius:.75em;margin-top:1em}
.realisations-gallery__empty p,.realisations-gallery__error p{margin:0 0 1em;color:#4a5a4a;font-size:1.05em}
.realisations-gallery__empty__button,.realisations-gallery__error__button{display:inline-block;padding:.7em 1.5em;background:#aec030;color:#1f2a1f;border:0;border-radius:.4em;font-size:.95em;font-weight:700;cursor:pointer;text-decoration:none;transition:background .15s}
.realisations-gallery__empty__button:hover,.realisations-gallery__error__button:hover{background:#9bb028}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* PAGINATION */
.realisations-gallery__pagination{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35em;margin:2.5em 0 .5em}
.realisations-gallery__pagination__link{display:inline-flex;align-items:center;justify-content:center;min-width:2.5em;height:2.5em;padding:0 .75em;background:#fff;color:#6d7d1e;border:1px solid #e1e5d0;border-radius:.4em;font-size:.95em;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s}
.realisations-gallery__pagination__link:hover{background:#fafbf0;border-color:#aec030}
.realisations-gallery__pagination__link--current{background:#aec030;color:#1f2a1f;border-color:#aec030;cursor:default}
.realisations-gallery__pagination__link--current:hover{background:#aec030}
.realisations-gallery__pagination__ellipsis{padding:0 .25em;color:#4a5a4a}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* SEO — reprend la mise en page "avant" (.text-seo) de la V1 */
.realisations-gallery__seo{display:flex;flex-direction:column;gap:2.5rem;align-items:center;margin:6rem auto 0;max-width:120rem;border-radius:2rem;background-color:#f3f3ea;padding:4rem 4rem 3rem}
.realisations-gallery__seo__inner{display:flex;flex-direction:column;gap:2.5rem;max-height:48rem;overflow:hidden;width:100%}
.realisations-gallery__seo__inner[data-state="expanded"]{max-height:none}
.realisations-gallery__seo__inner h2:not(:first-child),
.realisations-gallery__seo__inner h3:not(:first-child){margin-top:1.25rem}
h2.realisations-gallery__seo__h2,
h3.realisations-gallery__seo__h3{font-weight:700;line-height:1.25;color:#141714;text-transform:uppercase;margin:0}
h2.realisations-gallery__seo__h2{font-size:2.375rem}
h3.realisations-gallery__seo__h3{font-size:2.125rem}
.realisations-gallery__seo__h2:after,
.realisations-gallery__seo__h3:after{content:"";display:block;height:.325rem;background-color:#aec030;margin-top:1.25rem}
.realisations-gallery__seo__h2:after{width:30%}
.realisations-gallery__seo__h3:after{width:20%}
.realisations-gallery__seo__p,
.realisations-gallery__seo__list{line-height:1.625;font-size:1.825rem;margin:0}
.realisations-gallery__seo__list{list-style-position:inside}
.realisations-gallery__seo__list li + li{margin-top:1rem}
.realisations-gallery__seo strong{color:#141714}
.realisations-gallery__seo a{color:#d67c1c;font-weight:700}
.realisations-gallery__seo a:hover{text-decoration:underline;text-underline-position:under}
.realisations-gallery__seo__toggle{display:block;background-color:#aec030;border-radius:1rem;padding:1.25rem 1.75rem;line-height:1;font-size:2rem;color:#fff;border:none;cursor:pointer;transition:background-color .4s ease}
.realisations-gallery__seo__toggle:hover{background-color:#3d3f34}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* DETAIL */
.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__slideshow{position:relative;aspect-ratio:4 / 3;overflow:hidden;border-radius:.75em;background:#eef2d6;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,#eef2d6 25%,#dde3b8 50%,#eef2d6 75%);border-radius:.75em}

/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */
/* DETAIL — VIDEO SLIDE */
.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 — ARROWS */
.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 — COUNTER */
.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:#aec030}
.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:#eef2d6;color:#6d7d1e;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:#6d7d1e}
.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:#aec030;color:#1f2a1f;border-radius:.4em;font-size:1em;font-weight:700;text-decoration:none;transition:background .15s}
.realisations-gallery__detail__cta:hover{background:#9bb028}
.realisations-gallery__detail__back{display:block;margin-top:1.5em;color:#4a5a4a;text-decoration:none;font-size:.9em}
.realisations-gallery__detail__back:hover{color:#6d7d1e}
@media (min-width:60em){
	.realisations-gallery__detail__title{font-size:2.25em}
}
