:root{font-family:ui-rounded,Avenir Next,Avenir,Segoe UI,sans-serif;color:#101915;background:#f5f7f4}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:linear-gradient(140deg,#f7f8f5,#e9f1e7);min-height:100vh}a{color:inherit}.shell{width:min(1050px,calc(100% - 36px));margin:auto}header{background:#ffffffde;border-bottom:1px solid #d4e6e7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.nav{position:relative;min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;font-weight:900;letter-spacing:-.04em;line-height:1}.brand img{height:42px;width:82px;padding:3px 5px;object-fit:contain;object-position:center;border-radius:8px;background:#000}nav{display:flex;gap:1rem;align-items:center;font-size:.9rem;font-weight:800}nav a{text-decoration:none}.menu-toggle{display:none;width:44px;height:44px;padding:10px;border:1px solid #d4e6e7;border-radius:11px;background:#fff;cursor:pointer}.menu-toggle span{display:block;width:100%;height:2px;margin:4px 0;border-radius:2px;background:#043a5a}.nav-button,.button{border:0;border-radius:12px;padding:.85rem 1.05rem;font:inherit;font-weight:900;text-decoration:none;display:inline-flex;justify-content:center;cursor:pointer;background:#043a5a;color:#fff}.button:disabled{opacity:.55;cursor:not-allowed}.auth-submit{width:100%;align-items:center;gap:.6rem}.button-spinner{width:1rem;height:1rem;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:booking-spin .75s linear infinite}.turnstile-widget{min-height:65px;margin:1rem 0}.turnstile-widget>div,.turnstile-widget iframe{max-width:100%}.link-button{font:inherit;font-weight:800;background:none;border:0;color:#043a5a;cursor:pointer}.sun{background:#f5c94d;color:#043a5a}.outline{background:#fff;color:#043a5a;border:1px solid #d4e6e7}.danger{background:#a32222}.page-grid,.booking-page{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start;padding:5.5rem 0}.homepage-booking{background:linear-gradient(135deg,#eaf7f7,#fff7e6);border-top:1px solid #d4e6e7}.venue-details{padding:5rem 0;background:#fff}.venue-details__grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:4rem;align-items:start}.venue-details h2{margin:.6rem 0 .75rem;color:#043a5a;font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.055em;line-height:1}.venue-details__location{margin:0;color:#15758a;font-weight:800}.venue-details__description{max-width:620px;margin:1.25rem 0 0;color:#557181;line-height:1.7}.venue-amenities{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.4rem}.venue-amenities span{padding:.5rem .75rem;border:1px solid #d8e9eb;border-radius:999px;background:#f4fafb;color:#315f6c;font-size:.82rem;font-weight:800}.venue-details__facts{overflow:hidden;border:1px solid #d4e6e7;border-radius:20px;background:#f8fcfc;box-shadow:0 18px 45px #043a5a14}.venue-details__facts>div{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;border-bottom:1px solid #dcebed}.venue-details__facts>div:last-child{border-bottom:0}.venue-details__facts span{color:#587483;font-size:.88rem;font-weight:700}.venue-details__facts strong{color:#043a5a;font-size:1.08rem}.venue-details__facts .venue-hours{display:block}.venue-hours>span{display:block;margin-bottom:.65rem;color:#043a5a;font-weight:900}.venue-hours ul{display:grid;gap:.42rem;margin:0;padding:0;list-style:none}.venue-hours li{display:flex;justify-content:space-between;gap:1rem}.venue-hours li b{color:#315f6c;font-size:.84rem;text-transform:capitalize}.booking-access{align-items:center}.booking-access__card{display:grid;gap:.9rem}.booking-access__card h2,.booking-access__card p{margin:0}.booking-access__card p{margin-bottom:.4rem;color:#557181;line-height:1.6}.booking-access__icon{display:grid;width:3rem;height:3rem;place-items:center;border-radius:50%;background:#e0f4f5;color:#087a85;font-size:1.25rem}.booking-consent{margin:.2rem 0 0;color:#557181;font-size:.82rem;line-height:1.5}.payment-methods .button{min-width:128px;align-items:center;gap:.55rem;padding:.65rem .8rem;border:1px solid #d4e6e7;background:#fff;color:#043a5a}.payment-methods .button:not(.outline){border-color:#087aa5;background:#edf8fb;box-shadow:0 0 0 2px #087aa526}.payment-methods .button img{width:76px;height:28px;object-fit:contain;border-radius:5px}.payment-methods .button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.booking-consent a{color:#086d86;font-weight:900;text-underline-offset:2px}.booking-consent a:hover{color:#043a5a}.confirmed-bookings{display:grid;gap:.7rem;margin:1rem 0}.confirmed-booking{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.85rem;align-items:start;padding:1rem;border:1px solid #cfe6dd;border-radius:14px;background:#f3fbf6}.confirmed-booking__icon{display:grid;width:2rem;height:2rem;place-items:center;border-radius:50%;background:#20a95c;color:#fff;font-weight:900}.confirmed-booking h3,.confirmed-booking p{margin:0}.confirmed-booking h3{color:#043a5a;font-size:1rem}.confirmed-booking p{margin-top:.25rem;color:#506f67;font-size:.88rem}.payment-result-page{display:grid;min-height:calc(100vh - 150px);padding:4.5rem 0;place-items:center}.payment-result-card{width:min(680px,100%);padding:clamp(1.5rem,5vw,2.5rem)}.payment-result-card h1{margin-top:.5rem;font-size:clamp(2.3rem,7vw,4.2rem)}.payment-result-icon{display:grid;width:3.5rem;height:3.5rem;margin-bottom:1rem;place-items:center;border-radius:50%;background:#e7f4f6;color:#087a8f;font-size:1.5rem;font-weight:900}.payment-result-icon.success{background:#dcf6e5;color:#18874b}.receipt-reference{margin:1rem 0 0;color:#557181;font-size:.82rem;overflow-wrap:anywhere}.payment-result-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.2rem}.homepage-booking .booking-page{padding:5rem 0}.hero-full{min-height:calc(100vh - 128px);display:flex;align-items:center;background:linear-gradient(90deg,#040c08e0,#040c088c 42%,#040c0814 72%),url(/bgc-hero.jpg) center/cover no-repeat}.hero-content{padding:7rem 0;max-width:min(1050px,calc(100% - 36px));margin:auto;color:#fff}.hero-content .eyebrow{color:#b7f36b}.hero-content h1{max-width:650px}.hero-content h1 em{color:#b7f36b}.hero-content .intro{color:#e4f3f3}.hero-content .outline{background:#ffffffdb}.eyebrow{font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:#15758a}.eyebrow:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#2db9c3;margin-right:.45rem}h1{font-size:clamp(2.7rem,6vw,5.2rem);letter-spacing:-.075em;line-height:.95;margin:.7rem 0 1.2rem}h1 em{font-style:normal;color:#087aa5}.intro{font-size:1.1rem;line-height:1.6;color:#557181;max-width:540px}.actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.5rem}.card{background:#fff;border:1px solid #d4e6e7;border-radius:24px;padding:1.5rem;box-shadow:0 20px 55px #043a5a18}.verification-notice{display:grid;gap:.85rem;padding:.5rem 0 .2rem;color:#315a62;line-height:1.55}.verification-notice__icon{display:grid;width:3.2rem;height:3.2rem;place-items:center;border-radius:50%;background:#e5f7f3;color:#087a8f;font-size:1.55rem}.verification-notice h3,.verification-notice p{margin:0}.verification-notice h3{color:#043a5a;font-size:1.45rem}.verification-notice .button{width:fit-content;margin-top:.45rem}.field{display:grid;gap:.35rem;margin:.8rem 0}.field span,.field-label{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#557181}.field-label{margin:1.45rem 0 .6rem}.field input,.field select,.field textarea{min-height:51px;padding:.7rem .85rem;border:1px solid #d4e6e7;border-radius:12px;font:inherit;color:#043a5a;background:#fff}.field textarea{min-height:auto;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid #2db9c333;border-color:#2db9c3}.notice{padding:.8rem 1rem;border-radius:10px;background:#fff7d6;color:#765b00;font-size:.9rem;font-weight:700}.notice.success{background:#e8f8eb;color:#176c34}.error{color:#a32222;font-weight:700}.small{font-size:.9rem;line-height:1.5;color:#557181}.loading{padding:2rem 0;color:#557181}.booking-shell{min-height:450px}.court-tabs{display:flex;gap:.55rem;flex-wrap:wrap}.court-tab{display:grid;gap:.22rem;text-align:left;padding:.8rem 1rem;border:1px solid #c9dedf;border-radius:13px;background:#fff;color:#043a5a;cursor:pointer}.court-tab span{font-size:.72rem;color:#557181;text-transform:capitalize}.court-tab.active{background:#043a5a;color:#fff;border-color:#043a5a}.court-tab.active span{color:#bce8e9}.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem}.slot{display:grid;gap:.15rem;padding:.7rem .3rem;border:1px solid #d4e6e7;border-radius:12px;background:#f5fbfb;color:#043a5a;cursor:pointer;text-align:center}.slot span{font-size:.74rem;color:#557181}.slot i{font-size:.68rem;color:#a32222;font-style:normal}.slot:disabled{opacity:.52;cursor:not-allowed;background:#f4f4f4}.slot.selected{background:#087a8f;color:#fff;border-color:#087a8f}.slot.selected span{color:#d8ffff}.checkout{margin-top:1.25rem;padding-top:1.2rem;border-top:1px solid #d4e6e7}.checkout h3{margin:.1rem 0 1rem}.payment-methods{display:flex;gap:.55rem;margin:.35rem 0 1rem}.payment-methods .button{flex:1}.summary{display:grid;grid-template-columns:1fr auto;gap:.55rem;padding:1rem;border-radius:14px;background:#edf9fa;color:#557181;font-size:.9rem}.summary b{color:#043a5a}.summary strong{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid #cae2e3;padding-top:.75rem;color:#043a5a;font-size:1rem}.payment-flow{text-align:center}.payment-flow .small{max-width:380px;margin:.5rem auto 1.25rem}.qr-wrap{background:#fff;border:1px solid #d4e6e7;padding:.8rem;border-radius:18px;margin:1.25rem auto;width:min(270px,100%)}.qr-wrap img{display:block;width:100%;aspect-ratio:1;object-fit:contain}.amount{font-size:1.1rem}.amount b{color:#087a8f;margin-left:.35rem}.test-payment{margin-top:.35rem;background:#6c4b9f;color:#fff}.test-note{margin:.55rem auto .25rem;font-size:.76rem;font-weight:800;color:#765b00}.text-action{border:0;background:none;color:#557181;text-decoration:underline;display:block;margin:1rem auto;cursor:pointer;font:inherit;font-size:.85rem}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:1.25rem;background:#021929a8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.confirm-dialog{width:min(440px,100%);padding:1.7rem;border-radius:24px;background:#fff;box-shadow:0 28px 75px #02192980}.confirm-dialog h2{margin:.45rem 0 .75rem;font-size:1.9rem;letter-spacing:-.045em}.dialog-summary{display:grid;gap:.35rem;margin:1.2rem 0;padding:1rem;border-radius:14px;background:#edf9fa;color:#557181;font-size:.92rem}.dialog-summary>b{color:#043a5a;font-size:1.05rem}.dialog-summary strong{display:flex;justify-content:space-between;margin-top:.3rem;padding-top:.7rem;border-top:1px solid #cae2e3;color:#043a5a}.dialog-actions{display:flex;justify-content:flex-end;gap:.65rem;margin-top:1.4rem}.booking{display:grid;gap:.25rem;padding:1rem 0;border-bottom:1px solid #d4e6e7}.booking span,.empty{color:#557181}.empty{background:#edf9fa;padding:1rem;border-radius:12px}.bookings-page{min-height:calc(100vh - 142px);padding:clamp(3.5rem,7vw,7rem) 0;background:radial-gradient(circle at 10% 15%,rgba(245,201,77,.18),transparent 30%),radial-gradient(circle at 90% 10%,rgba(45,185,195,.14),transparent 32%),linear-gradient(135deg,#fffaf0,#f5fbfb 58%,#edf7f8)}.bookings-page__grid{display:grid;grid-template-columns:minmax(0,.88fr) minmax(500px,1.12fr);gap:clamp(3rem,7vw,7.5rem);align-items:center}.bookings-page__intro{padding:1rem 0}.bookings-page__intro h1{color:#043a5a;font-size:clamp(3.7rem,7.2vw,6.4rem)}.bookings-page__intro .intro{max-width:460px;font-size:clamp(1.1rem,2vw,1.45rem)}.bookings-page__cta{align-items:center;gap:1.1rem;margin-top:1.2rem;padding:1rem 1.5rem;font-size:1.05rem}.bookings-page__cta span{font-size:1.7rem;line-height:.7}.bookings-panel{min-height:590px;padding:clamp(1.8rem,4vw,3.1rem);border:1px solid rgba(194,220,223,.9);border-radius:30px;background:#fffffff2;box-shadow:0 28px 65px #043a5a29}.bookings-panel h2{margin:0;color:#043a5a;font-size:clamp(2rem,4vw,3rem);letter-spacing:-.055em}.booking-tabs{display:flex;gap:.75rem;margin:1.75rem 0 1.55rem}.booking-tabs button{min-width:135px;padding:.85rem 1.15rem;border:1px solid #cfe0e4;border-radius:15px;background:#fff;color:#46687e;cursor:pointer;font:inherit;font-weight:800}.booking-tabs button.active{border-color:#043a5a;background:#043a5a;color:#fff;box-shadow:0 8px 16px #043a5a2e}.booking-list{border-top:1px solid #dce9ea}.booking-record{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:1.15rem;align-items:center;padding:1.45rem 0;border-bottom:1px solid #dce9ea}.booking-record__court{display:grid;width:90px;height:90px;place-items:center;border-radius:17px;background:linear-gradient(135deg,#e4f5fa,#eaf2fb);color:#043a5a}.booking-record__court svg{width:50px;height:50px}.booking-record__details{min-width:0}.booking-record__court-name{margin:0 0 .25rem;color:#42647a;font-size:.76rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.booking-record h3{margin:0 0 .75rem;color:#043a5a;font-size:clamp(1.05rem,2vw,1.28rem);line-height:1.2}.booking-record__meta{display:flex;gap:.7rem;align-items:center;margin:.35rem 0;color:#506f88;font-size:.96rem}.booking-record__meta span{color:#174a73;font-size:1.1rem}.booking-record__amounts{width:min(100%,310px);margin:.8rem 0 0;padding:.65rem .8rem;border:1px solid #deebef;border-radius:10px;background:#f7fbfc;color:#506f88;font-size:.84rem}.booking-record__amounts div{display:flex;justify-content:space-between;gap:1rem;padding:.18rem 0}.booking-record__amounts dt,.booking-record__amounts dd{margin:0}.booking-record__amounts dd{color:#214d68;font-weight:700}.booking-record__amounts .booking-record__total{margin-top:.35rem;padding-top:.5rem;border-top:1px solid #d4e5e9;color:#043a5a;font-weight:900}.booking-record__total dd{color:#043a5a}.booking-record__aside{display:grid;justify-items:end;gap:1rem;align-self:stretch}.booking-status{padding:.6rem .85rem;border-radius:13px;background:#e5f8eb;color:#18874b;font-size:.86rem;font-weight:900}.booking-status:before{content:"✓";display:inline-grid;width:1.15rem;height:1.15rem;margin-right:.42rem;place-items:center;border-radius:50%;background:#20a95c;color:#fff;font-size:.72rem}.booking-status--cancelled{background:#fde8e7;color:#a3312d}.booking-status--cancelled:before{content:"×";background:#cf4740}.booking-status--pending{background:#fff3d8;color:#946000}.booking-status--pending:before{content:"…";background:#d28d17}.booking-record__arrow{color:#315a7c;font-size:2.7rem;font-weight:300;line-height:.8}.bookings-panel__loading,.bookings-panel__empty{display:grid;min-height:260px;place-content:center;justify-items:center;gap:.8rem;color:#557181;text-align:center}.booking-spinner{width:34px;height:34px;border:3px solid #cfe4e6;border-top-color:#087a8f;border-radius:50%;animation:booking-spin .8s linear infinite}.bookings-panel__empty>span{color:#087a8f;font-size:3rem}.bookings-panel__empty p{margin:0;font-weight:800}.bookings-panel__empty a{color:#043a5a;font-weight:900}@keyframes booking-spin{to{transform:rotate(360deg)}}@media (max-width: 980px){.venue-details__grid{grid-template-columns:1fr;gap:2rem}.bookings-page__grid{grid-template-columns:1fr;gap:2.5rem}.bookings-page__intro{max-width:650px}.bookings-page__intro h1{font-size:clamp(3.7rem,11vw,6rem)}.bookings-panel{min-height:0}}footer{background:#043a5a;color:#d6eced;padding:1.5rem 0}footer .shell{display:flex;justify-content:space-between;gap:1rem;font-size:.85rem}@media (max-width: 700px){.venue-details{padding:3.5rem 0}.venue-details__facts>div{padding:.9rem 1rem}.venue-hours li{align-items:flex-start}.venue-hours li span{text-align:right}.page-grid,.booking-page{grid-template-columns:1fr;gap:1.7rem;padding:3rem 0}.homepage-booking .booking-page{padding:3rem 0}.hero-full{min-height:640px;background-position:57% center}.hero-content{padding:4rem 0}.menu-toggle{display:block}nav{position:absolute;z-index:20;top:calc(100% - 2px);right:0;display:none;width:min(280px,calc(100vw - 36px));padding:.75rem;align-items:stretch;gap:.25rem;border:1px solid #d4e6e7;border-radius:14px;background:#fff;box-shadow:0 18px 45px #043a5a2e}nav.mobile-open{display:flex;flex-direction:column}nav a,nav .link-button{width:100%;padding:.8rem .9rem;border-radius:9px;text-align:left}nav a:hover,nav .link-button:hover{background:#edf8f9}nav .nav-button{margin-top:.25rem;background:#043a5a;color:#fff;text-align:center}.slot-grid{grid-template-columns:repeat(2,1fr)}.dialog-actions{flex-direction:column-reverse}.dialog-actions .button{width:100%}.bookings-page{min-height:auto;padding:3rem 0;background-position:58% center}.bookings-page__grid{grid-template-columns:1fr;gap:2rem}.bookings-page__intro h1{font-size:clamp(3.5rem,18vw,5rem)}.bookings-panel{min-height:0;padding:1.5rem;border-radius:22px}.booking-tabs button{min-width:0;flex:1}.booking-record{grid-template-columns:58px minmax(0,1fr) auto;gap:.75rem;padding:1.15rem 0}.booking-record__court{width:58px;height:58px;border-radius:13px}.booking-record__court svg{width:35px;height:35px}.booking-record__aside{gap:.7rem}.booking-status{padding:.45rem .55rem;font-size:0}.booking-status:before{margin:0}.booking-record__arrow{font-size:2rem}.booking-record__meta{font-size:.82rem}footer .shell{display:block;line-height:2}}.dialog-wait{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.85rem;align-items:center;margin:1rem 0;padding:1rem;border:1px solid #bcdfe4;border-radius:14px;background:#edf9fa;color:#043a5a}.dialog-wait p{margin:.25rem 0 0;color:#557181;font-size:.88rem;line-height:1.45}.dialog-wait__spinner{width:2rem;height:2rem;border:3px solid #b8dfe3;border-top-color:#087a8f;border-radius:50%;animation:booking-spin .8s linear infinite}.confirm-dialog--busy .dialog-summary,.confirm-dialog--busy .payment-breakdown,.confirm-dialog--busy>.small{opacity:.58}.open-play-page{padding-block:4.5rem 6rem}.open-play-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;margin-top:2rem}.open-play-card{display:flex;flex-direction:column;gap:1rem}.open-play-card h2,.open-play-card p{margin:0}.open-play-card__top{display:flex;justify-content:space-between;gap:1rem;color:#087a8f;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em}.open-play-card dl{display:grid;gap:.65rem;margin:0}.open-play-card dl div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid #e3ecec;padding-bottom:.55rem}.open-play-card dt{color:#6a7c83}.open-play-card dd{margin:0;text-align:right;font-weight:700}.open-play-card .button{margin-top:auto}.open-play-joined,.open-play-pending{margin-top:auto;padding:.8rem 1rem;border-radius:12px;font-weight:700;text-align:center}.open-play-joined{background:#e7f7ef;color:#17653d}.open-play-pending{background:#fff3cf;color:#765600}.open-play-empty{margin-top:2rem;text-align:center}.open-play-qr{display:block;width:min(280px,100%);margin:1rem auto;border-radius:12px}@media (max-width: 640px){.open-play-page{padding-block:2.5rem 4rem}}
