/* RPM Engineering — feuille de style
   Charte : noir #080808, anthracite #2B2B2B, blanc satiné #F5F5F5, cuivre champagne #B08D57 */
:root{
  color-scheme:dark;
  --noir:#080808;
  --panneau:#121212;
  --anthracite:#2B2B2B;
  --blanc:#F5F5F5;
  --gris:#A9A59E;
  --cuivre:#B08D57;
  --cuivre-clair:#D3B27E;
  --titre:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --texte:"Barlow","Segoe UI",Arial,sans-serif;
  --page:min(1240px,calc(100% - 48px));
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--noir);color:var(--blanc);font:400 1.0625rem/1.6 var(--texte);font-feature-settings:"tnum" 0}
img{max-width:100%;height:auto;display:block}
picture{display:block}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{color:var(--cuivre-clair)}
:focus-visible{outline:2px solid var(--cuivre-clair);outline-offset:3px}
h1,h2,h3{font-family:var(--titre);font-weight:600;line-height:1;margin:0;letter-spacing:.005em}
h1{font-size:clamp(2.9rem,6vw,5.4rem);hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word;font-weight:700;text-transform:uppercase;line-height:.92}
h2{font-size:clamp(2rem,3.6vw,3.1rem)}
h3{font-size:1.55rem}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
.page{width:var(--page);margin-inline:auto}
.skip{position:absolute;left:-9999px;top:8px;background:var(--cuivre);color:var(--noir);padding:10px 16px;z-index:100}
.skip:focus{left:8px}
.muted{color:var(--gris)}
.lead{font-size:1.25rem;line-height:1.5;color:#E2DFD9;max-width:38em}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* En-tête */
.entete{position:sticky;top:0;z-index:50;background:rgba(8,8,8,.94);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--anthracite)}
.entete-in{display:flex;align-items:center;gap:28px;min-height:76px}
.marque{display:block;flex:none}
.marque img{width:150px;height:auto}
.menu-btn{display:none}
.nav{display:flex;align-items:center;gap:4px;margin-left:auto}
.nav>a,.nav .sous-btn{font:500 1rem var(--texte);color:var(--blanc);text-decoration:none;padding:10px 12px;border:0;background:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.nav>a:hover,.nav .sous-btn:hover{color:var(--cuivre-clair)}
.nav [aria-current="page"]{color:var(--cuivre-clair);box-shadow:inset 0 -2px 0 var(--cuivre)}
.sous{position:relative}
.sous-btn svg{transition:transform .2s}
.sous-btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.sous-liste{position:absolute;top:calc(100% + 14px);left:0;min-width:270px;background:var(--panneau);border:1px solid var(--anthracite);padding:8px 0;margin:0;list-style:none;display:none}
.sous-liste.ouvert{display:block}
.sous-liste a{display:block;padding:10px 18px;text-decoration:none}
.sous-liste a small{display:block;color:var(--gris);font-size:.85rem}
.entete-actions{display:flex;align-items:center;gap:10px;flex:none}
.tel{font:600 1.15rem var(--titre);letter-spacing:.03em;text-decoration:none;white-space:nowrap}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 22px;font:600 1.12rem var(--titre);letter-spacing:.04em;text-decoration:none;border:1px solid var(--cuivre);background:var(--cuivre);color:var(--noir);border-radius:2px;cursor:pointer}
.btn:hover{background:var(--cuivre-clair);border-color:var(--cuivre-clair);color:var(--noir)}
.btn.contour{background:transparent;color:var(--blanc);border-color:#5a5650}
.btn.contour:hover{border-color:var(--cuivre-clair);color:var(--cuivre-clair)}
.btn.petit{min-height:42px;padding:8px 16px;font-size:1.02rem}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}

/* Héros : la lame cuivre du logo */
.heros{position:relative;overflow:hidden;border-bottom:1px solid var(--anthracite)}
.heros-in{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:0;min-height:min(78vh,720px)}
.heros-texte{padding:64px 40px 64px 0;position:relative;z-index:2}
.heros-texte .lead{margin-top:28px}
.heros-visuel{position:relative;align-self:stretch;margin-right:calc((100vw - min(1240px,100vw - 48px))/-2)}
.heros-visuel picture,.heros-visuel img{height:100%;width:100%;object-fit:cover;object-position:42% 60%}
.heros-visuel picture{clip-path:polygon(22% 0,100% 0,100% 100%,0 100%)}
.heros-visuel::before{content:"";position:absolute;z-index:3;left:calc(11% - 14px);top:-6%;width:3px;height:112%;background:linear-gradient(var(--cuivre-clair),var(--cuivre));rotate:12deg;animation:lame 1.1s cubic-bezier(.2,.7,.2,1) .15s both}
@keyframes lame{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
.heros-zone{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:36px;color:var(--gris);font-size:.98rem}
.heros-zone strong{color:var(--blanc);font-weight:500}

/* En-tête de page interne */
.entete-page{padding:72px 0 56px;border-bottom:1px solid var(--anthracite);position:relative;overflow:hidden}
.entete-page::after{content:"";position:absolute;right:8%;top:-20%;width:2px;height:150%;background:var(--cuivre);rotate:27deg;opacity:.55}
.entete-page h1{max-width:20ch}
.entete-page .lead{margin-top:24px}
.fil{font-size:.92rem;color:var(--gris);margin-bottom:28px}
.fil a{color:var(--gris)}
.fil span{margin:0 8px}
.prix-cle{display:inline-flex;align-items:baseline;gap:10px;margin-top:28px;padding:10px 0;border-top:1px solid var(--cuivre);font:600 1.6rem var(--titre)}
.prix-cle small{font:400 .95rem var(--texte);color:var(--gris)}

/* Sections */
.bloc{padding:88px 0}
.bloc+.bloc{border-top:1px solid var(--anthracite)}
.bloc-titre{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:end;margin-bottom:48px}
.bloc-titre p{color:var(--gris);max-width:34em}
.deux{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start}
.deux.centre{align-items:center}
.prose{max-width:40em}
.prose h2{margin-bottom:24px}
.prose h3{margin:32px 0 10px}
.prose ul{padding-left:1.1em;margin:0 0 1em}
.prose li{margin-bottom:.45em}
.prose li::marker{color:var(--cuivre)}

/* Fiche technique des prestations */
.fiche{border-top:1px solid var(--anthracite);margin:0;padding:0;list-style:none}
.fiche li{border-bottom:1px solid var(--anthracite)}
.fiche a{display:grid;grid-template-columns:260px minmax(0,1fr) 190px;gap:32px;align-items:center;padding:26px 8px;text-decoration:none;transition:background .15s}
.fiche a:hover{background:var(--panneau);color:inherit}
.fiche a:hover .fiche-nom{color:var(--cuivre-clair)}
.fiche-nom{font:600 1.9rem/1 var(--titre)}
.fiche-desc{color:var(--gris)}
.fiche-prix{font:600 1.3rem var(--titre);color:var(--cuivre-clair);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}

/* Étapes (vraie séquence) */
.etapes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;counter-reset:etape;margin:0;padding:0;list-style:none;border-top:1px solid var(--anthracite)}
.etapes li{padding:32px 32px 8px 0;counter-increment:etape}
.etapes li+li{padding-left:32px;border-left:1px solid var(--anthracite)}
.etapes li::before{content:counter(etape);display:block;font:700 3.4rem/1 var(--titre);color:var(--cuivre);margin-bottom:18px}
.etapes h3{margin-bottom:10px}
.etapes p{color:var(--gris)}

/* Points forts */
.atouts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}
.atouts h3{margin-bottom:12px;padding-top:18px;border-top:2px solid var(--cuivre);display:inline-block;padding-right:24px}
.atouts p{color:var(--gris)}

/* Tableaux de prix */
.tarif{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.tarif caption{text-align:left;font:600 1.6rem var(--titre);padding-bottom:14px}
.tarif th,.tarif td{padding:18px 0;border-bottom:1px solid var(--anthracite);vertical-align:top;text-align:left}
.tarif th{font-weight:500;padding-right:24px}
.tarif th small{display:block;color:var(--gris);font-weight:400;font-size:.92rem;margin-top:2px}
.tarif td{text-align:right;white-space:nowrap;font:600 1.2rem var(--titre);color:var(--cuivre-clair)}
.tarif tr:first-child th,.tarif tr:first-child td{border-top:1px solid var(--anthracite)}
.mention-ttc{font-size:.92rem;color:var(--gris);margin-top:16px}
.packs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.pack{border:1px solid var(--anthracite);padding:28px;background:var(--panneau);display:flex;flex-direction:column}
.pack h3{margin-bottom:16px}
.pack ul{margin:0 0 24px;padding-left:1.1em;color:#DCD8D1}
.pack li::marker{color:var(--cuivre)}
.pack .montant{margin-top:auto;font:600 1.5rem var(--titre);color:var(--cuivre-clair)}
.pack .montant small{font:400 .9rem var(--texte);color:var(--gris);display:block}
.ancres{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}
.ancres a{padding:8px 14px;border:1px solid var(--anthracite);text-decoration:none;font-size:.95rem}
.ancres a:hover{border-color:var(--cuivre)}

/* Images */
.cadre{position:relative;border:1px solid var(--anthracite);background:var(--panneau)}
.cadre img{width:100%}
.cadre.compact{max-width:440px;justify-self:center}
.cadre figcaption{padding:12px 16px;font-size:.9rem;color:var(--gris);border-top:1px solid var(--anthracite)}
.galerie{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:40px}
.galerie img{aspect-ratio:3/2;object-fit:cover;width:100%;border:1px solid var(--anthracite)}

/* Zone */
.communes{columns:2;column-gap:32px;margin:0;padding:0;list-style:none}
.communes li{padding:7px 0;border-bottom:1px solid var(--anthracite);break-inside:avoid}
.zone-titre{font:600 1.35rem var(--titre);color:var(--cuivre-clair);margin:0 0 12px}

/* FAQ */
.faq{border-top:1px solid var(--anthracite);max-width:52em}
.faq details{border-bottom:1px solid var(--anthracite)}
.faq summary{list-style:none;cursor:pointer;padding:22px 44px 22px 0;position:relative;font:600 1.4rem/1.2 var(--titre)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:8px;top:50%;width:14px;height:14px;border-right:2px solid var(--cuivre);border-bottom:2px solid var(--cuivre);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq summary:hover{color:var(--cuivre-clair)}
.faq .reponse{padding:0 0 24px;color:#DCD8D1;max-width:44em}

/* Appel à l'action */
.appel{padding:80px 0;background:var(--panneau);border-top:1px solid var(--anthracite);position:relative;overflow:hidden}
.appel::before{content:"";position:absolute;left:93%;top:-30%;width:3px;height:170%;background:var(--cuivre);rotate:27deg;opacity:.8}
.appel-in{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:48px;align-items:center;position:relative}
.appel-in .lead{margin-top:16px}
.appel .tel-grand{display:block;font:700 clamp(2.2rem,4vw,3.2rem)/1 var(--titre);text-decoration:none;margin-bottom:8px}

/* Configuration / formulaire */
.olsx{border:1px solid var(--anthracite);background:#0d0d0d}
.olsx iframe{display:block;width:100%;height:1150px;border:0}
.formulaire{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.champ{display:flex;flex-direction:column;gap:6px}
.champ.large{grid-column:1/-1}
.champ label{font-weight:500}
.champ label small{color:var(--gris);font-weight:400}
.champ input,.champ select,.champ textarea{background:#0e0e0e;color:var(--blanc);border:1px solid #47443f;border-radius:2px;padding:12px 14px;font:inherit;min-height:48px}
.champ textarea{min-height:120px;resize:vertical}
.champ input:focus,.champ select:focus,.champ textarea:focus{border-color:var(--cuivre-clair);outline:none;box-shadow:0 0 0 1px var(--cuivre-clair)}
.resultat{margin-top:28px;padding:24px;border:1px solid var(--cuivre);background:var(--panneau)}
.resultat pre{white-space:pre-wrap;font:inherit;color:#DCD8D1;margin:12px 0 20px;max-height:280px;overflow:auto}

/* Pages légales */
.legal-wrap{display:grid;gap:0;max-width:52em}
.legal-card{padding:32px 0;border-bottom:1px solid var(--anthracite)}
.legal-card h2{font-size:1.7rem;margin-bottom:16px}
.legal-card p,.legal-card li{color:#DCD8D1}
.legal-card a{color:var(--cuivre-clair)}
.legal-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:16px}

/* Pied de page */
.pied{border-top:1px solid var(--anthracite);padding:64px 0 28px;font-size:.98rem}
.pied-grille{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px}
.pied img{width:170px;margin-bottom:18px}
.pied h2{font-size:1.3rem;margin-bottom:14px;color:var(--cuivre-clair)}
.pied ul{list-style:none;margin:0;padding:0}
.pied li{margin-bottom:8px}
.pied a{text-decoration:none;color:#D9D5CE}
.pied a:hover{color:var(--cuivre-clair)}
.pied .slogan{font:600 1.3rem var(--titre);margin-bottom:10px}
.pied-bas{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;margin-top:48px;padding-top:20px;border-top:1px solid var(--anthracite);color:var(--gris);font-size:.88rem}
.pied-bas nav{display:flex;flex-wrap:wrap;gap:6px 18px}
.pied-bas a{color:var(--gris)}

/* Barre d'appel mobile */
.barre-mobile{display:none}

/* Responsive */
@media (max-width:1080px){
  .nav>a,.nav .sous-btn{padding:10px 8px}
  .entete-actions .tel{display:none}
  .pied-grille{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  body{font-size:1.02rem}
  .entete-in{min-height:66px;gap:12px}
  .marque img{width:124px}
  .menu-btn{display:inline-flex;margin-left:auto;align-items:center;gap:8px;min-height:44px;padding:8px 14px;background:none;border:1px solid #47443f;color:var(--blanc);font:500 1rem var(--texte);border-radius:2px}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--noir);border-bottom:1px solid var(--anthracite);flex-direction:column;align-items:stretch;padding:8px 24px 24px;max-height:calc(100vh - 66px);overflow:auto}
  .nav.ouvert{display:flex}
  .nav>a,.nav .sous-btn{padding:14px 0;border-bottom:1px solid var(--anthracite);font-size:1.1rem;justify-content:space-between;width:100%}
  .nav [aria-current="page"]{box-shadow:none}
  .sous-liste{position:static;border:0;background:none;padding:0 0 8px 12px;min-width:0}
  .entete-actions .btn{display:none}
  .heros-in{grid-template-columns:minmax(0,1fr);min-height:0}
  h1{font-size:clamp(2.3rem,10.5vw,3.6rem)}
  .heros-visuel{order:-1;margin:0 -24px;height:clamp(220px,52vw,380px)}
  .heros-visuel picture{clip-path:polygon(0 0,100% 0,100% 82%,0 100%)}
  .heros-visuel::before{left:auto;right:18%;top:-10%;height:125%;rotate:27deg}
  .heros-texte{padding:28px 0 56px}
  .bloc{padding:64px 0}
  .bloc-titre,.deux,.appel-in{grid-template-columns:1fr;gap:32px}
  .fiche a{grid-template-columns:1fr auto;gap:6px 16px;padding:22px 4px}
  .fiche-desc{grid-column:1/-1;grid-row:2}
  .etapes,.atouts,.packs,.galerie{grid-template-columns:1fr}
  .etapes li,.etapes li+li{padding:28px 0 8px;border-left:0}
  .etapes li+li{border-top:1px solid var(--anthracite)}
  .formulaire{grid-template-columns:1fr}
  .legal-meta{grid-template-columns:1fr}
  .olsx iframe{height:1300px}
  .appel::before{left:96%}
  .barre-mobile{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--noir);border-top:1px solid var(--anthracite);padding:8px 12px calc(8px + env(safe-area-inset-bottom))}
  .barre-mobile a{min-height:48px;display:flex;align-items:center;justify-content:center;font:600 1.1rem var(--titre);letter-spacing:.04em;text-decoration:none}
  .barre-mobile a:first-child{background:var(--cuivre);color:var(--noir)}
  body{padding-bottom:72px}
}
@media (max-width:560px){
  .page{width:calc(100% - 40px)}
  .heros-visuel{margin:0 -20px}
  .communes{columns:1}
  .pied-grille{grid-template-columns:1fr}
  .tarif th,.tarif td{padding:14px 0}
  .tarif td{font-size:1.08rem}
}
@media print{.entete,.barre-mobile,.appel,.pied{display:none}body{background:#fff;color:#000}}
