:root {
  color-scheme: light;
  --ink: #122e2c;
  --muted: #4c625e;
  --teal: #075d55;
  --teal-dark: #064a43;
  --line: #d9e5e1;
  --paper: #fff;
  --canvas: #f7faf8;
  --mint: #eaf5f1;
  --radius: 23px;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--canvas);
}
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; min-width: 0; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
p { line-height: 1.55; }
a { color: inherit; }
:focus-visible { outline: 3px solid #08786d; outline-offset: 4px; }
:focus:not(:focus-visible) { outline: none; }
svg { display: block; }
.symbols { width: 0; height: 0; position: absolute; overflow: hidden; }
.icon { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.sr-only, .choice-input { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip-link { position: absolute; z-index: 5; left: 16px; top: 12px; padding: 10px 15px; background: white; transform: translateY(-160%); }
.skip-link:focus { transform: none; }
.shell { max-width: 1168px; margin-inline: auto; padding-inline: 30px; }
.site-header { background: var(--paper); border-bottom: 1px solid var(--line); }
.header-inner { min-height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.brand { display: flex; align-items: center; gap: 10px; line-height: 1.08; }
.brand img { object-fit: contain; }
.brand strong { display: block; font-family: Georgia, serif; font-size: 20px; }
.brand span { display: block; color: var(--teal); font-size: 10px; font-weight: 800; letter-spacing: .13em; margin-top: 4px; text-transform: uppercase; }
.private-tag { display: inline-flex; align-items: center; gap: 6px; color: var(--teal-dark); background: var(--mint); border: 1px solid #d2e8df; border-radius: 999px; padding: 7px 11px; font-size: 12px; font-weight: 750; white-space: nowrap; }
.private-tag .icon { width: 14px; height: 14px; }
.hero { isolation: isolate; position: relative; overflow: hidden; display: grid; grid-template-columns: 1.25fr 1fr; min-height: 295px; margin-block: 25px 27px; background: #e7f3ed; border: 1px solid #d5e8df; border-radius: 28px; }
.hero-content { position: relative; z-index: 1; align-self: center; padding: 32px 16px 34px 44px; }
.eyebrow { color: var(--teal); font-weight: 800; font-size: 11px; letter-spacing: .14em; line-height: 1.4; text-transform: uppercase; }
.location { display: flex; align-items: center; gap: 6px; }
.location .icon { width: 16px; height: 16px; }
.hero h1 { font: 400 clamp(46px, 5.5vw, 76px)/.99 Georgia, serif; letter-spacing: -.065em; margin: 11px 0 14px; }
.hero h1 em { color: var(--teal); font-weight: 400; }
.hero p { max-width: 395px; margin: 0; color: #3e5b54; font-size: 15px; }
.hero-art { position: relative; display: grid; place-items: center; min-width: 0; }
.art-curve { position: absolute; inset: -46% -30% -52% -16%; z-index: -1; border: 1px solid #b5ddd2; border-radius: 49%; background: radial-gradient(ellipse at 35% 50%, #c9e8dd 0%, #acdcd0 75%); transform: rotate(-22deg); }
.art-curve::after { content: ""; position: absolute; inset: 7%; border: 1px solid #e9f8f3; border-radius: inherit; }
.hero-spark { position: absolute; top: 12%; right: 8%; width: 42px; height: 42px; color: #226d64; opacity: .7; }
.brand-print { width: min(65%, 290px); aspect-ratio: 1.24; border: 1px solid #fff; overflow: hidden; border-radius: 17px; box-shadow: 0 15px 32px #1d5b4d29; transform: rotate(-7deg); background: #fbfbfa; }
.brand-print img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 54%; }

.booking { margin-bottom: 48px; scroll-margin-top: 12px; }
.progress { margin-bottom: 15px; }
.progress ol { display: flex; align-items: center; width: fit-content; list-style: none; gap: 16px; margin: 0; padding: 0; }
.progress li { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted); white-space: nowrap; }
.progress li:not(:last-child)::after { content: ""; display: block; width: clamp(14px, 4vw, 52px); height: 1px; background: #cddcd7; margin-left: 8px; }
.progress li span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: white; border: 1px solid #cbded7; font-size: 12px; font-weight: 800; }
.progress li[aria-current="step"] { color: var(--teal-dark); }
.progress li[aria-current="step"] span { color: white; background: var(--teal); border-color: var(--teal); }
.progress li.completed span { color: var(--teal-dark); background: #daeee6; }
.progress li .icon { width: 15px; height: 15px; }
.booking-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, .46fr); align-items: start; gap: 18px; }
.panel { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 4px 14px #184a3e06; }
.main-panel { padding: 28px; }
.section-head { margin-bottom: 22px; }
.section-head h2, .done h2 { font: 400 clamp(31px, 4vw, 43px)/1.07 Georgia, serif; letter-spacing: -.043em; margin: 5px 0 7px; }
.section-head p { color: var(--muted); font-size: 14px; margin: 0; }
fieldset { border: 0; margin: 0; padding: 0; min-inline-size: 0; }
legend { padding: 0; }
.service-grid, .addon-grid, .fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.choice { min-width: 0; cursor: pointer; position: relative; display: flex; align-items: center; gap: 10px; min-height: 67px; padding: 9px 11px; background: white; border: 1px solid var(--line); border-radius: 13px; }
.choice:hover, .addon:hover { border-color: #85b7a8; }
.choice:has(input:checked), .addon:has(input[type="checkbox"]:checked) { background: #edf8f3; border-color: #57968a; }
.choice:has(input:focus-visible) { outline: 3px solid #08786d; outline-offset: 2px; }
.choice-copy { flex: 1; min-width: 0; }
.choice strong, .choice small { display: block; }
.choice strong { font-size: 13px; line-height: 1.3; }
.choice small { margin-top: 3px; font-size: 12px; color: var(--muted); }
.tile-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: #e6f3ec; color: var(--teal); flex: none; }
.choice .tile-icon .icon { width: 18px; height: 18px; }
.radio-mark { width: 15px; height: 15px; border-radius: 50%; border: 1.5px solid #81a39b; flex: none; background: white; }
.choice:has(input:checked) .radio-mark { border: 4px solid var(--teal); }
.rate-section, .field-section { margin-top: 23px; padding-top: 17px; border-top: 1px solid var(--line); }
.subheading { font-size: 15px; font-weight: 780; line-height: 1.4; }
.tier-options { display: grid; gap: 6px; margin-top: 8px; }
.tier-options .choice { min-height: 47px; padding-inline: 12px; }
.tier-options .choice strong { font-weight: 650; }
.tier-price { font-size: 13px; font-weight: 800; color: var(--teal-dark); text-align: right; }
.muted { color: var(--muted); }
.small { font-size: 12px; }
#tier-note { margin: 9px 0 0; }
.addon-section { margin-top: 19px; }
.addon-grid { margin-top: 8px; }
.addon { display: flex; align-items: center; gap: 7px; padding: 8px 9px; min-height: 60px; border: 1px solid var(--line); border-radius: 12px; }
.addon > label { display: flex; align-items: center; gap: 8px; min-width: 0; flex: 1; font-size: 13px; cursor: pointer; margin: 0; }
.addon strong, .addon small { display: block; }
.addon input[type="checkbox"] { margin: 0; width: 17px; height: 17px; flex: none; accent-color: var(--teal); }

.optional { font-size: 11px; font-weight: 600; color: var(--muted); }
legend .optional { margin-left: 5px; }
.notice { display: flex; gap: 9px; align-items: flex-start; background: #edf6f1; color: #254a42; padding: 12px; border-radius: 12px; border: 1px solid #daebe2; }
.notice p { margin: 0; font-size: 13px; }
.notice .icon { margin-top: 1px; width: 17px; height: 17px; }
.actions { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 24px; flex-wrap: wrap; }
.actions.end { justify-content: flex-end; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 46px; padding: 10px 15px; border-radius: 10px; font-size: 13px; font-weight: 780; text-align: center; border: 1px solid transparent; }
.button .icon { width: 17px; height: 17px; }
.primary { color: white; background: var(--teal); }
.primary:hover { background: var(--teal-dark); }
.secondary { color: var(--teal-dark); background: white; border-color: #bed5cb; }
.secondary:hover { background: var(--mint); }
.fields { gap: 13px 12px; margin-top: 4px; }
.full-field { grid-column: 1 / -1; }
label { display: block; font-size: 13px; font-weight: 730; margin-bottom: 5px; }
input:not([type="radio"]):not([type="checkbox"]), select, textarea { min-width: 0; max-width: 100%; width: 100%; min-height: 45px; border-radius: 8px; border: 1px solid #a8bfb7; background: white; color: var(--ink); padding: 8px 10px; font-size: 16px; }
.addon input[type="number"] { flex: 0 0 61px; width: 61px; min-height: 38px; padding-inline: 6px; }
input[type="date"], input[type="time"] { display: block; }
input[type="date"]::-webkit-date-and-time-value, input[type="time"]::-webkit-date-and-time-value { text-align: left; }
textarea { resize: vertical; }
small { color: var(--muted); display: block; font-size: 11px; margin-top: 4px; line-height: 1.45; }
.field-section { padding-top: 8px; }
.field-section legend { padding-right: 8px; }
.review-block { padding: 14px; margin-bottom: 10px; background: #f8fbf9; border: 1px solid var(--line); border-radius: 12px; }
.review-block h3 { margin: 0 0 8px; font-size: 15px; }
.review-block dl { display: grid; gap: 7px 12px; grid-template-columns: minmax(90px, .55fr) minmax(0, 1fr); margin: 0; font-size: 13px; }
.review-block dt { color: var(--muted); }
.review-block dd { margin: 0; font-weight: 650; overflow-wrap: anywhere; white-space: pre-wrap; }
.review-block dd ul { list-style: none; margin: 0; padding: 0; }
.done { text-align: center; padding: 22px 4px 26px; }
.done-icon { display: grid; place-items: center; width: 54px; height: 54px; margin: 0 auto 15px; border-radius: 50%; background: #daeee6; color: var(--teal-dark); }
.done-icon .icon { width: 28px; height: 28px; }
.done p { color: var(--muted); margin: 10px auto 17px; max-width: 405px; font-size: 14px; }
.sidebar { position: sticky; top: 14px; display: grid; gap: 11px; }
.summary-panel { padding: 19px; }
.summary-head { display: flex; align-items: center; gap: 9px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.summary-head h2 { font: 400 24px/1.12 Georgia, serif; letter-spacing: -.025em; margin: 1px 0 0; }
.summary-head .eyebrow { font-size: 9px; }
.summary-placeholder { font-size: 13px; color: var(--muted); margin: 12px 0 2px; }
.summary-service { font-size: 14px; font-weight: 780; margin: 12px 0 1px; }
.summary-detail { font-size: 12px; color: var(--muted); margin: 0 0 4px; }
.summary-addons { list-style: none; margin: 8px 0 0; padding: 0; font-size: 12px; }
.summary-addons li { display: flex; justify-content: space-between; gap: 5px; margin-top: 4px; }
.summary-total { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; border-top: 1px solid var(--line); margin: 10px 0 0; padding-top: 9px; font-size: 12px; color: var(--muted); }
.summary-total strong { font-size: 16px; color: var(--teal-dark); text-align: right; }
.summary-caption { color: var(--muted); font-size: 11px; margin: 5px 0 0; }
.preview-note { display: flex; gap: 9px; border: 1px solid #d6e8df; background: #edf6f1; padding: 13px; border-radius: 13px; color: #254a42; font-size: 12px; }
.preview-note p { margin: 2px 0 0; }
.preview-note .icon { width: 16px; height: 16px; }
.site-footer { border-top: 1px solid var(--line); background: #f0f6f2; padding-block: 17px 22px; }
.footer-inner { display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; font-size: 12px; }
.footer-inner span { display: block; color: var(--muted); margin-top: 4px; overflow-wrap: anywhere; }

@media (max-width: 840px) {
  .shell { padding-inline: 20px; }
  .hero-content { padding-left: 28px; }
  .main-panel { padding: 20px; }
  .booking-grid { gap: 12px; grid-template-columns: minmax(0, 1fr) minmax(210px, .44fr); }
  .summary-panel { padding: 15px; }
}
@media (max-width: 670px) {
  .shell { padding-inline: 14px; }
  .header-inner { min-height: 58px; }
  .brand strong { font-size: 16px; }
  .brand span { font-size: 9px; }
  .brand img { width: 42px; height: auto; }
  .private-tag { font-size: 11px; }
  .hero { margin-block: 13px 16px; min-height: 0; grid-template-columns: 1fr; border-radius: 19px; }
  .hero-content { padding: 22px 16px 20px; }
  .hero h1 { font-size: clamp(40px, 9.7vw, 61px); margin-block: 8px 10px; }
  .hero p { font-size: 13px; max-width: 330px; }
  .hero-art { display: none; }
  .progress { margin-bottom: 10px; }
  .progress ol { gap: 9px; }
  .progress li { gap: 5px; font-size: 12px; }
  .progress li:not(:last-child)::after { margin-left: 4px; }
  .progress li span { width: 25px; height: 25px; }
  .booking-grid { grid-template-columns: minmax(0, 1fr); }
  .sidebar { position: static; }
  .panel { border-radius: 17px; }
  .main-panel { padding: 15px; }
  .section-head { margin-bottom: 13px; }
  .section-head p { font-size: 13px; }
  .service-grid, .addon-grid { gap: 6px; }
  .choice { min-height: 61px; padding: 7px; gap: 6px; }
  .choice .tile-icon { width: 26px; height: 26px; border-radius: 7px; }
  .choice .tile-icon .icon { width: 15px; height: 15px; }
  .choice strong { font-size: 12px; }
  .choice small { font-size: 11px; }
  .radio-mark { width: 12px; height: 12px; }
  .choice:has(input:checked) .radio-mark { border-width: 3px; }
  .addon-grid, .fields { grid-template-columns: minmax(0, 1fr); }
  .actions { margin-top: 17px; }
  .booking { margin-bottom: 26px; }
}
@media (max-width: 350px) {
  .service-grid { grid-template-columns: minmax(0, 1fr); }
  .button { width: 100%; }
}
.form-error { color: #a02323; font-size: 13px; font-weight: 700; margin: 14px 0 0; }
.mobile-price { display: none; }
@media (max-width: 670px) {
  .mobile-price { display: block; margin: 15px 0 0; padding: 9px 11px; background: var(--mint); border-radius: 8px; color: var(--teal-dark); font-size: 13px; font-weight: 750; }
}

html{scroll-behavior:smooth}.site-nav{display:flex;gap:26px;padding-block:17px;flex-wrap:wrap;font-size:13px;font-weight:650}.site-nav a{text-decoration:none}.site-nav a:hover{text-decoration:underline}.hero{min-height:370px}.hero-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:25px;font-size:13px}.hero-actions a.button{text-decoration:none}.content-section{padding:42px 0;scroll-margin-top:20px;border-top:1px solid var(--line)}.content-section>h2,.contact-band h2{font:400 clamp(29px,4vw,43px)/1.13 Georgia,serif;letter-spacing:-.035em;margin:12px 0}.content-section>p{max-width:700px;color:var(--muted)}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}.gallery-empty{border:1px solid var(--line);background:linear-gradient(140deg,#e5f0e9,#f9f7ef);border-radius:20px;min-height:230px;padding:26px;display:flex;flex-direction:column;justify-content:end}.gallery-empty>span{font:italic 46px Georgia,serif;color:#86aaa0;margin-bottom:auto}.gallery-empty h3{font:24px Georgia,serif;margin:25px 0 0}.gallery-empty p{font-size:13px;color:var(--muted)}.policy-list{margin-top:25px;border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line);padding:20px 4px}summary{cursor:pointer;font-weight:650}details p{max-width:850px;color:var(--muted);font-size:14px;line-height:1.75}.manage-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:25px}.manage-card{padding:25px}.manage-card h3{font:28px Georgia,serif;margin:0}.manage-card form{display:grid;gap:10px}.manage-card form button{margin-top:8px}.manage-card p{font-size:14px}.button:disabled{cursor:default;opacity:.65}.policy-consent{display:block;line-height:1.6;font-size:14px;margin:20px 0}.policy-consent input{width:auto;display:inline}.contact-band{margin:30px 0 50px;padding:32px;border-radius:23px;background:#dfede5;display:flex;justify-content:space-between;gap:25px;align-items:center}.contact-band>div:last-child{display:grid;gap:14px;overflow-wrap:anywhere}.contact-band h2{font-size:30px;max-width:430px}#cancel-result{background:var(--mint);padding:14px;border-radius:10px}#policy-error{color:#a02323}@media(max-width:670px){.site-nav{gap:13px;font-size:12px;padding-block:14px}.hero{min-height:0}.gallery-grid,.manage-grid{grid-template-columns:1fr}.gallery-empty{min-height:180px}.content-section{padding:30px 0}.contact-band{display:block;padding:23px}.contact-band>div:last-child{margin-top:24px}.hero-actions{gap:15px}.hero-actions .button{font-size:13px}}

.cleaning-examples{display:grid;gap:28px;margin:28px 0}.example-card{background:#fff;border:1px solid #d7e6e1;border-radius:22px;padding:24px;overflow:hidden}.example-card h3{margin:0 0 8px}.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.photo-pair figure{margin:0;min-width:0}.photo-pair img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:14px}.photo-pair figcaption{font-size:12px;font-weight:600;padding:10px 2px;color:#365c54}@media(max-width:580px){.example-card{padding:16px}.photo-pair{grid-template-columns:1fr;gap:18px}}
