.cmsb-pbv-schedule { --ink:#102019; --muted:#5f6f66; --line:#dce7e1; --soft:#f4faf7; width:var(--cmsb-pbv-schedule-width,100%); max-width:100%; margin:34px auto; color:var(--ink); font-family:inherit; }
.cmsb-pbv-has-full-width .cmsb-pbv-full-width-container { max-width:none !important; width:100% !important; overflow:visible !important; box-sizing:border-box !important; }
.cmsb-pbv-has-full-width .cmsb-pbv-sidebar-hidden { display:none !important; flex:0 0 0% !important; max-width:0% !important; width:0% !important; }
.cmsb-pbv-has-full-width .cmsb-pbv-main-column-full { flex:0 0 100% !important; max-width:100% !important; width:100% !important; float:none !important; }
.cmsb-pbv-has-full-width .cmsb-pbv-row-full { width:100% !important; max-width:100% !important; }
.cmsb-pbv-full-width-card { position:relative !important; width:100vw !important; max-width:100vw !important; margin-left:calc(50% - 50vw) !important; margin-right:calc(50% - 50vw) !important; padding-left:24px !important; padding-right:24px !important; background:#fff !important; box-sizing:border-box !important; overflow:visible !important; }
.cmsb-pbv-full-width-card:before { content:""; position:absolute; inset:0 calc(50% - 50vw); background:#fff; z-index:-1; pointer-events:none; }
.cmsb-pbv-schedule--full-width-ready { width:var(--cmsb-pbv-schedule-width,100%) !important; max-width:none !important; margin-left:auto !important; margin-right:auto !important; padding:24px 0 !important; background:transparent !important; box-sizing:border-box !important; }
.cmsb-pbv-schedule--full-width-ready .cmsb-pbv-schedule__header,.cmsb-pbv-schedule--full-width-ready .cmsb-pbv-field,.cmsb-pbv-schedule--full-width-ready .cmsb-pbv-schedule__grid { width:100% !important; max-width:100% !important; box-sizing:border-box !important; }
.cmsb-pbv-schedule__header { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:20px; padding:24px; color:var(--cmsb-pbv-header-text,#fff); background:linear-gradient(135deg,var(--cmsb-pbv-header-start,#0b3826),var(--cmsb-pbv-header-end,#177349)); border-radius:14px; box-shadow:0 18px 40px rgba(15,95,61,.18); }
.cmsb-pbv-schedule__header h2 { margin:0 0 8px; color:var(--cmsb-pbv-header-text,#fff); font-size:clamp(28px,4vw,44px); line-height:1.04; }
.cmsb-pbv-schedule__header p { max-width:720px; margin:0; color:var(--cmsb-pbv-header-text,#fff); opacity:.88; }
.cmsb-pbv-schedule__eyebrow { margin-bottom:8px !important; color:var(--cmsb-pbv-club-color,#bff3d1) !important; font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.cmsb-pbv-schedule__legend { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; max-width:430px; }
.cmsb-pbv-schedule__legend button { appearance:none; cursor:pointer; padding:7px 11px; color:var(--cmsb-pbv-button-text,#effff6); background:var(--cmsb-pbv-button-bg,#2f7d51); border:1px solid var(--cmsb-pbv-button-border,#78bd91); border-radius:999px; font:inherit; font-size:12px; font-weight:800; line-height:1.1; transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease; }
.cmsb-pbv-schedule__legend button:hover, .cmsb-pbv-schedule__legend button:focus { filter:brightness(1.08); outline:none; transform:translateY(-1px); }
.cmsb-pbv-schedule__legend button.is-active { color:var(--cmsb-pbv-button-active-text,#0b3826); background:var(--cmsb-pbv-button-active-bg,#fff); border-color:var(--cmsb-pbv-button-active-bg,#fff); }
.cmsb-pbv-schedule__grid { display:grid; grid-template-columns:repeat(var(--cmsb-pbv-days),minmax(170px,1fr)); gap:14px; }
.cmsb-pbv-day { min-width:0; padding:14px; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 10px 26px rgba(16,32,25,.07); }
.cmsb-pbv-day h3 { margin:0 0 12px; padding-bottom:10px; border-bottom:1px solid var(--line); color:var(--ink); font-size:18px; }
.cmsb-pbv-field { position:relative; display:grid; grid-template-columns:repeat(var(--cmsb-pbv-days),minmax(170px,1fr)); gap:10px; padding:18px; overflow:hidden; background:linear-gradient(90deg,rgba(255,255,255,.08) 0 49%,rgba(255,255,255,.13) 49% 51%,rgba(255,255,255,.08) 51% 100%),repeating-linear-gradient(90deg,#18733d 0 76px,#1d8247 76px 152px); border:3px solid rgba(255,255,255,.9); border-radius:16px; box-shadow:0 18px 40px rgba(16,32,25,.16),inset 0 0 0 2px rgba(255,255,255,.55); }
.cmsb-pbv-field:before { content:""; position:absolute; inset:18px; border:2px solid rgba(255,255,255,.72); border-radius:10px; pointer-events:none; }
.cmsb-pbv-field:after { content:""; position:absolute; left:50%; top:50%; width:170px; height:170px; border:2px solid rgba(255,255,255,.55); border-radius:50%; transform:translate(-50%,-50%); pointer-events:none; }
.cmsb-pbv-field .cmsb-pbv-day { position:relative; z-index:1; min-height:360px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.46); box-shadow:none; backdrop-filter:blur(1px); }
.cmsb-pbv-field .cmsb-pbv-day h3 { color:#fff; border-bottom-color:rgba(255,255,255,.44); text-shadow:0 1px 2px rgba(0,0,0,.24); }
.cmsb-pbv-field .cmsb-pbv-booking { background:rgba(255,255,255,.94); border-color:rgba(255,255,255,.72); border-left-color:var(--cmsb-pbv-accent); box-shadow:0 8px 18px rgba(4,35,19,.18); }
.cmsb-pbv-field .cmsb-pbv-free,.cmsb-pbv-field .cmsb-pbv-no-filter-results { color:#fff; background:rgba(0,0,0,.16); border-color:rgba(255,255,255,.48); }
.cmsb-pbv-schedule--field_zones .cmsb-pbv-field { align-items:stretch; }
.cmsb-pbv-zone-day { display:grid; grid-template-rows:auto 1fr; }
.cmsb-pbv-zone-grid { position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); align-content:start; gap:8px; min-height:300px; padding:10px; overflow:hidden; border:1px solid rgba(255,255,255,.5); border-radius:10px; background:linear-gradient(90deg,transparent 0 calc(25% - 1px),rgba(255,255,255,.36) calc(25% - 1px) 25%,transparent 25% calc(50% - 1px),rgba(255,255,255,.46) calc(50% - 1px) 50%,transparent 50% calc(75% - 1px),rgba(255,255,255,.36) calc(75% - 1px) 75%,transparent 75% 100%); }
.cmsb-pbv-zone-grid:before { content:""; position:absolute; inset:10px; border:1px solid rgba(255,255,255,.42); border-radius:8px; pointer-events:none; }
.cmsb-pbv-zone-grid .cmsb-pbv-booking { position:relative; z-index:1; margin:0; min-width:0; }
.cmsb-pbv-zone-grid .cmsb-pbv-zone-full { grid-column:1 / -1; }
.cmsb-pbv-zone-grid .cmsb-pbv-zone-half-left { grid-column:1 / span 2; }
.cmsb-pbv-zone-grid .cmsb-pbv-zone-half-right { grid-column:3 / span 2; }
.cmsb-pbv-zone-grid .cmsb-pbv-zone-quarter-1 { grid-column:1 / span 1; }
.cmsb-pbv-zone-grid .cmsb-pbv-zone-quarter-2 { grid-column:2 / span 1; }
.cmsb-pbv-zone-grid .cmsb-pbv-zone-quarter-3 { grid-column:3 / span 1; }
.cmsb-pbv-zone-grid .cmsb-pbv-zone-quarter-4 { grid-column:4 / span 1; }
.cmsb-pbv-zone-grid .cmsb-pbv-free,.cmsb-pbv-zone-grid .cmsb-pbv-no-filter-results { grid-column:1 / -1; position:relative; z-index:1; }
.cmsb-pbv-booking { display:grid; gap:5px; margin-bottom:10px; padding:13px 13px 13px 15px; overflow:hidden; background:linear-gradient(180deg,#fff,#f8fbf9); border:1px solid #dce7e1; border-left:5px solid var(--cmsb-pbv-accent); border-radius:10px; }
.cmsb-pbv-booking:last-child { margin-bottom:0; }
.cmsb-pbv-booking[hidden] { display:none; }
.cmsb-pbv-booking time { color:var(--cmsb-pbv-accent); font-size:13px; font-weight:800; }
.cmsb-pbv-booking strong { color:var(--ink); font-size:19px; line-height:1.1; }
.cmsb-pbv-booking span, .cmsb-pbv-booking em, .cmsb-pbv-booking p { margin:0; color:var(--muted); font-size:13px; font-style:normal; line-height:1.35; }
.cmsb-pbv-booking em { font-weight:700; }
.cmsb-pbv-booking-link { display:inline-flex; justify-content:center; width:max-content; max-width:100%; margin-top:4px; padding:6px 9px; color:#0b3826 !important; background:#e6f6ed; border:1px solid #c8ead7; border-radius:999px; font-size:12px; font-weight:800; text-decoration:none !important; }
.cmsb-pbv-booking-link:hover, .cmsb-pbv-booking-link:focus { background:#d8f0e3; text-decoration:none !important; }
.cmsb-pbv-free, .cmsb-pbv-no-filter-results { padding:20px 12px; color:var(--muted); background:var(--soft); border:1px dashed var(--line); border-radius:10px; text-align:center; font-weight:700; }
.cmsb-pbv-no-filter-results[hidden] { display:none; }
@media (max-width:1100px) { .cmsb-pbv-schedule__grid,.cmsb-pbv-field { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:720px) { .cmsb-pbv-schedule__header { display:grid; padding:20px; } .cmsb-pbv-schedule__legend { justify-content:flex-start; } .cmsb-pbv-schedule__grid,.cmsb-pbv-field { grid-template-columns:1fr; } .cmsb-pbv-field .cmsb-pbv-day { min-height:0; } .cmsb-pbv-zone-grid { grid-template-columns:repeat(2,minmax(0,1fr)); min-height:0; } .cmsb-pbv-zone-grid .cmsb-pbv-zone-full,.cmsb-pbv-zone-grid .cmsb-pbv-zone-half-left,.cmsb-pbv-zone-grid .cmsb-pbv-zone-half-right { grid-column:1 / -1; } .cmsb-pbv-zone-grid .cmsb-pbv-zone-quarter-1,.cmsb-pbv-zone-grid .cmsb-pbv-zone-quarter-3 { grid-column:1 / span 1; } .cmsb-pbv-zone-grid .cmsb-pbv-zone-quarter-2,.cmsb-pbv-zone-grid .cmsb-pbv-zone-quarter-4 { grid-column:2 / span 1; } }
