.orient-booksy-dialog {
  box-sizing:border-box; position:fixed; inset:0; width:min(870px, calc(100vw - 48px));
  max-width:none; height:min(850px, calc(100dvh - 48px)); max-height:none; margin:auto;
  padding:0; border:1px solid #d9d1c2; border-radius:16px; color:#302e27; background:#fff;
  box-shadow:0 24px 100px #15150e55; font-family:Jost, sans-serif; overflow:hidden;
}
.orient-booksy-dialog[open] { display:flex; flex-direction:column; }
.orient-booksy-dialog::backdrop { background:rgb(22 21 17 / 65%); backdrop-filter:blur(4px); }
html.orient-booksy-is-open { overflow:hidden; }
.orient-booksy-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; flex:none; padding:18px 24px; background:#f6f1e8; border-bottom:1px solid #e7e0d4; }
.orient-booksy-heading span:not(.orient-booksy-close span) { font-size:10px; letter-spacing:.18em; color:#69644f; }
.orient-booksy-heading h2 { margin:4px 0 0; font-family:"Cormorant Garamond", serif; font-weight:500; font-size:30px; line-height:1.05; }
.orient-booksy-close { flex:0 0 44px; width:44px; height:44px; display:grid; place-items:center; padding:0; border:1px solid #d6cebc; border-radius:50%; background:#fff9; color:#39382c; cursor:pointer; font:30px/1 sans-serif; }
.orient-booksy-close:hover { background:#e9e2d4; }
.orient-booksy-close:focus-visible, .orient-booksy-help a:focus-visible { outline:2px solid #686840; outline-offset:3px; }
.orient-booksy-content { position:relative; flex:1; min-height:0; overflow:hidden; }
.orient-booksy-status { position:absolute; inset:0; z-index:1; padding:32px 24px; margin:0; text-align:center; font-size:16px; color:#69644f; background:#fff; }
.orient-booksy-status[hidden] { display:none; }
.orient-booksy-mount, .orient-booksy-mount .booksy-widget-container { width:100%; height:100%; margin:0; }
.orient-booksy-mount iframe { display:block; width:100%!important; height:100%!important; max-width:100%; border:0; }
.orient-booksy-picker { box-sizing:border-box; width:100%; height:100%; padding:clamp(24px, 4vw, 44px); overflow:auto; overscroll-behavior:contain; background:#fff; }
.orient-booksy-picker[hidden], .orient-booksy-mount[hidden] { display:none!important; }
.orient-booksy-picker h3 { max-width:650px; margin:0 0 12px; color:#39382c; font-family:"Cormorant Garamond", serif; font-size:clamp(30px, 4vw, 40px); font-weight:500; line-height:1.15; overflow-wrap:anywhere; }
.orient-booksy-picker p { max-width:540px; margin:0 0 28px; color:#69644f; font-size:16px; line-height:1.6; }
.orient-booksy-durations { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap:12px; max-width:650px; }
.orient-booksy-duration { box-sizing:border-box; display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; min-width:0; min-height:56px; padding:16px 18px; border:1px solid #d6cebc; border-radius:8px; background:#f6f1e8; color:#39382c; font:500 17px/1.4 Jost, sans-serif; text-align:left; white-space:normal; cursor:pointer; }
.orient-booksy-duration span:first-child { min-width:0; overflow-wrap:anywhere; }
.orient-booksy-duration span[aria-hidden] { flex:none; color:#777149; }
.orient-booksy-duration:hover { border-color:#777149; background:#ece6d7; }
.orient-booksy-duration:focus-visible { outline:2px solid #686840; outline-offset:3px; }
.orient-booksy-help { display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 16px; flex:none; padding:10px 24px; font-size:12px; color:#777161; background:#faf8f3; border-top:1px solid #e7e0d4; }
.orient-booksy-help a { color:#57583b; text-decoration:underline; text-underline-offset:3px; }
.orient-booksy-card { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:36px; border:1px solid #ded6c7; border-radius:12px; background:#f6f1e8; }
.orient-booksy-card h2 { margin:0 0 10px; font-size:clamp(30px, 4vw, 44px); }
.orient-booksy-card p { margin:0; }
.orient-booksy-card .button { flex-shrink:0; display:inline-flex; align-items:center; gap:20px; }
.orient-booksy-product { margin-top:24px; padding:18px 20px; border:1px solid #ded6c7; border-radius:8px; background:#f6f1e8; }
.orient-booksy-product p { margin:0 0 4px!important; font-size:15px; }
.orient-booksy-product a { display:inline-flex; align-items:center; gap:8px; min-height:44px; color:#555736; font-size:16px; font-weight:500; text-decoration:underline; text-underline-offset:4px; }
.orient-booksy-product small { display:block; margin-top:4px; font-size:12px; color:#726c60; }
/* Booksy's add-on panel requires more width than a 320px phone provides. */
@media(max-width:359px) {
  .orient-booksy-mount iframe { width:calc(100% / .84)!important; max-width:none; height:calc(100% / .84)!important; transform:scale(.84); transform-origin:top left; }
}
@media(max-width:599px) {
  .orient-booksy-dialog { width:100%; height:100dvh; border:0; border-radius:0; }
  .orient-booksy-heading { padding:calc(12px + env(safe-area-inset-top)) 16px 12px; }
  .orient-booksy-heading h2 { font-size:26px; }
  .orient-booksy-help { padding:8px 16px calc(8px + env(safe-area-inset-bottom)); font-size:11px; }
  .orient-booksy-picker { padding:28px 20px; }
  .orient-booksy-picker p { margin-bottom:24px; font-size:15px; }
  .orient-booksy-card { flex-direction:column; align-items:flex-start; gap:24px; padding:24px; }
  .orient-booksy-card .button { width:100%; justify-content:center; }
}
