/* Original brand artwork: displayed intact, without filters or redrawn lettering. */
:root { --navy: #06303f; --navy2: #06303f; }
/* Institutional tokens shared by future Maison Privat pages. */
:root { --brand-petroleum: #06303f; --brand-white: #fff; --brand-accent: #d4ad67; }
.nav { height: 120px; background: var(--navy); color: white; }
.original-logo { display: block; width: 105.6px; height: auto; object-fit: contain; }
.nav-cta { border: 1px solid var(--gold); }
.hero { height: min(740px, calc(100vh - 120px)); }
@media (max-width: 850px) {
  .nav { height: 108px; gap: 20px; }
  .original-logo { width: 92.8px; }
  .hero { height: calc(100vh - 108px); }
}
.menu-toggle { display: none; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.nav nav { gap:24px; }
.booking-link { color:#fff; text-decoration:underline; text-underline-offset:5px; }
.service { grid-template-columns: 1.3fr .7fr; }
.service h2 { margin-bottom:24px; }
.service-intro { max-width:570px; color:#d1dde1; font-size:16px; line-height:1.7; margin:0 0 36px; }
.service ul { gap:28px 32px; }
.service li span { font-size:15px; }
.quote { background:var(--brand-white); color:var(--brand-petroleum); padding:65px clamp(28px,4vw,65px); border-bottom:1px solid #e2e8eb; }
.quote>p { font-size:clamp(30px,2.8vw,40px); line-height:1.25; margin:0 0 26px; }
.quote>p,.quote>small,.quote>.local-proof { width:100%; max-width:360px; margin-left:auto; margin-right:auto; }
.quote small { line-height:1.7; }
.local-proof { margin-top:48px; border-top:2px solid var(--brand-accent); padding-top:26px; }
.local-proof h3 { font:600 19px 'DM Sans',sans-serif; margin:0 0 14px; }
.local-proof p { font:400 16px/1.75 'DM Sans',sans-serif; margin:0; color:#596d77; }
.channels { padding:46px 28px; text-align:center; background:white; }
.channels>p { max-width:840px; font-size:14px; line-height:1.7; color:#596d77; margin:0 auto 22px; }
.channels>div { display:flex; flex-wrap:wrap; justify-content:center; gap:20px 48px; color:var(--navy); font-weight:600; font-size:20px; }
.evaluation { background:#f3f6f7; }
.footer-contact { display:flex; flex-direction:column; gap:10px; font-size:14px; overflow-wrap:anywhere; }
.footer-contact p { margin:0 0 4px; color:white; }
.footer-contact small { margin-top:8px; font-size:12px; }
.footer-end { font-size:14px; }
.lead-form input,.lead-form select { font-size:16px; }
.lead-form label { font-size:14px; }
.field-error { display:block; color:#a42e2e; font-size:14px; margin-top:6px; font-weight:400; }
[aria-invalid="true"] { border-color:#a42e2e!important; }
.back { min-height:44px; }
:focus-visible { outline:2px solid var(--gold); outline-offset:4px; }
.form-step legend:focus { outline:none; }
@media(max-width:1000px) {
  .nav nav { gap:16px; }
  .service { grid-template-columns:1fr; }
  .quote { padding:48px clamp(28px,8vw,80px); }
  .local-proof { margin-top:30px; }
}
@media(max-width:850px) {
  .menu-toggle { display:block; color:white; background:transparent; border:1px solid #698590; padding:10px 16px; min-height:44px; font:500 16px 'DM Sans',sans-serif; cursor:pointer; }
  .nav nav { display:none; position:absolute; left:0; right:0; top:100%; padding:18px 28px 24px; background:var(--navy); box-shadow:0 12px 16px #00182222; flex-direction:column; align-items:stretch; gap:4px; }
  .nav nav.is-open { display:flex; }
  .nav nav>a:not(.nav-cta) { display:block; padding:14px 0; font-size:16px; }
  .nav-cta { margin-top:10px; text-align:center; font-size:14px; }
  .hero { height:auto; min-height:620px; padding:60px 0; }
  .hero-content { min-width:0; }
  .hero h1 { font-size:clamp(36px,7.8vw,58px); line-height:1.08; }
  .hero-copy { font-size:16px; }
  .service-card { padding:64px 28px; }
  .service ul { gap:22px; }
  .service li { padding-top:16px; }
  .service h2 { font-size:38px; }
  .intro { padding-top:64px; padding-bottom:38px; gap:24px; }
  .steps { padding-bottom:64px; }
  .steps article { margin-right:0; padding-right:0; }
  .evaluation { padding-top:64px; padding-bottom:64px; gap:32px; }
  .lead-form { min-height:0; display:flow-root; scroll-margin-top:20px; }
  .lead-form fieldset { min-width:0; }
  .lead-form fieldset.active { display:flow-root; }
  .lead-form legend { font-size:26px; }
  .hero-actions .button { width:auto; align-self:flex-start; padding-left:18px; padding-right:18px; font-size:14px; }
  .channels>div { font-size:18px; gap:16px 24px; }
  footer { gap:28px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; }
}

/* Final interaction and narrow-screen safeguards. */
.grid-2>* { min-width:0; }
.lead-form input,.lead-form select { max-width:100%; min-width:0; }
.lead-form .consent { flex-wrap:wrap; }
.consent>span { flex:1; min-width:0; }
.consent .field-error { flex-basis:100%; }
.privacy-open { border:0; background:none; padding:0; color:inherit; text-decoration:underline; font:inherit; cursor:pointer; }
#privacyDialog { max-width:560px; width:calc(100% - 40px); max-height:85vh; overflow:auto; border:0; padding:32px; color:var(--navy); line-height:1.65; }
#privacyDialog::backdrop { background:#06303faa; }
#privacyDialog h2 { font:500 28px 'Playfair Display',serif; }
#privacyDialog a { text-decoration:underline; overflow-wrap:anywhere; }
#receipt { overflow-wrap:anywhere; font-size:14px; }
button:disabled { cursor:wait; opacity:.65; }
.success[hidden],#submitError[hidden] { display:none; }
@media(min-width:851px) and (max-width:1100px) {
 .evaluation { grid-template-columns: .8fr 1.2fr; gap:32px; padding-left:40px; padding-right:40px; }
 .lead-form { padding:30px 24px; }
 .lead-form .grid-2 { grid-template-columns:1fr; }
}
@media(max-width:380px) {
 .service h2,.evaluation h2 { font-size:34px; }
 .hero-content { margin-left:24px; }
 .hero h1 { font-size:34px; }
 .hero-actions .button { font-size:13px; }
 .step-actions { flex-wrap:wrap; }
 .step-actions .submit { flex-basis:100%; }
}

.lead-form [hidden] { display:none!important; }
/* Privacy information uses the existing form and dialog surfaces. */
.lead-form .privacy-note { color:var(--muted); font-size:14px; line-height:1.55; margin:0 0 18px; }
.lead-form .privacy-note p { margin:0 0 10px; }
#privacyDialog { box-sizing:border-box; width:min(48rem,calc(100vw - 32px)); max-height:85dvh; overflow-y:auto; padding:24px; }
#privacyDialog p { font-size:16px; line-height:1.6; }
#privacyDialog h3 { font-size:18px; }
#phoneRequirement,#emailRequirement { font-size:14px; font-weight:400; }
