.ctb{--ink:#17342B;--ink-2:#245042;--saffron:#EFA92B;--saffron-dk:#DB9418;--paper:#fff;--mist:#EEF3F0;--line:#D3DED8;--text:#1E2B26;--muted:#5B6D65;--err:#B3392F;--ok:#1A7F4B;
display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);max-width:960px;margin:2rem auto;border-radius:22px;overflow:hidden;background:var(--paper);box-shadow:0 24px 60px -28px rgba(23,52,43,.45);font-family:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:16px;line-height:1.5;color:var(--text)}
.ctb *,.ctb *::before,.ctb *::after{box-sizing:border-box}
.ctb [hidden]{display:none!important}

/* left panel: the coffee-ring is the one decorative moment */
.ctb-side{position:relative;overflow:hidden;background:var(--ink);color:#EAF1ED;padding:44px 36px;display:flex;flex-direction:column;justify-content:space-between;gap:36px;min-height:100%}
.ctb-side::before,.ctb-side::after{content:"";position:absolute;border-radius:50%;border:2px solid var(--saffron);pointer-events:none}
.ctb-side::before{width:290px;height:290px;right:-95px;bottom:-75px;opacity:.4}
.ctb-side::after{width:200px;height:200px;right:-50px;bottom:-30px;opacity:.2}
.ctb-side>*{position:relative;z-index:1}
.ctb-side h2{font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:clamp(28px,4vw,38px);line-height:1.1;margin:0 0 14px;color:#fff;letter-spacing:-.01em}
.ctb-side p{margin:0;max-width:30ch;color:#C9D8D0}
.ctb-side .ctb-hours{border-left:3px solid var(--saffron);padding-left:12px;color:#C9D8D0}
.ctb-side .ctb-hours strong{color:#fff;font-weight:600}

/* form */
.ctb-main{padding:40px 36px}
.ctb-form{display:grid;gap:18px}
.ctb-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ctb-field{display:grid;gap:6px;align-content:start}
.ctb label,.ctb .ctb-label{font-size:14px;font-weight:600;color:var(--text)}
.ctb .ctb-opt{font-weight:400;color:var(--muted)}
.ctb input[type=text],.ctb input[type=tel],.ctb input[type=email],.ctb input[type=date],.ctb textarea{width:100%;font:inherit;font-size:16px;color:var(--text);background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;margin:0;box-shadow:none;transition:border-color .15s,box-shadow .15s}
.ctb textarea{resize:vertical;min-height:64px}
.ctb input:focus,.ctb textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(239,169,43,.4)}
.ctb-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* guests stepper */
.ctb-stepper{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--line);border-radius:12px;padding:4px;width:max-content}
.ctb-stepper button{width:40px;height:40px;border:0;border-radius:9px;background:var(--mist);color:var(--ink);font-size:22px;line-height:1;cursor:pointer;padding:0}
.ctb-stepper button:hover{background:var(--line)}
.ctb-count{min-width:44px;text-align:center;font-weight:600;font-size:18px}

/* time slots */
.ctb-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.ctb-hint{grid-column:1/-1;margin:0;color:var(--muted);font-size:14px}
.ctb-slot{font:inherit;font-size:15px;font-weight:500;padding:10px 6px;border:1.5px solid var(--line);border-radius:999px;background:#fff;color:var(--text);cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.ctb-slot:hover:not(:disabled){border-color:var(--ink)}
.ctb-slot[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.ctb-slot:disabled{background:var(--mist);color:var(--muted);text-decoration:line-through;cursor:not-allowed}

/* submit + messages */
.ctb-btn{width:100%;font:inherit;font-size:17px;font-weight:700;color:var(--ink);background:var(--saffron);border:0;border-radius:12px;padding:15px 20px;cursor:pointer;transition:background .15s}
.ctb-btn:hover:not(:disabled){background:var(--saffron-dk)}
.ctb-btn:disabled{opacity:.6;cursor:progress}
.ctb-msg{min-height:0;font-size:14px;font-weight:500}
.ctb-msg.err{color:var(--err)}
.ctb-msg.ok{color:var(--ok)}
.ctb button:focus-visible{outline:3px solid var(--saffron);outline-offset:2px}

/* confirmation ticket */
.ctb-done{border:2px dashed var(--line);border-left:8px solid var(--saffron);border-radius:16px;background:var(--mist);padding:28px}
.ctb-done h3{font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:26px;line-height:1.2;margin:0 0 18px;color:var(--ink)}
.ctb-done dl{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;margin:0 0 18px}
.ctb-done dt{font-size:13px;color:var(--muted)}
.ctb-done dd{margin:0;font-weight:600}
.ctb-done .ctb-status-note{margin:0 0 20px;color:var(--muted)}
.ctb-again{font:inherit;font-weight:600;color:var(--ink);background:#fff;border:1.5px solid var(--ink);border-radius:12px;padding:11px 18px;cursor:pointer}
.ctb-again:hover{background:var(--ink);color:#fff}

@media (max-width:720px){
	.ctb{grid-template-columns:1fr;margin:1rem 0;border-radius:18px}
	.ctb-side{padding:28px 24px;min-height:0;gap:20px}
	.ctb-main{padding:28px 20px}
	.ctb-row{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
	.ctb *{transition:none!important}
}
