.book-modal{position:fixed;inset:0;z-index:2147482000;display:none;align-items:center;justify-content:center;padding:24px;}
.book-modal.is-open{display:flex;}
.book-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(10,10,10,.48);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);cursor:default;}
.book-dialog{position:relative;z-index:1;width:min(720px,100%);max-height:min(90dvh,880px);overflow:auto;padding:clamp(26px,5vw,54px);border:0;border-radius:26px;background:#F1F1F1;color:#0A0A0A;outline:none;box-shadow:0 28px 100px rgba(0,0,0,.24);font-family:'Modista Pro',sans-serif;animation:book-modal-in .42s cubic-bezier(.2,.8,.2,1) both;}
@keyframes book-modal-in{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.book-close{position:absolute;top:18px;right:18px;width:40px;height:40px;display:grid;place-items:center;padding:0;border:1px solid rgba(10,10,10,.16);border-radius:50%;background:transparent;color:#0A0A0A;font:300 28px/1 'Modista Pro',sans-serif;cursor:pointer;transition:background .2s,color .2s;}
.book-close:hover{background:#0A0A0A;color:#F1F1F1;}
.book-close img{display:block;width:18px;height:18px;margin:auto;object-fit:contain;filter:brightness(0);transform:rotate(45deg);}
.book-close:hover img{filter:brightness(0) invert(1);}
.book-eyebrow{margin:0 0 12px;font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:rgba(10,10,10,.52);}
.book-dialog h2{max-width:14ch;margin:0;font-size:clamp(36px,5.5vw,56px);line-height:.98;letter-spacing:-.05em;font-weight:650;}
.book-intro{max-width:58ch;margin:16px 0 28px;color:rgba(10,10,10,.68);font-size:16px;line-height:1.42;}
#book-request-form{display:grid;gap:16px;}
.book-fields-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.book-field{display:grid;gap:7px;min-width:0;}
.book-field>label{font-size:13px;font-weight:600;}
.book-field input:not([type=file]),.book-field textarea{width:100%;border:1px solid rgba(10,10,10,.2);border-radius:10px;background:rgba(255,255,255,.52);padding:12px 13px;color:#0A0A0A;font:400 15px/1.35 'Modista Pro',sans-serif;outline:none;transition:border-color .18s,background .18s;}
.book-field input:focus,.book-field textarea:focus{border-color:#0A0A0A;background:#fff;}
.book-field textarea{min-height:104px;resize:vertical;}
.book-upload{min-height:68px;padding:10px 13px;display:flex;align-items:center;gap:12px;border:1px dashed rgba(10,10,10,.3);border-radius:10px;background:rgba(255,255,255,.32);cursor:pointer;}
.book-upload:hover{background:rgba(255,255,255,.72);border-color:rgba(10,10,10,.56);}
.book-upload input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
.book-upload-icon{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:50%;background:#0A0A0A;color:#F1F1F1;font-size:22px;}
.book-upload-copy{min-width:0;display:grid;gap:3px;}
.book-upload-copy strong{font-size:13px;font-weight:600;}
.book-upload-copy span,.book-hint{font-size:12px;line-height:1.35;color:rgba(10,10,10,.52);overflow-wrap:anywhere;}
.book-submit-row{display:flex;align-items:center;gap:16px;margin-top:2px;}
.book-action{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;min-height:50px;overflow:hidden;padding:0 21px;border:0;border-radius:999px;background:#0A0A0A;color:#F1F1F1;font:600 14px 'Modista Pro',sans-serif;cursor:pointer;}
.book-action-clip{display:block;height:1.25em;overflow:hidden;}
.book-action-track{display:block;transition:transform .42s cubic-bezier(.2,.8,.2,1);}
.book-action-track span{display:block;line-height:1.25;white-space:nowrap;}
.book-action:hover .book-action-track,.book-action:focus-visible .book-action-track{transform:translateY(-50%);}
.book-action:disabled{opacity:.58;cursor:wait;}
.book-spinner{display:none;width:15px;height:15px;flex:none;margin-left:10px;border:2px solid rgba(241,241,241,.35);border-top-color:#F1F1F1;border-radius:50%;}
.book-action.is-loading .book-spinner{display:block;animation:book-send-spin .7s linear infinite;}
@keyframes book-send-spin{to{transform:rotate(360deg);}}
.book-privacy{font-size:11px;line-height:1.35;color:rgba(10,10,10,.54);}
.book-message{min-height:18px;margin:0;color:#9b3025;font-size:13px;}
.book-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;}
.book-success{display:none;padding-top:20px;border-top:1px solid rgba(10,10,10,.16);}
.book-success.is-visible{display:block;}
.book-success h3{margin:0 0 8px;font-size:clamp(28px,5vw,42px);line-height:1;letter-spacing:-.04em;}
.book-success p{max-width:52ch;margin:0;color:rgba(10,10,10,.66);font-size:16px;line-height:1.4;}
body.book-modal-open{overflow:hidden;}
@media(max-width:620px){.book-modal{padding:10px;align-items:center;}.book-dialog{max-height:calc(100dvh - 20px);padding:27px 19px 22px;border-radius:20px;}.book-close{top:12px;right:12px;width:34px;height:34px;}.book-eyebrow{padding-right:40px;font-size:10px;}.book-dialog h2{font-size:clamp(34px,9vw,44px);max-width:14ch;}.book-intro{margin:13px 0 20px;font-size:14px;}.book-fields-row{grid-template-columns:1fr;gap:13px;}#book-request-form{gap:13px;}.book-field textarea{min-height:82px;}.book-upload{min-height:60px;}.book-submit-row{align-items:stretch;flex-direction:column;gap:10px;}.book-action{width:100%;}.book-privacy{text-align:center;}}
@media(prefers-reduced-motion:reduce){.book-dialog{animation:none;}.book-action-track{transition:none;}.book-action.is-loading .book-spinner{animation-duration:1.8s;}}
#book-request-form[hidden],.book-calendar-step[hidden],.book-success:not(.is-visible){display:none!important;}
.book-calendar-top{display:flex;align-items:baseline;justify-content:flex-start;gap:12px;margin:0 0 14px;}
.book-calendar-top span{font-size:12px;color:#8c5a00;}
.book-calendar-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.68fr);gap:22px;}
.book-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.book-cal-head>strong{font-size:14px;font-weight:600;}
.book-month-nav{display:flex;gap:6px;}
.book-month-nav button{width:30px;height:30px;display:grid;place-items:center;padding:0;border:1px solid rgba(10,10,10,.16);border-radius:50%;background:transparent;color:#0A0A0A;font:400 21px/1 'Modista Pro',sans-serif;cursor:pointer;}
.book-month-nav svg{display:block;width:14px;height:14px;}
.book-month-nav svg path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.book-month-nav button:hover:not(:disabled){background:#0A0A0A;color:#F1F1F1;}
.book-month-nav button:disabled{opacity:.28;cursor:default;}
.book-week,.book-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center;}
.book-week{margin-bottom:5px;}
.book-week span{font-size:10px;color:rgba(10,10,10,.48);}
.book-day-empty{aspect-ratio:1;}
.book-day{aspect-ratio:1;width:100%;display:grid;place-items:center;padding:0;border:1px solid transparent;border-radius:50%;background:transparent;color:#0A0A0A;font:500 12px 'Modista Pro',sans-serif;cursor:pointer;}
.book-day:hover:not(:disabled){border-color:rgba(10,10,10,.5);}
.book-day:disabled{color:rgba(10,10,10,.24);cursor:default;}
.book-day.is-today:not(.is-selected){border-color:rgba(10,10,10,.26);}
.book-day.is-selected{background:#0A0A0A;color:#F1F1F1;}
.book-times-wrap{min-width:0;border-left:1px solid rgba(10,10,10,.12);padding-left:18px;}
.book-times-title{display:block;margin:0 0 9px;}
.book-times{display:grid;gap:7px;max-height:min(42dvh,340px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(10,10,10,.28) transparent;padding:0 5px 0 0;}
.book-time{min-height:35px;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 10px;border:1px solid transparent;border-radius:999px;background:transparent;color:#0A0A0A;font:500 13px 'Modista Pro',sans-serif;text-align:center;cursor:pointer;}
@media (hover:hover){.book-time:hover{border-color:rgba(10,10,10,.2);background:#fff;}}
.book-time.is-selected{border-color:#0A0A0A;background:#0A0A0A;color:#F1F1F1;}
.book-time:focus-visible{outline:2px solid #0A0A0A;outline-offset:1px;border-color:rgba(10,10,10,.2);background:#fff;}
.book-empty{margin:0;color:rgba(10,10,10,.48);font-size:12px;line-height:1.4;}
.book-calendar-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:12px;border-top:1px solid rgba(10,10,10,.12);}
.book-calendar-bottom p{min-height:1em;margin:0;color:rgba(10,10,10,.62);font-size:12px;}
.book-calendar-bottom .book-action{min-height:42px;}
.book-form-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid rgba(10,10,10,.12);}
.book-back-button{border:0;padding:4px 0;background:transparent;color:rgba(10,10,10,.64);font:500 13px 'Modista Pro',sans-serif;cursor:pointer;}
.book-back-button:hover{color:#0A0A0A;}
.book-form-top p{margin:0;text-align:right;font-size:12px;color:rgba(10,10,10,.58);}
.book-file-field{margin-top:1px;}
.book-upload-icon img{display:block;width:17px;height:17px;margin:auto;object-fit:contain;}
@media(max-width:620px){.book-dialog{overflow:auto;}.book-calendar-grid{grid-template-columns:1fr;gap:15px;}.book-calendar-top{margin-bottom:10px;}.book-calendar-top span{font-size:10px;}.book-times-wrap{border-left:0;border-top:1px solid rgba(10,10,10,.12);padding:12px 0 0;}.book-week,.book-days{gap:4px;}.book-week span{font-size:10px;}.book-day{font-size:12px;}.book-times{grid-template-columns:repeat(3,minmax(0,1fr));max-height:min(30dvh,220px);overflow-y:auto;gap:6px;padding-right:5px;}.book-time{min-height:34px;justify-content:center;padding:0 6px;font-size:12px;gap:5px;}.book-calendar-bottom{margin-top:12px;padding-top:10px;}.book-calendar-bottom p{font-size:10px;}.book-calendar-bottom .book-action{min-height:38px;padding:0 16px;}.book-form-top{margin-bottom:11px;}}

.book-skeleton-day,.book-skeleton-time{position:relative;overflow:hidden;display:block;background:#d2d2d2;}
.book-skeleton-day{width:100%;aspect-ratio:1;border-radius:50%;}
.book-skeleton-time{height:35px;border-radius:999px;}
.book-skeleton-day::after,.book-skeleton-time::after{content:'';position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.58),transparent);animation:book-skeleton-shimmer 1.25s ease-in-out infinite;}
@keyframes book-skeleton-shimmer{to{transform:translateX(100%);}}
@media(prefers-reduced-motion:reduce){.book-skeleton-day::after,.book-skeleton-time::after{animation:none;transform:none;opacity:.28;}}
