/* Offer form: three readable groups, in normal document flow at every width. */
.offer-page-intro{max-width:none;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:end;gap:2rem;padding-block:clamp(2rem,4vw,4rem)}
.offer-page-intro h1{font-size:clamp(2.7rem,4.6vw,4.5rem)}
.offer-page-intro .lead{max-width:36rem;margin:0 0 .25rem;font-size:1.05rem}
.offer-page-intro .eyebrow{font-size:.875rem}
.offer-section{padding-top:clamp(1.5rem,3vw,3rem);background:var(--soft);border-block:1px solid var(--line)}
.offer-layout{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(0,1fr);gap:clamp(1.5rem,3.5vw,3.5rem);align-items:start}
.offer-panel{min-width:0;background:var(--bg);border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:.3rem .3rem 1rem 1rem;padding:clamp(1.25rem,3.5vw,3.5rem);scroll-margin-top:8rem;box-shadow:0 .5rem 2rem #1b3a5c08}
.offer-panel h2{font-size:clamp(1.6rem,2.6vw,2.5rem);line-height:1.15}
.offer-panel .eyebrow{font-size:.8125rem;letter-spacing:.1em;margin-bottom:1rem}
.offer-intro{margin-top:1rem;color:var(--muted);font-size:1rem;max-width:38rem}
.offer-panel .form-note{font-size:.875rem;color:var(--muted);margin-block:.5rem}
.offer-form-heading #offer-note{margin-top:1rem}
.offer-fieldset{min-inline-size:0;border:0;border-top:1px solid var(--line);padding:1.8rem 0 0;margin:2.8rem 0 0}
.offer-fieldset>legend{padding:0 .9rem 0 0;font-size:1.2rem;font-weight:600;color:var(--heading);max-width:100%;line-height:1.45}
.offer-section-number{display:inline-grid;place-items:center;inline-size:2.25rem;block-size:2.25rem;margin-right:.75rem;background:var(--tint);color:var(--heading);font-size:.8125rem;border-radius:50%;vertical-align:middle;font-variant-numeric:tabular-nums}
.offer-field{display:flex;flex-direction:column;gap:.45rem;margin-bottom:1.35rem;min-width:0}
.offer-field label{font-size:.9375rem;font-weight:500;color:var(--heading);line-height:1.5}
.offer-field label span{font-size:.875rem;color:var(--muted);font-weight:400}
.offer-field .required-mark,.offer-lots .required-mark{color:var(--accent);font-weight:600}
.offer-field :is(input,select,textarea){font:inherit;font-size:1rem;line-height:1.5;color:var(--ink);background:var(--soft);border:1px solid #8190a1;border-radius:.4rem;padding:.9rem 1rem;min-width:0;min-height:3.4rem;width:100%;max-width:100%;transition:border-color .2s,box-shadow .2s,background-color .2s}
.offer-field :is(input,select,textarea):hover{border-color:var(--heading)}
.offer-field input::placeholder{color:var(--muted);opacity:1}
.offer-field select{white-space:normal;font-weight:500;padding-right:2rem}
.offer-field textarea{resize:vertical;min-height:8rem}
.offer-field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.offer-field [aria-invalid="true"]{border:2px solid var(--accent)}
.offer-field :is(input,select,textarea):focus-visible,.offer-check input:focus-visible{outline:3px solid var(--focus);outline-offset:3px;background:var(--bg)}
.offer-field :disabled{opacity:1;cursor:default}
.offer-service-field select{background:var(--tint);border-color:var(--heading);color:var(--heading)}
.form-provider-note{font-size:.875rem;color:var(--muted);padding:.85rem 1rem;background:var(--tint);border-left:3px solid var(--accent);margin-bottom:1.35rem;line-height:1.6}
.offer-panel .offer-commune-note{margin-top:-.35rem}
.offer-lots{min-inline-size:0;margin:0 0 1.75rem;padding:0;border:0}
.offer-lots>legend{color:var(--heading);font-size:.9375rem;font-weight:500;line-height:1.5}
.offer-lots-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.2rem}
.offer-lot-field{margin:0;padding:.9rem;background:var(--soft);border:1px solid var(--line);border-radius:.5rem}
.offer-lot-field label{font-size:.875rem;min-height:2.65rem;display:flex;align-items:flex-start}
.offer-lot-field input{background:var(--bg);padding:.65rem;min-height:3.25rem;font-variant-numeric:tabular-nums;font-size:1.25rem}
.offer-lots-footer{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-top:1.2rem}
.offer-check{display:flex;align-items:flex-start;gap:.65rem;font-size:.875rem;color:var(--muted);line-height:1.5;cursor:pointer;min-height:2.75rem}
.offer-check input{flex-shrink:0;width:1.15rem;height:1.15rem;margin:.1rem 0 0;accent-color:var(--red)}
.offer-lots-total{font-size:.875rem;font-weight:600;color:var(--heading);padding:.35rem .7rem;background:var(--tint);border-radius:.2rem}
.form-error{font-size:.875rem;color:var(--accent);line-height:1.5}
.form-error-summary{padding:1.25rem;border:2px solid var(--accent);margin-block:1.5rem;font-size:.9375rem;border-radius:.4rem}
.form-error-summary p{font-weight:600}.form-error-summary ul{padding-left:1.4rem;margin-block:.5rem 0}
.form-error-summary a{display:inline-block;padding-block:.15rem}
.offer-form-finish{margin-top:.5rem;padding-top:1.4rem;border-top:1px solid var(--line)}
.form-data-note{font-size:.875rem;color:var(--muted);margin:0;line-height:1.6}
.form-preview-note{font-size:.875rem;padding:1rem;margin-top:1.25rem;background:var(--tint);border-left:3px solid var(--heading);color:var(--ink);line-height:1.6}
.offer-submit{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.5rem}
.offer-submit .btn{white-space:normal;min-height:3.5rem;min-width:min(100%,17rem);border-radius:.3rem;font-size:.9375rem}
.offer-submit .btn:disabled{cursor:default;opacity:1;transform:none}
.form-status{margin-top:1.5rem;padding:1.25rem;background:var(--tint);border-left:3px solid var(--heading);font-size:.9375rem;border-radius:.25rem}.form-status[data-state="error"]{border-color:var(--accent)}
.offer-aside{display:grid;gap:1.5rem;min-width:0}
.offer-aside-art{background:#fff;overflow:hidden;border:1px solid var(--line);border-radius:45% 45% .25rem .25rem}
.offer-aside-art img{width:100%;aspect-ratio:1;object-fit:cover;object-position:center}
.offer-aside-art figcaption{padding:1.25rem 1.5rem;color:#1B3A5C;font-size:1rem;line-height:1.6;border-top:1px solid #d4dce5}
.offer-aside-art strong{font-weight:600}
.offer-contacts{min-width:0;border-radius:.5rem;padding:clamp(1.4rem,2.5vw,2.5rem);--focus:#fff}
.offer-contacts h2{font-size:1.55rem;color:#fff;line-height:1.25}
.offer-contacts .phone{font-size:clamp(1.05rem,1.6vw,1.45rem);white-space:normal}
.offer-contacts .contact-label{font-size:.875rem}.offer-contacts .emergency{margin-block:1.25rem}.offer-contacts .emergency p{font-size:.9375rem}
@media(max-width:1100px){.offer-layout{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:1.5rem}.offer-panel{padding:1.75rem}.offer-lots-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.offer-field-row{gap:1rem}.offer-contacts{padding:1.5rem}}
@media(max-width:900px){.offer-page-intro{grid-template-columns:1fr;gap:1.5rem}.offer-page-intro .lead{max-width:43rem}.offer-layout{grid-template-columns:1fr}.offer-panel{scroll-margin-top:2rem;padding:clamp(1.5rem,5vw,3rem)}.offer-lots-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.offer-aside{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.offer-contacts{display:block}.offer-aside-art img{aspect-ratio:1.05}}
@media(max-width:600px){.offer-panel{padding:1.25rem}.offer-field-row{grid-template-columns:1fr;gap:0}.offer-lots-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.offer-lot-field{padding:.75rem}.offer-lot-field label{min-height:2.65rem}.offer-aside{grid-template-columns:1fr}.offer-aside-art{max-width:28rem;margin-inline:auto}.offer-fieldset>legend{font-size:1.1rem}.offer-submit .btn{width:100%}.offer-page-intro h1{font-size:clamp(2.5rem,10vw,3.5rem)}}
@media(prefers-reduced-motion:reduce){.offer-field :is(input,select,textarea){transition:none}}

/* The map occupies its own section in normal flow, below the complete form. */
.office-location{background:var(--soft);border-block:1px solid var(--line)}
.office-location-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.office-location-copy{min-width:0}.office-location-copy h2{font-size:clamp(2rem,3.7vw,3.5rem)}
.office-location-copy address{margin-block:1.8rem 1.1rem;font-style:normal;font-weight:600;color:var(--heading);font-size:1.125rem}
.office-location-copy p:not(.eyebrow){max-width:38ch;color:var(--muted)}
.office-location-copy .actions{align-items:flex-start;flex-direction:column;gap:1.25rem}
.office-location-copy .btn{gap:.5rem;flex-wrap:wrap;max-width:100%;text-align:center}
.link-context{font-size:.75rem;font-weight:400}
.office-map-card{min-width:0;border:1px solid var(--line);border-radius:.5rem;overflow:hidden;background:var(--bg)}
.office-map-surface{display:grid;min-width:0;min-height:25rem;background:var(--tint)}
.office-map-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.25rem;gap:1rem;text-align:center;color:var(--heading)}
.office-map-placeholder svg{width:4rem;height:4.8rem;color:var(--accent)}
.office-map-placeholder strong{font:600 1.6rem/1.2 Montserrat,Arial,sans-serif}.office-map-placeholder span{font-size:.9375rem;color:var(--muted)}
.office-map-placeholder .btn{margin-top:.5rem;white-space:normal}
.office-map-surface iframe{display:block;width:100%;height:100%;min-height:25rem;border:0;color-scheme:light;background:#fff;filter:grayscale(1)}
.office-map-caption{padding:1rem 1.25rem;font-size:.8125rem;color:var(--muted);line-height:1.65}
.office-map-caption .text-link{margin-top:.75rem;background:transparent;color:var(--heading);border:0;border-bottom:1px solid currentColor;padding:0 0 .25rem;min-height:2.75rem}
.office-map-status:empty{display:none}
@media(max-width:900px){.office-location-grid{grid-template-columns:1fr}.office-location-copy p:not(.eyebrow){max-width:55ch}.office-map-surface,.office-map-surface iframe{min-height:22rem}}
