
  :root{
    --off-white:#F5F1EA;
    --charcoal:#171310;
    --beige-deep:#e21e1f;
    --olive:#e21e1f;
    --olive-deep:#0D0D0D;
    --olive-line:#e21e1f;
    --ink:#F5F1EA;
    --ink-strong:#F5F1EA;
    --max: 1180px;
    --logo-red: #e21e1f;
  }
  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    margin:0;
    background:var(--charcoal);
    color:var(--ink-strong);
    font-family:'Fraunces', serif;
    font-optical-sizing:auto;
    -webkit-font-smoothing:antialiased;
  }
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *{ animation:none !important; transition:none !important; }
  }

  h1,h2,h3, .display{
    font-family:'Anton', sans-serif;
    font-weight:400;
    text-transform:uppercase;
    letter-spacing:0.01em;
    line-height:0.94;
    margin:0;
  }
  .mono{
    font-family:'Space Mono', monospace;
    text-transform:uppercase;
    letter-spacing:0.14em;
    font-size:0.72rem;
  }
  a{ color:inherit; }
  img{ max-width:100%; display:block; }
  .wrap{
    max-width:var(--max);
    margin:0 auto;
    padding:0 32px;
  }
  @media (max-width:640px){ .wrap{ padding:0 20px; } }

  /* ---------- floor-mark motif: the signature element ----------
     Rehearsal-room spike tape marks — the little dashes and X's
     dancers use to remember where to stand — used here as the
     page's recurring divider / bullet / section-index system. */
  .tape-row{
    display:flex;
    align-items:center;
    gap:10px;
    color:var(--olive-line);
  }
  .tape-row .dash{
    width:26px; height:3px; background:currentColor; flex:none;
  }
  .tape-row .x{
    font-family:'Space Mono', monospace;
    font-size:0.85rem;
  }
  .tape-divider{
    display:flex; align-items:center; gap:8px;
    color:var(--olive-line);
    margin:0;
    opacity:0.7;
  }
  .tape-divider .seg{ height:2px; background:currentColor; }
  .tape-divider .seg.s1{ width:40px; }
  .tape-divider .seg.s2{ width:12px; }
  .tape-divider .dot{ width:5px; height:5px; border-radius:50%; background:currentColor; }

  /* ---------- header / nav ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:50;
    background:rgba(23,19,16,0.86);
    backdrop-filter:blur(6px);
    border-bottom:1px solid rgba(255,255,255,0.08);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 32px;
    max-width:var(--max); margin:0 auto;
  }
  .nav-mark{
    display:flex; align-items:baseline; gap:8px;
    font-family:'Anton', sans-serif; font-size:1.1rem; letter-spacing:0.04em;
  }
  .nav-logo{ height:34px; width:auto; display:block; }
  .nav-mark span{ font-family:'Space Mono', monospace; font-size:0.6rem; color:var(--olive); letter-spacing:0.1em; }
  .nav-links{
    display:flex; gap:28px; list-style:none; margin:0; padding:0;
    font-family:'Space Mono', monospace; font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase;
  }
  .nav-links a{ text-decoration:none; opacity:0.75; transition:opacity .2s; }
  .nav-links a:hover{ opacity:1; }
  .nav-cta{
    font-family:'Space Mono', monospace; font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase;
    background:var(--olive); color:var(--olive-deep);
    padding:10px 18px; text-decoration:none; border:1px solid var(--olive);
    transition:background .2s, color .2s;
  }
  .nav-cta:hover{ background:transparent; color:var(--olive); }
  .nav-toggle{
    display:none; background:none; border:none; cursor:pointer;
    flex-direction:column; justify-content:center; gap:5px;
    width:34px; height:34px; padding:0;
  }
  .nav-toggle span{
    display:block; width:100%; height:2px; background:var(--ink-strong);
    transition:transform .3s ease, opacity .3s ease;
  }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

  .mobile-menu{
    display:none;
    flex-direction:column;
    background:var(--charcoal);
    border-bottom:1px solid rgba(255,255,255,0.08);
    max-height:0;
    overflow:hidden;
    transition:max-height .35s ease;
  }
  .mobile-menu.open{ max-height:420px; }
  .mobile-menu a{
    padding:16px 32px;
    font-family:'Space Mono', monospace; font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase;
    text-decoration:none; color:var(--ink-strong);
    border-top:1px solid rgba(255,255,255,0.08);
  }
  .mobile-menu a.mobile-cta{ color:var(--olive); }

  @media (max-width:820px){
    .nav-toggle{ display:flex; }
    .mobile-menu{ display:flex; }
    .nav-links{ display:none; }
  }

  /* ---------- hero ---------- */
  .hero{
    background:var(--olive-deep);
    color:var(--off-white);
    padding:120px 0;
    position:relative;
    overflow:hidden;
  }
  .hero::before{
    /* subtle grain / wall-texture, evokes painted street signage rather than a flat gradient */
    content:"";
    position:absolute; inset:0;
    background-image:
      radial-gradient(circle at 20% 30%, rgba(212,0,0,0.08), transparent 40%),
      radial-gradient(circle at 80% 70%, rgba(212,0,0,0.09), transparent 45%);
    pointer-events:none;
  }
  .hero-inner{ position:relative; z-index:1; }
  .hero .mono{ color:var(--beige-deep); }
  .hero-logo{
    display:block;
    width:min(88%, 620px);
    height:auto;
    margin-top:40px;
    filter:drop-shadow(0 0 46px rgba(212,0,0,0.30));
  }
  .hero-tagline{
    margin-top:34px;
    max-width:520px;
    font-family:'Fraunces', serif;
    font-style:italic;
    font-weight:400;
    font-size:1.25rem;
    line-height:1.5;
    color:var(--off-white);
    opacity:0.92;
  }
  .hero-actions{
    margin-top:40px;
    display:flex; gap:16px; flex-wrap:wrap; align-items:center;
  }
  .btn-primary{
    font-family:'Space Mono', monospace; font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase;
    background:var(--olive); color:var(--olive-deep);
    padding:16px 28px; text-decoration:none; display:inline-block;
    border:1px solid var(--olive);
    transition:transform .18s ease;
  }
  .btn-primary:hover{ transform:translateY(-2px); }
  .btn-ghost{
    font-family:'Space Mono', monospace; font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--off-white); text-decoration:none;
    border-bottom:1px solid var(--olive-line); padding-bottom:3px;
  }
  .hero-floor{
    margin-top:70px;
    display:flex; gap:22px; flex-wrap:wrap;
    font-family:'Space Mono', monospace; font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--beige-deep);
  }
  .hero-floor .mark{ display:flex; align-items:center; gap:8px; }
  .hero-floor .mark .box{
    background-color: var(--beige-deep);
    width:19px; 
    height:9px; 
    border-radius: 5px;
    border:1px solid var(--beige-deep);
  }

  /* ---------- section shell ---------- */
  section{ padding:110px 0; }
  @media (max-width:820px){ section{ padding:76px 0; } }
  .eyebrow{
    display:flex; align-items:center; gap:12px;
    margin-bottom:22px;
  }
  .section-head{
    display:flex; justify-content:space-between; align-items:flex-end; gap:40px;
    margin-bottom:56px;
    flex-wrap:wrap;
  }
  .section-head h2{ font-size:clamp(2.2rem, 5vw, 3.6rem); }
  .section-head p{ max-width:360px; font-size:0.98rem; line-height:1.6; opacity:0.78; margin:0; }

  /* ---------- about ---------- */
  .about{ background:var(--charcoal); }
  .about-grid{
    display:grid; grid-template-columns: 0.9fr 1.1fr; gap:70px;
  }
  @media (max-width:820px){ .about-grid{ grid-template-columns:1fr; gap:36px; } }
  .about-lede{
    font-family:'Fraunces', serif; font-style:italic; font-weight:400;
    font-size:clamp(1.5rem, 3vw, 2rem); line-height:1.45; color:var(--off-white);
  }
  .about-body p{ font-size:1.02rem; line-height:1.75; color:var(--ink-strong); opacity:0.85; }
  .about-stats{
    margin-top:36px; display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
  }
  .about-stats .stat b{ font-family:'Anton',sans-serif; font-size:2.2rem; color:var(--olive); display:block; }
  .about-stats .stat span{ font-family:'Space Mono',monospace; font-size:0.66rem; letter-spacing:0.08em; text-transform:uppercase; opacity:0.65; }

  /* ---------- schedule / call sheet ---------- */
  .schedule{ background:var(--charcoal); }
  .callsheet{
    border-top:2px solid var(--olive);
  }
  .cs-row{
    display:grid;
    grid-template-columns: 90px 1.4fr 0.9fr 1fr 1.1fr;
    gap:18px;
    padding:20px 0;
    border-bottom:1px solid rgba(255,255,255,0.14);
    align-items:center;
  }
  .cs-row.head{
    font-family:'Space Mono', monospace; font-size:0.66rem; letter-spacing:0.1em; text-transform:uppercase;
    opacity:0.6; border-bottom:1px solid rgba(255,255,255,0.3); padding-bottom:14px;
  }
  @media (max-width:820px){
    .cs-row{ grid-template-columns: 60px 1fr 1fr; }
    .cs-row .col-time, .cs-row .col-instructor{ display:none; }
  }
  .cs-tag{
    font-family:'Space Mono', monospace; font-size:0.66rem; letter-spacing:0.06em;
    display:inline-block; padding:5px 8px; border:1px solid var(--off-white);
  }
  .cs-tag.beg{ background:transparent; border-color:var(--off-white); color:var(--off-white); }
  .cs-tag.int{ background:var(--olive); color:var(--olive-deep); border-color:var(--olive); }
  .cs-tag.adv{ background:var(--off-white); color:var(--olive-deep); border-color:var(--off-white); }
  .cs-tag.fit{ background:transparent; border-color:var(--beige-deep); color:var(--beige-deep); }
  .cs-tag.dance{ background:var(--olive); color:var(--olive-deep); border-color:var(--olive); }
  .cs-style{ font-family:'Anton', sans-serif; font-size:1.15rem; text-transform:uppercase; }
  .cs-meta{ font-family:'Space Mono', monospace; font-size:0.78rem; opacity:0.75; }

  /* ---------- instructors (roster) ---------- */
  .roster-dark{ background:var(--olive-deep); color:var(--off-white); }
  .roster-dark .section-head p{ color:var(--beige-deep); opacity:1; }
  .roster-dark .tape-row{ color:var(--olive-line); }

  .roster-row{
    display:flex;
    gap:16px;
    flex-wrap:wrap;
  }
  .roster-card{
    flex:1 1 160px;
    min-width:150px;
    max-width:220px;
  }
  .roster-photo{
    position:relative;
    aspect-ratio:3/4;
    overflow:visible;
    clip-path:polygon(14% 0%, 100% 0%, 86% 100%, 0% 100%);
    background:linear-gradient(160deg, var(--olive) 0%, var(--olive-deep) 100%);
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .roster-initial{
    font-family:'Anton', sans-serif;
    font-size:5.5rem;
    color:rgba(255,255,255,0.14);
  }
  .roster-num{
    position:absolute;
    left:0; bottom:14%;
    font-family:'Space Mono', monospace;
    font-weight:700;
    font-size:0.85rem;
    padding:6px 16px 6px 10px;
    background:var(--olive);
    color:var(--olive-deep);
    clip-path:polygon(0 0, 100% 0, 78% 100%, 0 100%);
  }
  .roster-name{
    margin-top:16px;
    font-family:'Anton', sans-serif;
    font-size:1.15rem;
    text-transform:uppercase;
  }
  .roster-name a{ color:inherit; text-decoration:none; border-bottom:1px solid transparent; transition:border-color .2s; }
  .roster-name a:hover{ border-bottom-color:var(--olive); }
  .roster-style{
    font-family:'Space Mono', monospace;
    font-size:0.68rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--beige-deep);
    margin-top:4px;
  }
  .roster-tags{
    display:flex;
    gap:6px;
    margin-top:10px;
  }
  @media (max-width:600px){
    .roster-row{ gap:20px; flex-direction:column; align-items:center; }
    .roster-card{ flex:1 1 100%; max-width:400px; width:100%; }
  }

  /* ---------- gallery ---------- */
  .gallery{ background:var(--olive-deep); color:var(--off-white); }
  .gallery .section-head p{ color:var(--beige-deep); opacity:1; }
  .gallery-grid{
    display:grid; grid-template-columns:repeat(4, 1fr); grid-auto-rows:150px; gap:10px;
  }
  .gallery-grid > div{
    background:linear-gradient(150deg, rgba(212,0,0,0.14), rgba(212,0,0,0.02));
    border:1px solid rgba(212,0,0,0.24);
    display:flex; align-items:center; justify-content:center;
    font-family:'Space Mono', monospace; font-size:0.66rem; letter-spacing:0.08em; color:var(--beige-deep);
    text-transform:uppercase;
  }
  .gallery-grid > :first-child{ grid-column:span 2; grid-row:span 2; }
  .gallery-grid > :nth-child(6){ grid-column:span 2; }
  .gallery-grid .video-frame{
    position:relative;
    display:block;
    width:100%;
    overflow:hidden;
    isolation:isolate;
    aspect-ratio:16/9;
    min-height:100%;
    background:#080706;
    border:1px solid rgba(245,241,234,0.22);
    box-shadow:0 22px 50px rgba(0,0,0,0.32);
  }
  .video-frame::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(120deg, rgba(226,30,31,0.18), transparent 42%, rgba(0,0,0,0.38));
    mix-blend-mode:screen;
  }
  .video-frame .video-player{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    border:0;
    display:block;
    object-fit:contain;
    background:#080706;
  }
  .video-kicker{
    position:absolute;
    top:18px;
    left:20px;
    z-index:3;
    color:var(--off-white);
    text-shadow:0 1px 8px rgba(0,0,0,0.55);
  }
  .video-play{
    position:absolute;
    left:50%;
    top:50%;
    z-index:3;
    display:flex;
    align-items:center;
    gap:12px;
    transform:translate(-50%,-50%);
    padding:13px 18px 13px 13px;
    border:1px solid rgba(245,241,234,0.7);
    border-radius:0;
    background:rgba(23,19,16,0.78);
    color:var(--off-white);
    cursor:pointer;
    font-family:'Space Mono', monospace;
    font-size:0.68rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    backdrop-filter:blur(8px);
    transition:background .2s ease, transform .2s ease, opacity .2s ease;
  }
  .video-play:hover{ background:var(--logo-red); transform:translate(-50%,-50%) scale(1.03); }
  .play-icon{
    width:28px;
    height:28px;
    display:block;
    background:var(--off-white);
    clip-path:polygon(0 0, 100% 50%, 0 100%);
  }
  .video-caption{
    position:absolute;
    right:20px;
    top:18px;
    z-index:3;
    display:flex;
    gap:12px;
    color:var(--off-white);
    font-family:'Space Mono', monospace;
    font-size:0.62rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    text-shadow:0 1px 8px rgba(0,0,0,0.55);
  }
  .video-caption span:first-child{ color:var(--logo-red); }
  .video-frame.playing .video-play{ opacity:0; pointer-events:none; }
  .video-frame.playing::after{ opacity:0.35; }
  .video-frame .video-controls{
    position:absolute;
    inset:auto 0 0;
    z-index:4;
    display:flex;
    align-items:center;
    gap:14px;
    min-height:58px;
    padding:18px 20px 14px;
    border:0;
    background:linear-gradient(transparent, rgba(0,0,0,0.88));
    color:var(--off-white);
    text-transform:none;
  }
  .video-control{
    display:grid;
    place-items:center;
    flex:none;
    width:30px;
    height:30px;
    padding:0;
    border:0;
    background:transparent;
    color:inherit;
    cursor:pointer;
    opacity:0.88;
    transition:opacity .18s ease, color .18s ease;
  }
  .video-control:hover{ opacity:1; color:var(--logo-red); }
  .video-control:focus-visible, .video-play:focus-visible, .video-progress:focus-visible{
    outline:2px solid var(--off-white);
    outline-offset:3px;
  }
  .video-control svg{
    width:19px;
    height:19px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.6;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .volume-slash{ display:none; }
  .video-frame.muted .volume-wave{ display:none; }
  .video-frame.muted .volume-slash{ display:block; }
  .control-play-icon{
    width:11px;
    height:13px;
    background:currentColor;
    clip-path:polygon(0 0, 100% 50%, 0 100%);
  }
  .video-frame.playing .control-play-icon{
    width:11px;
    height:13px;
    clip-path:none;
    background:linear-gradient(90deg, currentColor 0 35%, transparent 35% 65%, currentColor 65% 100%);
  }
  .video-seek{ display:flex; align-items:center; flex:1; min-width:40px; }
  .video-progress{
    width:100%;
    height:3px;
    margin:0;
    appearance:none;
    -webkit-appearance:none;
    border:0;
    border-radius:0;
    background:linear-gradient(to right, var(--logo-red) var(--progress, 0%), rgba(245,241,234,0.38) var(--progress, 0%));
    cursor:pointer;
  }
  .video-progress::-webkit-slider-thumb{
    width:9px;
    height:9px;
    appearance:none;
    -webkit-appearance:none;
    border:0;
    border-radius:50%;
    background:var(--off-white);
  }
  .video-progress::-moz-range-thumb{
    width:9px;
    height:9px;
    border:0;
    border-radius:50%;
    background:var(--off-white);
  }
  .video-time{
    flex:none;
    color:rgba(245,241,234,0.82);
    font-family:'Space Mono', monospace;
    font-size:0.62rem;
    white-space:nowrap;
    text-transform:none;
    letter-spacing:0;
  }
  .video-frame:fullscreen{ width:100vw; height:100vh; aspect-ratio:auto; background:#080706; }
  .video-frame:fullscreen .video-player{ object-fit:contain; }
  .sr-only{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }
  @media (max-width:700px){
    .gallery-grid{
      grid-template-columns:repeat(2, minmax(0, 1fr));
      grid-auto-rows:minmax(120px, auto);
    }
    .gallery-grid > :first-child{ grid-column:1 / -1; grid-row:auto; min-width:0; }
    .gallery-grid > :first-child .video-frame{ min-height:0; aspect-ratio:16/9; }
    .gallery-grid > .stagger-item:not(:first-child){
      min-width:0;
      min-height:120px;
      padding:14px;
      text-align:center;
      line-height:1.5;
      overflow-wrap:anywhere;
    }
    .video-kicker{ top:14px; left:14px; }
    .video-caption{ right:14px; top:14px; }
    .video-frame .video-controls{ gap:9px; min-height:52px; padding:16px 12px 10px; }
    .video-control{ width:26px; }
    .video-time{ font-size:0.56rem; }
  }
  @media (max-width:440px){
    .gallery-grid{ grid-template-columns:minmax(0, 1fr); }
    .gallery-grid > :first-child{ grid-column:1; }
    .gallery-grid > :nth-child(6){ grid-column:1; }
  }

  /* ---------- pricing ---------- */
  .pricing{ background:var(--charcoal); }
  .price-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; max-width:760px; }
  @media (max-width:820px){ .price-grid{ grid-template-columns:1fr; } }
  .price-card{
    background:#201A16; padding:36px 28px; border:1px solid rgba(255,255,255,0.10);
    display:flex; flex-direction:column; height:100%;
  }
  .price-name{ font-family:'Space Mono', monospace; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; opacity:0.7; }
  .price-amt{ font-family:'Anton', sans-serif; font-size:2.6rem; margin-top:10px; }
  .price-amt sup{ font-family:'Space Mono', monospace; font-size:0.9rem; }
  .price-desc{ font-size:0.9rem; opacity:0.72; margin-top:8px; line-height:1.55; }
  .price-list{ list-style:none; padding:0; margin:26px 0 0; flex:1; }
  .price-list li{
    font-size:0.92rem; padding:10px 0; border-top:1px solid rgba(255,255,255,0.10);
    display:flex; gap:10px;
  }
  .price-list li .dash{ color:var(--olive); }
  .price-cta{
    margin-top:28px; text-align:center; padding:14px; text-decoration:none;
    font-family:'Space Mono', monospace; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase;
    border:1px solid var(--olive); color:var(--olive);
    transition:background .2s, color .2s;
  }
  .price-cta:hover{ background:var(--olive); color:var(--olive-deep); }

  /* ---------- testimonials ---------- */
  .testimonials{ background:var(--charcoal); }
  .quote-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
  @media (max-width:900px){ .quote-grid{ grid-template-columns:1fr; } }
  .quote{ border-top:2px solid var(--olive); padding-top:20px; }
  .quote p{
    font-family:'Fraunces', serif; font-style:italic; font-size:1.12rem; line-height:1.6;
    margin:0 0 18px;
  }
  .quote cite{ font-family:'Space Mono', monospace; font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase; font-style:normal; opacity:0.65; }

  /* ---------- footer / contact ---------- */
  footer{ background:var(--olive-deep); color:var(--off-white); padding:90px 0 30px; }
  .footer-grid{
    display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:50px;
    padding-bottom:60px; border-bottom:1px solid rgba(255,255,255,0.14);
  }
  @media (max-width:820px){ .footer-grid{ grid-template-columns:1fr; gap:36px; } }
  .footer-mark{ font-family:'Anton', sans-serif; font-size:3.2rem; }
  .footer-logo{ height:64px; width:auto; }
  .footer-full{ font-family:'Space Mono', monospace; font-size:0.72rem; letter-spacing:0.14em; color:var(--beige-deep); margin-top:10px; }
  .footer-col h4{ font-family:'Space Mono', monospace; font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--beige-deep); margin-bottom:16px; font-weight:400; }
  .footer-col p, .footer-col a{ font-size:0.95rem; line-height:1.8; text-decoration:none; opacity:0.9; }
  .footer-col a{ display:block; }
  .map-frame{
    overflow:hidden;
    width:100%;
    aspect-ratio:4 / 3;
    border:1px solid rgba(226,30,31,0.65);
    border-radius:14px;
    background:var(--charcoal);
    box-shadow:0 8px 24px rgba(0,0,0,0.3), 0 0 0 4px rgba(226,30,31,0.08);
  }
  .map-frame iframe{
    display:block;
    width:100%;
    height:100%;
    border:0;
  }
  .footer-bottom{
    padding-top:26px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
    font-family:'Space Mono', monospace; font-size:0.66rem; letter-spacing:0.06em; opacity:0.55; text-transform:uppercase;
  }

  .whatsapp-float{
    position:fixed;
    right:24px;
    bottom:24px;
    z-index:60;
    display:grid;
    place-items:center;
    width:58px;
    height:58px;
    border:2px solid var(--off-white);
    border-radius:50%;
    background:#25D366;
    color:#102b19;
    box-shadow:0 5px 18px rgba(0,0,0,0.35);
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .whatsapp-float:hover{ transform:translateY(-3px); box-shadow:0 8px 22px rgba(0,0,0,0.42); }
  .whatsapp-float:focus-visible{ outline:3px solid var(--off-white); outline-offset:4px; }
  .whatsapp-float svg{ width:30px; height:30px; fill:currentColor; }
  @media (max-width:640px){
    .whatsapp-float{ right:16px; bottom:16px; width:54px; height:54px; }
    .whatsapp-float svg{ width:28px; height:28px; }
  }

  .reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1); }
  .reveal.in{ opacity:1; transform:translateY(0); }

  /* staggered reveal for grids — each item carries its own transition-delay,
     the parent group just flips one class when it scrolls into view */
  .stagger-item{
    opacity:0; transform:translateY(22px);
    transition:opacity .65s cubic-bezier(.22,.61,.36,1), transform .65s cubic-bezier(.22,.61,.36,1);
  }
  .stagger-group.in .stagger-item{ opacity:1; transform:translateY(0); }

  /* floor-tape scroll progress — the studio-floor motif doubling as a read-progress line */
  .progress-track{
    position:fixed; top:0; left:0; right:0; height:3px; z-index:70;
    background:rgba(255,255,255,0.12);
  }
  .progress-fill{
    height:100%; width:100%; background:var(--olive);
    transform:scaleX(0); transform-origin:0 50%;
    will-change:transform;
  }

  header{ transition:padding .35s ease, background .35s ease; }
  header.scrolled .nav{ padding:11px 32px; }
  header.scrolled{ background:rgba(23,19,16,0.96); }

  /* hero load-in: lines rise in one after another on page load */
  .hero-line{
    opacity:0; transform:translateY(26px);
    transition:opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1);
  }
  .hero.loaded .hero-line{ opacity:1; transform:translateY(0); }

  /* section index numbers count up subtly as their eyebrow scrolls in */
  .eyebrow .mono{ transition:opacity .5s ease; }


  .roster-img{
  width:100%;
  height:100%;
  object-fit: cover;
  object-position:center 20%;
}


/* SCHEDULE */
  .gdc-sch {
    --red: #E21E1F;
    --bg: #0a0a0a;
    --text: #f4f2ef;
    --mute: #8f8f8f;
    --line: rgba(255,255,255,.09);
    --card: rgba(255,255,255,.035);
    --f-display: "Anton", "Bebas Neue", Impact, "Arial Narrow", sans-serif;
    --f-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --f-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

    position: relative;
    overflow: hidden;
    padding: 76px 16px 80px;
    color: var(--text);
    font-family: var(--f-body);
    background:
      radial-gradient(60% 45% at 12% 0%, rgba(226,30,31,.18), transparent 70%),
      radial-gradient(50% 40% at 100% 100%, rgba(226,30,31,.10), transparent 70%),
      var(--bg);
    box-sizing: border-box;
  }
  .gdc-sch *, .gdc-sch *::before, .gdc-sch *::after { box-sizing: inherit; }
  .gdc-sch ul { list-style: none; margin: 0; padding: 0; }
  .gdc-sch h2, .gdc-sch h3, .gdc-sch p { margin: 0; }

  /* film-grain overlay */
  .gdc-sch::before {
    content: "";
    position: absolute; inset: 0; pointer-events: none; opacity: .07; mix-blend-mode: overlay;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  }

  .gdc-sch__inner { position: relative; max-width: 1360px; margin: 0 auto; }

  /* ---------- Heading ---------- */
  .gdc-sch__head { margin-bottom: 36px; }
  .gdc-sch__eyebrow {
    font-family: var(--f-mono); font-size: .74rem; font-weight: 700;
    letter-spacing: .24em; text-transform: uppercase; color: var(--red);
    display: flex; align-items: center; gap: 14px;
  }
  .gdc-sch__eyebrow::after { content: ""; height: 1px; width: 64px; background: var(--red); opacity: .6; }
  .gdc-sch__title {
    font-family: var(--f-display); font-weight: 400;
    font-size: clamp(2.6rem, 7.5vw, 5.4rem);
    line-height: .95; letter-spacing: .01em; text-transform: uppercase;
    margin-top: 16px;
  }
  .gdc-sch__title em { font-style: normal; color: var(--red); }
  .gdc-sch__sub { margin-top: 16px; max-width: 46ch; color: var(--mute); font-size: 1rem; line-height: 1.6; }
  .gdc-sch__sub.is-warn { color: var(--red); }

  /* ---------- Filters ---------- */
  .gdc-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
  .gdc-chip {
    font: inherit; font-family: var(--f-mono); font-size: .7rem; font-weight: 700;
    letter-spacing: .14em; text-transform: uppercase;
    color: var(--mute); background: transparent;
    border: 1px solid var(--line); border-radius: 99px;
    padding: 9px 14px; cursor: pointer;
    display: inline-flex; align-items: center; gap: 8px;
    transition: color .2s, border-color .2s, background .2s;
  }
  .gdc-chip::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--dot, var(--mute)); }
  .gdc-chip[data-filter="all"]      { --dot: var(--text); }
  .gdc-chip[data-filter="fitness"]  { --dot: var(--red); }
  .gdc-chip[data-filter="adult"]    { --dot: #ffffff; }
  .gdc-chip[data-filter="kids"]     { --dot: #f2b24c; }
  .gdc-chip[data-filter="classical"]{ --dot: #9a9a9a; }
  .gdc-chip[data-filter="workshop"] { --dot: var(--red); }
  .gdc-chip:hover { color: var(--text); border-color: rgba(255,255,255,.25); }
  .gdc-chip[aria-pressed="true"] { color: var(--text); border-color: var(--red); background: rgba(226,30,31,.14); }
  .gdc-chip:focus-visible, .gdc-tab:focus-visible, .gdc-cta:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }

  /* ---------- Mobile tabs (JS only) ---------- */
  .gdc-tabs { display: none; }

  /* ---------- Grid ---------- */
  .gdc-grid { display: grid; gap: 14px; grid-template-columns: 1fr; }

  .gdc-day {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 14px 12px 12px;
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  }
  .gdc-day__head {
    display: flex; align-items: flex-end; justify-content: space-between;
    padding: 2px 4px 14px; margin-bottom: 12px;
    border-bottom: 1px solid var(--line);
  }
  .gdc-day__name {
    font-family: var(--f-display); font-weight: 400;
    font-size: 2rem; line-height: 1; letter-spacing: .04em; text-transform: uppercase;
  }
  .gdc-day__count {
    font-family: var(--f-mono); font-size: .62rem; letter-spacing: .14em;
    text-transform: uppercase; color: var(--mute);
  }
  .gdc-day.is-today {
    border-color: rgba(226,30,31,.7);
    box-shadow: 0 0 0 1px rgba(226,30,31,.25), 0 18px 50px -18px rgba(226,30,31,.5);
    background: linear-gradient(180deg, rgba(226,30,31,.10), var(--card) 40%);
  }
  .gdc-day.is-today .gdc-day__name { color: var(--red); }
  .gdc-day.is-today .gdc-day__count { color: var(--text); }
  .gdc-day.is-today .gdc-day__count::before {
    content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 7px;
    border-radius: 50%; background: var(--red); box-shadow: 0 0 0 0 rgba(226,30,31,.7);
    animation: gdcPulse 1.8s infinite;
  }
  .gdc-day__list { display: grid; gap: 8px; }

  /* ---------- Class card ---------- */
  .gdc-class {
    --accent: #ffffff;
    position: relative; overflow: hidden;
    padding: 12px 13px 12px 16px;
    background: rgba(255,255,255,.04);
    border: 1px solid var(--line);
    border-radius: 12px;
    transition: transform .2s ease, border-color .2s ease, background .2s ease, opacity .25s ease, filter .25s ease;
    animation: gdcUp .5s cubic-bezier(.2,.7,.2,1) both;
    animation-delay: calc(var(--i, 0) * 60ms);
  }
  .gdc-class::before {
    content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--accent);
    transition: width .2s ease;
  }
  .gdc-class:hover { transform: translateY(-2px); border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.07); }
  .gdc-class:hover::before { width: 5px; }

  .gdc-class__top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
  .gdc-class__time {
    font-family: var(--f-mono); font-size: .72rem; font-weight: 700;
    letter-spacing: .04em; color: var(--accent); white-space: nowrap;
  }
  .gdc-class__top::after {
    font-family: var(--f-mono); font-size: .56rem; font-weight: 700; letter-spacing: .14em;
    text-transform: uppercase; color: var(--mute);
    border: 1px solid var(--line); border-radius: 99px; padding: 3px 7px;
  }
  .gdc-class__name {
    font-family: var(--f-display); font-weight: 400;
    font-size: 1.12rem; line-height: 1.12; letter-spacing: .04em; text-transform: uppercase;
    margin-top: 8px;
  }
  .gdc-class__who {
    display: flex; align-items: center; gap: 8px; margin-top: 9px;
    font-size: .8rem; color: var(--mute);
  }
  .gdc-av {
    width: 22px; height: 22px; border-radius: 50%; flex: none;
    display: grid; place-items: center;
    font-family: var(--f-mono); font-size: .54rem; font-weight: 700; color: var(--text);
    background: rgba(255,255,255,.08); border: 1px solid var(--line);
  }

  /* types */
  .gdc-class[data-type="fitness"]   { --accent: var(--red); }
  .gdc-class[data-type="fitness"]   .gdc-class__top::after { content: "Fit"; }
  .gdc-class[data-type="adult"]     { --accent: #ffffff; }
  .gdc-class[data-type="adult"]     .gdc-class__top::after { content: "Dance"; }
  .gdc-class[data-type="kids"]      { --accent: #f2b24c; }
  .gdc-class[data-type="kids"]      .gdc-class__top::after { content: "Kids"; }
  .gdc-class[data-type="classical"] { --accent: #9a9a9a; }
  .gdc-class[data-type="classical"] .gdc-class__top::after { content: "Classical"; }
  .gdc-class[data-type="workshop"]  {
    --accent: var(--red);
    background: linear-gradient(135deg, rgba(226,30,31,.30), rgba(226,30,31,.06));
    border-color: rgba(226,30,31,.5);
  }
  .gdc-class[data-type="workshop"] .gdc-class__top::after { content: "Workshop"; color: var(--text); border-color: rgba(226,30,31,.7); background: rgba(226,30,31,.25); }
  .gdc-class[data-type="workshop"] .gdc-class__who { color: #d6b9b9; }
  .gdc-class.is-dim { opacity: .16; filter: grayscale(1); }

  /* ---------- Footer / CTA ---------- */
  .gdc-sch__foot {
    margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--line);
    display: flex; flex-wrap: wrap; gap: 20px 32px; align-items: center; justify-content: space-between;
  }
  .gdc-sch__meta { font-family: var(--f-mono); font-size: .72rem; letter-spacing: .08em; color: var(--mute); line-height: 1.8; }
  .gdc-sch__meta a { color: var(--text); text-decoration: none; }
  .gdc-cta {
    display: inline-flex; align-items: center; gap: 10px;
    font-family: var(--f-mono); font-size: .76rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
    color: #fff; background: var(--red); text-decoration: none;
    padding: 15px 24px; border-radius: 99px;
    box-shadow: 0 10px 30px -10px rgba(226,30,31,.8);
    transition: transform .2s ease, box-shadow .2s ease;
  }
  .gdc-cta:hover { transform: translateY(-2px); box-shadow: 0 16px 36px -10px rgba(226,30,31,.9); }
  .gdc-cta span { transition: transform .2s ease; }
  .gdc-cta:hover span { transform: translateX(4px); }

  /* ---------- Free-trial booking modal ---------- */
  .gdc-modal {
    padding: 0;
    width: min(460px, calc(100% - 24px));
    max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px);
    overflow: auto;
    color: var(--text);
    font-family: var(--f-body);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 22px;
    background:
      radial-gradient(80% 50% at 0% 0%, rgba(226,30,31,.22), transparent 70%),
      #0e0e0e;
    box-shadow: 0 40px 100px -20px rgba(0,0,0,.9), 0 0 0 1px rgba(226,30,31,.15);
  }
  .gdc-modal[open] { animation: gdcPop .28s cubic-bezier(.2,.8,.2,1); }
  .gdc-modal::backdrop { background: rgba(0,0,0,.72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
  .gdc-modal__box { position: relative; padding: 28px 24px 24px; }
  .gdc-modal__close {
    position: absolute; top: 14px; right: 14px; width: 36px; height: 36px;
    border-radius: 50%; border: 1px solid var(--line); background: rgba(255,255,255,.04);
    color: var(--text); font-size: 1.3rem; line-height: 1; cursor: pointer;
    transition: border-color .2s, background .2s;
  }
  .gdc-modal__close:hover { border-color: var(--red); background: rgba(226,30,31,.15); }
  .gdc-modal__close:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
  .gdc-modal__title {
    font-family: var(--f-display); font-weight: 400; font-size: 2.3rem; line-height: 1;
    letter-spacing: .02em; text-transform: uppercase; margin-top: 12px;
  }
  .gdc-modal__title em { font-style: normal; color: var(--red); }

  .gdc-form { display: grid; gap: 14px; margin-top: 22px; }
  .gdc-form__row { display: grid; gap: 14px; grid-template-columns: 1fr; }
  .gdc-form__row[hidden] { display: none; }
  .gdc-field { display: grid; gap: 7px; min-width: 0; }
  .gdc-field label {
    font-family: var(--f-mono); font-size: .64rem; font-weight: 700;
    letter-spacing: .18em; text-transform: uppercase; color: var(--mute);
  }
  .gdc-field input, .gdc-field select {
    width: 100%; min-height: 48px; font: inherit; font-size: 1rem; color: var(--text);
    background-color: rgba(255,255,255,.05);
    border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px;
    color-scheme: dark; -webkit-appearance: none; appearance: none;
    transition: border-color .2s, background-color .2s;
  }
  .gdc-field input::placeholder { color: #5f5f5f; }
  .gdc-field select {
    padding-right: 40px; background-repeat: no-repeat; background-position: right 14px center;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  }
  .gdc-field select option { background: #111; color: #f4f2ef; }
  .gdc-field select:disabled { opacity: .45; cursor: not-allowed; }
  .gdc-field input:focus, .gdc-field select:focus { outline: none; border-color: var(--red); background-color: rgba(226,30,31,.08); }

  .gdc-form__hint { min-height: 1.25em; margin-top: -4px; font-size: .8rem; line-height: 1.4; color: #b5b5b5; }
  .gdc-form__hint.is-warn { color: #ff8b8b; }
  .gdc-form__paid-notice { margin: 0; padding: 11px 13px; border: 1px solid rgba(226,30,31,.45); border-radius: 10px; background: rgba(226,30,31,.1); color: #ffb0b0; font-size: .88rem; font-weight: 700; }
  .gdc-form__preview {
    font-family: var(--f-mono); font-size: .72rem; line-height: 1.65; color: #d4d4d4;
    background: rgba(255,255,255,.04); border: 1px dashed rgba(255,255,255,.2);
    border-radius: 12px; padding: 12px 14px; overflow-wrap: anywhere;
  }
  .gdc-form__preview-label { display: block; margin-bottom: 6px; font-size: .58rem; letter-spacing: .18em; text-transform: uppercase; color: var(--mute); }
  .gdc-form .gdc-cta { width: 100%; justify-content: center; border: 0; cursor: pointer; }

  @keyframes gdcPop { from { opacity: 0; transform: translateY(16px) scale(.97); } to { opacity: 1; transform: none; } }
  @media (min-width: 480px) { .gdc-form__row { grid-template-columns: 1fr 1fr; } }
  @media (prefers-reduced-motion: reduce) { .gdc-modal[open] { animation: none; } }

  /* ---------- Breakpoints ---------- */
  @media (min-width: 720px) {
    .gdc-grid { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
  }
  @media (min-width: 1280px) {
    .gdc-sch { padding: 96px 32px 104px; }
    .gdc-grid { grid-template-columns: repeat(7, 1fr); gap: 10px; }
    .gdc-day { padding: 14px 9px 10px; border-radius: 16px; }
    .gdc-day__head { flex-direction: column; align-items: flex-start; gap: 6px; }
    .gdc-class { padding: 11px 10px 11px 14px; }
    .gdc-class__name { font-size: 1rem; }
  }

  @media (max-width: 719px) {
    .gdc-sch { padding: 56px 14px 64px; }
    .gdc-sch.js .gdc-tabs {
      display: flex; gap: 8px; overflow-x: auto; margin: 26px -14px 16px; padding: 10px 14px;
      position: sticky; top: 0; z-index: 3;
      background: rgba(10,10,10,.82); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
      border-bottom: 1px solid var(--line);
      scrollbar-width: none;
    }
    .gdc-sch.js .gdc-tabs::-webkit-scrollbar { display: none; }
    .gdc-tab {
      flex: 1 0 auto; min-width: 58px; position: relative;
      font-family: var(--f-mono); font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
      color: var(--mute); background: transparent;
      border: 1px solid var(--line); border-radius: 99px; padding: 10px 14px; cursor: pointer;
    }
    .gdc-tab[aria-selected="true"] { color: #fff; background: var(--red); border-color: var(--red); }
    .gdc-tab.is-today:not([aria-selected="true"])::after {
      content: ""; position: absolute; top: 6px; right: 8px; width: 5px; height: 5px; border-radius: 50%; background: var(--red);
    }
    .gdc-sch.js .gdc-day { display: none; }
    .gdc-sch.js .gdc-day.is-active { display: block; }
    .gdc-sch.js .gdc-day__head { display: none; }
    .gdc-sch.js .gdc-day { padding-top: 12px; }
    .gdc-sch.js .gdc-class__name { font-size: 1.3rem; }
  }

  @keyframes gdcUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
  @keyframes gdcPulse { 70% { box-shadow: 0 0 0 8px rgba(226,30,31,0); } 100% { box-shadow: 0 0 0 0 rgba(226,30,31,0); } }
  @media (prefers-reduced-motion: reduce) {
    .gdc-class, .gdc-day.is-today .gdc-day__count::before { animation: none; }
    .gdc-class, .gdc-cta, .gdc-cta span { transition: none; }
  }


  .gdc-sch {
    --red: #E21E1F;
    --bg: #0a0a0a;
    --text: #f4f2ef;
    --mute: #8f8f8f;
    --line: rgba(255,255,255,.09);
    --card: rgba(255,255,255,.035);
    --f-display: "Anton", "Bebas Neue", Impact, "Arial Narrow", sans-serif;
    --f-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --f-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

    position: relative;
    overflow: hidden;
    padding: 72px 16px 80px;
    color: var(--text);
    font-family: var(--f-body);
    background:
      radial-gradient(60% 45% at 12% 0%, rgba(226,30,31,.18), transparent 70%),
      radial-gradient(50% 40% at 100% 100%, rgba(226,30,31,.10), transparent 70%),
      var(--bg);
    box-sizing: border-box;
  }
  .gdc-sch *, .gdc-sch *::before, .gdc-sch *::after { box-sizing: inherit; }
  .gdc-sch ul { list-style: none; margin: 0; padding: 0; }
  .gdc-sch h2, .gdc-sch h3, .gdc-sch p { margin: 0; }

  /* film-grain overlay */
  .gdc-sch::before {
    content: "";
    position: absolute; inset: 0; pointer-events: none; opacity: .07; mix-blend-mode: overlay;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  }

  .gdc-sch__inner { position: relative; max-width: 1360px; margin: 0 auto; }

  /* ---------- Heading ---------- */
  .gdc-sch__head { margin-bottom: 36px; }
  .gdc-sch__eyebrow {
    font-family: var(--f-mono); font-size: .74rem; font-weight: 700;
    letter-spacing: .24em; text-transform: uppercase; color: var(--red);
    display: flex; align-items: center; gap: 14px;
  }
  .gdc-sch__eyebrow::after { content: ""; height: 1px; width: 64px; background: var(--red); opacity: .6; }
  .gdc-sch__title {
    font-family: var(--f-display); font-weight: 400;
    font-size: clamp(2.6rem, 7.5vw, 5.4rem);
    line-height: .95; letter-spacing: .01em; text-transform: uppercase;
    margin-top: 16px;
  }
  .gdc-sch__title em { font-style: normal; color: var(--red); }
  .gdc-sch__sub { margin-top: 16px; max-width: 46ch; color: var(--mute); font-size: 1rem; line-height: 1.6; }

  /* ---------- Filters ---------- */
  .gdc-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
  .gdc-chip {
    font: inherit; font-family: var(--f-mono); font-size: .7rem; font-weight: 700;
    letter-spacing: .14em; text-transform: uppercase;
    color: var(--mute); background: transparent;
    border: 1px solid var(--line); border-radius: 99px;
    padding: 9px 14px; cursor: pointer;
    display: inline-flex; align-items: center; gap: 8px;
    transition: color .2s, border-color .2s, background .2s;
  }
  .gdc-chip::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--dot, var(--mute)); }
  .gdc-chip[data-filter="all"]      { --dot: var(--text); }
  .gdc-chip[data-filter="yoga"]     { --dot: #6fd3c0; }
  .gdc-chip[data-filter="fitness"]  { --dot: var(--red); }
  .gdc-chip[data-filter="adult"]    { --dot: #ffffff; }
  .gdc-chip[data-filter="kids"]     { --dot: #f2b24c; }
  .gdc-chip[data-filter="classical"]{ --dot: #9a9a9a; }
  .gdc-chip[data-filter="workshop"] { --dot: var(--red); }
  .gdc-chip:hover { color: var(--text); border-color: rgba(255,255,255,.25); }
  .gdc-chip[aria-pressed="true"] { color: var(--text); border-color: var(--red); background: rgba(226,30,31,.14); }
  .gdc-chip:focus-visible, .gdc-tab:focus-visible, .gdc-cta:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }

  /* ---------- Mobile tabs (JS only) ---------- */
  .gdc-tabs { display: none; }

  /* ---------- Grid ---------- */
  .gdc-grid { display: grid; gap: 14px; grid-template-columns: 1fr; }

  .gdc-day {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 14px 12px 12px;
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  }
  .gdc-day__head {
    display: flex; align-items: flex-end; justify-content: space-between;
    padding: 2px 4px 14px; margin-bottom: 12px;
    border-bottom: 1px solid var(--line);
  }
  .gdc-day__name {
    font-family: var(--f-display); font-weight: 400;
    font-size: 2rem; line-height: 1; letter-spacing: .04em; text-transform: uppercase;
  }
  .gdc-day__count {
    font-family: var(--f-mono); font-size: .62rem; letter-spacing: .14em;
    text-transform: uppercase; color: var(--mute);
  }
  .gdc-day.is-today {
    border-color: rgba(226,30,31,.7);
    box-shadow: 0 0 0 1px rgba(226,30,31,.25), 0 18px 50px -18px rgba(226,30,31,.5);
    background: linear-gradient(180deg, rgba(226,30,31,.10), var(--card) 40%);
  }
  .gdc-day.is-today .gdc-day__name { color: var(--red); }
  .gdc-day.is-today .gdc-day__count { color: var(--text); }
  .gdc-day.is-today .gdc-day__count::before {
    content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 7px;
    border-radius: 50%; background: var(--red); box-shadow: 0 0 0 0 rgba(226,30,31,.7);
    animation: gdcPulse 1.8s infinite;
  }
  .gdc-day__list { display: grid; gap: 8px; }

  /* ---------- Class card ---------- */
  .gdc-class {
    --accent: #ffffff;
    position: relative; overflow: hidden;
    padding: 12px 13px 12px 16px;
    background: rgba(255,255,255,.04);
    border: 1px solid var(--line);
    border-radius: 12px;
    transition: transform .2s ease, border-color .2s ease, background .2s ease, opacity .25s ease, filter .25s ease;
    animation: gdcUp .5s cubic-bezier(.2,.7,.2,1) both;
    animation-delay: calc(var(--i, 0) * 60ms);
  }
  .gdc-class::before {
    content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--accent);
    transition: width .2s ease;
  }
  .gdc-class:hover { transform: translateY(-2px); border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.07); }
  .gdc-class:hover::before { width: 5px; }

  .gdc-class__top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
  .gdc-class__time {
    font-family: var(--f-mono); font-size: .72rem; font-weight: 700;
    letter-spacing: .04em; color: var(--accent); white-space: nowrap;
  }
  .gdc-class__top::after {
    font-family: var(--f-mono); font-size: .56rem; font-weight: 700; letter-spacing: .14em;
    text-transform: uppercase; color: var(--mute);
    border: 1px solid var(--line); border-radius: 99px; padding: 3px 7px;
  }
  .gdc-class__name {
    font-family: var(--f-display); font-weight: 400;
    font-size: 1.12rem; line-height: 1.12; letter-spacing: .04em; text-transform: uppercase;
    margin-top: 8px;
  }
  .gdc-class__who {
    display: flex; align-items: center; gap: 8px; margin-top: 9px;
    font-size: .8rem; color: var(--mute);
  }
  .gdc-av {
    width: 22px; height: 22px; border-radius: 50%; flex: none;
    display: grid; place-items: center;
    font-family: var(--f-mono); font-size: .54rem; font-weight: 700; color: var(--text);
    background: rgba(255,255,255,.08); border: 1px solid var(--line);
  }

  /* types */
  .gdc-class[data-type="yoga"]      { --accent: #6fd3c0; }
  .gdc-class[data-type="yoga"]      .gdc-class__top::after { content: "Yoga"; }
  .gdc-class[data-type="fitness"]   { --accent: var(--red); }
  .gdc-class[data-type="fitness"]   .gdc-class__top::after { content: "Fit"; }
  .gdc-class[data-type="adult"]     { --accent: #ffffff; }
  .gdc-class[data-type="adult"]     .gdc-class__top::after { content: "Dance"; }
  .gdc-class[data-type="kids"]      { --accent: #f2b24c; }
  .gdc-class[data-type="kids"]      .gdc-class__top::after { content: "Kids"; }
  .gdc-class[data-type="classical"] { --accent: #9a9a9a; }
  .gdc-class[data-type="classical"] .gdc-class__top::after { content: "Classical"; }
  .gdc-class[data-type="workshop"]  {
    --accent: var(--red);
    background: linear-gradient(135deg, rgba(226,30,31,.30), rgba(226,30,31,.06));
    border-color: rgba(226,30,31,.5);
  }
  .gdc-class[data-type="workshop"] .gdc-class__top::after { content: "Workshop"; color: var(--text); border-color: rgba(226,30,31,.7); background: rgba(226,30,31,.25); }
  .gdc-class[data-type="workshop"] .gdc-class__who { color: #d6b9b9; }
  .gdc-class.is-dim { opacity: .16; filter: grayscale(1); }

  /* ---------- Footer / CTA ---------- */
  .gdc-sch__foot {
    margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--line);
    display: flex; flex-wrap: wrap; gap: 20px 32px; align-items: center; justify-content: space-between;
  }
  .gdc-sch__meta { font-family: var(--f-mono); font-size: .72rem; letter-spacing: .08em; color: var(--mute); line-height: 1.8; }
  .gdc-sch__meta a { color: var(--text); text-decoration: none; }
  .gdc-cta {
    display: inline-flex; align-items: center; gap: 10px;
    font-family: var(--f-mono); font-size: .76rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
    color: #fff; background: var(--red); text-decoration: none;
    padding: 15px 24px; border-radius: 99px;
    box-shadow: 0 10px 30px -10px rgba(226,30,31,.8);
    transition: transform .2s ease, box-shadow .2s ease;
  }
  .gdc-cta:hover { transform: translateY(-2px); box-shadow: 0 16px 36px -10px rgba(226,30,31,.9); }
  .gdc-cta span { transition: transform .2s ease; }
  .gdc-cta:hover span { transform: translateX(4px); }

  /* ---------- Free-trial booking modal ---------- */
  .gdc-modal {
    padding: 0;
    width: min(460px, calc(100% - 24px));
    max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px);
    overflow: auto;
    color: var(--text);
    font-family: var(--f-body);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 22px;
    background:
      radial-gradient(80% 50% at 0% 0%, rgba(226,30,31,.22), transparent 70%),
      #0e0e0e;
    box-shadow: 0 40px 100px -20px rgba(0,0,0,.9), 0 0 0 1px rgba(226,30,31,.15);
  }
  .gdc-modal[open] { animation: gdcPop .28s cubic-bezier(.2,.8,.2,1); }
  .gdc-modal::backdrop { background: rgba(0,0,0,.72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
  .gdc-modal__box { position: relative; padding: 28px 24px 24px; }
  .gdc-modal__close {
    position: absolute; top: 14px; right: 14px; width: 36px; height: 36px;
    border-radius: 50%; border: 1px solid var(--line); background: rgba(255,255,255,.04);
    color: var(--text); font-size: 1.3rem; line-height: 1; cursor: pointer;
    transition: border-color .2s, background .2s;
  }
  .gdc-modal__close:hover { border-color: var(--red); background: rgba(226,30,31,.15); }
  .gdc-modal__close:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
  .gdc-modal__title {
    font-family: var(--f-display); font-weight: 400; font-size: 2.3rem; line-height: 1;
    letter-spacing: .02em; text-transform: uppercase; margin-top: 12px;
  }
  .gdc-modal__title em { font-style: normal; color: var(--red); }

  .gdc-form { display: grid; gap: 14px; margin-top: 22px; }
  .gdc-form__row { display: grid; gap: 14px; grid-template-columns: 1fr; }
  .gdc-form__row[hidden] { display: none; }
  .gdc-field { display: grid; gap: 7px; min-width: 0; }
  .gdc-field label {
    font-family: var(--f-mono); font-size: .64rem; font-weight: 700;
    letter-spacing: .18em; text-transform: uppercase; color: var(--mute);
  }
  .gdc-field input, .gdc-field select {
    width: 100%; min-height: 48px; font: inherit; font-size: 1rem; color: var(--text);
    background-color: rgba(255,255,255,.05);
    border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px;
    color-scheme: dark; -webkit-appearance: none; appearance: none;
    transition: border-color .2s, background-color .2s;
  }
  .gdc-field input::placeholder { color: #5f5f5f; }
  .gdc-field select {
    padding-right: 40px; background-repeat: no-repeat; background-position: right 14px center;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  }
  .gdc-field select option { background: #111; color: #f4f2ef; }
  .gdc-field select:disabled { opacity: .45; cursor: not-allowed; }
  .gdc-field input:focus, .gdc-field select:focus { outline: none; border-color: var(--red); background-color: rgba(226,30,31,.08); }

  .gdc-form__hint { min-height: 1.25em; margin-top: -4px; font-size: .8rem; line-height: 1.4; color: #b5b5b5; }
  .gdc-form__hint.is-warn { color: #ff8b8b; }
  .gdc-form__paid-notice { margin: 0; padding: 11px 13px; border: 1px solid rgba(226,30,31,.45); border-radius: 10px; background: rgba(226,30,31,.1); color: #ffb0b0; font-size: .88rem; font-weight: 700; }
  .gdc-form__preview {
    font-family: var(--f-mono); font-size: .72rem; line-height: 1.65; color: #d4d4d4;
    background: rgba(255,255,255,.04); border: 1px dashed rgba(255,255,255,.2);
    border-radius: 12px; padding: 12px 14px; overflow-wrap: anywhere;
  }
  .gdc-form__preview-label { display: block; margin-bottom: 6px; font-size: .58rem; letter-spacing: .18em; text-transform: uppercase; color: var(--mute); }
  .gdc-form .gdc-cta { width: 100%; justify-content: center; border: 0; cursor: pointer; }

  @keyframes gdcPop { from { opacity: 0; transform: translateY(16px) scale(.97); } to { opacity: 1; transform: none; } }
  @media (min-width: 480px) { .gdc-form__row { grid-template-columns: 1fr 1fr; } }
  @media (prefers-reduced-motion: reduce) { .gdc-modal[open] { animation: none; } }

  /* ---------- Breakpoints ---------- */
  @media (min-width: 720px) {
    .gdc-grid { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
  }
  @media (min-width: 1280px) {
    .gdc-sch { padding: 96px 32px 104px; }
    .gdc-grid { grid-template-columns: repeat(7, 1fr); gap: 10px; }
    .gdc-day { padding: 14px 9px 10px; border-radius: 16px; }
    .gdc-day__head { flex-direction: column; align-items: flex-start; gap: 6px; }
    .gdc-class { padding: 11px 10px 11px 14px; }
    .gdc-class__name { font-size: 1rem; }
  }

  @media (max-width: 719px) {
    .gdc-sch { padding: 56px 14px 64px; }
    .gdc-sch.js .gdc-tabs {
      display: flex; gap: 8px; overflow-x: auto; margin: 26px -14px 16px; padding: 10px 14px;
      position: sticky; top: var(--gdc-sticky-top, 0px); z-index: 3;
      background: rgba(10,10,10,.82); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
      border-bottom: 1px solid var(--line);
      scrollbar-width: none;
    }
    .gdc-sch.js .gdc-tabs::-webkit-scrollbar { display: none; }
    .gdc-tab {
      flex: 1 0 auto; min-width: 58px; position: relative;
      font-family: var(--f-mono); font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
      color: var(--mute); background: transparent;
      border: 1px solid var(--line); border-radius: 99px; padding: 10px 14px; cursor: pointer;
    }
    .gdc-tab[aria-selected="true"] { color: #fff; background: var(--red); border-color: var(--red); }
    .gdc-tab.is-today:not([aria-selected="true"])::after {
      content: ""; position: absolute; top: 6px; right: 8px; width: 5px; height: 5px; border-radius: 50%; background: var(--red);
    }
    .gdc-sch.js .gdc-day { display: none; }
    .gdc-sch.js .gdc-day.is-active { display: block; }
    .gdc-sch.js .gdc-day__head { display: none; }
    .gdc-sch.js .gdc-day { padding-top: 12px; }
    .gdc-sch.js .gdc-class__name { font-size: 1.3rem; }
  }

  @keyframes gdcUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
  @keyframes gdcPulse { 70% { box-shadow: 0 0 0 8px rgba(226,30,31,0); } 100% { box-shadow: 0 0 0 0 rgba(226,30,31,0); } }
  @media (prefers-reduced-motion: reduce) {
    .gdc-class, .gdc-day.is-today .gdc-day__count::before { animation: none; }
    .gdc-class, .gdc-cta, .gdc-cta span { transition: none; }
  }




  /* Pricing */

  .gdc-pr{ --red:#E21E1F; --card:#201A16; --line:rgba(255,255,255,.10); --mute:rgba(245,241,234,.62);
    background:var(--charcoal,#171310); padding:110px 0; }
    @media (max-width:820px){ .gdc-pr{ padding:76px 0; } }
    .gdc-pr .section-head{ margin-bottom:36px; }
    
    .gdc-pr-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:32px; }
    .gdc-pr-chip{ font-family:'Space Mono',monospace; font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
      color:var(--mute); background:transparent; border:1px solid var(--line); border-radius:99px; padding:10px 16px; cursor:pointer;
      transition:color .2s,border-color .2s,background .2s; }
      .gdc-pr-chip:hover{ color:#F5F1EA; border-color:rgba(255,255,255,.25); }
      .gdc-pr-chip[aria-pressed="true"]{ color:#F5F1EA; border-color:var(--red); background:rgba(226,30,31,.14); }
      .gdc-pr-chip:focus-visible, .gdc-pr-cta:focus-visible{ outline:2px solid var(--red); outline-offset:3px; }
      
      .gdc-pr-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
      @media (max-width:1000px){ .gdc-pr-grid{ grid-template-columns:repeat(2,1fr); } }
      @media (max-width:560px){ .gdc-pr-grid{ grid-template-columns:1fr; } }
      
      .gdc-pr-card{ position:relative; background:var(--card); border:1px solid var(--line); padding:36px 28px;
        display:flex; flex-direction:column; height:100%; transition:border-color .25s, transform .25s;
        animation:gdcPrIn .5s cubic-bezier(.22,.61,.36,1) both; }
        .gdc-pr-card:hover{ border-color:var(--red); transform:translateY(-4px); }
        .gdc-pr-card.is-best{ border-color:var(--red); }
        @keyframes gdcPrIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
        
        .gdc-pr-badge{ position:absolute; top:-1px; right:-1px; background:var(--red); color:#fff;
          font-family:'Space Mono',monospace; font-size:.62rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; padding:7px 12px; }
          .gdc-pr-name{ font-family:'Space Mono',monospace; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; opacity:.7; }
          .gdc-pr-amt{ font-family:'Anton',sans-serif; font-size:2.9rem; margin-top:10px; line-height:1; }
          .gdc-pr-amt sup{ font-family:'Space Mono',monospace; font-size:.9rem; color:var(--red); margin-right:4px; vertical-align:top; position:relative; top:.5rem; }
          .gdc-pr-amt.is-ask{ font-size:1.9rem; text-transform:uppercase; }
          .gdc-pr-desc{ font-size:.9rem; opacity:.72; margin-top:10px; line-height:1.55; min-height:1.4em; }
          .gdc-pr-list{ list-style:none; padding:0; margin:22px 0 0; flex:1; }
          .gdc-pr-list li{ font-size:.92rem; padding:10px 0; border-top:1px solid var(--line); display:flex; gap:10px; }
          .gdc-pr-list li .dash{ color:var(--red); }
          .gdc-pr-cta{ margin-top:26px; text-align:center; padding:14px; text-decoration:none;
            font-family:'Space Mono',monospace; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase;
            border:1px solid var(--red); color:var(--red); transition:background .2s,color .2s; }
            .gdc-pr-card:hover .gdc-pr-cta, .gdc-pr-card.is-best .gdc-pr-cta{ background:var(--red); color:#fff; }
            .gdc-pr-note{ margin-top:28px; font-family:'Space Mono',monospace; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--mute); }
            .gdc-pr-ask{ grid-column:1/-1; max-width:560px; }

            /* ================================== */