/* Shared KAFFIKO course calendar */
.calendar-section .step-label{font-size:.875rem;letter-spacing:.08em;color:var(--muted);margin-bottom:20px}.calendar-section h2 em{color:#996b45}.calendar-section button:focus-visible,.calendar-section select:focus-visible{outline:3px solid var(--bronze);outline-offset:5px}.calendar-section button,.calendar-section select{touch-action:manipulation}.calendar-section select{border-radius:0}.calendar-section .event-enquiry{display:inline-block;font-size:.875rem;margin-top:18px;border-bottom:1px solid currentColor}.calendar-section .event-group{font-size:.8125rem;color:var(--muted);margin-top:12px}
.calendar-jump{display:inline-block;font-size:.875rem;border-bottom:1px solid currentColor;margin:22px 0 0 24px;padding-block:4px}.calendar-jump:hover{color:#8f5c35}.calendar-section{padding-block:72px 80px}.calendar-heading{display:grid;grid-template-columns:1.3fr 1fr;gap:60px;align-items:end;margin-bottom:34px}.calendar-heading>p{max-width:420px;color:var(--muted)}.calendar-filters{display:flex;align-items:end;gap:18px;padding:24px;background:#eae7df;margin-bottom:30px}.calendar-filters label{display:block;font-size:.875rem;flex:1;max-width:290px}.calendar-filters select{display:block;width:100%;min-height:46px;padding:10px 12px;margin-top:7px;border:1px solid #bfc3b8;border-radius:0;background:var(--paper);color:var(--ink);font:inherit}.calendar-filters>button{border:0;border-bottom:1px solid currentColor;background:none;padding:5px 0;font-size:.8125rem;color:var(--muted);margin:0 0 11px auto}.calendar-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:36px}.month-panel{border:1px solid var(--line);padding:24px;align-self:start;background:var(--white)}.month-toolbar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:15px}.month-toolbar h3{font-family:var(--serif);font-size:1.6rem;letter-spacing:-.025em;text-align:center;line-height:1.3}.month-toolbar>button{border:1px solid var(--line);background:none;font-size:1.2rem;color:var(--ink);min-height:44px}.month-toolbar>button:hover{background:var(--paper);border-color:var(--ink)}.month-subbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:19px 0;color:var(--muted);font-size:.75rem}.month-subbar button{background:none;border:0;border-bottom:1px solid currentColor;color:var(--muted);font-size:.75rem;padding:3px 0}.month-subbar span{display:flex;align-items:center;gap:7px}.month-subbar i{display:inline-block;background:var(--bronze);height:6px;width:6px;border-radius:50%}.month-table{table-layout:fixed;width:100%;border-collapse:collapse}.month-table th{font-size:.75rem;color:var(--muted);font-weight:400;padding:10px 0 12px}.month-table abbr{text-decoration:none}.month-table td{padding:3px;text-align:center;height:60px}.calendar-day{width:100%;min-height:50px;padding:9px 2px 15px;background:none;border:1px solid transparent;color:var(--ink);font-size:.9375rem;position:relative;line-height:1.2}.calendar-day:hover{background:var(--paper);border-color:var(--line)}.calendar-day.is-today{border-color:#b7b8ae}.calendar-day.is-selected{background:var(--ink);color:var(--paper);border-color:var(--ink)}.calendar-day.has-events:after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:#996b45;bottom:6px;left:calc(50% - 2.5px)}.calendar-day.is-selected.has-events:after{background:var(--bronze-light)}.calendar-results-heading{display:flex;align-items:baseline;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding:4px 0 18px}.calendar-results-heading h3{font-size:1.25rem;line-height:1.4;letter-spacing:-.025em}.calendar-results-heading button{font-size:.75rem;border:0;border-bottom:1px solid currentColor;background:none;padding:2px 0;white-space:nowrap}.calendar-empty{padding:35px 0}.empty-kicker{font-size:.75rem;letter-spacing:.08em;color:#8b603f}.calendar-empty h4{font-family:var(--serif);font-size:1.65rem;font-weight:400;line-height:1.3;margin:15px 0}.calendar-empty p{font-size:.9375rem;color:var(--muted);line-height:1.75;max-width:420px}.calendar-event{padding:24px 0;border-bottom:1px solid var(--line)}.event-date{font-size:.8125rem;letter-spacing:.04em;color:#8b603f}.calendar-event h4{font-family:var(--serif);font-size:1.7rem;line-height:1.3;font-weight:400;margin:10px 0}.event-location{font-size:.9375rem}.event-price{font-size:.8125rem;color:var(--muted);margin-top:8px}.event-seats{display:inline-block;background:#e9e9e0;border:1px solid #cbd0c1;color:#3f503a;padding:5px 10px;font-size:.75rem;margin-top:16px}.event-seats.is-full{background:#eeebe4;border-color:#d6cec1;color:var(--muted)}.calendar-footnote{margin-top:28px;color:var(--muted);font-size:.8125rem;line-height:1.7}
@media(max-width:900px){.calendar-heading{gap:30px}.calendar-layout{gap:24px}.month-panel{padding:19px}.month-table td{height:52px;padding:1px}.calendar-day{min-height:46px}.calendar-results-heading{flex-wrap:wrap}.calendar-heading h2{font-size:2.6rem}.month-toolbar{gap:8px}.month-toolbar h3{font-size:1.35rem}.calendar-section{padding-block:60px}}
@media(max-width:700px){.calendar-section{padding-block:48px 55px}.calendar-heading{grid-template-columns:1fr;gap:22px}.calendar-heading h2{font-size:2.35rem}.calendar-heading>p{font-size:.9375rem}.calendar-filters{flex-wrap:wrap;padding:20px;gap:16px}.calendar-filters label{max-width:none;flex:1 1 100%;font-size:.875rem}.calendar-filters>button{margin:3px 0 0;font-size:.8125rem;min-height:36px}.calendar-layout{grid-template-columns:1fr;gap:28px}.calendar-results-heading{padding-top:0}.calendar-empty{padding-block:28px 10px}.calendar-empty h4{font-size:1.6rem}.calendar-jump{margin-left:0;margin-right:24px}.month-panel{padding:20px 14px}.month-toolbar h3{font-size:1.5rem}.month-table td{height:52px;padding:1px}.calendar-day{min-height:46px}.calendar-results-heading h3{font-size:1.2rem}.calendar-footnote{font-size:.8125rem}}
