/* Habillage Contemporain : mêmes contenus, réglages, cadrages et interactions.
   Le serveur et l’aperçu utilisent cette même feuille. */
.contemporain{
 --papier:#f7f6ef;--papier-2:#eeeee4;--brume:#dce2d3;--encre:#253a2f;
 --vert-fonce:var(--vert);--f-display:'Libre Franklin',Arial,sans-serif;
 background:var(--papier);font-size:15px;line-height:1.7;
}
.contemporain *{min-width:0}
.contemporain [hidden]{display:none!important}
.contemporain h1,.contemporain h2,.contemporain h3{font-family:var(--f-display);text-wrap:balance;overflow-wrap:anywhere}
.contemporain p,.contemporain li{overflow-wrap:anywhere}
.contemporain .wrap{width:100%;max-width:1400px;padding-left:24px;padding-right:24px}
.contemporain section{padding:56px 0;scroll-margin-top:90px}
.contemporain header.site{background:var(--papier);backdrop-filter:none;border-color:#d9dfd2}
.contemporain .nav{max-width:1480px;padding:17px 22px;gap:18px}
.contemporain .logo{font-family:var(--f-display);font-size:17px;letter-spacing:-.6px;font-weight:700;gap:9px;white-space:normal;overflow:visible;line-height:1.15}
.contemporain .logo span{color:inherit}
.contemporain .logo-img{max-width:80px;height:38px;flex-shrink:0}
.contemporain .nav-actions{margin-left:auto;flex-shrink:0}
.contemporain .burger{width:44px;height:44px;display:grid;place-items:center;border:1px solid #cdd7c6;border-radius:3px;flex-shrink:0}
.contemporain .nav-tel{display:none;border-radius:3px;box-shadow:none}
.contemporain .nav-links{display:none;position:absolute;top:100%;left:0;right:0;max-height:calc(100dvh - 160px);overflow-y:auto;background:var(--papier);border-bottom:1px solid #cdd7c6;padding:8px 24px 20px;gap:0;align-items:stretch;flex-direction:column}
.contemporain .nav-links.open{display:flex}
.contemporain .nav-links li+li{border-top:1px solid #e1e6dc}
.contemporain .nav-links a{display:block;padding:13px 0;font-size:15px;font-weight:500}
.contemporain .btn{border-radius:3px;min-height:48px;font-size:14px;font-weight:600;padding:13px 18px;box-shadow:none;line-height:1.45;text-align:center}
.contemporain .btn:hover{transform:none;filter:brightness(.96)}
.contemporain .btn-miel{background:var(--bouton);color:white}
.contemporain .btn-ligne{border-width:1px}
.contemporain .hero,.contemporain .hero.avec-photo{padding:0;background:var(--vert);color:var(--papier);overflow:hidden}
.contemporain .hero-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding:0;align-items:center;max-width:1480px}
.contemporain .hero-grid>div:first-child{padding:36px 24px 30px}
.contemporain .eyebrow{display:block;letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-weight:600;margin-bottom:16px;line-height:1.6}
.contemporain .hero .eyebrow{color:#d8e4c9}
.contemporain .hero h1{font-size:clamp(29px,8vw,45px);font-weight:500;letter-spacing:-1.4px;line-height:1.14;color:#fffdf4;margin:0 0 20px}
.contemporain .hero p.sous{font-size:15px;line-height:1.75;max-width:48ch;color:#e1e8da;margin:0 0 24px}
.contemporain .hero-cta{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:0}
.contemporain .hero-cta .btn-miel{background:var(--bouton);color:#fff}
.contemporain .hero-cta .btn-ligne{color:#f8faf5;border-color:#95a88b}
.contemporain .note-google{margin-top:22px;background:#fff;color:#253a2f;border-color:#d5decf;font-size:12px;line-height:1.6}
.contemporain .note-google .etoiles{color:#8a650f}
.contemporain .hero.avec-photo .hero-visuel,.contemporain .hero-visuel{order:initial;align-self:center;padding:0 24px 24px}
.contemporain .cadre-photo{max-width:none;margin:0}
.contemporain .cadre-photo::before,.contemporain .cadre-photo::after{content:none}
/* Même rapport de cadre et mêmes positions / zooms que le site actuel. */
.contemporain .cadre-photo>.photo-fenetre{aspect-ratio:1/1;border-radius:2px;box-shadow:none}
.contemporain .cadre-photo img{border-radius:0;box-shadow:none}
.contemporain .hero-visuel svg{max-height:300px}
.contemporain .hero:not(.avec-photo) .hero-visuel{display:none}
.contemporain .hero:not(.avec-photo) .hero-grid{grid-template-columns:minmax(0,1fr)}
.contemporain .hero:not(.avec-photo) .hero-grid>div:first-child{max-width:960px}
.contemporain .zone-flex .photo-slot{display:none}
.contemporain .bandeau-sap{background:#e9ecd9;color:#334331;padding:19px 0;border:0}
.contemporain .bandeau-sap .wrap{display:flex;align-items:flex-start;gap:16px;font-size:12px;line-height:1.7}
.contemporain .badge-ci{font:500 25px/1.2 var(--f-display);border:0;background:transparent;color:var(--vert);padding:0;flex-shrink:0;margin-top:2px}
.contemporain .bandeau-sap strong{color:inherit}
.contemporain .titre-section{font-size:clamp(27px,7vw,42px);font-weight:500;letter-spacing:-1px;line-height:1.22;max-width:850px;margin-bottom:18px}
.contemporain .intro-section{max-width:720px;font-size:15px;line-height:1.8;color:#536451;margin-bottom:28px}
.contemporain .services-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0;counter-reset:service}
.contemporain .service{position:relative;padding:23px 0 23px 35px;background:transparent;border:0;border-top:1px solid #cfd8c6;border-radius:0;box-shadow:none;counter-increment:service}
.contemporain .service:not(.service-annuel)::before{content:counter(service,decimal-leading-zero);position:absolute;left:0;top:27px;font-size:10px;color:#728365;letter-spacing:.05em}
.contemporain .service h3{font-size:21px;font-weight:500;letter-spacing:-.55px;line-height:1.35;margin-bottom:10px;color:var(--vert)}
.contemporain .service p{font-size:14px;line-height:1.75;color:#536451}
.contemporain .service-annuel{grid-column:1/-1;display:flex;align-items:stretch;flex-direction:column;gap:20px;background:#e9ecd9;margin-top:16px;padding:24px;border:0}
.contemporain .service-annuel .btn{flex-shrink:0;align-self:flex-start}
.contemporain .realisations{background:#e9eee3}
.contemporain .ba{border-radius:2px;box-shadow:none;aspect-ratio:16/10}
.contemporain .ba-badge{border-radius:2px;font-size:10px;font-weight:500;padding:5px 9px;background:#22392ee8}
.contemporain .ba-navigation{margin-top:14px;gap:18px}
.contemporain .ba-navigation button{border-radius:50%;background:transparent;border-color:#b8c7ab;box-shadow:none;min-width:44px;min-height:44px}
.contemporain .realis-recentes{gap:26px;margin:30px 0}
.contemporain .realis-recente{background:transparent;border:0;border-radius:0;box-shadow:none}
.contemporain .realis-recente img{border-radius:2px;aspect-ratio:4/3}
.contemporain .realis-recente .realis-recentes-texte{padding:17px 0 0}
.contemporain .realis-recente h3{font:500 22px/1.3 var(--f-display);letter-spacing:-.7px;margin-bottom:9px}
.contemporain .realis-recente p{font-size:13px;color:#536451}
.contemporain .realis-recente span{font-weight:500;border-bottom:1px solid #98aa8b;padding-bottom:4px}
.contemporain .galerie{gap:14px}.contemporain .galerie img{border-radius:2px;box-shadow:none}
.contemporain .ci{background:var(--vert);color:#f7f6ef}
.contemporain .ci .titre-section{color:#f7f6ef}
.contemporain .ci .intro-section{color:#e1e7d9}
.contemporain .ci .eyebrow{color:#dce8bd!important}
.contemporain .ci-grid{grid-template-columns:minmax(0,1fr);gap:26px}
.contemporain .ci-points{padding:0;gap:22px}
.contemporain .ci-points li{gap:15px;font-size:14px;line-height:1.8}
.contemporain .ci-points .puce{border-radius:50%;background:transparent;border:1px solid #8fa681;color:#e1eccb;width:31px;height:31px;flex-shrink:0;font-size:12px}
.contemporain .calc{padding:25px 20px;background:#f7f6ef;color:#253a2f;border:0;border-radius:3px;box-shadow:none}
.contemporain .calc h3{font-size:22px;font-weight:500}
.contemporain .calc-montants{gap:10px}
.contemporain .calc .bloc{background:#e8eddf;border-radius:2px;padding:14px 8px;min-width:0}
.contemporain .calc .valeur{font:500 29px/1.2 var(--f-display)}
.contemporain .calc-montants .bloc.final .valeur{font-size:29px}
.contemporain .calc input[type=range]{min-height:44px}
.contemporain .calc .final{background:#dce8bd;color:var(--vert)}
.contemporain .calc-cta .btn{width:100%}
.contemporain .zone-flex{display:grid;grid-template-columns:minmax(0,1fr);gap:28px}
.contemporain .zone-texte{width:100%;min-width:0}
.contemporain .carte-zone{width:100%;min-width:0;min-height:260px;height:280px}
.contemporain .zone-flex>.photo-reelle{min-width:0!important;flex:1 1 280px}
.contemporain .communes{gap:8px;margin:24px 0}
.contemporain .communes li{border-radius:3px;border:1px solid #cbd5c1;background:transparent;font-size:12px;padding:8px 11px}
.contemporain .communes .principale{background:#e5ead9;color:#2d482e}
.contemporain .carte-zone,.contemporain .photo-reelle{border-radius:3px;box-shadow:none}
.contemporain .avis{background:#eeeee4}
.contemporain .avis-grid{grid-auto-columns:100%;gap:22px;padding:0 0 16px;scrollbar-width:thin}
.contemporain .avis-card{background:transparent;border:0;border-top:1px solid #b9c8a9;border-radius:0;box-shadow:none;padding:22px 0}
.contemporain .avis-card blockquote{font-size:19px;line-height:1.7;font-weight:400;margin:18px 0 20px;color:#263e2e}
.contemporain .avis-card cite{font-size:12px;font-weight:500}
.contemporain .avis-card .etoiles{color:#687d39;letter-spacing:3px;font-size:12px}
.contemporain .avis-navigation button{min-width:44px;min-height:44px}
.contemporain .reseau{background:var(--papier);padding:0 0 56px}
.contemporain .reseau>.wrap{padding:0}
.contemporain .reseau-carte{grid-template-columns:minmax(0,1fr);gap:28px;padding:34px 24px;background:var(--vert);color:#f7f6ef;border:0;border-radius:0;box-shadow:none}
.contemporain .reseau-carte{max-width:none}
.contemporain .reseau-carte h2{font-size:29px;font-weight:500;letter-spacing:-1px;color:#f7f6ef;line-height:1.25}
.contemporain .reseau-carte p{font-size:14px;line-height:1.8;color:#e1e7d9}
.contemporain .reseau-signature{border-top:1px solid #6f8966;padding-top:22px;margin-top:24px}
.contemporain .reseau-signature a{color:#e1eccb}
.contemporain .photo-reseau{border-radius:2px;aspect-ratio:16/10}
.contemporain .reseau-points li{font-size:13px;color:#e1e7d9;line-height:1.7}
.contemporain .reseau-points .coche{background:#dce8bd;color:var(--vert);flex-shrink:0}
.contemporain #devis{padding-top:0}
.contemporain .contact-grid{grid-template-columns:minmax(0,1fr);gap:24px}
.contemporain .carte-contact{border-radius:3px;box-shadow:none;min-height:340px;background:var(--vert)}
.contemporain .carte-contact:not(:has(.photo-portrait)){min-height:0}
.contemporain .carte-contact .ligne a{font-size:16px}
.contemporain .carte-contact .dedans{padding:24px}
.contemporain form.devis{padding:25px 20px;background:#fffef9;border:1px solid #d6decc;border-radius:3px;gap:20px;box-shadow:none}
.contemporain form.devis label{font-size:12px;font-weight:500}
.contemporain form.devis .deux-col{grid-template-columns:minmax(0,1fr)}
.contemporain form.devis input,.contemporain form.devis select,.contemporain form.devis textarea{font-size:16px;border-radius:3px;border:1px solid #c7d1bd;background-color:#f7f8f1;min-height:48px}
.contemporain .faq-liste{max-width:960px;gap:0}
.contemporain .faq-liste details{background:transparent;border:0;border-top:1px solid #c9d2c0;border-radius:0}
.contemporain .faq-liste summary{padding:22px 0;font-size:15px;font-weight:500;line-height:1.6}
.contemporain .faq-liste details p{padding:0 0 24px;font-size:14px;line-height:1.8}
.contemporain .faq-liste summary::after{color:var(--vert)}
.contemporain footer.site{padding:32px 0 100px;font-size:12px}
.contemporain footer.site .wrap{gap:18px;line-height:1.8}
.contemporain .footer-reseau{font-size:11px}
.contemporain .footer-facto{font-size:12px}
.contemporain .ml-boite{border-radius:4px;padding:30px 20px;line-height:1.7}
.contemporain .appel-flottant{display:none}
.mobile-contact{display:none}
.contemporain .mobile-contact{position:fixed;bottom:0;left:0;right:0;z-index:90;padding:10px 16px max(10px,env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1.4fr;gap:10px;background:#f7f6eff5;backdrop-filter:blur(10px);border-top:1px solid #d4ddc9}
.contemporain .mobile-contact a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border:1px solid #c9d6bd;border-radius:3px;font-size:13px;font-weight:600;text-decoration:none;color:var(--vert);line-height:1.3;text-align:center}
.contemporain .mobile-contact a:last-child{background:var(--vert);color:white;border-color:var(--vert)}
.contemporain .bandeau-mesure{bottom:10px;z-index:2147483000;border-radius:4px}
.contemporain .ch-page{padding-top:36px}
.contemporain .ch-carte{border-radius:3px;box-shadow:none}
.contemporain .ch-f{border-radius:3px;min-height:44px}
.contemporain .ch-cta{border-radius:3px;background:#e9ecd9}
.contemporain .lecture{max-width:760px}
.contemporain .lecture .intro{font-size:18px;line-height:1.7}
.contemporain .lecture .couverture,.contemporain .photo-article img{border-radius:2px}
.contemporain .lecture .prose{font-size:17px;line-height:1.85}
.contemporain .lecture .prose h2{font-size:26px;font-weight:500}
.contemporain .suite{border-radius:3px;background:#e9ecd9}
@media(min-width:650px){
 .contemporain .wrap{padding-left:40px;padding-right:40px}
 .contemporain section{padding:75px 0}
 .contemporain .hero-grid>div:first-child{padding:50px 40px}
 .contemporain .hero .hero-visuel{padding:0 40px 40px}
 .contemporain .hero-cta{display:flex;flex-wrap:wrap}
 .contemporain .services-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:44px}
 .contemporain .avis-grid{grid-auto-columns:calc((100% - 22px)/2)}
 .contemporain .reseau-carte{padding:40px}
 .contemporain form.devis .deux-col{grid-template-columns:1fr 1fr}
}
@media(min-width:960px){
 .contemporain{padding-bottom:0}
 .contemporain .wrap{padding-left:60px;padding-right:60px}
 .contemporain .hero-grid{grid-template-columns:1fr 1fr;padding:0 30px;gap:0}
 .contemporain .hero-grid>div:first-child{padding:64px 40px 64px 30px}
 .contemporain .hero h1{font-size:clamp(38px,3.8vw,62px)}
 .contemporain .hero .hero-visuel{padding:34px 30px 34px 20px}
 .contemporain .titre-section{font-size:42px;letter-spacing:-1.6px}
 .contemporain section{padding:88px 0}
 .contemporain .bandeau-sap .wrap{font-size:14px;align-items:center;gap:26px}
 .contemporain .bandeau-sap .badge-ci{font-size:31px}
 .contemporain .service-annuel{flex-direction:row;align-items:center;gap:36px;padding:28px}
 .contemporain .service-annuel .btn{align-self:center}
 .contemporain .ci-grid{grid-template-columns:1.1fr 1fr;gap:64px;align-items:center}
 .contemporain .zone-flex{gap:54px}
 .contemporain .zone-flex:has(>.carte-zone,>.photo-reelle){grid-template-columns:repeat(2,minmax(0,1fr))}
 .contemporain .carte-zone{height:100%;min-height:340px;align-self:stretch}
 .contemporain .avis-grid{grid-auto-columns:calc((100% - 64px)/3);gap:32px}
 .contemporain .reseau{padding:0 30px 88px}
 .contemporain .reseau>.wrap{max-width:1420px}
 .contemporain .reseau-carte{grid-template-columns:1fr 1fr;align-items:center;padding:56px;gap:64px;border-radius:3px}
 .contemporain .reseau-carte h2{font-size:36px}
 .contemporain .contact-grid{grid-template-columns:.9fr 1.1fr;gap:44px;align-items:stretch}
 .contemporain form.devis{padding:30px}
 .contemporain .carte-contact{min-height:430px}
 .contemporain .mobile-contact{display:none}
 .contemporain .nav-tel{display:block}
 .contemporain footer.site{padding-bottom:40px}
}
@media(min-width:1280px){
 .contemporain .nav{padding:24px 40px}
 .contemporain .burger{display:none}
 .contemporain .nav-links{display:flex;position:static;background:transparent;padding:0;border:0;flex-direction:row;gap:21px;max-height:none;overflow:visible}
 .contemporain .nav-links li+li{border:0}
 .contemporain .nav-links a{padding:8px 0;font-size:12px;white-space:nowrap}
 .contemporain .nav-actions{margin-left:0}
}
@media(prefers-reduced-motion:reduce){.contemporain *{scroll-behavior:auto!important;transition:none!important}}

/* Cartes et lecture des articles : le même style sur toutes les pages. */
.contemporain .article-carte{border-radius:3px;box-shadow:none}
.contemporain .article-carte h2,.contemporain .article-carte h3{font-weight:500;letter-spacing:-.4px}
.contemporain .articles-titre .titre-section{font-weight:500}
.contemporain .articles-contenu .lecture h1{font-weight:500;letter-spacing:-1px}
.contemporain .articles-contenu .suite,.contemporain .articles-contenu .bouton{border-radius:3px}
.contemporain .article-devis-mobile{display:none}
.contemporain .mobile-contact svg{width:17px;height:17px;flex-shrink:0}
/* Les éléments fixes restent à l’intérieur de l’aperçu de l’éditeur. */
#site.contemporain .mobile-contact{position:sticky;bottom:0}
#site.contemporain .nav{position:relative}
#site.contemporain .hero h1{font-size:clamp(29px,8cqw,45px)}
#site.contemporain .titre-section{font-size:clamp(27px,7cqw,42px)}
@media(min-width:960px){#site.contemporain .hero h1{font-size:clamp(38px,3.8cqw,62px)}}
