/* Polices locales issues de la typographie validée : aucun appel à Google Fonts. */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: normal;
  font-display: swap;
  src: url(../fonts/ibm-plex-sans-400.woff2) format('woff2'), url(../fonts/ibm-plex-sans-400.ttf) format('truetype');
}

@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: normal;
  font-display: swap;
  src: url(../fonts/ibm-plex-sans-500.woff2) format('woff2'), url(../fonts/ibm-plex-sans-500.ttf) format('truetype');
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/poppins-500.woff2) format('woff2'), url(../fonts/poppins-500.ttf) format('truetype');
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/poppins-600.woff2) format('woff2'), url(../fonts/poppins-600.ttf) format('truetype');
}

/* CozyGuest — charte et composants de la page validée.
   Mobile d’abord. Seuls l’en-tête, le pied de page et les composants de navigation
   entre pages ont été adaptés. Motion facultatif en fin de fichier, sans framework. */
:root {--petrole:#3B5C68;--sauge:#A8B8A5;--creme:#F5F1E8;--sable:#D3C8B7;--fond:#FBFAF7;--encre:#1E2B30;--sourd:#6B7770;--filet:#E4DED2;--ambre:#96712F;--ambre-fond:#F6EFE0;--vert:#5E7F63;--vert-fond:#EAF0E9;--white:#fff;--shadow:0 1px 2px rgba(30,43,48,.05);--header-height:88px;color-scheme:light;--header-bg:var(--fond);--hero-shadow:0 18px 40px rgba(30,43,48,.12);--panel-shadow:0 15px 35px rgba(30,43,48,.12);}
* {box-sizing:border-box;}
html {scroll-padding-top:calc(var(--header-height) + 22px);}
body {margin:0;background:var(--fond);color:var(--encre);font-family:'IBM Plex Sans',sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;}
button,input,select,textarea {font:inherit;}
button,a,input,select,summary {touch-action:manipulation;}
button,a {-webkit-tap-highlight-color:transparent;}
a {color:inherit;text-underline-offset:4px;}
button {cursor:pointer;}
button:disabled {cursor:wait;}
p {margin:0 0 1.15rem;text-wrap:pretty;}
h1,h2,h3,h4 {font-family:Poppins,sans-serif;font-weight:600;letter-spacing:-.015em;line-height:1.25;margin:0;text-wrap:balance;}
h1 {font-size:clamp(2.55rem,4.25vw,3.5rem);line-height:1.11;max-width:12.8ch;}
h2 {font-size:clamp(1.85rem,3.1vw,2.5rem);color:var(--petrole);}
h3 {font-size:1.08rem;}
img,svg {display:block;}
figure {margin:0;}
ul,ol {margin:0;padding:0;}
img,svg {max-width:100%;}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {outline:3px solid var(--petrole);outline-offset:4px;}
.dark a:focus-visible,.dark button:focus-visible {outline-color:var(--creme);}
[hidden] {display:none!important;}
.wrap {width:min(1180px,calc(100% - 2 * clamp(20px,4.2vw,42px)));margin-inline:auto;}
.section {padding-block:clamp(56px,7vw,88px);}
.two-col {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:clamp(26px,3.6vw,48px);align-items:start;}
.auto-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--min,260px)),1fr));gap:18px;}
.eyebrow {display:inline-flex;align-items:center;gap:10px;font-family:Poppins,sans-serif;font-size:.75rem;font-weight:500;line-height:1.5;letter-spacing:.16em;text-transform:uppercase;color:var(--petrole);margin-bottom:16px;}
.eyebrow::before {content:'';display:block;inline-size:22px;block-size:2px;background:var(--sauge);flex:none;}
.section-heading {max-width:730px;margin-bottom:34px;}
.section-heading h2 {margin-bottom:14px;}
.section-heading p {color:var(--petrole);max-width:64ch;margin-bottom:0;}
.btn {display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center;padding:14px 21px;border:1px solid var(--petrole);border-radius:11px;background:var(--petrole);color:var(--white);text-decoration:none;font-family:Poppins,sans-serif;font-weight:500;font-size:.875rem;line-height:1.55;transition:background .16s,color .16s,box-shadow .16s,transform 180ms cubic-bezier(.22,.61,.36,1);max-width:100%;}
.btn:hover {background:var(--encre);border-color:var(--encre);}
.btn-outline {background:transparent;color:var(--petrole);}
.btn-outline:hover {background:var(--creme);color:var(--encre);border-color:var(--petrole);}
.btn-white {background:var(--white);color:var(--encre);border-color:var(--white);}
.btn-white:hover {background:var(--creme);border-color:var(--creme);color:var(--encre);}
.actions {display:flex;align-items:center;flex-wrap:wrap;gap:12px;}
.muted {color:var(--petrole);}
.num {font-variant-numeric:tabular-nums;}
.skip {position:fixed;top:12px;left:12px;z-index:100;padding:12px 18px;border-radius:11px;background:var(--white);transform:translateY(-160%);}
.skip:focus {transform:none;}
.brand {display:flex;flex-direction:column;align-items:flex-start;gap:0;text-decoration:none;flex-shrink:0;line-height:1.4;}
.brand-name {font-family:Poppins,sans-serif;font-size:1.3rem;font-weight:600;color:var(--petrole);letter-spacing:-.03em;}
.brand-place {font-family:Poppins,sans-serif;font-size:.65rem;letter-spacing:.14em;color:var(--petrole);text-transform:uppercase;font-weight:500;}
.hero {padding-block:clamp(36px,5vw,60px) 44px;}
.hero .two-col {align-items:center;}
.rating {display:inline-flex;flex-wrap:wrap;gap:7px;align-items:center;border:1px solid var(--sable);border-radius:100px;padding:6px 13px;background:var(--white);margin-bottom:24px;font-size:.81rem;line-height:1.6;}
.rating .stars {color:var(--ambre);letter-spacing:1px;font-size:.75rem;}
.rating .review-count {color:var(--sourd);}
.hero h1 {margin-bottom:23px;}
.hero-copy>p {font-size:1.13rem;line-height:1.65;max-width:52ch;color:var(--petrole);margin-bottom:25px;}
.hero .actions {gap:12px;}
.assurances {display:flex;flex-wrap:wrap;gap:8px 19px;margin-top:25px;list-style:none;font-size:.77rem;color:var(--petrole);}
.check {color:var(--petrole);margin-right:6px;font-weight:500;}
.photo {inline-size:100%;overflow:hidden;border-radius:14px;background:var(--creme);}
.hero-photo {position:relative;border-radius:18px;box-shadow:var(--hero-shadow);aspect-ratio:544/458;}
.hero-photo :is(svg,img) {width:100%;height:100%;}
.hero-caption {position:absolute;right:14px;bottom:14px;padding:4px 9px;border-radius:6px;background:var(--petrole);color:var(--white);font-size:.75rem;line-height:1.5;}
.proof-band {background:var(--creme);border-block:1px solid var(--filet);padding-block:26px;}
.proof-grid {--min:220px;gap:22px;}
.proof-item strong {display:block;color:var(--petrole);font-family:Poppins,sans-serif;font-weight:600;font-size:clamp(1.65rem,2.5vw,2rem);line-height:1.25;}
.proof-item span {display:block;font-family:Poppins,sans-serif;font-size:.67rem;letter-spacing:.14em;text-transform:uppercase;color:var(--petrole);margin-top:5px;}
.services-grid {--min:300px;}
.service-card {background:var(--white);border:1px solid var(--filet);border-radius:16px;padding:25px;box-shadow:var(--shadow);}
.service-number {display:inline-block;color:var(--petrole);font-family:Poppins,sans-serif;font-weight:500;font-size:.76rem;letter-spacing:.05em;padding-bottom:8px;}
.service-card h3 {margin-bottom:9px;}
.service-card p {color:var(--sourd);font-size:.98rem;line-height:1.6;margin:0;}
.estimate {background:var(--petrole);color:var(--white);}
.estimate h2 {color:var(--white);max-width:18ch;font-size:clamp(2rem,3.3vw,2.6rem);}
.estimate .eyebrow {color:var(--creme);}
.estimate .two-col {gap:clamp(26px,3.4vw,44px);}
.estimate-intro>p {margin:22px 0 18px;max-width:55ch;font-size:1.05rem;}
.checklist {list-style:none;display:grid;gap:8px;}
.checklist li {display:flex;align-items:baseline;gap:8px;}
.checklist .check {margin:0;}
.estimate-intro .check {color:var(--creme);}
.estimate-photo {margin-top:28px;border-radius:14px;aspect-ratio:546/220;}
.estimate-photo :is(svg,img) {width:100%;height:100%;object-fit:cover;}
.calculator {background:var(--fond);color:var(--encre);border-radius:18px;padding:clamp(20px,2.3vw,28px);box-shadow:var(--panel-shadow);min-width:0;}
.calculator fieldset {padding:0;margin:0;border:0;min-width:0;}
.calculator legend,.field-label {font-family:Poppins,sans-serif;font-weight:500;font-size:.81rem;display:block;margin-bottom:7px;}
.calculator a:focus-visible,.calculator button:focus-visible {outline-color:var(--petrole);}
.type-switch {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;}
.type-switch button {border:1px solid var(--sable);background:var(--white);color:var(--encre);border-radius:11px;padding:11px 4px;font-size:clamp(.68rem,1vw,.84rem);line-height:1.5;font-family:Poppins,sans-serif;font-weight:500;}
.type-switch button[aria-pressed=true] {background:var(--petrole);border-color:var(--petrole);color:var(--white);}
.type-switch button:hover:not([aria-pressed=true]) {background:var(--creme);}
.fields-row {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px;margin-top:17px;}
label {min-width:0;}
input,select,textarea {width:100%;min-width:0;border:1px solid var(--sable);border-radius:11px;background:var(--white);color:var(--encre);padding:12px 13px;font-size:.9rem;line-height:1.5;}
select {padding-right:25px;text-overflow:ellipsis;}
input::placeholder {color:var(--sourd);opacity:1;}
input:focus,select:focus,textarea:focus {border-color:var(--petrole);}
.results {border-block:1px dashed var(--sable);margin-block:20px;padding-block:17px 20px;}
.result-meta {display:flex;justify-content:space-between;flex-wrap:wrap;align-items:baseline;gap:6px;}
.small-label {font-family:Poppins,sans-serif;font-size:.65rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--petrole);}
.hypothesis {font-size:.75rem;color:var(--petrole);}
.result-value {display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .23em;font-family:Poppins,sans-serif;font-size:clamp(1.65rem,2.65vw,2.5rem);font-weight:600;line-height:1.35;letter-spacing:-.025em;color:var(--petrole);margin:10px 0 16px;}
.money {white-space:nowrap;}
.result-tiles {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:10px;}
.result-tile {background:var(--creme);border-radius:12px;padding:13px 14px;}
.result-tile.green {background:var(--vert-fond);border:1px solid var(--vert);}
.result-tile strong {display:block;font-size:1.17rem;line-height:1.45;color:var(--encre);font-weight:500;margin-top:4px;}
.result-tile .small-label {font-size:.62rem;}
.estimate-note {font-size:.76rem;line-height:1.55;color:var(--petrole);margin:13px 0 0;}
.mountain-note {margin:14px 0 0;padding:10px 12px;border-radius:11px;background:var(--creme);color:var(--encre);font-size:.8rem;}
.form-title {font-size:1rem;line-height:1.4;margin-bottom:15px;}
.lead-fields {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px;}
.lead-fields label span {display:block;font-size:.78rem;margin:0 0 5px;font-family:Poppins,sans-serif;}
.lead-fields .full {grid-column:1/-1;}
.lead-form .btn {width:100%;margin-top:14px;}
.form-small {font-size:.74rem;line-height:1.5;color:var(--petrole);margin:11px 0 0;}
.form-response {margin-top:18px;padding:17px;border:1px solid var(--vert);background:var(--vert-fond);border-radius:12px;}
.form-response h4 {font-size:1rem;margin-bottom:8px;}
.form-response p {font-size:.88rem;line-height:1.55;margin-bottom:10px;}
.form-response textarea {font-size:.8rem;min-height:12em;resize:vertical;}
.form-response .actions {margin-top:10px;}
.form-response .btn {width:auto;margin:0;font-size:.75rem;}
.copy-status {font-size:.78rem;margin-top:9px!important;}
.no-script {background:var(--ambre-fond);color:var(--encre);padding:15px;border-radius:11px;}
.steps-grid {--min:240px;}
.step {background:var(--creme);border-radius:16px;padding:25px;}
.step-number {display:inline-flex;align-items:center;justify-content:center;background:var(--petrole);color:var(--white);padding:5px 13px;border-radius:99px;margin-bottom:15px;font-family:Poppins,sans-serif;font-weight:500;font-size:.88rem;}
.step h3 {margin-bottom:12px;}
.step p {margin:0;color:var(--petrole);font-size:.98rem;}
.pricing {padding-top:0;}
.pricing .two-col {gap:20px;align-items:stretch;}
.price-card {border-radius:18px;padding:clamp(25px,3vw,34px);background:var(--encre);color:var(--white);}
.price-card .eyebrow {color:var(--sauge);}
.price-amount {display:flex;align-items:baseline;flex-wrap:wrap;gap:14px;line-height:1.2;margin:0 0 23px;}
.price-amount strong {font-size:clamp(3.8rem,5.3vw,4.6rem);font-family:Poppins,sans-serif;font-weight:600;letter-spacing:-.03em;}
.price-amount span {font-size:.88rem;}
.price-card>p {font-size:1rem;}
.price-card .check {background:var(--creme);border-radius:100px;min-width:1.2em;text-align:center;font-size:.8rem;line-height:1.3;}
.price-card .checklist {margin:22px 0 25px;font-size:.95rem;gap:10px;}
.money-card {background:var(--white);border:1px solid var(--filet);border-radius:18px;padding:clamp(25px,3vw,34px);box-shadow:var(--shadow);}
.money-card h3 {font-size:1.18rem;margin-bottom:22px;}
.money-flow {list-style:none;display:grid;gap:18px;counter-reset:money;}
.money-flow li {display:flex;gap:13px;}
.money-flow li::before {counter-increment:money;content:'0' counter(money);color:var(--petrole);font-family:Poppins,sans-serif;font-size:.75rem;padding-top:3px;}
.money-flow p {color:var(--sourd);margin:0;line-height:1.6;font-size:.96rem;}
.money-flow strong {color:var(--encre);font-weight:500;}
.example {margin-top:24px;background:var(--ambre-fond);border:1px solid var(--sable);border-left:3px solid var(--ambre);border-radius:12px;padding:19px;}
.example .small-label {color:var(--encre);}
.example p {margin:9px 0 0;font-size:.94rem;}
.example .example-note {font-size:.77rem;line-height:1.55;}
.gallery {padding-top:0;}
.gallery-grid {--min:300px;gap:16px;}
.gallery-grid .photo {aspect-ratio:1.5;}
.gallery-grid :is(svg,img) {width:100%;height:100%;}
.territory {background:var(--creme);border-radius:18px;padding:clamp(26px,3.8vw,46px);}
.territory .two-col {align-items:center;gap:28px;}
.territory h2 {font-size:clamp(1.7rem,2.7vw,2.1rem);margin-bottom:17px;}
.territory p {margin:0;color:var(--petrole);}
.tags {list-style:none;display:flex;flex-wrap:wrap;gap:10px;}
.tags li {background:var(--white);border:1px solid var(--sable);border-radius:99px;padding:8px 15px;font-size:.84rem;line-height:1.5;}
.tags li.soon {background:var(--sauge);border-color:var(--sauge);}
.advice-heading {display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:30px;}
.advice-heading .section-heading {margin:0;}
.advice-heading .section-heading h2 {margin:0;}
.article-card {background:var(--white);border:1px solid var(--filet);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;}
.article-photo {aspect-ratio:2.15;overflow:hidden;background:var(--creme);}
.article-photo :is(svg,img) {width:100%;height:100%;}
.article-content {padding:22px;display:flex;flex-direction:column;flex:1;}
.article-content .small-label {font-size:.66rem;margin-bottom:11px;}
.article-content h3 {margin-bottom:11px;line-height:1.4;}
.article-content p {color:var(--sourd);font-size:.96rem;line-height:1.65;margin-bottom:18px;}
.faq {padding-top:5px;}
.faq h2 {margin-bottom:17px;max-width:20ch;}
.faq-intro p {color:var(--petrole);}
.faq-list {display:grid;gap:11px;}
.faq-list details {background:var(--white);border:1px solid var(--filet);border-radius:14px;padding:0 20px;}
.faq-list summary {list-style:none;font-family:Poppins,sans-serif;font-weight:500;font-size:.95rem;line-height:1.55;padding:19px 25px 19px 0;cursor:pointer;position:relative;}
.faq-list summary::-webkit-details-marker {display:none;}
.faq-list summary::after {content:'+';position:absolute;right:0;top:19px;color:var(--petrole);font-size:1.05rem;}
.faq-list details[open] summary::after {content:'−';}
.faq-list details[open] summary {padding-bottom:12px;}
.faq-list details p {color:var(--sourd);font-size:.96rem;line-height:1.65;margin:0;padding-bottom:20px;}
.contact {background:var(--encre);color:var(--white);}
.contact h2 {color:var(--white);margin-bottom:21px;}
.contact-copy p {max-width:54ch;}
.contact .two-col {align-items:center;}
.contact .actions {margin-top:23px;}
.contact .btn-outline {color:var(--white);border-color:var(--sauge);}
.contact .btn-outline:hover {color:var(--encre);background:var(--creme);}
.contact-tiles {--min:210px;gap:14px;}
.contact-tile {border:1px solid var(--sourd);border-radius:16px;padding:20px;}
.contact-tile .small-label {color:var(--sauge);font-size:.64rem;}
.contact-tile p {margin:8px 0 0;line-height:1.5;font-weight:500;font-size:.95rem;overflow-wrap:anywhere;}
.contact-tile a {text-decoration:none;}
.contact-tile a:hover {text-decoration:underline;}
.footer {background:var(--encre);color:var(--white);border-top:1px solid var(--sourd);padding-top:43px;}
.footer-grid {--min:180px;gap:30px;padding-bottom:39px;}
.footer .brand-name {color:var(--white);font-size:1.2rem;}
.footer p {color:var(--sauge);font-size:.87rem;line-height:1.7;margin-top:12px;max-width:29ch;}
.footer .footer-heading {font-family:Poppins,sans-serif;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--sauge);margin:4px 0 15px;}
.footer ul {list-style:none;display:grid;gap:6px;}
.footer li,.footer button {font-size:.86rem;}
.footer a {text-decoration:none;}
.footer a:hover {text-decoration:underline;}
.footer button {border:0;background:none;color:var(--white);padding:0;line-height:inherit;cursor:pointer;}
.footer button:hover {text-decoration:underline;}
.copyright {border-top:1px solid var(--sourd);padding-block:18px;color:var(--sauge);font-size:.78rem;}
.asset-defs {position:absolute;width:0;height:0;overflow:hidden;pointer-events:none;}
/* Navigation partagée. Les éléments <details> fonctionnent aussi sans JavaScript. */
.site-header { position:sticky; top:0; z-index:20; background:var(--header-bg); border-bottom:1px solid var(--filet); }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-block:14px; position:relative; }
.site-menu { min-width:0; }
.menu-toggle { display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:10px 12px; border:1px solid var(--sable); border-radius:11px; background:var(--white); color:var(--petrole); font-family:Poppins,sans-serif; font-size:.8rem; font-weight:500; cursor:pointer; list-style:none; }
.menu-toggle::-webkit-details-marker, .nav-dropdown > summary::-webkit-details-marker { display:none; }
.hamburger { display:grid; gap:4px; inline-size:17px; flex:none; }
.hamburger span { display:block; block-size:1px; inline-size:100%; background:currentColor; }
.site-menu > .menu-panel { position:absolute; inset-inline:0; top:100%; padding:18px 20px 22px; background:var(--fond); border:1px solid var(--filet); border-radius:0 0 16px 16px; box-shadow:var(--shadow); max-block-size:calc(100dvh - 100px); overflow-y:auto; }
.site-menu:not([open]) > .menu-panel { display:none; }
.nav { display:grid; gap:4px; min-width:0; }
.nav > a, .nav-dropdown > summary { display:flex; align-items:center; gap:7px; padding:10px 0; color:var(--encre); font-size:.875rem; line-height:1.55; text-decoration:none; cursor:pointer; }
.nav-dropdown > summary { list-style:none; }
.nav-dropdown > summary::after { content:'▾'; color:var(--petrole); font-size:.8em; }
.nav-dropdown[open] > summary::after { content:'▴'; }
.nav a:hover, .owner-link:hover { text-decoration:underline; }
.nav a[aria-current=page] { color:var(--petrole); font-weight:500; text-decoration:underline; }
.submenu { display:grid; gap:3px; list-style:none; margin:0 0 10px; padding:8px 14px; background:var(--creme); border-radius:11px; }
.submenu a { display:block; padding:9px 0; text-decoration:none; color:var(--encre); font-size:.85rem; line-height:1.55; overflow-wrap:anywhere; }
.nav-tools { display:grid; gap:12px; margin-top:15px; padding-top:17px; border-top:1px solid var(--filet); }
.owner-link { color:var(--encre); font-weight:500; font-size:.8rem; line-height:1.6; text-decoration:none; padding:8px 0; }
.header-cta { padding:11px 16px; font-size:.8rem; }
/* Navigation inter-pages : composants existants, présentation inchangée. */
.service-card h3 a { text-decoration:none; }
.service-card h3 a:hover { text-decoration:underline; }
.section-actions { margin-top:26px; }
.text-link { color:var(--petrole); font-size:.875rem; text-underline-offset:5px; }
.article-link { align-self:flex-start; color:var(--petrole); font-family:Poppins,sans-serif; font-size:.8rem; text-decoration:underline; text-underline-offset:5px; margin-top:auto; }
.article-link:hover { color:var(--encre); }
.form-small a { color:inherit; }
.breadcrumb { padding-block:24px 0; }
.breadcrumb ol { list-style:none; display:flex; flex-wrap:wrap; gap:8px; font-size:.8rem; color:var(--petrole); }
.breadcrumb li + li::before { content:'/'; margin-right:8px; }
.page-hero { padding-top:30px; }
.page-hero h1 { max-width:17ch; }
.page-hero .hero-copy > p { max-width:53ch; }
.page-hero .photo { aspect-ratio:544/458; border-radius:18px; box-shadow:var(--hero-shadow); }
.page-hero .photo :is(svg,img) { width:100%; height:100%; }
.services-detail p { line-height:1.65; }
.interior-summary .two-col { gap:20px; align-items:stretch; }
.interior-summary .price-card { display:flex; flex-direction:column; align-items:flex-start; }
.interior-summary .price-card > .btn { margin-top:auto; }
.related-card { display:flex; flex-direction:column; }
.related-card p { margin-bottom:18px; }
.related-card .text-link { margin-top:auto; }
/* Image absente : le cadre reste propre, y compris avant tout chargement JS.
   Exemple : <figure class="image-placeholder"><span>Photo à venir</span></figure>
   ou <figure class="media-frame"><img src="..." alt="..."><figcaption class="media-fallback">Photo à venir</figcaption></figure>.
   Ne pas conserver un <img> sans source : utiliser directement image-placeholder. */
.image-placeholder, .media-frame { position:relative; display:grid; place-items:center; aspect-ratio:3/2; overflow:hidden; border:1px solid var(--filet); border-radius:14px; background:var(--creme); color:var(--petrole); }
.image-placeholder { padding:24px; text-align:center; }
.media-frame img { display:block; grid-area:1/1; inline-size:100%; block-size:100%; object-fit:cover; color:transparent; visibility:hidden; }
.media-frame.is-loaded img { visibility:visible; }
.media-frame .media-fallback { grid-area:1/1; padding:24px; text-align:center; }
.media-frame.is-loaded .media-fallback { visibility:hidden; }
.media-frame.is-missing img { display:none; }
.form-trap { position:absolute; inline-size:1px; block-size:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.form-feedback { color:var(--petrole); font-size:.82rem; line-height:1.6; margin:12px 0 0; }
:where(.two-col, .auto-grid, .fields-row, .lead-fields, .result-tiles) > * { min-width:0; }
.footer a, .footer p, .contact-tile p { overflow-wrap:anywhere; }
/* City Managers : compléments au gabarit, limités à cette page. */
.city-page .pending-content, .city-page main h3 { overflow-wrap:anywhere; }
.city-page .contact .eyebrow { color:var(--sauge); }
.city-page .contact .two-col { align-items:start; }
:is(.model-frame, .table-frame) { border:1px solid var(--filet); border-radius:16px; overflow:hidden; background:var(--white); box-shadow:var(--shadow); }
:is(.model-table, .content-table) { width:100%; table-layout:fixed; border-collapse:collapse; text-align:left; }
:is(.model-table, .content-table) th, :is(.model-table, .content-table) td { padding:clamp(12px,2.2vw,25px); vertical-align:top; overflow-wrap:anywhere; }
:is(.model-table, .content-table) th { background:var(--creme); color:var(--petrole); font-family:Poppins,sans-serif; font-weight:500; font-size:clamp(.875rem,1.3vw,1.05rem); line-height:1.5; }
:is(.model-table, .content-table) td { border-top:1px solid var(--filet); color:var(--petrole); }
:is(.model-table, .content-table) th + th, :is(.model-table, .content-table) td + td { border-left:1px solid var(--filet); }
.city-page .service-card .city-amount { font-family:Poppins,sans-serif; font-weight:600; font-size:clamp(3.2rem,5vw,4.4rem); line-height:1.2; letter-spacing:-.015em; color:var(--petrole); margin-bottom:20px; }
.city-page .step p + p { margin-top:14px; }
.city-page .pilot-calendar { margin:0; display:grid; gap:20px; }
.city-page .pilot-calendar dt { font-family:Poppins,sans-serif; font-weight:500; font-size:.9rem; color:var(--petrole); margin-bottom:6px; }
.city-page .pilot-calendar dd { margin:0; color:var(--petrole); }
.city-page .city-path { list-style:none; }
.city-page .city-circuit { padding-left:1.3em; display:grid; gap:16px; margin-block:18px; }
.city-page .city-contract-note { border:1px solid var(--sauge); border-radius:12px; padding:18px; }
.city-page .city-requirements { padding-left:1.2em; display:grid; gap:10px; margin-top:14px; color:var(--petrole); }
.city-income-calculator h3 { font-size:clamp(1.1rem,1.8vw,1.35rem); margin-bottom:22px; }
.city-income-calculator .city-income-label { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.city-income-calculator .city-income-label output { flex:none; color:var(--petrole); font-weight:500; }
.city-income-calculator .city-income-range { display:block; padding:0; border:0; border-radius:0; height:32px; background:transparent; accent-color:var(--petrole); cursor:pointer; }
.city-income-calculator .city-income-basis { margin:0 0 14px; color:var(--petrole); font-size:.82rem; }
.city-income-calculator .city-income-scenarios { grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr)); }
.city-income-calculator .city-income-scenarios h4 { font-size:.86rem; line-height:1.5; margin:0; }
.city-income-calculator .city-income-scenarios .result-value { margin:12px 0 0; font-size:clamp(1.6rem,2.2vw,2rem); }
.city-income-calculator .city-income-month { font-size:.78rem; font-weight:400; letter-spacing:0; }
.city-income-calculator .city-income-scenarios .is-theoretical { background:var(--white); border:1px dashed var(--sable); }
.city-income-calculator .city-income-theoretical { margin:12px 0 0; font-size:.76rem; font-weight:500; color:var(--ambre); }
.city-income-calculator .city-income-warning { margin:14px 0 0; padding:12px; border:1px solid var(--sable); border-radius:11px; background:var(--ambre-fond); color:var(--encre); font-size:.8rem; }
.city-income-calculator .city-income-project-note { font-size:.88rem; line-height:1.6; margin:0; }
.city-income-calculator .city-income-assumptions { margin-top:18px; border-top:1px solid var(--filet); padding-top:14px; color:var(--petrole); font-size:.78rem; }
.city-income-calculator .city-income-assumptions summary { cursor:pointer; font-family:Poppins,sans-serif; font-weight:500; }
.city-income-calculator .city-income-assumptions ul { margin:12px 0 0; padding-left:1.2em; display:grid; gap:8px; }
:is(.city-page, .inner-page) .application-panel { box-shadow:var(--shadow); }
:is(.city-page, .inner-page) .application-panel small { display:block; color:var(--petrole); font-size:.78rem; line-height:1.5; margin-top:5px; }
:is(.city-page, .inner-page) .application-panel span small { display:inline; font-size:inherit; }
:is(.city-page, .inner-page) .application-panel textarea { resize:vertical; }
:is(.city-page, .inner-page) .application-panel .btn-outline { color:var(--petrole); border-color:var(--petrole); }
:is(.city-page, .inner-page) .application-panel :focus-visible { outline-color:var(--petrole); }
/* Pages intérieures : mêmes composants, contenu et tableaux fluides. */
.inner-page main :is(h1,h2,h3,h4,p,li,td,th,dd), .pending-content { overflow-wrap:anywhere; }
.inner-page .text-hero { max-width:1180px; }
.inner-page .text-hero h1 { max-width:24ch; }
.inner-page .text-hero .hero-copy > p { max-width:68ch; }
.inner-page .hero .price-card p { color:var(--white); }
.inner-page .ordered-cards { list-style:none; }
.inner-page .plain-list { padding-left:1.25em; display:grid; gap:12px; }
.inner-page .contact .two-col { align-items:start; }
.inner-page .contact .eyebrow { color:var(--sauge); }
.inner-page .service-card p + p { margin-top:14px; }
.inner-page .lead-fields { margin-top:16px; }
.inner-page .article-content h2 { font-size:clamp(1.05rem,1.7vw,1.25rem); line-height:1.4; margin-bottom:12px; }
.inner-page .article-date { font-size:.875rem; color:var(--petrole); }
.inner-page .article-status { align-self:flex-start; padding:5px 10px; border-radius:11px; background:var(--creme); color:var(--petrole); margin-top:auto; font-size:.875rem; }
.inner-page .article-card .image-placeholder { border:0; border-radius:0; margin:0; }
.inner-page .source-note { font-size:.875rem; color:var(--petrole); }
.inner-page .map-placeholder { padding:clamp(24px,4vw,48px); border:1px solid var(--sable); border-radius:18px; background:var(--creme); }
.inner-page .map-placeholder h3 { margin-bottom:16px; }
.inner-page .map-placeholder p:last-child { margin-bottom:0; }
:is(.model-table, .content-table) tbody th { border-top:1px solid var(--filet); }
.content-table th + td { border-left:1px solid var(--filet); }
.content-table { font-variant-numeric:tabular-nums; }
.legal-page .section { padding-block:clamp(30px,4vw,48px); }
.legal-page .content-table { font-size:.9375rem; }
/* L’en-tête seul change de disposition. Les grilles validées restent fluides. */
@media (min-width:72rem) {
  .brand { flex-direction:row; align-items:baseline; gap:10px; }
  .header-inner { gap:20px; }
  .site-menu { margin-left:auto; }
  .menu-toggle { display:none; }
  .site-menu > .menu-panel { position:static; display:flex; align-items:center; gap:22px; padding:0; border:0; background:transparent; box-shadow:none; max-block-size:none; overflow:visible; }
  .site-menu:not([open]) > .menu-panel { display:flex; }
  .nav { display:flex; align-items:center; gap:19px; }
  .nav > a, .nav-dropdown > summary { padding:10px 0; font-size:.82rem; white-space:nowrap; }
  .nav-dropdown { position:relative; }
  .submenu { position:absolute; top:100%; left:0; z-index:30; min-inline-size:260px; max-inline-size:min(340px,85vw); margin:7px 0 0; padding:12px 17px; border:1px solid var(--filet); background:var(--fond); box-shadow:var(--panel-shadow); }
  .submenu a { white-space:normal; }
  .nav-tools { display:flex; align-items:center; gap:16px; padding:0; margin:0; border:0; }
  .owner-link { font-size:.76rem; white-space:nowrap; }
  .header-cta { font-size:.76rem; white-space:nowrap; }
}
/* Niveaux de titres sémantiques, présentation du gabarit conservée. */
.photo img,.article-photo img {object-fit:cover;}
.territory .compact-heading {font-size:1.08rem;color:var(--encre);margin:0;}
.article-content .journal-card-title {font-size:clamp(1.05rem,1.7vw,1.25rem);color:var(--petrole);line-height:1.4;margin:0 0 11px;}

/* Lecture des conseils : même charte, page complète ou fenêtre superposée. */
.coverage-amount {font-family:Poppins,sans-serif;font-size:clamp(1.1rem,2vw,1.6rem);font-weight:600;color:var(--petrole);}
.reading-layout {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr));gap:clamp(2rem,5vw,5rem);align-items:start;}
.reading-article {max-width:48rem;min-width:0;}
.reading-header {margin-bottom:2rem;}
.reading-header h1 {font-size:clamp(2rem,3.5vw,3rem);margin:0 0 1rem;}
.reading-article p,.reading-article li {line-height:1.8;}
.reading-article p {margin-bottom:1.2rem;}
.reading-article :is(h2,h3) {font-size:clamp(1.1rem,1.8vw,1.3rem);margin:1.5rem 0 .6rem;}
.reading-article ol {padding-left:1.5rem;margin:1rem 0;}
.reading-article li {padding-left:.15rem;margin-bottom:.55rem;}
.reading-article .btn {margin-top:1.2rem;}
.reading-aside .photo {margin-bottom:1.5rem;}
.reading-article .source-note {border-top:1px solid var(--filet);padding-top:1rem;font-size:.875rem;}
.article-modal-open {overflow:hidden;}
.article-dialog {width:min(45rem,calc(100% - 1.5rem));max-width:100%;max-height:calc(100dvh - 2rem);margin:auto;padding:clamp(1.25rem,3vw,2.4rem);overflow:auto;overscroll-behavior:contain;border:1px solid var(--filet);border-radius:18px;background:var(--fond);color:var(--petrole);box-shadow:var(--shadow);}
.article-dialog::backdrop {background:rgba(30,43,48,.66);backdrop-filter:blur(4px);}
.article-dialog-toolbar {display:flex;justify-content:flex-end;margin-bottom:1.75rem;}
.article-dialog-toolbar .btn {padding:.6rem .85rem;font-size:.8rem;min-height:44px;}
.article-dialog .reading-header h2 {font-size:clamp(1.65rem,3vw,2.1rem);line-height:1.3;letter-spacing:-.015em;margin:0 0 1rem;}
.article-dialog .reading-article {max-width:none;}
.article-dialog .reading-article li {color:var(--encre);}

/* Journal : grille verticale et lecture des articles, dans la charte existante. */
.journal-page .page-hero {padding-bottom:clamp(26px,4vw,48px);}
.journal-page .page-hero h1 {max-width:24ch;}
.journal-feature {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,25rem),1fr));background:var(--creme);border:1px solid var(--filet);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);}
.journal-feature .article-photo {aspect-ratio:3/2;align-self:center;}
.journal-feature-copy {padding:clamp(24px,4vw,44px);align-self:center;min-width:0;}
.journal-feature-copy h2 {font-size:clamp(1.6rem,2.6vw,2.2rem);margin-bottom:1rem;}
.journal-feature-copy h2 a,.journal-grid h3 a {text-decoration:none;}
.journal-feature-copy h2 a:hover,.journal-grid h3 a:hover {text-decoration:underline;}
.journal-filters {display:flex;flex-wrap:wrap;gap:10px;margin-block:1.5rem;}
.journal-filter {font-family:Poppins,sans-serif;font-weight:500;font-size:.875rem;line-height:1.5;padding:10px 16px;border:1px solid var(--sable);border-radius:18px;color:var(--petrole);background:var(--fond);}
.journal-filter[aria-pressed="true"] {background:var(--petrole);border-color:var(--petrole);color:var(--white);}
.journal-filter:hover {box-shadow:var(--shadow);border-color:var(--petrole);}
.journal-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:24px;}
.journal-grid .article-card {min-width:0;}
.journal-grid .article-photo {aspect-ratio:3/2;}
.journal-grid h3 {font-size:clamp(1.05rem,1.4vw,1.2rem);color:var(--petrole);margin-block:.6rem 1rem;}
.journal-grid .article-content {padding:clamp(20px,2.6vw,28px);}
.journal-grid .article-content p {color:var(--petrole);}
.journal-grid .small-label {font-size:.75rem;}
.journal-grid .article-date {margin-top:auto;}
.article-actions {display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;}
.article-actions .btn {padding:10px 14px;}
.article-actions .text-link {font-size:.875rem;}
.journal-count {color:var(--petrole);font-variant-numeric:tabular-nums;font-size:.875rem;}
.journal-article .reading-layout {display:block;}
.journal-article .reading-article {margin-inline:auto;}
.journal-article .reading-header h1 {max-width:none;}
.article-cover {margin-block:1.8rem 2rem;}
.article-cover img {width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:14px;background:var(--creme);}
.article-cover figcaption {font-size:.75rem;color:var(--petrole);margin-top:.55rem;}
.reading-article ul {padding-left:1.25rem;margin-block:1rem 1.5rem;}
.reading-article .article-lead {font-size:1.125rem;color:var(--petrole);}
.article-takeaway {padding:clamp(18px,3vw,28px);border:1px solid var(--filet);border-radius:14px;background:var(--creme);margin-block:1.5rem 2rem;}
.article-takeaway p:last-child {margin-bottom:0;}
.blog-table {width:100%;table-layout:fixed;border-collapse:collapse;margin-block:1.5rem;font-size:.875rem;}
.blog-table caption {text-align:left;font-family:Poppins,sans-serif;font-weight:500;margin-bottom:.75rem;color:var(--petrole);}
.blog-table th,.blog-table td {text-align:left;vertical-align:top;padding:.8rem .55rem;border-bottom:1px solid var(--filet);overflow-wrap:anywhere;}
.blog-table thead {background:var(--creme);}
.blog-table .num {white-space:normal;}
.article-related {border-top:1px solid var(--filet);padding-top:1.25rem;margin-top:2rem;}
.reading-article .article-sources {font-size:.875rem;overflow-wrap:anywhere;}
.article-reading-dialog .article-dialog-toolbar {position:sticky;top:0;background:var(--fond);padding-block:12px;z-index:1;border-bottom:1px solid var(--filet);}
.article-reading-dialog .article-page-link {display:inline-block;margin-top:1.5rem;}
.article-page-link {display:inline-block;margin-top:1.5rem;font-size:.875rem;}
.article-link[aria-busy="true"] {cursor:progress;}

/* Précisions contractuelles : même charte, blocs fluides. */
.contract-quote {margin:20px 0;padding:0 0 0 18px;border-left:2px solid var(--sauge);}
.contract-quote p {margin:0;}
.contract-note {margin-top:28px;padding-top:24px;border-top:1px solid var(--filet);}
.contract-note h3 {margin-bottom:16px;}
.billing-example {margin:12px 0 0;display:grid;gap:10px;}
.billing-example > div {display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:4px 16px;}
.billing-example dt {flex:1 1 220px;}
.billing-example dd {margin:0;font-weight:500;white-space:nowrap;}
.billing-example > div:last-child {border-top:1px solid var(--sable);padding-top:10px;}

/* Lot 1 : raccordement Tally dans les emplacements existants. */
.form-fields-preview {border:0;padding:0;margin:0;min-width:0;}
.form-fields-preview:disabled button {cursor:not-allowed;}
.tally-frame {display:block;width:100%;max-width:100%;border:0;}
.tally-confirmation {outline-offset:4px;}

/* Lot 2 — mouvements discrets. Ces classes ne sont ajoutées que par le script.
   Les couleurs, les polices, les dimensions et l'ordre des sections restent inchangés. */
.motion-ready {
  opacity:0;
  transform:translateY(16px);
  transition:opacity 500ms cubic-bezier(.22,.61,.36,1),transform 500ms cubic-bezier(.22,.61,.36,1);
  transition-delay:var(--motion-delay,0ms);
}
.motion-ready.motion-visible {opacity:1;transform:none;}
.proof-item strong.motion-counter {position:relative;}
.proof-item strong.motion-counter > span {font:inherit;letter-spacing:inherit;text-transform:none;margin:0;color:inherit;}
.motion-counter-reserve {visibility:hidden;}
.motion-counter-value {position:absolute;inset-block-start:0;inset-inline-start:0;white-space:nowrap;}
.motion-sr-only {position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
.faq-list details.faq-motion {overflow:hidden;transition:height 420ms cubic-bezier(.22,.61,.36,1);}
:is(.nav a,.owner-link,.footer ul a):not([aria-current=page]) {position:relative;}
:is(.nav a,.owner-link,.footer ul a):not([aria-current=page])::after {
  content:'';position:absolute;inset-inline:0;inset-block-end:-2px;block-size:1px;
  background:currentColor;transform:scaleX(0);transform-origin:left;
  transition:transform 220ms cubic-bezier(.22,.61,.36,1);
}
:is(.nav a,.owner-link):not([aria-current=page])::after {inset-block-end:6px;}
:is(.nav a,.owner-link,.footer ul a):not([aria-current=page]):focus-visible::after {transform:scaleX(1);}
@media (hover:hover) and (pointer:fine) {
  .btn:not(:disabled):not([aria-disabled=true]):hover {transform:translateY(-1px);}
  :is(.nav a,.owner-link,.footer ul a):not([aria-current=page]):hover {text-decoration:none;}
  :is(.nav a,.owner-link,.footer ul a):not([aria-current=page]):hover::after {transform:scaleX(1);}
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after {animation:none!important;transition:none!important;scroll-behavior:auto!important;}
  .motion-ready,.motion-ready.motion-visible {opacity:1!important;transform:none!important;}
  .btn:not(:disabled):hover {transform:none!important;}
  .faq-list details.faq-motion {height:auto!important;overflow:visible;}
}
@media print {
  .motion-ready {opacity:1!important;transform:none!important;transition:none!important;}
}

/* Lot 3 — schémas explicatifs des deux services, dans la charte existante. */
.service-explainer > .section-heading {margin-bottom:0;}
.service-diagram {background:var(--creme);border:1px solid var(--filet);border-radius:18px;padding:clamp(20px,3vw,34px);color:var(--petrole);}
.service-diagram figcaption {font-family:Poppins,sans-serif;font-size:.875rem;font-weight:500;line-height:1.6;margin-bottom:26px;}
.claim-flow {display:grid;gap:28px;list-style:none;}
.claim-flow > li {display:grid;grid-template-columns:48px minmax(0,1fr);gap:18px;position:relative;}
.claim-marker {position:relative;inline-size:48px;block-size:48px;}
.claim-marker circle {fill:var(--fond);stroke:var(--petrole);stroke-width:1.5;}
.claim-marker text {fill:var(--petrole);font-family:Poppins,sans-serif;font-weight:500;font-size:14px;font-variant-numeric:tabular-nums;}
.claim-connector {position:absolute;inset-inline-start:23px;inset-block-start:24px;inline-size:2px;block-size:calc(100% + 28px);overflow:visible;}
.claim-connector path {fill:none;stroke:var(--sauge);stroke-width:1.5;}
.claim-flow h3,.heating-steps h3 {color:var(--petrole);font-size:clamp(1rem,1.4vw,1.08rem);line-height:1.45;}
.claim-flow p,.heating-steps p {margin:8px 0 0;font-size:1rem;line-height:1.6;}
.heating-chart {inline-size:100%;block-size:auto;}
.diagram-guide {fill:none;stroke:var(--filet);stroke-width:1;vector-effect:non-scaling-stroke;}
.diagram-curve {fill:none;stroke:var(--petrole);stroke-width:3;stroke-linecap:round;vector-effect:non-scaling-stroke;}
.diagram-point {fill:var(--petrole);stroke:var(--creme);stroke-width:2;}
.heating-calendar {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:24px;font-family:Poppins,sans-serif;font-size:.875rem;font-weight:500;line-height:1.5;text-align:center;}
.heating-steps {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:24px;list-style:none;border-top:1px solid var(--filet);padding-top:24px;}
.offer-conditions {background:var(--white);border:1px solid var(--filet);border-radius:16px;box-shadow:var(--shadow);}
.offer-conditions > summary {padding:clamp(20px,2.5vw,28px);color:var(--petrole);font-family:Poppins,sans-serif;font-size:1rem;font-weight:500;cursor:pointer;}
.offer-conditions > summary::marker {color:var(--petrole);}
.offer-summary {display:block;margin-top:7px;font-family:'IBM Plex Sans',sans-serif;font-size:.9375rem;font-weight:400;line-height:1.6;}
.offer-details-content {padding:0 clamp(20px,2.5vw,28px) clamp(20px,2.5vw,28px);}
/* Tout reste visible sans script. Les étapes déjà à l'écran ne sont pas masquées. */
.service-diagram .diagram-phase.diagram-ready {opacity:0;transition:opacity 500ms cubic-bezier(.22,.61,.36,1),transform 500ms cubic-bezier(.22,.61,.36,1);transition-delay:var(--diagram-delay,0ms);}
.claim-flow > .diagram-ready {transform:translateY(12px);}
.service-diagram .diagram-phase.diagram-visible {opacity:1;transform:none;}
.heating-chart .diagram-ready .diagram-curve {stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 500ms cubic-bezier(.22,.61,.36,1);transition-delay:var(--diagram-delay,0ms);}
.heating-chart .diagram-visible .diagram-curve {stroke-dashoffset:0;}
@media (prefers-reduced-motion:reduce), print {
  .service-diagram .diagram-phase.diagram-ready {opacity:1!important;transform:none!important;transition:none!important;}
  .heating-chart .diagram-ready .diagram-curve {stroke-dasharray:none!important;stroke-dashoffset:0!important;transition:none!important;}
}

/* Carte schématique des secteurs — limitée à la section carte. */
#carte .sector-map {margin:0;color:var(--petrole);}
#carte .sector-map-svg {width:100%;height:auto;border:1px solid var(--sable);border-radius:18px;user-select:text;}
#carte .sector-map-svg text {user-select:text;}
#carte .sector-map-legend {display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem .75rem;margin:1.25rem 0;font-size:1rem;line-height:1.5;}
#carte .sector-map-legend > span {display:inline-flex;align-items:center;gap:.5rem;}
#carte .sector-map-dot {display:inline-block;flex:0 0 auto;width:.65rem;height:.65rem;border:2px solid var(--petrole);border-radius:50%;background:var(--petrole);}
#carte .sector-map-dot-opening {border-color:var(--sauge);background:var(--creme);}
#carte .sector-map-note {max-width:80ch;margin:0 auto;font-size:1rem;line-height:1.7;}
#carte .sector-map-note a {font-size:inherit;}
#carte .sector-map-mobile-places {display:none;}
@media (max-width:60rem) {
  #carte .sector-map-town-name,#carte .sector-map-region {display:none;}
  #carte .sector-map-center-name {font-size:44px;}
  #carte .sector-map-opening-name {font-size:44px;}
  #carte .sector-map-landscape {font-size:40px;}
  #carte .sector-map-active circle {r:7px;}
  #carte .sector-map-active > g:first-child circle {r:14px;}
  #carte .sector-map-opening circle {r:12px;stroke-width:4px;}
  #carte .sector-map-mobile-places {display:block;margin-top:1.5rem;}
  #carte .sector-map-mobile-places h3 {font-size:1rem;margin:1.25rem 0 .75rem;}
  #carte .sector-map-place-list {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 1rem;list-style:none;padding:0;margin:0;font-family:Poppins,sans-serif;font-weight:500;font-size:.875rem;line-height:1.6;}
  #carte .sector-map-place-list li {display:flex;align-items:baseline;gap:.5rem;min-width:0;}
  #carte .sector-map-place-list span {min-width:0;overflow-wrap:break-word;}
}
@media (max-width:25rem) {
  #carte .sector-map-legend {font-size:.875rem;column-gap:.5rem;}
}
