.booking-public { margin:0; color:#253631; background:#f6f8f7; font-family:system-ui,-apple-system,sans-serif; line-height:1.7; }
.booking-public *, .booking-item * { box-sizing:border-box; letter-spacing:0; }
.booking-header { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:18px 24px; background:#fff; border-bottom:1px solid #d7e2dc; }
.booking-header a { color:#244b39; text-decoration:none; font-size:24px; font-weight:700; }
.booking-header a span { font-size:11px; display:block; }
.booking-main { max-width:680px; padding:32px 20px 48px; margin:auto; }
.booking-main h1 { font-size:26px; line-height:1.4; margin:8px 0 24px; }
.booking-main h2,.booking-item h2 { font-size:18px; margin:0 0 20px; }
.booking-eyebrow { color:#617268; font-size:13px; }
.booking-notice { border-left:4px solid #a47b2c; padding:12px 16px; background:#fff8de; font-weight:600; }
.booking-main section { margin:28px 0; padding-top:24px; border-top:1px solid #d4ddd7; }
.booking-main label:not(.booking-consent),.booking-item label:not(.booking-consent) { display:block; margin:16px 0 6px; font-weight:600; }
.booking-main input:not([type=checkbox]):not([type=radio]),.booking-main select,.booking-main textarea,.booking-item select { display:block; width:100%; min-width:0; min-height:48px; padding:11px 12px; font:inherit; font-size:16px; background:#fff; border:1px solid #899d90; border-radius:6px; color:#253631; }
.booking-main input:focus,.booking-main select:focus,.booking-main textarea:focus,.booking-item select:focus { outline:3px solid #b3d3be; outline-offset:2px; }
.booking-help,.booking-main small { font-size:13px; color:#53665a; }
.booking-consent { display:flex; align-items:flex-start; gap:12px; margin:24px 0; }
.booking-consent input { flex:0 0 20px; width:20px; height:20px; margin-top:4px; }
.booking-button { display:inline-block; background:#285c43; color:#fff; border:1px solid #285c43; border-radius:6px; padding:14px 20px; font:inherit; font-weight:700; text-align:center; text-decoration:none; cursor:pointer; }
.booking-main .booking-button { width:100%; }
.booking-error { border:1px solid #b34b4b; color:#8f2424; background:#fff2f2; padding:14px; }
.booking-footer { padding:24px; text-align:center; border-top:1px solid #d7e2dc; font-size:13px; }
.booking-footer a { margin-left:20px; color:#285c43; }
.booking-honey { position:absolute; left:-10000px; }
.booking-item { background:white; border:1px solid #d4ddd7; border-radius:6px; margin:20px 0; padding:20px; overflow-wrap:anywhere; }
.booking-notes { white-space:pre-wrap; }
.booking-actions { display:flex; gap:12px; flex-wrap:wrap; }
.booking-reject { background:#fff; border:1px solid #a14c4c; color:#922d2d; border-radius:6px; padding:14px; font:inherit; cursor:pointer; }
@media(max-width:400px) { .booking-main h1{font-size:23px} .booking-header{padding:14px 16px} .booking-actions>*{width:100%} }
.booking-filters { padding-top:20px; }
.booking-filter-button { width:100%; padding:12px 16px; margin-top:20px; background:#fff; border:1px solid #285c43; border-radius:6px; color:#285c43; font:inherit; font-weight:700; cursor:pointer; }
.booking-slots { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; border:0; padding:0; margin:20px 0; }
.booking-slots legend { margin-bottom:12px; }
.booking-main .booking-slot { position:relative; margin:0!important; }
.booking-slot input { position:absolute; opacity:0; width:1px; height:1px; }
.booking-slot span { display:flex; align-items:center; justify-content:center; min-height:48px; border:1px solid #899d90; border-radius:6px; background:#fff; cursor:pointer; }
.booking-slot input:checked+span { background:#285c43; color:white; border:2px solid #173b29; }
.booking-slot input:focus-visible+span { outline:3px solid #b3d3be; outline-offset:2px; }
.booking-quote { display:flex; align-items:baseline; flex-wrap:wrap; gap:12px; }
.booking-quote strong { font-size:24px; }
.booking-empty { padding:16px; background:#e9eeeb; }
@media(max-width:360px) { .booking-slots{grid-template-columns:repeat(3,minmax(0,1fr))} }

/* Match the official Ran site's black, crimson and gold identity. */
.booking-public { background:#0d0909; color:#f0e5d1; color-scheme:dark; }
.booking-public .booking-header { background:#100a0a; border-color:#44372a; }
.booking-public .booking-header a { color:#c3a466; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; }
.booking-public .booking-main h1,.booking-public .booking-main h2 { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; color:#e3c78d; }
.booking-public .booking-eyebrow { color:#c3a466; }
.booking-public .booking-notice { background:#301414; border-color:#c3a466; color:#f0e5d1; }
.booking-public .booking-main section { border-color:#44372a; }
.booking-public .booking-help,.booking-public .booking-main small { color:#c9baa5; }
.booking-public .booking-main input:not([type=checkbox]):not([type=radio]),.booking-public select,.booking-public textarea { background:#1b1414; color:#f0e5d1; border-color:#756144; }
.booking-public .booking-main input:focus,.booking-public select:focus,.booking-public textarea:focus { outline-color:#c3a466; }
.booking-public .booking-button { background:#c3a466; color:#160e0e; border-color:#c3a466; }
.booking-public .booking-filter-button { background:#1b1414; color:#e3c78d; border-color:#c3a466; }
.booking-public .booking-slot span { background:#1b1414; border-color:#756144; color:#f0e5d1; }
.booking-public .booking-slot input:checked+span { background:#922a31; border-color:#e3c78d; color:#fff; }
.booking-public .booking-slot input:focus-visible+span { outline-color:#c3a466; }
.booking-public input[type=checkbox] { accent-color:#c3a466; }
.booking-public .booking-empty { background:#211919; color:#f0e5d1; }
.booking-public .booking-error { background:#421a1a; color:#ffd0d0; border-color:#ca7474; }
.booking-public .booking-footer { border-color:#44372a; color:#c9baa5; }
.booking-public .booking-footer a { color:#e3c78d; }
.booking-slot span { flex-direction:column; min-height:56px; line-height:1.35; gap:2px; }
.booking-slot small { font-size:11px; }
.booking-public .booking-slot input:checked+span small { color:#fff; }
