/* Kingdom Ink - the booking request form (templates/kingdom-ink/blocks/booking_request.html, ki-book.js) */
.kb{position:relative;display:flex;flex-direction:column;gap:22px;padding:36px;background:var(--ink2);border:1px solid var(--line);scroll-margin-top:96px;overflow:hidden;min-width:0}
.kb::before{content:"";position:absolute;right:-30%;top:-40%;width:80%;height:70%;background:radial-gradient(closest-side,rgba(230,245,66,.08),transparent);pointer-events:none}
.kb>*{position:relative}
.kb-head{display:flex;flex-direction:column;gap:12px}
.kb-title{font-size:clamp(34px,4vw,48px);line-height:.95}
.kb-progress{height:3px;background:var(--line2)}
.kb-bar{display:block;height:100%;width:20%;background:var(--y);transition:width .35s ease}
.kb-count{margin:0;font-family:var(--cond);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:12px;color:var(--muted2)}
.kb-count b{color:var(--paper);font-weight:600}
.kb-noscript{margin:0;color:var(--paper2);font-size:17px;line-height:1.55}
html:not(.js) .kb-form,html:not(.js) .kb-progress,html:not(.js) .kb-count{display:none}

.kb-form{display:flex;flex-direction:column;gap:18px}
.kb-step{display:none;flex-direction:column;gap:10px;min-width:0}
.kb-step.on,html:not(.js) .kb-step,.kb-edit .kb-step{display:flex}
.kb-on .kb-step.on{animation:kbIn .28s ease-out}
@keyframes kbIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.kb-edit .kb-step+.kb-step{border-top:1px dashed var(--line3);padding-top:22px}
.kb-q{font-size:clamp(24px,3vw,30px);line-height:1.05;color:var(--paper)}
.kb-q:focus{outline:none}
.kb-help{margin:0 0 6px;color:var(--muted);font-size:16px;line-height:1.55}
.kb-label{margin-top:8px;font-family:var(--cond);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:12px;color:var(--muted2)}
.kb input:not([type=checkbox]):not([type=file]),.kb textarea{width:100%;padding:14px;background:var(--ink);border:1px solid var(--line2);border-radius:0;color:var(--paper);font:inherit;font-size:16px;line-height:1.45}
.kb textarea{resize:vertical;min-height:132px}
.kb input:focus,.kb textarea:focus{outline:none;border-color:var(--y)}
.kb ::placeholder{color:var(--muted3)}
.kb button{font:inherit;cursor:pointer}
.kb button:focus-visible,.kb-drop:focus-within{outline:2px solid var(--y);outline-offset:2px}

.kb-chips{display:flex;flex-wrap:wrap;gap:8px}
.kb-chip{min-height:44px;padding:10px 16px;border:1px solid var(--line3);border-radius:999px;background:transparent;color:var(--paper2);font-size:15px;line-height:1.2;transition:background .15s,border-color .15s,color .15s}
.kb-chip:hover{border-color:var(--y)}
.kb-chip[aria-pressed=true]{background:var(--y);border-color:var(--y);color:var(--ink);font-weight:600}

.kb-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kb-card{display:flex;flex-direction:column;gap:6px;padding:16px 18px;text-align:left;background:var(--ink);border:1px solid var(--line2);color:var(--paper);transition:border-color .15s,background .15s}
.kb-card:hover{border-color:var(--line3)}
.kb-card[aria-checked=true]{border-color:var(--y);box-shadow:inset 0 0 0 1px var(--y);background:rgba(230,245,66,.06)}
.kb-card-unsure{grid-column:1/-1}
.kb-card-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.kb-card-name{font-family:var(--cond);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:17px;line-height:1.15}
.kb-card-price{font-family:var(--anton);font-size:22px;line-height:1;color:var(--y);white-space:nowrap}
.kb-card-meta{font-family:var(--cond);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:12px;color:var(--muted2)}
.kb-card-note{font-size:14px;line-height:1.45;color:var(--muted)}

.kb-drop{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:30px 16px;border:1px dashed var(--line3);background:var(--ink);text-align:center;cursor:pointer;transition:border-color .15s}
.kb-drop:hover,.kb-drop.over{border-color:var(--y)}
.kb-drop b{font-family:var(--cond);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:16px;color:var(--y)}
.kb-drop span{font-size:14px;color:var(--muted)}
.kb-drop.is-full{opacity:.45;pointer-events:none}
.kb-file{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.kb-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px;margin:0;padding:0;list-style:none}
.kb-thumbs:empty{display:none}
.kb-thumb{position:relative;aspect-ratio:1;background:var(--ink);border:1px solid var(--line2);overflow:hidden}
.kb-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.kb-thumb-st{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:8px;background:rgba(10,11,12,.62);border:0;color:var(--paper);font-family:var(--cond);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:12px;text-align:center;line-height:1.3}
.kb-thumb.is-err{border-color:#e05a4e}
.kb-retry{color:#ffb3a8}
.kb-x{position:absolute;top:4px;right:4px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:rgba(10,11,12,.8);color:var(--paper);font-size:22px;line-height:1}
.kb-x:hover{background:var(--y);color:var(--ink)}

.kb-cal{display:flex;flex-direction:column;gap:10px}
.kb-cal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.kb-cal-head b{font-family:var(--cond);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:16px;color:var(--paper)}
.kb-mo{width:44px;height:44px;border:1px solid var(--line3);background:transparent;color:var(--paper);font-size:24px;line-height:1}
.kb-mo:hover:not([disabled]){border-color:var(--y);color:var(--y)}
.kb-mo[disabled]{opacity:.25;cursor:default}
.kb-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.kb-wd{padding:4px 0;text-align:center;font-family:var(--cond);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:11px;color:var(--muted3)}
.kb-day{display:flex;align-items:center;justify-content:center;height:clamp(44px,11vw,52px);font-size:15px;line-height:1}
.kb-day.off{color:var(--muted3);opacity:.5}
button.kb-day{border:1px solid var(--line3);background:var(--ink);color:var(--paper);font-weight:600}
button.kb-day:hover{border-color:var(--y)}
button.kb-day[aria-pressed=true]{background:var(--y);border-color:var(--y);color:var(--ink)}
.kb-times-h{margin:8px 0 0;font-family:var(--cond);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:13px;color:var(--muted2)}
.kb-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.kb-time{min-height:46px;border:1px solid var(--line3);background:var(--ink);color:var(--paper);font-family:var(--cond);font-weight:600;letter-spacing:.06em;font-size:16px}
.kb-time:hover{border-color:var(--y)}
.kb-time[aria-pressed=true]{background:var(--y);border-color:var(--y);color:var(--ink)}
.kb-empty{margin:0;padding:18px 16px;border:1px solid var(--line2);background:var(--ink);color:var(--muted);font-size:15px;line-height:1.5}
.kb-zone{margin:0;font-size:13px;color:var(--muted3)}
.kb-zone b{color:var(--muted2);font-weight:500}
.kb-skip{align-self:flex-start;min-height:44px;padding:10px 0;border:0;background:transparent;color:var(--paper2);font-size:15px;text-align:left;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--line3)}
.kb-skip:hover,.kb-skip[aria-pressed=true]{color:var(--y);text-decoration-color:var(--y)}

.kb-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.kb-two>div{display:flex;flex-direction:column;gap:10px;min-width:0}
.kb-check{display:flex;align-items:flex-start;gap:12px;margin-top:8px;padding:14px;border:1px solid var(--line2);background:var(--ink);color:var(--paper2);font-size:15px;line-height:1.45;cursor:pointer}
.kb-check input{flex:none;width:22px;height:22px;margin:0;accent-color:var(--y)}
.kb-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.kb-fine{margin:4px 0 0;font-size:13px;line-height:1.5;color:var(--muted3)}

.kb-msg{display:none;margin:0;padding:12px 14px;border:1px solid #e05a4e;background:rgba(224,90,78,.08);color:#ffb3a8;font-size:15px;line-height:1.5}
.kb-msg.on{display:block}
.kb-nav{display:flex;align-items:center;gap:12px;padding-top:20px;border-top:1px solid var(--line)}
.kb-nav .btn{align-self:auto;min-height:48px}
.kb-nav .btn-y{margin-left:auto;padding:14px 28px;box-shadow:none;border:0;color:var(--ink)}
.kb-nav .btn-y[disabled]{opacity:.6;cursor:wait}
.kb-nav [hidden]{display:none}
html:not(.js) .kb-nav,.kb-edit .kb-nav .kb-next{display:none}

.kb-done{display:flex;flex-direction:column;align-items:center;gap:14px;padding:8px 0;text-align:center}
.kb-done[hidden]{display:none}
.kb-edit .kb-done[hidden]{display:flex;border-top:1px dashed var(--line3);padding-top:22px}
.kb-done img{width:72px;height:auto}
.kb-done .kb-q{font-size:clamp(30px,3.6vw,40px)}
.kb-done p{margin:0;color:var(--muted);font-size:16px;line-height:1.55;max-width:420px}
.kb-sum{width:100%;margin:8px 0 0;border-top:1px solid var(--line)}
.kb-sum>div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);text-align:left}
.kb-sum dt{font-family:var(--cond);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:12px;color:var(--muted2);padding-top:2px}
.kb-sum dd{margin:0;color:var(--paper);text-align:right;font-size:15px;line-height:1.45}
.kb-edit .kb-texts[hidden]{display:flex;flex-direction:column;gap:6px;border-top:1px dashed var(--line3);padding-top:18px;color:var(--muted);font-size:14px}
.kb-edit .kb-texts::before{content:"Messages the form shows";font-family:var(--cond);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:12px;color:var(--muted2)}

@media (max-width:560px){
  .kb{margin:0 -24px;padding:28px 16px;border-left:0;border-right:0}
  .kb-cards,.kb-two{grid-template-columns:1fr}
  .kb-grid{gap:3px}
  .kb-nav .btn-y{flex:1}
}
@media (prefers-reduced-motion:reduce){.kb-on .kb-step.on{animation:none}.kb-bar{transition:none}}
