/* booking form, one question at a time (see book.js) */
.book.bk { background:var(--panel); }
.bkin { display:grid !important; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr) !important; gap:64px !important; align-items:start; }
.bkside { position:sticky; top:40px; display:flex; flex-direction:column; gap:14px; }
.bkeye { font-family:var(--fu); font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--olive); }
.bkside .h2 { font-size:56px; line-height:60px; }
.bkside .lede { font-size:18px; line-height:27px; color:var(--muted); margin-top:0; }
.bksteps { list-style:none; display:flex; flex-direction:column; gap:4px; margin-top:18px; }
.bksteps li { display:flex; align-items:center; gap:12px; padding:9px 12px; border-radius:12px; font-family:var(--fu); font-size:15px; font-weight:500; color:#a3a69c; transition:background .3s var(--ease), color .3s var(--ease); }
.bksteps li i { width:26px; height:26px; border-radius:50%; display:grid; place-items:center; font-style:normal; font-size:12px; font-weight:700; background:#fff; box-shadow:inset 0 0 0 1px var(--line); transition:inherit; }
.bksteps li.on { background:#fff; color:var(--ink); box-shadow:var(--shadow); } .bksteps li.on i { background:var(--ink); color:#fff; box-shadow:none; }
.bksteps li.done { color:var(--ink); } .bksteps li.done i { background:var(--olive); color:#fff; box-shadow:none; }
.bkcard { position:relative; border-radius:32px; background:#fff; padding:36px; box-shadow:0 24px 54px rgba(30,34,24,.1), inset 0 0 0 1px var(--line); overflow:hidden; display:flex; flex-direction:column; min-height:520px; }
.bkbar { position:absolute; left:0; right:0; top:0; height:4px; background:var(--card); }
.bkbar i { display:block; height:100%; width:0; background:var(--olive); border-radius:0 4px 4px 0; transition:width .6s cubic-bezier(.22,1,.36,1); }
.bkbody { flex:1; display:flex; flex-direction:column; gap:16px; }
.bkq { font-family:var(--fd); font-weight:600; font-size:30px; line-height:36px; letter-spacing:-.03em; margin-bottom:6px; }
.bkev { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; }
.bke { display:flex; align-items:center; gap:12px; padding:8px 14px 8px 8px; border-radius:16px; border:0; background:var(--card); color:var(--ink); cursor:pointer; text-align:left;
  font-family:var(--fu); font-size:15px; font-weight:600; letter-spacing:var(--lsu); transition:transform .4s cubic-bezier(.34,1.56,.64,1), box-shadow .3s var(--ease), background .3s var(--ease); }
.bke img, .bkplus { width:52px; height:52px; border-radius:12px; object-fit:cover; flex-shrink:0; }
.bkplus { display:grid; place-items:center; background:#fff; font-size:22px; color:var(--olive); box-shadow:inset 0 0 0 1px var(--line); }
.bke:hover { transform:translateY(-2px); box-shadow:0 10px 22px rgba(30,34,24,.1); background:#fff; }
.bke.on { background:#fff; box-shadow:0 10px 22px rgba(72,97,55,.16), inset 0 0 0 2px var(--olive); }
.bkl { display:flex; flex-direction:column; gap:8px; font-family:var(--fu); font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.bki { width:100%; height:52px; border-radius:14px; border:1px solid #e3e4dc; background:#fff; padding:0 16px; font-family:var(--fb); font-size:17px; color:var(--ink); outline:none; text-transform:none; letter-spacing:0;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease); }
textarea.bki { height:auto; padding:14px 16px; resize:vertical; line-height:1.45; }
.bki:focus { border-color:var(--olive); box-shadow:0 0 0 4px rgba(72,97,55,.12); }
.bkchips { display:flex; flex-wrap:wrap; gap:6px; }
.bkchips button { height:40px; padding:0 16px; border-radius:99px; border:0; background:var(--card); color:var(--ink); cursor:pointer; font-family:var(--fu); font-size:14px; font-weight:600;
  text-transform:none; letter-spacing:var(--lsu); transition:background .25s var(--ease), color .25s var(--ease), transform .3s cubic-bezier(.34,1.56,.64,1); }
.bkchips button:hover { transform:translateY(-2px); } .bkchips button.on { background:var(--ink); color:#fff; }
.bkchips.sm button { height:32px; padding:0 12px; font-size:13px; }
.bkg { display:flex; align-items:baseline; gap:10px; }
.bkg b { font-family:var(--fd); font-weight:700; font-size:72px; line-height:1; letter-spacing:-.05em; color:var(--olive); font-variant-numeric:tabular-nums; }
.bkg span { font-size:17px; color:var(--muted); }
#bkGuests { width:100%; accent-color:var(--olive); height:30px; }
.bksmall { font-size:14px; line-height:20px; color:var(--muted); }
.bkopts { display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:8px; }
.bko { display:flex; flex-direction:column; gap:4px; padding:18px; border-radius:18px; border:0; background:var(--card); color:var(--ink); cursor:pointer; text-align:left; transition:transform .4s cubic-bezier(.34,1.56,.64,1), box-shadow .3s var(--ease), background .3s var(--ease); }
.bko b { font-family:var(--fu); font-size:16px; font-weight:600; } .bko span { font-size:14px; line-height:19px; color:var(--muted); }
.bko:hover { transform:translateY(-2px); background:#fff; box-shadow:0 10px 22px rgba(30,34,24,.1); }
.bko.on { background:#fff; box-shadow:0 10px 22px rgba(72,97,55,.16), inset 0 0 0 2px var(--olive); }
.bkquote { border-radius:20px; padding:20px; background:linear-gradient(140deg, #f7f8f3, #eef2e8); box-shadow:inset 0 0 0 1px var(--line); display:flex; flex-direction:column; gap:10px; }
.bkqh { display:flex; justify-content:space-between; align-items:center; font-family:var(--fu); font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--olive); }
.bkedit { text-transform:none; letter-spacing:0; font-size:13px; color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.bkqrow { display:flex; justify-content:space-between; align-items:baseline; gap:10px; } .bkqrow b { font-family:var(--fu); font-size:18px; } .bkqrow span { font-size:14px; color:var(--muted); }
.bkquote ul { list-style:none; display:flex; flex-wrap:wrap; gap:6px; }
.bkquote li { padding:6px 12px; border-radius:99px; background:#fff; font-size:14px; box-shadow:inset 0 0 0 1px var(--line); }
.bkqtot { display:flex; justify-content:space-between; align-items:baseline; border-top:1px solid #dfe3d8; padding-top:10px; font-family:var(--fu); font-size:13px; font-weight:600; }
.bkqtot b { font-family:var(--fd); font-size:30px; letter-spacing:-.04em; color:var(--olive); }
.bk2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.bkrev { display:flex; flex-direction:column; }
.bkrev > div { display:grid; grid-template-columns:110px minmax(0,1fr) auto; gap:14px; align-items:baseline; padding:13px 0; border-bottom:1px solid var(--line); }
.bkrev dt { font-family:var(--fu); font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.bkrev dd { font-size:16px; line-height:22px; margin:0; }
.bkrev button { border:0; background:none; color:var(--olive); font-family:var(--fu); font-size:13px; font-weight:600; cursor:pointer; }
.bknav { display:flex; justify-content:space-between; align-items:center; gap:12px; padding-top:20px; margin-top:20px; border-top:1px solid var(--line); }
.bkback { display:inline-flex; align-items:center; gap:6px; border:0; background:none; color:var(--muted); font-family:var(--fu); font-size:14px; font-weight:600; cursor:pointer; padding:10px 4px; }
.bkback:hover { color:var(--ink); } .bkback svg, .bknext svg { width:12px; height:12px; }
.bkhint { font-size:12px; color:#a3a69c; }
.bknext { display:inline-flex; align-items:center; gap:8px; height:50px; padding:0 22px; border-radius:14px; border:0; background:var(--ink); color:#fff; cursor:pointer; font-family:var(--fu); font-size:15px; font-weight:600;
  transition:transform .4s cubic-bezier(.34,1.56,.64,1), opacity .3s var(--ease), background .3s var(--ease); }
.bknext:hover:not(:disabled) { transform:translateY(-2px); } .bknext:disabled { opacity:.35; cursor:default; }
.bknext.send { background:var(--olive); }
.bknext.nope { animation:nope .4s ease; }
.bkdone { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:10px; padding:30px 0; }
.bkcheck { width:84px; height:84px; border-radius:50%; display:grid; place-items:center; background:var(--olive); color:#fff; margin-bottom:10px; animation:cheer .8s cubic-bezier(.34,1.56,.64,1); }
.bkcheck svg { width:40px; height:40px; stroke-dasharray:30; stroke-dashoffset:30; animation:draw .6s .25s ease forwards; }
@keyframes draw { to { stroke-dashoffset:0; } }
.bkdone .lede { max-width:380px; }
@keyframes nope { 20%, 60% { transform:translateX(-5px); } 40%, 80% { transform:translateX(5px); } }
@keyframes cheer { 30% { transform:scale(1.08); } }

@media (max-width:1199px) { .bkin { grid-template-columns:1fr !important; gap:28px !important; } .bkside { position:static; } .bksteps { flex-direction:row; flex-wrap:wrap; } .bksteps li span { display:none; } .bksteps li.on span { display:inline; } .bkside .h2 { font-size:44px; line-height:48px; } }
@media (max-width:809px) {
  .bkside .h2 { font-size:32px; line-height:36px; } .bkside .lede { font-size:15px; line-height:22px; }
  .bkcard { padding:24px 18px 18px; border-radius:24px; min-height:0; } .bkq { font-size:23px; line-height:28px; }
  .bkev { grid-template-columns:1fr; gap:6px; } .bke img, .bkplus { width:44px; height:44px; }
  .bk2 { grid-template-columns:1fr; } .bkhint { display:none; } .bkg b { font-size:56px; }
  .bkrev > div { grid-template-columns:1fr auto; } .bkrev dt { grid-column:1 / -1; }
  .bksteps li { padding:6px 8px; } .bksteps li i { width:22px; height:22px; font-size:11px; }
}

/* custom calendar */
.bkcal { border-radius:18px; background:#fff; box-shadow:inset 0 0 0 1px #e3e4dc; padding:14px; text-transform:none; letter-spacing:0; color:var(--ink); }
.calh { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.calh b { font-family:var(--fd); font-weight:600; font-size:19px; letter-spacing:-.02em; }
.calh button { width:36px; height:36px; border-radius:10px; border:0; background:var(--card); color:var(--ink); cursor:pointer; display:grid; place-items:center; transition:background .2s var(--ease); }
.calh button:hover:not(:disabled) { background:#ecefe6; } .calh button:disabled { opacity:.3; cursor:default; } .calh svg { width:12px; height:12px; }
.calw, .calg { display:grid; grid-template-columns:repeat(7, 1fr); gap:4px; text-align:center; }
.calw span { font-family:var(--fu); font-size:11px; font-weight:600; color:var(--muted); padding:4px 0; }
.calg button { aspect-ratio:1; max-height:44px; border-radius:12px; border:0; background:none; color:var(--ink); cursor:pointer; font-family:var(--fu); font-size:14px; font-weight:500; font-variant-numeric:tabular-nums; position:relative;
  transition:background .2s var(--ease), color .2s var(--ease), transform .3s cubic-bezier(.34,1.56,.64,1); }
.calg button:hover:not(:disabled):not(.on) { background:var(--card); transform:scale(1.06); }
.calg button.sat::after { content:""; position:absolute; left:50%; bottom:5px; width:4px; height:4px; margin-left:-2px; border-radius:50%; background:var(--latte); }
.calg button.today { box-shadow:inset 0 0 0 1.5px var(--line); font-weight:700; }
.calg button.past { color:#c9cbc4; cursor:default; }
.calg button.on { background:var(--olive); color:#fff; font-weight:700; } .calg button.on::after { background:#fff; }
.calsel { margin-top:10px; font-size:13.5px; color:var(--muted); } .calsel span { font-family:var(--fu); font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--olive); margin-right:6px; }
@media (max-width:809px) { .bkcal { padding:10px; } .calg button { font-size:13px; border-radius:10px; } }
