/* Shared seasonal presentation. All rules are scoped to the selected salon theme. */
body.sbp-season-winter {
  --winter-blue: #0b2f59;
  --winter-blue-deep: #061f3d;
  --winter-ice: #eef8ff;
  --winter-line: rgba(155, 195, 226, .52);
  --winter-shadow: 0 24px 65px rgba(10, 54, 91, .17);
  background: linear-gradient(180deg, #c9e3f7 0, #f8fcff 42%, #e8f4fc 100%);
}

.sbp-season-winter [hidden] { display: none !important; }

.sbp-season-winter .sbp-season-snowfall {
  position: fixed;
  inset: 0;
  z-index: 80;
  overflow: hidden;
  pointer-events: none;
}

.sbp-season-winter .sbp-season-snowflake {
  --flake-size: 10px;
  position: absolute;
  top: -28px;
  width: var(--flake-size);
  height: var(--flake-size);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,.96) 0 38%, rgba(218,240,255,.48) 43% 58%, transparent 63%);
  box-shadow: 0 0 9px rgba(218,240,255,.72);
  animation: sbp-season-fall var(--fall-time) linear infinite, sbp-season-drift var(--drift-time) ease-in-out infinite alternate;
  animation-delay: var(--fall-delay), var(--drift-delay);
  opacity: var(--flake-opacity);
}

@keyframes sbp-season-fall { to { transform: translate3d(0, calc(100vh + 60px), 0) rotate(220deg); } }
@keyframes sbp-season-drift { from { margin-left: -18px; } to { margin-left: 24px; } }

.sbp-season-winter .sbp-season-snow-card { position: relative; }
.sbp-season-winter .sbp-season-snow-card::before {
  content: "";
  position: absolute;
  z-index: 3;
  left: -1%;
  right: -1%;
  top: -42px;
  height: 74px;
  background: url("/assets/images/seasonal/matchpoint/winter-snow-cap.png") center bottom / 100% auto no-repeat;
  filter: drop-shadow(0 6px 7px rgba(37, 85, 123, .13));
  pointer-events: none;
}

/* Public profile */
.sbp-season-profile .wrap { width:100%; max-width:none; padding:0; }
.sbp-season-profile .topbar {
  position: relative;
  z-index: 8;
  width:min(1400px,calc(100% - 32px));
  margin: 15px auto -76px;
  min-height: 60px;
  padding: 8px 11px 8px 20px;
  border: 1px solid rgba(255,255,255,.78);
  border-radius: 20px;
  background: linear-gradient(100deg, rgba(231,244,255,.92), rgba(255,255,255,.75));
  box-shadow: 0 14px 42px rgba(3,27,57,.24), inset 0 1px 0 #fff;
  backdrop-filter: blur(18px) saturate(1.15);
}
.sbp-season-profile .brand { color: #092c52; }
.sbp-season-profile .brandDot { background: #1676f3; box-shadow: 0 0 16px rgba(22,118,243,.62); }
.sbp-season-profile .btnPrimary { border-color: #1169dd; background: linear-gradient(135deg,#2683ff,#075aca); box-shadow: 0 10px 24px rgba(8,91,205,.25); }
.sbp-season-profile .heroShell {
  min-height: 640px;
  overflow: hidden;
  border: 0;
  border-radius: 0 0 34px 34px;
  background: #071c35 url("/assets/images/seasonal/matchpoint/winter-hero.png") center 48% / cover no-repeat;
  box-shadow: 0 30px 75px rgba(3,31,61,.27);
}
.sbp-season-profile .heroShell::after {
  content: "";
  position: absolute;
  z-index: 4;
  left: -2%; right: -2%; bottom: -9px;
  height: 105px;
  background: url("/assets/images/seasonal/matchpoint/winter-snow-cap.png") center bottom / 112% auto no-repeat;
  pointer-events: none;
}
.sbp-season-profile .heroCover { position: absolute; inset: 0; height: 100%; opacity: .06; mix-blend-mode: luminosity; }
.sbp-season-profile .heroCover img { width: 100%; height: 100%; object-fit: cover; }
.sbp-season-profile .heroInfoWrap { position: relative; z-index: 5; min-height: 640px; padding: 116px clamp(32px,4.6vw,76px) 78px; background: linear-gradient(90deg,rgba(2,19,43,.7),rgba(3,33,62,.3) 46%,rgba(3,29,56,.04) 72%,rgba(2,20,42,.18)); }
.sbp-season-profile .heroInfo { align-items:center; grid-template-columns:minmax(0,1fr) minmax(280px,340px); gap:clamp(30px,4.5vw,72px); padding:0; border:0; border-radius:0; background:transparent !important; box-shadow:none; backdrop-filter:none; }
.sbp-season-profile .heroInfo > div:first-child { align-self:center; display:grid; grid-template-columns:clamp(130px,13vw,190px) minmax(0,1fr); column-gap:clamp(20px,2.5vw,38px); align-items:center; max-width:850px; }
.sbp-season-profile .heroInfo > div:first-child::before { content:""; grid-column:1; grid-row:1 / span 5; width:100%; aspect-ratio:1.2; background:url("/uploads/salons/214/sports-v1/match-point-logo.png") center / 168% auto no-repeat; filter:drop-shadow(0 10px 18px rgba(0,0,0,.38)); }
.sbp-season-profile .heroInfo > div:first-child > .heroTitle,
.sbp-season-profile .heroInfo > div:first-child > .heroDesc,
.sbp-season-profile .heroInfo > div:first-child > .heroMeta,
.sbp-season-profile .heroInfo > div:first-child > .heroCtas { grid-column:2; }
.sbp-season-profile .heroInfo .eyebrow { color: #8fdcff; letter-spacing: .16em; }
.sbp-season-profile .heroTitle { max-width:620px; margin:0 0 12px; color:#fff; font-size:clamp(48px,4.1vw,68px); line-height:.94; text-shadow:0 15px 44px rgba(0,0,0,.5); }
.sbp-season-profile .heroTitle::before { content:"CLUBUL DE TENIS"; display:block; margin-bottom:9px; color:#8fdcff; font:800 12px/1.1 "Trebuchet MS",sans-serif; letter-spacing:.16em; text-shadow:none; }
.sbp-season-profile .heroTitle span { display:block; }
.sbp-season-profile .heroTitle span:last-child { margin-top:5px; font-size:.58em; line-height:1; }
.sbp-season-profile .heroDesc, .sbp-season-profile .heroDesc .richPublicText, .sbp-season-profile .heroDesc p { max-width:600px; color:rgba(244,250,255,.96); font-size:16px; line-height:1.45; }
.sbp-season-profile .heroDesc strong { color:#fff; }
.sbp-season-profile .heroDesc .richPublicText { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.sbp-season-profile .heroMeta { margin-top:14px; }
.sbp-season-profile .heroMeta .chip { border-color:rgba(216,238,255,.25); background:rgba(9,44,77,.48); color:#fff; backdrop-filter:blur(8px); }
.sbp-season-profile .heroCtas { display:flex; flex-wrap:nowrap; gap:10px; margin-top:14px; }
.sbp-season-profile .heroCtas .btn { min-height: 50px; border-radius: 13px; white-space:nowrap; }
.sbp-season-profile .infoPanel {
  position: relative;
  width:100%;
  max-width:340px;
  justify-self:end;
  margin-top:18px;
  border: 1px solid rgba(220,239,255,.34);
  border-radius: 25px;
  background: linear-gradient(145deg,rgba(8,38,72,.84),rgba(51,83,115,.52));
  box-shadow: 0 30px 76px rgba(0,14,34,.48), inset 0 1px 0 rgba(255,255,255,.2);
  color: #fff;
  backdrop-filter: blur(14px) saturate(1.1);
}
.sbp-season-profile .infoPanel::before { content:""; position:absolute; left:-4%; right:-4%; top:-45px; height:82px; background:url("/assets/images/seasonal/matchpoint/winter-snow-cap.png") center bottom/100% auto no-repeat; pointer-events:none; }
.sbp-season-profile .infoPanel .panelTitle, .sbp-season-profile .infoPanel .panelValue { color:#fff; }
.sbp-season-profile .infoPanel .panelLabel { color:#a9d9f7; }
.sbp-season-profile .infoPanel .panelCard { border-color:rgba(255,255,255,.16); background:rgba(255,255,255,.07); }
.sbp-season-profile .infoPanel { padding:16px; }
.sbp-season-profile .infoPanel .panelGrid { gap:7px; }
.sbp-season-profile .infoPanel .panelCard { padding:8px 11px; }
.sbp-season-profile .infoPanel .panelActions a:not([target]) { display:none; }
.sbp-season-profile .infoPanel .panelActions { margin-top:12px; }
.sbp-season-profile .infoPanel .panelActions .btn { width:100%; }
.sbp-season-profile .mainGrid {
  width:min(1400px,calc(100% - 32px));
  max-width:1400px;
  grid-template-columns:minmax(0,1fr);
  margin:42px auto 0;
}
.sbp-season-profile .card, .sbp-season-profile .sbp-sports-profile {
  border: 1px solid var(--winter-line);
  border-radius: 28px;
  background: linear-gradient(145deg,rgba(255,255,255,.98),rgba(239,248,255,.96));
  box-shadow: var(--winter-shadow);
}
.sbp-season-profile .gallerySection { overflow: hidden; }
.sbp-season-winter.sbp-season-profile .gallery > * { flex-basis:calc((100% - 24px)/3); }
.sbp-season-profile .foot { display: none; }
.sbp-season-profile .sbp-season-footer {
  width:100vw;
  max-width:none;
  margin-left:calc(50% - 50vw);
}

/* Booking page */
.sbp-season-booking .sport-board__hero {
  min-height: 560px;
  background: #071c35 url("/assets/images/seasonal/matchpoint/winter-hero.png") center 48% / cover no-repeat;
}
.sbp-season-booking .sport-board__hero-overlay { background: linear-gradient(90deg,rgba(2,19,43,.94),rgba(3,33,62,.72) 42%,rgba(3,29,56,.18) 72%,rgba(2,20,42,.44)); }
.sbp-season-booking .sport-board__hero::after { content:""; position:absolute; z-index:1; left:-2%; right:-2%; bottom:-8px; height:106px; background:url("/assets/images/seasonal/matchpoint/winter-snow-cap.png") center bottom/112% auto no-repeat; pointer-events:none; }
.sbp-season-booking .sport-board__hero-inner { min-height: 560px; align-items: end; padding: 105px 0 105px; }
.sbp-season-booking .sport-board__brand { color:#92ddff; }
.sbp-season-booking .sport-board__intro h1 { color:#fff; font-size:clamp(55px,6vw,90px); text-shadow:0 15px 44px rgba(0,0,0,.5); }
.sbp-season-booking .sport-board__intro p { color:rgba(244,250,255,.92); }
.sbp-season-booking .sport-board__shell,
.sbp-season-booking .sport-board__week,
.sbp-season-booking .sport-board__gallery {
  border-color: var(--winter-line);
  background: linear-gradient(145deg,rgba(255,255,255,.98),rgba(239,248,255,.96));
  box-shadow: var(--winter-shadow);
}
.sbp-season-booking .sport-board__shell { margin-top:-48px; }
.sbp-season-booking .sport-board__shell::before,
.sbp-season-booking .sport-board__gallery::before { content:""; position:absolute; z-index:3; left:-1%; right:-1%; top:-44px; height:76px; background:url("/assets/images/seasonal/matchpoint/winter-snow-cap.png") center bottom/100% auto no-repeat; pointer-events:none; }
.sbp-season-booking .sport-board__gallery { position:relative; overflow:hidden; }
.sbp-season-booking .sport-board__table-wrap { background:#fff; box-shadow:inset 0 1px 0 #fff,0 14px 38px rgba(20,70,107,.08); }
.sbp-season-booking .sport-board__durations button.active,
.sbp-season-booking .sport-board__cta { background:linear-gradient(135deg,#0b7564,#07594e); }

/* Shared gallery carousel */
.sbp-season-winter .gallery,
.sbp-season-winter .sport-board__gallery-grid {
  display:flex !important;
  gap:12px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  scroll-behavior:smooth;
  padding:3px 1px 8px;
}
.sbp-season-winter .gallery::-webkit-scrollbar,
.sbp-season-winter .sport-board__gallery-grid::-webkit-scrollbar { display:none; }
.sbp-season-winter .gallery > *,
.sbp-season-winter .sport-board__gallery-grid > * { flex:0 0 calc((100% - 60px)/6); scroll-snap-align:start; border-radius:17px; overflow:hidden; box-shadow:0 12px 28px rgba(19,59,94,.16); }
.sbp-season-winter .gallery img,
.sbp-season-winter .sport-board__gallery-grid img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.sbp-season-gallery-controls { display:flex; align-items:center; justify-content:flex-end; gap:9px; margin:0 0 13px; }
.sbp-season-gallery-controls button { width:44px; height:44px; border:1px solid rgba(70,126,173,.28); border-radius:50%; background:rgba(255,255,255,.92); color:#0a3a61; font-size:25px; cursor:pointer; box-shadow:0 7px 18px rgba(20,65,105,.12); }
.sbp-season-gallery-controls output { min-width:58px; text-align:center; color:#214d70; font-size:12px; font-weight:900; }

.sbp-season-footer {
  position:relative;
  width:100%;
  height:280px;
  min-height:280px;
  margin-top:42px;
  overflow:hidden;
  background:#06274c url("/assets/images/seasonal/matchpoint/winter-footer.png") center bottom / cover no-repeat;
}
.sbp-season-footer span { display:none; }

@media (max-width:1100px) {
  .sbp-season-winter .gallery > *, .sbp-season-winter .sport-board__gallery-grid > * { flex-basis:calc((100% - 24px)/3); }
  .sbp-season-profile .heroInfo { grid-template-columns:1fr; }
  .sbp-season-profile .infoPanel { max-width:340px; }
  .sbp-season-profile .heroInfo > div:first-child { grid-template-columns:130px minmax(0,1fr); }
}

@media (max-width:720px) {
  html:has(.sbp-season-winter), body.sbp-season-winter { max-width:100%; overflow-x:hidden; }
  .sbp-season-profile .wrap { width:100%; }
  .sbp-season-profile .topbar { width:calc(100% - 20px); margin:10px auto -67px; padding:7px 9px 7px 13px; }
  .sbp-season-profile .topActions .btnGhost { display:none; }
  .sbp-season-profile .heroShell { min-height:auto; border-radius:0 0 24px 24px; background-position:59% center; }
  .sbp-season-profile .heroInfoWrap { min-height:auto; padding:96px 14px 112px; }
  .sbp-season-profile .heroInfo, .sbp-season-profile .heroInfo > *, .sbp-season-profile .infoPanel { width:100%; min-width:0; max-width:100%; }
  .sbp-season-profile .heroInfoWrap, .sbp-season-profile .heroInfo, .sbp-season-profile .heroInfo > *, .sbp-season-profile .infoPanel, .sbp-season-profile .heroDesc, .sbp-season-profile .richPublicText { box-sizing:border-box; }
  .sbp-season-profile .heroTitle { max-width:100%; font-size:clamp(34px,10.5vw,46px); overflow-wrap:anywhere; }
  .sbp-season-profile .heroTitle span:last-child { font-size:.64em; }
  .sbp-season-profile .heroDesc, .sbp-season-profile .heroDesc .richPublicText, .sbp-season-profile .heroDesc p { max-width:100%; font-size:14px; overflow-wrap:anywhere; }
  .sbp-season-profile .heroCtas { display:grid; grid-template-columns:1fr 1fr; }
  .sbp-season-profile .heroCtas .btn:first-child { grid-column:1/-1; }
  .sbp-season-profile .infoPanel { width:min(100%,340px); max-width:340px; justify-self:center; margin-top:18px; }
  .sbp-season-profile .infoPanel .panelGrid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sbp-season-profile .mainGrid { width:calc(100% - 20px); margin:28px auto 0; }
  .sbp-season-winter.sbp-season-profile .gallery > * { flex-basis:100%; }
  .sbp-season-booking .sport-board__hero { min-height:410px; background-position:59% center; }
  .sbp-season-booking .sport-board__hero-inner { min-height:410px; padding:72px 0 95px; }
  .sbp-season-booking .sport-board__identity, .sbp-season-booking .sport-board__identity > *, .sbp-season-booking .sport-board__intro { min-width:0; max-width:100%; }
  .sbp-season-booking .sport-board__identity strong { display:block; overflow-wrap:anywhere; }
  .sbp-season-booking .sport-board__intro h1 { max-width:350px; font-size:42px; }
  .sbp-season-booking .sport-board__shell { margin-top:-35px; }
  .sbp-season-winter .gallery > *, .sbp-season-winter .sport-board__gallery-grid > * { flex-basis:100%; }
  .sbp-season-footer { height:200px; min-height:200px; background-position:68% bottom; }
  .sbp-season-footer span { bottom:18px; font-size:11px; }
  .sbp-season-winter .sbp-season-snow-card::before { top:-31px; height:58px; }
}

@media (max-width:520px) {
  .sbp-season-profile .heroInfo > div:first-child { grid-template-columns:86px minmax(0,1fr); column-gap:14px; }
  .sbp-season-profile .heroInfo > div:first-child::before { align-self:start; margin-top:5px; }
  .sbp-season-profile .heroTitle { font-size:clamp(30px,9.5vw,40px); }
  .sbp-season-profile .heroDesc, .sbp-season-profile .heroDesc .richPublicText, .sbp-season-profile .heroDesc p { font-size:13px; line-height:1.42; }
}

@media (prefers-reduced-motion:reduce) {
  .sbp-season-winter .sbp-season-snowflake { display:none; }
  .sbp-season-winter .gallery, .sbp-season-winter .sport-board__gallery-grid { scroll-behavior:auto; }
}
