/* 13 Nettoyage — feuille de styles générée par construire.py (ne pas modifier à la main) */
@font-face{font-family:'Manrope';font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/fonts/manrope-latin.woff2?v=e310b55a7f) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* ===== Styles de la maquette validée (maquettes/v2/pages/pro_photos.html), repris tels quels ===== */
body{margin:0;background:#FFFFFF}
.racine{background:#FFFFFF;color:#1E293B;font-family:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;text-size-adjust:100%}
.racine *,.racine *::before,.racine *::after{box-sizing:border-box}
.racine img{max-width:100%}
.racine a{color:#1B4FBF;text-underline-offset:.2em;text-decoration-thickness:1.5px}
.racine a:hover{color:#0F2D75}
.racine h1,.racine h2,.racine h3{margin:0;font-weight:800;letter-spacing:-.02em;color:#0F2D75}
.racine p,.racine ul,.racine ol{margin:0}
.racine [id]{scroll-margin-top:96px}
.racine :focus-visible{outline:3px solid #1B4FBF;outline-offset:3px}
.racine .sur-nuit :focus-visible{outline-color:#F2B300}
.num{font-variant-numeric:tabular-nums}
.tag{display:inline-flex;align-items:center;flex:0 0 auto;padding:1px 8px;border-radius:999px;background:#FFF4D1;color:#7A5A00;font-size:11.5px;font-weight:700;line-height:1.55;letter-spacing:0;white-space:nowrap;vertical-align:middle;font-variant-numeric:normal}
.racine .lien-nav:hover{color:#1B4FBF}
.bouton{transition:transform .15s ease,box-shadow .15s ease}
.bouton:hover{transform:translateY(-1px);box-shadow:0 12px 24px -12px rgba(15,45,117,.6)}
.tuile{transition:border-color .15s ease,background-color .15s ease}
.tuile input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.racine .tuile:hover{border-color:#1B4FBF !important}
.racine .tuile:has(input:checked){border-color:#1B4FBF !important;background:#EEF2FF !important;box-shadow:inset 0 0 0 1px #1B4FBF}
.tuile:has(input:focus-visible){outline:3px solid #1B4FBF;outline-offset:2px}
.tuile .coche{display:none}
.tuile:has(input:checked) .coche{display:grid}
.racine .champ:hover{border-color:#0F2D75 !important}
.racine .champ:focus{outline:3px solid #1B4FBF;outline-offset:1px;border-color:#1B4FBF !important}
.carte{transition:border-color .2s ease,box-shadow .2s ease}
.carte img{transition:transform .25s ease}
.racine a.carte:hover{border-color:#C4D2FF !important;box-shadow:0 2px 4px rgba(15,45,117,.05),0 20px 40px -18px rgba(15,45,117,.35) !important}
.racine a.carte:hover img{transform:scale(1.03)}
.lieu{position:absolute;--e:21px;white-space:nowrap;padding:4px 10px;border-radius:999px;background:#FFFFFF;color:#0F2D75;font-size:14px;font-weight:700;line-height:1.3;box-shadow:0 1px 3px rgba(15,45,117,.22)}
.lieu-siege{--e:25px;background:#0F2D75;color:#FFFFFF}
.lieu-d{transform:translate(var(--e),-50%)}
.lieu-g{transform:translate(calc(-100% - var(--e)),-50%)}
.lieu-h{transform:translate(-50%,calc(-100% - var(--e)))}
.lieu-b{transform:translate(-50%,var(--e))}
.titre-carte svg{display:inline-block;vertical-align:-3px;margin-left:6px}
.etape-img{position:relative;isolation:isolate}
.etape-img::after{content:"";position:absolute;z-index:-1;top:calc(50% - 2px);left:50%;width:calc(100% + 48px);border-top:4px dotted #F2B300}
.etape:last-child .etape-img::after{display:none}
.faq summary{list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq .moins{display:none}
.faq[open] .plus{display:none}
.faq[open] .moins{display:block}
.racine .faq summary:hover h3{color:#1B4FBF}
.pied-legal a{display:inline-block;padding:12px 0;line-height:20px}
.racine .pied a{color:#FFFFFF;text-decoration:none}
.racine .pied a:hover{color:#FFFFFF;text-decoration:underline}
.lib-court{display:none}
@keyframes entete-reduit{to{height:60px;margin-bottom:12px;box-shadow:0 10px 24px -14px rgba(15,45,117,.35)}}
@keyframes apparait{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){
@supports (animation-timeline:view()){
.apparait{animation:apparait linear both;animation-timeline:view();animation-range:entry 0% entry 240px}
}
}
@media (min-width:760px) and (prefers-reduced-motion:no-preference){
@supports (animation-timeline:scroll()){
.entete{animation:entete-reduit linear both;animation-timeline:scroll(root);animation-range:0px 160px}
}
}
@media (prefers-reduced-motion:reduce){
.racine *{transition:none !important}
}
@media (max-width:1239px){
.l2-1240 > span{display:block}
.l2-1240{text-align:right}
}
@media (min-width:900px) and (max-width:1239px){
.heros-img{object-position:78% 100% !important}
}
@media (min-width:760px) and (max-width:1239px){
.barre-devis > fieldset{flex-basis:100% !important}
.tuile{flex:1 1 0;justify-content:center}
}
@media (max-width:1079px){
.nav-bureau{display:none !important}
}
@media (max-width:899px){
.heros{grid-template-columns:16px minmax(0,1fr) 16px !important;padding-top:16px}
.heros-cadre{grid-column:2 !important;grid-row:1 !important;height:auto !important;aspect-ratio:358 / 232;border-radius:20px !important}
.heros-img{top:auto !important;bottom:0 !important;left:auto !important;right:-21% !important;width:210% !important;height:auto !important;max-width:none !important;object-fit:fill !important}
.heros-texte{grid-column:2 !important;grid-row:2 !important;padding:20px 0 0 !important}
.barre-zone{margin-top:20px !important}
.zones{grid-template-columns:minmax(0,1fr) !important;grid-template-rows:auto !important}
.zones-titre{grid-row:1 !important;grid-column:1 !important;padding-top:0 !important}
.zones-carte{grid-row:2 !important;grid-column:1 !important;justify-self:center !important;margin-top:24px}
.zones-ligne{grid-row:3 !important;grid-column:1 !important;margin-top:24px !important}
.zones-cta{grid-row:4 !important;grid-column:1 !important;margin-top:20px !important}
.final{grid-template-columns:minmax(0,1fr) !important}
.final-texte{padding-bottom:32px !important}
}
@media (max-width:759px){
.racine{font-size:16px;padding-bottom:76px}
.entete{height:60px !important}
.tel-num,.tel-entete .tag{display:none !important}
.tel-entete{width:44px;height:44px;justify-content:center;padding:0 !important;border:1px solid #E2E8F0 !important;border-radius:50% !important}
.lib-long{display:none !important}
.lib-court{display:inline !important}
.barre-mobile{display:flex !important}
.barre-devis{flex-direction:column !important;align-items:stretch !important;gap:16px !important;padding:16px !important}
.barre-devis > *{flex:0 0 auto !important;width:100% !important}
.tuiles{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr)) !important}
.tuile{flex-direction:column !important;justify-content:center !important;height:auto !important;min-height:96px;padding:10px 4px !important;gap:4px !important;text-align:center}
.commune{top:50% !important;transform:translateY(-50%);right:14px !important;left:auto !important}
.sous-barre{flex-direction:column !important;align-items:flex-start !important;gap:0 !important}
.sep{display:none !important}
.chiffre{flex-direction:column !important;gap:6px !important;padding:20px 4px !important;text-align:center}
.chiffre-legende{align-items:center !important}
.grille-cartes{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:12px !important}
.carte-texte{padding:12px 12px 16px !important}
.carte-ligne{font-size:15px !important}
.etapes{grid-template-columns:minmax(0,1fr) !important;gap:24px !important}
.etape{flex-direction:row !important;align-items:center !important;gap:18px !important}
.etape-img{flex:0 0 128px;width:128px}
.etape-img::after{top:50%;left:calc(50% - 2px);width:0;height:calc(100% + 24px);border-top:0;border-left:4px dotted #F2B300}
.etape-texte{padding:0 !important}
.pastille{top:-8px !important;left:-8px !important;width:32px !important;height:32px !important;font-size:15px !important;box-shadow:0 0 0 3px #0F2D75 !important}
.badges{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:28px 12px !important}
.badge-disque{width:96px !important;height:96px !important}
.zones-carte{justify-self:start !important;width:calc(100% + 32px) !important;max-width:none !important;margin-left:-16px;background:#DFE7FF}
.lieu{--e:12px;padding:0;border-radius:0;background:transparent;box-shadow:none;text-shadow:0 0 2px #FFFFFF,0 0 2px #FFFFFF,0 0 3px #FFFFFF,0 0 4px #FFFFFF}
.lieu-siege{--e:15px;padding:2px 7px;border-radius:999px;background:#0F2D75;color:#FFFFFF;text-shadow:none}
.l2-760 > span{display:block}
.l2-760,.l2-1240{line-height:1.15}
.m-d{transform:translate(var(--e),-50%) !important}
.m-h{transform:translate(-50%,calc(-100% - var(--e))) !important}
.m-b{transform:translate(-50%,var(--e)) !important}
.zones-ligne{font-size:16px !important}
.final-visuel{height:290px !important}
.final-crop{height:250px !important;width:100% !important}
.final-soleil{top:0 !important;width:220px !important;height:220px !important;right:-30px !important}
}
/* Version photos (16/10) : la photo du haut garde son cadrage sur toutes les tailles d'écran */
.racine .heros-img.photo { top: 0 !important; bottom: auto !important; left: 0 !important; right: auto !important; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover !important; object-position: 50% 45% !important; }
/* Carte réelle (16/10) */
.racine .zones-carte img { border-radius: 20px; }
.lieu.l2 > span { display: block; }
.lieu.l2 { line-height: 1.15; text-align: left; }
/* 17/10 : 20 communes ne tiennent sur la carte qu'à partir de 1240 px ; en dessous, elles passent en pastilles sous la carte */
@media (min-width: 760px) and (max-width: 1239px) {
  .racine .zones-carte ul { display: flex; flex-wrap: wrap; gap: 8px; padding: 16px 0 0; }
  .racine .zones-carte .lieu { position: static; transform: none !important; padding: 4px 10px; border-radius: 999px; background: #FFFFFF; box-shadow: 0 1px 3px rgba(15, 45, 117, .22); text-shadow: none; line-height: 1.3; }
  .racine .zones-carte .lieu-siege { background: #0F2D75; color: #FFFFFF; }
  .racine .zones-carte .lieu > span { display: inline !important; }
}
@media (max-width: 759px) {
  .racine .zones-carte img { border-radius: 0; }
  .racine .zones-carte ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; padding: 16px 16px 4px; }
  .racine .zones-carte .lieu { position: static; transform: none !important; padding: 4px 10px; border-radius: 999px; background: #FFFFFF; box-shadow: 0 1px 3px rgba(15, 45, 117, .22); text-shadow: none; line-height: 1.3; }
  .racine .zones-carte .lieu-siege { background: #0F2D75; color: #FFFFFF; }
  .racine .zones-carte .lieu > span { display: inline !important; }
}
/* 17/10 : carte Débarras, avis Google, engagements RSE (modifs_20261017/sections.py) */
@media (max-width:899px){
.avis-grille{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.engagements{grid-template-columns:minmax(0,1fr) !important;gap:28px !important;max-width:640px}
.engagement{flex-direction:row !important;gap:20px !important}
}
@media (max-width:759px){
.debarras-carte{grid-template-columns:minmax(0,1fr) !important}
.debarras-photo{min-height:0 !important;aspect-ratio:16 / 10}
.debarras-texte{padding:18px 16px 20px !important}
.avis-entete{flex-direction:column !important;align-items:flex-start !important;gap:16px !important}
.avis-resume{padding:12px 18px !important}
.avis-grille{grid-template-columns:minmax(0,1fr) !important;gap:12px !important}
.avis-carte{padding:20px 20px 16px !important}
.avis-texte{font-size:16px !important}
.engagements{gap:24px !important}
.engagement{gap:16px !important}
.engagement-disque{width:64px !important;height:64px !important}
.engagement-disque svg{width:36px;height:36px}
}

/* Formulaire de devis (17/10/2026) : deux groupes, six types de locaux, trois listes, coordonnées et message */
.racine .barre-devis > .groupe-devis{flex-basis:auto !important}
.racine .barre-devis .tuile{min-width:0}
.racine .barre-devis select.champ:invalid{color:#64748B !important;font-weight:500 !important}
.racine .barre-devis select.champ option{color:#1E293B;font-weight:500}
.racine .barre-devis .champ::placeholder{color:#64748B;font-weight:500;opacity:1}
.racine .barre-devis .erreur-champ{margin-top:6px;font-size:14px;font-weight:700;line-height:1.4;color:#B42318}
@media (max-width:1239px){
.racine .barre-devis{padding:24px !important}
.racine .barre-devis .tuiles{grid-template-columns:repeat(3,minmax(0,1fr)) !important}
}
@media (max-width:1079px){
.racine .barre-devis .grille-coord{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.racine .barre-devis .bloc-message{grid-column:1 / -1 !important}
.racine .barre-devis .grille-coord > .bouton{grid-column:1 / -1 !important;justify-self:end;width:auto !important;min-width:260px}
}
@media (max-width:899px){
.racine .barre-devis .grille-projet{grid-template-columns:minmax(0,1fr) !important}
}
@media (max-width:759px){
.racine .barre-devis{gap:20px !important;padding:20px 16px !important}
.racine .barre-devis .titre-groupe{margin-bottom:14px !important;font-size:18px !important}
.racine .barre-devis > .groupe-devis + .groupe-devis{padding-top:20px !important}
.racine .barre-devis .grille-projet,.racine .barre-devis .grille-coord{grid-template-columns:minmax(0,1fr) !important;gap:16px !important}
.racine .barre-devis .tuiles{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.racine .barre-devis .grille-coord > .bouton{justify-self:stretch;width:100% !important;min-width:0}
}

/* 17/10 : vrai logo (modifs_20261017/logo.py) */
@media (max-width:759px){
.racine .logo-entete{height:22px !important}
.racine .logo-pied{width:220px !important}
}

/* ===== Ajouts du site de production (16/10/2026) =====
   Tout ce qui précède dans site.css vient tel quel de la maquette validée (maquettes/v2/pages/pro_photos.html).
   Ici : lien d'évitement, états du formulaire de devis, pot de miel, pages légales, pages « merci » et 404. */

/* Lien d'évitement : invisible tant qu'on n'arrive pas dessus au clavier */
.racine .lien-evitement{position:absolute;left:16px;top:-200px;z-index:100;padding:12px 18px;border-radius:10px;background:#0F2D75;color:#FFFFFF;font-size:16px;font-weight:700;text-decoration:none}
.racine .lien-evitement:focus{top:12px;color:#FFFFFF;outline-color:#F2B300}

/* Pot de miel : hors écran, ignoré des lecteurs d'écran et du clavier */
.racine .pot-de-miel{position:absolute !important;left:-10000px !important;top:auto !important;width:1px !important;height:1px !important;overflow:hidden !important}

/* Formulaire de devis : messages et états */
.racine .message-devis:not(:empty){margin-top:12px;padding:14px 18px;border:1px solid #FECDCA;border-radius:12px;background:#FEF3F2;color:#912018;font-size:15px;font-weight:600;line-height:1.5}
.racine .message-devis a{color:#912018;font-weight:800;white-space:nowrap}
.racine .message-devis a:hover{color:#5C1712}
.racine .barre-devis .champ[aria-invalid="true"]{border-color:#B42318 !important;box-shadow:inset 0 0 0 1px #B42318}
.racine .barre-devis fieldset[data-invalide] .tuile{border-color:#B42318 !important}
.racine .barre-devis button[disabled]{opacity:.75;cursor:progress;transform:none;box-shadow:none}
.racine .devis-envoye{display:flex;align-items:center;gap:16px;padding:22px 24px;background:#FFFFFF;border:1px solid #E2E8F0;border-radius:20px;box-shadow:0 2px 6px rgba(15,45,117,.06),0 28px 56px -22px rgba(15,45,117,.32);color:#0F2D75}
.racine .devis-envoye:focus{outline:none}
.racine .devis-envoye .icone{flex:0 0 48px;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#F2B300}
.racine .devis-envoye .titre{font-size:clamp(18px, .29vw + 16.8px, 21px);font-weight:800;line-height:1.3}
.racine .devis-envoye .detail{margin-top:2px;font-size:15px;line-height:1.5;color:#334155}
.racine .devis-envoye .detail a{font-weight:700;white-space:nowrap}

/* Pages légales */
.racine .bandeau-page{background:#F4F7FD;border-bottom:1px solid #E2E8F0;padding:clamp(40px, 5vw, 72px) 0 clamp(32px, 4vw, 56px)}
.racine .conteneur{width:min(1200px, calc(100% - 32px));margin:0 auto}
.racine .surtitre{font-size:15px;font-weight:700;letter-spacing:.01em;line-height:1.4;color:#1B4FBF}
.racine .bandeau-page h1{margin-top:10px;font-size:clamp(32px, 1.37vw + 26.5px, 48px);line-height:1.08}
.racine .bandeau-page .maj{margin-top:14px;font-size:15px;line-height:1.5;color:#475569}
.racine .texte-page{width:min(800px, calc(100% - 32px));margin:0 auto;padding:clamp(40px, 5vw, 64px) 0 clamp(64px, 6.67vw, 96px)}
.racine .texte-page > section + section,.racine .texte-page > .intro + section{margin-top:40px;padding-top:40px;border-top:1px solid #E2E8F0}
.racine .texte-page h2{margin:0 0 16px;font-size:clamp(22px, .59vw + 19.6px, 28px);line-height:1.2}
.racine .texte-page h3{margin:24px 0 8px;font-size:18px;line-height:1.3;letter-spacing:-.01em}
.racine .texte-page p + p,.racine .texte-page p + ul,.racine .texte-page ul + p,.racine .texte-page .fiche + p,.racine .texte-page p + .fiche{margin-top:12px}
.racine .texte-page ul{padding-left:1.25em}
.racine .texte-page li + li{margin-top:6px}
.racine .texte-page li::marker{color:#1B4FBF}
.racine .texte-page a{font-weight:600;overflow-wrap:anywhere}
.racine .fiche{display:grid;grid-template-columns:minmax(0, 15em) minmax(0, 1fr);margin:0;border:1px solid #E2E8F0;border-radius:20px;overflow:hidden;background:#FFFFFF}
.racine .fiche dt,.racine .fiche dd{margin:0;padding:12px 18px;border-top:1px solid #E2E8F0}
.racine .fiche dt:first-of-type,.racine .fiche dt:first-of-type + dd{border-top:0}
.racine .fiche dt{background:#F4F7FD;color:#0F2D75;font-size:15px;font-weight:700;line-height:1.5}
.racine .fiche dd{font-size:16px;line-height:1.5}
.racine .note{font-size:15px;line-height:1.55;color:#64748B}
@media (max-width:759px){
.racine .fiche{grid-template-columns:minmax(0, 1fr)}
.racine .fiche dt{padding:12px 16px 2px;background:transparent;font-size:14px}
.racine .fiche dd{padding:0 16px 12px;border-top:0}
}

/* Pages « merci » et 404 */
.racine .page-simple{background:#F4F7FD;padding:clamp(56px, 8vw, 120px) 0}
.racine .page-simple .encart{width:min(760px, calc(100% - 32px));margin:0 auto;padding:clamp(28px, 4vw, 48px);background:#FFFFFF;border:1px solid #E2E8F0;border-radius:20px;box-shadow:0 2px 6px rgba(15,45,117,.06),0 28px 56px -22px rgba(15,45,117,.32)}
.racine .page-simple .icone{display:grid;place-items:center;width:56px;height:56px;margin-bottom:20px;border-radius:50%;background:#F2B300}
.racine .page-simple h1{font-size:clamp(28px, 1.18vw + 23.3px, 40px);line-height:1.12}
.racine .page-simple .chapeau{margin-top:14px;font-size:18px;line-height:1.6}
.racine .page-simple .actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:28px}
.racine .page-simple .contact{margin-top:24px;padding-top:20px;border-top:1px solid #E2E8F0;font-size:15px;line-height:1.6;color:#64748B}
.racine .page-simple .contact a{font-weight:700;white-space:nowrap}

/* Cibles tactiles : au moins 44 px de haut pour les liens isolés (réponses de la FAQ, fiches des pages légales,
   pages « échec » et 404). La marge négative rend exactement la hauteur ajoutée (1lh = hauteur de ligne du lien) :
   la mise en page ne bouge pas. Navigateur sans l'unité lh : marge fixe de 10 px (lignes de 24 px). */
.racine details a,.racine .page-simple .actions a:not(.bouton),.racine .fiche dd a{display:inline-flex;align-items:center;min-height:44px;margin-top:-10px;margin-bottom:-10px;margin-top:calc((1lh - 44px) / 2);margin-bottom:calc((1lh - 44px) / 2)}
