:root{font-family:"Segoe UI",Arial,sans-serif;color:#183d2c;background:#f8faf5;--forest:#184d35;--deep:#123725;--lime:#d8f36a;--muted:#5e6e62;--line:#dce4d8}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;line-height:1.65;font-size:16px}h1,h2,p,figure{margin:0}a{color:inherit}svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.6;cursor:default}a,button,input,select,textarea{outline-offset:4px;touch-action:manipulation}:focus-visible{outline:3px solid #789827}.skip-link{position:fixed;z-index:20;left:12px;top:12px;background:var(--lime);padding:10px 20px;transform:translateY(-150%)}.skip-link:focus{transform:none}.booking-header{max-width:1400px;margin:auto;padding:28px 50px;display:flex;align-items:center;gap:30px;border-bottom:1px solid var(--line)}.brand{text-decoration:none;display:inline-flex;flex-direction:column;line-height:1}.brand strong{font-size:38px;letter-spacing:-.065em}.brand strong>span{color:#719439}.brand small{font-size:10px;font-weight:700;letter-spacing:.3em;margin:9px 0 0 4px}.back-link{margin-left:auto;text-decoration:none;font-size:13px;display:flex;align-items:center;gap:12px}.back-link svg{height:20px;width:20px;order:-1}.header-phone{font-size:14px;text-decoration:none;font-weight:600;border:1px solid var(--line);padding:10px 20px;border-radius:24px}.booking-layout{max-width:1280px;margin:58px auto 80px;padding-inline:30px;display:grid;grid-template-columns:.9fr 1.1fr;gap:76px;align-items:start}.eyebrow{font-size:11px;font-weight:650;letter-spacing:.12em;color:var(--muted);margin-bottom:20px}.booking-intro h1{font-size:clamp(48px,5.2vw,72px);letter-spacing:-.065em;font-weight:500;line-height:1.05;margin-bottom:24px}.booking-intro h1 em{font-family:Georgia,serif;font-weight:400;color:var(--forest)}.intro-copy{font-size:16px;line-height:1.8;color:var(--muted);max-width:430px}.intro-photo{margin-top:30px;position:relative;height:240px;border-radius:20px;overflow:hidden;background:var(--forest)}.intro-photo img{width:100%;height:135%;object-fit:cover;object-position:center bottom;position:absolute;bottom:0}.intro-photo:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#102e25c9)}.intro-photo>span{position:absolute;z-index:1;bottom:22px;left:24px;right:24px;font:italic 23px/1.3 Georgia,serif;color:white}.help-note{display:flex;gap:16px;align-items:center;margin-top:28px}.help-note>svg{width:24px;height:24px;flex-shrink:0}.help-note strong{font-size:14px;display:block;font-weight:600}.help-note a{font-size:14px;text-underline-offset:4px;color:var(--muted)}.scope-note{font-size:13px;color:var(--muted);margin-top:25px;padding-top:22px;border-top:1px solid var(--line)}.booking-content{min-width:0}.form-section{background:white;border:1px solid var(--line);padding:28px 30px 30px;border-radius:20px;margin-bottom:18px}.section-title{margin-bottom:22px}.section-title h2{font-size:24px;font-weight:550;letter-spacing:-.035em;line-height:1.3;margin-bottom:4px}.section-title p{font-size:13px;line-height:1.6;color:var(--muted)}fieldset{margin:0;padding:0;border:0;min-width:0}label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600;min-width:0}input,select,textarea{background:white;color:#183d2c;border:1px solid #cbd7c6;border-radius:10px;padding:11px 13px;font-size:15px;width:100%;max-width:100%;min-height:47px}input[type=date]{min-width:0}select{margin-top:7px}textarea{resize:vertical;line-height:1.5}.optional{font-size:12px;color:var(--muted);font-weight:400;display:contents}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px}.full-width{grid-column:1/-1}.field-note{font-size:12px;color:var(--muted);line-height:1.65;margin-top:10px}.times-fieldset{margin-top:21px}.times-fieldset legend{font-size:13px;font-weight:600;margin-bottom:11px}.time-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.time-choice{display:block;position:relative}.time-choice input{position:absolute;width:1px;height:1px;min-height:0;padding:0;opacity:0;left:50%;top:50%}.time-choice span{display:block;text-align:center;padding:10px 4px;border:1px solid var(--line);border-radius:10px;background:#f8faf5;font-size:13px;font-weight:500;cursor:pointer}.time-choice input:checked+span{background:var(--forest);border-color:var(--forest);color:white}.time-choice input:focus-visible+span{outline:3px solid #789827;outline-offset:3px}.time-choice input:disabled+span{cursor:default;opacity:.6}.slots-message{font-size:14px;color:var(--muted);line-height:1.6}.slots-message:not(:empty){margin-bottom:12px}.text-button{font-size:13px;color:var(--forest);text-decoration:underline;text-underline-offset:4px;background:transparent;border:0;padding:8px 0;min-height:40px}.button{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:50px;padding:12px 23px;line-height:1.5;font-size:14px;font-weight:600;border-radius:28px;text-decoration:none}.primary{background:var(--forest);color:white}.primary:hover:not(:disabled){background:var(--deep)}.button .icon-arrow{width:21px;height:21px;flex-shrink:0;color:var(--lime)}.button-label{font:inherit;color:inherit}.booking-footer .icon-arrow{width:16px;height:16px;vertical-align:middle;margin-left:7px}.secondary{border-color:var(--line);background:white;color:var(--forest)}.submit-button{width:100%;justify-content:space-between;font-size:16px;padding:15px 24px;min-height:58px}.booking-summary{display:flex;gap:12px;align-items:start;padding:18px 21px;background:#eaf2dd;border:1px solid #dce8ce;border-radius:14px;margin:23px 0 16px}.booking-summary svg{width:23px;height:23px;flex-shrink:0}.booking-summary p{font-size:14px;font-weight:500;line-height:1.65}.privacy-note{font-size:12px;line-height:1.7;color:var(--muted);padding:15px 8px 0}.notice{background:#fff0e9;border:1px solid #ecd0bd;color:#853e2a;font-size:14px;padding:14px 17px;border-radius:12px;margin:17px 0;overflow-wrap:anywhere}.state-card{padding:40px;border:1px solid var(--line);background:white;border-radius:24px}.state-card h2{font-size:35px;letter-spacing:-.045em;line-height:1.15;font-weight:550;margin-bottom:18px}.state-card>p{font-size:15px;color:var(--muted);margin-bottom:24px}.state-card .eyebrow{font-size:10px}.state-card>.button{margin:0 5px 10px 0}.state-icon{display:grid;place-items:center;width:65px;height:65px;background:var(--lime);border-radius:20px;margin-bottom:28px;color:var(--forest)}.state-icon svg{width:32px;height:32px}.success-details{background:#f1f6e9;border-radius:16px;padding:23px;margin-bottom:24px}.success-details>p:first-child{font-size:12px;margin-bottom:8px;color:var(--muted)}.success-details strong{display:block;font-size:20px;font-weight:550;letter-spacing:-.02em;line-height:1.45}.success-details>p{font-size:13px;color:var(--muted)}.status-badge{display:inline-block;font-size:11px;line-height:1.5;font-weight:600;padding:5px 9px;background:#f8e9cb;color:#74531d;border-radius:7px;margin-top:16px}.status-badge.synced{background:#ddebcf;color:#335525}.success-card .reference-label{margin:0 0 5px;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.success-card code{display:block;font-size:12px;overflow-wrap:anywhere;margin-bottom:23px;color:var(--forest);font-family:ui-monospace,Consolas,monospace}.success-card .change-note{font-size:13px;margin-bottom:25px}.success-card .change-note a{text-underline-offset:3px}.booking-footer{border-top:1px solid var(--line);max-width:1300px;padding:25px 30px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:20px;color:var(--muted);font-size:12px}.booking-footer a{text-decoration:none}.booking-footer a:hover{text-decoration:underline}
@media(max-width:1050px){.booking-layout{gap:38px;padding-inline:32px;margin-top:44px}.booking-header{padding-inline:32px}.booking-intro h1{font-size:57px}.intro-photo{height:210px}.form-section{padding:25px}.form-grid{grid-template-columns:1fr}.full-width{grid-column:auto}.state-card{padding:30px}.time-slots{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.booking-header{padding:23px 24px;gap:20px}.brand strong{font-size:32px}.brand small{font-size:9px}.header-phone{padding:9px 15px;font-size:12px}.back-link{font-size:12px;gap:7px}.booking-layout{display:block;max-width:620px;padding-inline:24px;margin-top:34px;margin-bottom:50px}.booking-intro{margin-bottom:30px}.booking-intro h1{font-size:55px;line-height:1.02;max-width:440px;margin-bottom:19px}.booking-intro h1 br{display:none}.intro-copy{max-width:none;font-size:15px}.intro-photo{display:none}.help-note{margin-top:21px}.scope-note{margin-top:20px;padding-top:18px;font-size:12px}.eyebrow{font-size:10px;margin-bottom:18px}.form-section{padding:25px;border-radius:18px}.form-grid{grid-template-columns:1fr 1fr}.full-width{grid-column:1/-1}.time-slots{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-footer{flex-direction:column;align-items:start;gap:10px;font-size:11px;padding-inline:24px}.state-card{padding:29px}}
@media(max-width:430px){.booking-header{padding:20px;gap:16px}.back-link{font-size:0;margin-left:auto}.back-link svg{width:22px;height:22px}.header-phone{font-size:11px;padding:9px 12px}.brand strong{font-size:30px}.booking-layout{padding-inline:18px;margin-top:30px}.booking-intro h1{font-size:48px}.booking-intro .eyebrow{font-size:9px;letter-spacing:.08em}.form-section{padding:23px 19px}.section-title h2{font-size:22px}.form-grid{grid-template-columns:1fr}.full-width{grid-column:auto}.time-slots{gap:7px}.time-choice span{font-size:12px;padding:10px 2px}.state-card{padding:26px 23px}.state-card h2{font-size:31px}.booking-footer{padding-inline:20px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.booking-modes{max-width:1220px;margin:32px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:6px;border:1px solid var(--line);border-radius:18px;background:#edf2e7}.booking-modes a{padding:14px 22px;border-radius:12px;text-decoration:none;transition:background .2s,color .2s}.booking-modes strong{display:block;font-size:16px;font-weight:600}.booking-modes span{font-size:12px;color:var(--muted)}.booking-modes a[aria-current=page]{background:var(--forest);color:white}.booking-modes a[aria-current=page] span{color:#e0ebdc}.booking-modes a:hover:not([aria-current]){background:white}.booking-modes+.booking-layout{margin-top:32px}@media(max-width:1280px){.booking-modes{margin-inline:30px}}@media(max-width:600px){.booking-modes{margin:20px 20px 0;gap:5px;padding:5px;border-radius:14px}.booking-modes a{padding:11px 9px}.booking-modes strong{font-size:14px;line-height:1.4}.booking-modes span{font-size:11px;display:block;line-height:1.5;margin-top:4px}.booking-modes+.booking-layout{margin-top:24px}}@media(prefers-reduced-motion:reduce){.booking-modes a{transition:none}}

/* Field & Form: shared editorial language, preserving booking states and controls. */
:root{font-family:"DM Sans","Segoe UI",sans-serif;color:#254b38;background:#f5f3eb;--forest:#254b38;--deep:#173729;--lime:#dce8a4;--muted:#62695c;--line:#d3d7c8;font-synthesis:none}.brand strong{font:italic 39px/.9 "Newsreader",Georgia,serif;letter-spacing:-.065em}.brand small{font-size:8px}.booking-header{padding-block:30px}.booking-intro h1{font-family:"Newsreader",Georgia,serif;font-weight:400;font-size:clamp(62px,6vw,88px);letter-spacing:-.055em;line-height:.96}.booking-intro h1 em{font-family:inherit;color:#617850}.booking-intro .eyebrow{font-size:9px}.intro-copy{font-size:14px}.intro-photo{border-radius:2px;height:280px}.intro-photo img{height:100%;object-position:center}.intro-photo span{font-family:"Newsreader",Georgia,serif;font-style:italic;font-size:23px}.form-section,.state-card{border-radius:4px;box-shadow:none;background:#fffefa}.form-section{padding:32px;border-color:var(--line)}.section-title h2,.state-card h2{font-family:"Newsreader",Georgia,serif;font-weight:400;letter-spacing:-.035em;font-size:31px}.form-grid input,textarea,select{border-radius:4px;background:#fffefa}.button{border-radius:40px;font-size:13px;font-weight:500}.button.primary{background:var(--forest);color:white}.button.primary:hover{background:var(--deep)}.booking-modes{background:#e9ecdf;border-radius:6px;margin-top:30px}.booking-modes a{border-radius:3px}.booking-modes strong{font-weight:500;font-size:14px}.booking-modes span{font-size:11px}.booking-summary,.success-details{border-radius:4px;background:#e9eedd}.time-choice span{border-radius:5px}.booking-footer{margin-top:45px}.state-icon{border-radius:50%}.header-phone{font-weight:500}.booking-intro .scope-note{font-size:12px}.booking-content{min-width:0}.back-link{min-height:44px}.privacy-note{font-size:12px}:focus-visible{outline:3px solid #789a30;outline-offset:4px}
@media(max-width:760px){.booking-layout{padding-inline:22px}.booking-intro h1{font-size:64px}.booking-intro h1 br{display:none}.booking-intro .intro-copy{font-size:14px}.form-section{padding:25px 22px}.section-title h2{font-size:28px}.booking-header{padding:25px 22px}.booking-modes{margin-inline:22px}.booking-intro .help-note{margin-top:18px}.booking-intro{margin-bottom:32px}}@media(max-width:430px){.booking-intro h1{font-size:56px}.booking-header{padding-inline:20px}.booking-layout{padding-inline:20px}.booking-modes{margin-inline:20px}.booking-modes strong{font-size:12px}.booking-modes span{font-size:10px}.form-section{padding:24px 19px}.section-title h2{font-size:27px}.brand strong{font-size:34px}.header-phone{font-size:11px}}

/* Native iOS date controls must fit the card's content box, not their intrinsic
   platform width. Retain type=date, keyboard access and the native picker. */
.form-section>fieldset{inline-size:100%;min-inline-size:0}
#appointment-date{
  -webkit-appearance:none;appearance:none;display:block;
  box-sizing:border-box;width:100%;inline-size:100%;
  min-width:0;min-inline-size:0;max-width:100%;max-inline-size:100%;
  min-height:48px;line-height:1.5;border-radius:4px;background:#fffefa;
}
#appointment-date::-webkit-date-and-time-value{min-width:0;min-height:1.5em;text-align:left}
#appointment-date::-webkit-datetime-edit{min-width:0;padding:0}
/* A legible input size also avoids iPhone's automatic focus zoom. */
input,select,textarea{font-size:16px}

/* One continuous segmented control; entered fields stay mounted. */
.booking-modes{position:relative;isolation:isolate;--mode-inset:6px;--mode-gap:8px;padding:var(--mode-inset);gap:var(--mode-gap);border-radius:16px}
.booking-modes::before{content:"";position:absolute;z-index:-1;inset-block:var(--mode-inset);left:var(--mode-inset);width:calc((100% - 2 * var(--mode-inset) - var(--mode-gap))/2);border-radius:11px;background:var(--forest);box-shadow:0 3px 8px #17372917;transition:transform .42s cubic-bezier(.22,1,.36,1)}
.booking-modes[data-kind=estimate]::before{transform:translateX(calc(100% + var(--mode-gap)))}
.booking-modes a{border-radius:11px;transition:color .25s,background .25s;min-height:64px;display:flex;flex-direction:column;justify-content:center}
.booking-modes a[aria-current=page]{background:transparent}
.booking-modes a:hover:not([aria-current]){background:#ffffff70}
.booking-modes a[aria-disabled=true]{cursor:default}
.mode-message{max-width:1220px;margin:0 auto;padding:0 6px;font-size:13px;color:var(--muted)}
.mode-message:empty{display:none}
.mode-message:not(:empty){margin-top:12px}
.mode-message:not([data-visible=true]){position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.booking-modes~.booking-layout{margin-top:32px}
@media(max-width:1280px){.mode-message{margin-inline:30px}}
@media(max-width:600px){.booking-modes{--mode-inset:5px;--mode-gap:5px}.mode-message{margin-inline:22px}.booking-modes~.booking-layout{margin-top:24px}}
@media(prefers-reduced-motion:reduce){.booking-modes::before{transition:none}}
