/* Couleurs et Vous — feuille de style du site public
   Charte : rouge #e06057, beige #faece3. Le texte courant utilise une encre sombre et un rouge
   plus profond (#b8433a) pour respecter les contrastes WCAG AA (le rouge de marque reste réservé
   aux grands aplats, logos et titres décoratifs). */
@font-face{font-family:"Barlow Condensed";font-weight:500;font-style:normal;font-display:swap;src:url(/static/fonts/barlow-condensed-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:600;font-style:normal;font-display:swap;src:url(/static/fonts/barlow-condensed-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:700;font-style:normal;font-display:swap;src:url(/static/fonts/barlow-condensed-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:Barlow;font-weight:400;font-style:normal;font-display:swap;src:url(/static/fonts/barlow-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Barlow;font-weight:400;font-style:italic;font-display:swap;src:url(/static/fonts/barlow-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:Barlow;font-weight:500;font-style:normal;font-display:swap;src:url(/static/fonts/barlow-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:Barlow;font-weight:600;font-style:normal;font-display:swap;src:url(/static/fonts/barlow-latin-600-normal.woff2) format("woff2")}

:root{
  --rouge:#e06057; --rouge-fort:#b8433a; --rouge-sombre:#9c342c; --beige:#faece3; --beige-2:#f4ddd0; --blanc:#fff;
  --encre:#2a2220; --gris:#6b5a55; --ligne:#ead8cc;
  --titre:"Barlow Condensed","Arial Narrow",Arial,sans-serif; --texte:Barlow,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --max:1180px; --gut:clamp(1.1rem,4vw,2.5rem); --r:4px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;font:400 1.0625rem/1.7 var(--texte);color:var(--encre);background:var(--blanc);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,picture,svg,video{display:block;max-width:100%}
video{height:auto}
img{height:auto}
a{color:var(--rouge-fort);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--rouge-sombre)}
:focus-visible{outline:3px solid var(--rouge-fort);outline-offset:3px;border-radius:2px}
h1,h2,h3,h4{font-family:var(--titre);font-weight:600;text-transform:uppercase;letter-spacing:.035em;line-height:1.08;margin:0 0 .6em;color:var(--encre)}
h1{font-size:clamp(2.1rem,5.2vw,3.6rem)}
h2{font-size:clamp(1.65rem,3.4vw,2.35rem)}
h3,.h3{font-size:1.4rem;letter-spacing:.04em}
p{margin:0 0 1em}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.narrow{max-width:820px}
.center{text-align:center}
.muted{color:var(--gris)}
.small{font-size:.93rem}
.skip{position:absolute;left:-999px;top:0;background:var(--encre);color:#fff;padding:.7rem 1rem;z-index:100}
.skip:focus{left:0}
.i{width:1.15em;height:1.15em;flex:none}
.eyebrow{font:600 .95rem var(--titre);letter-spacing:.16em;text-transform:uppercase;color:var(--rouge-fort);margin:0 0 .7rem}

/* Boutons et liens d'action */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1.6rem;background:var(--rouge-fort);color:#fff;border:1.5px solid var(--rouge-fort);border-radius:var(--r);font:600 1.05rem var(--titre);letter-spacing:.09em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .2s,color .2s}
.btn:hover{background:var(--rouge-sombre);border-color:var(--rouge-sombre);color:#fff}
.btn-ghost{background:transparent;color:var(--rouge-fort)}
.btn-ghost:hover{background:var(--rouge-fort);color:#fff}
.btn-small{padding:.55rem 1.1rem;font-size:.95rem}
.link-arrow{display:inline-flex;align-items:center;gap:.4rem;font:600 1.05rem var(--titre);letter-spacing:.09em;text-transform:uppercase;text-decoration:none}
.link-arrow .arrow{transition:transform .2s}
.link-arrow:hover .arrow,.card:hover .arrow{transform:translateX(4px)}
a.inline{display:inline-flex;align-items:center;gap:.45rem;text-decoration:none}
a.inline:hover span{text-decoration:underline}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 1.6rem;margin-top:1.4rem}
.actions-inline{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}
.center-actions{justify-content:center}

/* En-tête */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--ligne)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:84px}
.brand img{height:68px;width:auto}
.nav{margin-left:auto}
.menu{display:flex;align-items:center;gap:2rem;list-style:none;margin:0;padding:0}
.menu a:not(.btn){font:600 1.12rem var(--titre);letter-spacing:.1em;text-transform:uppercase;color:var(--encre);text-decoration:none;padding:.4rem 0;border-bottom:2px solid transparent}
.menu a:not(.btn):hover,.menu a[aria-current]{border-bottom-color:var(--rouge)}
.head-tel{display:none;align-items:center;gap:.4rem;color:var(--encre);text-decoration:none;font-weight:500;white-space:nowrap}
.menu-toggle,.burger{display:none}
@media (min-width:1080px){.head-tel{display:inline-flex}}
@media (max-width:860px){
  .bar{min-height:70px}.brand img{height:54px}
  .burger{display:flex;flex-direction:column;justify-content:center;gap:6px;width:44px;height:44px;cursor:pointer;align-items:center}
  .burger span{display:block;width:26px;height:2px;background:var(--encre);transition:transform .25s,opacity .25s}
  .menu-toggle{display:block;position:absolute;opacity:0;width:44px;height:44px;right:var(--gut);margin:0;cursor:pointer}
  .menu-toggle:focus-visible+.burger{outline:3px solid var(--rouge-fort);outline-offset:2px}
  .menu{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--beige);padding:.5rem var(--gut) 1.4rem;border-bottom:1px solid var(--ligne);display:none}
  .menu li{border-bottom:1px solid var(--ligne)}
  .menu a:not(.btn){display:block;padding:1rem 0;font-size:1.3rem;border:0}
  .menu .menu-cta{border:0;padding-top:1rem}.menu .menu-cta .btn{width:100%}
  .menu-toggle:checked~.menu{display:flex}
  .menu-toggle:checked+.burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .menu-toggle:checked+.burger span:nth-child(2){opacity:0}
  .menu-toggle:checked+.burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
}
.float-cta{display:none}
@media (max-width:860px){
  .float-cta{display:inline-flex;position:fixed;right:14px;bottom:14px;z-index:40;opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .25s,transform .25s;padding:.55rem 1rem;font-size:.95rem;background:var(--rouge-fort);color:#fff;border-radius:999px;font:600 1rem var(--titre);letter-spacing:.09em;text-transform:uppercase;text-decoration:none;box-shadow:0 6px 20px rgba(42,34,32,.25)}
  body.no-float .float-cta{display:none}
  .float-cta.show{opacity:1;pointer-events:auto;transform:none}
}

/* Accueil */
.hero-media{position:relative;height:clamp(340px,62vh,640px);overflow:hidden;background:var(--beige-2)}
.hero-media picture,.hero-media img{width:100%;height:100%;object-fit:cover}
.hero .wrap{position:relative}
.carousel .slide{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease;pointer-events:none}
.carousel .slide.is-active{opacity:1}
.carousel .slide img{object-position:50% var(--fy,50%)}
.car-ui{position:absolute;top:.9rem;right:.9rem;display:flex;align-items:center;gap:.5rem;padding:.35rem .6rem;background:rgba(42,34,32,.45);border-radius:999px;z-index:2}
.car-dot{width:10px;height:10px;padding:0;border:1.5px solid #fff;border-radius:50%;background:transparent;cursor:pointer}
.car-dot.is-active{background:#fff}
.car-toggle{background:none;border:0;color:#fff;font-size:.7rem;line-height:1;cursor:pointer;padding:.2rem .35rem 0 0}
.car-dot:focus-visible,.car-toggle:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media (prefers-reduced-motion:reduce){.carousel .slide{transition:none}}
.hero-card{background:var(--beige);max-width:620px;padding:clamp(1.6rem,3.5vw,2.8rem);margin-top:clamp(-190px,-14vw,-110px);position:relative;border-radius:var(--r)}
.hero-card h1{font-size:clamp(1.9rem,4.2vw,3rem);margin-bottom:.45em}
.hero-card p:not(.eyebrow){margin-bottom:0;color:#3d3230}
.section{padding:clamp(3rem,7vw,5.5rem) 0}
.section.tight{padding:clamp(1.8rem,4vw,3rem) 0}
.section.tint{background:var(--beige)}
.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.8rem;flex-wrap:wrap}
.section-head h2{margin:0}
.lead{font-size:1.25rem;line-height:1.55;color:#3d3230;max-width:60ch}
.center .lead{margin-inline:auto}
.two{display:grid;gap:clamp(1.8rem,5vw,4.5rem);grid-template-columns:1.15fr 1fr;align-items:start}
.two.reverse{grid-template-columns:1.1fr .9fr}
@media (max-width:860px){.two,.two.reverse{grid-template-columns:1fr}}
.atouts{list-style:none;margin:0;padding:0;display:grid;gap:1rem}
.atouts li{padding:1rem 0 1rem 1.2rem;border-left:3px solid var(--rouge)}
.atouts strong{display:block;font:600 1.3rem var(--titre);letter-spacing:.05em;text-transform:uppercase}
.atouts span{color:var(--gris);display:block}
.chips{list-style:none;margin:1.4rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}
.chips a{display:inline-block;padding:.45rem 1.05rem;border:1.5px solid var(--ligne);border-radius:999px;color:var(--encre);text-decoration:none;background:#fff;font-weight:500}
.chips a:hover{border-color:var(--rouge-fort);color:var(--rouge-fort)}
.tint .chips a{background:#fff}

/* Grilles et cartes */
.grid{display:grid;gap:clamp(1rem,2.4vw,1.8rem)}
.cols-3{grid-template-columns:repeat(3,1fr)}
@media (max-width:980px){.cols-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.cols-3{grid-template-columns:1fr}}
.card{display:block;text-decoration:none;color:inherit}
.card .ph{aspect-ratio:4/5;overflow:hidden;background:var(--beige-2);border-radius:var(--r)}
.card .ph picture,.card .ph img{width:100%;height:100%;object-fit:cover}
.card .ph img{transition:transform .6s ease}
.card:hover .ph img{transform:scale(1.035)}
.service-card .ph{aspect-ratio:3/2}
.ph.tex,.figure.tex{position:relative}
.card .ph img.tex-logo,.figure img.tex-logo{position:absolute;inset:0;margin:auto;width:34%;height:auto;object-fit:contain;border-radius:0}
.figure.tex picture{aspect-ratio:4/3}.figure.tex picture img:not(.tex-logo){height:100%;object-fit:cover}
.card .cap{padding:.9rem .1rem 0}
.card h3{margin:0 0 .15em;font-size:1.45rem}
.card p{margin:0;color:var(--gris);font-size:1rem;line-height:1.5}
.card .more{display:inline-flex;gap:.4rem;align-items:center;margin-top:.5rem;color:var(--rouge-fort);font:600 1rem var(--titre);letter-spacing:.09em;text-transform:uppercase}
.quote{margin:0;padding:1.6rem;background:#fff;border-radius:var(--r)}
.quote blockquote{margin:0 0 1rem;font-size:1.1rem;font-style:italic}
.quote figcaption{font:600 1.1rem var(--titre);letter-spacing:.06em;text-transform:uppercase}
.quote figcaption span{display:block;font:400 .95rem var(--texte);text-transform:none;letter-spacing:0;color:var(--gris)}

/* Bandeau d'appel à l'action */
.cta-band{background:var(--beige);border-top:1px solid var(--ligne)}
.cta-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding-top:clamp(2.2rem,5vw,3.4rem);padding-bottom:clamp(2.2rem,5vw,3.4rem);flex-wrap:wrap}
.cta-band h2{margin-bottom:.3em}
.cta-band p{margin:0;max-width:52ch;color:#3d3230}
.cta-band .actions{margin:0}

/* Pages intérieures */
.page-head{padding:clamp(2rem,5vw,3.6rem) 0 clamp(1rem,3vw,2rem);background:linear-gradient(var(--beige),#fff)}
.page-head h1{max-width:20ch}
.page-head .lead{margin-bottom:0}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.2rem .6rem;margin:0 0 1.2rem;padding:0;font-size:.92rem;color:var(--gris)}
.crumbs li+li::before{content:"/";margin-right:.6rem;color:var(--ligne)}
.crumbs a{color:var(--gris)}
.prose{max-width:68ch}
.prose h2{font-size:1.9rem;margin-top:1.6em}
.prose h2:first-child,.prose h3:first-child{margin-top:0}
.prose h3{font-size:1.35rem;margin-top:1.4em}
.prose ul,.prose ol{padding-left:1.25rem;margin:0 0 1.2em}
.prose li{margin-bottom:.4em}
.prose li::marker{color:var(--rouge)}
.prose blockquote{margin:1.2em 0;padding-left:1.1rem;border-left:3px solid var(--rouge);color:var(--gris)}
.legal-prose{max-width:none}
.legal-prose h2{font-size:1.5rem}
.figure{margin:0}
.figure picture,.figure img{width:100%;border-radius:var(--r)}
.wide-fig img{aspect-ratio:16/8;object-fit:cover}
.panel{background:var(--beige);padding:1.6rem;border-radius:var(--r)}
.plain{list-style:none;margin:0;padding:0}
.plain li{padding:.35rem 0}
.levels{display:grid;gap:1rem}
.level{background:#fff;padding:1.4rem 1.5rem;border-radius:var(--r);border-left:4px solid var(--rouge)}
.level h3{margin-bottom:.3em}.level p{margin:0;color:#3d3230}
.zone-list{list-style:none;padding:0;margin:2rem 0 0;display:grid;gap:.4rem}
.zone-list a{display:grid;gap:.15rem;padding:1rem 1.2rem;border:1px solid var(--ligne);border-radius:var(--r);text-decoration:none;color:var(--encre)}
.zone-list a:hover{border-color:var(--rouge-fort);background:var(--beige)}
.zone-list strong{font:600 1.35rem var(--titre);letter-spacing:.05em;text-transform:uppercase}
.zone-list span{color:var(--gris);font-size:.98rem}
.filters{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 2rem;padding:0}
.filters a{display:inline-block;padding:.4rem 1rem;border:1.5px solid var(--ligne);border-radius:999px;color:var(--encre);text-decoration:none;font-weight:500}
.filters a[aria-current]{background:var(--encre);border-color:var(--encre);color:#fff}
.facts{margin:0;display:grid;gap:.9rem;padding:1.4rem 1.5rem;background:var(--beige);border-radius:var(--r);font-size:1rem}
.facts dt{font:600 .95rem var(--titre);letter-spacing:.12em;text-transform:uppercase;color:var(--rouge-fort)}
.facts dd{margin:0}
.gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(.6rem,1.6vw,1.2rem)}
.gallery figure{margin:0}
.gallery .wide{grid-column:span 4}.gallery .tall{grid-column:span 2}
.gallery figure:first-child.wide{grid-column:span 6}
.gallery a{display:block;overflow:hidden;border-radius:var(--r);cursor:zoom-in;background:var(--beige-2)}
.gallery img{width:100%;height:auto}
.gallery figcaption{font-size:.92rem;color:var(--gris);padding:.4rem .1rem 0}
.gallery figcaption b{color:var(--rouge-fort);font-weight:600;text-transform:uppercase;font-size:.85rem;letter-spacing:.08em}
/* Une seule photo : affichée en grand (pleine largeur en paysage, 2/3 de la largeur en portrait) */
.gallery.single figure.wide{grid-column:1/-1}
.gallery.single figure.tall{grid-column:2/6}
/* Comparateur avant / après */
.ba{--pos:50%;margin:0 auto;width:min(100%,calc(78vh * var(--ba-w,.75)));max-width:100%}
.ba-frame{position:relative;aspect-ratio:var(--ratio,3 / 4);overflow:hidden;border-radius:var(--r);background:var(--beige-2);user-select:none;-webkit-user-select:none}
.ba-layer{position:absolute;inset:0}
.ba-layer picture,.ba-layer img{width:100%;height:100%;object-fit:cover;display:block}
.ba-tag{position:absolute;top:.8rem;padding:.2rem .7rem;background:rgba(42,34,32,.6);color:#fff;font:600 .95rem var(--titre);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;pointer-events:none;z-index:2}
.ba-tag-l{left:.8rem}.ba-tag-r{right:.8rem}
.ba-range,.ba-handle{display:none}
/* amélioration JS : les deux photos se superposent */
.ba.ba-js .ba-before{clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.ba.ba-js .ba-range{display:block;position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y;z-index:3;-webkit-appearance:none;appearance:none}
.ba.ba-js .ba-handle{display:block;position:absolute;top:0;bottom:0;left:var(--pos);width:3px;margin-left:-1.5px;background:#fff;box-shadow:0 0 8px rgba(0,0,0,.35);z-index:2;pointer-events:none}
.ba-handle span{position:absolute;top:50%;left:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.35)}
.ba-handle span::before,.ba-handle span::after{content:"";position:absolute;top:50%;width:0;height:0;border:7px solid transparent;margin-top:-7px}
.ba-handle span::before{left:6px;border-right-color:var(--rouge-fort);border-left:0}
.ba-handle span::after{right:6px;border-left-color:var(--rouge-fort);border-right:0}
.ba-range:focus-visible~.ba-handle span{outline:3px solid var(--rouge-fort);outline-offset:3px}
/* sans JS : photos côte à côte */
.ba:not(.ba-js) .ba-frame{aspect-ratio:auto;display:grid;grid-template-columns:1fr 1fr;gap:.5rem;background:none;overflow:visible}
.ba:not(.ba-js) .ba-layer{position:relative;aspect-ratio:var(--ratio);order:1}.ba:not(.ba-js) .ba-before{order:0}
.ba:not(.ba-js) .ba-tag{display:none}
@media (max-width:700px){.gallery.single figure.tall,.gallery.single figure.wide{grid-column:1/-1}}
@media (max-width:700px){.gallery{grid-template-columns:repeat(2,1fr)}.gallery .wide{grid-column:span 2}.gallery .tall{grid-column:span 1}.gallery figure:first-child.wide{grid-column:span 2}}
.pager{display:flex;justify-content:space-between;gap:1rem;padding:2rem var(--gut);font:600 1.1rem var(--titre);letter-spacing:.07em;text-transform:uppercase}
.pager a{text-decoration:none}
.faq details{border-bottom:1px solid var(--ligne)}
.faq summary{cursor:pointer;padding:1.1rem 2rem 1.1rem 0;font:600 1.3rem var(--titre);letter-spacing:.04em;text-transform:uppercase;list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:.2rem;top:.9rem;font-size:1.6rem;color:var(--rouge-fort);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details .prose{padding-bottom:1.2rem}
.sitemap-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:2rem}
.optout{margin-top:2rem;padding:1.4rem;background:var(--beige);border-radius:var(--r)}

/* Formulaire */
.contact-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(1.8rem,4vw,3.5rem);align-items:start}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
.form{scroll-margin-top:100px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:0 1.2rem}
@media (max-width:620px){.form .row{grid-template-columns:1fr}}
.field{margin-bottom:1.1rem}
.field label{display:block;font-weight:600;font-size:.98rem}
.field input:not([type=checkbox]):not([type=file]),.field select,.field textarea{display:block;width:100%;margin-top:.35rem;padding:.8rem .9rem;font:400 1.05rem var(--texte);color:var(--encre);background:#fff;border:1.5px solid #cdb9ac;border-radius:var(--r)}
.field textarea{resize:vertical;min-height:150px}
.field input[type=file]{display:block;margin-top:.4rem;font:400 .98rem var(--texte);max-width:100%}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(184,67,58,.35);border-color:var(--rouge-fort)}
.field small{display:block;margin-top:.3rem;color:var(--gris);font-size:.9rem}
.field .err{color:#a1261c;font-weight:600}
.has-error input,.has-error select,.has-error textarea{border-color:#a1261c!important}
.check{display:flex!important;gap:.7rem;align-items:flex-start;font-weight:400!important;font-size:.96rem!important}
.check input{width:1.2rem;height:1.2rem;margin-top:.25rem;accent-color:var(--rouge-fort);flex:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.notice{padding:1rem 1.2rem;border-radius:var(--r);margin-bottom:1.4rem}
.notice.error{background:#fdecea;border:1px solid #e4aaa4;color:#7d1d15}
.contact-list{display:grid;gap:.5rem}
.contact-list a,.contact-list .addr{display:flex;gap:.6rem;align-items:flex-start;color:var(--encre);text-decoration:none;font-weight:500}
.contact-list a:hover span{text-decoration:underline}
.contact-card hr{border:0;border-top:1px solid var(--ligne);margin:1.2rem 0}

/* Pied de page */
.site-footer{background:var(--beige);border-top:1px solid var(--ligne);padding-top:clamp(2.5rem,5vw,4rem);font-size:1rem}
.site-footer .grid{grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
@media (max-width:980px){.site-footer .grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.site-footer .grid{grid-template-columns:1fr}}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{padding:.15rem 0}
.site-footer a{color:var(--encre);text-decoration:none}
.site-footer a:hover{color:var(--rouge-fort);text-decoration:underline}
.f-title{font-size:1.2rem;color:var(--rouge-fort);margin-bottom:.7em}
.f-brand img{width:150px;height:auto;margin-bottom:1rem}
.f-brand p{margin-bottom:.8rem}
.social{display:flex;gap:1rem}.social .i{width:1.6rem;height:1.6rem}
.site-footer .legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem 2rem;margin-top:2.4rem;padding-top:1.2rem;padding-bottom:1.6rem;border-top:1px solid var(--ligne);font-size:.92rem;color:var(--gris)}
.site-footer .legal p{margin:0}
.site-footer .legal ul{display:flex;flex-wrap:wrap;gap:.2rem 1.4rem}
.site-footer .legal a{color:var(--gris)}

/* Visionneuse */
dialog.lightbox{border:0;padding:0;background:transparent;max-width:100vw;max-height:100vh;width:100vw;height:100vh}
dialog.lightbox::backdrop{background:rgba(26,19,17,.92)}
.lb{position:relative;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem 1rem}
.lb img{max-width:min(96vw,1500px);max-height:80vh;object-fit:contain;border-radius:2px}
.lb p{color:#fff;margin:.8rem 0 0;text-align:center;max-width:70ch}
.lb button{position:absolute;background:rgba(255,255,255,.14);color:#fff;border:0;width:48px;height:48px;border-radius:50%;font-size:1.6rem;cursor:pointer;line-height:1}
.lb button:hover{background:rgba(255,255,255,.3)}
.lb .x{top:.8rem;right:.8rem}.lb .p{left:.8rem;top:50%}.lb .n{right:.8rem;top:50%}

@media print{.site-header,.float-cta,.cta-band,.site-footer .grid{display:none}}

/* Prestation illustrée par plusieurs photos */
.card .ph.duo{display:grid;grid-template-columns:1fr 1fr;gap:3px}
.card .ph.duo picture,.card .ph.duo img{height:100%}
.duo-fig{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.duo-fig picture,.duo-fig img{border-radius:var(--r);width:100%;height:100%;object-fit:cover;aspect-ratio:3/4}

/* Comparateur dans une carte (accueil) et dans l'en-tête d'une prestation */
.card.has-ba .ba{width:100%}
.card.has-ba .ba-frame{aspect-ratio:3 / 2}
.card.has-ba .ba-layer img{object-position:50% 45%}
.card.has-ba .ba-tag{top:.5rem;font-size:.8rem;padding:.1rem .55rem}
.card.has-ba .ba-handle span{width:36px;height:36px;margin:-18px 0 0 -18px}
.card.has-ba .cap{display:block;color:inherit;text-decoration:none;padding:.9rem .1rem 0}
.card.has-ba:hover .arrow{transform:translateX(4px)}
.ba-fig{width:100%}

/* Avis Google */
.stars{display:inline-block;font-size:1.25rem;letter-spacing:.12em;line-height:1;background:linear-gradient(90deg,#e8a317 var(--p,100%),#c4ae9f var(--p,100%));-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.reviews-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.6rem 2rem;margin-bottom:1.6rem}
.reviews-head h2{margin:0}
.rating-sum{display:flex;align-items:center;gap:.7rem;margin:0}
.rating-sum strong{font:600 2.4rem var(--titre);line-height:1}
.rating-sum .stars{font-size:1.5rem}
.rating-sum span:last-child{color:var(--gris)}
.quote.review{display:flex;flex-direction:column;gap:.7rem}
.quote.review blockquote{margin:0;font-style:normal;font-size:1.02rem;flex:1}
.quote.review figcaption{font:600 1.05rem var(--titre)}

.review-photos{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
.review-photos a{display:block;aspect-ratio:1;border-radius:var(--r);overflow:hidden;cursor:zoom-in}
.review-photos a:only-child{grid-column:1/-1;aspect-ratio:4/3}
.review-photos picture,.review-photos img{width:100%;height:100%;object-fit:cover}
/* Lien « Voir tous les avis » : centré en hauteur entre la dernière carte et le bas du bloc */
.reviews{padding-bottom:0}
.reviews .wrap>p.center{margin:0;padding:clamp(1.8rem,4vw,2.8rem) 0}
.reviews .wrap>.rev-carousel:last-child{margin-bottom:clamp(3rem,7vw,5.5rem)}

/* Carrousel des avis : 3 avis visibles (2 sur tablette, 1 sur mobile), boucle infinie */
.rev-carousel{--pv:1;--gap:1.2rem}
@media (min-width:640px){.rev-carousel{--pv:2}}
@media (min-width:1000px){.rev-carousel{--pv:3}}
.rev-viewport{overflow:hidden;margin:0 calc(var(--gap) / -2)}
.rev-track{display:flex;flex-wrap:wrap}
.rev-slide{flex:0 0 calc(100% / var(--pv));padding:0 calc(var(--gap) / 2);margin-bottom:var(--gap);display:flex}
.rev-slide .quote{width:100%}
.rev-js .rev-track{flex-wrap:nowrap;transition:transform .7s ease;will-change:transform}
.rev-js .rev-slide{margin-bottom:0}
.rev-js .rev-viewport{padding-bottom:0}
.rev-ui{display:flex;justify-content:center;align-items:center;gap:.7rem;margin-top:1.4rem}
.rev-ui[hidden]{display:none}
.rev-ui button{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--rouge-fort);background:#fff;color:var(--rouge-fort);font-size:1.3rem;line-height:1;cursor:pointer}
.rev-ui button:hover{background:var(--rouge-fort);color:#fff}
.rev-ui [data-rev=toggle]{font-size:.7rem;letter-spacing:-.1em}
@media (prefers-reduced-motion:reduce){.rev-js .rev-track{transition:none}}

.btn-insta{padding:.5rem 1.1rem;font-size:1rem;letter-spacing:.05em;text-transform:none;font-family:var(--texte);font-weight:600}
.btn-insta .i{width:1.3em;height:1.3em}
.social{margin-bottom:0}
.review-photos a:first-child:nth-last-child(3){grid-column:1/-1;aspect-ratio:4/3}

/* Réalisations (accueil) : titre sur la photo, dans un bandeau translucide */
.card.overlay .ph{position:relative}
.card.overlay .ph-cap{position:absolute;left:0;right:0;bottom:0;padding:.85rem 1rem .9rem;background:rgba(42,34,32,.68);color:#fff;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.card.overlay .ph-cap h3{margin:0;color:#fff;font-size:1.35rem}
.card.overlay .ph-cap p{margin:.1rem 0 0;color:rgba(255,255,255,.88);font-size:.95rem}
.card.overlay:hover .ph-cap{background:rgba(42,34,32,.8)}

/* Visionneuse : la photo occupe tout l'écran disponible (agrandie si la source est petite) */
.lb{padding:3.2rem .6rem .6rem}
.lb img{width:min(98vw,1600px);height:calc(100vh - 4.4rem);max-width:none;max-height:none;object-fit:contain}
.lb p:empty{display:none}
/* Bouton Instagram : icône et texte blancs au survol, centrés verticalement */
.btn-insta{line-height:1;align-items:center;gap:.55rem}
.btn-insta .i{display:block;flex:none;width:1.25em;height:1.25em}
.btn-insta span{display:block;line-height:1;padding-top:.06em}
.btn-insta:hover,.btn-insta:focus-visible,.site-footer a.btn-insta:hover,.site-footer a.btn-insta:focus-visible{color:#fff;text-decoration:none}
.site-footer a.btn-insta{color:var(--rouge-fort)}
/* Vidéos (lecture en boucle) : mêmes cadrages que les photos */
.hero-media video,.card .ph video,.ba-layer video,.review-photos video{width:100%;height:100%;object-fit:cover}
.carousel .slide video{object-position:50% var(--fy,50%)}
.figure video{width:100%;border-radius:var(--r)}
.wide-fig video{aspect-ratio:16/8;object-fit:cover}
.gallery video{width:100%;height:auto}
.card .ph.duo video{height:100%}
.duo-fig video{border-radius:var(--r);width:100%;height:100%;object-fit:cover;aspect-ratio:3/4}
.card.has-ba .ba-layer video{object-position:50% 45%}
.lb video{width:min(98vw,1600px);height:calc(100vh - 4.4rem);object-fit:contain;background:#000}
.lb [hidden]{display:none}
