.bookcal{padding:clamp(20px,3vw,36px);text-align:left}.bookcal__grid{display:grid;grid-template-columns:1fr;gap:var(--s-12)}@media(min-width:880px){.bookcal__grid{grid-template-columns:1fr 1fr}}.bookcal__step{font-family:var(--font-head);font-size:var(--fs-h4);color:var(--text-on-dark);margin:0 0 var(--s-5)}.bookcal__step.mt{margin-top:var(--s-10)}.bookcal__cal{background:var(--plum-black);border:1px solid var(--border-dark-2);border-radius:var(--r-callout);padding:var(--s-5)}.bookcal__cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-4)}.bookcal__month{font-weight:600;color:var(--text-on-dark)}.bookcal__nav{background:transparent;border:1px solid var(--border-dark-2);color:var(--text-on-dark);width:34px;height:34px;border-radius:var(--r-sm);font-size:1.2rem;line-height:1;cursor:pointer;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.bookcal__nav:hover:not(:disabled){border-color:var(--electric)}.bookcal__nav:disabled{opacity:.3;cursor:not-allowed}.bookcal__dow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px}.bookcal__dow span{text-align:center;font-size:var(--fs-caption);color:var(--text-on-dark-faint)}.bookcal__days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.bookcal__day{aspect-ratio:1;display:grid;place-content:center;border-radius:var(--r-sm);border:1px solid transparent;background:transparent;color:var(--text-on-dark);font-size:var(--fs-small);cursor:pointer;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.bookcal__day:hover:not(:disabled){border-color:var(--electric)}.bookcal__day:disabled{color:var(--text-on-dark-faint);opacity:.35;cursor:default}.bookcal__day[aria-pressed=true]{background:var(--electric);color:#fff;font-weight:600}.bookcal__day--empty{background:transparent;border:none;cursor:default}.bookcal__slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:var(--s-3)}.bookcal__slot{padding:var(--s-3) var(--s-2);border-radius:var(--r-sm);border:1px solid var(--border-dark-2);background:var(--plum-black);color:var(--text-on-dark);font-size:var(--fs-small);cursor:pointer;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.bookcal__slot:hover{border-color:var(--electric)}.bookcal__slot[aria-pressed=true]{background:var(--electric);border-color:var(--electric);color:#fff;font-weight:600}.bookcal__loading{display:flex;align-items:center;gap:var(--s-3);color:var(--text-on-dark-muted);font-size:var(--fs-small);padding:var(--s-6) 0}.bookcal [hidden]{display:none!important}.bookcal__spin{width:20px;height:20px;border-radius:50%;border:2px solid var(--border-dark-2);border-top-color:var(--electric);animation:bc-spin .8s linear infinite}@keyframes bc-spin{to{transform:rotate(360deg)}}.bookcal__form{background:var(--plum-black);border:1px solid var(--border-dark-2);border-radius:var(--r-callout);padding:var(--s-6);display:grid;gap:var(--s-4)}.bookcal__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}@media(max-width:460px){.bookcal__row{grid-template-columns:1fr}}.bookcal__field{display:grid;gap:6px}.bookcal__field>span{font-size:var(--fs-small);color:var(--text-on-dark-muted)}.bookcal__field input{width:100%;padding:var(--s-3) var(--s-4);border-radius:var(--r-sm);border:1px solid var(--border-dark-2);background:var(--eggplant);color:var(--text-on-dark);font:inherit;font-size:var(--fs-body);transition:border-color var(--t-fast) var(--ease)}.bookcal__field input:focus{outline:none;border-color:var(--electric)}.bookcal__submit{width:100%;margin-top:var(--s-2)}.bookcal__submit:disabled{opacity:.5;cursor:not-allowed}.bookcal__hint{text-align:center;margin:0}.bookcal__err{color:var(--danger);font-size:var(--fs-small);margin:0}.bookcal__interest{margin:0 0 var(--s-5);padding:var(--s-3) var(--s-5);border-radius:var(--r-sm);background:var(--electric-a14);border:1px solid rgba(172,63,255,.28);color:var(--text-on-dark);font-size:var(--fs-small)}.bookcal__interest b{font-weight:700}@media(prefers-reduced-motion:reduce){.bookcal__spin{animation:none}}
