:root{--paper:#f6f5f0;--ink:#20231e;--muted:#686b64;--line:#dcded5;--accent:#d7eea8;--card:#eeeee7;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}a{color:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid #637b38;outline-offset:4px}button{color:inherit}p{line-height:1.65}h1,h2,h3,p{margin-top:0}em{font-family:Georgia,'Times New Roman',serif;font-weight:400}img{max-width:100%;display:block}[hidden]{display:none!important}.booking-header{display:flex;justify-content:space-between;align-items:center;padding:28px 4.5vw;border-bottom:1px solid var(--line);gap:24px}.booking-brand{font-family:Georgia,serif;font-size:26px;text-decoration:none;letter-spacing:-1.2px;white-space:nowrap}.booking-brand span{display:block;font:9px Arial,sans-serif;letter-spacing:1.5px;margin-top:10px}.booking-header nav{display:flex;gap:30px;align-items:center;font-size:13px}.booking-header nav a{text-decoration:none}.booking-header nav a[aria-current]{background:var(--ink);color:white;border-radius:30px;padding:14px 22px}.booking-hero{padding:78px 4.5vw 60px;display:grid;grid-template-columns:1.7fr 1fr;gap:40px;align-items:end}.eyebrow{font-size:10px;font-weight:600;letter-spacing:1.6px;margin-bottom:25px}.status-dot{display:inline-block;width:7px;height:7px;background:#7e984e;border-radius:50%;margin-right:8px}h1{font-size:clamp(56px,7.5vw,116px);line-height:.98;letter-spacing:-.065em;font-weight:400;margin-bottom:0}h1 em{letter-spacing:-.07em}.hero-note{padding-left:25px;font-size:14px}.hero-arrow{font-size:56px;line-height:1;display:block;margin-bottom:25px}.hero-note a{display:inline-flex;gap:50px;text-decoration:none;border-bottom:1px solid var(--ink);padding:10px 0;font-size:12px}.booking-process{margin:0 4.5vw;border-block:1px solid var(--line);display:flex;justify-content:space-between;padding:24px 0;font-size:12px}.booking-process b{font-size:10px;color:var(--muted);margin-right:15px;font-weight:400}.booking-services{padding:60px 4.5vw 85px;scroll-margin-top:20px}.section-heading{display:flex;align-items:start;justify-content:space-between;gap:30px;margin-bottom:32px}.section-heading h2{font-size:32px;font-weight:400;letter-spacing:-1px}.section-heading p{color:var(--muted);font-size:12px}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.service-card{border:1px solid var(--line);display:grid;grid-template-columns:44% 56%;min-height:275px;background:#fafaf7}.service-image{position:relative;min-width:0;background:var(--card)}.service-image img{width:100%;height:100%;position:absolute;object-fit:contain}.service-card-body{padding:28px 24px;display:flex;flex-direction:column;align-items:start}.service-card .eyebrow{font-size:8px;letter-spacing:1.2px;margin-bottom:18px}.service-card h3{font-size:24px;line-height:1.15;font-weight:400;letter-spacing:-.7px;margin-bottom:12px}.service-card p:not(.eyebrow){font-size:12px;color:var(--muted);margin-bottom:22px}.service-card .service-price{font-size:11px;margin-top:auto;margin-bottom:14px}.service-book{border:0;background:var(--ink);color:#fff;padding:12px 15px;border-radius:3px;font-size:12px;display:flex;gap:25px;align-items:center}.service-book:hover{background:#405034}.service-number{position:absolute;left:14px;top:14px;font-size:9px;z-index:1;background:#f6f5f0d9;padding:5px}.booking-bottom{padding:65px 4.5vw;background:#e9ece2;display:grid;grid-template-columns:1fr 1fr;column-gap:70px}.booking-bottom>.eyebrow{grid-column:1/-1}.booking-bottom h2{font-size:46px;line-height:1.12;font-weight:400;letter-spacing:-2px}.booking-faq details{border-bottom:1px solid #c9cec0;padding:17px 0}.booking-faq summary{cursor:pointer;font-size:14px;line-height:1.4}.booking-faq p{font-size:13px;color:#53594c;margin:16px 0 0}.booking-footer{padding:48px 4.5vw 90px;display:flex;justify-content:space-between;gap:25px;align-items:center;flex-wrap:wrap}.booking-footer p,.booking-footer>a:last-child{font-size:12px;margin:0}.skip-link{position:absolute;top:-100px;left:20px;padding:12px;background:var(--ink);color:white;z-index:99}.skip-link:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#booking-dialog{padding:0;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);width:min(960px,calc(100vw - 48px));max-width:100vw;max-height:calc(100dvh - 48px);overflow:auto}#booking-dialog::backdrop{background:#151a14a8;backdrop-filter:blur(5px)}body:has(#booking-dialog[open]){overflow:hidden}.booking-dialog-top{padding:20px 28px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.dialog-brand{font-size:10px;font-weight:600;letter-spacing:1.6px;text-decoration:none}.icon-button{background:none;border:0;width:44px;height:44px;font-size:30px;font-weight:300}.booking-progress{display:flex;padding:18px 28px;gap:28px;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}.booking-progress span[aria-current]{color:var(--ink);font-weight:700}.booking-dialog-content{display:grid;grid-template-columns:minmax(0,1fr) 260px}.booking-step-main{padding:32px;min-height:450px}.booking-step-main>.eyebrow{font-size:9px;margin-bottom:12px}.booking-step-main h2{font-size:34px;letter-spacing:-1px;font-weight:400;margin-bottom:16px}.muted{color:var(--muted);font-size:13px}.booking-summary{background:#ebede4;border-left:1px solid var(--line);padding:30px 24px}.booking-summary img{height:145px;width:100%;object-fit:contain;background:#f9faf5;margin-bottom:25px}.booking-summary h3{font-size:18px;font-weight:400;line-height:1.5}.booking-summary p,.booking-summary a{font-size:11px}.summary-price{padding:20px 0;border-block:1px solid #ccd1c2;margin:20px 0;font-size:11px;display:flex;flex-direction:column;gap:10px}.service-options{border:0;margin:24px 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.service-option{padding:13px 10px;border:1px solid var(--line);border-radius:4px;display:flex;gap:9px;align-items:center;font-size:12px;line-height:1.35;cursor:pointer;min-height:58px;background:#fafaf7}.service-option:has(input:checked){border-color:#5c7142;background:#e6eedb}.service-option input,.consent input{accent-color:#334828;width:17px;height:17px;flex-shrink:0}.field{display:flex;flex-direction:column;gap:9px;font-size:12px;margin:20px 0 0;position:relative}.field input,.field select,.field textarea{width:100%;min-width:0;border:1px solid #cdd0c5;padding:13px 12px;border-radius:4px;background:#fff;color:var(--ink);font-size:14px;min-height:46px}.field textarea{resize:vertical}.field-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.optional{color:var(--muted);font-size:11px}.field-help{font-size:11px;line-height:1.6;color:var(--muted);margin:10px 0}.timezone-note{background:#e7ebdf;padding:13px;font-size:12px;margin-top:25px}.consent{display:flex;align-items:start;gap:10px;font-size:12px;line-height:1.5;margin-top:24px}.consent input{margin-top:2px}.booking-dialog-footer{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:18px 28px;gap:15px;background:var(--paper);position:sticky;bottom:0;z-index:1}.primary-button{border:0;border-radius:4px;background:var(--ink);color:white;padding:15px 22px;font-size:13px;min-height:46px}.primary-button:hover{background:#405034}.text-button{border:0;background:none;padding:12px 0;font-size:12px}#booking-step-count{font-size:9px;letter-spacing:1px;color:var(--muted)}#booking-error{background:#f6e5df;border-left:3px solid #98432e;padding:14px;margin-top:20px;font-size:13px;line-height:1.5}#booking-review dl{margin:0;font-size:13px}#booking-review dt{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-top:18px}#booking-review dd{margin:7px 0 0;line-height:1.5;overflow-wrap:anywhere;white-space:pre-wrap}.booking-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.success-mark{font-size:40px;color:#445f31;display:block;margin:20px 0}#booking-success h3{font-size:28px;font-weight:400}#booking-success p{font-size:13px}
@media(max-width:760px){.booking-header{padding:22px 22px;align-items:start}.booking-brand{font-size:22px}.booking-brand span{font-size:7px;letter-spacing:1px}.booking-header nav{gap:0}.booking-header nav a:not([aria-current]){display:none}.booking-header nav a[aria-current]{padding:12px;font-size:10px}.booking-hero{padding:50px 22px 35px;grid-template-columns:1fr;gap:30px}.booking-hero h1{font-size:clamp(52px,12vw,80px)}.hero-note{padding:0;display:grid;grid-template-columns:1fr auto;align-items:end}.hero-note p{font-size:12px;margin:0}.hero-arrow{display:none}.hero-note a{gap:10px;font-size:10px}.booking-process{margin:0 22px;padding:18px 0;gap:12px;font-size:10px;align-items:start}.booking-process span{max-width:30%;line-height:1.5}.booking-process b{display:block;margin-bottom:6px}.booking-services{padding:36px 22px 48px}.section-heading{gap:15px;margin-bottom:22px}.section-heading h2{font-size:25px}.section-heading p{font-size:10px;max-width:120px}.service-grid{grid-template-columns:1fr;gap:16px}.service-card{min-height:255px;grid-template-columns:40% 60%}.service-card-body{padding:24px 17px}.service-card h3{font-size:23px}.service-card .eyebrow{font-size:7px;letter-spacing:.9px}.service-card p:not(.eyebrow){font-size:11px}.booking-bottom{padding:40px 22px;grid-template-columns:1fr;gap:15px}.booking-bottom h2{font-size:38px}.booking-footer{padding:36px 22px 100px;display:block}.booking-footer p{margin:18px 0}.booking-dialog-content{grid-template-columns:1fr}.booking-summary{display:none}#booking-dialog{width:100%;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}.booking-dialog-top{padding:10px 18px}.booking-progress{padding:16px 18px;gap:0;justify-content:space-between;font-size:10px}.booking-step-main{padding:25px 20px;min-height:calc(100dvh - 200px)}.booking-step-main h2{font-size:30px}.booking-dialog-footer{padding:14px 20px;padding-bottom:max(14px,env(safe-area-inset-bottom))}.field-columns{grid-template-columns:1fr;gap:0}.field input,.field select,.field textarea{font-size:16px}.service-options{gap:8px}.service-option{font-size:11px}.primary-button{padding:14px 18px}#booking-step-count{font-size:8px}.hero-note a{white-space:nowrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Keep the booking destination's navigation equally spacious on small screens. */
@media (max-width: 760px) {
  body .booking-header { flex-direction: column; gap: 24px; }
  body .booking-header nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    gap: 14px 12px;
  }
  body .booking-header nav a:not([aria-current]) {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    font-size: 14px;
  }
  body .booking-header nav a[aria-current] {
    grid-column: 1 / -1;
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    padding: 14px 24px;
  }
}
.booking-availability{margin:24px 4.5vw 0;padding:18px 22px;border:1px solid #cdd0c5;background:#edf0e5;display:flex;align-items:center;flex-wrap:wrap;gap:14px 24px;font-size:14px}
.booking-availability p{flex:1 1 340px;margin:0;line-height:1.6}
.booking-availability a,.booking-availability button{min-height:44px;display:inline-flex;align-items:center}
.booking-availability button{border:1px solid #cdd0c5;background:transparent;border-radius:6px;padding:10px 16px}

/* Readable service cards: one spacious row on tablets, stacked on phones. */
.booking-page .service-card p:not(.eyebrow),
.booking-page .hero-note p,.booking-page .booking-faq p { font-size: 15px; }
.booking-page .eyebrow,.booking-page .service-card .eyebrow,
.booking-page .field-help,.booking-page .optional,.booking-page .section-heading p,
.booking-page .service-price,.booking-page .booking-process,
.booking-page .booking-progress,.booking-page #booking-step-count,
.booking-page .booking-brand span { font-size: 12px; }
.booking-page .service-book { min-height: 48px; font-size: 14px; white-space: nowrap; }
.booking-page .field,.booking-page .service-option,.booking-page .consent,
.booking-page .muted { font-size: 14px; }
.booking-privacy { margin: 0 4.5vw; padding: 36px 0; border-top: 1px solid var(--line); scroll-margin-top: 24px; }
.booking-privacy h2 { font-size: 28px; font-weight: 400; }
.booking-privacy p { font-size: 14px; max-width: 75ch; }
@media (max-width: 1100px) {
  .booking-page .service-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .booking-page .service-card { grid-template-columns: 40% minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .booking-page .service-card { grid-template-columns: minmax(0, 1fr); }
  .booking-page .service-image { height: 240px; }
  .booking-page .service-card-body { padding: 24px; }
  .booking-page .service-card .eyebrow { letter-spacing: 1px; }
  .booking-page .service-book { width: 100%; justify-content: space-between; }
  .booking-page .hero-note { grid-template-columns: 1fr; gap: 20px; }
  .booking-page .hero-note a { font-size: 14px; justify-self: start; min-height: 44px; }
  .booking-page .section-heading { flex-direction: column; gap: 8px; }
  .booking-page .section-heading p { max-width: none; }
  .booking-page .booking-brand span { white-space: normal; line-height: 1.5; letter-spacing: 1px; }
  .booking-page .booking-progress { flex-wrap: wrap; gap: 12px 20px; }
  .booking-page .booking-dialog-footer { flex-wrap: wrap; }
  .booking-page .service-options { grid-template-columns: 1fr; }
  .booking-page .booking-process { gap: 16px; }
  .booking-page .booking-process b { margin-right: 0; }
}
