:root{--paper:#f6eee2;--ink:#281b13;--deep:#241812;--gold:#dfb66a;--line:#d9cbb8;--accent:#743a32}
.site-booking{margin:1rem auto;padding:.8rem 1.25rem;max-width:920px;text-align:center;background:#f2e2c5;border:1px solid #e5d0aa;border-radius:12px}
.site-booking a{color:#572a23;font-weight:700}
.booking{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 system-ui,sans-serif}
.booking header{background:var(--deep);color:#fff5e4;padding:1rem max(5vw,1rem);display:flex;justify-content:space-between;align-items:center;gap:1rem}
.booking header a{color:var(--gold);text-decoration:none}.booking header strong{letter-spacing:.16em}
.booking main{width:min(92%,1020px);margin:2rem auto 4rem}.booking h1,.booking h2{line-height:1.25}.booking h1{font-size:clamp(2rem,6vw,3.3rem);margin:.45em 0}.booking h2{font-size:1.35rem}
.booking .kicker{letter-spacing:.18em;color:var(--accent);font-weight:700}.booking .card{background:#fffaf2;padding:1.4rem;border:1px solid var(--line);border-radius:15px;margin:1rem 0}
.booking .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:1rem}.booking .grid .card{margin:0}
.booking label{display:block;margin:.7rem 0;font-weight:600}.booking input:not([type=checkbox]),.booking select,.booking textarea{box-sizing:border-box;width:100%;padding:.6rem;border:1px solid #a6937e;border-radius:8px;font:inherit;background:white;color:inherit}.booking select[multiple]{min-height:7rem}
.booking button,.booking .button{display:inline-block;background:var(--accent);color:#fff;padding:.55rem .95rem;border:0;border-radius:8px;font:inherit;text-decoration:none;cursor:pointer}.booking a{color:#6c322a}
.booking .notice{padding:.85rem 1rem;background:#f4e5cb;border-left:4px solid #a57636;overflow-wrap:anywhere}.booking .muted{color:#665646}.booking pre{white-space:pre-wrap;font:inherit}
.booking table{border-collapse:collapse;width:100%}.booking th,.booking td{text-align:left;padding:.5rem;border-bottom:1px solid var(--line);vertical-align:top}.booking .table{overflow:auto}.booking details{margin:1rem 0}.booking small{display:block}.booking .trap{position:absolute;left:-9999px}
.cc-jump{display:flex;justify-content:center;flex-wrap:wrap;gap:.65rem;margin:0 0 1.6rem}
.cc-jump a{border:1px solid #b99b6a;border-radius:999px;padding:.38rem .95rem;background:#fffaf0;color:#634119;font-weight:700;text-decoration:none}
.cc-recent{background:#faf2e5;border:1px solid #e3cfad;border-radius:16px;padding:clamp(1rem,3vw,2rem);margin:0 auto 2.25rem;scroll-margin-top:1rem}
.cc-heading{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.4rem 1rem;margin-bottom:1rem}
.cc-heading h2,.cc-all{color:#1a5f5f;margin:0}.cc-heading p,.cc-deadline{margin:0;color:#6d5d47;font-size:.9rem}
.cc-all{text-align:center;margin:0 0 .8rem;scroll-margin-top:1rem}
.cc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:1rem}
.cc-card{background:#fffdf7;border:1px solid #e6d8c3;border-radius:12px;padding:1rem;display:flex;flex-direction:column}
.cc-card h3{line-height:1.3;margin:.4rem 0}.cc-status{font-size:.85rem;font-weight:700;color:#1a5f5f}
.cc-card ul{margin:.4rem 0 .9rem;padding-left:1.2rem}.cc-card li+li{margin-top:.45rem}.cc-card time{display:block;color:#64533c;font-size:.9rem}
.cc-actions{display:flex;justify-content:space-between;align-items:center;gap:.65rem;margin-top:auto;padding-top:.85rem}
.cc-actions a{background:#1a5f5f;color:white;border-radius:8px;padding:.45rem .7rem;text-decoration:none}
.cc-empty{margin:0;padding:.8rem 0;color:#64533c}
.cc-grid + .cc-announcements{margin-top:1rem}

.cc-summary{margin:.25rem 0 .6rem;color:#534639;font-size:.92rem;line-height:1.6}

.booking button:disabled{opacity:.55;cursor:default}

.inline-booking{width:min(92%,760px);margin:2rem auto 3rem;background:transparent;scroll-margin-top:1rem}
.inline-booking .card{padding:clamp(1rem,4vw,2rem)}
.cc-time{margin:.3rem 0 .65rem}
.inline-booking{color:var(--ink)}
.inline-booking #registration-heading{color:var(--ink)}
.booking-times{list-style:none;padding-left:0}

.member-page.booking{--accent:var(--primary-color);width:min(100%,1020px);margin:0 auto;padding:2rem 1rem 3rem;background:transparent;color:var(--text-dark);font:inherit}
.member-page.booking h1,.member-page.booking h2,.member-page.booking a{color:var(--primary-color)}
.member-page.booking h1{font-size:clamp(1.8rem,5vw,2.5rem);margin:0 0 1rem}
.member-page.booking .card{background:var(--white);border-color:var(--border-color);border-radius:8px}
.member-page.booking .button{color:var(--white)}
.member-page.booking .card h2{margin-bottom:.6rem}
.member-page.booking .card ul{padding-left:1.25rem}
.member-page.booking .card li+li{margin-top:.4rem}
