@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&family=Great+Vibes&display=swap');
:root{--ink:#1d3023;--dark:#17271f;--sage:#a7bea0;--soft:#738277;--line:#e7ede4;--bg:#f5f6f1}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:16px 'DM Sans',sans-serif}button,input{font:inherit}button,a{cursor:pointer}a{color:inherit;text-decoration:none}button{border:0}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #8da982;outline-offset:3px}.top{height:88px;background:var(--dark);color:#edf4e9;padding:0 7%;display:flex;align-items:center;justify-content:space-between}.brand{font:44px/.8 'Great Vibes',cursive;color:white;text-align:center}.brand span{font:12px 'DM Sans',sans-serif;display:block;letter-spacing:4px;margin-top:13px}.back-link{color:#bfcfc0;font-size:15px}.layout{max-width:1320px;margin:0 auto;padding:62px 6% 90px;display:grid;grid-template-columns:minmax(250px,.7fr) minmax(0,1.2fr);gap:9%;align-items:start}.intro{position:sticky;top:45px;padding:20px 0}.eyebrow{font-size:12px;letter-spacing:2px;color:#859b86;font-weight:700;margin:0 0 16px}.eyebrow span{display:inline-block;width:24px;height:1px;background:#a1b79a;vertical-align:middle;margin-right:9px}h1,h2{font-family:'DM Serif Display',Georgia,serif;font-weight:400;letter-spacing:-1.3px}h1{font-size:clamp(42px,4vw,64px);line-height:1.08;margin:0 0 22px}h1 em,.result-card h2 em{color:#98ae90;font-weight:400}.intro>p{max-width:360px;color:#7c8b7d;font-size:16px;line-height:1.9;margin:0}.intro-rule{width:60px;height:1px;background:#b6c9ae;margin:35px 0}.steps{display:grid;gap:20px}.steps>div{display:flex;align-items:center;gap:16px}.steps span{font-size:13px;color:#9eb099;letter-spacing:1px}.steps strong{font-size:15px;font-weight:600}.location{display:flex;gap:14px;margin-top:80px;color:#647968}.location-icon{background:#e8eee4;border-radius:50%;height:42px;width:42px;display:grid;place-items:center;font-size:24px}.location small,.location strong,.location div>span{display:block}.location small{font-size:12px;letter-spacing:1.4px;color:#9bab99;margin-bottom:7px}.location strong{font-size:15px}.location div>span{font-size:14px;margin-top:4px}.booking-card,.result-card{background:#fff;border:1px solid #e4ebe1;border-radius:16px;box-shadow:0 15px 60px #1d39230a;padding:38px}.card-title{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:28px;border-bottom:1px solid var(--line)}.card-title .eyebrow{margin-bottom:8px}.card-title h2,.result-card h2{font-size:34px;margin:0 0 7px}.card-title h2 span{color:#a1b699}.card-title p:not(.eyebrow),.step-heading p{font-size:14px;color:#99a59a;margin:0}.card-icon{width:42px;height:42px;display:grid;place-items:center;background:#eef3eb;border-radius:50%;font-size:22px;color:#8ca988}.step{padding:29px 0;border-bottom:1px solid var(--line)}.step-heading{display:flex;gap:13px;margin-bottom:20px}.step-heading>span{width:28px;height:28px;flex:none;display:grid;place-items:center;background:#eef3eb;border-radius:50%;font-size:12px;color:#759270;font-weight:700}.step-heading h3{font-size:16px;margin:0 0 5px}.services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.service{position:relative;border:1px solid #e3e9e0;background:#fff;border-radius:9px;padding:16px 12px;text-align:left;min-height:112px;color:var(--ink)}.service:hover{border-color:#a4bda0}.service.selected{background:#f0f6ed;border-color:#86a580;box-shadow:inset 0 0 0 1px #86a580}.service-symbol{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:#eef3eb;color:#799676;margin-bottom:13px;font-size:18px}.service strong,.service small{display:block;overflow-wrap:anywhere}.service strong{font-size:14px;line-height:1.35}.service small{font-size:13px;color:#95a397;margin-top:6px}.service.selected:after{content:'✓';position:absolute;right:10px;top:10px;background:#73966c;color:white;border-radius:50%;font-size:12px;width:16px;height:16px;display:grid;place-items:center}.date-time{display:grid;grid-template-columns:1fr 1fr;border:1px solid #e7ede4;border-radius:10px;overflow:hidden}.calendar,.time-panel{padding:18px}.calendar{border-right:1px solid #e7ede4}.calendar-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.calendar-top strong{font-size:15px;text-transform:capitalize}.calendar-top button{background:#f2f6ef;color:#6c826f;border-radius:5px;width:27px;height:27px;font-size:18px;margin-left:4px}.calendar-top button:disabled{opacity:.35;cursor:not-allowed}.weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;gap:4px}.weekdays{font-size:12px;color:#a8b4a7;margin-bottom:8px}.calendar-days button{aspect-ratio:1;max-width:35px;width:100%;justify-self:center;border-radius:50%;background:transparent;color:#44594a;font-size:14px}.calendar-days button:hover:not(:disabled){background:#e9f0e5}.calendar-days button.selected{background:#203b29!important;color:#fff;font-weight:700}.calendar-days button:disabled{color:#c9d1c8;cursor:not-allowed}.calendar-days button.other{color:#bdc9bc}.calendar-days button.today:not(.selected){box-shadow:inset 0 0 0 1px #a8bea1}.calendar-caption{font-size:12px;color:#a6b3a5;margin-top:13px}.calendar-caption span{display:inline-block;width:6px;height:6px;border-radius:50%;background:#93b18a;margin-right:5px}.time-panel>strong{font-size:14px}.time-panel>p{font-size:13px;color:#9ba99b;line-height:1.5;margin:8px 0 15px}.time-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:212px;overflow:auto}.time-list button{background:#f5f8f3;border:1px solid #e7ede4;border-radius:6px;padding:9px 3px;color:#566d5b;font-size:13px}.time-list button:hover{border-color:#94ad8d}.time-list button.selected{background:#203b29;border-color:#203b29;color:#fff}.helper{color:#9da99c;font-size:14px;line-height:1.6;grid-column:1/-1;margin:0}.form-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-fields label{font-size:13px;font-weight:700;color:#526758}.form-fields input{display:block;width:100%;margin-top:8px;border:1px solid #e1e9df;border-radius:7px;background:#fafcf9;padding:13px;color:var(--ink)}.form-fields input::placeholder{color:#b0bcb0}.summary{display:flex;gap:12px;align-items:center;margin:24px 0;background:#f2f6ef;padding:15px;border-radius:8px}.summary>span{font-size:20px;color:#88a483}.summary strong{display:block;font-size:14px}.summary p{margin:5px 0 0;color:#829283;font-size:13px;line-height:1.5}.primary{display:flex;align-items:center;justify-content:space-between;width:100%;background:#203b29;color:#fff;border-radius:8px;padding:16px 18px;font-size:15px;font-weight:700}.primary:hover:not(:disabled){background:#31543a}.primary:disabled{background:#acbaab;cursor:not-allowed}.primary span{font-size:18px}.message{font-size:14px;color:#a15247;line-height:1.6}.contact-note{text-align:center;color:#98a699;font-size:13px;line-height:1.6;margin:17px 0 0}.contact-note a{text-decoration:underline;color:#627b64}.result-card{padding:45px}.result-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#e8f1e4;color:#648d61;font-size:25px;margin-bottom:28px}.result-card>p:not(.eyebrow){font-size:16px;line-height:1.8;color:#7d8f80}.result-note{background:#f2f6ef;padding:18px;border-radius:9px;margin:25px 0}.result-note strong{font-size:15px}.result-note p{font-size:14px;color:#829283;line-height:1.7}.result-note a{text-decoration:underline;font-size:14px;color:#557456}.return-link{display:inline-block;font-size:14px;margin-top:23px;color:#6b826e}footer{border-top:1px solid #e3eae0;display:flex;justify-content:space-between;padding:22px 7%;font-size:12px;letter-spacing:1px;color:#96a497}[hidden]{display:none!important}@media(max-width:850px){.layout{grid-template-columns:1fr;max-width:720px;gap:32px;padding-top:32px}.intro{position:static}.steps{display:none}.intro-rule,.location{display:none}h1{font-size:45px}.intro>p{max-width:none}.booking-card{padding:28px}}@media(max-width:540px){.top{height:72px;padding:0 5%}.brand{font-size:38px}.layout{padding:28px 4% 55px}.intro{padding:0}h1{font-size:39px}.booking-card,.result-card{padding:21px}.card-title h2,.result-card h2{font-size:29px}.services{grid-template-columns:1fr}.service{min-height:0;display:flex;align-items:center;gap:12px;padding:12px}.service-symbol{margin:0;flex:none}.service small{margin-top:3px}.date-time{grid-template-columns:1fr}.calendar{border-right:0;border-bottom:1px solid #e7ede4}.calendar-days button{max-width:38px}.time-list{grid-template-columns:repeat(4,minmax(0,1fr));max-height:170px}.form-fields{grid-template-columns:1fr}.intro>p{font-size:15px}footer{gap:12px;font-size:12px}}

/* Larger booking controls without scaling or clipping the whole page. */
body{line-height:1.5}
.layout{max-width:1480px;grid-template-columns:minmax(260px,.65fr) minmax(0,1.35fr);gap:6%}
.service{min-height:132px;padding:18px 14px}
.service-symbol{width:34px;height:34px}
.calendar-top{gap:8px;flex-wrap:wrap}.calendar-top button{width:36px;height:36px}
.calendar-days button{min-height:34px;max-width:42px}
.time-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:300px}
.time-list button{min-height:44px;padding:11px 5px}
.form-fields input{font-size:16px;min-height:48px}
.primary{font-size:16px;min-height:52px}
@media(max-width:1100px){.date-time{grid-template-columns:1fr}.calendar{border-right:0;border-bottom:1px solid var(--line)}.time-list{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:850px){.layout{grid-template-columns:minmax(0,1fr);max-width:780px}}
@media(max-width:540px){.service{min-height:70px;padding:14px}.calendar-days button{max-width:42px;min-height:32px}.time-list{grid-template-columns:repeat(3,minmax(0,1fr))}.top{gap:12px}footer{letter-spacing:0;flex-wrap:wrap}}

/* Optional extras */
.extras{margin-top:18px}
.extras-title{font-size:13px;letter-spacing:1px;text-transform:uppercase;color:#859b86;font-weight:700;margin:0 0 10px}
.extra{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border:1px dashed #cfdcc9;border-radius:9px;padding:13px 14px;color:var(--ink)}
.extra:hover{border-color:#94ad8d}
.extra.selected{background:#f0f6ed;border-style:solid;border-color:#86a580;box-shadow:inset 0 0 0 1px #86a580}
.extra-check{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:50%;background:#eef3eb;color:#6f8f6a;font-size:17px;font-weight:700}
.extra.selected .extra-check{background:#5f8a58;color:#fff}
.extra-info{display:block;min-width:0}
.extra-info strong{display:block;font-size:15px}
.extra-info small{display:block;font-size:13px;color:#829283;margin-top:3px}
@media(max-width:540px){.extra{padding:12px}.extra-info strong{font-size:15px}}

.booking-closed{max-width:640px;margin:24px 0;padding:24px;border:1px solid #8fa37d55;background:#101710;color:#e9eddf}
.booking-closed strong{display:block;font-size:20px;margin-bottom:8px}
.booking-closed p{margin:0;color:#b0baaa;line-height:1.7}
.booking-closed a{color:#d8e5cd}
