/* AlbertWash — shared visual system. Public, booking and client pages.
   Manrope echoes the geometric logo; restrained sand rules warm the blue palette.
   Keep page layouts and business controls in their existing stylesheets. */
@font-face {
  font-family:"Manrope";font-style:normal;font-weight:400 700;font-display:swap;
  src:url("../fonts/manrope-latin-variable.woff2") format("woff2");
}
:root {
  --aw-font: "Manrope", "Helvetica Neue", Arial, sans-serif;
  --carbon:#18252c;--graphite:#283941;--steel:#56656e;
  --azure:#09658f;--azure-deep:#064d70;--azure-pale:#f0f6f8;
  --paper:#f7f8f8;--sand:#b49a70;--sand-pale:#f8f5ef;
  --aw-sand-line:#d8cbb5;--line:#e0e5e6;
  --aw-h1: clamp(2.125rem, 3.8vw, 3.5rem);
  --aw-h2: clamp(1.625rem, 2.7vw, 2.5rem);
  --aw-h3: clamp(1.25rem, 2vw, 1.5rem);
  --aw-card-title: 1.375rem;
  --aw-label: .875rem;
  --aw-small: .875rem;
  --aw-control-height: 50px;
  --aw-control-radius: 4px;
  --aw-control-border: #c3b8a6;
  --aw-card-padding: clamp(20px, 3vw, 40px);
  --aw-content-gap: clamp(24px, 5vw, 72px);
  --aw-section-gap: clamp(40px, 6vw, 80px);
  --aw-page-top: clamp(32px, 4.5vw, 64px);
  --aw-page-bottom: clamp(56px, 6vw, 88px);
  --aw-shell-max: 1280px;
  --aw-shell-gutter: 32px;
  --aw-header-height: 96px;
  --display: var(--aw-font);
  --text: var(--aw-font);
  --radius: var(--aw-control-radius);
}
html {scroll-padding-top:calc(var(--aw-header-height) + 20px)}
body {font-family:var(--aw-font);font-size:16px;line-height:1.65;color:var(--carbon)}
/* Explicit legacy contexts keep the same shared type scale despite old specificity. */
:is(h1,.hero-copy h1,.booking-page .booking-intro h1,.contact-shell h1,.client-shell h1,.legal-shell h1,.city-hero h1,.urgent-intro h1,.urgent-received h1) {
  font-family:var(--aw-font);font-size:var(--aw-h1);font-weight:650;
  line-height:1.12;letter-spacing:-.045em;text-transform:none;overflow-wrap:break-word;
}
:is(h2,.section-head h2,.zones h2,.pro-section h2,.faq-section h2,.city-content h2,.aw-local-services h2,.urgent-section h2) {
  font-family:var(--aw-font);font-size:var(--aw-h2);font-weight:500;
  line-height:1.2;letter-spacing:-.025em;text-transform:none;
}
:is(h3,.cards h3,.grid3 h3,.about-card h3,.aw-local-services h3) {
  font-family:var(--aw-font);font-size:var(--aw-h3);font-weight:600;
  line-height:1.3;letter-spacing:-.015em;text-transform:none;
}
:is(.urgent-form-card h2,.booking-card .confirmation-head h2,.booking-card legend) {font-size:var(--aw-card-title);font-weight:600;line-height:1.3;letter-spacing:-.02em}
p {line-height:1.65}
.lead {font-size:1rem;line-height:1.75;color:var(--steel)}
:is(.eyebrow,.urgent-form-card .eyebrow) {font-size:.75rem;font-weight:600;line-height:1.5;letter-spacing:.11em;margin-bottom:14px}
.tiny,small {font-size:var(--aw-small);line-height:1.6}
:is(.booking-shell,.contact-shell,.client-shell,.legal-shell,.legal-page main,.city-shell,.urgent-shell,.urgent-received) {
  width:min(calc(100% - var(--aw-shell-gutter)*2),var(--aw-shell-max));
  max-width:var(--aw-shell-max);margin-inline:auto;
  padding:var(--aw-page-top) 0 var(--aw-page-bottom);min-width:0;
}
.urgent-layout,.contact-shell {grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:var(--aw-content-gap)}
.urgent-intro {padding:0}
.urgent-intro h1 {margin:0 0 24px;max-width:600px}
.urgent-promise {font-size:1.125rem;font-weight:500;line-height:1.65}
:is(.urgent-form-card,.booking-card,.aw-booking-layout .booking-card,.contact-card,.client-card) {
  min-width:0;border:1px solid var(--aw-sand-line);border-radius:var(--aw-control-radius);
  padding:var(--aw-card-padding);background:var(--white);box-shadow:0 8px 32px rgb(24 37 44 / 3%);
}
.contact-card .contact-form {padding:0;border:0;background:transparent;box-shadow:none}
.urgent-form-card {scroll-margin-top:calc(var(--aw-header-height) + 20px)}
.urgent-fields {gap:18px 16px;margin:24px 0}
:is(form label,.client-area .client-form label,.booking-card .field-label,.urgent-fields label,.contact-form label,.client-form label) {
  font-family:var(--aw-font);font-size:var(--aw-label);font-weight:500;line-height:1.5;
  letter-spacing:0;text-transform:none;
}
:is(.booking-card .form-field,.booking-card,.contact-form,.urgent-fields,.client-form) input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=submit]),
:is(.booking-card .form-field,.booking-card,.contact-form,.urgent-fields,.client-form) select,
:is(.booking-card .form-field,.booking-card,.contact-form,.urgent-fields,.client-form) textarea {
  box-sizing:border-box;min-width:0;max-width:100%;width:100%;min-height:var(--aw-control-height);height:var(--aw-control-height);
  border:1px solid var(--aw-control-border);border-radius:var(--aw-control-radius);
  padding:12px 14px;background:#fdfcfb;color:var(--carbon);
  font-family:var(--aw-font);font-size:16px;font-weight:400;line-height:1.5;letter-spacing:0;text-transform:none;
}
:is(.contact-form,.urgent-fields,.client-form,.booking-card) textarea {height:auto;min-height:120px;resize:vertical}
:is(input,select,textarea)::placeholder {color:var(--steel);opacity:1;font-weight:400}
:is(.btn,.btn.small,.urgent-form-card button.btn,.client-form .btn) {
  box-sizing:border-box;min-height:48px;height:auto;border-radius:var(--aw-control-radius);
  padding:12px 20px;font-family:var(--aw-font);font-size:.875rem;font-weight:600;
  line-height:1.4;letter-spacing:0;text-transform:none;white-space:normal;text-align:center;
}
.site-header,.site-header.simple,.site-header.is-scrolled {
  height:var(--aw-header-height);padding-inline:max(var(--aw-shell-gutter),calc((100vw - var(--aw-shell-max))/2));gap:20px;
}
.site-header .brand-logo {width:212px;max-height:44px;height:auto;object-fit:contain}
.site-header nav {gap:18px}
.site-header>nav:not(.aw-menu-panel) .btn.small,.site-header nav .btn.small {min-height:44px!important;height:auto;padding:10px 14px;font-size:.875rem;border-radius:var(--aw-control-radius)}
.site-header nav a[aria-current=page] {color:var(--azure-deep);font-weight:600}
.menu-toggle {min-width:44px;min-height:44px;width:44px;height:44px;flex-basis:44px}
.urgent-summary,.aw-summary {border-radius:var(--aw-control-radius);background:var(--azure-pale);padding:20px}
.urgent-summary dl>div,.aw-summary dl>div {font-size:.875rem;line-height:1.5}
.urgent-summary .urgent-total,.aw-summary .aw-total {font-size:1.25rem;font-weight:600}
.urgent-summary p,.urgent-disclaimer,.urgent-consent,.urgent-fields small {font-size:.8125rem;line-height:1.6;font-weight:400;letter-spacing:0;text-transform:none}
.urgent-optional summary {font-size:.875rem;min-height:44px;line-height:1.6;padding-block:10px}
.urgent-error {border-radius:var(--aw-control-radius);font-size:.875rem;line-height:1.6}
.urgent-fields [hidden],[hidden] {display:none!important}
.urgent-fields select {text-overflow:ellipsis}
.urgent-section {padding:var(--aw-section-gap) 0;margin-top:var(--aw-section-gap)}
.urgent-section:last-child {padding-bottom:0}
.urgent-steps {gap:24px}
.urgent-steps li {font-size:1rem;line-height:1.6}
.urgent-prices {gap:var(--aw-content-gap)}
.urgent-prices table {font-size:.875rem}
.urgent-prices caption {line-height:1.6}
.urgent-prices td {font-variant-numeric:tabular-nums;white-space:nowrap}
.urgent-faq {max-width:none}
.urgent-faq summary,.faq-list summary {font-size:1rem;font-weight:500;line-height:1.6;min-height:44px;padding-block:9px}
.urgent-faq details {padding:12px 0}
.urgent-home-cta {width:min(calc(100% - var(--aw-shell-gutter)*2),var(--aw-shell-max));max-width:var(--aw-shell-max);margin:32px auto 40px;padding:28px;border-radius:var(--aw-control-radius)}
.urgent-home-cta h2 {font-size:var(--aw-h3)}
.urgent-home-cta .btn {font-size:.9375rem}
.urgent-mobile-bar {top:var(--aw-header-height);min-height:44px;padding:11px 12px;font-size:.875rem;line-height:1.5}
.urgent-local-grid {display:grid;grid-template-columns:1fr 1fr;gap:var(--aw-content-gap)}
.urgent-local-links {display:flex;flex-wrap:wrap;gap:8px 16px;padding:0;list-style:none}
.urgent-local-links a {display:inline-flex;align-items:center;min-height:44px;color:var(--azure-deep)}
.urgent-local-facts {margin:0;display:grid;gap:12px}
.urgent-local-facts dt {font-size:.875rem;font-weight:600}
.urgent-local-facts dd {margin:3px 0 0;color:var(--steel)}
.aw-breadcrumb {font-size:.875rem;line-height:1.6;margin:0 0 24px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.aw-breadcrumb a {display:inline-flex;align-items:center;min-height:44px}
.aw-footer {padding:64px max(var(--aw-shell-gutter),calc((100vw - var(--aw-shell-max))/2)) 28px}
.aw-footer .brand-logo {width:212px}
.footer-links a,.footer-legal a,.footer-languages a {display:inline-flex;align-items:center;min-height:44px;line-height:1.5}
.footer-links,.footer-legal {gap:4px 20px}
.client-card,.client-form {min-width:0;max-width:100%;overflow-wrap:break-word}
.client-form label {min-width:0}
.client-form .btn {max-width:100%;overflow-wrap:anywhere}
:focus-visible {outline:3px solid var(--azure);outline-offset:3px}
@media(max-width:1180px) {:root{--aw-shell-gutter:28px;--aw-header-height:90px}.site-header nav{gap:12px}.site-header .brand-logo{width:180px}}
@media(max-width:980px) {:root{--aw-shell-gutter:24px;--aw-header-height:84px}.site-header .brand-logo{width:180px}}
@media(max-width:760px) {
  :root{--aw-shell-gutter:20px;--aw-header-height:76px;--aw-card-padding:22px;--aw-page-top:32px;--aw-page-bottom:64px;--aw-content-gap:28px}
  .site-header,.site-header.simple,.site-header.is-scrolled{padding-inline:var(--aw-shell-gutter);gap:10px}
  .site-header .brand-logo{width:150px}
  .site-header nav{gap:7px}
  .site-header>nav:not(.aw-menu-panel) .btn.small,.site-header nav .btn.small{padding:10px 12px;font-size:.875rem;min-height:44px!important}
  .urgent-layout,.contact-shell,.urgent-local-grid{display:block}
  .urgent-intro{padding:0}
  .urgent-intro .lead{font-size:1rem}
  .urgent-form-card,.contact-card{margin-top:28px}
  .urgent-fields{grid-template-columns:minmax(0,1fr);gap:16px;margin:24px 0}
  .urgent-intro .urgent-situations{display:none}
  .urgent-price-note{margin:24px 0;padding:18px 0}
  .urgent-price-note>strong{font-size:2.25rem}
  .urgent-fields label{font-size:var(--aw-label)}
  .urgent-form-card button.btn{font-size:.9375rem;min-height:50px;padding:14px}
  .urgent-summary dl>div{font-size:.875rem}
  .urgent-home-cta{padding:24px;margin:24px auto}
  .urgent-prices th,.urgent-prices td{padding:12px 6px;font-size:.8125rem;overflow-wrap:break-word}
  .urgent-prices table{table-layout:fixed}
  .urgent-steps{grid-template-columns:1fr 1fr}
  .urgent-local-facts{margin-top:24px}
  .aw-footer{padding:48px var(--aw-shell-gutter) 24px}
  .aw-breadcrumb{margin-bottom:18px}
}
@media(max-width:420px) {:root{--aw-shell-gutter:16px;--aw-card-padding:20px}.site-header .brand-logo{width:140px}}
@media(max-width:360px) {.site-header .brand-logo{width:130px}.site-header>nav:not(.aw-menu-panel) .btn.small,.site-header nav .btn.small{font-size:.8125rem;padding-inline:10px}.urgent-steps{gap:18px}.client-form .btn{padding-inline:14px}}

/* Editorial hierarchy and fine rules. */
.hero-copy h1 {font-size:clamp(2.5rem,4.45vw,4.25rem);font-weight:650;line-height:1.07;letter-spacing:-.05em}
.hero-copy h1 .accent-line {font-size:.78em;font-weight:500;line-height:1.2;margin-top:14px;letter-spacing:-.04em}
.hero-copy .lead {max-width:390px;font-size:1rem;line-height:1.85}
:is(.eyebrow,.urgent-form-card .eyebrow) {font-size:.6875rem;letter-spacing:.16em;font-weight:700}
.hero-spec.hero-spec-photo {border:1px solid var(--aw-sand-line);border-radius:3px;padding:20px 24px}
.hero-spec strong {font-family:var(--aw-font);font-weight:600}
.site-header,.site-header.simple,.site-header.is-scrolled {border-bottom:1px solid #eeeae3}
.site-header nav a {font-family:var(--aw-font);font-size:.8125rem;font-weight:500}
.aw-breadcrumb {font-size:.75rem;color:var(--steel)}
.trust-ribbon strong {font-family:var(--aw-font);font-weight:600;font-size:.9375rem}
.trust-ribbon>div+div {border-color:var(--aw-sand-line)}
.services-section {background:#f6f7f7}
.cards article,.cards article+article {background:#fff;border:1px solid var(--aw-sand-line);padding:30px 26px;border-radius:4px;will-change:auto}
.cards article.featured {background:#eef5f8;border:1px solid #a8c2cf;margin-top:0}
.cards .price {font-family:var(--aw-font);font-size:3rem;font-weight:500;letter-spacing:-.055em;margin:24px 0 20px;font-variant-numeric:lining-nums}
.cards .badge {font-family:var(--aw-font);font-size:.6875rem;letter-spacing:.12em}
.cards article>a {border-color:var(--aw-sand-line);font-family:var(--aw-font);font-weight:600;font-size:.8125rem;border-radius:3px}
.grid3 article,.grid3 article+article {border-top-color:var(--aw-sand-line)}
.grid3 b,.urgent-steps li:before {color:#806b49;font-family:var(--aw-font);font-size:.8125rem;font-weight:600;letter-spacing:.08em}
.zones,.pro-section {border:1px solid var(--aw-sand-line);border-radius:4px}
.faq-list summary {font-family:var(--aw-font);text-transform:none;letter-spacing:0}
.urgent-home-cta {background:#f6f8f8;border:1px solid var(--aw-sand-line);padding:30px 32px}
.urgent-home-cta h2 {font-weight:600;letter-spacing:-.03em}
.urgent-intro h1 {font-size:clamp(2.125rem,3.3vw,3.125rem);max-width:560px}
.urgent-intro>.lead {max-width:440px}
.urgent-intro>.btn {margin-top:18px}
.urgent-price-note {border-block-color:var(--aw-sand-line);gap:24px}
.urgent-price-note>strong {font-size:2.75rem;letter-spacing:-.05em;font-weight:500}
.urgent-promise {font-weight:500}
.urgent-summary,.aw-summary {border:1px solid var(--aw-sand-line);background:#f8f7f4}
.urgent-summary .urgent-total,.aw-summary .aw-total {border-top-color:var(--aw-sand-line);letter-spacing:-.02em}
.urgent-section {border-top-color:var(--aw-sand-line)}
.urgent-prices thead {background:#f6f4ef}
.urgent-prices th {font-weight:600}
.urgent-form-card .eyebrow {color:#796343}
.urgent-fields label,.contact-form label,.client-form label {gap:9px}
:is(.booking-card,.contact-form,.urgent-fields,.client-form) :is(input,select,textarea) {transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}
:is(.booking-card,.contact-form,.urgent-fields,.client-form) :is(input,select,textarea):focus {--aw-control-border:var(--azure);border-color:var(--azure);outline:0;box-shadow:0 0 0 3px rgb(9 101 143 / 12%);background:#fff}
:is(input,textarea)::placeholder {color:#6b7377}
input[type=checkbox],input[type=radio] {accent-color:var(--azure)}
.btn {transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}
.btn:hover {box-shadow:0 3px 10px rgb(6 77 112 / 12%)}
.btn:active {box-shadow:none}
.btn:disabled {box-shadow:none}
.aw-footer {border-top:1px solid var(--sand);background:#17262e}
.footer-links a,.footer-legal a {text-underline-offset:5px}
@media(hover:hover) and (pointer:fine) {
  .cards article:hover,.cards article.featured:hover {transform:none!important;border-color:var(--sand);box-shadow:0 8px 24px rgb(24 37 44 / 5%)!important}
  .cards article:hover>a {transform:none}
  :is(.booking-card,.contact-form,.urgent-fields,.client-form) :is(input,select,textarea):hover:not(:focus) {border-color:#9b8b72}
}
@media(max-width:760px) {
  .hero-copy h1 {font-size:clamp(2.25rem,8.8vw,3.25rem);line-height:1.09}
  .hero-copy h1 .accent-line {margin-top:12px;font-size:.8em;line-height:1.22}
  .hero-copy .lead {font-size:.9375rem;line-height:1.8}
  .hero-spec.hero-spec-photo {padding:16px 18px}
  .cards article,.cards article+article,.cards article.featured {padding:26px 22px}
  .urgent-home-cta {padding:24px}
  .urgent-intro h1 {font-size:clamp(2rem,7.6vw,2.65rem);line-height:1.15;letter-spacing:-.04em}
  .urgent-promise {font-size:1rem}
  .urgent-price-note>strong {font-size:2.5rem}
  .urgent-summary,.aw-summary {padding:16px}
}
