:root{--cuivre:#9c4f1e;--cuivre-sombre:#7d3b16;--cuivre-fin:#97491b;--cuivre-vif:#c4743a;--cuivre-clair:#e8ab76;--cuivre-teinte:#f6d3b4;--cuivre-vif-rgb:196,116,58;--cuivre-rgb:156,79,30}
@font-face{font-family:"Archivo";src:url(../polices/archivo-latin-wdth-normal.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap;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}
@font-face{font-family:"Archivo";src:url(../polices/archivo-latin-ext-wdth-normal.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Inter";src:url(../polices/inter-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap;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}
@font-face{font-family:"Inter";src:url(../polices/inter-latin-ext-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --fond:#f6f2ea;
  --fond-2:#ece4d5;
  --papier:#fffdf8;
  --ardoise:#1d2830;
  --doux:#4a5760;
  --ligne:rgba(29,40,48,.16);
  --entete:76px;
  --barre:58px;
  --sortie:cubic-bezier(.16,1,.3,1);
  --tx:18px;
  --gl:44px;
  --gd:20px;
  --large:1280px;
  --sec:clamp(88px,11vw,144px);
  --pente:clamp(18px,3vw,44px);
  --titre:"Archivo",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto;background:var(--fond)}
body{position:relative;background:var(--fond);color:var(--ardoise);font-family:"Inter",system-ui,sans-serif;font-size:17px;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;padding-bottom:calc(76px + env(safe-area-inset-bottom))}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
ul{list-style:none}
:focus-visible{outline:2px solid var(--cuivre);outline-offset:3px}
.ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

.conteneur{width:100%;max-width:var(--large);margin-inline:auto;padding-left:var(--gl);padding-right:var(--gd)}
.sonde{position:absolute;left:var(--tx);top:0;width:0;height:0;visibility:hidden}
#reseau{position:absolute;left:0;top:0;width:100%;height:0;z-index:3;pointer-events:none;overflow:visible}

/* Typographie : Archivo serré pour les titres, Inter pour le texte */
.titre{font-family:var(--titre);font-weight:800;font-stretch:108%;line-height:.96;letter-spacing:-.035em}
.etiq{display:inline-flex;align-items:center;gap:.8em;font:600 .72rem/1.3 var(--titre);font-stretch:112%;letter-spacing:.22em;text-transform:uppercase;color:var(--cuivre)}
.etiq::before{content:"";width:26px;height:1px;background:currentColor;flex:none}

/* Boutons : rayon 4 px */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.65em;min-height:54px;padding:0 1.6em;border:1px solid transparent;border-radius:4px;font:600 1rem/1.1 "Inter",sans-serif;text-decoration:none;white-space:nowrap;transition:transform .25s ease,background-color .25s ease,border-color .25s ease,color .25s ease}
.btn-principal{background:var(--cuivre);color:#fff}
.btn-principal:hover{background:var(--cuivre-sombre);transform:translateY(-2px)}
.btn-secondaire{border-color:var(--ardoise);color:var(--ardoise);background:rgba(246,242,234,.55)}
.btn-secondaire:hover{background:var(--ardoise);color:var(--fond);transform:translateY(-2px)}
.btn-sur-bande{background:var(--papier);color:var(--ardoise)}
.btn-sur-bande:hover{background:#fff;transform:translateY(-2px)}

/* En-tête : posé sur l'ouverture, puis barre flottante translucide */
.entete{position:fixed;top:0;left:0;right:0;z-index:40;pointer-events:none}
.voile{position:fixed;inset:0 0 auto 0;height:130px;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(246,242,234,.94),rgba(246,242,234,.55) 55%,rgba(246,242,234,0));transition:opacity .3s}
html.defile .voile{opacity:0}
.barre-haut{position:relative;pointer-events:auto;display:flex;align-items:center;gap:20px;height:var(--entete);padding:0 var(--gd) 0 var(--cl,14px);border:1px solid transparent;border-radius:0;margin:0}
.entete.defile .barre-haut{height:var(--barre);margin:8px 10px 0;padding:0 8px 0 max(8px,calc(var(--cl,14px) - 10px));background:rgba(255,253,248,.86);border-color:rgba(29,40,48,.1);border-radius:12px;box-shadow:0 14px 40px rgba(29,40,48,.14),0 1px 0 rgba(var(--cuivre-vif-rgb),.6);-webkit-backdrop-filter:blur(14px) saturate(1.1);backdrop-filter:blur(14px) saturate(1.1)}
html.mouvement .barre-haut{transition:height .45s var(--sortie),margin .45s var(--sortie),padding .45s var(--sortie),background-color .45s,border-color .45s,border-radius .45s,box-shadow .45s}
.logo{display:inline-flex;align-items:center;gap:10px;min-height:44px;text-decoration:none;flex:none}
.logo svg{width:34px;height:34px;flex:none}
.logo-nom{display:flex;flex-direction:column;font:800 .8rem/1.15 var(--titre);font-stretch:108%;letter-spacing:.06em;text-transform:uppercase}
.logo-nom small{font:500 .66rem/1.2 var(--titre);font-stretch:100%;letter-spacing:.22em;color:var(--cuivre)}
.nav{display:none}
.entete-tel{margin-left:auto;min-height:44px;padding:0 1.1em;font-size:.92rem}
.entete-tel .num{display:none}

/* Ouverture plein écran */
.ouverture{position:relative;display:flex;flex-direction:column;min-height:calc(100vh - 76px);min-height:calc(100svh - 76px);overflow:hidden;isolation:isolate}
.ouv-photo{position:absolute;z-index:-1;top:0;left:0;right:0;height:50%;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 28%,transparent 92%);mask-image:linear-gradient(180deg,#000 28%,transparent 92%)}
.ouv-photo img{width:100%;height:100%;object-fit:cover;object-position:56% 42%;transform-origin:62% 48%}
html.mouvement .ouv-photo img{animation:derive 28s ease-in-out infinite alternate}
@keyframes derive{from{transform:scale(1.03) translate(0,0)}to{transform:scale(1.16) translate(-2%,-1.5%)}}
.ouv-contenu{flex:1;display:flex;flex-direction:column;justify-content:flex-end;padding-top:calc(var(--entete) + 20px);padding-bottom:26px}
.demo{align-self:flex-start;margin-bottom:16px;padding:5px 10px;border:1px solid var(--ligne);border-radius:4px;background:rgba(255,253,248,.78);font:500 .76rem/1.35 "Inter",sans-serif;color:var(--doux)}
.ouverture h1{margin-top:14px;font-size:clamp(2.2rem,10.4vw,3.4rem);font-stretch:110%}
.ouverture h1 .l{display:block}
.ouverture h1 .cu{color:var(--cuivre)}
.ouverture .chapo{margin-top:18px;max-width:34em;font-size:1.06rem;color:#2d3a44}
.actions{display:flex;flex-direction:column;gap:12px;margin-top:24px}
.actions .btn{width:100%}
.urgence{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;min-height:64px;padding:12px var(--gd) 12px var(--gl);background:linear-gradient(90deg,var(--cuivre-sombre),var(--cuivre-fin));color:#fff}
.urgence .point{width:10px;height:10px;border-radius:50%;background:#ffd9b3;box-shadow:0 0 0 5px rgba(255,217,179,.22);flex:none}
.urgence strong{font:800 1.12rem/1.1 var(--titre);font-stretch:112%;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.urgence .suite{display:none;font-size:.9rem;color:#f4e2d2}
.urgence .tel-urg{display:none;align-items:center;min-height:44px;font-weight:600;color:#fff;text-decoration:none}

/* Sections */
.section{position:relative;padding:var(--sec) 0}
.section h2{font-size:clamp(2.3rem,8.8vw,3.4rem);margin-top:16px;max-width:14ch}
.intro{margin-top:18px;max-width:36em;color:var(--doux)}

/* Prestations : une grande, deux moyennes, une large */
.bento{display:grid;grid-template-columns:1fr;gap:46px 0;margin-top:48px}
.presta{display:flex;flex-direction:column;min-width:0}
.presta figure{position:relative;overflow:hidden;border-radius:2px;background:var(--fond-2)}
.presta figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.p-fuite figure{aspect-ratio:4/5}
.p-fuite figure img{object-position:30% 50%}
.p-debouchage figure{aspect-ratio:16/10}
.p-debouchage figure img{object-position:50% 60%}
.p-eau figure{aspect-ratio:1/1}
.p-eau figure img{object-position:70% 55%}
.p-sdb figure{aspect-ratio:4/5}
.p-sdb figure img{object-position:50% 50%}
.p-chauffage figure{aspect-ratio:16/9}
.p-chauffage figure img{object-position:50% 55%}
.presta-txt{display:grid;grid-template-columns:auto 1fr;column-gap:14px;padding-top:16px;border-top:1px solid var(--ligne);margin-top:16px}
.presta .num{grid-row:1/3;font:700 .78rem/2 var(--titre);font-stretch:112%;letter-spacing:.14em;color:var(--cuivre)}
.presta h3{font:800 1.5rem/1.05 var(--titre);font-stretch:106%;letter-spacing:-.025em}
.presta p{margin-top:6px;color:var(--doux);font-size:.98rem}

/* Pourquoi ce site : la seule section sombre */
.pourquoi{background:var(--ardoise);color:#eef0ee;margin-top:calc(var(--pente) * -1);padding-top:calc(var(--sec) + var(--pente));clip-path:polygon(0 0,100% var(--pente),100% 100%,0 100%)}
.pourquoi .etiq{color:var(--cuivre-clair)}
.pourquoi h2{max-width:16ch}
.points{display:grid;grid-template-columns:1fr;margin-top:44px;border-top:1px solid rgba(255,253,248,.18)}
.point-arg{padding:26px 0;border-bottom:1px solid rgba(255,253,248,.18)}
.point-arg .n{display:block;font:800 2.6rem/1 var(--titre);font-stretch:112%;letter-spacing:-.04em;color:var(--cuivre-clair)}
.point-arg h3{margin-top:12px;font:600 1.16rem/1.3 "Inter",sans-serif}
.point-arg p{margin-top:6px;color:#c6ceca;font-size:.98rem;max-width:30em}
.avis{display:flex;align-items:center;justify-content:center;min-height:112px;margin-top:36px;padding:22px;border:1px dashed rgba(255,253,248,.42);border-radius:2px;text-align:center;color:#d6dcd8;font:600 1.2rem/1.3 var(--titre);font-stretch:106%;letter-spacing:-.01em}

/* Zone */
.zone{padding-bottom:calc(var(--sec) + 48px)}
.zone-grille{display:grid;grid-template-columns:1fr;gap:32px;margin-top:38px}
.carte{position:relative;border:1px solid var(--ligne);border-radius:2px;background:var(--papier);padding:10px}
.carte svg{display:block;width:100%;height:auto}
.carte .note{display:block;margin:6px 4px 2px;font-size:.78rem;color:var(--doux)}
.communes{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.communes li{padding:9px 14px;border:1px solid var(--ligne);border-radius:4px;background:var(--papier);font-weight:500;font-size:.98rem}
.carte .anneau{fill:none;stroke:rgba(29,40,48,.28);stroke-width:1.5}
.carte .riviere{fill:none;stroke:#7f9aa6;stroke-width:5;stroke-linecap:round;opacity:.55}
.carte .zone-pointille{fill:rgba(var(--cuivre-vif-rgb),.08);stroke:var(--cuivre-vif);stroke-width:1.5;stroke-dasharray:6 6}
.carte .lien{fill:none;stroke:var(--cuivre-vif);stroke-width:1.5}
.carte .pt{fill:var(--cuivre)}
.carte .pt-grand{fill:var(--ardoise)}
.carte text{font:600 24px "Inter",sans-serif;fill:var(--ardoise);paint-order:stroke;stroke:#fffdf8;stroke-width:7px;stroke-linejoin:round}
.carte text.fin{font-size:20px;font-weight:500;fill:#4a5760}

/* Devis */
.devis{background:linear-gradient(160deg,var(--cuivre-sombre),var(--cuivre-fin));color:#fff;margin-top:calc(var(--pente) * -1);padding-top:calc(var(--sec) + var(--pente) + 24px);padding-bottom:var(--sec);clip-path:polygon(0 var(--pente),100% 0,100% 100%,0 100%)}
.devis .etiq{color:var(--cuivre-teinte)}
.devis h2{max-width:14ch}
.devis .intro{color:#f4e2d2}
.tel-geant{display:inline-flex;align-items:center;min-height:44px;margin-top:30px;font:800 clamp(2.3rem,11.4vw,6rem)/1 var(--titre);font-stretch:108%;letter-spacing:-.04em;text-decoration:none;color:#fff;white-space:nowrap}
.devis-grille{display:grid;grid-template-columns:1fr;gap:26px;margin-top:34px;padding-top:28px;border-top:1px solid rgba(255,255,255,.3)}
.devis-grille h3{font:600 .72rem/1.2 var(--titre);font-stretch:112%;letter-spacing:.22em;text-transform:uppercase;color:var(--cuivre-teinte)}
.devis-grille p,.devis-grille li{margin-top:8px;font-size:1rem;color:#fff}
.horaires li{display:flex;justify-content:space-between;gap:18px;max-width:22em;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:6px}

/* Pied de page */
.pied{position:relative;z-index:1;background:var(--ardoise);color:#cdd4d0;padding:48px 0 38px}
.pied .conteneur{display:grid;gap:24px}
.pied .logo-nom{color:#fff}
.pied .logo-nom small{color:var(--cuivre-clair)}
.pied p{font-size:.92rem;line-height:1.55}
.pied .demo-pied{display:inline-block;padding:8px 12px;border:1px solid rgba(255,253,248,.35);border-radius:4px;color:#fff;font-weight:500}
.pied .tel-pied{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;font-weight:600;color:#fff}
.pied .mini{color:#aeb8b3;font-size:.84rem}

/* Barre d'appel collante (téléphone) */
.barre-appel{position:fixed;left:0;right:0;bottom:0;z-index:45;display:grid;grid-template-columns:1.25fr 1fr;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(246,242,234,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--ligne)}
.barre-appel .btn{min-height:50px;padding:0 .8em}

/* Tuyauterie : de l'eau glisse dans le cuivre une fois la vanne ouverte */
.eau-reflet{fill:none;stroke-linecap:round}
html.mouvement .eau-reflet{animation:eau 2.4s linear infinite}
@keyframes eau{to{stroke-dashoffset:-360}}

@media (max-width:480px){.horaires li{flex-direction:column;gap:0}}
@media (max-width:699px){.carte text{font-size:31px;stroke-width:9px}.carte text.fin{font-size:25px}}
@media (min-width:700px){
  :root{--gl:clamp(64px,9vw,110px);--gd:clamp(24px,4vw,56px);--tx:max(22px,calc((100vw - var(--large))/2 + 22px))}
  .actions{flex-direction:row;flex-wrap:wrap}
  .actions .btn{width:auto}
  .bento{grid-template-columns:repeat(2,1fr);gap:46px 28px}
  .p-fuite{grid-row:span 2}
  .p-fuite figure{flex:1;aspect-ratio:auto;min-height:420px}
  .p-sdb,.p-chauffage{grid-column:1/-1}
  .p-sdb figure{aspect-ratio:16/8}
  .points{grid-template-columns:repeat(2,1fr);column-gap:48px}
  .zone-grille{grid-template-columns:1fr 1.35fr;align-items:center;gap:56px}
  .devis-grille{grid-template-columns:repeat(2,1fr)}
  .urgence .suite{display:inline}
}
@media (min-width:1024px){
  :root{--entete:88px;--barre:62px;
    --cl:max(16px,calc((100vw - var(--large))/2 + var(--gl)));
    --cr:max(16px,calc((100vw - var(--large))/2 + var(--gd)))}
  body{padding-bottom:0}
  .barre-haut{padding-right:var(--cr)}
  .entete.defile .barre-haut{padding-right:max(8px,calc(var(--cr) - 10px))}
  .barre-appel{display:none}
  .nav{display:flex;gap:2px;margin-left:auto;margin-right:8px}
  .nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;font-size:.92rem;font-weight:500;text-decoration:none}
  .nav a:hover{color:var(--cuivre)}
  .entete-tel{margin-left:0;font-size:.98rem}
  .entete-tel .num{display:inline}
  .ouverture{min-height:100vh;min-height:100svh}
  .ouv-photo{left:auto;right:0;top:0;bottom:0;height:auto;width:60%;-webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.22) 28%,#000 62%);mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.22) 28%,#000 62%)}
  .ouv-photo img{object-position:60% 45%}
  .ouv-contenu{justify-content:center;padding-top:calc(var(--entete) + 36px);padding-bottom:48px}
  .ouv-contenu>*{max-width:660px}
  .ouverture h1{font-size:clamp(3.4rem,5.7vw,5.8rem);margin-top:18px}
  .ouverture .chapo{font-size:1.14rem}
  .urgence{min-height:76px;padding-left:var(--cl);padding-right:var(--cr);justify-content:flex-start;gap:20px}
  .urgence strong{font-size:1.4rem}
  .urgence .tel-urg{display:inline-flex;margin-left:auto}
  .section h2{font-size:clamp(3rem,4.9vw,4.7rem)}
  .bento{grid-template-columns:repeat(12,1fr);gap:64px 28px;margin-top:60px}
  .p-fuite{grid-column:1/span 5}
  .p-fuite figure{min-height:560px}
  .p-debouchage{grid-column:6/span 7}
  .p-debouchage figure{aspect-ratio:16/8.4}
  .p-eau{grid-column:6/span 4}
  .p-eau figure{aspect-ratio:auto;height:300px}
  .p-sdb{grid-column:10/span 3}
  .p-sdb figure{aspect-ratio:auto;height:300px}
  .p-chauffage{grid-column:1/-1;flex-direction:row;gap:28px;align-items:stretch}
  .p-chauffage figure{flex:7;aspect-ratio:21/8}
  .p-chauffage .presta-txt{flex:3;align-content:end;margin-top:0;grid-template-columns:1fr}
  .p-chauffage .num{grid-row:auto}
  .p-chauffage h3{margin-top:8px;font-size:2.4rem}
  .p-chauffage p{font-size:1.04rem}
  .points{grid-template-columns:repeat(4,1fr);column-gap:0;border-bottom:1px solid rgba(255,253,248,.18)}
  .point-arg{padding:30px 28px 34px 0;border-bottom:0}
  .point-arg+.point-arg{padding-left:28px;border-left:1px solid rgba(255,253,248,.18)}
  .devis-grille{grid-template-columns:repeat(3,1fr);gap:48px}
  .pied .conteneur{grid-template-columns:1.2fr 1fr 1fr;align-items:start}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}


/* ===== Style A : ajouts du site complet (pages intérieures, menu, jetons des blocs communs) ===== */
:root{
  --t-fond:var(--fond);--t-surface:var(--papier);--t-surface-2:var(--fond-2);--t-texte:var(--ardoise);--t-doux:var(--doux);
  --t-ligne:var(--ligne);--t-ligne-forte:rgba(29,40,48,.5);--t-accent:var(--cuivre);--t-bouton:var(--cuivre);--t-sur-bouton:#fff;
  --t-champ:#fff;--t-rayon:2px;--t-erreur:#a4261d;--t-erreur-fond:#fbeceb;
}
.saut{position:fixed;left:8px;top:-80px;z-index:100;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;background:var(--ardoise);color:#fff;border-radius:4px}
.saut:focus{top:8px}
.btn-secondaire{border-color:var(--ardoise);color:var(--ardoise);background:rgba(246,242,234,.55)}
.btn-trait-bande{border-color:rgba(255,255,255,.7);color:#fff;background:transparent}
.btn-trait-bande:hover{background:#fff;color:var(--cuivre-sombre);transform:translateY(-2px)}
.btn-sur-fonce{border-color:rgba(255,253,248,.6);color:#fff;background:transparent}
.btn-sur-fonce:hover{background:#fff;color:var(--ardoise);transform:translateY(-2px)}
.barre-appel .btn-secondaire{background:transparent}
.urgence-neutre strong{white-space:normal;text-transform:none;letter-spacing:0;font-size:1rem;font-stretch:100%;font-weight:700}
.urgence-neutre .tel-urg{display:inline-flex}
.urgence-neutre .point{display:none}
.logo-img{display:block;width:auto;height:40px;max-width:200px;object-fit:contain}
.logo-avec-image{min-height:44px}
.logo-nom{min-width:0}
.devis .btn-secondaire{border-color:rgba(255,255,255,.7)}
.adresse{margin-top:12px}
.pied .mini{margin-top:12px}
.pied .tel-pied{min-width:44px}
.pied-liens{grid-column:1/-1;border-top:1px solid rgba(255,253,248,.18);padding-top:10px}
.pied-liens ul{display:flex;flex-wrap:wrap;gap:0 18px}
.pied-liens a{display:inline-flex;align-items:center;min-height:44px;color:#cdd4d0;font-size:.92rem}
.pied-liens a:hover{color:#fff}

/* Menu du téléphone */
.menu{margin-left:0;flex:none}
.menu summary{list-style:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--ardoise);border-radius:4px;cursor:pointer;color:var(--ardoise)}
.menu summary::-webkit-details-marker{display:none}
.menu .ic{width:22px;height:22px}
.menu[open] summary{background:var(--ardoise);color:var(--fond)}
.menu-panneau{position:fixed;left:10px;right:10px;top:calc(var(--barre) + 16px);max-height:calc(100vh - var(--barre) - 100px);max-height:calc(100svh - var(--barre) - 100px);overflow:auto;background:var(--papier);border:1px solid var(--ligne);border-radius:12px;box-shadow:0 20px 50px rgba(29,40,48,.22);padding:8px}
.menu-panneau a{display:flex;align-items:center;min-height:48px;padding:0 14px;text-decoration:none;font-weight:500;border-radius:4px}
.menu-panneau a:hover,.menu-panneau a[aria-current]{background:var(--fond-2);color:var(--cuivre)}
.entete-tel{margin-left:auto}

/* Tête des pages intérieures */
.tete-page{position:relative;padding:calc(var(--entete) + 62px) 0 clamp(40px,6vw,72px);background:linear-gradient(180deg,var(--fond-2),var(--fond))}
.tete-page .demo{margin-top:6px;margin-bottom:0;display:inline-block}
.tete-page .etiq{display:flex;margin-top:18px}
.tete-page h1{margin-top:14px;font-size:clamp(2.1rem,9vw,3.3rem);max-width:19ch;font-stretch:108%}
.tete-page .chapo{margin-top:16px;max-width:38em;font-size:1.06rem;color:#2d3a44}
.tete-page .actions{margin-top:22px}
.fil ol{display:flex;flex-wrap:wrap;gap:0 8px;font-size:.86rem;color:var(--doux)}
.fil li{display:inline-flex;align-items:center;min-height:44px}
.fil li+li::before{content:"/";margin-right:8px;color:var(--ligne-forte,var(--doux))}
.fil a{display:inline-flex;align-items:center;min-height:44px}
body:not(.page-accueil) .section:not(.devis){padding:clamp(52px,7vw,96px) 0}
.section-alt{background:var(--fond-2)}
.presta{position:relative}
.presta h3 a{display:flex;align-items:center;min-height:44px;text-decoration:none}
.presta:hover h3 a{color:var(--cuivre)}
.bande .btn-sur-bande{color:var(--ardoise)}
@media (min-width:700px){.tete-page h1{font-size:clamp(2.6rem,5.4vw,4.2rem)}}
@media (min-width:1024px){
  .menu{display:none}
  .entete-tel{margin-left:0}
  .tete-page{padding-top:calc(var(--entete) + 34px)}
  .tete-page h1{font-size:clamp(3rem,4.6vw,4.7rem)}
  .pied .conteneur{grid-template-columns:1.2fr 1fr 1fr}
}

@media (max-width:559px){
  .barre-haut{gap:8px}
  .entete-tel{width:44px;padding:0}
  .appel-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}

/* ===== Ouverture : état de départ posé AVANT le premier affichage =====
   html.anim (script du <head> : JavaScript actif ET mouvement non réduit) cache ce que site.js révèle. site.js retire la classe, puis pose
   les états de départ de GSAP, dans la même tâche : rien ne s'affiche entre les deux. Filet de sécurité : si site.js ne démarre pas, tout
   réapparaît seul entre 2,5 et 2,8 s. Sans JavaScript ou en mouvement réduit, la classe n'existe pas : tout est visible. */
html.anim .ouv-photo,html.anim .ouverture .demo,html.anim .ouverture .etiq,html.anim .urgence,html.anim #titre-principal,
html.anim [data-revele],html.anim [data-titre],html.anim .tete-page .conteneur>:not(.fil){opacity:0;animation:secours-ouverture .3s ease-out 2.5s forwards}
@keyframes secours-ouverture{to{opacity:1}}

/* ===== Contrastes mesurés sur les pixels ===== */
.carte text.fin{fill:#3c4952}   /* « la Garonne » : le texte passe sur le trait de la rivière, 4,28 pour 4,5 avec #4a5760 */
@media (max-width:699px){
  /* l'étiquette de l'ouverture (cuivre, petites capitales) repose sur le gant de la photo : un voile flou de la couleur du fond derrière elle */
  .ouverture .etiq{position:relative}
  .ouverture .etiq::after{content:"";position:absolute;z-index:-1;inset:-14px -22px;background:rgba(246,242,234,.97);filter:blur(8px)}
}


/* ===== Blocs communs aux deux styles (pages intérieures) : couleurs par jetons --t-* définis par chaque style ===== */
.prose{max-width:44em}
.prose h2{font:800 clamp(1.6rem,5vw,2.3rem)/1.1 var(--titre);font-stretch:106%;letter-spacing:-.02em;margin-top:40px}
.prose h2:first-child{margin-top:0}
.prose h3{margin-top:30px;font:700 1.15rem/1.3 "Inter",sans-serif}
.prose p{margin-top:14px;color:var(--t-doux)}
.prose p:first-of-type{margin-top:16px}
.prose .titre,.prose h2{max-width:none}
.prose .titre{margin-top:0}
.deux-colonnes{display:grid;grid-template-columns:1fr;gap:36px;align-items:start}
.photo{overflow:hidden;border-radius:var(--t-rayon);border:1px solid var(--t-ligne);background:var(--t-surface-2)}
.photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.puces{margin-top:12px}
.puces li{position:relative;padding-left:1.5em;margin-top:10px;color:var(--t-texte)}
.puces li::before{content:"";position:absolute;left:0;top:.8em;width:.8em;height:2px;background:var(--t-accent)}
.sous-titre{margin-top:36px;font:700 1.15rem/1.3 "Inter",sans-serif;color:var(--t-texte)}
.autres{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.autres a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--t-ligne-forte);border-radius:4px;text-decoration:none;font-weight:500;background:var(--t-surface)}
.autres a:hover{border-color:var(--t-accent);color:var(--t-accent)}
.gestes{margin-top:26px;max-width:46em}
.gestes li{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;padding:18px 0;border-top:1px solid var(--t-ligne)}
.gestes li:last-child{border-bottom:1px solid var(--t-ligne)}
.gestes .n{font:800 1.5rem/1.2 var(--titre);font-stretch:112%;color:var(--t-accent)}
.gestes p{color:var(--t-texte)}
.appel-urgence{margin-top:28px;max-width:44em;font-weight:600;color:var(--t-texte)}
.tel-lien{display:inline-flex;align-items:center;min-height:44px;color:var(--t-accent);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.cartes{display:grid;grid-template-columns:1fr;gap:14px;margin-top:30px}
.carte-texte{position:relative;padding:22px 22px 18px;border:1px solid var(--t-ligne);border-radius:var(--t-rayon);background:var(--t-surface)}
.carte-texte h3{font:800 1.3rem/1.15 var(--titre);font-stretch:106%}
.carte-texte p{margin-top:8px;color:var(--t-doux);font-size:.97rem}
.carte-texte .plus{display:block;margin-top:12px;font-weight:600;color:var(--t-accent);font-size:.92rem}
.lien-etendu{display:flex;align-items:center;min-height:44px;text-decoration:none}
.lien-etendu::after{content:"";position:absolute;inset:0}
.carte-texte:hover{border-color:var(--t-accent)}
.note-illustration{margin-top:14px;color:var(--t-doux);font-size:.92rem;max-width:44em}

/* Formulaire de devis (vitrine : n'envoie rien) */
.formulaire{display:grid;gap:18px;padding:clamp(20px,4vw,34px);background:var(--t-surface);border:1px solid var(--t-ligne);border-radius:var(--t-rayon)}
.formulaire h2{font:800 1.5rem/1.15 var(--titre);font-stretch:106%;max-width:none}
.champ{display:grid;gap:8px}
.champ label{font:600 .95rem/1.4 "Inter",sans-serif;color:var(--t-texte)}
.champ input,.champ select,.champ textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--t-ligne-forte);border-radius:4px;background:var(--t-champ);color:var(--t-texte);font:16px/1.4 "Inter",sans-serif}
.champ textarea{resize:vertical;min-height:130px}
.champ input:focus-visible,.champ select:focus-visible,.champ textarea:focus-visible{outline:2px solid var(--t-accent);outline-offset:1px}
.champ [aria-invalid]{border-color:var(--t-erreur);border-width:2px}
.aide{font-size:.88rem;color:var(--t-doux)}
.erreur{padding:8px 12px;border-radius:4px;background:var(--t-erreur-fond);color:var(--t-erreur);font-size:.92rem;font-weight:600}
.erreur[hidden]{display:none}
.formulaire .btn{justify-self:start}
.message-demo{padding:14px 16px;border-radius:4px;border-left:4px solid var(--t-accent);background:var(--t-surface-2);color:var(--t-texte);font-size:.97rem}
.message-demo:empty{display:none}
.message-demo{scroll-margin-bottom:96px}
.message-flottant{position:fixed;left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:60;max-width:34rem;box-shadow:0 14px 40px rgba(0,0,0,.28);background:var(--t-surface)}
@media (min-width:1024px){.message-flottant{left:auto;right:24px;bottom:24px}}
.message-demo.est-erreur{border-left-color:var(--t-erreur);background:var(--t-erreur-fond);color:var(--t-erreur);font-weight:600}
.cote{display:grid;gap:14px;align-content:start}
.encart{padding:20px 22px;border:1px solid var(--t-ligne);border-radius:var(--t-rayon);background:var(--t-surface)}
.encart h3{font:600 .76rem/1.2 var(--titre);font-stretch:112%;letter-spacing:.2em;text-transform:uppercase;color:var(--t-accent)}
.encart p{margin-top:10px}
.encart .horaires li{display:flex;justify-content:space-between;gap:14px;margin-top:8px;padding-bottom:6px;border-bottom:1px solid var(--t-ligne)}
@media (max-width:480px){.encart .horaires li{flex-direction:column;gap:0}}

/* Réservation (illustration) */
.agenda{display:grid;grid-template-columns:1fr;gap:12px;margin-top:26px}
.jour{padding:18px;border:1px solid var(--t-ligne);border-radius:var(--t-rayon);background:var(--t-surface)}
.jour h3{font:800 1.15rem/1.2 var(--titre);font-stretch:106%}
.periode{display:grid;grid-template-columns:5.2rem 1fr;gap:8px 12px;align-items:center;margin-top:12px}
.periode-nom{font-size:.88rem;color:var(--t-doux)}
.creneaux{display:flex;flex-wrap:wrap;gap:8px}
.creneau{min-height:44px;min-width:64px;padding:0 14px;border:1px solid var(--t-ligne-forte);border-radius:4px;background:var(--t-champ);color:var(--t-texte);font:600 .95rem/1 "Inter",sans-serif;cursor:pointer}
.creneau:hover{border-color:var(--t-accent)}
.creneau[aria-pressed=true]{background:var(--t-bouton);border-color:var(--t-bouton);color:var(--t-sur-bouton)}
.creneau:focus-visible{outline:2px solid var(--t-accent);outline-offset:2px}

/* FAQ */
.faq{display:grid;gap:0;margin-top:26px;max-width:50em}
.faq-item{padding:22px 0;border-top:1px solid var(--t-ligne)}
.faq-item:last-child{border-bottom:1px solid var(--t-ligne)}
.faq-item h3{font:700 1.18rem/1.3 "Inter",sans-serif;color:var(--t-texte)}
.faq-item p{margin-top:8px;color:var(--t-doux)}

/* Pourquoi ce site */
.tuiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px}
.tuile{display:flex;flex-direction:column;gap:2px;padding:20px 18px;border:1px solid var(--t-ligne);border-radius:var(--t-rayon);background:var(--t-surface)}
.tuile .n{font:800 clamp(2.2rem,9vw,3.4rem)/1 var(--titre);font-stretch:110%;letter-spacing:-.03em;color:var(--t-accent)}
.tuile .u{font:600 .86rem/1.3 "Inter",sans-serif;color:var(--t-texte)}
.tuile .l{margin-top:6px;font-size:.88rem;color:var(--t-doux)}
.arguments{display:grid;grid-template-columns:1fr;gap:14px;margin-top:28px}
.argument{padding:22px;border:1px solid var(--t-ligne);border-radius:var(--t-rayon);background:var(--t-surface)}
.argument .n{display:block;font:800 1.5rem/1 var(--titre);font-stretch:112%;color:var(--t-accent)}
.argument h3{margin-top:12px;font:700 1.15rem/1.3 "Inter",sans-serif}
.argument p{margin-top:8px;color:var(--t-doux);font-size:.98rem}
.section-alt .avis{color:var(--t-texte);border-color:var(--t-ligne-forte)}
.legal h2{font-size:1.35rem;margin-top:32px}

@media (min-width:700px){
  .cartes{grid-template-columns:repeat(2,1fr)}
  .agenda{grid-template-columns:repeat(2,1fr)}
  .tuiles{grid-template-columns:repeat(4,1fr)}
  .arguments{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:900px){
  .deux-colonnes{grid-template-columns:1.25fr 1fr;gap:56px}
  .devis-colonnes{grid-template-columns:1.5fr 1fr}
}
@media (min-width:1024px){
  .cartes{grid-template-columns:repeat(4,1fr)}
  .agenda{grid-template-columns:repeat(5,1fr)}
  .periode{grid-template-columns:1fr}
  .arguments{grid-template-columns:repeat(3,1fr)}
}

/* cibles tactiles : au moins 44 px dans les deux sens */
.pied-liens a,.fil a,.tel-pied,.nav a{min-width:44px}
