/* ─── SELF-HOSTED FONTS ─── */
    @font-face {
      font-family: 'Brice Semi Condensed';
      src: url('assets/fonts/Brice-Bold-SemiCondensed.woff2') format('woff2');
      font-weight: 700;
      font-style: normal;
      font-display: swap;
    }

    /* ─── RESET & VARIABLES ─── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --blue-deep:   #4FD1C5;
      --blue-mid:    #3BB8AF;
      --blue-bright: #4FD1C5;
      --blue-pale:   #E8F4FD;
      --coral:       #F04E23;
      --coral-light: #FEF0EB;
      --white:       #FFFFFF;
      --off-white:   #F7F9FC;
      --text-dark:   #1A1A2E;
      --text-mid:    #4A5568;
      --text-light:  #718096;
      --shadow-sm:    0 2px 8px rgba(11,36,71,0.08);
      --shadow-md:    0 8px 24px rgba(11,36,71,0.12);
      --shadow-lg:    0 16px 48px rgba(11,36,71,0.16);
      --radius:      16px;
      --radius-sm:   8px;
      --max-w:       1200px;
    }

    html { scroll-behavior: smooth; font-size: 16px; }
    body { font-family: 'Poppins', sans-serif; color: var(--text-dark); background: var(--white); line-height: 1.6; -webkit-font-smoothing: antialiased; }

    img { max-width: 100%; height: auto; display: block; }
    a { text-decoration: none; color: inherit; }
    ul { list-style: none; }

    /* ─── UTILITIES ─── */
    .container { max-width: var(--max-w); margin: 0 auto; padding: 0 24px; }
    .section-pad { padding: 96px 0; }
    .section-label { font-size: 0.75rem; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: var(--blue-bright); margin-bottom: 12px; }
    .section-title { font-size: clamp(2rem, 4vw, 3rem); font-weight: 800; color: var(--blue-deep); line-height: 1.15; margin-bottom: 20px; font-family: 'Brice Semi Condensed', 'Poppins', sans-serif; }
    .section-sub { font-size: 1.1rem; color: var(--text-mid); max-width: 560px; line-height: 1.7; }
    .centered { text-align: center; }
    .centered .section-sub { margin: 0 auto; }
    .btn { display: inline-flex; align-items: center; gap: 8px; padding: 14px 32px; border-radius: 50px; font-family: 'Poppins', sans-serif; font-size: 0.95rem; font-weight: 600; cursor: pointer; border: none; transition: transform 0.2s, box-shadow 0.2s, background 0.2s; }
    .btn:hover { transform: translateY(-2px); }
    .btn-primary { background: var(--coral); color: var(--white); box-shadow: 0 4px 16px rgba(240,78,35,0.35); }
    .btn-primary:hover { background: #d63e15; box-shadow: 0 6px 24px rgba(240,78,35,0.45); }
    .btn-outline { background: transparent; color: var(--blue-deep); border: 2.5px solid var(--blue-deep); }
    .btn-outline:hover { background: var(--blue-deep); color: var(--white); }
    .btn-whatsapp { background: var(--coral); color: var(--white); box-shadow: 0 4px 16px rgba(240,78,35,0.35); }
    .btn-whatsapp:hover { background: #d63e15; }

    /* Floating WhatsApp button — chat bubble style */
    #floating-whatsapp {
      position: fixed;
      bottom: 24px;
      right: 24px;
      z-index: 9999;
      width: 64px;
      height: 64px;
      border-radius: 50%;
      background: linear-gradient(135deg, #80E8C8 0%, #34C759 100%);
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
      text-decoration: none;
      transition: transform 0.2s, box-shadow 0.2s;
    }
    #floating-whatsapp:hover {
      transform: scale(1.06);
      box-shadow: 0 12px 32px rgba(0, 0, 0, 0.22);
    }
    #floating-whatsapp .wa-icon { width: 34px; height: 34px; fill: #fff; }
    #floating-whatsapp .wa-badge {
      position: absolute;
      top: -2px;
      right: -2px;
      width: 20px;
      height: 20px;
      background: #FF3B30;
      border-radius: 50%;
      border: 2px solid #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 11px;
      font-weight: 700;
      color: #fff;
      font-family: 'Poppins', sans-serif;
    }
    .tag { display: inline-block; padding: 4px 14px; border-radius: 50px; font-size: 0.78rem; font-weight: 600; }
    .tag-blue { background: var(--coral-light); color: var(--coral); }
    .tag-coral { background: var(--coral-light); color: var(--coral); }

    /* ─── ANIMATIONS ─── */
    @keyframes float {
      0%, 100% { transform: translateY(0px); }
      50% { transform: translateY(-14px); }
    }
    @keyframes floatSlow {
      0%, 100% { transform: translateY(0px) rotate(0deg); }
      50% { transform: translateY(-20px) rotate(3deg); }
    }
    @keyframes pulse-glow {
      0%, 100% { box-shadow: 0 0 8px #4ADE80; }
      50% { box-shadow: 0 0 18px #4ADE80, 0 0 30px rgba(74,222,128,0.3); }
    }
    @keyframes badge-appear {
      0% { opacity: 0; transform: translateY(20px) scale(0.9); }
      100% { opacity: 1; transform: translateY(0) scale(1); }
    }
    @keyframes hero-title {
      0% { opacity: 0; transform: translateY(30px); }
      100% { opacity: 1; transform: translateY(0); }
    }
    @keyframes hero-fade {
      0% { opacity: 0; }
      100% { opacity: 1; }
    }
    @keyframes dash {
      to { stroke-dashoffset: 0; }
    }
    @keyframes morph {
      0% { border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; }
      50% { border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%; }
      100% { border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; }
    }
    @keyframes swing {
      0%, 100% { transform: rotate(-4deg); }
      50% { transform: rotate(4deg); }
    }
    @keyframes neon-flicker {
      0%, 19%, 21%, 23%, 25%, 54%, 56%, 100% { text-shadow: 0 0 8px var(--blue-bright), 0 0 20px rgba(0,180,216,0.4); }
      20%, 24%, 55% { text-shadow: none; }
    }
    @keyframes skew-in {
      from { opacity: 0; transform: skewX(-8deg) translateX(-20px); }
      to { opacity: 1; transform: skewX(0) translateX(0); }
    }
    @keyframes draw-circle {
      from { stroke-dashoffset: 440; }
      to { stroke-dashoffset: 0; }
    }
    @keyframes draw-line {
      from { stroke-dashoffset: 200; }
      to { stroke-dashoffset: 0; }
    }
    @keyframes cursor-blink {
      0%, 100% { opacity: 1; }
      50% { opacity: 0; }
    }
    @keyframes slide-badge {
      0% { transform: translateY(-60px) scale(0.7); opacity: 0; }
      60% { transform: translateY(4px) scale(1.05); opacity: 1; }
      80% { transform: translateY(-2px) scale(0.98); }
      100% { transform: translateY(0) scale(1); opacity: 1; }
    }
    @keyframes text-reveal {
      0% { clip-path: inset(0 100% 0 0); }
      100% { clip-path: inset(0 0 0 0); }
    }
    @keyframes flip-card {
      0% { transform: rotateY(0deg); }
      100% { transform: rotateY(180deg); }
    }
    @keyframes star-twinkle {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: 0.5; transform: scale(0.8); }
    }
    @keyframes parallax-bg {
      from { background-position: 0 0; }
      to { background-position: 0 20px; }
    }
    @keyframes section-entrance {
      0% { opacity: 0; transform: scale(0.96) translateY(20px); }
      100% { opacity: 1; transform: scale(1) translateY(0); }
    }
    @keyframes scroll-hint {
      0%, 100% { transform: translateY(0); opacity: 1; }
      50% { transform: translateY(10px); opacity: 0.4; }
    }
    @keyframes ring-expand {
      0% { transform: scale(0.8); opacity: 0.8; }
      100% { transform: scale(2); opacity: 0; }
    }
    @keyframes gradient-shift {
      0% { background-position: 0% 50%; }
      50% { background-position: 100% 50%; }
      100% { background-position: 0% 50%; }
    }
    @keyframes confetti-fall {
      0% { transform: translateY(-100vh) rotate(0deg); opacity: 1; }
      100% { transform: translateY(100vh) rotate(720deg); opacity: 0; }
    }
    @keyframes float-shadow {
      0%, 100% { transform: translateY(0) scale(1); box-shadow: 0 20px 40px rgba(0,0,0,0.15); }
      50% { transform: translateY(-12px) scale(1.02); box-shadow: 0 32px 60px rgba(0,0,0,0.2); }
    }
    @keyframes border-dance {
      from { background-position: 0% 0%; }
      to { background-position: 200% 0%; }
    }
    @keyframes rotate-slow {
      from { transform: rotate(0deg); }
      to { transform: rotate(360deg); }
    }
    @keyframes dash-spin {
      to { transform: rotate(360deg); }
    }
    @keyframes inView-pop {
      0% { transform: scale(0.85) translateY(20px); opacity: 0; }
      60% { transform: scale(1.05) translateY(-4px); opacity: 1; }
      100% { transform: scale(1) translateY(0); opacity: 1; }
    }
    @keyframes split-in {
      0% { clip-path: circle(0% at 50% 50%); }
      100% { clip-path: circle(100% at 50% 50%); }
    }
    @keyframes slide-up-stagger {
      from { transform: translateY(60px); opacity: 0; }
      to { transform: translateY(0); opacity: 1; }
    }
    @keyframes glow-pulse {
      0%, 100% { box-shadow: 0 0 10px rgba(0,180,216,0.3); }
      50% { box-shadow: 0 0 30px rgba(0,180,216,0.6), 0 0 60px rgba(0,180,216,0.2); }
    }
    @keyframes icon-bounce-in {
      0% { transform: scale(0); }
      50% { transform: scale(1.3); }
      70% { transform: scale(0.9); }
      100% { transform: scale(1); }
    }
    @keyframes wave {
      0% { transform: translateX(0) translateY(0); }
      50% { transform: translateX(-25%) translateY(4px); }
      100% { transform: translateX(0) translateY(0); }
    }
    @keyframes wave2 {
      0% { transform: translateX(0) translateY(0); }
      50% { transform: translateX(25%) translateY(-4px); }
      100% { transform: translateX(0) translateY(0); }
    }
    @keyframes shimmer {
      0% { background-position: -200% center; }
      100% { background-position: 200% center; }
    }
    @keyframes spin-slow {
      from { transform: rotate(0deg); }
      to { transform: rotate(360deg); }
    }
    @keyframes heartbeat {
      0%, 100% { transform: scale(1); }
      15% { transform: scale(1.15); }
      30% { transform: scale(1); }
      45% { transform: scale(1.1); }
    }
    @keyframes slide-up {
      0% { opacity: 0; transform: translateY(40px); }
      100% { opacity: 1; transform: translateY(0); }
    }
    @keyframes bubble-rise {
      0% { transform: translateY(0) scale(1); opacity: 0.7; }
      50% { transform: translateY(-40vh) scale(1.1); opacity: 0.9; }
      100% { transform: translateY(-100vh) scale(0.8); opacity: 0; }
    }
    .bubbles { position: absolute; inset: 0; overflow: hidden; z-index: 1; pointer-events: none; }
    .bubble {
      position: absolute;
      bottom: -80px;
      border-radius: 50%;
      background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.4), rgba(0,180,216,0.1));
      border: 1px solid rgba(255,255,255,0.25);
      animation: bubble-rise linear forwards;
      pointer-events: none;
    }
    @keyframes fade-in {
      from { opacity: 0; }
      to { opacity: 1; }
    }
    @keyframes slide-in-left {
      from { opacity: 0; transform: translateX(-40px); }
      to { opacity: 1; transform: translateX(0); }
    }
    @keyframes slide-in-right {
      from { opacity: 0; transform: translateX(40px); }
      to { opacity: 1; transform: translateX(0); }
    }
    @keyframes scale-in {
      from { opacity: 0; transform: scale(0.85); }
      to { opacity: 1; transform: scale(1); }
    }
    @keyframes wiggle {
      0%, 100% { transform: rotate(-2deg); }
      50% { transform: rotate(2deg); }
    }
    .wiggle {
      animation: wiggle 1.5s ease-in-out infinite;
    }
    @keyframes bounce-in {
      0% { transform: scale(0.5); opacity: 0; }
      60% { transform: scale(1.1); opacity: 1; }
      80% { transform: scale(0.97); }
      100% { transform: scale(1); }
    }
    @keyframes ripple {
      0% { transform: scale(0); opacity: 0.6; }
      100% { transform: scale(4); opacity: 0; }
    }
    @keyframes marquee {
      0% { transform: translateX(0); }
      100% { transform: translateX(-50%); }
    }
    @keyframes float-3d {
      0%, 100% { transform: translateY(0px) rotateX(0deg); }
      25% { transform: translateY(-12px) rotateX(2deg); }
      75% { transform: translateY(-6px) rotateX(-1deg); }
    }
    @keyframes counter-pop {
      0% { transform: scale(0.8); opacity: 0; }
      60% { transform: scale(1.15); opacity: 1; }
      100% { transform: scale(1); opacity: 1; }
    }
    @keyframes cta-glow {
      0%, 100% { box-shadow: 0 0 20px rgba(240,78,35,0.3), 0 4px 16px rgba(240,78,35,0.2); }
      50% { box-shadow: 0 0 40px rgba(240,78,35,0.5), 0 8px 32px rgba(240,78,35,0.35); }
    }
    @keyframes blob {
      0%, 100% { border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; }
      25% { border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%; }
      50% { border-radius: 50% 60% 30% 60% / 30% 60% 70% 40%; }
      75% { border-radius: 60% 40% 60% 30% / 70% 30% 50% 60%; }
    }
    /* ─── SCROLL PROGRESS BAR ─── */
    .scroll-progress {
      position: fixed;
      top: 0;
      left: 0;
      height: 3px;
      background: linear-gradient(90deg, var(--coral), var(--blue-bright), #4ADE80);
      z-index: 9999;
      width: 0%;
      transition: width 0.1s linear;
      box-shadow: 0 0 10px rgba(0,180,216,0.5);
    }

    /* ─── BUTTON RIPPLE EFFECT ─── */
    .btn { position: relative; overflow: hidden; }
    .btn::after {
      content: '';
      position: absolute;
      width: 100%;
      height: 100%;
      top: 50%;
      left: 50%;
      background: rgba(255,255,255,0.25);
      border-radius: 50%;
      transform: translate(-50%, -50%) scale(0);
      transition: transform 0.5s ease, opacity 0.5s ease;
      opacity: 0;
    }
    .btn:active::after {
      transform: translate(-50%, -50%) scale(4);
      opacity: 0;
      transition: 0s;
    }

    /* ─── SHIMMER BUTTONS ─── */
    .btn-shimmer {
      background: linear-gradient(110deg, var(--coral) 0%, #c43a15 20%, var(--coral) 40%, #c43a15 60%, var(--coral) 80%, #c43a15 100%);
      background-size: 200% 100%;
      animation: shimmer 3s linear infinite;
    }
    .btn-shimmer:hover {
      animation: shimmer 1.5s linear infinite;
    }

    /* ─── TESTIMONIAL CAROUSEL ─── */
    .testimonial-carousel {
      display: flex;
      gap: 24px;
      overflow: hidden;
      position: relative;
    }
    .testimonial-track {
      display: flex;
      gap: 24px;
      transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
    }
    .testimonial-card {
      flex: 0 0 calc(33.333% - 16px);
      background: var(--white);
      border-radius: 16px;
      padding: 28px;
      box-shadow: 0 4px 20px rgba(11,36,71,0.08);
    }
    .testimonial-stars {
      color: #FFB800;
      font-size: 0.9rem;
      margin-bottom: 14px;
      letter-spacing: 2px;
    }
    .testimonial-text {
      font-size: 0.95rem;
      color: var(--text-mid);
      line-height: 1.7;
      margin-bottom: 18px;
    }
    .testimonial-author {
      display: flex;
      align-items: center;
      gap: 12px;
    }
    .testimonial-avatar {
      width: 40px;
      height: 40px;
      border-radius: 50%;
      background: var(--coral);
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--white);
      font-weight: 700;
      font-size: 0.85rem;
    }
    .testimonial-name {
      font-weight: 600;
      font-size: 0.9rem;
      color: var(--text-dark);
    }
    .testimonial-role {
      font-size: 0.78rem;
      color: var(--text-mid);
    }
    .carousel-nav {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 16px;
      margin-top: 32px;
    }
    .carousel-arrow {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      border: 2px solid rgba(255,255,255,0.35);
      background: transparent;
      color: var(--white);
      font-size: 1.1rem;
      cursor: pointer;
      transition: background 0.2s, border-color 0.2s, transform 0.2s;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .carousel-arrow:hover {
      background: rgba(255,255,255,0.15);
      border-color: rgba(255,255,255,0.7);
      transform: scale(1.08);
    }
    .carousel-arrow svg { width: 18px; height: 18px; }
    .carousel-dots {
      display: flex;
      justify-content: center;
      gap: 8px;
    }
    .carousel-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: rgba(255,255,255,0.3);
      border: none;
      cursor: pointer;
      transition: background 0.2s, transform 0.2s;
    }
    .carousel-dot.active {
      background: var(--white);
      transform: scale(1.4);
    }
    @media (max-width: 768px) {
      .testimonial-card { flex: 0 0 calc(100% - 0px); }
      .testimonial-track { gap: 16px; }
      .testimonial-carousel { overflow-x: auto; -webkit-overflow-scrolling: touch; scroll-snap-type: x mandatory; }
      .testimonial-card { scroll-snap-align: start; }
      .testimonial-track { transition: none; }
    }

    /* ─── COACH PROFILE ALTERNATING ─── */
    .coach-profile {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 48px;
      align-items: center;
      margin-bottom: 64px;
    }
    .coach-profile.reverse { direction: rtl; }
    .coach-profile.reverse > * { direction: ltr; }
    .coach-profile:last-child { margin-bottom: 0; }
    .coach-profile-img {
      border-radius: 20px;
      overflow: hidden;
      aspect-ratio: 4/5;
      margin-top: 24px;
    }
    .coach-profile-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center 25%;
      transition: transform 0.5s ease;
    }
    .coach-profile:hover .coach-profile-img img { transform: scale(1.03); }
    .coach-profile-role {
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--coral);
      margin-bottom: 6px;
      font-family: 'Brice Semi Condensed', 'Poppins', sans-serif;
    }
    .coach-profile-name {
      font-size: 1.4rem;
      font-weight: 700;
      color: var(--blue-deep);
      margin-bottom: 8px;
      font-family: 'Brice Semi Condensed', 'Poppins', sans-serif;
    }
    .coach-profile-text {
      font-size: 0.98rem;
      color: var(--text-mid);
      line-height: 1.8;
    }
    .swimsafer-badge {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      background: var(--coral-light);
      color: var(--coral);
      border: 1.5px solid rgba(13,148,136,0.25);
      border-radius: 50px;
      padding: 5px 14px;
      font-size: 0.75rem;
      font-weight: 700;
      letter-spacing: 1px;
      text-transform: uppercase;
      margin-top: 16px;
    }
    .swimsafer-badge svg { width: 13px; height: 13px; }

    /* ─── CARD 3D TILT HOVER ─── */
    .class-card, .coach-card, .pricing-block, .testimonial-card {
      transform-style: preserve-3d;
      transition: transform 0.3s ease, box-shadow 0.3s ease;
    }
    .class-card:hover, .coach-card:hover, .pricing-block:hover {
      transform: perspective(1000px) rotateX(2deg) rotateY(-2deg) translateY(-8px);
      box-shadow: 0 20px 60px rgba(11,36,71,0.18), 0 0 0 1px rgba(0,180,216,0.2);
    }

    /* ─── MARQUEE ─── */
    .marquee-wrap { overflow: hidden; white-space: nowrap; }
    .marquee-inner { display: inline-block; animation: marquee 20s linear infinite; }
    .marquee-inner span { padding-right: 60px; }

    /* ─── BLOB SHAPES ─── */
    .blob {
      animation: blob 8s ease-in-out infinite;
    }

    /* ─── CTA GLOW ─── */
    .cta-glow {
      animation: cta-glow 2.5s ease-in-out infinite;
    }
    .cta-banner .btn-shimmer { animation: shimmer 2s linear infinite; }

    /* ─── COUNTER ANIMATION ─── */
    .counter { display: inline-block; }
    .counter.pop { animation: counter-pop 0.5s ease-out both; }

    /* ─── BADGE BOUNCE ─── */
    .tag-bounce { animation: bounce-in 0.6s ease-out both; }

    /* ─── PRICING CARD HOVER LIFT ─── */
    .pricing-block {
      transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.35s ease, border-color 0.35s ease;
    }
    .pricing-block:hover {
      transform: translateY(-12px) scale(1.02);
      border-color: var(--blue-bright);
      box-shadow: 0 24px 64px rgba(11,36,71,0.16);
    }
    .pricing-block.popular {
      border: 2px solid #e2e8f0;
      position: relative;
      transform: scale(1.07);
      box-shadow: 0 24px 64px rgba(11,36,71,0.18);
      z-index: 2;
    }
    .pricing-block.popular:hover {
      transform: scale(1.07) translateY(-12px) scale(1.02);
    }
    .pricing-popular-badge {
      display: inline-block;
      background: var(--coral);
      color: #fff;
      font-size: 0.68rem;
      font-weight: 700;
      letter-spacing: 1.5px;
      padding: 4px 14px;
      border-radius: 50px;
      margin-bottom: 10px;
      text-transform: uppercase;
    }

    /* ─── NAV LINK UNDERLINE HOVER ─── */
    .nav-links a { position: relative; }
    .nav-links a::after {
      content: '';
      position: absolute;
      bottom: -4px;
      left: 0;
      width: 0;
      height: 2px;
      background: var(--blue-bright);
      transition: width 0.3s ease;
      border-radius: 2px;
    }
    .nav-links a:hover::after { width: 100%; }

    /* ─── FOOTER LINKS HOVER ─── */
    .footer-links a { transition: color 0.2s ease, padding-left 0.2s ease; display: inline-block; }
    .footer-links a:hover { color: var(--blue-bright); padding-left: 6px; }

    /* ─── HERO PARALLAX ─── */
    .hero-bg { will-change: transform; }

    /* ─── SECTION LABEL SLIDE ─── */
    .section-label { position: relative; display: inline-block; }
    .section-label::after {
      content: '';
      position: absolute;
      bottom: -4px;
      left: 0;
      width: 40px;
      height: 2px;
      background: var(--coral);
      border-radius: 2px;
      transition: width 0.4s ease;
    }
    .section-label:hover::after, .reveal.visible .section-label::after { width: 100%; }

    /* ─── WATER RIPPLE ON SLOTS ─── */
    .slot-card { position: relative; overflow: hidden; }
    .slot-card::before {
      content: '';
      position: absolute;
      inset: 0;
      background: radial-gradient(circle at center, rgba(0,180,216,0.08) 0%, transparent 70%);
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.3s ease;
    }
    .slot-card:hover::before { opacity: 1; }

    /* ─── KEN BURNS — CLASS CARD IMAGES ─── */
    .class-card .card-img {
      overflow: hidden;
    }
    .class-card .card-img img {
      animation: kenburns 15s ease-in-out infinite alternate;
      transform-origin: center center;
    }
    @keyframes kenburns {
      0%   { transform: scale(1.08) translate(0%, 0%); }
      33%  { transform: scale(1.12) translate(-2%, -1.5%); }
      66%  { transform: scale(1.1) translate(1.5%, -1%); }
      100% { transform: scale(1.06) translate(0%, 1%); }
    }
    .class-card:hover .card-img img {
      animation-play-state: paused;
      transform: scale(1.06);
    }

    /* ─── TRUST BAR MARQUEE ─── */
    .trust-bar { overflow: hidden; }
    .trust-items { display: flex; justify-content: center; flex-wrap: wrap; gap: 40px; }

    /* ─── NAV WHATSAPP BUTTON GLOW ─── */
    nav .btn-whatsapp {
      animation: pulse-glow 2.5s ease-in-out infinite;
      box-shadow: 0 0 12px rgba(37,211,102,0.3);
    }

    /* ─── ABOUT IMAGE 3D FLOAT ─── */
    .about-image { animation: float-3d 6s ease-in-out infinite; }

    /* ─── TESTIMONIAL CARD HOVER ─── */
    .testimonial-card {
      transition: transform 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
    }
    .testimonial-card:hover {
      background: rgba(255,255,255,0.12);
      transform: translateY(-4px);
      box-shadow: 0 12px 40px rgba(0,0,0,0.2);
    }

    /* ─── SLOT BADGE PULSE ─── */
    .slot-badge { }

    /* Sign up CTA button */
    .slot-signup-btn {
      position: relative;
      z-index: 10;
      display: block;
      text-align: center;
      margin-top: 10px;
      padding: 12px 14px;
      background: var(--blue-bright);
      color: white;
      border-radius: 8px;
      font-size: 0.88rem;
      font-weight: 700;
      text-decoration: none;
      transition: background 0.2s, transform 0.15s;
    }
    .slot-signup-btn:hover, .slot-signup-btn:active {
      background: #0090c0;
      transform: translateY(-1px);
      text-decoration: none;
      color: white;
    }

    /* ─── WHY BISHAN GRID ─── */
    .why-bishan-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
    }
    .why-bishan-card {
      background: var(--white);
      border-radius: var(--radius);
      padding: 32px 28px;
      border: 1.5px solid #E8F0FA;
      box-shadow: var(--shadow-sm);
      transition: transform 0.3s, box-shadow 0.3s;
    }
    .why-bishan-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-md);
    }
    .why-icon { font-size: 2rem; margin-bottom: 16px; }
    .why-bishan-card h3 {
      font-size: 1.05rem;
      font-weight: 700;
      color: var(--text-dark);
      margin-bottom: 10px;
      font-family: 'Brice Semi Condensed', 'Poppins', sans-serif;
    }
    .why-bishan-card p {
      font-size: 0.92rem;
      color: var(--text-mid);
      line-height: 1.65;
    }

    /* ─── LEVEL CARDS ─── */
    .levels-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
    }
    .level-card {
      background: var(--white);
      border-radius: var(--radius);
      padding: 36px 28px;
      border: 1.5px solid #E8F0FA;
      box-shadow: var(--shadow-sm);
      display: flex;
      flex-direction: column;
      transition: transform 0.3s, box-shadow 0.3s;
    }
    .level-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-md);
    }
    .level-badge {
      display: inline-block;
      padding: 4px 14px;
      border-radius: 50px;
      font-size: 0.78rem;
      font-weight: 700;
      letter-spacing: 1px;
      text-transform: uppercase;
      margin-bottom: 16px;
      width: fit-content;
    }
    .level-badge.beginner { background: #dcfce7; color: #166534; }
    .level-badge.intermediate { background: #fef9c3; color: #854d0e; }
    .level-badge.advanced { background: #dbeafe; color: #1e40af; }
    .level-card.popular-card { border-color: var(--coral); box-shadow: 0 0 0 1px var(--coral), var(--shadow-sm); }
    .level-card.popular-card .level-badge.intermediate { background: var(--coral-light); color: var(--coral); }
    .level-card h3 {
      font-size: 1.15rem;
      font-weight: 800;
      color: var(--text-dark);
      margin-bottom: 12px;
      font-family: 'Brice Semi Condensed', 'Poppins', sans-serif;
    }
    .level-card > p {
      font-size: 0.9rem;
      color: var(--text-mid);
      line-height: 1.65;
      margin-bottom: 20px;
      flex: 1;
    }
    .level-includes {
      list-style: none;
      padding: 0;
      margin-bottom: 24px;
    }
    .level-includes li {
      font-size: 0.88rem;
      color: var(--text-mid);
      padding: 5px 0;
      border-bottom: 1px solid #f1f5f9;
    }
    .level-includes li:last-child { border-bottom: none; }
    .level-cta { margin-top: auto; }

    /* ─── INFO STRIP ─── */
    .info-strip {
      background: var(--blue-deep);
      padding: 28px 0;
    }
    .info-strip-items {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 0;
      flex-wrap: wrap;
    }
    .info-strip-item {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 0 32px;
      color: #fff;
    }
    .info-strip-item strong { font-size: 1.4rem; }
    .info-strip-label { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 1.5px; color: rgba(255,255,255,0.65); margin-bottom: 2px; }
    .info-strip-value { font-size: 0.95rem; font-weight: 600; color: #fff; }
    .info-strip-divider { width: 1px; height: 40px; background: rgba(255,255,255,0.2); }

    /* ─── FAQ ─── */
    .faq-container { display: flex; flex-direction: column; gap: 0; }
    .faq-item {
      border-bottom: 1px solid #e8f0fa;
    }
    .faq-item:first-child { border-top: 1px solid #e8f0fa; }
    .faq-question {
      width: 100%;
      background: none;
      border: none;
      padding: 22px 4px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      cursor: pointer;
      text-align: left;
      font-family: 'Poppins', sans-serif;
      font-size: 1rem;
      font-weight: 600;
      color: var(--text-dark);
      transition: color 0.2s;
    }
    .faq-question:hover { color: var(--coral); }
    .faq-question span { flex: 1; }
    .faq-chevron { flex-shrink: 0; color: var(--text-light); transition: transform 0.3s; }
    .faq-question.faq-open .faq-chevron { transform: rotate(180deg); }
    .faq-answer {
      display: none;
      padding: 0 4px 22px;
      font-size: 0.95rem;
      color: var(--text-mid);
      line-height: 1.7;
    }
    .faq-answer a { color: var(--blue-bright); font-weight: 600; }
    .faq-question.faq-open + .faq-answer { display: block; }

    /* ─── ABOUT FLOATING TEXT ─── */
    .about-image-badge { animation: float 4s ease-in-out 0.5s infinite, bounce-in 0.6s ease-out 0.3s both; }

    /* ─── COACH CARD FLOAT ─── */
    .coach-card:nth-child(1) { animation: floatSlow 5s ease-in-out infinite; }
    .coach-card:nth-child(2) { animation: floatSlow 5s ease-in-out 1.5s infinite; }
    .coach-card:nth-child(3) { animation: floatSlow 5s ease-in-out 0.8s infinite; }

    /* ─── SWING ANIMATION (for swing icon) ─── */
    .swing { animation: swing 2s ease-in-out infinite; transform-origin: top center; }

    /* ─── NEON GLOW ON TEXT ─── */
    .neon-glow { animation: neon-flicker 4s ease-in-out infinite; }

    /* ─── MORPHING CARD BORDER ─── */
    .morph { animation: morph 6s ease-in-out infinite; }

    /* ─── STARS TWINKLE ─── */
    .star-twinkle { animation: star-twinkle 2s ease-in-out infinite; }

    /* ─── GLOW RING ON AVAILABILITY BADGE ─── */
    .glow-ring { animation: glow-pulse 2.5s ease-in-out infinite; }

    /* ─── ICON BOUNCE ON REVEAL ─── */
    .icon-bounce { animation: icon-bounce-in 0.6s cubic-bezier(0.68,-0.55,0.27,1.55) both; }

    /* ─── SPLIT / CIRCLE IN ─── */
    .split-in { animation: split-in 0.8s ease-out both; }

    /* ─── SCROLL HINT (mouse wheel icon) ─── */
    .scroll-hint { animation: scroll-hint 2s ease-in-out infinite; }

    /* ─── RING EXPAND (hover effect) ─── */
    .ring-expand-wrap { position: relative; display: inline-block; }
    .ring-expand-wrap::after {
      content: '';
      position: absolute;
      inset: -4px;
      border-radius: 50%;
      border: 2px solid var(--blue-bright);
      animation: ring-expand 1.5s ease-out infinite;
    }

    /* ─── GRADIENT SHIFT BACKGROUND ─── */
    .gradient-shift {
      background: linear-gradient(135deg, var(--blue-deep) 0%, #3BB8AF 50%, var(--blue-deep) 100%);
      background-size: 200% 100%;
      animation: gradient-shift 6s ease infinite;
    }

    /* ─── BORDER DANCE ─── */
    .border-dance {
      background: linear-gradient(90deg, var(--blue-bright), #4ADE80, var(--coral), var(--blue-bright)) 0% 0% / 200% 100%;
      animation: border-dance 3s linear infinite;
    }

    /* ─── LOADING / SKELETON PULSE ─── */
    .skeleton {
      background: linear-gradient(90deg, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0.12) 50%, rgba(255,255,255,0.05) 100%);
      background-size: 200% 100%;
      animation: gradient-shift 1.5s ease infinite;
    }

    /* ─── IN-VIEW POP ─── */
    .inView-pop { opacity: 0; }
    .inView-pop.pop { animation: inView-pop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both; }

    /* ─── SECTION ENTRANCE ─── */
    .section-entrance { animation: section-entrance 0.6s ease-out both; }

    /* ─── TRUST ITEM STAGGER ─── */
    .trust-item:nth-child(1) .icon { animation: float 3.5s ease-in-out infinite; }
    .trust-item:nth-child(2) .icon { animation: float 3.5s ease-in-out 0.6s infinite; }
    .trust-item:nth-child(3) .icon { animation: float 3.5s ease-in-out 1.2s infinite; }
    .trust-item:nth-child(4) .icon { animation: float 3.5s ease-in-out 1.8s infinite; }
    .trust-item:nth-child(5) .icon { animation: float 3.5s ease-in-out 0.3s infinite; }

    /* ─── TRUST BAR BACKGROUND ─── */
    .trust-bar {
      background: linear-gradient(90deg, var(--blue-deep) 0%, #3BB8AF 50%, var(--blue-deep) 100%);
      background-size: 200% 100%;
      animation: gradient-shift 8s ease infinite;
    }

    /* ─── SLOT BADGE PULSE ─── */
    .slot-badge { }

    /* ─── COACH CARD NAME SKEW ─── */
    .coach-name { transition: color 0.3s ease, transform 0.3s ease; }
    .coach-card:hover .coach-name { color: var(--blue-bright); transform: skewX(-3deg); }

    /* ─── COACH IMAGE HOVER ─── */
    .coach-card .coach-img { transition: transform 0.5s ease; }
    .coach-card:hover .coach-img { transform: scale(1.08) rotate(-1deg); }

    /* ─── COACH SHIMMER ─── */
    .coach-photo { position: relative; overflow: hidden; }
    .coach-photo::after {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 50%;
      height: 100%;
      background: linear-gradient(
        105deg,
        transparent 0%,
        rgba(255,255,255,0.28) 50%,
        transparent 100%
      );
      transform: translateX(-150%) skewX(-18deg);
      animation: shimmer 3.5s ease-in-out infinite;
      pointer-events: none;
    }
    @keyframes shimmer {
      0%   { transform: translateX(-150%) skewX(-18deg); }
      60%  { transform: translateX(200%) skewX(-18deg); }
      100% { transform: translateX(200%) skewX(-18deg); }
    }

    /* ─── COACH RING ON HOVER ─── */
    .coach-img-wrap { position: relative; display: inline-block; }
    .coach-img-wrap::before {
      content: '';
      position: absolute;
      inset: -4px;
      border-radius: 50%;
      border: 3px solid var(--blue-bright);
      opacity: 0;
      transition: opacity 0.3s ease, transform 0.3s ease;
      transform: scale(0.8);
    }
    .coach-card:hover .coach-img-wrap::before {
      opacity: 1;
      transform: scale(1);
      animation: ring-expand 1.5s ease-out infinite;
    }

    /* ─── STAR RATING TWINKLE ─── */
    .testimonial-card:nth-child(1) .stars { animation-delay: 0s; }
    .testimonial-card:nth-child(2) .stars { animation-delay: 0.3s; }
    .testimonial-card:nth-child(3) .stars { animation-delay: 0.6s; }
    .testimonial-card:nth-child(4) .stars { animation-delay: 0.9s; }
    .testimonial-card:nth-child(5) .stars { animation-delay: 1.2s; }
    .testimonial-card:nth-child(6) .stars { animation-delay: 0.2s; }
    .testimonial-card:nth-child(7) .stars { animation-delay: 0.5s; }
    .testimonial-card:nth-child(8) .stars { animation-delay: 0.8s; }
    .stars { transition: transform 0.3s ease; }
    .testimonial-card:hover .stars { animation: star-twinkle 1s ease-in-out; }

    /* ─── ABOUT IMAGE SWING BADGE ─── */
    .about-image-badge { animation: float 4s ease-in-out 0.5s infinite, bounce-in 0.6s ease-out 0.3s both; }

    /* ─── SECTION LABEL SLIDE ─── */
    .section-label { position: relative; display: inline-block; }
    .section-label::after {
      content: '';
      position: absolute;
      bottom: -4px;
      left: 0;
      width: 40px;
      height: 2px;
      background: var(--coral);
      border-radius: 2px;
      transition: width 0.4s ease;
    }
    .section-label:hover::after, .reveal.visible .section-label::after { width: 100%; }

    /* ─── CLASS CARD BADGE SWING ─── */
    .card-tag { animation: bounce-in 0.6s ease-out 0.3s both; }

    /* ─── T&C TOGGLE HOVER ─── */
    .tc-toggle-btn {
      transition: background 0.3s ease, transform 0.2s ease, box-shadow 0.3s ease;
    }
    .tc-toggle-btn:hover {
      background: var(--blue-deep);
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(11,36,71,0.2);
    }

    /* ─── FOOTER LOGO ANIMATION ─── */
    .footer-logo-text { transition: color 0.3s ease; }
    .footer:hover .footer-logo-text { color: var(--blue-bright); }

    /* ─── FOOTER SOCIAL ICONS ─── */
    .social-link {
      transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), color 0.3s ease, background 0.3s ease;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 42px;
      height: 42px;
      border-radius: 50%;
      background: rgba(255,255,255,0.08);
      border: 1px solid rgba(255,255,255,0.1);
    }
    .social-link:hover {
      transform: translateY(-4px) scale(1.1);
      background: var(--blue-bright);
      color: #fff;
      box-shadow: 0 8px 24px rgba(0,180,216,0.3);
    }

    /* ─── PRICING TABLE ROW HOVER ─── */
    .pricing-table tr { transition: background 0.2s ease; }
    .pricing-table tr:hover { background: rgba(0,180,216,0.05); }

    /* ─── AVAILABILITY SLOTS LOADING ─── */
    .slot-loading .slot-time { animation: skeleton 1.5s ease infinite; }
    .slot-loading .slot-time:nth-child(2) { animation-delay: 0.2s; }
    .slot-loading .slot-time:nth-child(3) { animation-delay: 0.4s; }
    .slot-loading .slot-time:nth-child(4) { animation-delay: 0.6s; }

    /* ─── COUNTER BOX ─── */
    .counter-box {
      background: var(--white);
      border-radius: 16px;
      padding: 32px 24px;
      text-align: center;
      box-shadow: 0 4px 20px rgba(0,0,0,0.08);
      border: 1px solid rgba(0,180,216,0.1);
      transition: transform 0.3s ease, box-shadow 0.3s ease;
    }
    .counter-box:hover { transform: translateY(-6px) scale(1.03); box-shadow: 0 16px 48px rgba(0,0,0,0.12); }
    .counter-num { font-size: 2.8rem; font-weight: 800; color: var(--blue-deep); line-height: 1; }
    .counter-label { font-size: 0.85rem; color: var(--text-mid); margin-top: 6px; font-weight: 500; }

    /* ─── ABOUT COUNTER SECTION ─── */
    .counters-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 24px;
      margin: 48px 0 0;
    }

    /* ─── SPINNER ─── */
    .spinner {
      width: 20px; height: 20px;
      border: 3px solid rgba(0,180,216,0.2);
      border-top-color: var(--blue-bright);
      border-radius: 50%;
      animation: dash-spin 0.8s linear infinite;
    }

    /* ─── NAV SCROLL HINT ─── */
    .hero .scroll-hint-arrow {
      position: absolute;
      bottom: 24px;
      left: 50%;
      transform: translateX(-50%);
      animation: scroll-hint 2s ease-in-out infinite;
      opacity: 0.7;
    }

    /* ─── COUNTER INVIEW ─── */
    .counter-box { opacity: 0; transform: translateY(20px); }
    .counter-box.inview { animation: inView-pop 0.5s cubic-bezier(0.34,1.56,0.64,1) both; }
    .counter-box:nth-child(1) { animation-delay: 0s; }
    .counter-box:nth-child(2) { animation-delay: 0.1s; }
    .counter-box:nth-child(3) { animation-delay: 0.2s; }
    .counter-box:nth-child(4) { animation-delay: 0.3s; }

    /* ─── TYPEWRITER EFFECT ─── */
    .typewriter {
      overflow: hidden;
      white-space: nowrap;
      border-right: 3px solid var(--coral);
      animation: blink-caret 0.8s step-end infinite;
      display: inline-block;
    }
    @keyframes blink-caret {
      0%, 100% { border-color: var(--coral); }
      50% { border-color: transparent; }
    }

    /* ─── GLITCH TEXT ─── */
    .glitch {
      position: relative;
      display: inline-block;
    }
    .glitch::before, .glitch::after {
      content: attr(data-text);
      position: absolute;
      top: 0; left: 0;
      width: 100%; height: 100%;
    }
    .glitch::before {
      color: var(--coral);
      animation: glitch-1 2.5s infinite linear alternate-reverse;
      clip-path: polygon(0 0, 100% 0, 100% 35%, 0 35%);
    }
    .glitch::after {
      color: var(--blue-bright);
      animation: glitch-2 3s infinite linear alternate-reverse;
      clip-path: polygon(0 65%, 100% 65%, 100% 100%, 0 100%);
    }
    @keyframes glitch-1 {
      0% { transform: translateX(0); }
      20% { transform: translateX(-3px); }
      40% { transform: translateX(3px); }
      60% { transform: translateX(-2px); }
      80% { transform: translateX(2px); }
      100% { transform: translateX(0); }
    }
    @keyframes glitch-2 {
      0% { transform: translateX(0); }
      20% { transform: translateX(3px); }
      40% { transform: translateX(-3px); }
      60% { transform: translateX(2px); }
      80% { transform: translateX(-2px); }
      100% { transform: translateX(0); }
    }

    /* ─── RIPPLE ON CLICK ─── */
    .ripple-btn {
      position: relative;
      overflow: hidden;
    }
    .ripple-btn .ripple-circle {
      position: absolute;
      border-radius: 50%;
      background: rgba(255,255,255,0.4);
      transform: scale(0);
      animation: ripple-out 0.6s ease-out forwards;
      pointer-events: none;
    }
    @keyframes ripple-out {
      to { transform: scale(4); opacity: 0; }
    }

    /* ─── MAGNETIC CURSOR (cards/buttons) ─── */
    .magnetic { transition: transform 0.2s ease; }

    /* ─── PARALLAX SHAPES ─── */
    .parallax-shape {
      position: absolute;
      border-radius: 50%;
      pointer-events: none;
      z-index: 0;
    }
    .ps-1 {
      width: 300px; height: 300px;
      background: radial-gradient(circle, rgba(0,180,216,0.08) 0%, transparent 70%);
      top: 10%; left: -80px;
      animation: floatSlow 8s ease-in-out infinite;
    }
    .ps-2 {
      width: 200px; height: 200px;
      background: radial-gradient(circle, rgba(74,222,128,0.06) 0%, transparent 70%);
      bottom: 20%; right: -40px;
      animation: floatSlow 10s ease-in-out 2s infinite;
    }
    .ps-3 {
      width: 150px; height: 150px;
      background: radial-gradient(circle, rgba(255,107,107,0.07) 0%, transparent 70%);
      top: 40%; right: 10%;
      animation: floatSlow 7s ease-in-out 1s infinite;
    }

    /* ─── RADAR PING ─── */
    .radar-wrap { position: relative; display: inline-block; }
    .radar-wrap::before {
      content: '';
      position: absolute;
      inset: -8px;
      border-radius: 50%;
      border: 2px solid var(--blue-bright);
      animation: radar-ping 2s ease-out infinite;
      opacity: 0;
    }
    @keyframes radar-ping {
      0% { transform: scale(0.8); opacity: 0.8; }
      100% { transform: scale(1.8); opacity: 0; }
    }

    /* ─── SPOTLIGHT REVEAL ─── */
    .spotlight-reveal {
      position: relative;
      overflow: hidden;
    }
    .spotlight-reveal::after {
      content: '';
      position: absolute;
      top: 0; left: -100%;
      width: 60px; height: 100%;
      background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15), transparent);
      animation: spotlight-sweep 3s ease-in-out infinite;
    }
    @keyframes spotlight-sweep {
      0% { left: -60px; }
      50%, 100% { left: 120%; }
    }

    /* ─── SHAKE ON HOVER ─── */
    .shake:hover { animation: shake 0.5s ease-in-out; }
    @keyframes shake {
      0%, 100% { transform: translateX(0); }
      20% { transform: translateX(-4px) rotate(-1deg); }
      40% { transform: translateX(4px) rotate(1deg); }
      60% { transform: translateX(-3px) rotate(-0.5deg); }
      80% { transform: translateX(3px) rotate(0.5deg); }
    }

    /* ─── TILT 3D CARD ─── */
    .tilt-card { transform-style: preserve-3d; transition: transform 0.4s ease; }
    .tilt-card:hover { transform: perspective(1000px) rotateX(2deg) rotateY(-2deg) translateY(-4px); }

    /* ─── CONFETTI PARTICLE ─── */
    .confetti-piece {
      position: fixed;
      width: 10px; height: 10px;
      top: -10px;
      border-radius: 2px;
      animation: confetti-fall linear forwards;
      pointer-events: none;
      z-index: 9999;
    }
    @keyframes confetti-fall {
      0% { transform: translateY(0) rotate(0deg); opacity: 1; }
      100% { transform: translateY(100vh) rotate(720deg); opacity: 0; }
    }

    /* ─── PULSE RING (hover glow) ─── */
    .pulse-ring {
      position: relative;
    }
    .pulse-ring::before {
      content: '';
      position: absolute;
      inset: -4px;
      border-radius: inherit;
      border: 2px solid var(--blue-bright);
      animation: pulse-ring 1.5s ease-out infinite;
      opacity: 0;
    }
    @keyframes pulse-ring {
      0% { transform: scale(0.95); opacity: 0.8; }
      100% { transform: scale(1.3); opacity: 0; }
    }

    /* ─── FLOATING LABEL BADGE ─── */
    .float-badge {
      position: absolute;
      top: -10px; right: -10px;
      background: var(--coral);
      color: #fff;
      font-size: 0.65rem;
      font-weight: 700;
      padding: 3px 8px;
      border-radius: 50px;
      animation: float-badge-bounce 2s ease-in-out infinite;
      z-index: 2;
    }
    @keyframes float-badge-bounce {
      0%, 100% { transform: translateY(0) rotate(-3deg); }
      50% { transform: translateY(-4px) rotate(3deg); }
    }

    /* ─── MARQUEE PAUSE ON HOVER ─── */
    .marquee-inner:hover { animation-play-state: paused; }

    /* ─── CLASS CARD 3D HOVER ─── */
    .class-card {
      transition: transform 0.4s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.4s ease;
    }
    .class-card .card-img {
      overflow: hidden;
    }
    .class-card .card-img img {
      animation: kenburns 15s ease-in-out infinite alternate;
      transform-origin: center center;
    }
    @keyframes kenburns {
      0%   { transform: scale(1.08) translate(0%, 0%); }
      33%  { transform: scale(1.12) translate(-2%, -1.5%); }
      66%  { transform: scale(1.1) translate(1.5%, -1%); }
      100% { transform: scale(1.06) translate(0%, 1%); }
    }
    .class-card:hover .card-img img,
    .class-card-full:hover .card-img img {
      animation-play-state: paused;
      transform: scale(1.06);
    }

    /* ─── CLASSES ─── */
    .testimonial-card {
      transition: transform 0.3s ease, box-shadow 0.3s ease;
    }
    .testimonial-card:hover {
      transform: translateY(-8px);
      box-shadow: 0 16px 48px rgba(11,36,71,0.12);
    }
    /* ─── PRICING CARD HOVER ─── */
    .pricing-block {
      transition: transform 0.3s ease, box-shadow 0.3s ease;
    }
    .pricing-block:hover {
      transform: translateY(-8px);
      box-shadow: 0 20px 60px rgba(11,36,71,0.15);
    }

    /* ─── WAVY TEXT ─── */
    .wavy-text span {
      display: inline-block;
      animation: wavy 2s ease-in-out infinite;
    }
    @keyframes wavy {
      0%, 100% { transform: translateY(0); }
      50% { transform: translateY(-6px); }
    }

    /* ─── INFINITY SCROLL (background decoration) ─── */
    .infinity-scroll {
      animation: marquee 30s linear infinite;
    }

    /* ─── SMOOTH PAGE LOAD ─── */
    html { scroll-behavior: smooth; }
    body { animation: page-load 0.6s ease-out both; }
    @keyframes page-load {
      from { opacity: 0; }
      to { opacity: 1; }
    }

    /* ─── NAVBAR ─── */
    nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; padding: 12px 0; transition: background 0.3s, box-shadow 0.3s, padding 0.3s; background: #000; }
    nav.scrolled { background: #000; box-shadow: 0 2px 8px rgba(0,0,0,0.3); padding: 8px 0; }
    nav.scrolled .nav-links a { color: #fff; }
    nav.scrolled .nav-links a:hover { color: var(--blue-bright); }
    nav.scrolled .nav-logo span { color: #fff; }
    nav .container { display: flex; align-items: center; justify-content: space-between; }
    .nav-logo { display: flex; align-items: center; gap: 10px; }
    .nav-links { display: flex; align-items: center; gap: 32px; }
    .nav-links a { font-size: 0.9rem; font-weight: 500; color: var(--white); transition: color 0.2s; text-shadow: 0 1px 4px rgba(0,0,0,0.3); }
    .nav-links a:hover { color: var(--blue-bright); }
    .nav-cta { display: flex; align-items: center; gap: 12px; }
    .hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; background: none; border: none; padding: 4px; }
    .hamburger span { display: block; width: 24px; height: 2.5px; background: var(--blue-deep); border-radius: 2px; transition: 0.3s; }
    .hamburger.open span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
    .hamburger.open span:nth-child(2) { opacity: 0; }
    .hamburger.open span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }

    /* Mobile nav */
    .mobile-menu { display: none; position: fixed; inset: 0; background: #000; z-index: 99; padding: 80px 24px 40px; flex-direction: column; align-items: center; gap: 24px; }
    .mobile-menu.open { display: flex; }
    .mobile-menu a { font-size: 1.1rem; font-weight: 600; color: #fff; }

    /* ─── HERO ─── */
    #hero { position: relative; height: 100vh; min-height: 600px; display: flex; align-items: flex-end; overflow: hidden; }
    .hero-bg { position: absolute; inset: 0; border-radius: 0; overflow: hidden; }
    .hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: center top; border-radius: 0; }
    .hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(11,36,71,0.52) 0%, rgba(11,36,71,0.28) 60%, rgba(11,36,71,0.45) 100%); border-radius: 0; }
    .hero-content { position: relative; z-index: 2; color: var(--white); padding: 0 0 80px 64px; }
    .hero-badge { display: inline-flex; align-items: center; gap: 8px; background: rgba(255,255,255,0.15); backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,0.25); padding: 6px 16px; border-radius: 50px; font-size: 0.8rem; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 24px; color: rgba(255,255,255,0.95); }
    .hero-badge .dot { width: 8px; height: 8px; border-radius: 50%; background: #4ADE80; box-shadow: 0 0 8px #4ADE80; }
    .hero h1 { font-size: clamp(2.8rem, 6vw, 4.5rem); font-weight: 800; line-height: 1.1; margin-bottom: 20px; font-family: 'Brice Semi Condensed', 'Poppins', sans-serif; }
    .hero h1 .brand { display: block; }
    .hero h1 .slogan { display: block; font-size: 0.55em; font-weight: 400; opacity: 0.85; letter-spacing: 0.5px; margin-top: 8px; }
    .hero p { font-size: clamp(1rem, 2vw, 1.25rem); opacity: 0.9; line-height: 1.7; margin-bottom: 36px; max-width: 520px; }
    .hero-actions { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
    .hero-scroll { display: none; }
    .hero-stats { display: none; }

    /* ─── TRUST BAR ─── */
    .trust-bar { background: var(--blue-deep); padding: 32px 0; }
    .trust-items { display: flex; justify-content: center; flex-wrap: wrap; gap: 40px; align-items: flex-start; }
    .trust-item { display: flex; align-items: flex-start; gap: 12px; color: rgba(255,255,255,0.85); font-size: 0.9rem; font-weight: 500; max-width: 180px; }
    .trust-item .icon { width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,0.1); display: flex; align-items: center; justify-content: center; font-size: 1.1rem; flex-shrink: 0; }
    .trust-item strong { color: var(--white); display: block; }
    .trust-item span { display: block; opacity: 0.75; line-height: 1.4; }

    /* ─── ABOUT ─── */
    #about { background: var(--off-white); }
    .about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; margin-top: 56px; }
    .about-image { position: relative; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-lg); }
    .about-image img { width: 100%; height: 480px; object-fit: cover; }
    .about-image-badge { position: absolute; bottom: 20px; left: 20px; background: var(--white); border-radius: var(--radius-sm); padding: 12px 18px; box-shadow: var(--shadow-md); display: flex; align-items: center; gap: 10px; font-size: 0.85rem; font-weight: 600; color: var(--blue-deep); }
    .about-image-badge .emoji { font-size: 1.4rem; }
    .about-features { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 8px; }
    .about-feature { display: flex; gap: 14px; }
    .about-feature .af-icon { width: 44px; height: 44px; border-radius: var(--radius-sm); background: var(--blue-pale); display: flex; align-items: center; justify-content: center; font-size: 1.2rem; flex-shrink: 0; }
    .about-feature .af-title { font-size: 0.95rem; font-weight: 700; color: var(--blue-deep); margin-bottom: 4px; }
    .about-feature .af-desc { font-size: 0.82rem; color: var(--text-mid); line-height: 1.5; }

    /* ─── CLASSES ─── */
    .classes-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 56px; }
    .class-card { background: var(--white); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); border: 1.5px solid #E8F0FA; transition: transform 0.3s, box-shadow 0.3s; position: relative; }
    .class-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
    .class-card .card-img { height: 200px; overflow: hidden; }
    .class-card .card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
    .class-card:hover .card-img img { transform: scale(1.06); }
    .class-card .card-body { padding: 24px; }
    .class-card .card-tag { margin-bottom: 10px; }
    .class-card h3 { font-size: 1.2rem; font-weight: 700; color: var(--blue-deep); margin-bottom: 8px; font-family: 'Brice Semi Condensed', 'Poppins', sans-serif; }
    .class-card p { font-size: 0.875rem; color: var(--text-mid); line-height: 1.6; margin-bottom: 16px; }
    .class-card .card-details { display: flex; flex-direction: column; gap: 6px; border-top: 1px solid #EEF2F8; padding-top: 16px; }
    .class-card-full {
      background: var(--white);
      border-radius: var(--radius);
      overflow: hidden;
      box-shadow: var(--shadow-sm);
      border: 1.5px solid #E8F0FA;
      transition: transform 0.3s, box-shadow 0.3s;
      /* same card format but full width — sit outside the grid */
    }
    .class-card-full:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
    .class-card-full .card-img { height: 300px; }
    .class-card-full .card-img img { height: 100%; }
    .class-card .detail { display: flex; align-items: center; gap: 8px; font-size: 0.82rem; color: var(--text-mid); }
    .class-card .detail .emoji { font-size: 0.9rem; }

    /* ─── PRICING ─── */
    #pricing { background: var(--off-white); }
    .pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 56px; }
    .pricing-block { background: var(--white); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); border: 1.5px solid #E8F0FA; }
    .pricing-header { padding: 24px 28px; border-bottom: 2px solid var(--blue-pale); }
    .pricing-header h3 { font-size: 1.1rem; font-weight: 800; color: var(--blue-deep); margin-bottom: 4px; font-family: 'Brice Semi Condensed', 'Poppins', sans-serif; }
    .pricing-header .pricing-sub { font-size: 0.78rem; color: var(--text-light); }
    .pricing-table { width: 100%; border-collapse: collapse; }
    .pricing-table td { padding: 14px 28px; font-size: 0.875rem; color: var(--text-mid); border-bottom: 1px solid #F1F5F9; vertical-align: middle; }
    .pricing-table tr:last-child td { border-bottom: none; }
    .pricing-table tr:hover td { background: var(--blue-pale); }
    .pricing-table .pkg-name { font-weight: 600; color: var(--text-dark); }
    .pricing-table .pkg-size { display: inline-block; padding: 2px 10px; border-radius: 50px; font-size: 0.72rem; font-weight: 700; margin-left: 2px; vertical-align: middle; }
    .pricing-table .pkg-size.sz-single { background: #DBEAFE; color: #1E40AF; }
    .pricing-table .pkg-size.sz-pair { background: #FEF9C3; color: #854D0E; }
    .pricing-table .pkg-size.sz-group { background: #DCFCE7; color: #166534; }
    .pricing-table .price { font-weight: 800; font-size: 1.05rem; color: var(--blue-deep); white-space: nowrap; }
    .pricing-table .price span { font-size: 0.72rem; font-weight: 500; color: var(--text-light); }
    .pricing-note { padding: 14px 28px; background: var(--blue-pale); font-size: 0.75rem; color: var(--blue-mid); line-height: 1.5; }

    /* ─── COACHES ─── */
    .coaches-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 56px; max-width: 1000px; margin-left: auto; margin-right: auto; }
    .coach-card { background: var(--white); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); border: 1.5px solid #E8F0FA; text-align: center; transition: transform 0.3s, box-shadow 0.3s; }
    .coach-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
    .coach-photo { height: 280px; overflow: hidden; border-radius: var(--radius); }
    .coach-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; border-radius: var(--radius); }
    .coach-body { padding: 24px; }
    .coach-body h3 { font-size: 1.1rem; font-weight: 700; color: var(--blue-deep); margin-bottom: 4px; font-family: 'Brice Semi Condensed', 'Poppins', sans-serif; }
    .coach-body .role { font-size: 0.8rem; font-weight: 600; color: var(--blue-bright); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 12px; }
    .coach-body p { font-size: 0.85rem; color: var(--text-mid); line-height: 1.6; }
    .coach-badges { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
    .coach-badge { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: 50px; font-size: 0.72rem; font-weight: 600; background: var(--blue-pale); color: var(--blue-mid); }

    /* ─── TESTIMONIALS ─── */
    #testimonials { background: var(--blue-deep); }
    #testimonials .section-title { color: var(--white); }
    #testimonials .section-sub { color: rgba(255,255,255,0.7); }
    /* Override old card styles in testimonials — carousel uses its own .testimonial-card */
    #testimonials .testimonial-card {
      background: unset !important;
      border: none !important;
      border-radius: unset !important;
      padding: unset !important;
      backdrop-filter: unset !important;
      box-shadow: unset !important;
    }
    #testimonials .testimonial-card .stars { color: #FFB800; font-size: 0.9rem; margin-bottom: 14px; letter-spacing: 2px; }
    #testimonials .testimonial-card .quote { font-size: 0.95rem; color: rgba(255,255,255,0.88); line-height: 1.65; margin-bottom: 18px; font-style: italic; }
    #testimonials .testimonial-card .author { display: flex; align-items: center; gap: 12px; }
    .testimonials-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 56px; }

    /* ─── T&C DOWNLOADS ─── */
    #terms { background: var(--white); }
    .tc-toggle-wrap { text-align: center; margin-top: 32px; }
    .tc-toggle-btn {
      background: var(--blue-deep);
      color: #fff;
      border: none;
      cursor: pointer;
      font-size: 1rem;
      padding: 14px 32px;
      border-radius: 50px;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-family: inherit;
      transition: background 0.2s;
    }
    .tc-toggle-btn:hover { background: var(--blue-mid); }
    .tc-grid { display: none; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-top: 40px; max-width: 800px; margin-left: auto; margin-right: auto; }
    .tc-grid.open { display: grid; }
    .tc-item {
      display: flex;
      align-items: center;
      gap: 16px;
      background: var(--off-white);
      border: 1.5px solid #E8F0FA;
      border-radius: var(--radius-sm);
      padding: 18px 22px;
      text-decoration: none;
      color: var(--text-dark);
      font-weight: 600;
      font-size: 0.9rem;
      transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
    }
    .tc-item:hover {
      border-color: var(--blue-bright);
      box-shadow: var(--shadow-sm);
      transform: translateY(-2px);
    }
    .tc-item .tc-icon { font-size: 1.6rem; flex-shrink: 0; }
    .tc-item .tc-label { line-height: 1.4; }
    .tc-item .tc-sub { font-size: 0.75rem; color: var(--text-light); font-weight: 400; margin-top: 2px; }
    .testimonial-card { background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.12); border-radius: var(--radius); padding: 22px; backdrop-filter: blur(8px); }
    .testimonial-card .stars { color: #FCD34D; font-size: 0.85rem; margin-bottom: 12px; letter-spacing: 2px; }
    .testimonial-card .quote { font-size: 0.82rem; color: rgba(255,255,255,0.88); line-height: 1.65; margin-bottom: 18px; font-style: italic; }
    .testimonial-card .author { display: flex; align-items: center; gap: 12px; }
    .testimonial-card .author-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--blue-bright); display: flex; align-items: center; justify-content: center; font-weight: 700; color: var(--white); font-size: 0.9rem; }
    .testimonial-card .author-name { font-size: 0.85rem; font-weight: 600; color: var(--white); }
    .testimonial-card .author-kid { font-size: 0.75rem; color: rgba(255,255,255,0.6); }

    /* ─── CTA BANNER ─── */
    #cta { background: var(--white); }
    .cta-banner { background: linear-gradient(135deg, var(--blue-deep) 0%, var(--blue-mid) 100%); border-radius: 24px; padding: 72px 64px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 48px; overflow: hidden; position: relative; }
    .cta-banner::before { content: ''; position: absolute; right: -60px; top: -60px; width: 300px; height: 300px; border-radius: 50%; background: rgba(0,180,216,0.12); }
    .cta-banner::after { content: ''; position: absolute; right: 40px; bottom: -80px; width: 200px; height: 200px; border-radius: 50%; background: rgba(13,148,136,0.1); }
    .cta-banner h2 { font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 800; color: var(--white); line-height: 1.2; margin-bottom: 12px; position: relative; z-index: 1; font-family: 'Brice Semi Condensed', 'Poppins', sans-serif; }
    .cta-banner p { font-size: 1rem; color: rgba(255,255,255,0.75); position: relative; z-index: 1; }
    .cta-actions { display: flex; flex-direction: column; gap: 12px; position: relative; z-index: 1; }

    /* ─── CONTACT ─── */
    #contact { background: var(--off-white); }
    .contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; margin-top: 56px; }
    .contact-info { display: flex; flex-direction: column; gap: 24px; }
    .contact-item { display: flex; gap: 16px; }
    .contact-item .ci-icon { width: 48px; height: 48px; border-radius: var(--radius-sm); background: var(--blue-pale); display: flex; align-items: center; justify-content: center; font-size: 1.2rem; flex-shrink: 0; }
    .contact-item .ci-label { font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--text-light); margin-bottom: 4px; }
    .contact-item .ci-value { font-size: 0.95rem; font-weight: 600; color: var(--blue-deep); }
    .contact-item .ci-value a:hover { color: var(--coral); }
    .contact-map { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-md); height: 320px; }
    .contact-map iframe { width: 100%; height: 100%; border: none; }
    .whatsapp-card { background: var(--white); border-radius: var(--radius); padding: 32px; box-shadow: var(--shadow-md); border: 2px solid #E8F4FD; }
    .whatsapp-card h3 { font-size: 1.2rem; font-weight: 700; color: var(--blue-deep); margin-bottom: 8px; }
    .whatsapp-card p { font-size: 0.875rem; color: var(--text-mid); margin-bottom: 20px; line-height: 1.6; }

    /* ─── FOOTER ─── */
    footer { background: #000; color: rgba(255,255,255,0.75); padding: 64px 0 32px; }
    .footer-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 48px; padding-bottom: 48px; border-bottom: 1px solid rgba(255,255,255,0.1); }
    .footer-brand .footer-logo { font-size: 1.3rem; font-weight: 800; color: var(--white); margin-bottom: 12px; }
    .footer-brand .footer-logo span { color: var(--blue-bright); }
    .footer-brand p { font-size: 0.85rem; line-height: 1.7; max-width: 280px; }
    .footer-col h4 { font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 2px; color: var(--white); margin-bottom: 16px; }
    .footer-col ul { display: flex; flex-direction: column; gap: 10px; }
    .footer-col ul a { font-size: 0.875rem; transition: color 0.2s; }
    .footer-col ul a:hover { color: var(--blue-bright); }
    .footer-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 28px; font-size: 0.8rem; flex-wrap: wrap; gap: 12px; }
    .footer-bottom a { color: rgba(255,255,255,0.5); transition: color 0.2s; }
    .footer-bottom a:hover { color: var(--blue-bright); }

    /* ─── SCROLL PROGRESS BAR ─── */
    #scrollProgress { position: fixed; top: 0; left: 0; height: 3px; background: linear-gradient(90deg, var(--blue-bright), var(--coral)); z-index: 9999; width: 0%; transition: width 0.1s linear; pointer-events: none; }

    /* ─── 3D SCROLL ANIMATIONS ─── */
    .reveal {
      opacity: 0;
      transform: translateZ(-120px) rotateX(18deg) translateY(60px);
      transition: opacity 0.9s cubic-bezier(0.16,1,0.3,1),
                  transform 1.1s cubic-bezier(0.16,1,0.3,1);
      will-change: transform, opacity;
      backface-visibility: hidden;
    }
    .reveal.visible { opacity: 1; transform: translateZ(0) rotateX(0) translateY(0); }
    .reveal-delay-1 { transition-delay: 0.12s; }
    .reveal-delay-2 { transition-delay: 0.24s; }
    .reveal-delay-3 { transition-delay: 0.36s; }
    .reveal-delay-4 { transition-delay: 0.48s; }

    /* ─── 3D CARD HOVER ─── */
    .class-card, .coach-card, .pricing-block {
      transform-style: preserve-3d;
      transition: transform 0.5s cubic-bezier(0.16,1,0.3,1), box-shadow 0.4s;
    }
    .class-card:hover, .coach-card:hover {
      transform: perspective(1000px) rotateX(-5deg) rotateY(5deg) translateZ(24px);
      box-shadow: -20px 20px 60px rgba(11,36,71,0.18), 0 0 30px rgba(0,180,216,0.12);
    }
    .pricing-block:hover {
      transform: perspective(1000px) rotateX(-3deg) rotateY(3deg) translateZ(20px);
    }

    /* ─── 3D PARALLAX HERO ─── */
    .hero-bg {
      position: absolute; inset: 0;
      transform: translateZ(-80px) scale(1.08);
      will-change: transform;
    }
    .hero-overlay {
      position: absolute; inset: 0;
      background: linear-gradient(135deg, rgba(11,36,71,0.72) 0%, rgba(25,55,109,0.55) 50%, rgba(11,36,71,0.75) 100%);
      transform: translateZ(-40px) scale(1.04);
      will-change: transform;
    }
    .hero-content {
      position: relative; z-index: 2;
      transform: translateZ(0);
    }

    /* ─── FLOATING 3D GEOMETRIC SHAPES ─── */
    /* removed */



    /* ─── 3D ABOUT IMAGE ─── */
    .about-img-wrap {
      perspective: 1000px;
    }
    .about-img-wrap img {
      transform-style: preserve-3d;
      transition: transform 0.6s cubic-bezier(0.16,1,0.3,1);
    }
    .about-img-wrap:hover img {
      transform: rotateY(-10deg) rotateX(5deg) translateZ(20px);
    }
    .about-img-wrap::after {
      content: '';
      position: absolute; inset: -14px;
      border: 2px solid rgba(0,180,216,0.25);
      border-radius: 18px;
      transform: translateZ(-30px) rotateY(8deg);
      transition: transform 0.6s cubic-bezier(0.16,1,0.3,1);
    }
    .about-img-wrap:hover::after {
      transform: translateZ(-40px) rotateY(4deg);
    }

    /* ─── 3D COACH AVATAR ─── */
    .coach-avatar-wrap {
      perspective: 800px;
      display: inline-block;
    }
    .coach-avatar-wrap img {
      transform-style: preserve-3d;
      transition: transform 0.5s cubic-bezier(0.16,1,0.3,1);
    }
    .coach-avatar-wrap:hover img {
      transform: rotateY(-12deg) rotateX(6deg) translateZ(16px);
    }

    /* ─── SCROLL-BASED PARALLAX (JS-driven) ─── */
    [data-depth] { will-change: transform; }

    /* ─── RESPONSIVE ─── */

    /* ── Tablet (768px–1024px) ── */
    @media (max-width: 1024px) {
      .classes-grid { grid-template-columns: repeat(2, 1fr); }
      .coaches-grid { grid-template-columns: repeat(2, 1fr); }
      .testimonials-grid { grid-template-columns: 1fr 1fr; }
      .about-grid { gap: 48px; }
      .footer-grid { grid-template-columns: 1fr 1fr; }
      .counters-grid { grid-template-columns: repeat(2, 1fr); }

      /* Day tabs — wrap on tablet, keep visible */
      .slot-day-selector { flex-wrap: wrap; gap: 8px; justify-content: center; }
      .day-btn { padding: 8px 18px; font-size: 0.88rem; }

      /* Private lessons callout — flex naturally with gap */
      .private-lessons-callout { flex-direction: column; align-items: flex-start; gap: 20px; padding: 24px 24px; }
      .private-lessons-callout .btn { width: 100%; justify-content: center; }

      /* Coach profile — reduce gap, keep 2-col */
      .coach-profile { gap: 32px; }
      .coach-profile-text { font-size: 0.92rem; }

      /* Slots grid — 3-col on tablet landscape */
      .slots-grid { grid-template-columns: repeat(3, 1fr); }

      /* Group class full-width card */
      .class-card-full .card-img { height: 240px; }

      /* Marquee font size */
      .marquee-inner span { font-size: 0.85rem; color: #fff; }

      /* Trust counter */
      .counters-grid { gap: 20px; }
      .counter-box { padding: 24px 16px; }

      /* Contact section */
      .contact-grid { gap: 32px; }

      /* CTA banner */
      .cta-banner { padding: 48px 32px; }
    }

    /* ── Mobile (below 768px) ── */
    @media (max-width: 768px) {
      nav { background: rgba(0,0,0,0.85) !important; backdrop-filter: blur(8px); }
      .hamburger span { background: var(--white); }
      .nav-cta .btn-whatsapp { padding: 7px 12px; font-size: 0.8rem; }
      .section-pad { padding: 56px 0; }
      .nav-links, .nav-cta .btn-outline { display: none; }
      .hamburger { display: flex; }
      .hero-bg { transform: none !important; -webkit-transform: none !important; }
      .hero-overlay { transform: none !important; -webkit-transform: none !important; }
      .hero-stats { display: none; }
      .about-grid { grid-template-columns: 1fr; }
      .about-image { height: 280px; }
      .about-image img { height: 280px; }
      .about-features { grid-template-columns: 1fr; }
      .about-features .about-feature { flex-direction: row; text-align: left; }
      .about-feature .af-icon { font-size: 1.5rem; }
      .classes-grid { grid-template-columns: 1fr; }
      .coaches-grid { grid-template-columns: 1fr; max-width: 360px; margin-left: auto; margin-right: auto; }
      .testimonials-grid { grid-template-columns: 1fr; }
      .contact-grid { grid-template-columns: 1fr; }
      .cta-banner { padding: 40px 24px; text-align: center; }
      .cta-actions { flex-direction: row; justify-content: center; flex-wrap: wrap; gap: 12px; }
      .cta-banner h2 { font-size: 1.6rem; }
      .footer-grid { grid-template-columns: 1fr; gap: 32px; }
      .footer-bottom { flex-direction: column; text-align: center; }
      .tc-grid { grid-template-columns: 1fr; }
      .counters-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
      .counter-box { padding: 20px 16px; }
      .coach-profile { grid-template-columns: 1fr !important; gap: 24px !important; }
      .coach-profile.reverse { direction: ltr !important; }
      .coach-profile-img { aspect-ratio: 4/5; margin-top: 0; }
      .counter-num { font-size: 2rem; }
      /* Marquee mobile */
      .marquee-inner { animation-duration: 15s; }
      .marquee-section { padding: 12px 0; }
      /* Hero scroll arrow */
      .hero .scroll-hint-arrow { display: none; }
      /* Pricing */
      .pricing-grid { grid-template-columns: 1fr; max-width: 400px; margin-left: auto; margin-right: auto; }
      .pricing-block.popular { margin-top: 16px; }
      /* Availability slots */
      .slots-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
      /* Day tabs — 3 per row on mobile */
      .slot-day-selector { flex-wrap: wrap; gap: 8px; }
      .day-btn { padding: 8px 14px; font-size: 0.82rem; }
      /* Private lessons callout — stacked with full-width button */
      .private-lessons-callout { flex-direction: column; align-items: flex-start; gap: 16px; padding: 24px 20px; }
      .private-lessons-callout .btn { width: 100%; justify-content: center; }
      /* Group class full-width card */
      .class-card-full { margin-bottom: 0; }
      .class-card-full .card-img { height: 200px; }
      /* CTA section */
      .cta-banner { grid-template-columns: 1fr; }
      /* Footer */
      .footer-grid { grid-template-columns: 1fr; }
      .footer-brand { text-align: center; }
      .footer-brand p { max-width: 100%; margin: 0 auto; }
      .footer-brand .footer-slogan { text-align: center; }
      .footer-links { text-align: center; }
      .footer-social { justify-content: center; }
      /* Why Bishan — 1 col on mobile */
      .why-bishan-grid { grid-template-columns: 1fr; }
      /* Level cards — 1 col on mobile */
      .levels-grid { grid-template-columns: 1fr; }
      /* Info strip — stacked */
      .info-strip-items { flex-direction: column; gap: 20px; }
      .info-strip-divider { display: none; }
      .info-strip-item { padding: 0 16px; }
    }

    /* ── Small Mobile (below 480px) ── */
    @media (max-width: 480px) {
      .nav-logo img { height: 40px !important; }
      .hero { align-items: flex-end; }
      .hero-bg { transform: none !important; -webkit-transform: none !important; }
      .hero-overlay { transform: none !important; -webkit-transform: none !important; }
      .hero-content { padding: 0 20px 60px 20px; text-align: center; }
      .hero-badge { margin-left: auto; margin-right: auto; }
      .hero h1 { font-size: 1.9rem; }
      .hero-actions { flex-direction: column; align-items: stretch; gap: 12px; }
      .hero-actions .btn { width: 100%; justify-content: center; font-size: 1rem; padding: 14px 24px; }
      .hero .scroll-hint-arrow { display: none; }
      .section-title { font-size: 1.7rem; }
      .section-label { font-size: 0.7rem; letter-spacing: 2px; }
      .about-image { height: 220px; }
      .about-image img { height: 220px; }
      .coaches-grid { grid-template-columns: 1fr; max-width: 320px; }
      .coach-card .coach-img { height: 240px; }
      .classes-grid { grid-template-columns: 1fr; }
      .class-card .card-img { height: 200px; }
      .pricing-grid { grid-template-columns: 1fr; }
      .counters-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
      .counter-box { padding: 16px 12px; }
      .counter-num { font-size: 1.8rem; }
      .counter-label { font-size: 0.75rem; }
      .testimonials-grid { grid-template-columns: 1fr; }
      .contact-grid { grid-template-columns: 1fr; }
      .contact-form { padding: 24px; }
      .cta-banner { padding: 36px 20px; }
      .cta-banner h2 { font-size: 1.5rem; }
      .cta-actions { flex-direction: column; }
      .cta-actions .btn { width: 100%; }
      /* Private lessons callout */
      .private-lessons-callout { padding: 20px 16px; gap: 14px; }
      .footer { padding: 48px 0 24px; }
      .footer-brand p { max-width: 100%; }
      .footer-links { text-align: center; }
      .footer-social { justify-content: center; }
      .footer-bottom { align-items: center; gap: 12px; }
      .slots-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
      .slot-card { padding: 12px; }
      .slot-time { font-size: 0.8rem; }
      .tc-grid { grid-template-columns: 1fr; }
      .class-card .card-body { padding: 16px; }
      .class-card h3 { font-size: 1.05rem; }
      .card-details { flex-direction: column; gap: 6px; }
      /* Trust marquee */
      .marquee-inner span { font-size: 0.8rem !important; color: #fff; padding-right: 40px !important; }
      .marquee-section { padding: 14px 0; }
      /* Day tabs — 2 per row on small mobile */
      .slot-day-selector { flex-wrap: wrap; gap: 6px; }
      .day-btn { padding: 7px 10px; font-size: 0.78rem; }
      /* Group card */
      .class-card-full .card-img { height: 180px; }
      .class-card-full .card-body { padding: 16px; }
    }

    /* ─── Slots Grid ─── */
    .slots-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
      margin-top: 36px;
    }
    .slot-card {
      background: white;
      border-radius: 12px;
      padding: 20px;
      box-shadow: 0 2px 12px rgba(0,0,0,0.06);
      border: 1px solid #e8e8e8;
      text-align: center;
      transition: transform 0.2s, box-shadow 0.2s;
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .slot-card:hover {
      transform: translateY(-3px);
      box-shadow: 0 6px 20px rgba(0,0,0,0.1);
    }
    .slot-time {
      font-size: 1.05rem;
      font-weight: 700;
      color: var(--blue-deep);
      margin-bottom: 0;
    }
    .slot-level {
      font-size: 0.8rem;
      color: var(--text-mid);
      text-transform: uppercase;
      letter-spacing: 1px;
      margin-bottom: 0;
    }
    .slot-bar-wrap {
      background: #f0f0f0;
      border-radius: 8px;
      height: 10px;
      overflow: hidden;
      margin: 4px 0;
    }
    .slot-bar-fill {
      height: 100%;
      border-radius: 8px;
      background: linear-gradient(90deg, #38b2ac, #4fd1c5);
      transition: width 0.6s ease;
    }
    .slot-bar-fill.almost-full {
      background: linear-gradient(90deg, #e67e22, #f39c12);
    }
    .slot-bar-fill.full {
      background: linear-gradient(90deg, #e74c3c, #c0392b);
    }
    .slot-numbers {
      font-size: 0.9rem;
      color: var(--text-mid);
    }
    .slot-numbers strong {
      color: var(--blue-deep);
    }
    .slot-badge {
      display: inline-block;
      padding: 3px 10px;
      border-radius: 20px;
      font-size: 0.75rem;
      font-weight: 600;
    }
    .slot-badge.open {
      background: #d1fae5;
      color: #065f46;
    }
    .slot-badge.filling {
      background: #fef3c7;
      color: #92400e;
    }
    .slot-badge.full {
      background: #fee2e2;
      color: #991b1b;
    }
    .slot-error {
      text-align: center;
      color: var(--text-mid);
      padding: 40px 0;
    }

    /* ─── CONTACT PAGE ─── */
    .contact-layout {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 64px;
      align-items: start;
    }
    .contact-methods {
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .contact-method {
      display: flex;
      align-items: flex-start;
      gap: 16px;
      padding: 20px;
      background: var(--off-white);
      border-radius: var(--radius);
      text-decoration: none;
      color: inherit;
      transition: transform 0.2s, box-shadow 0.2s, background 0.2s;
      border: 1.5px solid transparent;
    }
    .contact-method:hover {
      transform: translateY(-2px);
      box-shadow: var(--shadow-md);
      background: var(--white);
      border-color: rgba(0,180,216,0.15);
    }
    .contact-method[style*="cursor:default"]:hover {
      transform: none;
      box-shadow: none;
      background: var(--off-white);
      border-color: transparent;
    }
    .cm-icon {
      width: 52px;
      height: 52px;
      border-radius: var(--radius-sm);
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }
    .cm-label {
      font-size: 0.72rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 1.5px;
      color: var(--text-light);
      margin-bottom: 3px;
    }
    .cm-value {
      font-size: 1rem;
      font-weight: 600;
      color: var(--text-dark);
      margin-bottom: 3px;
    }
    .cm-note {
      font-size: 0.8rem;
      color: var(--text-light);
      line-height: 1.4;
    }
    .contact-form-card {
      background: var(--white);
      border-radius: var(--radius);
      padding: 40px;
      box-shadow: var(--shadow-lg);
      border: 1.5px solid rgba(0,180,216,0.1);
    }
    .form-group {
      margin-bottom: 20px;
    }
    .form-group label {
      display: block;
      font-size: 0.8rem;
      font-weight: 600;
      color: var(--text-dark);
      margin-bottom: 8px;
      letter-spacing: 0.3px;
    }
    .form-group input,
    .form-group select,
    .form-group textarea {
      width: 100%;
      padding: 12px 16px;
      border: 2px solid #E2E8F0;
      border-radius: var(--radius-sm);
      font-family: 'Poppins', sans-serif;
      font-size: 0.9rem;
      color: var(--text-dark);
      background: var(--off-white);
      transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
      outline: none;
      -webkit-appearance: none;
      appearance: none;
    }
    .form-group input:focus,
    .form-group select:focus,
    .form-group textarea:focus {
      border-color: var(--blue-bright);
      background: var(--white);
      box-shadow: 0 0 0 4px rgba(79,209,197,0.12);
    }
    .form-group textarea {
      resize: vertical;
      min-height: 120px;
    }
    .form-group select {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23718096' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 14px center;
      padding-right: 40px;
      cursor: pointer;
    }
    .form-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }
    .form-success,
    .form-error {
      display: flex;
      align-items: flex-start;
      gap: 14px;
      padding: 18px 20px;
      border-radius: var(--radius-sm);
      margin-top: 16px;
      font-size: 0.875rem;
      line-height: 1.5;
    }
    .form-success {
      background: #d1fae5;
      color: #065f46;
      border: 1.5px solid #6ee7b7;
    }
    .form-success svg { color: #059669; flex-shrink: 0; margin-top: 2px; }
    .form-success a { color: #059669; font-weight: 600; }
    .form-error {
      background: #fee2e2;
      color: #991b1b;
      border: 1.5px solid #fca5a5;
    }
    .form-error svg { color: #dc2626; flex-shrink: 0; margin-top: 2px; }
    .form-error a { color: #991b1b; font-weight: 600; }
    .map-wrapper {
      border-radius: var(--radius);
      overflow: hidden;
      box-shadow: var(--shadow-md);
    }
    .location-cards {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
    }
    .location-card {
      display: flex;
      align-items: flex-start;
      gap: 14px;
      padding: 20px;
      background: var(--white);
      border-radius: var(--radius);
      box-shadow: var(--shadow-sm);
    }
    .location-card .lc-icon {
      font-size: 1.4rem;
      flex-shrink: 0;
      line-height: 1;
      margin-top: 2px;
    }
    .location-card strong {
      display: block;
      font-size: 0.875rem;
      font-weight: 700;
      color: var(--text-dark);
      margin-bottom: 4px;
    }
    .location-card p {
      font-size: 0.8rem;
      color: var(--text-mid);
      line-height: 1.5;
    }

    /* ─── MEDIA QUERIES — CONTACT ─── */
    @media (max-width: 900px) {
      .contact-layout {
        grid-template-columns: 1fr;
        gap: 40px;
      }
      .form-row {
        grid-template-columns: 1fr;
      }
      .location-cards {
        grid-template-columns: 1fr;
      }
      .contact-form-card {
        padding: 28px 24px;
      }
    }

    /* Day selector buttons */

    .day-btn {
      padding: 10px 28px;
      border-radius: 50px;
      border: 2px solid var(--blue-teal);
      background: white;
      color: var(--blue-teal);
      font-weight: 600;
      font-size: 0.95rem;
      cursor: pointer;
      transition: all 0.2s;
    }
    .day-btn:hover {
      background: rgba(79, 209, 197, 0.08);
    }
    .day-btn.active {
      background: var(--blue-teal);
      color: white;
    }

    /* Day selector buttons */
