/* Finitions UI : accordéons propres et Réalisations plus compacte. */

/* FAQ : le symbole est du vrai texte dans le HTML/JS. On neutralise tout pseudo-élément et toute rotation concurrente. */
.faq-list summary>span{
  display:grid!important;
  place-items:center!important;
  transform:none!important;
  -webkit-transform:none!important;
  rotate:0deg!important;
  scale:1!important;
  translate:0 0!important;
  clip-path:none!important;
}
.faq-list details:hover summary>span,
.faq-list details.is-open summary>span,
.faq-list details[open] summary>span{
  transform:none!important;
  -webkit-transform:none!important;
  rotate:0deg!important;
  scale:1!important;
  translate:0 0!important;
}
.faq-list summary>span::before,
.faq-list summary>span::after{
  content:none!important;
  display:none!important;
}

/* Menu Nos services : chevron discret. */
.nav-services summary{list-style:none!important}
.nav-services summary::-webkit-details-marker{display:none!important}
.nav-services summary::after{
  content:''!important;
  display:block!important;
  flex:0 0 auto!important;
  width:7px!important;
  height:7px!important;
  margin-left:2px!important;
  margin-top:-4px!important;
  border-right:2px solid currentColor!important;
  border-bottom:2px solid currentColor!important;
  transform:rotate(45deg)!important;
  transform-origin:center!important;
  transition:transform .2s ease,margin-top .2s ease!important;
}
.nav-services[open] summary::after{
  margin-top:4px!important;
  transform:rotate(-135deg)!important;
}

/* Anciens détails de cartes service : même chevron si l'un d'eux est affiché. */
.service-card details summary{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  list-style:none!important;
}
.service-card details summary::-webkit-details-marker{display:none!important}
.service-card details summary::after{
  content:'';
  display:block;
  flex:0 0 auto;
  width:8px;
  height:8px;
  margin:-4px 3px 0 8px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(45deg);
  transition:transform .2s ease,margin-top .2s ease;
}
.service-card details[open] summary::after{margin-top:4px;transform:rotate(-135deg)}

/* Titres généraux : légèrement plus compacts, sans toucher aux titres des chantiers. */
h1{font-size:clamp(2.65rem,5vw,4.65rem)!important}
h2{font-size:clamp(2rem,3vw,3rem)!important}
.hero h1{font-size:clamp(2.35rem,4vw,3.45rem)!important}
.service-intro h1{font-size:clamp(2.3rem,4vw,3.5rem)!important}
.legal-page h1{font-size:clamp(2.35rem,4.5vw,3.5rem)!important}
.project-caption h3{font-size:1.05rem!important}
.media-dialog .project-detail>h2,.video-dialog .project-detail>h2{font-size:1.05rem!important}

/* Footer : garder des titres compacts malgré les réglages globaux des h2. */
.site-footer .footer-grid h2{
  font-size:.9rem!important;
  line-height:1.4!important;
  font-weight:700!important;
  letter-spacing:.06em!important;
  text-transform:uppercase!important;
  color:var(--yellow)!important;
  margin:0 0 22px!important;
}
.site-footer .footer-contact h2{margin-bottom:7px!important}

/* Réalisations : section plus légère et compacte. */
.work-section{padding-block:clamp(36px,4.2vw,56px)!important}
.work-section .section-heading{margin-bottom:20px!important}
.work-section .section-heading h2{font-size:clamp(1.9rem,2.6vw,2.55rem)!important}
.work-section .section-heading>p{font-size:.94rem!important}
.work-section .gallery-filters{gap:8px!important;margin-bottom:18px!important}
.work-section .gallery-filters button{padding:8px 12px!important;font-size:.8rem!important}
#realisations{scroll-margin-top:-26px!important}

/* Réalisations : cartes plus sobres et plus professionnelles. */
.work-section .project-card{
  position:relative;
}
.work-section .project-open{
  display:block;
  border-radius:16px;
}
.work-section .project-visual{
  border-radius:14px!important;
  background:#2a2e32!important;
  box-shadow:inset 0 0 0 1px #ffffff0c;
}
.work-section .project-visual::after{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 64%,#11161b1f);
}
.work-section .project-type{
  top:10px!important;
  left:10px!important;
  padding:5px 9px!important;
  border:1px solid #ffffff2c!important;
  border-radius:7px!important;
  background:#171b20d9!important;
  color:#f5f6f7!important;
  box-shadow:0 4px 14px #0002!important;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  font-size:.62rem!important;
  font-weight:650!important;
  line-height:1!important;
  letter-spacing:.045em!important;
  text-transform:uppercase;
}
.work-section .project-caption{
  padding-top:12px!important;
}
.work-section .project-caption p{
  margin:0 0 5px!important;
  color:#d0ad25!important;
  font-size:.67rem!important;
  font-weight:700!important;
  line-height:1.25!important;
  letter-spacing:.065em!important;
  text-transform:uppercase;
}
.work-section .project-caption h3{
  min-height:2.55em;
  margin:0!important;
  color:#f7f8f9!important;
  font-size:1.05rem!important;
  font-weight:650!important;
  line-height:1.27!important;
  letter-spacing:-.018em!important;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
.work-section .project-caption>span{
  display:inline-flex!important;
  align-items:center;
  gap:6px;
  margin-top:9px!important;
  color:#aeb5bd!important;
  font-size:.72rem!important;
  font-weight:600!important;
  text-decoration:none!important;
}
.work-section .project-caption>span::after{
  content:'→';
  color:var(--yellow);
  font-size:.9rem;
  transition:transform .2s ease;
}
.work-section .project-open:hover .project-caption>span::after{
  transform:translateX(3px);
}
.work-section .project-open:focus-visible{
  outline:2px solid var(--yellow)!important;
  outline-offset:5px!important;
  border-radius:14px;
}

/* Modales chantier : hiérarchie éditoriale et onglets discrets. */
dialog.media-dialog,
dialog.video-dialog{
  border:1px solid #ffffff16!important;
  border-radius:16px!important;
  background:#14181c!important;
  box-shadow:0 28px 100px #000a!important;
}
.media-dialog .dialog-toolbar,
.video-dialog .dialog-toolbar{
  min-height:48px;
  padding:6px 12px 6px 18px!important;
  border-bottom:1px solid #ffffff12;
  background:#14181cf5!important;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.media-dialog .dialog-toolbar p,
.video-dialog .dialog-toolbar p{
  color:#858e98!important;
  font-size:.66rem!important;
  font-weight:700!important;
  letter-spacing:.075em!important;
  text-transform:uppercase;
}
.media-dialog .dialog-toolbar .icon-button,
.video-dialog .dialog-toolbar .icon-button{
  min-width:36px!important;
  min-height:36px!important;
  border:1px solid #ffffff14!important;
  border-radius:9px!important;
  color:#dce1e6!important;
}
.media-dialog .dialog-toolbar .icon-button:hover,
.video-dialog .dialog-toolbar .icon-button:hover{
  background:#ffffff0b!important;
  border-color:#ffffff27!important;
}
.media-dialog .project-detail,
.video-dialog .project-detail{
  padding:16px 20px 18px!important;
}
.media-dialog .project-detail>.eyebrow,
.video-dialog .project-detail>.eyebrow{
  display:block!important;
  margin:0 0 5px!important;
  color:#d2aa20!important;
  font-size:.62rem!important;
  font-weight:750!important;
  line-height:1.2!important;
  letter-spacing:.085em!important;
  text-transform:uppercase;
}
.media-dialog .project-detail>h2,
.video-dialog .project-detail>h2{
  max-width:760px;
  margin:0 0 13px!important;
  color:#f5f7f8!important;
  font-size:1.08rem!important;
  font-weight:650!important;
  line-height:1.3!important;
  letter-spacing:-.015em!important;
}
.media-dialog .project-view-nav,
.video-dialog .project-view-nav{
  display:flex!important;
  gap:3px!important;
  width:max-content;
  max-width:100%;
  margin:0 0 15px!important;
  padding:3px!important;
  overflow-x:auto;
  border:1px solid #ffffff13;
  border-radius:10px!important;
  background:#0e1114!important;
  scrollbar-width:none;
}
.media-dialog .project-view-nav::-webkit-scrollbar,
.video-dialog .project-view-nav::-webkit-scrollbar{display:none}
.media-dialog .project-view-nav button,
.video-dialog .project-view-nav button{
  flex:0 0 auto;
  min-height:32px!important;
  padding:6px 11px!important;
  border:0!important;
  border-radius:7px!important;
  background:transparent!important;
  color:#8f98a2!important;
  font-size:.67rem!important;
  font-weight:650!important;
  line-height:1!important;
  letter-spacing:.015em!important;
}
.media-dialog .project-view-nav button:hover,
.video-dialog .project-view-nav button:hover{
  color:#eef1f3!important;
  background:#ffffff08!important;
}
.media-dialog .project-view-nav button[aria-pressed=true],
.video-dialog .project-view-nav button[aria-pressed=true]{
  background:#272d32!important;
  color:#fff!important;
  box-shadow:inset 0 -2px 0 var(--yellow)!important;
}
.media-dialog .gallery-main,
.media-dialog .comparison-images,
.video-dialog .video-frame{
  border:1px solid #ffffff12!important;
  border-radius:11px!important;
  background:#0e1114!important;
}
.media-dialog .gallery-thumbs{
  gap:7px!important;
  padding:9px 1px 2px!important;
}
.media-dialog .gallery-thumb{
  flex:0 0 70px!important;
  padding:2px!important;
  border:1px solid transparent!important;
  border-radius:8px!important;
  opacity:.62;
  transition:opacity .18s,border-color .18s;
}
.media-dialog .gallery-thumb:hover{opacity:.9}
.media-dialog .gallery-thumb[aria-pressed=true]{
  border-color:#d1aa25!important;
  opacity:1;
}
.media-dialog .gallery-thumb img{
  width:64px!important;
  height:48px!important;
  border-radius:5px!important;
}
.media-dialog .comparison-label{
  bottom:9px!important;
  padding:4px 8px!important;
  border:1px solid #ffffff20!important;
  border-radius:6px!important;
  background:#11161bd9!important;
  color:#eef1f3!important;
  font-size:.61rem!important;
  font-weight:700!important;
  letter-spacing:.05em!important;
  text-transform:uppercase;
}
.media-dialog .comparison-divider::after{
  width:30px!important;
  height:30px!important;
  border:1px solid #ffffff2b;
  background:#161b20!important;
  color:#fff!important;
  font-size:14px!important;
}
.media-dialog .comparison label{
  color:#939ca6!important;
  font-size:.67rem!important;
  font-weight:500!important;
}
.media-dialog .project-description{
  color:#c0c7ce!important;
  font-size:.88rem!important;
  line-height:1.62!important;
}
.media-dialog .project-description .button{
  min-height:40px!important;
  padding:9px 15px!important;
  font-size:.76rem!important;
}

@media(max-width:760px){
  .work-section .project-caption h3{
    min-height:0;
    font-size:1rem!important;
  }
  .media-dialog .project-detail,
  .video-dialog .project-detail{
    padding:12px 12px 14px!important;
  }
  .media-dialog .project-detail>h2,
  .video-dialog .project-detail>h2{
    font-size:.98rem!important;
    margin-bottom:10px!important;
  }
  .media-dialog .project-view-nav,
  .video-dialog .project-view-nav{
    margin-bottom:11px!important;
  }
}

/* Accueil : carrousel manuel des réalisations, sans défilement automatique. */
.home-project-carousel{
  display:flex!important;
  gap:14px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  overscroll-behavior-inline:contain;
  scrollbar-width:none;
  padding-bottom:4px;
}
.home-project-carousel::-webkit-scrollbar{display:none}
.home-project-carousel>.project-card{
  flex:0 0 calc((100% - 42px)/4)!important;
  min-width:0;
  scroll-snap-align:start;
}
.project-carousel-controls{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin:-4px 0 14px;
}
.project-carousel-controls[hidden]{display:none!important}
.project-carousel-controls button{
  width:38px;
  height:38px;
  border-radius:50%;
  border:1px solid #6a6e74;
  background:#2a2d31;
  color:#fff;
  font-size:1.25rem;
  line-height:1;
  display:grid;
  place-items:center;
  transition:background .2s,border-color .2s,opacity .2s;
}
.project-carousel-controls button:hover:not(:disabled){background:var(--yellow);border-color:var(--yellow);color:var(--ink)}
.project-carousel-controls button:disabled{opacity:.28}

@media(max-width:1100px){
  .home-project-carousel>.project-card{flex-basis:calc((100% - 28px)/3)!important}
}
@media(max-width:900px){
  .home-project-carousel>.project-card{flex-basis:calc((100% - 14px)/2)!important}
}

@media(max-width:760px){
  .work-section{padding-block:34px!important}
  .work-section .section-heading{margin-bottom:18px!important}
  #realisations{scroll-margin-top:-10px!important}
  .home-project-carousel{gap:14px!important}
  .home-project-carousel>.project-card{flex-basis:84%!important}
  .project-carousel-controls{margin-top:0;margin-bottom:14px}
  .project-carousel-controls button{width:38px;height:38px}
}

@media(prefers-reduced-motion:reduce){
  .nav-services summary::after,.service-card details summary::after{transition:none!important}
  .home-project-carousel{scroll-behavior:auto}
}
