.booking-dialog{border:0;padding:0;border-radius:14px;width:min(920px,calc(100% - 36px));max-height:calc(100dvh - 36px);color:var(--ink);background:var(--cream);box-shadow:0 25px 100px #0005}.booking-dialog::backdrop{background:#0b241ed9;backdrop-filter:blur(5px)}.booking-dialog *{box-sizing:border-box}.bk-top{background:var(--green);color:white;padding:28px 35px;position:relative}.bk-top .eyebrow{color:#c8d5bd;font-size:10px;margin-bottom:8px}.bk-top h2{font-size:30px;padding-right:25px}.bk-close{position:absolute;right:21px;top:21px;background:#ffffff15;border:1px solid #ffffff50;color:white;width:36px;height:36px;border-radius:50%;font-size:24px;cursor:pointer;line-height:1}.bk-notice{background:#e7eadb;padding:13px 35px;font-size:12px;line-height:1.6;color:#34503c}.bk-steps{display:flex;gap:12px;padding:24px 35px 0;margin:0;list-style:none}.bk-steps li{flex:1;font-size:11px;color:#738071;border-bottom:3px solid #dbe0d3;padding-bottom:10px;margin:0;line-height:1.5}.bk-steps li:before{display:none}.bk-steps li.active{color:var(--green);font-weight:700;border-color:var(--green)}.bk-body{padding:25px 35px 28px;min-height:310px}.bk-body h3{font-size:25px;margin-bottom:10px}.bk-help{font-size:13px;color:#647360;line-height:1.7;margin-bottom:22px}.bk-options{display:grid;grid-template-columns:1fr 1fr;gap:15px}.bk-option{border:1px solid #d4dccd;background:#fff;text-align:left;border-radius:8px;padding:22px;color:var(--green);cursor:pointer;font:inherit;transition:border-color .2s,box-shadow .2s}.bk-option strong{display:block;font-size:18px;margin-bottom:8px;letter-spacing:-.02em}.bk-option span{display:block;font-size:12px;line-height:1.7;color:#637161}.bk-option[aria-pressed=true]{border:2px solid var(--green);padding:21px;background:#eef1e7;box-shadow:0 4px 15px #193e3310}.bk-option:hover{box-shadow:0 4px 15px #193e3315}.bk-small{font-size:11px;color:#65715e;margin:20px 0 0}.bk-footer{padding:18px 35px 23px;border-top:1px solid #dce1d4;display:flex;align-items:center;gap:12px}.bk-footer .button{margin-left:auto;cursor:pointer}.bk-back{border:0;background:none;color:var(--green);font-weight:700;font-size:13px;cursor:pointer;padding:12px 0}.bk-step-count{font-size:11px;color:#6a7865}.bk-footer .button:disabled{background:#ccd3c4;color:#6c7765;cursor:not-allowed;transform:none;box-shadow:none}.bk-schedule{display:grid;grid-template-columns:1.1fr 1fr;gap:25px}.bk-calendar{background:white;border:1px solid #dce1d5;border-radius:8px;padding:16px}.bk-month{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;font-size:14px;font-weight:700}.bk-month button{width:30px;height:30px;border:1px solid #d6dece;background:var(--cream);border-radius:4px;cursor:pointer;color:var(--green)}.bk-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.bk-grid>span{font-size:10px;line-height:30px;color:#7a8473}.bk-day{border:0;background:#f3f5ed;aspect-ratio:1;border-radius:4px;cursor:pointer;color:var(--green);font:600 12px 'DM Sans',sans-serif;min-height:32px}.bk-day:disabled{opacity:.3;cursor:default;background:none}.bk-day[aria-pressed=true],.bk-time[aria-pressed=true]{background:var(--green);color:white}.bk-times h4{font-size:14px;margin:0 0 8px}.bk-time-options{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:15px}.bk-time{border:1px solid #c7d1bf;background:white;color:var(--green);padding:12px 7px;border-radius:5px;cursor:pointer;font-size:12px;line-height:1.5}.bk-time small{display:block;font-size:8px;letter-spacing:.06em}.bk-selected-date{font-size:12px;color:#60705b;min-height:24px}.bk-profiles{display:flex;gap:9px;margin-bottom:22px;flex-wrap:wrap}.bk-profiles button{padding:9px 14px;font:600 12px 'DM Sans',sans-serif;border:1px solid #bdcbb3;background:white;color:var(--green);border-radius:30px;cursor:pointer}.bk-profiles button[aria-pressed=true]{background:var(--green);color:white}.bk-fields{display:grid;grid-template-columns:1fr 1fr;gap:17px}.bk-fields label{font-size:11px;font-weight:600}.bk-fields input{display:block;width:100%;background:#fff;border:1px solid #d5ddcd;padding:12px 14px;color:var(--ink);font:15px 'DM Sans',sans-serif;border-radius:5px;margin-top:6px}.bk-summary{display:grid;grid-template-columns:1fr 1fr;gap:20px}.bk-summary>div{background:white;border:1px solid #dce1d5;border-radius:8px;padding:22px}.bk-summary .eyebrow{font-size:9px;margin-bottom:13px}.bk-summary strong{display:block;font-size:18px;margin-bottom:8px}.bk-summary p{font-size:13px;line-height:1.8;margin:0;color:#61715d}.bk-success{text-align:center;padding:15px 0}.bk-check{width:59px;height:59px;border-radius:50%;line-height:59px;background:var(--sage);margin:0 auto 20px;color:var(--green);font-size:27px}.bk-success h3{font-size:30px}.bk-success .bk-help{max-width:540px;margin:14px auto}.bk-success-summary{display:inline-block;padding:14px 25px;border:1px solid #d3ddc9;border-radius:6px;font-size:13px;margin-top:8px}.bk-dialog-open{overflow:hidden}.booking-dialog button:focus-visible,.booking-dialog input:focus-visible{outline:3px solid #b08a3f;outline-offset:3px}@media(max-width:1100px) and (min-width:761px){}@media(max-width:760px){.booking-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px);border-radius:10px}.bk-top{padding:24px 20px}.bk-top h2{font-size:25px}.bk-close{right:13px;top:15px}.bk-notice{padding:12px 20px;font-size:10px}.bk-steps{padding:20px 20px 0;gap:8px}.bk-steps li{font-size:9px}.bk-body{padding:22px 20px;min-height:0}.bk-body h3{font-size:23px}.bk-options,.bk-schedule,.bk-fields,.bk-summary{grid-template-columns:1fr}.bk-option{padding:17px}.bk-option[aria-pressed=true]{padding:16px}.bk-option strong{font-size:17px}.bk-footer{padding:16px 20px;flex-wrap:wrap}.bk-footer .button{padding:12px 17px;font-size:12px;gap:8px}.bk-step-count{font-size:10px}.bk-schedule{gap:20px}.bk-time-options{grid-template-columns:repeat(3,1fr)}.bk-calendar{padding:12px}.bk-day{min-height:29px}.bk-fields{gap:13px}.bk-success h3{font-size:25px}}
.bk-steps[hidden]{display:none}

/* QA: keep all popup content within the viewport, including 320px phones. */
.booking-dialog{max-width:calc(100% - 36px);overflow-x:hidden;overscroll-behavior:contain}
.booking-dialog .bk-top{position:sticky;top:0;z-index:2}
.booking-dialog .bk-footer{position:sticky;bottom:0;z-index:2;background:var(--cream)}
.bk-options,.bk-schedule,.bk-summary,.bk-fields{min-width:0}
.bk-schedule{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.bk-calendar,.bk-times,.bk-summary>div{min-width:0}
.bk-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
.bk-day{min-width:0;padding:0}
.bk-time-options{grid-template-columns:repeat(2,minmax(0,1fr))}
.bk-time{min-width:0}
@media(max-width:760px){.booking-dialog{max-width:calc(100% - 20px)}.bk-schedule{grid-template-columns:minmax(0,1fr)}.bk-time-options{grid-template-columns:repeat(2,minmax(0,1fr))}.bk-footer .button{flex-shrink:0}}
.bk-top .eyebrow{padding-right:34px}

/* Shared boutique typography, with the same demo interactions and safeguards. */
.bk-top h2,.bk-body h3,.bk-success h3{font-family:var(--serif);font-weight:500;letter-spacing:-.025em}
.bk-top h2{font-size:38px}.bk-body h3{font-size:33px}.bk-success h3{font-size:37px}
.bk-option strong{font:500 29px/1.1 var(--serif)}.bk-top{background:var(--green)}.bk-option[aria-pressed=true]{background:#eeefdf}.bk-notice{background:#e9e8d9}.booking-dialog{border-radius:7px}.bk-summary strong{font-family:var(--serif);font-weight:600;font-size:24px}.bk-summary .eyebrow{margin-bottom:13px}
@media(max-width:760px){.bk-top h2{font-size:30px}.bk-body h3{font-size:29px}.bk-success h3{font-size:31px}.bk-option strong{font-size:27px}}
