@import url("https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;500;600;700;800;900&display=swap");

.ss-discount-panel {
  margin: 16px 0;
  padding: 0;
  background: #fff;
}

.ss-discount-panel h3 {
  margin: 0 0 12px;
}

.ss-discount-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.ss-discount-option {
  padding: 12px 8px;
  border: 1px solid #dce1e9;
  border-radius: 10px;
  background: #fff;
  color: #182335;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.ss-discount-option[aria-pressed="true"] {
  border-color: #ff2365;
  background: #fff2f7;
  color: #ad2153;
}

.ss-credits-button {
  display: block;
  width: 100%;
  margin-top: 15px;
  padding: 12px;
  border: 1px solid #f3bad0;
  border-radius: 10px;
  background: #fff2f7;
  color: #ad2153;
  font: inherit;
  cursor: pointer;
}

.ss-discount-option:disabled,
.ss-credits-button:disabled {
  opacity: .55;
  cursor: not-allowed;
}

.ss-discount-option:focus-visible,
.ss-credits-button:focus-visible {
  outline: 2px solid #ff2365;
  outline-offset: 3px;
}

.ss-credit-options {
  margin-top: 12px;
}

.ss-credit-options label {
  display: block;
}

[data-credit-message]:empty {
  display: none;
}

.ss-checkout-view {
  --ss-page-columns: minmax(0, 1.8fr) minmax(280px, 1fr);
  --ss-page-body-pad: 20px 0 32px;
  --ss-card-pad: 22px;
  --ss-card-title-size: 26px;
  --ss-card-title-case: none;
  --ss-actions-top: 16px;
  --ss-lines-margin: 12px 0;
  --ss-row-pad: 12px 14px;
  --ss-consent-bg: transparent;
  --ss-consent-border: 0;
  --ss-consent-pad: 0;
  --ss-consent-margin: 10px 0;
  --ss-qr-margin: 12px auto;
  --ss-qr-width: min(240px, 100%);
  --ss-aside-pad: 24px;
  --ss-aside-divider-margin: 16px 0;
}

.ss-checkout-header {
  padding-top: 104px;
}

.ss-checkout-header-inner {
  max-width: 1300px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(390px, 1fr);
  align-items: center;
  gap: 24px;
}

.ss-checkout-header h1 {
  margin: 0;
  color: #111820;
  font-size: clamp(27px, 2.7vw, 38px);
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: -1px;
}

.ss-checkout-subtitle {
  margin: 6px 0 0;
  color: #687481;
  font-size: 14px;
  line-height: 1.5;
}

.ss-glance-type {
  display: inline-block;
  margin-bottom: 14px;
  border: 1px solid #a5bf5b;
  border-radius: 5px;
  padding: 3px 7px;
  color: #d9ff65;
  font-size: 11px;
  font-weight: 850;
}

.ss-glance-schedules {
  display: grid;
  gap: 12px;
}

.ss-glance-court {
  display: grid;
  gap: 4px;
  color: #dce2e9;
  font-size: 13px;
  line-height: 1.45;
}

.ss-glance-court strong {
  font-size: 16px;
  color: #fff;
}

.ss-page-aside .ss-glance-duration {
  margin: 12px 0 0;
}

.ss-glance-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  padding-top: 14px;
  border-top: 1px solid #313b46;
  font-size: 18px;
  font-weight: 900;
}

.ss-glance-total strong {
  color: #d9ff65;
  font-size: 30px;
}

.ss-glance-status {
  margin-top: 18px;
  padding: 12px;
  border: 1px solid #92b581;
  border-radius: 10px;
  background: #b9e79a14;
  color: #e4ff98;
  font-size: 13px;
  font-weight: 800;
}

.ss-confirmation-pass {
  display: grid;
  grid-template-columns: minmax(0, 240px) minmax(0, 1fr);
  align-items: center;
  gap: 22px;
}

@media (max-width: 950px) {
  .ss-checkout-header {
    padding-top: 92px;
  }
  .ss-checkout-header-inner {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

@media (max-width: 660px) {
  .ss-checkout-view {
    --ss-page-body-pad: 16px 0 24px;
    --ss-card-pad: 18px;
    --ss-card-title-size: 24px;
    --ss-aside-pad: 20px;
  }
  .ss-checkout-header {
    padding-top: 84px;
  }
  .ss-checkout-header h1 {
    font-size: 27px;
  }
  .ss-confirmation-pass {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

.ss-auth-view {
  --ss-page-columns: minmax(0, 1fr);
  --ss-page-width: 740px;
  padding-top: 80px;
}

@media (max-width: 950px) {
  .ss-auth-view {
    padding-top: 68px;
  }
}

@media (max-width: 660px) {
  .ss-auth-view {
    padding-top: 64px;
  }
}

/*
 * South Smash CMS presentation bridge R1.
 * Values are supplied only from PlayMeu published /site settings.
 */

html[data-south-smash-cms="1"] body {
  font-family: var(--ss-cms-font-family, "Nunito Sans", "Segoe UI", Arial, sans-serif);
}

html[data-south-smash-cms="1"] .masthead.is-solid {
  background: var(--ss-cms-header-bg, #11131a) !important;
}

html[data-south-smash-cms="1"] .masthead.is-solid .desktop-nav a,
html[data-south-smash-cms="1"] .masthead.is-solid .brand-text,
html[data-south-smash-cms="1"] .masthead.is-solid .auth-control,
html[data-south-smash-cms="1"] .masthead.is-solid .logout-control,
html[data-south-smash-cms="1"] .mobile-menu {
  color: var(--ss-cms-header-text, #ffffff);
}

/* The solid header keeps its CMS text color until a link is hovered or keyboard-focused. */
html[data-south-smash-cms="1"] .masthead.is-solid .desktop-nav a:hover,
html[data-south-smash-cms="1"] .masthead.is-solid .desktop-nav a:focus-visible {
  color: var(--pink);
}

/* Only the Sign Up button uses a persistent CMS accent background. */
html[data-south-smash-cms="1"] .signup-control {
  background: var(--ss-cms-header-button, #ff2f70);
  color: var(--ss-cms-header-button-text, #ffffff);
}

/* Desktop photo remains absolute (inset: 0) in the original hero stack.
 * Only the mobile art needs relative positioning for its CMS overlay. */
html[data-south-smash-cms="1"] .hero-mobile-art {
  position: relative;
}

html[data-south-smash-cms="1"] .hero-desktop-photo::after,
html[data-south-smash-cms="1"] .hero-mobile-art::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: rgba(0, 0, 0, var(--ss-cms-hero-overlay, 0));
}

html[data-south-smash-cms="1"] .hero-desktop-title,
html[data-south-smash-cms="1"] .hero-desktop-title span,
html[data-south-smash-cms="1"] .hero-mobile-title,
html[data-south-smash-cms="1"] .hero-mobile-title span {
  color: var(--ss-cms-hero-title, inherit);
}

html[data-south-smash-cms="1"] .hero-desktop-subline,
html[data-south-smash-cms="1"] .hero-mobile-subline {
  color: var(--ss-cms-hero-tagline, inherit);
}

html[data-south-smash-cms="1"] .hero-desktop-kicker,
html[data-south-smash-cms="1"] .hero-mobile-kicker {
  color: var(--ss-cms-hero-eyebrow, inherit);
}

.ss-about-cms-image {
  display: block;
  width: 100%;
  max-height: 290px;
  object-fit: cover;
  border-radius: 14px;
  margin: 18px 0 2px;
  border: 1px solid rgba(0, 0, 0, .08);
}

/* South Smash Gallery R1 — Option A hero slider; same markup for fallback and CMS. */
#gallery.gallery-section{
  padding:56px 0 62px;
  color:#fff;
  background:linear-gradient(145deg,#09090d 0%,#140c13 62%,#2a0820 100%) !important;
}
#gallery .gallery-hero{
  display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,.85fr);
  grid-template-rows:auto auto;column-gap:clamp(26px,4.2vw,66px);
  align-items:center;max-width:1340px;min-width:0;
}
#gallery .gallery-heading{
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  grid-column:2;grid-row:1 / span 2;
  min-width:0;gap:18px;min-height:0;padding:0;margin:0;text-align:left;
}
#gallery .gallery-heading .gallery-eyebrow{
  margin:0;color:#d9ff65;font-size:12px;font-weight:900;letter-spacing:.11em;
  text-transform:uppercase;
}
#gallery .gallery-eyebrow i{
  display:inline-block;width:35px;height:2px;margin:0 0 3px 10px;background:currentColor;
}
#gallery .gallery-heading h2{
  margin:0;color:#fff;font-size:clamp(40px,4.6vw,66px);line-height:1.05;font-weight:950;
  letter-spacing:-.055em;text-transform:none;
}
#gallery .gallery-heading h2 em{color:#ff2365;font-style:normal}
#gallery .gallery-heading .gallery-description{
  display:block;max-width:38ch;color:#eae0e7;font-size:clamp(14px,1.2vw,17px);font-weight:550;
  line-height:1.7;text-transform:none;letter-spacing:normal;
}

#gallery .gallery-view-all{
  display:inline-flex;align-items:center;justify-content:center;gap:14px;
  min-height:48px;max-width:100%;margin-top:7px;padding:12px 23px;
  border:1px solid #ff2365;border-radius:10px;
  background:#ff2365;color:#fff;font-weight:850;font-size:14px;
  line-height:1.3;letter-spacing:.01em;text-align:center;cursor:pointer;
}
#gallery .gallery-view-all span{color:inherit;font-size:20px;font-weight:750;line-height:1}
#gallery .gallery-view-all:hover{background:#e51b58;border-color:#e51b58}
#gallery .gallery-view-all:focus-visible{outline:3px solid #d9ff65;outline-offset:3px}
#gallery .gallery-slider{
  position:relative;grid-column:1;grid-row:1;
  width:100%;min-width:0;height:clamp(370px,37vw,480px);
  overflow:hidden;border:1px solid #543047;border-radius:16px;background:#151017;
  box-shadow:0 18px 42px #0005;
}
#gallery .gallery-strip-shell{
  display:block;position:relative;width:100%;height:100%;max-width:100%;overflow-x:auto;
  overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;
  -webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
}
#gallery .gallery-strip-shell::-webkit-scrollbar{display:none}
#gallery #galleryGrid{
  display:flex;width:100%;min-width:100%;height:100%;min-height:0;gap:0;padding:0;
}
#gallery .gallery-grid>.gallery-tile{
  display:block;position:relative;flex:0 0 100%;width:100%;min-width:100%;max-width:100%;
  height:100%;min-height:0;margin:0;padding:0;border:0;border-radius:0;
  background:#100d13;overflow:hidden;scroll-snap-align:start;
  text-align:left;box-shadow:none;cursor:zoom-in;
}
#gallery .gallery-tile img{
  display:block;width:100%;height:100%;object-fit:cover;filter:brightness(.92);
  transition:transform .28s ease,filter .28s ease;
}
#gallery .gallery-tile:hover img,#gallery .gallery-tile:focus-visible img{
  transform:scale(1.025);filter:brightness(1);
}
#gallery .gallery-tile::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,transparent 37%,rgba(0,0,0,.18) 60%,rgba(0,0,0,.88) 100%);
  opacity:1;
}
#gallery .gallery-tile .tile-label{
  display:block;position:absolute;z-index:2;left:clamp(18px,4vw,55px);
  bottom:clamp(22px,4.5vw,52px);right:60px;color:#fff;
  font-size:clamp(28px,4vw,59px);font-weight:950;line-height:1;
  letter-spacing:-.035em;text-transform:uppercase;text-shadow:0 3px 20px #000a;
  opacity:1;transform:none;pointer-events:none;
}
#gallery .gallery-tile .tile-label small{
  display:block;margin:0 0 10px;color:#d9ff65;font-size:clamp(11px,1.3vw,16px);
  letter-spacing:.14em;font-weight:900;line-height:1.2;
}
#gallery .gallery-tile:focus-visible{outline:3px solid #d9ff65;outline-offset:-5px}
#gallery .gallery-slide-arrow{
  display:grid;place-items:center;position:absolute;z-index:3;top:50%;transform:translateY(-50%);
  width:48px;height:56px;padding:0;border:1px solid #fff5;border-radius:13px;
  color:#fff;background:#09090dcc;font-size:42px;line-height:1;cursor:pointer;
}
#gallery .gallery-slide-prev{left:14px}
#gallery .gallery-slide-next{right:14px}
#gallery .gallery-slide-arrow:hover{background:#ff2365;border-color:#ff2365}
#gallery .gallery-slide-arrow:disabled{opacity:.35;cursor:default}
#gallery .gallery-slide-arrow:focus-visible,#gallery .gallery-slide-dot:focus-visible{
  outline:3px solid #d9ff65;outline-offset:3px;
}
#gallery .gallery-slider-meta{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  grid-column:1;grid-row:2;min-width:0;min-height:38px;padding:13px 2px 0;
}
#gallery .gallery-slide-count{
  color:#d9ff65;font-size:13px;font-weight:900;letter-spacing:.08em;
  font-variant-numeric:tabular-nums;
}
#gallery .gallery-slide-dots{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap}
#gallery .gallery-slide-dot{
  display:block;width:11px;height:11px;padding:0;border:1px solid #c1a6b4;
  border-radius:99px;background:#6e495c;cursor:pointer;transition:width .2s,background .2s;
}
#gallery .gallery-slide-dot[aria-current="true"]{width:28px;border-color:#ff2365;background:#ff2365}
#gallery .gallery-swipe-hint{
  display:block;color:#e6cfdb;font-size:12px;font-weight:650;text-align:right;
}
/* Reuse the existing fullscreen gallery modal, navigation and swipe handlers. */
.gallery-viewer{display:grid;grid-template-columns:45px minmax(0,1fr) 45px;align-items:center;gap:10px;min-width:0}
.gallery-viewer .lightbox-image{min-width:0;max-height:65vh}
.gallery-viewer-arrow{
  display:grid;place-items:center;min-width:0;min-height:48px;padding:0;
  border:1px solid #67515e;border-radius:50%;color:#fff;background:#281b2b;
  font-size:28px;line-height:1;
}
.gallery-viewer-arrow:hover{border-color:#ff2365;background:#4b1730}
.gallery-viewer-arrow:focus-visible{outline:3px solid #d9ff65;outline-offset:2px}
.ss-cms-gallery-tile{margin:0}
.ss-cms-gallery-tile .tile-label{pointer-events:none}
@media(max-width:820px){
  #gallery.gallery-section{padding:42px 0 52px}
  #gallery .gallery-hero{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto}
  #gallery .gallery-slider{grid-column:1;grid-row:1;height:clamp(300px,60vw,430px);border-radius:13px}
  #gallery .gallery-slider-meta{grid-column:1;grid-row:2;gap:9px;flex-wrap:wrap;padding-top:12px}
  #gallery .gallery-heading{
    grid-column:1;grid-row:3;gap:12px;align-items:flex-start;
    padding:23px 0 0;
  }
  #gallery .gallery-heading h2{font-size:clamp(34px,7.8vw,49px)}
  #gallery .gallery-heading .gallery-description{font-size:14px}
  #gallery .gallery-view-all{margin-top:5px}
  #gallery .gallery-slide-dots{order:3;width:100%;margin-top:3px}
  #gallery .gallery-swipe-hint{font-size:11px}
}
@media(max-width:480px){
  #gallery .gallery-slider{height:clamp(285px,82vw,360px)}
  #gallery .gallery-tile .tile-label{left:20px;right:25px;bottom:25px;font-size:clamp(26px,8vw,37px)}
  #gallery .gallery-slide-arrow{width:34px;height:44px;font-size:29px;border-radius:9px}
  #gallery .gallery-slide-prev{left:8px}
  #gallery .gallery-slide-next{right:8px}
  #gallery .gallery-heading h2{font-size:clamp(34px,10vw,43px)}
  #gallery .gallery-heading .gallery-description{font-size:13px}
  #gallery .gallery-view-all{width:100%;min-height:46px}
  #gallery .gallery-swipe-hint{font-size:10px}
  .gallery-viewer{grid-template-columns:33px minmax(0,1fr) 33px;gap:4px}
  .gallery-viewer-arrow{min-height:40px;font-size:24px}
}
@media(prefers-reduced-motion:reduce){
  #gallery .gallery-tile img,#gallery .gallery-slide-dot{transition:none}
}

@media (max-width: 680px) {
  .ss-about-cms-image {
    max-height: 220px;
    border-radius: 11px;
  }
}
