/* Scoped booking styles: the homepage and its approved layouts are unaffected. */
#gmBooking{position:fixed;inset:0;z-index:1500;display:grid;place-items:center;background:rgba(5,27,22,.6);padding:24px;color:#20352d;font-family:Inter,Arial,sans-serif;overflow:auto}
#gmBooking[hidden]{display:none!important}#gmBooking *{box-sizing:border-box}#gmBooking .gmDialog{width:min(1130px,100%);background:#f8f7f0;border:1px solid #e3e7dd;border-radius:24px;box-shadow:0 30px 110px #001e1766;position:relative;max-height:calc(100dvh - 48px);overflow:auto}
#gmBooking h2,#gmBooking h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;letter-spacing:-.025em;color:#0d3b31;margin:0;line-height:1.08}#gmBooking h2{font-size:clamp(32px,2.7vw,40px)}#gmBooking h3{font-size:27px}#gmBooking p{line-height:1.6;font-size:14px;margin:12px 0;color:#52665c}#gmBooking button{font-family:Inter,Arial,sans-serif;cursor:pointer;font-size:14px;letter-spacing:0}
#gmBooking button:focus-visible,#gmBooking a:focus-visible{outline:3px solid #28816a;outline-offset:3px}#gmBooking .gmClose{position:absolute;right:17px;top:14px;border:0;background:#e9eee5;color:#0d3b31;width:34px;height:34px;border-radius:50%;font-size:24px;z-index:2}#gmBooking .gmHeader{padding:24px 40px 20px;border-bottom:1px solid #dde4d9;padding-right:64px}#gmBooking .gmEyebrow{display:block;font-size:10px;font-weight:600;letter-spacing:.13em;color:#456759;margin-bottom:13px}
#gmBooking .gmLayout{display:grid;grid-template-columns:minmax(0,1fr) 310px}#gmBooking .gmCalendarPane{padding:25px 40px 30px}#gmBooking .gmMonth{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}#gmBooking .gmMonth button{border:1px solid #d8e2d6;background:#fff;width:36px;height:36px;border-radius:50%;color:#0d3b31;font-size:22px}#gmBooking .gmWeek,#gmBooking .gmDays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}#gmBooking .gmWeek span{font-size:11px;color:#61766b;padding:7px 0}#gmBooking .gmDay{height:37px;border:0;background:transparent;border-radius:10px;color:#27473a;font-weight:500}#gmBooking .gmDay:not(:disabled):hover{background:#dceee0}#gmBooking .gmDay[aria-pressed=true]{background:#0d3b31;color:#fff;box-shadow:0 5px 12px #0d3b3122}#gmBooking .gmDay:disabled{color:#9ca89e;cursor:default;background:#eef0e9}
#gmBooking .gmTimesTitle{margin-top:25px;padding-top:22px;border-top:1px solid #dfe5da}#gmBooking .gmTimes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:16px 0}#gmBooking .gmTime{min-height:43px;padding:8px 4px;border:1px solid #bad5c2;background:#e6f1e6;color:#0d3b31;border-radius:10px;font-size:12px}#gmBooking .gmTime:disabled{color:#8e9991;border-color:#e3e6dd;background:#ecefe7;cursor:default}#gmBooking .gmTime[aria-pressed=true]{background:#0d3b31;color:white;border-color:#0d3b31}#gmBooking .gmLegend{font-size:11px;color:#536b5d;display:flex;gap:20px}#gmBooking .gmLegend span:before{content:'';display:inline-block;width:9px;height:9px;background:#b4dbbe;border-radius:50%;margin-right:6px}#gmBooking .gmLegend span+span:before{background:#b8c0b5}
#gmBooking .gmSummary{background:#eef2e8;border-left:1px solid #dfe5d9;padding:24px}#gmBooking .gmSummary img{display:block;width:100%;height:145px;object-fit:cover;border-radius:13px;margin-bottom:19px}#gmBooking .gmDetail{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid #dbe2d5;padding:10px 0;font-size:12px;line-height:1.5}#gmBooking .gmDetail strong{text-align:right;font-weight:500}#gmBooking .gmTotal{margin:20px 0;padding:18px;background:#fff;border:1px solid #dce5d7;border-radius:14px}#gmBooking .gmTotal small{display:block;color:#526b5d;font-size:11px;margin-bottom:8px}#gmBooking .gmTotal strong{display:block;font-family:Inter,Arial,sans-serif;font-size:30px;font-weight:600;color:#0d3b31;line-height:1.2}#gmBooking .gmTotal del{font-size:14px;color:#6a7c6e;margin-right:8px}#gmBooking .gmGift{font-size:12px;color:#365d47;line-height:1.6;background:#dcecdc;border-radius:10px;padding:13px}#gmBooking .gmFooter{position:sticky;bottom:0;z-index:1;background:#f8f7f0;padding:18px 40px;border-top:1px solid #dfe5d9;display:flex;align-items:center;justify-content:space-between;gap:15px}#gmBooking .gmButton{border:1px solid #0d3b31;border-radius:30px;padding:13px 23px;min-height:46px;background:#0d3b31;color:#fff;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:20px;text-decoration:none}#gmBooking .gmButton:hover{background:#185443}#gmBooking .gmButton:disabled{opacity:.5;cursor:default}#gmBooking .gmBack,#gmBooking .gmEdit{border:0;background:transparent;color:#0d3b31;padding:10px 0;text-decoration:underline;text-underline-offset:4px;font-size:12px}#gmBooking .gmError{color:#8a382c!important;font-size:13px!important;min-height:20px}#gmBooking .gmReview{padding:25px 40px;display:grid;grid-template-columns:1.2fr 1fr;gap:32px}#gmBooking .gmReviewCard{background:white;border:1px solid #dce4d8;border-radius:16px;padding:22px}#gmBooking .gmReviewTitle{display:flex;align-items:center;justify-content:space-between;gap:14px}#gmBooking .gmNotice{background:#e7efe1;padding:18px;border:1px solid #ccdecb;border-radius:14px;font-size:13px;line-height:1.6;margin-top:20px}#gmBooking .gmNotice strong{display:block;color:#0d3b31;font-size:16px;margin-bottom:6px}#gmBooking .gmSuccess{padding:45px;text-align:center;max-width:660px;margin:auto}#gmBooking .gmSuccess .gmLogo{width:140px;height:65px;object-fit:contain;margin:0 auto 22px;display:block}#gmBooking .gmCheck{display:grid;place-items:center;width:82px;height:82px;margin:20px auto 27px;border-radius:50%;background:#d9eddb;border:1px solid #b7d7bd;color:#0d3b31;box-shadow:0 0 0 9px #e9f1e2}#gmBooking .gmCheck svg{width:42px;height:42px}#gmBooking .gmSuccessDetails{text-align:left;background:#fff;border:1px solid #dce4d8;padding:17px 22px;border-radius:14px;margin:22px 0}#gmBooking .gmStatus{font-size:12px;display:inline-block;background:#e9eee2;padding:7px 14px;border-radius:20px;color:#325c43}#gmBooking .gmSuccess .gmButton{margin-top:12px}
.gmBookingFields{margin:15px 0}.gmBookingFields small{display:block;font-size:12px;line-height:1.5;color:#52685d;margin-top:7px}#quoteChooseTime{width:100%;padding:12px 15px;min-height:45px;border:1px solid #cbd9ce;border-radius:9px;background:#f8fbf4;text-align:left;color:#0d3b31;font:500 14px Inter,Arial,sans-serif}#quoteDate[hidden]{display:none!important}
@media(max-width:767px){#gmBooking{padding:10px}#gmBooking .gmDialog{border-radius:18px;max-height:calc(100dvh - 20px)}#gmBooking .gmHeader{padding:25px 20px 20px;padding-right:50px}#gmBooking h2{font-size:31px}#gmBooking h3{font-size:25px}#gmBooking .gmLayout,#gmBooking .gmReview{grid-template-columns:1fr}#gmBooking .gmCalendarPane{padding:20px}#gmBooking .gmDays,#gmBooking .gmWeek{gap:3px}#gmBooking .gmDay{height:38px;font-size:13px}#gmBooking .gmTimes{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}#gmBooking .gmTime{font-size:12px}#gmBooking .gmSummary{border-left:0;border-top:1px solid #dfe5d9;padding:20px}#gmBooking .gmSummary img{display:none}#gmBooking .gmSummary .gmDetail{padding:7px 0}#gmBooking .gmTotal{margin:13px 0;padding:15px}#gmBooking .gmFooter{padding:16px 20px;position:sticky;bottom:0;background:#f8f7f0;z-index:1}#gmBooking .gmButton{padding:12px 17px;font-size:13px;gap:12px}#gmBooking .gmReview{padding:20px;gap:16px}#gmBooking .gmReviewCard{padding:18px}#gmBooking p{font-size:14px}#gmBooking .gmSuccess{padding:30px 20px}#gmBooking .gmDetail{overflow-wrap:anywhere}#gmBooking .gmEyebrow{letter-spacing:.08em}}
@media(prefers-reduced-motion:no-preference){#gmBooking .gmCheck{animation:gmBookingCheck .4s ease-out}@keyframes gmBookingCheck{from{transform:scale(.85);opacity:.3}to{transform:scale(1);opacity:1}}}
/* Preferred arrival windows — scheduling only. */
#gmBooking .gmEstimateNext{background:#e1eddf;border-radius:12px;padding:15px;font-size:13px;line-height:1.6;margin:18px 0}#gmBooking .gmEstimateNext strong{font-weight:600;color:#0d3b31}
#gmBooking .gmCustomDate{display:block;color:#20352d;font:500 14px/1.5 Inter,Arial,sans-serif;margin:15px 0}#gmBooking .gmCustomDate input{display:block;width:100%;min-height:46px;font:400 16px Inter,Arial,sans-serif;border:1px solid #cfdbce;border-radius:9px;padding:11px;background:#fff;color:#20352d;margin-top:8px}
.gmSmsConsent{display:flex!important;align-items:flex-start;gap:10px;margin-top:16px;padding:13px 15px;border:1px solid #d9e4d7;border-radius:13px;background:#f5f8f1;color:#4a6257;font-size:12px!important;line-height:1.55!important;font-weight:400!important}.gmSmsConsent input{flex:0 0 18px;width:18px!important;height:18px!important;margin:1px 0 0!important;accent-color:#0d3b31}.gmSmsConsent span{display:block}
#gmBooking .gmWindows{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:15px 0}#gmBooking .gmWindow{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:137px;padding:16px 8px;border:1px solid #d5dfd1;border-radius:12px;background:#fbfcf7;color:#0d3b31;text-align:center}#gmBooking .gmWindow svg{width:32px;height:32px}#gmBooking .gmWindow strong{font:500 23px/1.15 'Cormorant Garamond',Georgia,serif}#gmBooking .gmWindow span{font-size:11px;line-height:1.45}#gmBooking .gmWindow i{display:none;position:absolute;right:9px;top:9px;background:#0d3b31;color:white;width:21px;height:21px;border-radius:50%;font-size:12px;font-style:normal;line-height:21px}#gmBooking .gmWindow[aria-pressed=true]{background:#e3f0e2;border-color:#0d3b31;box-shadow:inset 0 0 0 1px #0d3b31}#gmBooking .gmWindow[aria-pressed=true] i{display:block}#gmBooking .gmWindow:disabled{opacity:.45;cursor:default;background:#edf0e8}#gmBooking .gmWindowNotice{background:#eaf1e5;border:1px solid #dce7d7;border-radius:12px;padding:15px 17px;font-size:12px;line-height:1.65;color:#355747}#gmBooking .gmHeader h2{font-size:clamp(29px,2.5vw,36px)}#gmBooking .gmDay:not(:disabled):not([aria-pressed=true]){border:1px solid #dfe7d9;background:#fafbf6}#gmBooking .gmDay:not(:disabled):after{content:'';display:block;background:#2b6d55;width:4px;height:4px;border-radius:50%;margin:1px auto 0}#gmBooking .gmDay[aria-pressed=true]:after{background:#aee6c0}@media(max-width:767px){#gmBooking .gmWindows{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}#gmBooking .gmWindow{min-height:125px}#gmBooking .gmWindow strong{font-size:24px}#gmBooking .gmWindow span{font-size:12px}#gmBooking .gmWindowNotice{font-size:13px}#gmBooking .gmHeader h2{font-size:30px}}
