/* 3D Eure-et-Loir — direction « Facettes ».
   L'impression 3D vue par le fichier : un objet décrit par des triangles, du fil de fer au volume plein.
   Mise en page : une grille de panneaux nets à un angle coupé (la facette), des traits fins, un seul bleu. */
@font-face{font-family:"Syne";src:url("/assets/fonts/syne-latin-wght-normal.woff2") format("woff2");font-weight:400 800;font-style:normal;font-display:swap}
@font-face{font-family:"Plus Jakarta Sans";src:url("/assets/fonts/plus-jakarta-sans-latin-wght-normal.woff2") format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
:root{
  --papier:#f3f5f9;      /* fond de page */
  --blanc:#fff;          /* panneaux */
  --encre:#0e1524;       /* titres, blocs sombres */
  --texte:#2a3344;       /* texte courant */
  --gris:#566074;        /* texte secondaire */
  --trait:#d5dbe7;       /* filets, arêtes */
  --bleu:#1f4fd8;        /* l'accent, le seul */
  --bleu-fonce:#143596;
  --bleu-pale:#e9eefc;
  --bleu-clair:#b9c9f6;
  --titre:"Syne","Avenir Next","Segoe UI",system-ui,sans-serif;   /* titrage */
  --courant:"Plus Jakarta Sans","Segoe UI",system-ui,-apple-system,Arial,sans-serif; /* texte, libellés, chiffres */
  --c:22px;              /* taille de l'angle coupé */
  --g:clamp(12px,1.6vw,20px);
  --m-accent:#1f4fd8;--m-fil-1:#93abf0;
  --trame:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 420 300%22 preserveAspectRatio=%22xMidYMid slice%22%3E%3Cpath d=%22M-34 -32L33 -34M-34 -32L10 18M-34 -32L68 22M33 -34L91 -29M33 -34L68 22M33 -34L112 19M91 -29L140 -26M91 -29L112 19M91 -29L176 32M140 -26L200 -27M140 -26L176 32M140 -26L233 28M200 -27L261 -33M200 -27L233 28M200 -27L303 24M261 -33L328 -20M261 -33L303 24M261 -33L361 18M328 -20L382 -31M328 -20L361 18M328 -20L410 21M382 -31L453 -18M382 -31L410 21M382 -31L484 25M453 -18L512 -28M453 -18L484 25M453 -18L536 28M10 18L68 22M10 18L-31 75M68 22L112 19M68 22L-31 75M68 22L36 82M112 19L176 32M112 19L36 82M112 19L84 80M176 32L233 28M176 32L84 80M176 32L151 85M233 28L303 24M233 28L151 85M233 28L215 74M303 24L361 18M303 24L215 74M303 24L281 71M361 18L410 21M361 18L281 71M361 18L328 83M410 21L484 25M410 21L328 83M410 21L382 78M484 25L536 28M484 25L382 78M484 25L440 81M536 28L440 81M-31 75L36 82M-31 75L8 127M-31 75L64 132M36 82L84 80M36 82L64 132M36 82L122 130M84 80L151 85M84 80L122 130M84 80L187 139M151 85L215 74M151 85L187 139M151 85L239 133M215 74L281 71M215 74L239 133M215 74L290 134M281 71L328 83M281 71L290 134M281 71L363 139M328 83L382 78M328 83L363 139M328 83L427 127M382 78L440 81M382 78L427 127M382 78L477 134M440 81L516 80M440 81L477 134M440 81L529 130M8 127L64 132M8 127L-37 176M64 132L122 130M64 132L-37 176M64 132L20 188M122 130L187 139M122 130L20 188M122 130L82 178M187 139L239 133M187 139L82 178M187 139L148 189M239 133L290 134M239 133L148 189M239 133L201 182M290 134L363 139M290 134L201 182M290 134L271 190M363 139L427 127M363 139L271 190M363 139L337 189M427 127L477 134M427 127L337 189M427 127L385 181M477 134L529 130M477 134L385 181M477 134L447 190M529 130L447 190M-37 176L20 188M-37 176L-7 230M-37 176L54 235M20 188L82 178M20 188L54 235M20 188L122 231M82 178L148 189M82 178L122 231M82 178L169 233M148 189L201 182M148 189L169 233M148 189L237 236M201 182L271 190M201 182L237 236M201 182L310 238M271 190L337 189M271 190L310 238M271 190L360 237M337 189L385 181M337 189L360 237M337 189L424 227M385 181L447 190M385 181L424 227M385 181L489 240M447 190L520 176M447 190L489 240M447 190L548 240M-7 230L54 235M-7 230L-32 285M54 235L122 231M54 235L-32 285M54 235L21 290M122 231L169 233M122 231L21 290M122 231L80 279M169 233L237 236M169 233L80 279M169 233L144 281M237 236L310 238M237 236L144 281M237 236L206 279M310 238L360 237M310 238L206 279M310 238L259 281M360 237L424 227M360 237L259 281M360 237L321 285M424 227L489 240M424 227L321 285M424 227L380 294M489 240L548 240M489 240L380 294M489 240L453 281M548 240L453 281M-32 285L21 290M-32 285L-3 333M-32 285L68 348M21 290L80 279M21 290L68 348M21 290L119 339M80 279L144 281M80 279L119 339M80 279L171 332M144 281L206 279M144 281L171 332M144 281L237 335M206 279L259 281M206 279L237 335M206 279L307 333M259 281L321 285M259 281L307 333M259 281L350 347M321 285L380 294M321 285L350 347M321 285L421 333M380 294L453 281M380 294L421 333M380 294L481 331M453 281L505 284M453 281L481 331M453 281L541 348%22 fill=%22none%22 stroke=%22%23e3e8f1%22 stroke-width=%221%22/%3E%3C/svg%3E");
  --trame-claire:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 520 360%22 preserveAspectRatio=%22xMidYMid slice%22%3E%3Cpath d=%22M-37 -30L45 -32M-37 -30L-8 23M-37 -30L73 23M45 -32L108 -30M45 -32L73 23M45 -32L137 27M108 -30L173 -31M108 -30L137 27M108 -30L206 31M173 -31L255 -26M173 -31L206 31M173 -31L287 37M255 -26L315 -35M255 -26L287 37M255 -26L360 34M315 -35L387 -26M315 -35L360 34M315 -35L432 34M387 -26L472 -40M387 -26L432 34M387 -26L503 27M472 -40L551 -23M472 -40L503 27M472 -40L587 40M551 -23L615 -29M551 -23L587 40M551 -23L655 35M-8 23L73 23M-8 23L-40 89M73 23L137 27M73 23L-40 89M73 23L31 86M137 27L206 31M137 27L31 86M137 27L114 92M206 31L287 37M206 31L114 92M206 31L188 92M287 37L360 34M287 37L188 92M287 37L262 100M360 34L432 34M360 34L262 100M360 34L313 89M432 34L503 27M432 34L313 89M432 34L405 93M503 27L587 40M503 27L405 93M503 27L479 92M587 40L655 35M587 40L479 92M587 40L531 96M655 35L531 96M-40 89L31 86M-40 89L-9 154M-40 89L82 161M31 86L114 92M31 86L82 161M31 86L136 152M114 92L188 92M114 92L136 152M114 92L207 149M188 92L262 100M188 92L207 149M188 92L295 151M262 100L313 89M262 100L295 151M262 100L361 156M313 89L405 93M313 89L361 156M313 89L425 161M405 93L479 92M405 93L425 161M405 93L496 159M479 92L531 96M479 92L496 159M479 92L568 155M531 96L618 90M531 96L568 155M531 96L642 152M-9 154L82 161M-9 154L-26 225M82 161L136 152M82 161L-26 225M82 161L32 226M136 152L207 149M136 152L32 226M136 152L102 217M207 149L295 151M207 149L102 217M207 149L188 222M295 151L361 156M295 151L188 222M295 151L243 228M361 156L425 161M361 156L243 228M361 156L318 215M425 161L496 159M425 161L318 215M425 161L402 216M496 159L568 155M496 159L402 216M496 159L464 212M568 155L642 152M568 155L464 212M568 155L531 221M642 152L531 221M-26 225L32 226M-26 225L-3 281M-26 225L82 282M32 226L102 217M32 226L82 282M32 226L146 288M102 217L188 222M102 217L146 288M102 217L209 276M188 222L243 228M188 222L209 276M188 222L297 288M243 228L318 215M243 228L297 288M243 228L354 276M318 215L402 216M318 215L354 276M318 215L437 290M402 216L464 212M402 216L437 290M402 216L497 290M464 212L531 221M464 212L497 290M464 212L584 284M531 221L606 221M531 221L584 284M531 221L646 275M-3 281L82 282M-3 281L-46 353M82 282L146 288M82 282L-46 353M82 282L30 348M146 288L209 276M146 288L30 348M146 288L103 350M209 276L297 288M209 276L103 350M209 276L182 341M297 288L354 276M297 288L182 341M297 288L245 348M354 276L437 290M354 276L245 348M354 276L315 340M437 290L497 290M437 290L315 340M437 290L397 351M497 290L584 284M497 290L397 351M497 290L471 341M584 284L646 275M584 284L471 341M584 284L549 339M646 275L549 339M-46 353L30 348M-46 353L-1 399M-46 353L65 405M30 348L103 350M30 348L65 405M30 348L146 401M103 350L182 341M103 350L146 401M103 350L213 414M182 341L245 348M182 341L213 414M182 341L299 410M245 348L315 340M245 348L299 410M245 348L364 409M315 340L397 351M315 340L364 409M315 340L424 399M397 351L471 341M397 351L424 399M397 351L493 415M471 341L549 339M471 341L493 415M471 341L580 415M549 339L601 340M549 339L580 415M549 339L637 410%22 fill=%22none%22 stroke=%22%23ffffff%22 stroke-width=%221%22 stroke-opacity=%22.09%22/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--papier);color:var(--texte);font:400 1.02rem/1.65 var(--courant);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
img{height:auto}
h1,h2,h3{font-family:var(--titre);color:var(--encre);margin:0;line-height:1.08;letter-spacing:-.02em;text-wrap:balance}
h1{font-size:clamp(2.2rem,4.6vw,3.7rem);font-weight:700}
h2{font-size:clamp(1.7rem,3.3vw,2.75rem);font-weight:700}
h3{font-size:1.16rem;font-weight:700;letter-spacing:-.01em;line-height:1.25}
h1 em,h2 em{font-style:normal;color:var(--bleu)}
p{margin:0 0 1em}p:last-child{margin-bottom:0}
ul,ol{margin:0;padding:0;list-style:none}
a{color:var(--bleu-fonce);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--bleu)}
:focus-visible{outline:3px solid var(--bleu);outline-offset:3px}
.cadre{width:min(100% - 2*clamp(18px,4vw,48px),1240px);margin-inline:auto}
.saut{position:absolute;left:12px;top:-60px;background:var(--encre);color:#fff;padding:10px 16px;z-index:100}
.saut:focus{top:12px;color:#fff}
.sur{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--bleu-fonce);margin:0 0 14px;display:flex;align-items:center;gap:10px}
.sur::before{content:"";width:11px;height:11px;flex:none;background:var(--bleu);clip-path:polygon(0 100%,50% 0,100% 100%)}
.chapo{font-size:clamp(1.05rem,1.35vw,1.2rem);line-height:1.6;color:var(--texte);max-width:62ch}
.petit{font-size:.92rem;color:var(--gris)}
.legende{font-size:.9rem;color:var(--gris);margin-top:12px}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:12px 24px;background:var(--bleu);color:#fff;font:700 1rem/1.2 var(--courant);text-decoration:none;border:0;cursor:pointer;clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%);transition:background-color .2s}
.btn:hover{background:var(--bleu-fonce);color:#fff}
.btn svg{width:18px;height:18px;flex:none}
.btn--encre{background:var(--encre)}
.btn--encre:hover{background:#243353}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}

/* En-tête */
.tete{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--trait)}
.tete__in{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:68px}
.logo{display:inline-flex;align-items:center;gap:11px;text-decoration:none;color:var(--encre);font:800 1.16rem/1 var(--titre);letter-spacing:-.02em;white-space:nowrap}
.logo svg{width:34px;height:34px;flex:none}
.logo b{font-weight:800;color:var(--bleu)}
.nav__large{display:flex;align-items:center;gap:clamp(14px,2vw,28px)}
.nav__large a:not(.btn){color:var(--encre);text-decoration:none;font-weight:600;font-size:.95rem;padding:12px 0;display:inline-block}
.nav__large a:not(.btn):hover{color:var(--bleu)}
.nav__large .tel{font-variant-numeric:tabular-nums;font-weight:700}
.nav__large .btn{min-height:44px;padding:10px 18px;font-size:.95rem}
.nav__petit{display:none;position:relative}
.nav__petit summary{list-style:none;cursor:pointer;min-height:44px;padding:0 16px;display:flex;align-items:center;gap:10px;font-weight:700;color:var(--encre);border:1.5px solid var(--encre)}
.nav__petit summary::-webkit-details-marker{display:none}
.nav__petit summary::before{content:"";width:16px;height:10px;border-block:2px solid currentColor}
.nav__petit ul{position:absolute;right:0;top:calc(100% + 10px);width:min(86vw,320px);background:var(--blanc);border:1px solid var(--trait);box-shadow:0 18px 40px rgba(14,21,36,.16);padding:8px}
.nav__petit li a{display:block;padding:13px 14px;color:var(--encre);text-decoration:none;font-weight:600;border-bottom:1px solid var(--trait)}
.nav__petit li:last-child a{border:0;background:var(--bleu);color:#fff;margin-top:8px;text-align:center}
@media (max-width:980px){.nav__large{display:none}.nav__petit{display:block}}

/* Maillages dessinés */
.mesh{width:100%;height:auto;overflow:visible}
.mesh path{stroke-linecap:round}

/* Ouverture */
.ouv,.tetev{padding:clamp(28px,5vw,64px) 0 clamp(36px,5vw,64px)}
.ouv{background:linear-gradient(var(--blanc),var(--papier))}
.tetev{padding-top:clamp(18px,3vw,36px)}
.ouv__grille{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:clamp(24px,4vw,60px);align-items:center}
.ouv__texte h1{margin-bottom:22px}
.tetev h1{font-size:clamp(2rem,4.2vw,3.4rem)}
.ouv__piece{margin:0;position:relative;background:var(--blanc) var(--trame) center/420px;border:1px solid var(--trait);padding:clamp(14px,2.4vw,30px) clamp(14px,2.4vw,30px) 52px}
.ouv__piece::before,.ouv__piece::after{content:"";position:absolute;width:9px;height:9px;background:var(--bleu)}
.ouv__piece::before{left:-5px;top:-5px}.ouv__piece::after{right:-5px;bottom:-5px}
.ouv__piece figcaption{position:absolute;left:0;right:0;bottom:0;padding:11px 16px;border-top:1px solid var(--trait);background:var(--blanc);font-size:.8rem;font-weight:600;letter-spacing:.04em;color:var(--gris);display:flex;justify-content:space-between;gap:12px}
.ouv__piece figcaption b{color:var(--bleu-fonce);font-weight:700}
.tetev .ouv__piece .mesh{max-height:340px}
.ouv__faits{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--encre);margin-top:clamp(6px,1.5vw,18px)}
.ouv__faits li{padding:18px 20px 4px 0;border-right:1px solid var(--trait);margin-right:20px}
.ouv__faits li:last-child{border:0;margin:0}
.ouv__faits b{display:block;font:700 clamp(1.15rem,1.9vw,1.5rem)/1.15 var(--titre);color:var(--encre);letter-spacing:-.02em}
.ouv__faits span{font-size:.92rem;color:var(--gris)}
.fil{padding-top:18px;font-size:.88rem}
.fil ol{display:flex;flex-wrap:wrap;gap:8px;color:var(--gris)}
.fil li+li::before{content:"/";margin-right:8px;color:var(--trait)}
.fil a{display:inline-block;padding:6px 0}

/* Sections */
.zone{padding:clamp(52px,8vw,108px) 0}
.zone.blanche{background:var(--blanc)}
.zone.encre{background:var(--encre) var(--trame-claire) center/520px;color:#d6deee}
.zone.encre h2,.zone.encre h3{color:#fff}
.zone.encre h2 em{color:#93abf0}
.zone.encre .sur{color:#b9c9f6}.zone.encre .sur::before{background:#93abf0}
.zone.encre .chapo{color:#d6deee}
.zone__tete{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:clamp(16px,4vw,56px);align-items:end;margin-bottom:clamp(28px,4vw,48px)}
.zone__tete h2{max-width:18ch}

/* Panneaux : la facette */
.grille{display:grid;gap:var(--g);grid-template-columns:minmax(0,1fr)}
.grille.deux{grid-template-columns:repeat(2,minmax(0,1fr))}
.grille.trois{grid-template-columns:repeat(3,minmax(0,1fr))}
.pan{background:var(--blanc);padding:clamp(20px,2.4vw,30px);position:relative;min-width:0}
.blanche .pan{background:var(--papier)}
.pan h3{margin-bottom:10px}
.pan p{font-size:.98rem}
.c-hg{clip-path:polygon(var(--c) 0,100% 0,100% 100%,0 100%,0 var(--c))}
.c-hd{clip-path:polygon(0 0,calc(100% - var(--c)) 0,100% var(--c),100% 100%,0 100%)}
.c-bd{clip-path:polygon(0 0,100% 0,100% calc(100% - var(--c)),calc(100% - var(--c)) 100%,0 100%)}
.pan--accent,.blanche .pan--accent{background:var(--bleu);color:#fff}
.pan--accent h3,.pan--accent .gros,.pan--encre h2,.pan--encre h3{color:#fff}
.pan--teinte,.blanche .pan--teinte{background:var(--bleu-pale)}
.pan--encre,.blanche .pan--encre{background:var(--encre);color:#d6deee}
.pan--encre .sur{color:#b9c9f6}.pan--encre .sur::before{background:#93abf0}
.pan--encre a{color:#fff}
.pan--photo,.blanche .pan--photo{padding:0;margin:0;overflow:hidden;background:var(--trait);display:flex;flex-direction:column}
.pan--photo img{width:100%;height:100%;min-height:0;flex:1;object-fit:cover}
.pan--photo figcaption{position:absolute;left:0;bottom:0;max-width:92%;background:var(--blanc);color:var(--encre);font-size:.82rem;font-weight:600;line-height:1.35;padding:8px 14px 8px 12px;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%)}
.maille{background:var(--blanc) var(--trame) center/420px;border:1px solid var(--trait)}
.blanche .maille{background:var(--blanc) var(--trame) center/420px}
.gros{display:block;font:700 clamp(1.45rem,2.6vw,2.2rem)/1.05 var(--titre);letter-spacing:-.03em;color:var(--encre);margin-bottom:14px}
.gros small{display:block;font:600 .86rem/1.4 var(--courant);letter-spacing:.02em;color:var(--gris);margin-top:8px}
.pan--accent .gros small{color:#dbe4fb}
.puce{display:inline-block;width:10px;height:10px;margin-right:10px;background:var(--bleu);clip-path:polygon(0 100%,50% 0,100% 100%)}
.pan--accent .puce{background:#fff}

/* Profils */
.profils{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--g)}
.profil{background:var(--blanc);padding:26px 24px 28px;border-top:3px solid var(--bleu);clip-path:polygon(0 0,100% 0,100% calc(100% - var(--c)),calc(100% - var(--c)) 100%,0 100%)}
.profil h3{font-size:1.3rem;margin-bottom:12px}
.profil p{font-size:.97rem}
.profil ul,.devis__cote ul{margin-top:16px;border-top:1px solid var(--trait)}
.profil li{padding:10px 0 10px 20px;border-bottom:1px solid var(--trait);font-size:.93rem;font-weight:600;color:var(--encre);position:relative}
.profil li::before,.prose ul li::before,.finitions li::before{content:"";position:absolute;left:0;top:1.05em;width:9px;height:9px;background:var(--bleu);clip-path:polygon(0 100%,50% 0,100% 100%)}
.profil li::before{top:17px}

/* Catalogue des prestations */
.grille.catalogue{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:dense;grid-auto-rows:minmax(230px,auto)}
.catalogue .large{grid-column:span 2}
.catalogue .haut{grid-row:span 2}
.catalogue .pan--photo img{position:absolute;inset:0}
.presta h3{display:flex;align-items:baseline}
.presta h3 .puce{transform:translateY(-1px)}

/* Étapes (bloc sombre) */
.trajet{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2.4vw,34px);counter-reset:e}
.trajet li{counter-increment:e;border-top:1px solid rgba(255,255,255,.28);padding-top:20px;position:relative}
.trajet li::before{content:"0" counter(e);display:block;font:700 .82rem/1 var(--courant);letter-spacing:.14em;color:#93abf0;margin-bottom:14px}
.trajet li::after{content:"";position:absolute;left:0;top:-5px;width:9px;height:9px;background:#93abf0}
.trajet h3{margin-bottom:8px;font-size:1.22rem}
.trajet p{font-size:.96rem}
.lieu{display:inline-block;margin-top:14px;font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#b9c9f6}
.note-encre{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,3vw,44px);margin-top:clamp(28px,4vw,52px);padding-top:26px;border-top:1px solid rgba(255,255,255,.28)}
.note-encre strong{color:#fff}

/* Procédés, matières, résolution */
.matieres{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(22px,4vw,56px);align-items:start}
.pile{display:grid;gap:var(--g);align-content:start;min-width:0}
.resolution{margin:0;background:var(--blanc) var(--trame) center/420px;border:1px solid var(--trait);padding:clamp(14px,2vw,24px);display:grid;gap:6px;position:sticky;top:96px}
.resolution div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;border-bottom:1px solid var(--trait);padding:4px 0}
.resolution div:last-of-type{border:0}
.resolution .mesh{max-height:200px}
.resolution span{font:700 clamp(1.3rem,2vw,1.7rem)/1 var(--titre);color:var(--encre);text-align:right;letter-spacing:-.02em;min-width:5.4em}
.resolution span small{display:block;font:600 .78rem/1.4 var(--courant);letter-spacing:.06em;text-transform:uppercase;color:var(--gris);margin-top:6px}
.resolution figcaption{font-size:.9rem;color:var(--gris);padding-top:10px;border-top:1px solid var(--trait)}
.tableau{width:100%;border-collapse:collapse;background:var(--blanc);font-size:.95rem}
.blanche .tableau{background:var(--papier)}
.tableau caption{caption-side:bottom;text-align:left;font-size:.88rem;color:var(--gris);padding-top:12px}
.tableau th,.tableau td{text-align:left;vertical-align:top;padding:13px 16px;border-bottom:1px solid var(--trait)}
.tableau thead th{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--encre);font-weight:700}
.tableau tbody th{font:700 1rem/1.3 var(--titre);color:var(--encre);white-space:nowrap}
.grille.bande{grid-template-columns:repeat(var(--n,3),minmax(0,1fr))}
.bande .pan--photo{aspect-ratio:4/3}
.panorama{aspect-ratio:16/6.4}

/* Grand format */
.grille.cote{grid-template-columns:minmax(0,.7fr) minmax(0,1.2fr) minmax(0,.9fr);align-items:stretch}
.cote__dessin{display:grid;place-items:center;padding:clamp(18px,2.4vw,30px)}
.cote__dessin svg{width:min(100%,250px);height:auto}

/* Réalisations */
.real{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(24px,4.5vw,64px);align-items:center}
.vues{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--g);align-items:end}
.vue{overflow:hidden;background:var(--trait);aspect-ratio:3/4;clip-path:polygon(0 0,calc(100% - 26px) 0,100% 26px,100% 100%,0 100%)}
.vues .vue:nth-child(2){aspect-ratio:3/4.6}
.vue img{width:100%;height:100%;object-fit:cover}
.finitions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin-top:22px;border-top:1px solid var(--trait)}
.finitions li{padding:14px 0 14px 20px;border-bottom:1px solid var(--trait);font-size:.94rem;position:relative}
.finitions li::before{top:21px}
.finitions b{display:block;font:700 1.02rem/1.3 var(--titre);color:var(--encre)}

/* Avis */
.avis-liste{columns:3 300px;column-gap:var(--g)}
.avis{break-inside:avoid;margin:0 0 var(--g);background:var(--blanc);padding:26px 26px 22px;border-left:3px solid var(--bleu);clip-path:polygon(0 0,100% 0,100% calc(100% - var(--c)),calc(100% - var(--c)) 100%,0 100%)}
.avis blockquote{margin:0;font-size:1.02rem;color:var(--encre)}
.avis figcaption{margin-top:16px;padding-top:14px;border-top:1px solid var(--trait);display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;font-size:.9rem;color:var(--gris)}
.avis figcaption b{font:700 1rem/1.3 var(--titre);color:var(--encre)}

/* Villes */
.villes,.voisines{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--g)}
.villes a,.voisines a{display:block;height:100%;padding:22px 22px 26px;background:var(--papier);text-decoration:none;color:var(--texte);border-top:3px solid var(--encre);clip-path:polygon(0 0,100% 0,100% calc(100% - var(--c)),calc(100% - var(--c)) 100%,0 100%);transition:background-color .2s,border-color .2s}
.voisines a{background:var(--blanc)}
.villes a:hover,.voisines a:hover{background:var(--bleu-pale);border-color:var(--bleu)}
.villes b,.voisines b{display:block;font:700 1.35rem/1.15 var(--titre);color:var(--encre);letter-spacing:-.02em;margin-bottom:8px}
.voisines b{font-size:1.08rem}
.villes b small{display:block;font:700 .74rem/1.4 var(--courant);letter-spacing:.12em;text-transform:uppercase;color:var(--bleu-fonce);margin-bottom:4px}
.villes span,.voisines span{font-size:.93rem;color:var(--gris)}

/* Qui fabrique */
.grille.qui{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
.fiche li{display:grid;grid-template-columns:7.2em minmax(0,1fr);gap:12px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.2);font-size:.96rem}
.fiche li:last-child{border:0}
.fiche span{font-size:.76rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#b9c9f6;padding-top:3px}

/* Questions */
.qr{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(22px,5vw,72px);align-items:start}
.qr__tete{position:sticky;top:96px}
.qr__tete h2{margin-bottom:16px}
.faq{border-top:1px solid var(--encre)}
.faq details{border-bottom:1px solid var(--trait)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 0;min-height:56px;font:700 1.08rem/1.35 var(--titre);color:var(--encre)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:14px;height:14px;background:var(--bleu);clip-path:polygon(0 0,100% 0,50% 100%)}
.faq details[open] summary::after{clip-path:polygon(0 100%,50% 0,100% 100%)}
.faq summary:hover{color:var(--bleu-fonce)}
.faq details p{padding:0 34px 20px 0;max-width:70ch}

/* Devis */
.devis{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);background:var(--blanc);border:1px solid var(--trait)}
.devis__cote{background:var(--bleu) var(--trame-claire) center/520px;color:#fff;padding:clamp(24px,3.4vw,46px);clip-path:polygon(0 0,100% 0,100% calc(100% - 34px),calc(100% - 34px) 100%,0 100%)}
.devis__cote h2{color:#fff;font-size:clamp(1.6rem,2.6vw,2.2rem);margin-bottom:14px}
.devis__cote .sur{color:#fff}.devis__cote .sur::before{background:#fff}
.devis__tel{display:inline-block;margin-top:12px;font:700 clamp(1.5rem,2.3vw,1.95rem)/1.1 var(--titre);color:#fff;text-decoration:none;font-variant-numeric:tabular-nums;letter-spacing:-.02em;padding:6px 0;white-space:nowrap}
.devis__tel:hover{color:#fff;text-decoration:underline}
.devis__cote ul{border-color:rgba(255,255,255,.35);margin-top:22px}
.devis__cote li{padding:11px 0;border-bottom:1px solid rgba(255,255,255,.35);font-size:.94rem}
.devis__form{padding:clamp(22px,3.4vw,46px)}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}
.tout{grid-column:1/-1}
.champ{min-width:0}
.champ label{display:block;font-weight:700;font-size:.92rem;color:var(--encre);margin-bottom:6px}
.champ small{font-weight:500;color:var(--gris)}
.champ input,.champ select,.champ textarea{width:100%;min-height:48px;padding:11px 13px;font:inherit;font-size:1rem;color:var(--encre);background:var(--papier);border:1px solid #aab4c6;border-radius:0}
.champ textarea{min-height:140px;resize:vertical}
.champ input[type=file]{padding:9px;background:var(--blanc);border-style:dashed}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:3px solid var(--bleu);outline-offset:1px;border-color:var(--bleu);background:var(--blanc)}
.form .btn{justify-self:start;min-height:54px;padding-inline:30px}
.form__note{font-size:.88rem;color:var(--gris);margin:0}
.piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.erreur{background:#fdecec;border-left:4px solid #b3261e;color:#7a1712;padding:14px 16px;margin-bottom:18px;font-weight:600}
.erreur a{color:#7a1712}

/* Pages de villes : blocs de texte */
.duo{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(24px,5vw,68px);align-items:start}
.duo--inv{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr)}
.prose h2{margin-bottom:18px;max-width:20ch}
.prose h3{margin:26px 0 8px;font-size:1.2rem}
.prose ul{margin:16px 0;border-top:1px solid var(--trait)}
.prose ul li{position:relative;padding:12px 0 12px 22px;border-bottom:1px solid var(--trait)}
.etapes{counter-reset:n;margin:20px 0;border-top:1px solid var(--encre)}
.etapes li{counter-increment:n;position:relative;padding:14px 0 14px 54px;border-bottom:1px solid var(--trait);font-size:.97rem}
.etapes li::before{content:"0" counter(n);position:absolute;left:0;top:16px;font:700 .82rem/1.5 var(--courant);letter-spacing:.12em;color:var(--bleu-fonce)}
.etapes b{display:block;font:700 1.06rem/1.3 var(--titre);color:var(--encre)}
.simple{padding:clamp(40px,7vw,96px) 0;max-width:820px}
.simple .prose h1{margin-bottom:26px}
.simple .prose h2{font-size:1.4rem;margin:34px 0 10px;max-width:none}
.grandmot{display:block;font:800 clamp(4rem,14vw,8rem)/.9 var(--titre);letter-spacing:-.05em;color:var(--bleu);margin-bottom:14px}

/* Pied de page */
.pied{background:var(--encre) var(--trame-claire) center/520px;color:#c3cde0;padding:clamp(40px,6vw,72px) 0 26px;font-size:.94rem}
.pied a{color:#fff;text-decoration-color:rgba(255,255,255,.4)}
.pied a:hover{color:#b9c9f6}
.pied .logo{color:#fff}.pied .logo b{color:#93abf0}
.pied__in{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:clamp(22px,4vw,52px)}
.pied h2{font:700 .76rem/1.4 var(--courant);letter-spacing:.12em;text-transform:uppercase;color:#93abf0;margin-bottom:12px}
.pied li a{display:inline-block;padding:7px 0;text-decoration:none}
.pied li a:hover{text-decoration:underline}
.pied__bas{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:38px;padding-top:20px;border-top:1px solid rgba(255,255,255,.2);font-size:.84rem;color:#9aa6bd}
.barre{display:none}

@media (max-width:1080px){
  .profils{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grille.catalogue{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grille.cote{grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr)}
  .grille.cote>:last-child{grid-column:1/-1}
  .pied__in{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  .ouv__grille,.zone__tete,.matieres,.real,.qr,.devis,.duo,.duo--inv,.grille.qui,.note-encre{grid-template-columns:minmax(0,1fr)}
  .zone__tete{align-items:start}
  .ouv__faits{grid-template-columns:repeat(2,1fr)}
  .ouv__faits li{border-right:0;margin-right:0;border-bottom:1px solid var(--trait);padding:14px 12px 14px 0}
  .ouv__piece .mesh{max-height:300px}
  .resolution,.qr__tete{position:static}
  .resolution{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .resolution div{grid-template-columns:1fr;border:0;gap:4px}
  .resolution span{text-align:left;min-width:0;font-size:1.15rem}
  .resolution figcaption{grid-column:1/-1}
  .trajet{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grille.trois{grid-template-columns:minmax(0,1fr)}
  .duo>div:not(.prose):not(.pile){max-width:420px}
  .devis__cote{clip-path:none}
  .panorama{aspect-ratio:16/9}
}
@media (max-width:640px){
  body{padding-bottom:64px}
  .logo{font-size:.98rem;gap:8px}.logo svg{width:28px;height:28px}
  .tete__in{gap:10px;min-height:60px}
  .nav__petit summary{padding:0 12px}
  h1{font-size:clamp(2rem,9.4vw,2.6rem)}
  .tetev h1{font-size:clamp(1.8rem,8.4vw,2.3rem)}
  .profils,.grille.deux,.grille.catalogue,.grille.cote,.trajet,.finitions,.form,.pied__in{grid-template-columns:minmax(0,1fr)}
  .grille.bande{grid-template-columns:minmax(0,1fr)}
  .grille.cote>*{grid-column:auto}
  .catalogue .large{grid-column:auto}.catalogue .haut{grid-row:auto}
  .grille.catalogue{grid-auto-rows:auto}
  .catalogue .pan--photo{aspect-ratio:4/3}.catalogue .pan--photo img{position:static}
  .actions .btn{flex:1 1 100%}
  .vues{gap:8px}
  .tableau thead{position:absolute;left:-9999px}
  .tableau,.tableau tbody,.tableau tr,.tableau th,.tableau td{display:block}
  .tableau tr{padding:12px 14px;border-bottom:1px solid var(--trait)}
  .tableau th,.tableau td{padding:2px 0;border:0}
  .tableau tbody th{white-space:normal;margin-bottom:4px}
  .tableau td::before{content:attr(data-t) " : ";font-weight:700;color:var(--encre)}
  .tableau caption{display:block;padding:12px 14px}
  .fiche li{grid-template-columns:minmax(0,1fr);gap:2px}
  .barre{display:grid;grid-template-columns:1fr 1.25fr;position:fixed;left:0;right:0;bottom:0;z-index:55;background:var(--blanc);border-top:1px solid var(--trait)}
  .barre a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:58px;font-weight:700;text-decoration:none;color:var(--encre)}
  .barre a+a{background:var(--bleu);color:#fff}
  .barre svg{width:18px;height:18px}
  .form .btn{justify-self:stretch}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Kit d'animation commun (motion/motion.css) */
.m [data-m-intro] { visibility: hidden; animation: m-secours 0s 1.2s forwards; }
@keyframes m-secours { to { visibility: visible; } }
.m-pret [data-m-intro] { visibility: visible; animation: none; }
.m-buse { position: absolute; left: 0; right: 0; height: 2px; top: 100%; background: var(--m-accent, #f97316); box-shadow: 0 0 14px 2px var(--m-accent, #f97316); pointer-events: none; z-index: 2; opacity: 0; }
.m-fil { position: fixed; left: 0; top: 0; height: 3px; width: 100%; transform-origin: 0 50%; transform: scaleX(0); background: linear-gradient(90deg, var(--m-fil-1, #2563eb), var(--m-accent, #f97316)); z-index: 60; pointer-events: none; }
[data-m="aimant"] { will-change: transform; }
@media (prefers-reduced-motion: reduce) { .m [data-m-intro] { visibility: visible; animation: none; } .m-fil, .m-buse { display: none; } }
