/* Shared contact details and dedicated booking/privacy pages. */
.keystone-contact-strip{background:#173e39;color:#fff;padding:10px max(5vw,24px);display:flex;align-items:center;justify-content:space-between;gap:16px;font:13px/1.5 Arial,Helvetica,sans-serif}
.keystone-contact-details{display:flex;align-items:center;flex-wrap:wrap;gap:8px 28px}
.keystone-contact-strip a{color:#fff;text-decoration:none}
.keystone-contact-strip a:hover{text-decoration:underline}
.keystone-contact-strip .keystone-book-now{background:#fff7e5;color:#173e39;padding:9px 19px;border-radius:6px;font-weight:700;white-space:nowrap}
.keystone-contact-strip a:focus-visible{outline:3px solid #f4c55f;outline-offset:4px}
.keystone-contact-strip .keystone-phone{font-weight:700;white-space:nowrap}
.keystone-contact-strip .keystone-email{overflow-wrap:anywhere}
.keystone-footer-links{margin-top:16px}
.booking-header{position:relative;gap:24px}
.booking-header nav{width:auto;order:initial;gap:22px}
.booking-hero{display:grid;grid-template-columns:1.12fr 1fr;gap:clamp(35px,6vw,100px);align-items:center;padding:70px max(5vw,24px) 78px;background:var(--cream)}
.booking-intro h1{font-size:clamp(44px,5.4vw,76px);max-width:650px}
.booking-lead{font-size:21px;line-height:1.55;max-width:580px}
.booking-intro>p:not(.eyebrow){max-width:570px}
.booking-services{font-size:14px;border-left:3px solid #b0c7b9;padding-left:16px;margin:26px 0}
.booking-request{padding:38px;background:#fff;border:1px solid #d2dfd6;border-radius:16px;box-shadow:0 16px 50px #173e390a;scroll-margin-top:30px}
.booking-request h2{font-size:36px;line-height:1.15}
.booking-primary{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px;white-space:normal;text-align:left;font-size:15px;line-height:1.5;padding:17px 20px}
.booking-form-note{font-size:12px;line-height:1.65;margin:13px 0 0}
.booking-form-note a,.privacy-body a,.policy-origin a{text-underline-offset:3px;overflow-wrap:anywhere}
.booking-expectation{padding:20px;background:#f0f5ef;border-radius:7px;margin-top:26px;font-size:14px}
.booking-expectation strong{color:#173e39}
.booking-expectation p{margin:6px 0 0}
.booking-next,.booking-faq{padding:64px max(5vw,24px)}
.booking-section-title h2{font-size:40px}
.booking-steps-list{list-style:none;padding:0;margin:36px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:45px}
.booking-step-number{display:block;font:28px Georgia,serif;color:var(--teal);padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:20px}
.booking-steps-list h3{font-size:19px}
.booking-steps-list p{font-size:15px;margin-bottom:0}
.booking-help-section{background:#173e39;color:#fff;padding:48px max(5vw,24px);display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:center}
.booking-help-section h2{font-size:38px}
.booking-help-section .eyebrow{color:#bddecb}
.booking-help-section p{color:#dfebe5;max-width:540px;margin-bottom:0}
.booking-help-links{display:flex;flex-direction:column;align-items:flex-start;gap:11px}
.booking-help-links a{color:#fff;text-underline-offset:4px;overflow-wrap:anywhere;max-width:100%}
.booking-help-links p{font-size:12px;margin-top:8px}
.booking-faq{max-width:1000px;margin:auto}
.booking-faq h2{font-size:38px}
.booking-faq details{padding:20px 0;border-bottom:1px solid var(--line)}
.booking-faq summary{font-weight:600;cursor:pointer}
.booking-faq details p{margin:15px 0 0}
.booking-page footer a{overflow-wrap:anywhere}
.booking-page .skip:focus{z-index:30}
.privacy-intro{padding:54px max(5vw,24px);background:var(--cream)}
.privacy-intro h1{font-size:56px}
.privacy-intro>p{max-width:800px}
.policy-origin{font-size:13px}
.policy-contents{display:flex;flex-wrap:wrap;gap:14px 30px;justify-content:flex-start;margin-top:28px;font-size:14px}
.privacy-body{max-width:900px;margin:auto;padding:52px 28px 70px}
.privacy-body h2{font-size:35px;padding-top:25px;margin-top:25px;border-top:1px solid var(--line);scroll-margin-top:30px}
.privacy-body h2:first-child{margin-top:0;padding-top:0;border-top:0}
.privacy-body h3{font-size:21px;margin-top:32px}
.privacy-body h4{font-size:16px;margin-top:22px}
.privacy-body li{margin-bottom:8px;color:var(--muted)}
.privacy-body li p{margin:0}
.policy-effective{font-size:13px;font-weight:600}
@media(max-width:900px){.booking-header{flex-wrap:wrap}.booking-header nav{order:3;width:100%;justify-content:center}.booking-hero{gap:28px;padding-top:45px}.booking-request{padding:28px}.booking-steps-list{gap:25px}}
@media(max-width:650px){.keystone-contact-strip{padding:12px 18px;gap:12px;font-size:12px}.keystone-contact-details{flex-direction:column;align-items:flex-start;gap:5px;min-width:0}.keystone-contact-strip .keystone-book-now{padding:10px 12px;font-size:12px}.keystone-contact-strip .keystone-email{font-size:11px}.booking-hero{grid-template-columns:1fr;padding:38px 22px 42px}.booking-intro h1{font-size:48px}.booking-lead{font-size:19px}.booking-request{padding:25px}.booking-request h2{font-size:32px}.booking-steps-list{grid-template-columns:1fr;gap:28px}.booking-next,.booking-faq{padding:42px 22px}.booking-section-title h2{font-size:34px}.booking-help-section{grid-template-columns:1fr;gap:26px;padding:38px 22px}.booking-help-section h2{font-size:34px}.booking-help-links{font-size:14px}.booking-header .button{max-width:135px}.privacy-intro{padding:38px 22px}.privacy-intro h1{font-size:44px}.privacy-body{padding:30px 22px 50px}.privacy-body h2{font-size:30px}.policy-contents{flex-direction:column;align-items:flex-start}}
