.booking-page .form-layout{grid-template-columns:1fr 560px;max-width:1060px;gap:65px}.booking-page .form-card{padding:29px 29px 0;overflow:visible}.booking-page .form-intro{position:sticky;top:38px}.booking-page .form-intro h1{font-size:57px}.booking-page .form-intro .lead{max-width:320px}.booking-page .form-intro .form-explainer{max-width:320px}.booking-page .site-footer{margin-top:0}.booking-step-content{padding-bottom:22px}.booking-progress{margin-bottom:25px}.booking-step-label{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-bottom:12px}.booking-step-track{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.booking-step-track span{height:3px;border-radius:2px;background:var(--line)}.booking-step-track span.active{background:var(--green)}.booking-page .form-card h2{font-size:24px;letter-spacing:-.035em}.booking-page .step-description{font-size:13px;margin-bottom:23px}.booking-branch{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px;border-bottom:1px solid var(--line);padding-bottom:16px}.booking-branch>label{font-size:12px;color:var(--muted)}.booking-branch select{width:190px;min-height:44px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--white);padding:9px 10px;font-size:13px}.service-category-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:18px}.service-category-tabs button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:67px;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--muted);padding:9px 5px;font-size:11px}.service-category-tabs button[aria-selected=true]{border-color:var(--green);background:var(--sage);color:var(--green)}.service-category-tabs .icon{width:23px;height:23px;stroke-width:1.4}.service-category-tabs i{position:absolute;right:8px;top:8px;width:5px;height:5px;border-radius:50%;background:var(--green)}.booking-service{border:1px solid var(--line);border-radius:9px;margin-bottom:9px;background:var(--white);transition:border-color .15s,background .15s}.booking-service.is-selected{border-color:var(--green);background:#f0f4e9}.service-select{cursor:pointer;display:grid;grid-template-columns:19px 1fr auto;gap:11px;align-items:center;min-height:71px;padding:14px 15px;position:relative}.service-select>input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.service-select:has(input:focus-visible){outline:3px solid #659846;outline-offset:3px;border-radius:7px}.service-selection-mark{width:19px;height:19px;border:1px solid #aab9a7;border-radius:50%;display:flex;justify-content:center;align-items:center;color:var(--white);background:transparent}.service-selection-mark>.icon{width:13px;height:13px;opacity:0;stroke-width:2}.is-selected .service-selection-mark{background:var(--green);border-color:var(--green)}.is-selected .service-selection-mark>.icon{opacity:1}.service-selection-title{font-size:13px;font-weight:600;line-height:1.5}.service-selection-price{font-size:13px;font-weight:600;text-align:right;white-space:nowrap}.service-selection-price small{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:1px}.service-options{padding:0 15px 14px 45px}.quantity-section{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:7px}.quantity-label{font-size:11px;color:var(--muted)}.quantity-control{display:flex;align-items:center;border:1px solid #bfccb7;border-radius:7px;overflow:hidden;background:var(--white);height:44px;flex:none}.quantity-control button{height:44px;width:34px;padding:0;font-size:19px;line-height:1;border:0;background:transparent;color:var(--green)}.quantity-control input{width:49px;padding:5px 0;border:0;min-height:42px;background:transparent;color:var(--ink);text-align:center;font-size:14px;appearance:textfield;-moz-appearance:textfield}.quantity-control input::-webkit-inner-spin-button,.quantity-control input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.quantity-control>span{font-size:10px;color:var(--muted);padding-right:8px}.quantity-control button:disabled{opacity:.4;cursor:default}.quantity-control input:disabled{opacity:.5}.service-option{display:flex;align-items:center;gap:9px;min-height:40px;font-size:11px}.service-option input{width:16px;height:16px;accent-color:var(--green);margin:0}.service-option small{margin-left:5px;color:var(--muted)}.service-option-note{font-size:10px;color:var(--muted);line-height:1.6;margin:0 0 4px 25px}.booking-fineprint{font-size:10px;line-height:1.65;color:var(--muted);margin:15px 0 3px}.selected-service-summary{border-top:1px solid var(--line);padding-top:12px;margin-top:14px;font-size:11px;font-weight:600;display:flex;gap:13px;align-items:start}.selected-service-summary>span{font-weight:400;font-size:10px;color:var(--muted);max-width:300px}.booking-footer{position:sticky;bottom:0;background:var(--white);border-top:1px solid var(--line);margin:0 -29px;padding:16px 29px max(16px,env(safe-area-inset-bottom));border-radius:0 0 13px 13px;box-shadow:0 -5px 17px #28482d05;z-index:10}.booking-estimate{display:grid;grid-template-columns:1fr auto;gap:4px 15px;margin-bottom:13px}.booking-estimate>span{font-size:10px;color:var(--muted);align-self:center}.booking-estimate>strong{font-size:16px;font-weight:600;line-height:1.4;text-align:right;max-width:260px}.booking-estimate>small{grid-column:1/-1;font-size:9px;color:var(--muted);line-height:1.55}.booking-footer-actions{display:flex;align-items:center;gap:10px}.booking-footer-actions>.button{flex:1;min-height:48px}.booking-back{border:1px solid var(--line);width:49px;height:49px;border-radius:7px;display:flex;justify-content:center;align-items:center;background:transparent;color:var(--ink)}.booking-back:hover{background:var(--sage)}.booking-review-group{padding:17px 0;border-bottom:1px solid var(--line)}.booking-review-group:first-child{padding-top:2px}.booking-review-group p{font-size:13px;line-height:1.75;overflow-wrap:anywhere}.booking-review-service{display:flex;align-items:start;justify-content:space-between;gap:15px;margin-top:10px;font-size:12px}.booking-review-service strong{font-weight:500;line-height:1.65}.booking-review-service strong small{display:inline-block;margin-left:5px;background:var(--sage);padding:1px 6px;border-radius:4px;font-size:9px}.booking-review-service>span{font-size:11px;color:var(--muted);white-space:nowrap;margin-top:2px}.review-map-note{display:flex;align-items:center;gap:8px;font-size:11px!important;color:var(--muted);margin-top:10px}.review-map-note>.icon{width:15px;height:15px}.remember-link{padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}.remember-link strong{font-weight:500}.remember-link a{min-height:44px}.booking-page .consent-field a{text-decoration:underline;text-underline-offset:3px}.map-entry-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}.map-entry-actions .button{font-size:11px;padding:10px 12px;min-height:44px;flex:1;line-height:1.45}.map-entry-actions .icon{width:16px;height:16px}.booking-location-feedback{font-size:11px;line-height:1.6;display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:var(--muted);min-height:0}.booking-location-feedback:empty{display:none}.booking-location-feedback>button{border:0;background:none;text-decoration:underline;color:var(--ink);font-size:10px;min-height:44px;padding:7px;margin-left:auto}.booking-location-feedback>.icon{width:15px;height:15px}.booking-page #booking-map-panel{margin:13px 0 21px}.map-search-row{display:flex;gap:7px;margin-bottom:9px}.map-search-row>input{width:0;flex:1;min-height:44px;border:1px solid var(--line);border-radius:7px;padding:10px;font-size:13px;color:var(--ink);background:var(--white)}.map-search-row>.button{min-height:44px;font-size:12px;padding:10px 13px}.map-help{font-size:10px;color:var(--muted);line-height:1.5;margin-top:9px}.map-privacy{font-size:9px;color:var(--muted);line-height:1.55;margin-top:7px}.booking-page #pickup-map{height:260px;width:100%;border:1px solid var(--line);border-radius:9px;background:var(--sage);z-index:1}.booking-page .leaflet-control-attribution{font-size:9px;line-height:1.4;color:var(--muted)}.booking-page .leaflet-control-attribution a{color:#214c32}.booking-page .leaflet-control-zoom a{width:36px;height:36px;line-height:36px}.booking-page #map-search-results:not(:empty){margin-bottom:9px;border:1px solid var(--line);border-radius:7px;overflow:hidden}.booking-page #map-search-results>button{width:100%;display:flex;align-items:center;gap:9px;padding:12px;min-height:48px;border:0;border-bottom:1px solid var(--line);background:var(--white);text-align:left;font-size:12px;color:var(--ink)}.booking-page #map-search-results>button:last-child{border-bottom:0}.booking-page #map-search-results>button:hover{background:var(--sage)}.booking-page #map-search-results>p{padding:12px;font-size:12px}.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}.price-row-action{display:inline-flex;justify-content:center;align-items:center;gap:5px;font-size:10px;padding:3px 10px;min-height:44px;border:1px solid var(--line);border-radius:6px;color:var(--green);margin-top:8px;white-space:normal}.price-row-action:hover{background:var(--sage)}.home-app-entry{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-top:29px;margin-bottom:7px}.home-app-entry a{border:1px solid var(--line);border-radius:9px;display:flex;align-items:center;gap:11px;padding:17px 18px;min-height:70px;font-size:13px;font-weight:500}.home-app-entry a:hover{background:var(--sage);border-color:#aabb9b}.home-app-entry .icon{width:25px;height:25px;stroke-width:1.3}.home-private-request{margin-top:17px;border:1px solid var(--line);border-radius:9px;padding:10px 15px;display:flex;align-items:center;justify-content:space-between;gap:15px;background:var(--white);font-size:12px}.home-private-request a{display:flex;align-items:center;gap:10px;min-height:44px;font-weight:500}.home-private-request button{border:0;min-height:44px;background:none;color:var(--muted);font-size:10px;text-decoration:underline;padding:7px}.request-laundry{border-top:1px solid var(--line);padding-block:18px}.request-laundry h3{font-size:12px;margin-bottom:13px}.request-laundry-row{display:flex;justify-content:space-between;align-items:start;gap:14px;font-size:12px;padding-block:5px}.request-laundry-row>span:last-child{font-size:11px;color:var(--muted);white-space:nowrap}.request-laundry-estimate{margin-top:12px;display:flex;justify-content:space-between;gap:15px;font-size:12px;font-weight:600}.request-laundry .booking-fineprint{margin-top:9px}.booking-page #form-error:not([hidden]){margin-top:16px}
@media(max-width:1100px){.booking-page .form-layout{grid-template-columns:1fr 500px;gap:42px}.booking-page .form-intro h1{font-size:48px}}
@media(max-width:900px){.booking-page .form-layout{grid-template-columns:1fr 440px;gap:32px}.booking-page .form-intro h1{font-size:42px}.booking-page .form-card{padding:24px 23px 0}.booking-footer{margin-inline:-23px;padding-inline:23px}.home-app-entry a{padding:15px 13px;font-size:12px;gap:8px}}
@media(max-width:760px){.booking-page .form-layout{grid-template-columns:1fr;gap:20px;padding-top:25px;width:min(520px,calc(100% - 32px));padding-bottom:31px}.booking-page .form-intro{position:static}.booking-page .form-intro .eyebrow{display:none}.booking-page .form-intro h1{font:400 34px/1.15 var(--serif);letter-spacing:-.04em}.booking-page .form-intro .lead{font-size:12px;line-height:1.65;max-width:none;margin-top:10px}.booking-page .form-card{padding:22px 18px 0;border-radius:11px}.booking-page .step-description{font-size:12px;margin-bottom:19px}.booking-page .form-card h2{font-size:22px}.booking-progress{margin-bottom:23px}.booking-step-label{font-size:10px}.booking-branch{margin-bottom:16px;padding-bottom:14px}.booking-branch select{font-size:12px;width:177px;min-height:44px}.service-category-tabs{gap:6px;margin-bottom:15px}.service-category-tabs button{font-size:10px;min-height:62px;gap:6px}.service-category-tabs .icon{width:22px;height:22px}.service-select{grid-template-columns:18px 1fr auto;gap:9px;padding:13px 12px;min-height:68px}.service-selection-title{font-size:12px}.service-selection-price{font-size:12px}.service-selection-price small{font-size:9px}.service-selection-mark{width:18px;height:18px}.service-options{padding:0 12px 11px 39px}.quantity-section{display:block;padding-bottom:4px}.quantity-label{display:block;font-size:10px;margin-bottom:7px}.quantity-control{width:max-content;max-width:100%;height:44px}.quantity-control>input{font-size:16px;width:62px}.quantity-control button{width:44px}.service-option{font-size:11px;min-height:44px}.service-option-note{font-size:9px}.booking-fineprint{font-size:10px;line-height:1.6}.booking-footer{margin-inline:-18px;padding:14px 18px max(14px,env(safe-area-inset-bottom));border-radius:0 0 11px 11px}.booking-estimate{margin-bottom:11px}.booking-estimate>strong{font-size:15px;max-width:215px}.booking-estimate>small{font-size:9px}.booking-footer-actions>.button{font-size:13px;min-height:48px}.booking-step-content{padding-bottom:18px}.booking-page .field-grid{gap:10px}.booking-page .field-grid input,.booking-page .field-grid select{font-size:14px;padding-inline:9px;width:100%;min-width:0}.booking-page .field textarea,.booking-page .field input{font-size:16px}.booking-page .field{margin-bottom:17px}.booking-page .field>span:first-child{font-size:11px}.booking-page .field small{font-size:10px}.booking-review-service{font-size:12px;gap:10px}.booking-review-service>span{font-size:10px}.booking-review-group p{font-size:12px}.booking-page .consent-field{font-size:10px;gap:9px}.booking-page .consent-field input{width:17px;height:17px}.remember-link{padding:10px}.booking-page .notice{font-size:11px;padding:12px}.map-entry-actions .button{padding:9px 10px;font-size:10px;gap:6px}.map-entry-actions .icon{width:15px;height:15px}.map-search-row>input{font-size:16px;padding:9px}.map-search-row>.button{font-size:11px;padding-inline:10px}.booking-page #pickup-map{height:243px}.booking-page .leaflet-control-zoom a{width:44px;height:44px;line-height:44px}.map-help{font-size:10px}.home-app-entry{gap:7px;margin-top:23px}.home-app-entry a{flex-direction:column;gap:9px;padding:13px 5px;min-height:80px;font-size:10px}.home-app-entry .icon{width:26px;height:26px}.home-private-request{font-size:11px;padding-inline:11px;gap:10px}.home-private-request a{gap:7px}.home-private-request button{font-size:9px;padding-inline:3px}.request-laundry-row{font-size:11px}.request-laundry-row>span:last-child{font-size:10px}.request-laundry-estimate{font-size:11px}.price-row-action{font-size:10px;min-height:44px;padding-inline:9px}}
@media(max-width:380px){.booking-page .form-intro h1{font-size:31px}.booking-page .form-card{padding-inline:15px}.booking-footer{margin-inline:-15px;padding-inline:15px}.booking-branch select{width:160px}.service-selection-title{font-size:11px}.service-selection-price{font-size:11px}.service-select{gap:7px;padding-inline:10px}.service-options{padding-left:35px;padding-right:10px}.booking-review-service{flex-wrap:wrap;gap:4px 11px}.booking-page .field-grid{grid-template-columns:1fr}.home-app-entry a{font-size:9px}.map-entry-actions{gap:7px}.map-entry-actions .button{font-size:9px;padding-inline:9px}.booking-estimate>strong{font-size:14px;max-width:185px}}
.home-app-entry{grid-template-columns:repeat(4,minmax(0,1fr))}.home-app-entry a{flex-direction:column;justify-content:center;padding:13px 5px;font-size:11px;gap:8px}.service-selection-title>small{display:block;font-size:10px;font-weight:400;color:var(--muted);line-height:1.55;margin-top:3px}.booking-footer.is-keyboard-open{position:static}.map-entry-actions>.button{min-width:0}.booking-page .form-card{min-width:0}.booking-page .service-choice-list,.booking-page .booking-step-content{min-width:0}
.quantity-control button{width:44px}.booking-page .leaflet-control-zoom a{width:44px;height:44px;line-height:44px}
@media(max-width:760px){.booking-page>.site-footer{display:none}.booking-page[data-booking-step="2"] .form-intro,.booking-page[data-booking-step="3"] .form-intro,.booking-page[data-booking-step="4"] .form-intro{display:none}.booking-page[data-booking-step="2"] .form-layout,.booking-page[data-booking-step="3"] .form-layout,.booking-page[data-booking-step="4"] .form-layout{padding-top:20px;gap:0}}
@media(prefers-reduced-motion:reduce){.booking-service{transition:none}}
/* Keep service choices and form details readable in every supported language. */
.booking-page .service-selection-title,.booking-page .service-selection-price{font-size:14px}
.booking-page .service-selection-title{min-width:0;overflow-wrap:anywhere}
.booking-page .service-selection-title>small{font-size:12px;line-height:1.5}
.booking-page .service-selection-price small,.booking-page .quantity-control>span,.booking-page .service-option-note,.booking-page .booking-fineprint{font-size:12px}
.booking-page .quantity-label,.booking-page .service-option,.booking-page .booking-branch>label,.booking-page .booking-step-label,.booking-page .selected-service-summary,.booking-page .selected-service-summary>span{font-size:13px}
.booking-page .service-option input{flex:none}
.booking-page .booking-estimate{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
.booking-page .booking-estimate>span,.booking-page .booking-estimate>small{font-size:12px}
.booking-page .booking-estimate>strong{max-width:none;overflow-wrap:anywhere}
.booking-page .booking-review-service,.booking-page .booking-review-service>span,.booking-page .booking-review-group p,.booking-page .consent-field{font-size:13px}
.booking-page .map-entry-actions .button{font-size:12px}
.booking-page .map-help,.booking-page .map-privacy,.booking-page .booking-location-feedback{font-size:12px}
.booking-page .booking-location-feedback>button{font-size:12px}
@media(max-width:760px){
  .booking-page .form-intro .lead,.booking-page .step-description,.booking-page .field>span:first-child{font-size:14px;line-height:1.6}
  .booking-page .field small{font-size:12px}
  .booking-page .service-category-tabs button{font-size:12px;line-height:1.3}
  .booking-page .service-select{grid-template-columns:18px minmax(0,1fr) auto;align-items:start}
  .booking-page .service-selection-mark{margin-top:2px}
  .booking-page .service-selection-price{font-size:13px}
  .booking-page .service-selection-price small{font-size:11px}
  .booking-page .booking-footer-actions>.button{font-size:14px;line-height:1.4;white-space:normal}
  .booking-page .booking-estimate>strong{font-size:15px}
  .booking-page .map-entry-actions{flex-direction:column}
  .booking-page .map-entry-actions .button{width:100%;font-size:13px}
  .booking-page .booking-review-service{flex-wrap:wrap;gap:4px 12px}
}

/* A few drawn details keep the booking flow in the GreenLab sketch identity. */
.booking-page {
  --booking-hand-line:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 190 9' fill='none'%3E%3Cpath d='M2 4C37 1 80 2 116 4S167 5 188 3' stroke='%2366844d' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M4 8C53 5 104 6 183 7' stroke='%2366844d' stroke-width='1' stroke-linecap='round' opacity='.65'/%3E%3C/svg%3E");
}
.booking-page .form-intro h1{position:relative}
.booking-page .form-intro h1::after{content:"";position:absolute;left:0;bottom:-7px;width:min(190px,70%);height:7px;background:var(--booking-hand-line) center/100% 100% no-repeat;pointer-events:none}
.booking-page .booking-step-track span{height:5px;border-radius:55% 42% 50% 35% / 2px 3px 2px 3px}
.booking-page .booking-step-track span.active{background:var(--booking-hand-line) center/100% 100% no-repeat}
.booking-page .service-category-tabs button{border-radius:10px 8px 11px 9px / 9px 11px 8px 10px}
.booking-page .service-category-tabs button[aria-selected=true]::after{content:"";position:absolute;left:18%;right:18%;bottom:3px;height:4px;background:var(--booking-hand-line) center/100% 100% no-repeat;pointer-events:none}
.booking-page .booking-service{border-radius:11px 9px 12px 10px / 10px 12px 9px 11px}
.booking-page .booking-service.is-selected{border-color:var(--green);box-shadow:inset 0 0 0 1px #65864e26}
.booking-page .service-selection-mark{border-radius:48% 53% 47% 51%}
.booking-page .booking-footer-actions>.button,.booking-page .booking-back{border-radius:10px 8px 11px 9px / 9px 11px 8px 10px}
@media(max-width:760px){.booking-page .form-intro h1::after{width:min(155px,60%);height:6px;bottom:-5px}}
