/* ============================================================
   Serena Tennis — Glassmorphism UI system  (serena-ui.css)
   ------------------------------------------------------------
   افزایشی و بی‌خطر: چیزی از style.css را بازنویسی نمی‌کند.
   کلاس‌های عمومی با پیشوند .sr- و اسکوپِ body.sr-page.
   رِستایل جداول برنامه (booking/coach) در انتهای فایل.
   سازگار با تم روز/شب موجود ([data-theme="dark"]).
   ============================================================ */

/* ---------------- Design tokens ---------------- */
:root{
  --sr-blue:   #2563eb;
  --sr-blue-2: #3b82f6;
  --sr-sky:    #38bdf8;
  --sr-green:  #22c55e;
  --sr-green-2:#16a34a;
  --sr-lime:   #a3e635;
  --sr-navy:   #0b2740;

  --sr-brand:      linear-gradient(135deg, #2563eb 0%, #1d4ed8 45%, #22c55e 100%);
  --sr-brand-soft: linear-gradient(135deg, rgba(37,99,235,.16), rgba(34,197,94,.16));
  --sr-brand-text: linear-gradient(90deg, #2563eb 0%, #22c55e 100%);

  /* Light theme (default) */
  --sr-bg-1: #eaf1ff;
  --sr-bg-2: #e9fbf1;
  --sr-bg-3: #f6f8fd;
  --sr-text: #0b2740;
  --sr-muted:#51617a;
  --sr-surface: rgba(255,255,255,.62);
  --sr-surface-2: rgba(255,255,255,.78);
  --sr-border: rgba(11,39,64,.10);
  --sr-border-strong: rgba(11,39,64,.16);
  --sr-hi: rgba(255,255,255,.75);
  --sr-shadow: 0 18px 50px rgba(11,39,64,.14);
  --sr-shadow-sm: 0 8px 24px rgba(11,39,64,.10);
  --sr-glow-blue: rgba(37,99,235,.35);
  --sr-glow-green: rgba(34,197,94,.32);
  --sr-radius: 22px;
  --sr-radius-sm: 14px;
  --sr-blur: 16px;
}

[data-theme="dark"]{
  --sr-bg-1: #0a1a2f;
  --sr-bg-2: #08131f;
  --sr-bg-3: #070d18;
  --sr-text: #e8eef8;
  --sr-muted:#9fb2c9;
  --sr-surface: rgba(255,255,255,.055);
  --sr-surface-2: rgba(255,255,255,.09);
  --sr-border: rgba(255,255,255,.12);
  --sr-border-strong: rgba(255,255,255,.20);
  --sr-hi: rgba(255,255,255,.16);
  --sr-shadow: 0 24px 60px rgba(0,0,0,.55);
  --sr-shadow-sm: 0 10px 30px rgba(0,0,0,.45);
  --sr-glow-blue: rgba(59,130,246,.45);
  --sr-glow-green: rgba(34,197,94,.40);
}

/* ---------------- Page canvas ---------------- */
body.sr-page{
  color: var(--sr-text);
  background: var(--sr-bg-3);
  min-height: 100vh;
  overflow-x: hidden;
  position: relative;
}
/* پس‌زمینه روی یک لایه‌ی fixed جدا → هنگام اسکرول repaint نمی‌شود (اسکرول روان‌تر) */
body.sr-page::before{
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(60% 55% at 12% -8%, var(--sr-glow-blue) 0%, transparent 60%),
    radial-gradient(55% 50% at 100% 0%, var(--sr-glow-green) 0%, transparent 55%),
    radial-gradient(70% 60% at 50% 120%, rgba(56,189,248,.20) 0%, transparent 60%),
    linear-gradient(180deg, var(--sr-bg-1), var(--sr-bg-3) 55%, var(--sr-bg-2));
}
body.sr-page::selection{ background: rgba(37,99,235,.25); }
.sr-page .container-sr{ width:min(1180px, 92vw); margin-inline:auto; }
.sr-page section{ position: relative; }

/* ست‌کردن فونت مشترک با سایت فعلی */
.sr-page, .sr-page *{ font-family: sahel, Vazirmatn, system-ui, -apple-system, "Segoe UI", Arial, sans-serif; }

/* ---------------- Glass primitives ---------------- */
.sr-glass{
  background: var(--sr-surface);
  -webkit-backdrop-filter: blur(var(--sr-blur)) saturate(140%);
  backdrop-filter: blur(var(--sr-blur)) saturate(140%);
  border: 1px solid var(--sr-border);
  box-shadow: var(--sr-shadow), inset 0 1px 0 var(--sr-hi);
  border-radius: var(--sr-radius);
}
.sr-card{
  background: var(--sr-surface);
  -webkit-backdrop-filter: blur(var(--sr-blur)) saturate(140%);
  backdrop-filter: blur(var(--sr-blur)) saturate(140%);
  border: 1px solid var(--sr-border);
  border-radius: var(--sr-radius);
  box-shadow: var(--sr-shadow-sm), inset 0 1px 0 var(--sr-hi);
  padding: clamp(1.1rem, 2.4vw, 1.6rem);
  transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s, border-color .35s;
}
.sr-card.is-hover:hover,
.sr-card.sr-lift:hover{
  transform: translateY(-6px);
  box-shadow: var(--sr-shadow), inset 0 1px 0 var(--sr-hi);
  border-color: var(--sr-border-strong);
}

/* گرادیان حاشیه‌ی شیشه‌ای برای کارت‌های شاخص */
.sr-card--ring{ position: relative; }
.sr-card--ring::before{
  content:""; position:absolute; inset:0; padding:1px; border-radius:inherit;
  background: linear-gradient(135deg, rgba(37,99,235,.55), rgba(34,197,94,.5) 60%, transparent);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude; pointer-events:none;
}

/* ---------------- Typography ---------------- */
.sr-eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-weight:800; font-size:.86rem; letter-spacing:.4px;
  color: var(--sr-blue); background: var(--sr-brand-soft);
  border:1px solid var(--sr-border); border-radius:999px;
  padding:.4rem .9rem;
}
[data-theme="dark"] .sr-eyebrow{ color:#bfe3ff; }
.sr-title{
  font-weight:900; line-height:1.18; letter-spacing:-.5px;
  font-size: clamp(1.7rem, 4.6vw, 3.2rem); margin:0;
}
.sr-title .grad, .sr-grad-text{
  background: var(--sr-brand-text); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.sr-sub{ color: var(--sr-muted); font-size: clamp(1rem, 1.4vw, 1.16rem); line-height:1.9; }
.sr-section-head{ text-align:center; max-width:720px; margin-inline:auto; margin-bottom: clamp(1.6rem, 4vw, 2.6rem); }

/* ---------------- Buttons ---------------- */
.sr-btn{
  --_bg: var(--sr-surface-2);
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-weight:800; font-size:1rem; line-height:1;
  padding:.9rem 1.5rem; border-radius:999px; border:1px solid var(--sr-border);
  color: var(--sr-text); background: var(--_bg); cursor:pointer; text-decoration:none;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  transition: transform .15s ease, box-shadow .25s ease, filter .2s ease;
}
.sr-btn:hover{ transform: translateY(-2px); box-shadow: var(--sr-shadow-sm); }
.sr-btn:active{ transform: translateY(0); }
.sr-btn--primary{
  color:#fff; border-color: transparent;
  background: var(--sr-brand);
  box-shadow: 0 12px 26px rgba(37,99,235,.35);
}
.sr-btn--primary:hover{ filter: brightness(1.06); box-shadow: 0 16px 34px rgba(37,99,235,.45); }
.sr-btn--ghost{ background: transparent; }
.sr-btn--lg{ padding:1.05rem 1.9rem; font-size:1.08rem; }
.sr-btn--block{ width:100%; }
.sr-btn--wa{ color:#fff; border-color:transparent; background: linear-gradient(135deg,#22c55e,#16a34a); box-shadow:0 12px 26px rgba(34,197,94,.32); }


/* ---------------- Public navbar ---------------- */
.sr-nav{
  position: sticky; top:0; z-index:1030;
  transition: background .3s, box-shadow .3s, border-color .3s;
}
.sr-nav__inner{
  display:flex; align-items:center; gap:1rem;
  padding:.7rem clamp(.9rem, 3vw, 1.4rem); margin:.6rem auto 0; width:min(1180px,94vw);
  border-radius: 999px;
  background: var(--sr-surface);
  -webkit-backdrop-filter: blur(14px) saturate(150%); backdrop-filter: blur(14px) saturate(150%);
  border:1px solid var(--sr-border);
  box-shadow: var(--sr-shadow-sm), inset 0 1px 0 var(--sr-hi);
}
.sr-nav.is-stuck .sr-nav__inner{ box-shadow: var(--sr-shadow); }
.sr-brand{ display:inline-flex; align-items:center; gap:.55rem; text-decoration:none; font-weight:900; color:var(--sr-text); white-space:nowrap; }
.sr-brand__logo{ width:38px; height:38px; flex:0 0 auto; filter: drop-shadow(0 4px 10px rgba(37,99,235,.35)); }
.sr-brand__name{ font-size:1.18rem; }
.sr-brand__name .grad{ background: var(--sr-brand-text); -webkit-background-clip:text; background-clip:text; color:transparent; }
.sr-nav__links{ display:flex; align-items:center; gap:.15rem; margin-inline-start:auto; }
.sr-nav__links a{
  color: var(--sr-text); text-decoration:none; font-weight:700; font-size:.98rem;
  padding:.5rem .85rem; border-radius:999px; opacity:.86; transition:.2s;
}
.sr-nav__links a:hover{ opacity:1; background: var(--sr-brand-soft); }
.sr-nav__links a.is-active{ opacity:1; color:var(--sr-blue); background: var(--sr-brand-soft); }
.sr-nav__cta{ display:flex; align-items:center; gap:.5rem; }
.sr-nav__toggle{ display:none; }

/* Mobile drawer */
.sr-nav__burger{
  display:none; width:44px; height:44px; border-radius:14px; border:1px solid var(--sr-border);
  background: var(--sr-surface); color:var(--sr-text); align-items:center; justify-content:center; cursor:pointer;
}
.sr-drawer{
  position: fixed; inset:0; z-index:1055; display:none;
}
.sr-drawer.is-open{ display:block; }
.sr-drawer__backdrop{ position:absolute; inset:0; background: rgba(3,10,20,.5); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.sr-drawer__panel{
  position:absolute; inset-inline-end:0; top:0; height:100%; width:min(82vw,320px);
  background: var(--sr-bg-3); border-inline-start:1px solid var(--sr-border);
  box-shadow: var(--sr-shadow); padding:1.1rem;
  display:flex; flex-direction:column; gap:.35rem;
  transform: translateX(100%); animation: srDrawerIn .28s forwards;
}
@keyframes srDrawerIn{ to{ transform: translateX(0); } }
.sr-drawer__panel a{ color:var(--sr-text); text-decoration:none; font-weight:700; padding:.8rem .9rem; border-radius:14px; }
.sr-drawer__panel a:hover{ background: var(--sr-brand-soft); }
.sr-drawer__close{ align-self:flex-start; border:none; background:transparent; color:var(--sr-muted); font-size:1.6rem; cursor:pointer; }

@media (max-width: 900px){
  .sr-nav__links, .sr-nav__cta .sr-cta-hide{ display:none; }
  .sr-nav__burger{ display:inline-flex; }
}

/* ---------------- Hero ---------------- */
.sr-hero{ padding: clamp(2rem, 6vw, 4.5rem) 0 clamp(2.5rem,6vw,4rem); }
.sr-hero__grid{ display:grid; grid-template-columns: 1.05fr .95fr; gap: clamp(1.5rem,4vw,3rem); align-items:center; }
.sr-hero__title{ font-size: clamp(2.1rem, 6vw, 4rem); font-weight:900; line-height:1.12; letter-spacing:-.6px; margin:.7rem 0 1rem; }
.sr-hero__lead{ color:var(--sr-muted); font-size: clamp(1.02rem,1.5vw,1.22rem); line-height:2; max-width:38ch; }
.sr-hero__cta{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.5rem; }
.sr-hero__stats{ display:flex; gap: clamp(1rem,3vw,2rem); margin-top:2rem; flex-wrap:wrap; }
.sr-stat__num{ font-size: clamp(1.5rem,3vw,2.1rem); font-weight:900; background:var(--sr-brand-text); -webkit-background-clip:text; background-clip:text; color:transparent; }
.sr-stat__label{ color:var(--sr-muted); font-size:.9rem; font-weight:700; }

/* Hero visual — glass court card with animated ball */
.sr-hero__visual{ position:relative; }
.sr-court{
  position:relative; aspect-ratio: 4/5; border-radius: 28px; overflow:hidden;
  background: linear-gradient(160deg, #1e73e8, #1552b8 55%, #0e7a43);
  border:1px solid var(--sr-border-strong);
  box-shadow: var(--sr-shadow), inset 0 1px 0 rgba(255,255,255,.25);
}
.sr-court__lines{ position:absolute; inset:9% 12%; border:3px solid rgba(255,255,255,.85); border-radius:6px; }
.sr-court__lines::before{ content:""; position:absolute; inset:0; margin:auto; width:70%; height:100%; border-inline:3px solid rgba(255,255,255,.8); }
.sr-court__lines::after{ content:""; position:absolute; left:0; right:0; top:50%; height:3px; background:rgba(255,255,255,.85); transform:translateY(-50%); }
.sr-court__net{ position:absolute; left:6%; right:6%; top:50%; height:22px; transform:translateY(-50%);
  background: repeating-linear-gradient(90deg, rgba(255,255,255,.65) 0 3px, rgba(255,255,255,.15) 3px 6px);
  border-block:2px solid rgba(255,255,255,.9); }
.sr-ball{
  position:absolute; width:46px; height:46px; border-radius:50%;
  background: radial-gradient(circle at 35% 30%, #eaff9a, #b6f13d 55%, #86c722);
  box-shadow: 0 12px 26px rgba(0,0,0,.35), inset 0 -6px 10px rgba(0,0,0,.15);
  left:22%; top:16%; animation: srBall 3.6s ease-in-out infinite;
}
.sr-ball::before, .sr-ball::after{ content:""; position:absolute; inset:0; border-radius:50%; border:2px solid rgba(255,255,255,.9); clip-path: inset(0 0 50% 0); transform: rotate(24deg); }
.sr-ball::after{ transform: rotate(204deg); }
.sr-hero__chip{
  position:absolute; display:inline-flex; align-items:center; gap:.5rem;
  padding:.6rem .9rem; border-radius:16px; font-weight:800; font-size:.9rem;
  background: var(--sr-surface-2); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border:1px solid var(--sr-border); box-shadow: var(--sr-shadow-sm); color:var(--sr-text);
}
.sr-hero__chip--1{ inset-inline-start:-6%; top:20%; animation: srFloat 5s ease-in-out infinite; }
.sr-hero__chip--2{ inset-inline-end:-4%; bottom:16%; animation: srFloat 6s ease-in-out infinite .6s; }

@media (max-width: 860px){
  .sr-hero__grid{ grid-template-columns:1fr; text-align:center; }
  .sr-hero__lead{ margin-inline:auto; }
  .sr-hero__cta, .sr-hero__stats{ justify-content:center; }
  .sr-court{ max-width: 360px; margin-inline:auto; }
  .sr-hero__chip--1{ inset-inline-start:2%; }
  .sr-hero__chip--2{ inset-inline-end:2%; }
}

/* ---------------- Sections & feature grid ---------------- */
.sr-section{
  padding: clamp(2.4rem, 7vw, 5rem) 0;
  /* بخش‌های خارج از دید رندر نمی‌شوند → لود اولیه و اسکرول سریع‌تر */
  content-visibility: auto;
  contain-intrinsic-size: auto 620px;
}
.sr-grid{ display:grid; gap: clamp(1rem, 2.4vw, 1.4rem); }
.sr-grid--3{ grid-template-columns: repeat(3, 1fr); }
.sr-grid--4{ grid-template-columns: repeat(4, 1fr); }
.sr-grid--2{ grid-template-columns: repeat(2, 1fr); }
@media (max-width: 980px){ .sr-grid--3, .sr-grid--4{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 620px){ .sr-grid--2, .sr-grid--3, .sr-grid--4{ grid-template-columns: 1fr; } }

.sr-feature__icon{
  width:56px; height:56px; border-radius:18px; display:grid; place-items:center; font-size:1.6rem;
  background: var(--sr-brand-soft); border:1px solid var(--sr-border); margin-bottom:1rem;
  box-shadow: inset 0 1px 0 var(--sr-hi);
}
.sr-feature h3{ font-size:1.16rem; font-weight:800; margin:0 0 .5rem; }
.sr-feature p{ color:var(--sr-muted); line-height:1.9; margin:0; font-size:.98rem; }

/* Pricing */
.sr-price__amount{ font-size:2rem; font-weight:900; }
.sr-price__amount .grad{ background:var(--sr-brand-text); -webkit-background-clip:text; background-clip:text; color:transparent; }
.sr-price ul{ list-style:none; padding:0; margin:1rem 0 0; display:grid; gap:.6rem; }
.sr-price li{ display:flex; gap:.5rem; align-items:center; color:var(--sr-text); }
.sr-price li::before{ content:"✔"; color:var(--sr-green-2); font-weight:900; }
.sr-price--pop{ border-color: transparent; }
.sr-badge-pop{ position:absolute; inset-inline-end:1.1rem; top:1.1rem; background:var(--sr-brand); color:#fff; font-weight:800; font-size:.78rem; padding:.3rem .7rem; border-radius:999px; }

/* Gallery */
.sr-gallery{ display:grid; grid-template-columns: repeat(4, 1fr); gap:.8rem; }
.sr-gallery figure{ margin:0; border-radius:18px; overflow:hidden; position:relative; aspect-ratio:1; border:1px solid var(--sr-border); cursor:pointer; }
.sr-gallery img{ width:100%; height:100%; object-fit:cover; transition: transform .5s ease; display:block; }
.sr-gallery figure:hover img{ transform: scale(1.08); }
.sr-gallery .ph{ width:100%; height:100%; display:grid; place-items:center; font-size:2.2rem; color:#fff; }
@media (max-width: 780px){ .sr-gallery{ grid-template-columns: repeat(2,1fr); } }

/* Masonry gallery (portrait-friendly, uncropped) */
.sr-masonry{ columns: 3 260px; column-gap: 1rem; }
.sr-masonry figure{
  break-inside: avoid; margin: 0 0 1rem; border-radius: 18px; overflow: hidden;
  position: relative; cursor: zoom-in; border: 1px solid var(--sr-border);
  box-shadow: var(--sr-shadow-sm); background: var(--sr-surface);
}
.sr-masonry img{ width: 100%; display: block; transition: transform .5s ease; }
.sr-masonry figure:hover img{ transform: scale(1.05); }
.sr-masonry figcaption{
  position: absolute; inset-inline: 0; bottom: 0; padding: 1.1rem .85rem .7rem;
  color: #fff; font-weight: 800; font-size: .92rem; letter-spacing: .2px;
  background: linear-gradient(transparent, rgba(4,10,20,.75)); opacity: 0; transition: opacity .3s ease;
}
.sr-masonry figure:hover figcaption{ opacity: 1; }
@media (max-width: 560px){ .sr-masonry{ columns: 2 150px; column-gap: .7rem; } .sr-masonry figure{ margin-bottom: .7rem; } }

/* Portrait tile grid (landing preview) */
.sr-gallery--portrait figure{ aspect-ratio: 3/4; }

/* Testimonials */
.sr-quote{ font-size:1.02rem; line-height:2; color:var(--sr-text); }
.sr-quote__who{ display:flex; align-items:center; gap:.7rem; margin-top:1rem; }
.sr-avatar{ width:44px; height:44px; border-radius:50%; display:grid; place-items:center; font-weight:900; color:#fff; background:var(--sr-brand); }

/* CTA banner */
.sr-cta{ text-align:center; padding: clamp(2rem,5vw,3.4rem); overflow:hidden; position:relative; }
.sr-cta::after{ content:""; position:absolute; inset:0; background: radial-gradient(60% 120% at 50% -20%, rgba(37,99,235,.30), transparent 60%); pointer-events:none; }

/* Map */
.sr-map{ border:0; width:100%; height:380px; border-radius: var(--sr-radius); filter: saturate(1.05); }
[data-theme="dark"] .sr-map{ filter: invert(.9) hue-rotate(180deg) saturate(.8); }

/* Offline-friendly static map card (no external iframe → site works without internet) */
.sr-map-static{
  position: relative; width: 100%; min-height: 360px; height: 100%;
  border-radius: var(--sr-radius); overflow: hidden; border: 1px solid var(--sr-border);
  display: grid; place-items: center; text-align: center; padding: 1.8rem;
  background:
    linear-gradient(rgba(37,99,235,.05), rgba(34,197,94,.06)),
    repeating-linear-gradient(0deg, transparent 0 39px, rgba(120,140,170,.14) 39px 40px),
    repeating-linear-gradient(90deg, transparent 0 39px, rgba(120,140,170,.14) 39px 40px),
    var(--sr-surface-2);
  box-shadow: inset 0 1px 0 var(--sr-hi);
}
.sr-map-static .info{ position: relative; z-index: 2; display: grid; gap: .6rem; justify-items: center; }
.sr-map-static .pin{ font-size: 2.8rem; filter: drop-shadow(0 8px 16px rgba(37,99,235,.45)); animation: srFloat 3.6s ease-in-out infinite; }
.sr-map-static b{ font-size: 1.08rem; color: var(--sr-text); }
.sr-map-static .addr{ color: var(--sr-muted); max-width: 42ch; line-height: 1.8; }
@media (prefers-reduced-motion: reduce){ .sr-map-static .pin{ animation: none; } }

/* Fix: allow page to scroll vertically with mouse wheel over horizontally-scrollable tables
   (previously overscroll-behavior:contain trapped the wheel on desktop). Keep X contained for mobile. */
.table-responsive{ overscroll-behavior-x: contain !important; overscroll-behavior-y: auto !important; }

/* ---------------- Footer ---------------- */
.sr-footer{ margin-top: clamp(2.5rem,6vw,4rem); border-top:1px solid var(--sr-border);
  background: var(--sr-surface); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.sr-footer__grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1.1fr; gap: 1.6rem; padding: clamp(2rem,5vw,3rem) 0 1.5rem; }
.sr-footer h4{ font-size:1rem; font-weight:800; margin:0 0 1rem; }
.sr-footer a{ color:var(--sr-muted); text-decoration:none; display:block; padding:.28rem 0; font-size:.95rem; transition:.2s; }
.sr-footer a:hover{ color:var(--sr-blue); }
.sr-footer__bottom{ border-top:1px solid var(--sr-border); padding:1.1rem 0; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; color:var(--sr-muted); font-size:.9rem; }
.sr-enamad{ width:96px; height:96px; border-radius:14px; display:grid; place-items:center; text-align:center; font-size:.72rem; color:var(--sr-muted); border:1px dashed var(--sr-border-strong); background: var(--sr-surface-2); }
.sr-social{ display:flex; gap:.5rem; }
.sr-social a{ width:40px; height:40px; border-radius:12px; display:grid; place-items:center; border:1px solid var(--sr-border); background:var(--sr-surface-2); color:var(--sr-text); }
.sr-social a:hover{ background: var(--sr-brand-soft); color:var(--sr-blue); }
@media (max-width: 820px){ .sr-footer__grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 500px){ .sr-footer__grid{ grid-template-columns: 1fr; } }

/* ---------------- Article / legal prose ---------------- */
.sr-prose{ line-height:2.1; color:var(--sr-text); font-size:1.02rem; }
.sr-prose h2{ font-size:1.4rem; font-weight:900; margin:2rem 0 .8rem; }
.sr-prose h3{ font-size:1.14rem; font-weight:800; margin:1.4rem 0 .6rem; }
.sr-prose p{ color: var(--sr-muted); margin:0 0 1rem; }
.sr-prose ul,.sr-prose ol{ color:var(--sr-muted); padding-inline-start:1.4rem; margin:0 0 1rem; }
.sr-prose li{ margin:.4rem 0; }
.sr-prose a{ color:var(--sr-blue); font-weight:700; }
.sr-breadcrumb{ display:flex; gap:.4rem; flex-wrap:wrap; color:var(--sr-muted); font-size:.9rem; margin-bottom:1rem; }
.sr-breadcrumb a{ color:var(--sr-muted); text-decoration:none; }
.sr-breadcrumb a:hover{ color:var(--sr-blue); }

/* Contact rows */
.sr-contact-row{ display:flex; align-items:center; gap:.9rem; padding:.9rem 0; border-bottom:1px solid var(--sr-border); }
.sr-contact-row:last-child{ border-bottom:0; }
.sr-contact-ico{ width:46px; height:46px; border-radius:14px; display:grid; place-items:center; font-size:1.3rem; background:var(--sr-brand-soft); border:1px solid var(--sr-border); flex:0 0 auto; }
.sr-field label{ font-weight:700; font-size:.92rem; display:block; margin-bottom:.35rem; }
.sr-field input, .sr-field textarea{
  width:100%; padding:.8rem 1rem; border-radius:14px; border:1px solid var(--sr-border);
  background: var(--sr-surface-2); color:var(--sr-text); font: inherit;
}
.sr-field input:focus, .sr-field textarea:focus{ outline:none; border-color: var(--sr-blue); box-shadow:0 0 0 4px rgba(37,99,235,.16); }

/* FAQ */
.sr-faq details{ border:1px solid var(--sr-border); border-radius:16px; background:var(--sr-surface); margin-bottom:.8rem; overflow:hidden; }
.sr-faq summary{ cursor:pointer; padding:1.05rem 1.2rem; font-weight:800; list-style:none; display:flex; justify-content:space-between; gap:1rem; }
.sr-faq summary::-webkit-details-marker{ display:none; }
.sr-faq summary::after{ content:"+"; color:var(--sr-blue); font-weight:900; font-size:1.3rem; transition: transform .2s; }
.sr-faq details[open] summary::after{ transform: rotate(45deg); }
.sr-faq details > div{ padding:0 1.2rem 1.15rem; color:var(--sr-muted); line-height:2; }

/* Blog cards */
.sr-post__cover{ aspect-ratio: 16/9; border-radius:16px; overflow:hidden; display:grid; place-items:center; color:#fff; font-size:2.4rem; position:relative; }
.sr-post__cover img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; transition: transform .5s ease; }
.sr-post.sr-lift:hover .sr-post__cover img{ transform: scale(1.06); }
.sr-post h3{ font-size:1.18rem; font-weight:800; margin:.9rem 0 .4rem; }
.sr-post p{ color:var(--sr-muted); line-height:1.85; font-size:.96rem; }
.sr-post__meta{ color:var(--sr-muted); font-size:.85rem; display:flex; gap:.6rem; align-items:center; }

/* ---------------- Scroll reveal & motion ---------------- */
.reveal{ opacity:0; transform: translateY(26px); transition: opacity .6s ease, transform .6s cubic-bezier(.2,.8,.2,1); }
.reveal.reveal--in{ opacity:1; transform:none; }
.reveal[data-reveal="left"]{ transform: translateX(-30px); }
.reveal[data-reveal="right"]{ transform: translateX(30px); }
.reveal[data-reveal="zoom"]{ transform: scale(.94); }
.reveal.reveal--in[data-reveal]{ transform:none; }
.sr-stagger > *{ transition-delay: calc(var(--i, 0) * 90ms); }

@keyframes srBall{
  0%,100%{ transform: translate(0,0) rotate(0deg); }
  25%{ transform: translate(140%, 220%) rotate(90deg); }
  50%{ transform: translate(280%, 60%) rotate(180deg); }
  75%{ transform: translate(120%, 300%) rotate(270deg); }
}
@keyframes srFloat{ 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-12px); } }
@keyframes srGrad{ 0%{ background-position:0% 50%; } 100%{ background-position:200% 50%; } }
.sr-anim-grad{ background-size:200% 200%; animation: srGrad 8s linear infinite alternate; }

/* marquee */
.sr-marquee{ overflow:hidden; -webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.sr-marquee__track{ display:flex; gap:2.5rem; width:max-content; animation: srMarquee 26s linear infinite; }
@keyframes srMarquee{ to{ transform: translateX(-50%); } }
.sr-marquee__track span{ color:var(--sr-muted); font-weight:800; white-space:nowrap; opacity:.8; }

@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  .sr-ball, .sr-hero__chip, .sr-anim-grad, .sr-marquee__track{ animation:none !important; }
  .sr-card, .sr-btn{ transition:none !important; }
}

/* ============================================================
   Schedule tables — glass restyle (booking + coach)
   ============================================================ */

/* --- Public booking (.schedule-grid) — from style.css, no !important there --- */
.rent-card{
  background: var(--sr-surface, rgba(255,255,255,.7));
  -webkit-backdrop-filter: blur(14px) saturate(140%); backdrop-filter: blur(14px) saturate(140%);
  border:1px solid var(--sr-border, rgba(0,0,0,.08)) !important;
  box-shadow: var(--sr-shadow-sm, 0 10px 30px rgba(0,0,0,.12)) !important;
  border-radius: 20px !important;
}
.schedule-grid thead th{
  background: var(--sr-surface-2, #f4f8ff) !important;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  border-bottom:1px solid var(--sr-border, rgba(0,0,0,.08)) !important;
  font-weight:800;
}
.schedule-grid .slot-chip{ border-radius:12px; font-weight:800; letter-spacing:.2px; }
.schedule-grid .slot-open{
  background: linear-gradient(135deg,#16a34a,#22c55e) !important;
  box-shadow: 0 8px 18px rgba(34,197,94,.28) !important;
}
.schedule-grid .slot-open:hover{ filter:brightness(1.05); transform: translateY(-2px); box-shadow:0 12px 22px rgba(34,197,94,.36) !important; }
.schedule-grid .slot-closed{ background: linear-gradient(135deg,#ef4444,#dc2626) !important; box-shadow:0 8px 18px rgba(220,38,38,.22) !important; }
.schedule-grid .court-pill{
  background: var(--sr-brand-soft, #eef2ff); border:1px solid var(--sr-border, transparent);
}

/* --- Coach daily/weekly (.schedule-table) glass polish (works with their inline vars) --- */
.card:has(> .card-body > .table-responsive > .schedule-table),
.day-card{
  border-radius: 18px !important;
  overflow: hidden;
  box-shadow: var(--sr-shadow-sm, 0 10px 26px rgba(0,0,0,.12)) !important;
}
.schedule-table thead th{
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  font-weight: 800 !important;
}
.schedule-table .slot.busy{ box-shadow: inset 3px 0 0 rgba(239,68,68,.55); }
.schedule-table .slot.free{ box-shadow: inset 3px 0 0 rgba(34,197,94,.5); }
.schedule-table .badge.text-bg-success{ background: linear-gradient(135deg,#16a34a,#22c55e) !important; }
