/* Page Réalisations — grille, paginations, vidéos et références secondaires. */
.pr-section{padding:clamp(4.5rem,7vw,7rem) 0 5.5rem}
.pr-inner{max-width:1440px}
.pr-head{max-width:760px;margin-bottom:clamp(2rem,4vw,3.25rem)}
.pr-lead{max-width:680px}
.pr-filters{gap:.55rem;margin-bottom:2.25rem}
.pr-filter{min-height:42px;padding:.55rem 1rem;border-color:var(--border2)}
.pr-filter:focus-visible{outline:2px solid var(--orange);outline-offset:3px}

.pr-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,1.6vw,1.5rem);max-width:none;margin:0;align-items:stretch;align-content:start;scroll-margin-top:calc(var(--nav-height) + 1.5rem)}
.pr-card{display:flex;flex-direction:column;height:100%;min-height:0;border:1px solid var(--border);background:var(--surface);overflow:hidden;isolation:isolate}
.pr-card:last-child{border-bottom:1px solid var(--border)}
.pr-card::after{display:none!important}
.pr-card:hover{transform:translateY(-3px);box-shadow:0 18px 45px rgba(0,0,0,.14);border-color:color-mix(in srgb,var(--orange) 72%,var(--border))}
.pr-card-img-wrap{width:100%;min-width:0;height:auto;aspect-ratio:16/10;flex:none;background:#0a0a09}
.pr-card-img{height:100%;object-fit:cover;transform:scale(1);filter:saturate(.9) contrast(1.02);transition:transform .55s var(--ease-out),filter .4s var(--ease-out)}
.pr-card:hover .pr-card-img{transform:scale(1.025);filter:saturate(1) contrast(1.05)}
.pr-card-overlay{background:linear-gradient(to top,rgba(10,10,9,.62),rgba(10,10,9,0) 58%);opacity:.18}
.pr-card:hover .pr-card-overlay{opacity:.52}
.pr-card-hover-label{bottom:1.15rem;left:1.25rem;right:1.25rem;font-size:.68rem;opacity:.85;transform:translateY(3px)}
.pr-card:hover .pr-card-hover-label{opacity:1}
.pr-card-body{flex:1;justify-content:flex-start;padding:clamp(1.3rem,2vw,1.75rem)}
.pr-card-cat{margin-bottom:.8rem}
.pr-card-title{font-size:clamp(1.15rem,1.6vw,1.48rem);line-height:1.05;margin-bottom:.55rem}
.pr-card-loc{line-height:1.4}
.pr-card-year{margin-top:.5rem}
.pr-card-desc{margin:1rem 0 1.25rem;line-height:1.62;-webkit-line-clamp:3}
.pr-card-cta{margin-top:auto}
.pr-card:focus-visible{outline:3px solid var(--orange);outline-offset:4px}

.pr-grid>.pr-card:last-child:nth-child(odd),.vdo-grid>.vdo-card:last-child:nth-child(odd){grid-column:1/-1;justify-self:center;width:calc((100% - clamp(1rem,1.6vw,1.5rem))/2)}
.pr-grid.listing-reveal-pending .pr-card,.vdo-grid.listing-reveal-pending .vdo-card{opacity:0;transform:translate3d(0,22px,0) scale(.988)}
.pr-grid[aria-busy="true"],.vdo-grid[aria-busy="true"]{pointer-events:none}
.pr-grid:focus,.vdo-grid:focus{outline:none}
.pr-grid:focus-visible,.vdo-grid:focus-visible{outline:1px solid color-mix(in srgb,var(--orange) 58%,transparent);outline-offset:10px}

.pr-empty{margin:1.5rem 0 0;padding:1.5rem;border:1px solid var(--border);background:var(--surface);font-size:.95rem;color:var(--ink2)}
.pr-status,.vdo-status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

.pr-pagination,.vdo-pagination{display:flex;align-items:center;justify-content:center;gap:.45rem;margin-top:2.2rem;flex-wrap:wrap}
.pr-page-btn,.vdo-page-btn{min-width:42px;min-height:42px;padding:.55rem .8rem;border:1px solid var(--border2);background:var(--surface);color:var(--ink);font-family:var(--fd);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform .2s var(--ease-out)}
.pr-page-btn:hover:not(:disabled),.vdo-page-btn:hover:not(:disabled){border-color:var(--orange);color:var(--orange);transform:translateY(-1px)}
.pr-page-btn[aria-current="page"],.vdo-page-btn[aria-current="page"]{background:var(--orange);border-color:var(--orange);color:#fff}
.pr-page-btn:disabled,.vdo-page-btn:disabled{opacity:.36;cursor:not-allowed}
.pr-page-btn:focus-visible,.vdo-page-btn:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.pr-page-btn--edge,.vdo-page-btn--edge{padding-inline:1rem}
.pr-page-ellipsis{min-width:26px;text-align:center;color:var(--muted)}

.vdo-section{position:relative;padding:clamp(4.5rem,7vw,7rem) 0;background:var(--bg2);border-top:1px solid var(--border);border-bottom:1px solid var(--border);overflow:hidden}
.vdo-section::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 0 62%,color-mix(in srgb,var(--orange) 5%,transparent) 62% 68%,transparent 68%);opacity:.65}
.vdo-section .pr-inner{position:relative;z-index:1}
.vdo-head{display:grid;grid-template-columns:minmax(0,.82fr) minmax(320px,.58fr);gap:clamp(2rem,6vw,6rem);align-items:end;margin-bottom:clamp(2rem,4vw,3rem)}
.vdo-head .pr-head{margin:0}
.vdo-intro{font-size:.96rem;line-height:1.75;color:var(--ink2);margin:0 0 .2rem}
.vdo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,1.6vw,1.5rem);align-content:start;scroll-margin-top:calc(var(--nav-height) + 1.5rem)}
.vdo-card{min-width:0;background:var(--surface);border:1px solid var(--border);transition:transform .3s var(--ease-out),border-color .25s,box-shadow .3s var(--ease-out)}
.vdo-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--orange) 72%,var(--border));box-shadow:0 18px 45px rgba(0,0,0,.15)}
.vdo-card-trigger{width:100%;height:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;display:flex;flex-direction:column;cursor:pointer;font-family:var(--fb)}
.vdo-card-trigger:focus-visible{outline:3px solid var(--orange);outline-offset:4px}
.vdo-card-media{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:#090908}
.vdo-card-image{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.84) contrast(1.04);transition:transform .55s var(--ease-out),filter .4s var(--ease-out)}
.vdo-card:hover .vdo-card-image{transform:scale(1.025);filter:saturate(1) contrast(1.05)}
.vdo-card-media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,8,7,.56),rgba(8,8,7,0) 60%);pointer-events:none}
.vdo-play{position:absolute;z-index:2;left:50%;top:50%;width:58px;height:58px;display:grid;place-items:center;transform:translate(-50%,-50%);background:var(--orange);color:#fff;border:1px solid rgba(255,255,255,.26);font-size:1rem;line-height:1;clip-path:polygon(12px 0,100% 0,calc(100% - 12px) 100%,0 100%);box-shadow:0 10px 28px rgba(0,0,0,.28);transition:transform .28s var(--ease-out),background .2s}
.vdo-card:hover .vdo-play{transform:translate(-50%,-50%) scale(1.06);background:var(--orange-lt)}
.vdo-card-type{position:absolute;z-index:2;left:1rem;bottom:1rem;font-family:var(--fd);font-size:.65rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:#fff}
.vdo-card-body{display:flex;flex:1;flex-direction:column;padding:clamp(1.3rem,2vw,1.7rem)}
.vdo-card-title{font-family:var(--fd);font-size:clamp(1.15rem,1.55vw,1.42rem);font-weight:850;line-height:1.08;text-transform:uppercase;color:var(--ink)}
.vdo-card-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin:.85rem 0 1.2rem;font-size:.86rem;line-height:1.62;color:var(--ink2)}
.vdo-card-cta{margin-top:auto;font-family:var(--fd);font-size:.7rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--orange)}

.reference-section{padding:clamp(4.5rem,7vw,7rem) 0;background:var(--bg)}
.reference-section .pr-head{margin-bottom:2.25rem}
.reference-grid{gap:1px}
.reference-card{min-height:160px;padding:1.55rem 1.75rem}
.reference-card[hidden]{display:none!important}
.reference-year{font-size:1.8rem}
.reference-status{top:1.55rem;right:1.75rem}
.reference-card h3{font-size:1.05rem;margin:1rem 0 .5rem}
.reference-actions{display:flex;justify-content:center;margin-top:1.8rem}
.reference-toggle{min-height:44px;padding:.7rem 1.2rem;border:1px solid var(--border2);background:transparent;color:var(--ink);font-family:var(--fd);font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:border-color .2s,color .2s,background .2s}
.reference-toggle:hover{border-color:var(--orange);color:var(--orange)}
.reference-toggle:focus-visible{outline:2px solid var(--orange);outline-offset:3px}

.vdo-overlay{position:fixed;inset:0;z-index:8100;display:flex;align-items:center;justify-content:center;padding:clamp(.75rem,2.5vw,2rem);background:rgba(0,0,0,.86);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .3s var(--ease-out),visibility .3s}
.vdo-overlay.open{opacity:1;visibility:visible}
.vdo-box{position:relative;width:min(1080px,calc(100vw - clamp(1rem,5vw,5rem)));max-height:94dvh;overflow:auto;background:var(--surface);border:1px solid var(--border);box-shadow:0 42px 110px rgba(0,0,0,.58);transform:translateY(16px) scale(.98);transition:transform .35s var(--ease-out)}
.vdo-overlay.open .vdo-box{transform:none}
.vdo-close{position:absolute;z-index:4;right:1rem;top:1rem;width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.22);background:rgba(0,0,0,.68);color:#fff;cursor:pointer;transition:background .2s,border-color .2s}
.vdo-close:hover{background:var(--orange);border-color:var(--orange)}
.vdo-close:focus-visible{outline:2px solid #fff;outline-offset:3px}
.vdo-modal-head{padding:clamp(1.5rem,3vw,2.25rem) clamp(1.5rem,3vw,2.5rem) 1.35rem;padding-right:5rem;border-bottom:1px solid var(--border)}
.vdo-modal-label{font-family:var(--fd);font-size:.66rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--orange)}
.vdo-modal-title{margin:.55rem 0 .6rem;font-family:var(--fd);font-size:clamp(1.45rem,3vw,2.25rem);font-weight:900;line-height:1.02;text-transform:uppercase;color:var(--ink)}
.vdo-modal-description{max-width:760px;margin:0;font-size:.92rem;line-height:1.65;color:var(--ink2)}
.vdo-consent{display:grid;place-items:center;min-height:min(54vw,560px);padding:clamp(2rem,6vw,5rem);text-align:center;background:linear-gradient(135deg,#090908,#171713)}
.vdo-consent-inner{max-width:660px}
.vdo-consent-icon{width:64px;height:64px;display:grid;place-items:center;margin:0 auto 1.4rem;background:var(--orange);color:#fff;font-size:1.05rem;clip-path:polygon(12px 0,100% 0,calc(100% - 12px) 100%,0 100%)}
.vdo-consent h3{margin:0 0 .75rem;font-family:var(--fd);font-size:clamp(1.25rem,2.4vw,1.8rem);font-weight:850;text-transform:uppercase;color:#fff}
.vdo-consent p{margin:0 auto 1.4rem;max-width:590px;font-size:.9rem;line-height:1.65;color:rgba(255,255,255,.72)}
.vdo-consent-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.8rem 1.35rem;border:1px solid var(--orange);background:var(--orange);color:#fff;font-family:var(--fd);font-size:.75rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background .2s,transform .2s var(--ease-out)}
.vdo-consent-button:hover{background:var(--orange-lt);transform:translateY(-1px)}
.vdo-consent-button:focus-visible{outline:2px solid #fff;outline-offset:4px}
.vdo-player{aspect-ratio:16/9;background:#000}
.vdo-player[hidden]{display:none}
.vdo-player iframe{display:block;width:100%;height:100%;border:0}

@media(max-width:980px){
  .pr-grid,.vdo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vdo-head{grid-template-columns:1fr;gap:1rem}
}

@media(max-width:760px){
  .pr-grid,.vdo-grid{grid-template-columns:1fr}
  .pr-grid>.pr-card:last-child:nth-child(odd),.vdo-grid>.vdo-card:last-child:nth-child(odd){grid-column:auto;width:100%}
  .pr-card:hover,.vdo-card:hover{transform:none}
  .pr-card-hover-label{opacity:1;transform:none}
  .vdo-section::before{display:none}
  .reference-grid{grid-template-columns:1fr}
  .pr-page-btn--edge,.vdo-page-btn--edge{flex:1 1 120px}
}

@media(max-width:500px){
  .pr-section,.vdo-section,.reference-section{padding:4rem 0}
  .pr-inner{padding-inline:1.1rem}
  .pr-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
  .pr-filter{width:100%;font-size:.66rem;padding-inline:.55rem}
  .pr-card-body,.vdo-card-body{padding:1.2rem}
  .pr-card-title,.vdo-card-title{font-size:1.2rem}
  .pr-card-desc,.vdo-card-description{-webkit-line-clamp:3}
  .pr-pagination,.vdo-pagination{gap:.35rem}
  .pr-page-btn,.vdo-page-btn{min-width:38px;min-height:40px;padding:.45rem .65rem}
  .pr-page-btn--edge,.vdo-page-btn--edge{order:2;flex-basis:calc(50% - .2rem)}
  .reference-card{padding:1.35rem;min-height:150px}
  .reference-status{position:static;display:block;margin-top:.45rem}
  .reference-card h3{margin-top:.8rem}
  .vdo-overlay{padding:.35rem}
  .vdo-box{width:calc(100vw - .7rem);max-height:96dvh}
  .vdo-close{top:.7rem;right:.7rem}
  .vdo-modal-head{padding:1.35rem 4.25rem 1.15rem 1.2rem}
  .vdo-consent{min-height:52dvh;padding:2rem 1.2rem}
}

@media(max-width:360px){
  .pr-filters{grid-template-columns:1fr}
}

@media(hover:none){
  .pr-card-hover-label{opacity:1;transform:none}
  .pr-card-overlay{opacity:.3}
}

@media(prefers-reduced-motion:reduce){
  .pr-grid.listing-reveal-pending .pr-card,.vdo-grid.listing-reveal-pending .vdo-card{opacity:1!important;transform:none!important}
  .pr-card,.pr-card-img,.vdo-card,.vdo-card-image,.vdo-play,.vdo-box{transition:none!important}
  .pr-card:hover,.vdo-card:hover{transform:none}
}
.pr-pagination[hidden],.vdo-pagination[hidden],.vdo-consent[hidden]{display:none!important}

@media(max-width:500px){
  .reference-section .s-title{font-size:clamp(2rem,10vw,2.6rem);overflow-wrap:anywhere}
}

body.modal-open .ck-banner{opacity:0;visibility:hidden;pointer-events:none}

.vdo-overlay{pointer-events:none}
.vdo-overlay.open{pointer-events:auto}


/* Navigation Photos, Vidéos et Références */
.realisation-switch-wrap{padding:1.7rem 0 0;background:var(--bg)}
.realisation-switch{max-width:1440px;margin:0 auto;padding:0 3.5rem;display:flex;align-items:center;gap:.55rem}
.realisation-switch-label{margin-right:.8rem;font-family:var(--fd);font-size:.68rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.realisation-switch-link{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.7rem 1.15rem;border:1px solid var(--border2);background:var(--surface);color:var(--ink2);font-family:var(--fd);font-size:.75rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;transition:color .2s,border-color .2s,background .2s,transform .2s var(--ease-out)}
.realisation-switch-link::before{content:"";position:absolute;left:-1px;right:-1px;bottom:-1px;height:2px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease-out)}
.realisation-switch-link:hover{color:var(--orange);border-color:var(--orange);transform:translateY(-1px)}
.realisation-switch-link.is-active,.realisation-switch-link[aria-current="location"]{background:var(--orange);border-color:var(--orange);color:#fff;box-shadow:0 10px 28px var(--orange-glow)}
.realisation-switch-link.is-active::before,.realisation-switch-link[aria-current="location"]::before{transform:scaleX(1);background:#fff}
.realisation-switch-link:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
#pr-gallery,#videos,#references{scroll-margin-top:calc(var(--nav-height) + 1.5rem)}
.reference-section{padding-top:clamp(3rem,4.5vw,4.5rem)}
.vdo-section{padding-bottom:clamp(3.8rem,5.5vw,5.4rem)}
@media(max-width:1024px){.realisation-switch{padding-inline:2.5rem}}
@media(max-width:640px){
  .realisation-switch-wrap{padding-top:1.25rem}
  .realisation-switch{padding-inline:1.5rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}
  .realisation-switch-label{grid-column:1/-1;margin:0 0 .15rem}
  .realisation-switch-link{width:100%;padding-inline:.45rem;font-size:clamp(.58rem,2.55vw,.69rem);letter-spacing:.06em}
  .reference-section{padding-top:3rem}
}
@media(prefers-reduced-motion:reduce){.realisation-switch-link{transition:none}}

@media(min-width:641px) and (max-width:820px){
  .realisation-switch{padding-inline:1.5rem}
  .realisation-switch-label{margin-right:.35rem}
  .realisation-switch-link{padding-inline:.75rem;font-size:.68rem}
}
.prm-actions{display:flex;flex-wrap:wrap;gap:.8rem}
.prm-detail-link{background:transparent;color:var(--ink);border:1px solid var(--border2);box-shadow:none}
.prm-detail-link:hover{background:var(--surface2);color:var(--orange);border-color:var(--orange);transform:translateY(-1px)}
