/* Booking calendar. Built from the site's own tokens: text #f0f0f0, 60 % / 80 % secondary text, 5 % and 10 % surfaces,
   10 px radii, pill buttons, Inter 12 / 14 px type. */
.bk{--fg:#f0f0f0;--fg2:rgba(240,240,240,.6);--fg3:rgba(240,240,240,.8);--s1:rgba(240,240,240,.05);--s2:rgba(240,240,240,.1);--s3:rgba(240,240,240,.16);
  font-family:Inter,"Inter Placeholder",sans-serif;color:var(--fg);width:100%;text-align:left;position:relative}
.bk *,.bk *::before,.bk *::after{box-sizing:border-box}
:where(.bk) button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.bk button:focus-visible,.bk input:focus-visible,.bk select:focus-visible{outline:2px solid rgba(240,240,240,.55);outline-offset:2px}
.bk [hidden]{display:none!important}

/* header row */
.bk-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 22px}
.bk-title{font-size:15px;font-weight:600;letter-spacing:-.01em;line-height:1.3}
.bk-chip{font-size:12px;font-weight:500;color:var(--fg2);background:var(--s1);border-radius:50px;padding:5px 11px;white-space:nowrap}

/* step 1: month + times */
.bk-grid{display:grid;grid-template-columns:minmax(0,1fr) 236px}
.bk-cal{padding-right:32px;min-width:0}
.bk-side{border-left:1px solid var(--s2);padding-left:32px;min-height:340px;min-width:0}
.bk-month{display:flex;align-items:center;justify-content:space-between;margin:0 0 14px}
.bk-month strong{font-size:14px;font-weight:600}
.bk-nav{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--s1);transition:background-color .2s,opacity .2s}
.bk-nav:hover:not(:disabled){background:var(--s2)}
.bk-nav:disabled{opacity:.3;cursor:default}
.bk-nav svg{width:14px;height:14px}
.bk-dow,.bk-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.bk-dow span{font-size:11px;font-weight:500;color:var(--fg2);text-align:center;padding:4px 0 8px;letter-spacing:.02em}
.bk-day{aspect-ratio:1;width:100%;max-width:46px;justify-self:center;border-radius:10px;font-size:13px;font-weight:500;display:grid;place-items:center;position:relative;transition:background-color .18s,color .18s,transform .18s}
.bk-day:disabled{color:rgba(240,240,240,.28);cursor:default}
.bk-day.has{background:var(--s1);color:var(--fg)}
.bk-day.has:hover{background:var(--s2)}
.bk-day.today::after{content:"";position:absolute;bottom:6px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:currentColor;opacity:.7}
.bk-day.on{background:var(--fg3);color:#000;font-weight:600}
.bk-day.blank{visibility:hidden}

.bk-sidehead{font-size:14px;font-weight:600;margin:0 0 4px;line-height:1.3}
.bk-sidesub{font-size:12px;color:var(--fg2);margin:0 0 14px}
.bk-times{display:flex;flex-direction:column;gap:8px;max-height:330px;overflow:auto;padding:2px 4px 2px 0;margin-right:-4px;scrollbar-width:thin;scrollbar-color:rgba(240,240,240,.25) transparent}
.bk-time{height:42px;border-radius:10px;border:1px solid var(--s2);font-size:13px;font-weight:500;display:flex;align-items:center;justify-content:center;transition:background-color .18s,border-color .18s,color .18s}
.bk-time:hover{background:var(--s1);border-color:rgba(240,240,240,.28)}
.bk-time.on{background:var(--fg3);border-color:transparent;color:#000}
.bk-empty{font-size:13px;line-height:1.5;color:var(--fg2);padding:6px 0}
.bk-empty a{color:var(--fg);text-decoration:underline}

/* time zone */
.bk-tz{margin:22px 0 0;font-size:12px;color:var(--fg2);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bk-tz select{appearance:none;-webkit-appearance:none;background:var(--s1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none' stroke='%23f0f0f0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 10px center;color:var(--fg);border:0;border-radius:10px;font:inherit;font-size:12px;font-weight:500;padding:7px 28px 7px 10px;max-width:100%;cursor:pointer}
.bk-tz select option{background:#151513;color:#f0f0f0}

/* skeleton while availability loads */
.bk-skel{background:linear-gradient(100deg,var(--s1) 30%,var(--s2) 50%,var(--s1) 70%);background-size:300% 100%;animation:bk-shimmer 1.3s linear infinite;border-radius:10px}
@keyframes bk-shimmer{from{background-position:100% 0}to{background-position:0 0}}

/* step 2: details */
.bk-form{display:grid;grid-template-columns:minmax(0,270px) minmax(0,1fr);gap:0}
.bk-sum{padding-right:32px}
.bk-sum .bk-sidehead{font-size:16px}
.bk-sumline{font-size:13px;color:var(--fg3);margin:10px 0 0;line-height:1.5}
.bk-sumline b{color:var(--fg);font-weight:600}
.bk-back{margin:22px 0 0;font-size:12px;font-weight:500;color:var(--fg2);display:inline-flex;align-items:center;gap:6px;transition:color .2s}
.bk-back:hover{color:var(--fg)}
.bk-fields{border-left:1px solid var(--s2);padding-left:32px;display:flex;flex-direction:column;gap:16px;min-width:0}
.bk-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.bk-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.bk-field label{font-size:12px;font-weight:500;color:var(--fg)}
.bk-field input{width:100%;height:46px;background:var(--s1);border:0;border-radius:10px;padding:0 16px;color:var(--fg);font:inherit;font-size:14px;font-weight:400;transition:box-shadow .2s,background-color .2s}
.bk-field input::placeholder{color:rgba(240,240,240,.42)}
.bk-field input:focus{background:var(--s2);box-shadow:0 0 0 1px rgba(240,240,240,.3);outline:0}
.bk-field input[aria-invalid="true"]{box-shadow:0 0 0 1px rgba(255,34,68,.6)}
.bk-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.bk-consent{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.5;color:var(--fg2);cursor:pointer}
.bk-consent input{appearance:none;-webkit-appearance:none;flex:none;width:18px;height:18px;margin:1px 0 0;border-radius:5px;background:var(--s1);box-shadow:inset 0 0 0 1px rgba(240,240,240,.25);display:grid;place-items:center;cursor:pointer;transition:background-color .15s}
.bk-consent input:checked{background:var(--fg3);box-shadow:none}
.bk-consent input:checked::after{content:"";width:9px;height:5px;border:solid #000;border-width:0 0 2px 2px;transform:rotate(-45deg) translate(1px,-1px)}
.bk-consent input[aria-invalid="true"]{box-shadow:inset 0 0 0 1px rgba(255,34,68,.7)}
.bk-err{font-size:12px;line-height:1.5;color:#ffb3bf;background:rgba(255,34,68,.15);border:1px solid rgba(255,34,68,.1);border-radius:10px;padding:10px 12px}
.bk-err a{color:#fff;text-decoration:underline}

/* the site's button: pill, 80 % light fill, black label, 0.5 disabled, 0.7 hover */
.bk-btn{height:37px;border-radius:50px;background:var(--fg3);color:#000!important;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;transition:opacity .2s cubic-bezier(.44,0,.56,1),background-color .2s}
.bk-btn:hover:not(:disabled){opacity:.7}
.bk-btn:disabled{opacity:.5;cursor:default}
.bk-btn.ghost{background:var(--s2);color:var(--fg)!important}
.bk-spin{width:18px;height:18px;border-radius:50%;border:2px solid rgba(0,0,0,.18);border-top-color:#000;animation:fx-spin .8s linear infinite}
.bk-note{margin:14px 0 0;font-size:11px;line-height:1.5;color:var(--fg2);text-align:center}

/* step 3: done */
.bk-done{text-align:center;padding:28px 8px 12px;display:flex;flex-direction:column;align-items:center;gap:6px}
.bk-tick{width:54px;height:54px;border-radius:50%;background:var(--s2);display:grid;place-items:center;margin:0 0 14px}
.bk-tick svg{width:24px;height:24px;stroke:var(--fg);fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.bk-tick path{stroke-dasharray:26;stroke-dashoffset:26;animation:bk-draw .5s .15s ease forwards}
@keyframes bk-draw{to{stroke-dashoffset:0}}
.bk-done h3{margin:0;font-size:22px;font-weight:600;letter-spacing:-.02em}
.bk-done p{margin:0;font-size:14px;line-height:1.55;color:var(--fg3);max-width:420px}
.bk-done .bk-when{color:var(--fg);font-weight:600;margin-top:8px}
.bk-done .bk-btn{width:auto;padding:0 20px;margin-top:18px}

/* steps fade in */
.bk-view{animation:bk-in .26s cubic-bezier(.22,1,.36,1)}
@keyframes bk-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* small screens */
@media (max-width:760px){
  .bk-grid,.bk-form{grid-template-columns:1fr}
  .bk-cal{padding-right:0}
  .bk-side{border-left:0;padding-left:0;border-top:1px solid var(--s2);margin-top:20px;padding-top:20px;min-height:0}
  .bk-times{display:grid;grid-template-columns:1fr 1fr;max-height:none;overflow:visible;margin-right:0}
  .bk-sum{padding-right:0;padding-bottom:20px}
  .bk-fields{border-left:0;padding-left:0;border-top:1px solid var(--s2);padding-top:20px}
  .bk-row{grid-template-columns:1fr}
  .bk-day{font-size:12px}
}
@media (prefers-reduced-motion:reduce){.bk-view,.bk-skel,.bk-tick path{animation:none}.bk-tick path{stroke-dashoffset:0}}

/* less empty sky between the header and the headline (the contact page this was built from leaves 160 px) */
section[data-framer-name="Hero"]{padding-top:100px!important}
@media (min-width:810px) and (max-width:1199.98px){section[data-framer-name="Hero"]{padding-top:124px!important}}
@media (max-width:809.98px){section[data-framer-name="Hero"]{padding-top:112px!important}}
