:root{
  --noir:#0A0A0A;
  --anthracite:#171717;
  --ivoire:#F2F0EA;
  --acier:#9A9A96;
  --rouge:#D52B1E;
  --max:85rem;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--ivoire);
  color:var(--noir);
  font-family:'Inter', -apple-system, sans-serif;
  font-weight:400;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{margin:0 0 .3em; font-weight:500; letter-spacing:-.01em;}
h1{font-size:clamp(2.6rem, 1.9rem + 3.5vw, 5rem); font-weight:500; line-height:1.04;}
h2{font-size:clamp(1.8rem, 1.55rem + 1.25vw, 2.6rem); line-height:1.12;}
h3{font-size:1.15rem; font-weight:500;}
h4{font-size:.78rem; letter-spacing:.06em; color:var(--acier); font-weight:500;}
p{margin:0 0 1em; color:var(--acier);}
a{color:inherit; text-decoration:none;}
ul{list-style:none; margin:0; padding:0;}
.wrap{max-width:var(--max); margin:0 auto; padding:0 40px;}

.placeholder-media{
  position:relative; background:linear-gradient(135deg,#26261f,#171717);
  min-height:100%;
}
.placeholder-media::after{
  content:attr(data-placeholder);
  position:absolute; top:14px; left:14px; right:14px;
  font-size:.7rem; letter-spacing:.02em; color:rgba(242,240,234,.55);
  font-family:'Inter',sans-serif; line-height:1.4;
}

/* Header */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:20;
  background:transparent; transition:background-color .3s ease, border-color .3s ease;
  border-bottom:1px solid transparent;
}
.site-header.is-scrolled{background:rgba(10,10,10,.9); backdrop-filter:blur(8px); border-bottom-color:rgba(255,255,255,.08);}
.header-row{max-width:var(--max); margin:0 auto; padding:22px 40px; display:flex; align-items:center; gap:32px;}
.wordmark{display:flex; flex-direction:column; line-height:1.1; color:#fff;}
.wordmark.small{color:var(--noir);}
.wordmark-text{font-size:.95rem; font-weight:600; letter-spacing:.03em; display:flex; align-items:center; gap:7px;}
.wordmark-sub{font-size:.6rem; letter-spacing:.14em; color:rgba(255,255,255,.65);}
.wordmark.small .wordmark-sub{color:var(--acier);}
.swiss-chip{width:14px; height:14px; background:var(--rouge); position:relative; flex:none; border-radius:2px;}
.swiss-chip::before,.swiss-chip::after{content:''; position:absolute; background:#fff;}
.swiss-chip::before{width:7px; height:2px; top:6px; left:3.5px;}
.swiss-chip::after{width:2px; height:7px; left:6px; top:3.5px;}
.nav{display:flex; gap:28px; margin-left:auto;}
.nav a{color:rgba(255,255,255,.82); font-size:.86rem;}
.nav a:hover{color:#fff;}
.btn-essai{background:#fff; color:var(--noir); padding:11px 20px; font-size:.82rem; font-weight:500; border-radius:999px; white-space:nowrap;}
.btn-essai:hover{background:var(--ivoire);}
.nav-toggle{display:none; background:none; border:0; cursor:pointer; padding:8px;}
.nav-toggle span{display:block; width:20px; height:1px; background:#fff; margin:5px 0;}

/* Hero */
.hero{position:relative; height:100vh; min-height:680px; display:flex; align-items:flex-end;}
.hero-media{position:absolute; inset:0; height:100%; background-size:cover; background-position:center; filter:brightness(.72) saturate(.92);}
.hero-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(0deg, rgba(10,10,10,.88) 0%, rgba(10,10,10,.35) 55%, rgba(10,10,10,.5) 100%),
    linear-gradient(90deg, rgba(10,10,10,.6) 0%, rgba(10,10,10,.1) 45%, rgba(10,10,10,.15) 100%);
}
.hero-content{position:relative; z-index:1; padding:0 40px 120px; color:#fff; max-width:640px;}
.eyebrow{font-size:.78rem; letter-spacing:.03em; color:rgba(242,240,234,.75); margin-bottom:16px;}
.eyebrow-dark{color:var(--acier);}
.eyebrow-light{color:rgba(255,255,255,.6);}
.hero-sub{font-size:1.05rem; color:rgba(242,240,234,.9); max-width:40ch;}
.tag-line{font-size:.78rem; letter-spacing:.05em; color:rgba(242,240,234,.65); margin-bottom:30px;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap;}
.btn-ivoire{display:inline-flex; align-items:center; background:var(--ivoire); color:var(--noir); padding:15px 24px; font-size:.88rem; font-weight:500; border-radius:999px;}
.btn-ivoire:hover{background:#fff;}
.btn-outline-light{display:inline-flex; align-items:center; gap:8px; border:1px solid rgba(255,255,255,.4); color:#fff; padding:14px 22px; font-size:.86rem; border-radius:999px;}
.btn-outline-light:hover{border-color:#fff;}
.btn-rouge{display:inline-flex; align-items:center; background:var(--rouge); color:#fff; padding:14px 24px; font-size:.86rem; font-weight:500; border-radius:999px; margin-top:12px;}
.btn-rouge:hover{background:#b8241a;}
.hero-location{
  position:absolute; z-index:1; right:40px; bottom:36px; color:#fff;
  display:flex; align-items:center; gap:12px; font-size:.75rem; text-align:right;
}
.hero-location span:not(.swiss-chip){color:rgba(255,255,255,.7); line-height:1.3;}

/* Compare */
.compare-section{padding:70px 40px; max-width:var(--max); margin:0 auto;}
.compare-wrap{display:grid; grid-template-columns:1.5fr 1fr; gap:44px; align-items:stretch;}
.compare{
  --compare-cursor-position:55%; --compare-cursor-size:2.75rem;
  display:grid; height:100%; min-height:440px; position:relative;
  cursor:ew-resize; user-select:none; -webkit-user-select:none;
}
.compare > *{grid-area:1/-1;}
.compare__before-image{z-index:0;}
.compare__after-image{z-index:1; clip-path:inset(0 0 0 var(--compare-cursor-position));}
.compare-pill{
  position:absolute; z-index:2; top:18px; background:rgba(10,10,10,.7); color:#fff;
  font-size:.72rem; letter-spacing:.03em; padding:6px 14px; border-radius:999px;
}
.compare-pill--before{left:18px;}
.compare-pill--after{right:18px; background:var(--ivoire); color:var(--noir);}
.compare-static{overflow:hidden; aspect-ratio:1568/1003;}
.compare-static img{width:100%; height:100%; object-fit:cover; display:block;}
.compare-side h3{margin-bottom:.4em;}
.compare-caption{font-size:.78rem; letter-spacing:.02em; color:var(--acier); margin-top:1.4em;}

/* Section head pattern (barre rouge + eyebrow + h2 / intro) */
.section-head{display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:start; padding-top:96px; padding-bottom:52px;}
.section-intro{
  font-size:.98rem; color:var(--acier); border-left:2px solid var(--rouge);
  padding-left:18px; max-width:42ch; margin:14px 0 0;
}
.link-arrow{display:inline-block; font-size:.86rem; margin-top:14px; border-bottom:1px solid currentColor; padding-bottom:2px;}
.link-arrow-light{display:inline-block; font-size:.86rem; margin-top:16px; color:rgba(255,255,255,.85); border-bottom:1px solid rgba(255,255,255,.5); padding-bottom:2px;}

/* Applications */
.applications{padding-bottom:110px;}
.app-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.app-card{display:block; overflow:hidden;}
.app-card img{width:100%; display:block; transition:transform .4s ease;}
.app-card:hover img{transform:scale(1.03);}

/* Process */
.process{padding-bottom:110px;}
.process-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:32px;}
.process-step img{width:100%; display:block; margin-bottom:18px;}
.process-step p{margin:0;}

/* Machine */
.machine{background:var(--noir); color:#fff; padding:100px 0;}
.machine-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
.machine-media{grid-row:1/3; aspect-ratio:4/3; align-self:start; overflow:hidden;}
.machine-media img{width:100%; height:100%; object-fit:cover; object-position:center 40%; display:block;}
.machine-lead{color:#fff; font-size:1.05rem;}
.machine-text p{color:rgba(242,240,234,.7);}
.machine-benefits{display:flex; flex-direction:column; gap:0; margin-top:8px;}
.machine-benefits li{
  display:flex; align-items:center; gap:14px; padding:16px 0; border-top:1px solid rgba(255,255,255,.12);
  font-size:.92rem; color:#eee;
}
.machine-benefits li:last-child{border-bottom:1px solid rgba(255,255,255,.12);}
.benefit-icon{
  width:30px; height:30px; border-radius:999px; border:1px solid rgba(255,255,255,.25);
  display:flex; align-items:center; justify-content:center; font-size:.85rem; flex:none; color:var(--rouge);
}

/* Realisations */
.realisations{padding-bottom:110px;}
.real-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.real-card{display:block;}
.real-card img{width:100%; display:block; margin-bottom:12px;}
.real-card p{font-size:.82rem; margin:0;}

.a-propos-anchor, .contact-anchor{display:block; height:0; scroll-margin-top:80px;}

/* CTA sombre */
.cta-dark{position:relative; background:var(--noir); color:#fff; overflow:hidden; padding:100px 0 90px;}
.cta-mountains{position:absolute; inset:0; opacity:.9;}
.cta-dark-content{position:relative; z-index:1; display:grid; grid-template-columns:1.3fr .7fr; gap:40px; align-items:end;}
.cta-dark h2{color:#fff; max-width:14ch;}
.cta-lead{color:rgba(242,240,234,.75); max-width:44ch;}
.cta-actions{display:flex; flex-direction:column; align-items:flex-start; gap:6px;}

/* Footer */
.site-footer{background:var(--ivoire); padding-top:70px;}
.footer-grid{display:grid; grid-template-columns:1.3fr .7fr .7fr 1.1fr; gap:40px; padding-bottom:50px;}
.footer-col{display:flex; flex-direction:column; gap:10px;}
.footer-col a{font-size:.88rem; color:var(--acier);}
.footer-col a:hover{color:var(--noir);}
.footer-contact p{display:flex; gap:10px; font-size:.85rem; color:var(--acier); margin:0 0 12px;}
.footer-contact a{color:var(--acier);}
.foot-icon{flex:none;}
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center; padding:24px 40px;
  border-top:1px solid rgba(10,10,10,.1); font-size:.8rem; color:var(--acier);
}
.footer-links{display:flex; gap:20px;}

/* Responsive */
@media (max-width:900px){
  .nav{
    display:none; position:fixed; inset:0; background:var(--noir);
    flex-direction:column; justify-content:center; align-items:center; gap:26px; z-index:15;
  }
  .nav.open{display:flex;}
  .nav a{font-size:1.1rem;}
  .btn-essai{display:none;}
  .nav-toggle{display:block; margin-left:auto; position:relative; z-index:21;}
  .header-row{padding:20px 24px;}
  .hero-content{padding:0 24px 90px;}
  .hero-location{display:none;}
  .wrap{padding:0 24px;}
  .compare-wrap{grid-template-columns:1fr;}
  .section-head{grid-template-columns:1fr; gap:20px; padding-top:70px; padding-bottom:36px;}
  .app-grid, .real-grid{grid-template-columns:repeat(2,1fr);}
  .process-grid{grid-template-columns:1fr; gap:40px;}
  .machine-grid{grid-template-columns:1fr;}
  .machine-media{grid-row:auto; aspect-ratio:16/10;}
  .cta-dark-content{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr; padding:0 24px 50px;}
  .footer-bottom{padding:24px; flex-direction:column; gap:12px;}
}

/* Page Technologie */
.tech-hero{padding-top:150px; padding-bottom:60px; max-width:60rem;}
.tech-h1{font-size:clamp(2.2rem, 1.8rem + 2vw, 3.4rem);}
.tech-intro{margin-top:18px;}

.tech-block{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; padding-bottom:100px;}
.tech-block-media{aspect-ratio:4/3;}
.tech-block-gallery{display:flex; gap:14px; height:460px;}
.gallery-main{flex:1.15 1.15 0; height:100%; object-fit:cover; display:block;}
.gallery-side{flex:.85 .85 0; display:flex; flex-direction:column; gap:14px; height:100%;}
.gallery-side .placeholder-media, .gallery-side video, .gallery-side img{flex:1 1 0; min-height:0; width:100%; height:100%; object-fit:cover; display:block;}
.tech-block-text p:last-child{margin-bottom:0;}

.tech-stats{background:var(--anthracite); color:#fff; padding-bottom:80px;}
.tech-stats .section-head{padding-top:80px;}
.tech-stats h2{color:#fff;}
.tech-stats .eyebrow-dark{color:var(--acier);}
.tech-stats .section-intro{color:rgba(242,240,234,.75); border-left-color:var(--rouge);}
.stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,.14); margin-top:10px;}
.stat-box{background:var(--anthracite); padding:32px 26px;}
.stat-num{display:block; font-size:2.6rem; font-weight:500; color:var(--rouge); margin-bottom:10px; letter-spacing:-.01em;}
.stat-box p{color:rgba(242,240,234,.7); font-size:.88rem; margin:0;}
.stats-note{font-size:.76rem; color:var(--acier); margin-top:26px; max-width:60ch;}

@media (max-width:900px){
  .tech-block{grid-template-columns:1fr; gap:30px;}
  .tech-block-gallery{height:280px;}
  .stats-grid{grid-template-columns:1fr 1fr;}
}

/* Applications bois (page technologie) */
.tech-apps{padding-bottom:100px;}
.apps-list{display:grid; border-top:1px solid rgba(10,10,10,.12);}
.apps-item{
  display:grid; grid-template-columns:1fr 2fr; gap:40px;
  padding:26px 0; border-bottom:1px solid rgba(10,10,10,.12);
}
.apps-item h3{margin:0;}
.apps-item p{margin:0; max-width:52ch;}

/* Specs (avantages / ce que nous proposons) */
.tech-specs{background:var(--ivoire); padding-bottom:100px;}
.specs-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px;}
.specs-col h4{color:var(--noir); font-size:.95rem; letter-spacing:0; font-weight:500; margin-bottom:18px;}
.specs-list li{
  padding:14px 0; border-top:1px solid rgba(10,10,10,.12); font-size:.92rem; color:var(--noir);
}
.specs-list li:last-child{border-bottom:1px solid rgba(10,10,10,.12);}

@media (max-width:900px){
  .apps-item{grid-template-columns:1fr; gap:8px;}
  .specs-grid{grid-template-columns:1fr; gap:36px;}
}

/* FAQ (page technologie) */
.tech-faq{padding-bottom:100px;}
.faq-list{display:grid; grid-template-columns:1fr 1fr; gap:1px 48px; border-top:1px solid rgba(10,10,10,.12);}
.faq-item{padding:26px 0; border-bottom:1px solid rgba(10,10,10,.12);}
.faq-item h3{font-size:1.02rem; margin-bottom:.5em;}
.faq-item p{margin:0; font-size:.92rem;}

@media (max-width:900px){
  .faq-list{grid-template-columns:1fr;}
}

/* Dégradations du bois */
.degrad{padding-bottom:100px;}
.degrad-sub{font-size:.95rem; color:var(--acier); margin-top:6px;}
.degrad-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.degrad-card{position:relative;}
.degrad-card img{width:100%; aspect-ratio:3/4; object-fit:cover; display:block;}
.degrad-num{
  display:block; font-family:'Inter',sans-serif; font-size:.85rem; color:var(--rouge);
  margin-top:16px; padding-top:14px; border-top:1px solid rgba(10,10,10,.15);
}
.degrad-card h3{margin-top:8px; font-size:1.02rem;}
.degrad-card p{margin:0; font-size:.9rem;}

@media (max-width:900px){
  .degrad-grid{grid-template-columns:1fr;}
}

/* Page Services */
.why-laser{background:var(--anthracite); color:#fff; padding:80px 0;}
.why-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:60px; align-items:start;}
.why-laser h2{color:#fff; max-width:16ch;}
.why-laser p{color:rgba(242,240,234,.75);}
.why-list li{padding:14px 0; border-top:1px solid rgba(255,255,255,.14); font-size:.92rem; color:#eee;}
.why-list li:last-child{border-bottom:1px solid rgba(255,255,255,.14);}

.svc-section{padding:80px 0 100px;}
.svc-section > .wrap:first-child{margin-bottom:26px;}
.svc-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.svc-card{display:block; overflow:hidden;}
.svc-card img, .svc-card video{width:100%; display:block; transition:transform .4s ease;}
.svc-card:hover img{transform:scale(1.03);}

@media (max-width:900px){
  .why-grid{grid-template-columns:1fr; gap:30px;}
  .svc-grid{grid-template-columns:repeat(2,1fr);}
}

/* Matériels */
.materiel-grid .svc-card{overflow:visible;}
.materiel-media{aspect-ratio:4/3;}
.materiel-body{padding-top:16px;}
.materiel-body h3{margin-bottom:6px;}
.materiel-body p{margin:0; font-size:.9rem;}

/* Matériaux (page matériels) */
.materiaux-intro{padding-bottom:90px;}
.materiaux-grid{display:grid; grid-template-columns:1fr 1.3fr; gap:60px;}
.materiaux-text p{max-width:56ch;}
.materiaux-note{font-size:.85rem; color:var(--acier); border-left:2px solid var(--rouge); padding-left:16px; margin-top:1.6em;}

@media (max-width:900px){
  .materiaux-grid{grid-template-columns:1fr; gap:24px;}
}

/* Industries */
.ind-row{
  display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; align-items:center;
  padding:56px 0; border-top:1px solid rgba(10,10,10,.1);
}
.ind-row--reverse{grid-template-columns:1.1fr .9fr;}
.ind-row--reverse .ind-media{order:2;}
.ind-row--reverse .ind-text{order:1;}
.ind-media img, .ind-media video{width:100%; display:block; aspect-ratio:4/3; object-fit:cover;}
.ind-text h2{margin-bottom:14px;}
.ind-text p:last-child{margin:0; max-width:60ch;}

@media (max-width:900px){
  .ind-row, .ind-row--reverse{grid-template-columns:1fr; gap:24px; padding:36px 0;}
  .ind-row--reverse .ind-media, .ind-row--reverse .ind-text{order:initial;}
}

/* Réalisations */
.real-project{
  display:grid; grid-template-columns:1.6fr .9fr; gap:60px; align-items:center;
  padding:70px 0; border-top:1px solid rgba(10,10,10,.1);
}
.real-project--reverse{grid-template-columns:.9fr 1.6fr;}
.real-project--reverse .real-project-media{order:2;}
.real-project--reverse .real-project-meta{order:1;}
.real-project-media img, .real-project-media video{width:100%; display:block; aspect-ratio:16/10; object-fit:cover;}
.real-project-meta h2{margin-bottom:24px;}
.real-project-meta dl{margin:0;}
.real-project-meta dt{
  font-size:.72rem; letter-spacing:.05em; color:var(--rouge); margin-top:18px;
}
.real-project-meta dt:first-child{margin-top:0;}
.real-project-meta dd{margin:2px 0 0; font-size:.95rem; color:var(--noir);}

@media (max-width:900px){
  .real-project, .real-project--reverse{grid-template-columns:1fr; gap:26px; padding:44px 0;}
  .real-project--reverse .real-project-media, .real-project--reverse .real-project-meta{order:initial;}
}

/* Page Contact */
.contact-page{background:var(--anthracite); color:#fff; padding:160px 0 120px;}
.contact-page h1{color:#fff; max-width:16ch;}
.contact-lead{color:rgba(242,240,234,.75); max-width:48ch; font-size:1.05rem;}
.contact-details-page{display:flex; gap:60px; margin-top:70px; flex-wrap:wrap;}
.contact-details-page strong{display:block; font-size:.75rem; letter-spacing:.03em; color:var(--acier); font-weight:500; margin-bottom:.4em;}
.contact-details-page p{color:#fff; margin:0;}
.contact-details-page a{color:#fff;}

/* Page A propos */
.a-propos-body{padding-bottom:90px;}
.location-line{font-size:.9rem; color:var(--acier);}

/* Page A propos */
.ap-hero{position:relative; height:70vh; min-height:480px; display:flex; align-items:flex-end;}
.ap-hero-media{position:absolute; inset:0; height:100%;}
.ap-hero-media img{width:100%; height:100%; object-fit:cover; filter:brightness(.7);}
.ap-hero-scrim{position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,10,10,.85) 0%, rgba(10,10,10,.15) 60%);}
.ap-hero-content{position:relative; z-index:1; color:#fff; padding-bottom:70px; max-width:640px;}
.ap-hero-content h1{color:#fff; font-size:clamp(2.4rem, 1.9rem + 2.5vw, 4rem); font-weight:400;}
.ap-hero-content p{color:rgba(242,240,234,.85); font-size:1.05rem; max-width:44ch;}

.ap-block{padding:90px 0; max-width:52rem;}
.ap-block h2{margin-bottom:22px;}
.ap-text{max-width:60ch;}

.ap-macro{max-width:1360px; margin:0 auto; padding:0 40px 90px;}
.ap-macro img{width:100%; display:block; aspect-ratio:21/9; object-fit:cover;}

.ap-methode{background:var(--ivoire); padding-bottom:100px; border-top:1px solid rgba(10,10,10,.1);}
.methode-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:36px;}
.methode-step p{margin:0;}

.ap-ambition{background:var(--anthracite); color:#fff; padding:100px 0;}
.ap-ambition h2{color:#fff; max-width:20ch; margin:16px 0 22px;}
.ap-ambition p{color:rgba(242,240,234,.75); max-width:60ch; margin:0;}

@media (max-width:900px){
  .methode-grid{grid-template-columns:1fr 1fr; gap:30px;}
}

/* Page Contact */
.ct-intro{padding:150px 0 60px; max-width:44rem;}
.ct-lead{font-size:1rem; color:var(--acier); max-width:56ch;}

.ct-form-section{padding-bottom:90px;}
.ct-form-grid{display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; align-items:start;}
.ct-form-side{position:sticky; top:110px;}
.ct-form-side h2{font-size:clamp(2rem, 1.6rem + 2vw, 3rem); font-weight:400; margin-bottom:16px;}
.ct-form-side p{color:var(--acier); max-width:32ch;}
.ct-side-media{margin-top:32px;}
.ct-side-media img{width:100%; display:block; aspect-ratio:4/3; object-fit:cover;}

.ct-form-panel{background:#fff; border:1px solid rgba(10,10,10,.1); padding:40px;}
.ct-form-panel h3{font-size:.85rem; letter-spacing:.03em; color:var(--noir); text-transform:none; margin:36px 0 18px; padding-top:24px; border-top:1px solid rgba(10,10,10,.1);}
.ct-form-panel h3:first-child{margin-top:0; padding-top:0; border-top:none;}

.ct-field{margin-bottom:20px;}
.ct-field label{display:block; font-size:.85rem; color:var(--noir); margin-bottom:8px;}
.ct-field-row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}

.ct-radio-row, .ct-checkbox-row{display:flex; flex-wrap:wrap; gap:10px 18px;}
.ct-radio-row label, .ct-checkbox-row label{
  display:flex; align-items:center; gap:6px; font-size:.88rem; color:var(--acier);
  font-weight:400; margin:0;
}
.ct-radio-row input, .ct-checkbox-row input{accent-color:var(--rouge);}

.ct-form-panel input[type="text"], .ct-form-panel input[type="email"], .ct-form-panel input[type="tel"],
.ct-form-panel select, .ct-form-panel textarea{
  width:100%; padding:11px 12px; border:1px solid rgba(10,10,10,.18); background:var(--ivoire);
  font-family:inherit; font-size:.92rem; color:var(--noir);
}
.ct-form-panel textarea{resize:vertical;}

.ct-dropzone{
  border:1.5px dashed rgba(10,10,10,.3); padding:36px 20px; text-align:center; cursor:pointer;
  transition:border-color .2s ease, background .2s ease;
}
.ct-dropzone:hover, .ct-dropzone.is-dragover{border-color:var(--noir); background:rgba(10,10,10,.02);}
.ct-dropzone-icon{font-size:1.6rem; color:var(--acier); display:block; margin-bottom:8px;}
.ct-dropzone p{margin:0 0 4px; font-size:.9rem; color:var(--acier);}
.ct-browse{text-decoration:underline; color:var(--noir);}
.ct-dropzone-hint{font-size:.76rem !important; color:var(--acier); opacity:.8;}

.ct-thumbs{display:flex; flex-wrap:wrap; gap:10px; margin-top:14px;}
.ct-thumb{position:relative; width:64px; height:64px;}
.ct-thumb img{width:100%; height:100%; object-fit:cover; display:block;}
.ct-thumb button{
  position:absolute; top:-6px; right:-6px; width:20px; height:20px; border-radius:999px;
  background:var(--noir); color:#fff; border:none; font-size:.8rem; line-height:1; cursor:pointer;
}

.ct-help{font-size:.8rem; color:var(--acier); margin-top:12px; margin-bottom:0;}

.btn-noir-full{
  width:100%; background:var(--noir); color:#fff; border:none; padding:16px; font-size:.95rem;
  font-family:inherit; font-weight:500; cursor:pointer; margin-top:30px;
}
.btn-noir-full:hover{background:#000;}
.ct-privacy{font-size:.78rem; color:var(--acier); text-align:center; margin-top:14px;}

.ct-success h3{margin-bottom:14px;}
.ct-success p{max-width:52ch;}

.ct-direct{background:var(--noir); color:#fff; padding:60px 0;}
.ct-direct-row{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px;}
.ct-direct h2{color:#fff; font-size:1.4rem; font-weight:400; margin:0;}
.ct-direct-links{display:flex; gap:30px;}
.ct-direct-links a{font-size:.95rem; border-bottom:1px solid rgba(255,255,255,.4); padding-bottom:2px;}

@media (max-width:900px){
  .ct-form-grid{grid-template-columns:1fr; gap:36px;}
  .ct-form-side{position:static;}
  .ct-field-row{grid-template-columns:1fr;}
  .ct-form-panel{padding:26px;}
}

/* Formulaire : type de demande */
.ct-type-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.ct-type{position:relative; display:block !important; margin:0 !important; cursor:pointer;}
.ct-type input{position:absolute; opacity:0; pointer-events:none;}
.ct-type span{
  display:block; padding:16px 14px; border:1px solid rgba(10,10,10,.18); background:var(--ivoire);
  font-size:.9rem; color:var(--noir); transition:border-color .15s ease, background .15s ease;
}
.ct-type:hover span{border-color:var(--noir);}
.ct-type input:checked + span{border-color:var(--noir); background:var(--noir); color:#fff;}
.ct-type input:focus-visible + span{outline:2px solid var(--rouge); outline-offset:2px;}
.ct-branch{border:none; padding:0; margin:20px 0 0; min-width:0;}
.ct-dropzone--key{border-color:rgba(10,10,10,.45); padding:44px 20px;}
.ct-dropzone--key strong{color:var(--noir); font-weight:500;}
.ct-error{font-size:.8rem; color:var(--rouge); margin:8px 0 0;}
.ct-form-panel .is-invalid{border-color:var(--rouge) !important;}
@media (max-width:600px){ .ct-type-grid{grid-template-columns:1fr;} }

/* Industries : lien d'action sous chaque secteur */
.ind-cta{display:inline-block; margin-top:10px;}

/* Technologie : tableau comparatif */
.tech-compare{padding:90px 0;}
.cmp-scroll{overflow-x:auto;}
.cmp-table{width:100%; min-width:720px; border-collapse:collapse; font-size:.9rem;}
.cmp-table th, .cmp-table td{padding:14px 16px; text-align:left; vertical-align:top; border-bottom:1px solid rgba(10,10,10,.12);}
.cmp-table thead th{font-weight:500; color:var(--noir); border-bottom:1px solid var(--noir);}
.cmp-table tbody th{font-weight:500; color:var(--noir); white-space:nowrap;}
.cmp-table td{color:var(--acier);}
.cmp-table thead th:nth-child(2), .cmp-table td:nth-child(2){background:var(--noir); color:#fff;}
.cmp-table thead th:nth-child(2){border-bottom-color:var(--noir);}

/* Bouton d'action + mention de délai */
.cta-stack{display:inline-flex; flex-direction:column; align-items:flex-start; gap:8px;}
.cta-note{font-size:.78rem; color:var(--acier); letter-spacing:.01em;}
.cta-dark .cta-note, .machine .cta-note, .hero .cta-note{color:rgba(242,240,234,.7);}
.hero-actions{align-items:flex-start;}
.foot-icon .swiss-chip{display:inline-block; vertical-align:-2px;}
.footer-contact .foot-zone{padding-left:26px;}
.foot-zone{color:var(--acier);}
.ind-row[id]{scroll-margin-top:90px;}

/* Bandeau mesure d'audience */
.cookie-banner{
  position:fixed; left:20px; right:20px; bottom:calc(20px + env(safe-area-inset-bottom, 0px)); z-index:50;
  max-width:560px; margin-left:auto; background:var(--noir); color:#fff;
  padding:20px 22px; display:flex; flex-direction:column; gap:14px; font-size:.86rem;
  box-shadow:0 10px 30px rgba(0,0,0,.25);
}
.cookie-banner p{margin:0; color:rgba(242,240,234,.85); line-height:1.5;}
.cookie-banner a{color:#fff; text-decoration:underline;}
.cookie-actions{display:flex; gap:10px;}
.cookie-actions button{
  flex:1; padding:11px 14px; font-family:inherit; font-size:.86rem; cursor:pointer;
  border:1px solid rgba(255,255,255,.4); background:transparent; color:#fff;
}
.cookie-actions button[data-c="granted"]{background:var(--ivoire); color:var(--noir); border-color:var(--ivoire);}
.cookie-actions button:focus-visible{outline:2px solid var(--rouge); outline-offset:2px;}

/* Pages légales */
.legal{max-width:60rem; padding-bottom:110px;}
.legal > *{max-width:48rem;}
.legal h2{font-size:1.25rem; font-weight:500; margin:48px 0 14px;}
.legal h2:first-child{margin-top:0;}
.legal p{color:var(--acier); max-width:68ch;}
.legal a{color:var(--noir); text-decoration:underline;}
.legal-list{display:grid; grid-template-columns:minmax(150px, 220px) 1fr; gap:10px 24px; margin:16px 0 0;}
.legal-list dt{font-size:.85rem; color:var(--acier);}
.legal-list dd{margin:0; font-size:.95rem; color:var(--noir);}
.legal-date{margin-top:56px; font-size:.8rem;}
@media (max-width:600px){ .legal-list{grid-template-columns:1fr; gap:2px;} .legal-list dd{margin-bottom:12px;} }
.legal-ul{color:var(--acier); padding-left:1.2em; max-width:68ch;}
.legal-ul li{margin-bottom:6px;}
.legal strong{color:var(--noir); font-weight:500;}
.legal-date--top{margin:0 0 24px;}

/* ---------- Accueil : diaporama du hero ---------- */
.hero{overflow:hidden;}
.hero-slides{position:absolute; inset:0;}
.hero-slide{opacity:0; transition:opacity 1.6s ease;}
.hero-slide.is-active{opacity:1;}
@media (prefers-reduced-motion: no-preference){
  .hero-slide{transform:scale(1.06); transition:opacity 1.6s ease, transform 8s linear;}
  .hero-slide.is-active{transform:scale(1);}
}
.hero-dots{position:absolute; z-index:2; left:40px; bottom:40px; display:flex; gap:10px;}
.hero-dots button{
  width:34px; height:14px; padding:0; border:0; background:none; cursor:pointer; position:relative;
}
.hero-dots button::before{
  content:""; position:absolute; left:0; right:0; top:50%; height:2px; margin-top:-1px;
  background:rgba(255,255,255,.35); transition:background .3s ease;
}
.hero-dots button.is-active::before, .hero-dots button:hover::before{background:#fff;}
.hero-dots button:focus-visible{outline:2px solid var(--rouge); outline-offset:3px;}
@media (max-width:600px){ .hero-dots{left:20px; bottom:24px;} }
