/* A full-height material panel and an open scheduling surface. No nested cards. */
:root{color-scheme:light;--booking-ink:#1d1d1b;--booking-muted:#77746e;--booking-line:#e7e4de}
*{box-sizing:border-box}
body.foaster-booking{margin:0;background:#fff;color:var(--booking-ink);font-family:"Instrument Sans",Arial,sans-serif;-webkit-font-smoothing:antialiased}
.foaster-booking a{color:inherit;text-decoration:none}
.booking-skip{position:fixed;top:8px;left:8px;z-index:10;transform:translateY(-150%);padding:12px 18px;background:#fff;border:1px solid var(--booking-line);border-radius:6px}
.booking-skip:focus{transform:none}
.booking-close{position:fixed;z-index:5;right:32px;top:30px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#f4f4f2;color:#262521;transition:background-color 150ms ease}
.booking-layout{display:grid;grid-template-columns:1fr 1fr;min-height:100svh}
.booking-intro{position:sticky;top:0;height:100svh;min-height:660px;isolation:isolate;overflow:hidden;color:#f8f6f2;background:#403229 url('./images/materials/walnut-mineral.webp') center/cover}
.booking-intro::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(150deg,rgba(29,25,22,.48),rgba(37,28,22,.13) 55%,rgba(29,25,22,.48))}
.booking-logo{position:absolute;top:38px;left:40px;display:block;width:82px;height:34px}
.booking-logo img{display:block;width:82px;height:34px;object-fit:contain;filter:brightness(0) invert(1)}
.booking-statement{display:grid;place-items:center;height:100%;padding:120px 40px 140px}
.booking-statement p{margin:0;text-align:center;font-size:clamp(44px,4.5vw,76px);font-weight:450;line-height:1.06;letter-spacing:-.05em}
.booking-proof{position:absolute;bottom:38px;left:40px;right:40px;display:flex;align-items:center;justify-content:space-between;gap:24px;color:#e3d9ce;font-size:11px;line-height:1.5}
.booking-proof p{margin:0;display:flex;align-items:center;gap:9px}
.booking-proof>span{color:#c1b2a3}
.booking-yc{display:grid;place-items:center;flex:none;width:20px;height:20px;border:1px solid #d4c6b87a;border-radius:2px;color:#f4e9de;font:15px/1 Arial,sans-serif}
.booking-schedule{display:flex;align-items:center;justify-content:center;min-width:0;min-height:100svh;padding:80px clamp(26px,3.3vw,64px) 32px}
.booking-schedule-inner{width:100%;max-width:460px;min-width:0}
.booking-schedule-heading{text-align:center;margin:0 auto 24px;max-width:420px}
.booking-schedule-heading h1{margin:0 0 14px;font-size:clamp(29px,2.4vw,36px);font-weight:500;line-height:1.12;letter-spacing:-.043em;text-wrap:balance}
.booking-schedule-heading p{margin:0 auto;font-size:15px;line-height:1.6;color:var(--booking-muted);max-width:41ch;text-wrap:pretty}
.booking-duration{display:block;margin-top:16px;font-size:12px;line-height:1.5;color:#918b82}
.booking-calendar-shell{position:relative;min-height:440px}
#foaster-cal{min-height:440px;min-width:0;width:100%;overflow:hidden}
#foaster-cal iframe{display:block;border:0;width:100%;min-width:0;max-width:100%}
.booking-loading{display:flex;align-items:center;justify-content:center;gap:10px;position:absolute;top:160px;left:0;right:0;margin:0;z-index:1;pointer-events:none;color:var(--booking-muted);font-size:13px;line-height:1.5}
.booking-loading[hidden]{display:none}
.booking-loading>span{width:16px;height:16px;border:1.5px solid #e5e1da;border-top-color:#625347;border-radius:50%;animation:booking-spin .9s linear infinite}
.booking-loading.is-unavailable{padding-inline:20px;text-align:center;max-width:45ch;margin-inline:auto}
.booking-loading.is-unavailable>span{display:none}
.booking-direct{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;width:fit-content;margin:6px auto 0;color:#8b857c!important;font-size:11px;line-height:1.5;text-decoration:underline!important;text-decoration-color:#d5d0c8!important;text-underline-offset:5px}
.booking-no-script{text-align:center;font-size:13px;line-height:1.5;color:var(--booking-muted)}
.foaster-booking a:focus-visible{outline:2px solid #8ba7be;outline-offset:5px}
@media(hover:hover){.booking-close:hover{background:#e8e7e3}.booking-direct:hover{color:#1d1d1b!important}}
@keyframes booking-spin{to{transform:rotate(360deg)}}
@media(min-width:1800px){.booking-schedule{padding-block:120px 70px}.booking-schedule-inner{max-width:540px}.booking-schedule-heading{max-width:460px}.booking-schedule-heading h1{font-size:40px}.booking-schedule-heading p{font-size:16px}}
@media(max-width:1050px) and (min-width:761px){.booking-layout{grid-template-columns:.85fr 1.15fr}.booking-statement{padding-inline:28px}.booking-statement p{font-size:44px}.booking-logo{left:28px}.booking-proof{left:28px;right:28px}.booking-proof>span{display:none}.booking-schedule{padding-inline:24px}.booking-schedule-heading h1{font-size:31px}}
@media(max-width:760px){
 .booking-layout{display:block}
 .booking-intro{position:relative;top:auto;height:330px;min-height:0}
 .booking-logo{top:25px;left:24px}
 .booking-close{position:absolute;top:22px;right:22px;width:40px;height:40px;background:#ffffff18;color:#fff}
 .booking-statement{padding:85px 24px 76px}.booking-statement p{font-size:42px;line-height:1.06}
 .booking-proof{left:24px;right:24px;bottom:23px;font-size:10px}.booking-yc{width:18px;height:18px;font-size:13px}.booking-proof>span{font-size:10px}
 .booking-schedule{display:block;min-height:0;padding:44px 18px 28px}
 .booking-schedule-heading{max-width:350px;margin-bottom:20px;padding-inline:12px}.booking-schedule-heading h1{font-size:30px;line-height:1.12;margin-bottom:14px}.booking-schedule-heading p{font-size:15px;line-height:1.6}.booking-duration{font-size:11px;margin-top:16px}
 .booking-calendar-shell{min-height:440px}#foaster-cal{min-height:440px}.booking-direct{font-size:11px}
}
@media(max-width:355px){.booking-statement p{font-size:38px}.booking-schedule{padding-inline:0}.booking-schedule-heading{padding-inline:24px}.booking-proof>span{display:none}}
@media(prefers-reduced-motion:reduce){.booking-loading>span{animation:none}.booking-close{transition:none}}
