:root { --ink:#162824; --muted:#68746e; --sage:#dce8e1; --mint:#eaf3ee; --pine:#1f4a3c; --coral:#eb8a6b; --paper:#f7f8f5; --line:#d9dfda; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size:16px; line-height:1.45; }
.page-shell { max-width:1320px; margin:0 auto; min-height:100vh; display:grid; grid-template-columns:37% 63%; background:#fff; }
.hero { min-height:100vh; position:sticky; top:0; overflow:hidden; color:white; display:flex; flex-direction:column; justify-content:space-between; padding:2rem; }
.hero img { position:absolute; inset:0; height:100%; width:100%; object-fit:cover; }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(160deg, rgba(11,34,27,.78), rgba(14,49,38,.22) 52%, rgba(11,34,27,.5)); }
.hero-top,.hero-copy { position:relative; z-index:1; }.hero-top { display:flex; align-items:center; justify-content:space-between; gap:1rem; }.brand { letter-spacing:.18em; font-size:.85rem; font-weight:700; }.brand span { font-weight:400; }.theme-toggle { appearance:none; border:1px solid rgba(255,255,255,.55); border-radius:5px; padding:.55rem .7rem; background:rgba(8,28,22,.28); color:white; font:inherit; font-size:.78rem; font-weight:700; cursor:pointer; }
.hero-copy { max-width:360px; padding-bottom:2.5rem; }.eyebrow { font-size:.72rem; letter-spacing:.16em; font-weight:700; opacity:.86; }.hero h1 { font-family:Georgia, serif; font-size:clamp(2.3rem,4vw,4rem); font-weight:400; line-height:1.05; margin:.5rem 0 1.2rem; }.hero-copy p:last-child { font-size:1.05rem; max-width:26rem; }
.form-panel { padding:2.5rem clamp(1.5rem,4vw,4.5rem) 4rem; }.notice { display:flex; gap:.55rem; align-items:center; color:#426256; font-size:.88rem; background:var(--mint); border-radius:5px; padding:.7rem .9rem; margin-bottom:2rem; }.notice span{font-size:1.25rem;color:var(--pine)}
.form-section { border-top:1px solid var(--line); padding:2rem 0; }.section-heading { display:flex; gap:.85rem; align-items:baseline; margin-bottom:1.25rem; }.section-heading span { color:var(--coral); font-size:.78rem; font-weight:800; letter-spacing:.08em; }.section-heading h2 { font-family:Georgia,serif; font-size:1.55rem; font-weight:400; margin:0; }
.form-grid { display:grid; gap:1rem; }.form-grid.three { grid-template-columns:repeat(3,1fr); }.form-grid.two { grid-template-columns:repeat(2,1fr); }.address-row { grid-template-columns:2fr .8fr 1.2fr; }.wide { grid-column:auto; }.compact-top { margin-top:1rem; }.short-field { max-width:250px; }.delivery-field { max-width:430px; }.note-field { width:100%; }.key-field { max-width:620px; }
label,legend { color:#34443d; font-size:.88rem; font-weight:650; display:block; } strong { color:var(--coral); }.optional { color:#849089; font-size:.78rem; font-weight:500; margin-left:.25rem; }
input,select,textarea { margin-top:.45rem; width:100%; appearance:none; color:var(--ink); background:white; border:1px solid #cbd4ce; border-radius:5px; padding:.72rem .75rem; font:inherit; font-size:.95rem; outline:none; transition:border-color .16s,box-shadow .16s; } select { background-image:linear-gradient(45deg,transparent 50%,var(--pine) 50%),linear-gradient(135deg,var(--pine) 50%,transparent 50%); background-position:calc(100% - 15px) 50%,calc(100% - 10px) 50%; background-size:5px 5px,5px 5px; background-repeat:no-repeat; } textarea { resize:vertical; } input:focus,select:focus,textarea:focus { border-color:var(--pine); box-shadow:0 0 0 3px rgba(31,74,60,.12); }.package-options,.status-options { padding:0; margin:0; border:0; }.package-options legend,.status-options legend{margin-bottom:.65rem;}
.package-options { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }.package-card { position:relative; display:flex; align-items:flex-start; gap:.7rem; min-height:90px; padding:1rem; border:1px solid #cad5ce; border-radius:6px; cursor:pointer; transition:.15s; }.package-card:hover { border-color:#3b705d; background:#e7f1eb; }.package-card.selected { border-color:#3b705d; background:#d8e8df; }.package-card input { position:absolute; opacity:0; }.radio-mark { width:17px;height:17px;border-radius:50%;border:1.5px solid #8c9a92;flex:0 0 auto;margin-top:.15rem; }.package-card.selected .radio-mark{border:5px solid #3b705d;}.package-card b{display:block;color:var(--ink);}.package-card small{display:block;color:var(--muted);font-weight:400;margin-top:.28rem;line-height:1.35;}
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:.7rem; margin-top:1rem; }.service-card { display:flex; align-items:center; border:1px solid #d6ded8; border-radius:5px; padding:.7rem; cursor:pointer; color:var(--ink); font-size:.87rem; transition:.15s; }.service-card input { position:absolute; opacity:0; }.check-mark { display:none; }.service-card:has(input:checked) {border-color:#3b705d; background:#d8e8df;}
.status-options { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }.status-options legend { grid-column:1 / -1; }.status-options label { display:flex; gap:0; align-items:flex-start; font-weight:500; color:var(--ink); }.status-options input { display:none; }.status-choice { border:1px solid #d6ded8; border-radius:5px; padding:.75rem; cursor:pointer; transition:.15s; }.status-choice:has(input:checked) { border-color:#3b705d; background:#d8e8df; }.status-choice b { display:block; font-size:.9rem; }.status-choice small { display:block; margin-top:.16rem; color:var(--muted); font-size:.8rem; font-weight:400; }.confirmed-slot { max-width:600px; }
.contact-pair { padding:1rem; border:1px solid #dce3de; border-radius:6px; background:#fbfcfa; }.contact-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:.8rem; color:var(--ink); }.contact-heading b { font-size:.95rem; }.contact-heading span { font-size:.78rem; color:var(--muted); }.second-contact { background:white; border-style:dashed; }
.form-footer { display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--line); padding-top:1.5rem; }.form-footer p { color:var(--muted); font-size:.85rem; }.form-footer button { background:var(--pine); color:white; border:0; padding:.9rem 1.25rem; font:inherit; font-weight:700; border-radius:5px; cursor:pointer; transition:transform .14s,background .14s; }.form-footer button:hover {background:#153b2f; transform:translateY(-1px);}.form-footer button span{margin-left:.7rem;font-size:1.15rem;}.success { margin-top:1.2rem; border-left:3px solid var(--pine); background:var(--mint); padding:1rem; color:#244438; }.success b{display:block;margin-bottom:.15rem;}
.property-types { padding:0; margin:0; border:0; }.property-types legend { margin-bottom:.65rem; }.property-type-grid { margin-top:0; }.property-type-grid .service-card:has(input:checked) { background:#d8e8df; border-color:#3b705d; }
.choice-set,.date-targets { padding:0; margin:0; border:0; }.choice-set legend,.date-targets legend { margin-bottom:.65rem; }.choice-grid { margin-top:0; }.delivery-grid { grid-template-columns:repeat(3,1fr); margin-top:0; }.service-card small { color:var(--muted); font-size:.76rem; font-weight:400; }.schedule-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(210px,.55fr); gap:1rem; align-items:start; }.date-targets { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }.date-targets legend { grid-column:1 / -1; }.date-target { position:relative; border:1px solid #d6ded8; border-radius:5px; padding:.75rem; cursor:pointer; transition:.15s; }.date-target input { position:absolute; opacity:0; }.date-target b { display:block; color:var(--ink); font-size:.88rem; }.date-target small { display:block; margin-top:.25rem; color:var(--muted); font-weight:400; }.date-target:has(input:checked) { border-color:#3b705d; background:#d8e8df; }.inline-calendar { margin-top:.75rem; padding:.8rem; border:1px solid #d6ded8; border-radius:6px; background:#fbfcfa; }.calendar-header { display:flex; align-items:center; justify-content:space-between; text-transform:capitalize; color:var(--ink); }.calendar-header button { width:2rem; height:2rem; padding:0; border:1px solid #cad5ce; border-radius:4px; background:white; color:var(--pine); font-size:1.3rem; cursor:pointer; }.calendar-weekdays,.calendar-days { display:grid; grid-template-columns:repeat(7,1fr); gap:.2rem; text-align:center; }.calendar-weekdays { margin:.8rem 0 .35rem; color:var(--muted); font-size:.7rem; font-weight:700; }.calendar-day { aspect-ratio:1; border:0; border-radius:4px; background:transparent; color:var(--ink); font:inherit; font-size:.82rem; cursor:pointer; }.calendar-day:hover { background:#e7f0ea; }.calendar-day.today { outline:1px solid #b6c8bc; }.calendar-day.selected { background:var(--pine); color:white; font-weight:700; }
@media (max-width:900px){.page-shell{display:block;}.hero{position:relative;min-height:360px;padding:1.5rem;}.hero-copy{padding-bottom:0;}.form-panel{padding:1.5rem;}.form-grid.three,.service-grid{grid-template-columns:repeat(2,1fr);}.address-row{grid-template-columns:1fr 1fr;}.address-row .wide{grid-column:span 2;}}
@media (max-width:560px){.hero{min-height:310px;}.hero h1{font-size:2.45rem;}.form-panel{padding:1rem;}.form-section{padding:1.5rem 0;}.form-grid.three,.form-grid.two,.service-grid,.package-options,.address-row,.status-options,.date-targets,.schedule-grid{grid-template-columns:1fr;}.address-row .wide{grid-column:auto;}.form-footer{align-items:flex-start;gap:.7rem;flex-direction:column;}.form-footer button{width:100%;}}

body[data-theme="dark"] { --ink:#bac5be; --muted:#899a90; --sage:#24352d; --mint:#16271f; --pine:#67927f; --coral:#c68160; --paper:#111b18; --line:#34443d; color-scheme:dark; }
body[data-theme="dark"] .page-shell { background:#182520; }.theme-toggle:hover { background:rgba(8,28,22,.5); }body[data-theme="dark"] .hero-overlay { background:linear-gradient(160deg,rgba(5,15,12,.9),rgba(10,29,22,.58) 52%,rgba(5,15,12,.78)); }body[data-theme="dark"] .theme-toggle { background:#1c2c25; border-color:#526b5e; color:#e1e9e4; }body[data-theme="dark"] .notice { background:#16271f; color:#b8c9bd; }body[data-theme="dark"] label,body[data-theme="dark"] legend,body[data-theme="dark"] .contact-heading { color:var(--ink); }body[data-theme="dark"] input,body[data-theme="dark"] select,body[data-theme="dark"] textarea { background:#13201b; color:var(--ink); border-color:var(--line); }body[data-theme="dark"] .contact-pair,body[data-theme="dark"] .inline-calendar { background:#16241e; border-color:var(--line); }body[data-theme="dark"] .second-contact { background:#182520; }body[data-theme="dark"] .service-card,body[data-theme="dark"] .status-choice,body[data-theme="dark"] .date-target { border-color:#40574c; color:var(--ink); }body[data-theme="dark"] .service-card:has(input:checked),body[data-theme="dark"] .status-choice:has(input:checked),body[data-theme="dark"] .date-target:has(input:checked),body[data-theme="dark"] .package-card.selected { background:#2b493b; border-color:#6da287; }body[data-theme="dark"] .property-type-grid .service-card:has(input:checked) { background:#2b493b; border-color:#6da287; }body[data-theme="dark"] .package-card,body[data-theme="dark"] .calendar-header button { background:#14211c; border-color:#40574c; color:var(--ink); }body[data-theme="dark"] .package-card b,body[data-theme="dark"] .date-target b,body[data-theme="dark"] .calendar-header { color:var(--ink); }body[data-theme="dark"] .calendar-day { color:var(--ink); }body[data-theme="dark"] .calendar-day:hover { background:#263b31; }body[data-theme="dark"] .calendar-day.today { outline-color:#526b5e; }body[data-theme="dark"] .calendar-day.selected { background:#557d6d; color:#e2ebe5; }body[data-theme="dark"] .form-footer button { background:#557d6d; }body[data-theme="dark"] .success { background:#16271f; color:#c4d0c8; }


/* Shared selected state and keyboard focus for the booking preview. */
[hidden] { display:none !important; }
.service-card,.status-choice,.date-target,.package-card { position:relative; min-width:0; }
.service-card input,.status-options input,.date-target input,.package-card input { display:block; position:absolute; width:1px; height:1px; padding:0; margin:0; opacity:0; }
.radio-mark { display:none; }
body .service-card:has(input:checked),body .status-choice:has(input:checked),body .date-target:has(input:checked),body .package-card.selected,
body[data-theme="dark"] .service-card:has(input:checked),body[data-theme="dark"] .status-choice:has(input:checked),body[data-theme="dark"] .date-target:has(input:checked),body[data-theme="dark"] .package-card.selected,
body[data-theme="dark"] .property-type-grid .service-card:has(input:checked),body .property-type-grid .service-card:has(input:checked) { background:#557d6d; border-color:#8cb4a0; color:#fff; }
body .service-card:has(input:checked) small,body .status-choice:has(input:checked) small,body .date-target:has(input:checked) b,body .date-target:has(input:checked) small,body .package-card.selected b,body .package-card.selected small { color:#fff; }
.service-card:has(input:focus-visible),.status-choice:has(input:focus-visible),.date-target:has(input:focus-visible),.package-card:has(input:focus-visible),button:focus-visible { outline:3px solid var(--coral); outline-offset:3px; }
.calendar-clear { display:block; margin:.6rem auto 0; background:transparent; border:0; color:var(--ink); font:inherit; font-size:.8rem; text-decoration:underline; cursor:pointer; }
.form-grid > *, .schedule-grid > * { min-width:0; }
@media (min-width:901px) { .hero { height:100vh; align-self:start; } .property-type-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto !important; transition:none !important; } }

/* A confirmed receiver response replaces the form with one clear receipt. */
.booking-complete { max-width:560px; margin:clamp(2rem,9vh,7rem) auto; padding:clamp(1.5rem,4vw,3rem); border:1px solid var(--line); border-radius:14px; background:var(--mint); }
.booking-complete:focus { outline:2px solid var(--pine); outline-offset:2px; }
.booking-complete-icon { display:grid; place-items:center; width:3.2rem; height:3.2rem; border-radius:50%; background:#d8e9de; color:#194f38; font-size:1.7rem; font-weight:800; }
.booking-complete .eyebrow { margin:1.5rem 0 .35rem; color:var(--pine); }
.booking-complete h2 { margin:0 0 1rem; color:var(--ink); font-family:Georgia,serif; font-size:clamp(2rem,4vw,2.8rem); font-weight:400; line-height:1.1; }
.booking-complete p { color:var(--ink); font-size:1rem; line-height:1.6; }
.booking-reference { display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin:2rem 0 1.4rem; padding:1rem 1.2rem; border:1px solid var(--line); border-radius:8px; background:#fff; }
.booking-reference span { color:var(--muted); }
.booking-reference strong { color:var(--ink); font-size:1.05rem; overflow-wrap:anywhere; }
.new-booking { border:1px solid var(--pine); border-radius:6px; background:transparent; color:var(--pine); padding:.75rem 1rem; font:inherit; font-weight:700; cursor:pointer; }
.new-booking:hover { background:var(--sage); }
body[data-theme="dark"] .booking-complete { background:#203228; border-color:#506a58; }
body[data-theme="dark"] .booking-complete-icon { background:#315541; color:#e9f5eb; }
body[data-theme="dark"] .booking-reference { background:#17261e; border-color:#506a58; }
body[data-theme="dark"] .new-booking { color:#c6e6cf; border-color:#83ad90; }
body[data-theme="dark"] .new-booking:hover { background:#315541; }
@media (max-width:560px) { .booking-complete { margin:1.5rem auto; } .new-booking { width:100%; } }
