@import url('https://fonts.googleapis.com/css2?family=Anton&family=Manrope:wght@400;500;600;700;800;900&display=swap');

:root{
  --red:#E01B24;
  --red-deep:#B4131C;
  --orange:#E5381A;
  --marigold:#FFD100;
  --magenta:#B8004A;
  --magenta-deep:#8C0038;
  --blue:#0A2F70;
  --blue-deep:#071F4C;
  --dark:#211812;
  --dark-deep:#150F0B;
  --paper:#FFFCF7;
  --cream:#FAF7F2;
  --ink:#241A14;
  --ink-dim:#6E6258;
  --line:#F0E4D0;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  font-family:'Manrope',sans-serif;
  color:var(--ink);
  position:relative;
  overflow-x:hidden;
}
.display{font-family:'Anton',sans-serif; letter-spacing:0.5px; text-transform:uppercase;}
img{display:block; max-width:100%;}
a{cursor:pointer;}
button.btn-primary, button.btn-outline, button.trust-cta-btn, button.plink, button.plink-dark, .cta-band button.btn-dark, .cta-band button.btn-ghost{
  font-family:'Manrope',sans-serif; appearance:none;
}

/* ===== TOP BAR — overlaid on hero, becomes a sticky solid bar on scroll ===== */
.topbar{
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 64px; position:fixed; top:0; left:0; right:0; z-index:100;
  background:linear-gradient(180deg, rgba(21,15,11,0.65) 0%, rgba(21,15,11,0.35) 60%, transparent 100%);
  transition:background 0.35s ease, padding 0.35s ease, box-shadow 0.35s ease;
}
.topbar .logo-wrap img{
  height:104px; transition:height 0.35s ease, filter 0.35s ease;
}
.topbar .nav a{
  color:#fff; text-decoration:none; font-weight:700; font-size:14px;
  letter-spacing:1.2px; text-transform:uppercase; opacity:0.85; text-shadow:0 2px 8px rgba(0,0,0,0.4);
  transition:color 0.35s ease, text-shadow 0.35s ease, opacity 0.35s ease;
}
.topbar .nav a.active{opacity:1; color:var(--marigold);}
.topbar .nav-toggle{
  color:#fff; transition:color 0.35s ease;
}

/* Scrolled state: compact solid bar, dark text, logo shrinks */
.topbar.is-scrolled{
  padding:12px 64px;
  background:var(--paper);
  box-shadow:0 4px 24px rgba(33,24,18,0.12);
}
.topbar.is-scrolled .logo-wrap img{
  height:64px; filter:none;
}
.topbar.is-scrolled .nav a{
  color:var(--dark); text-shadow:none; opacity:0.75;
}
.topbar.is-scrolled .nav a.active{color:var(--red); opacity:1;}
.topbar.is-scrolled .nav-toggle{color:var(--dark);}

/* Logo swaps to the black wordmark once the bar is solid/white */
.logo-wrap{position:relative; display:inline-block; line-height:0;}
.logo-wrap img{display:block; transition:height 0.35s ease, opacity 0.25s ease;}
.logo-wrap .logo-dark{position:absolute; top:0; left:0; opacity:0;}
.topbar.is-scrolled .logo-wrap .logo-light{opacity:0;}
.topbar.is-scrolled .logo-wrap .logo-dark{opacity:1;}

.nav{display:flex; gap:42px; align-items:center;}
.nav-toggle{display:none; background:none; border:none; font-size:28px; cursor:pointer; padding:4px;}

/* Push page content below the now-fixed topbar on inner (non-hero) pages */
body.has-fixed-topbar-spacer{padding-top:0;}

/* ===== HERO — full photo ===== */
.hero{
  position:relative; min-height:840px; overflow:hidden; display:flex;
}
.hero-bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 25%;
}
.hero-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(21,15,11,0.94) 0%, rgba(21,15,11,0.78) 34%, rgba(21,15,11,0.25) 62%, rgba(21,15,11,0.05) 80%),
    linear-gradient(0deg, rgba(21,15,11,0.5) 0%, transparent 30%);
}
.hero-inner{
  position:relative; z-index:3; display:flex; flex-direction:column; justify-content:center;
  padding:140px 64px 80px; max-width:900px; width:100%;
}
.eyebrow-tag{
  display:inline-flex; align-items:center; gap:10px; background:rgba(255,209,0,0.16);
  border:1px solid rgba(255,209,0,0.4); padding:9px 18px; border-radius:100px; font-size:12.5px;
  font-weight:800; letter-spacing:1.8px; text-transform:uppercase; color:var(--marigold); margin-bottom:26px; width:fit-content;
}
.eyebrow-tag .dot{width:7px;height:7px;border-radius:50%;background:var(--marigold);}
.hero h1{
  font-size:76px; line-height:0.98; color:#fff; margin-bottom:20px; text-shadow:0 4px 30px rgba(0,0,0,0.3);
}
.hero h1 .accent{ color:var(--marigold); display:block;}
.hero p.sub{
  font-size:19px; line-height:1.6; color:rgba(255,255,255,0.88); max-width:520px; margin:0 0 40px; font-weight:500;
}
.hero-ctas{display:flex; gap:18px; align-items:center; flex-wrap:wrap;}
.btn-primary{
  background:var(--red); color:#fff; padding:20px 40px; border-radius:3px;
  font-weight:800; text-transform:uppercase; letter-spacing:1.2px; font-size:15px; text-decoration:none;
  box-shadow:0 14px 30px rgba(224,27,36,0.4); display:inline-block; border:none; cursor:pointer;
}
.btn-outline{
  border:2px solid #fff; color:#fff; padding:18px 34px; border-radius:3px;
  font-weight:800; text-transform:uppercase; letter-spacing:1.2px; font-size:15px; text-decoration:none;
  display:flex; align-items:center; gap:12px; background:none;
}
.play-circle{
  width:32px; height:32px; border-radius:50%; border:2px solid #fff; display:flex; align-items:center; justify-content:center; font-size:11px;
}
.hero-stats{display:flex; gap:44px; margin-top:56px; padding-top:32px; border-top:1px solid rgba(255,255,255,0.25); flex-wrap:wrap;}
.stat-num{font-family:'Anton',sans-serif; font-size:38px; color:var(--marigold); line-height:1;}
.stat-label{font-size:12.5px; text-transform:uppercase; letter-spacing:1.2px; color:rgba(255,255,255,0.75); margin-top:8px; font-weight:700;}
.hero-photo-credit{
  position:absolute; bottom:20px; right:28px; z-index:3; font-size:11px; font-weight:700;
  letter-spacing:1px; text-transform:uppercase; color:rgba(255,255,255,0.55);
}

/* trust strip */
.trust-strip{
  background:var(--cream); padding:64px 64px 56px; text-align:center;
}
.trust-row{display:flex; justify-content:center; flex-wrap:wrap; gap:16px 48px; margin-bottom:20px;}
.trust-item{display:flex; align-items:center; gap:12px; font-size:19px; font-weight:700; color:var(--dark);}
.trust-item .tick{
  width:28px; height:28px; border-radius:50%; background:var(--red); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:14px; flex-shrink:0;
}
.trust-cta{margin-top:40px;}
.trust-cta-line{
  position:relative; display:inline-block; font-size:16px; font-weight:700; color:var(--red);
  padding:0 28px; margin-bottom:28px;
}
.trust-cta-line::before,.trust-cta-line::after{
  content:''; position:absolute; top:50%; width:60px; height:1px; background:var(--red); opacity:0.4;
}
.trust-cta-line::before{left:-60px;}
.trust-cta-line::after{right:-60px;}
.trust-cta-btn{
  display:inline-flex; align-items:center; gap:10px; border:2px solid var(--red); color:var(--red);
  padding:16px 36px; border-radius:100px; font-weight:800; text-transform:uppercase; letter-spacing:1px; font-size:14px;
  text-decoration:none;
}

/* static highlights strip — classes offered + dance styles taught */
.marquee-strip{
  background:var(--red); color:#fff; padding:15px 24px;
  position:relative; z-index:5;
}
.marquee-strip .track{
  display:flex; flex-wrap:wrap; justify-content:center; row-gap:6px;
}
.marquee-strip span{
  font-family:'Anton',sans-serif; font-size:18px; text-transform:uppercase; letter-spacing:1.8px; padding:0 24px;
  display:inline-flex; align-items:center; gap:24px; color:#fff; white-space:nowrap;
}
.marquee-strip span b{color:var(--marigold); font-weight:400; margin-left:24px;}

/* ===== DANCE STYLES — illustrated figures in circular badges ===== */
.styles-section{background:var(--cream); padding:100px 64px 110px; text-align:center;}
.styles-eyebrow{
  position:relative; display:inline-block; font-size:13px; font-weight:800; letter-spacing:2.5px;
  text-transform:uppercase; color:var(--red); padding:0 32px; margin-bottom:18px;
}
.styles-eyebrow::before,.styles-eyebrow::after{
  content:''; position:absolute; top:50%; width:70px; height:1px; background:var(--red); opacity:0.4;
}
.styles-eyebrow::before{left:-70px;}
.styles-eyebrow::after{right:-70px;}
.styles-section .section-title{font-size:42px; margin-bottom:14px;}
.styles-intro{color:var(--ink-dim); font-size:16.5px; max-width:520px; margin:0 auto; font-weight:500;}
.styles-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:40px; margin-top:64px; max-width:1120px; margin-left:auto; margin-right:auto;}
.style-item{display:flex; flex-direction:column; align-items:center; text-align:center;}
.style-circle{
  width:184px; height:184px; border-radius:50%; display:flex; align-items:flex-end; justify-content:center; overflow:hidden;
  margin-bottom:20px; box-shadow:0 22px 40px -16px rgba(33,24,18,0.35); position:relative;
}
.style-circle::after{
  content:''; position:absolute; inset:0; border-radius:50%;
  background:radial-gradient(circle at 30% 24%, rgba(255,255,255,0.28), transparent 55%);
  pointer-events:none;
}
.style-circle-1{background:linear-gradient(160deg, var(--red), var(--red-deep));}
.style-circle-2{background:linear-gradient(160deg, var(--magenta), var(--magenta-deep));}
.style-circle-3{background:linear-gradient(160deg, var(--marigold), var(--orange));}
.style-circle-4{background:linear-gradient(160deg, var(--blue), var(--blue-deep));}
.style-figure{
  width:88%; height:92%; object-fit:contain; object-position:bottom center;
  position:relative; z-index:1; filter:drop-shadow(0 6px 10px rgba(0,0,0,0.2));
}
.style-name{
  font-family:'Anton',sans-serif; font-size:21px; text-transform:uppercase; letter-spacing:0.5px; color:var(--dark);
  margin-bottom:10px;
}
.style-item p{font-size:14.5px; line-height:1.65; color:var(--ink-dim); font-weight:500; max-width:230px;}

/* ===== SECTIONS ===== */
.section{padding:120px 64px; position:relative; background:var(--paper);}
.section-tag{
  display:inline-flex; align-items:center; gap:10px; font-size:12.5px; font-weight:800; letter-spacing:2.5px;
  text-transform:uppercase; color:var(--red); margin-bottom:18px;
}
.section-tag::before{content:''; width:28px; height:2px; background:var(--red);}
.section-title{font-family:'Anton',sans-serif; text-transform:uppercase; letter-spacing:0.5px; font-size:50px; line-height:1.08; margin-bottom:26px; color:var(--dark);}
.section-title em{font-style:normal; color:var(--red);}

/* ===== ABOUT — real founder photo ===== */
.about-grid{display:grid; grid-template-columns:0.8fr 1fr; gap:76px; align-items:center;}
.about-grid-reverse{grid-template-columns:1fr 0.8fr;}
.about-grid-reverse .about-photo-wrap{order:2;}
.about-photo-wrap{position:relative;}
.about-photo{
  width:100%; border-radius:10px; box-shadow:0 34px 70px -24px rgba(33,24,18,0.35);
  border:6px solid #fff; outline:1px solid var(--line);
}
.about-badge{
  position:absolute; bottom:-28px; left:-28px; background:var(--red); color:#fff;
  width:140px; height:140px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  text-align:center; box-shadow:0 20px 40px rgba(224,27,36,0.35); border:5px solid var(--paper);
}
.about-badge span{font-family:'Anton',sans-serif; font-size:14px; line-height:1.25; text-transform:uppercase;}
.about-tape{
  position:absolute; top:24px; right:-20px; background:var(--marigold); color:var(--dark-deep);
  padding:10px 22px; font-size:12px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase;
  transform:rotate(4deg); border-radius:3px; box-shadow:0 10px 20px rgba(0,0,0,0.15);
}
.about-text p{font-size:17.5px; line-height:1.85; color:var(--ink-dim); margin-bottom:22px; font-weight:500; max-width:560px;}
.founder-credentials{display:flex; flex-direction:column; gap:12px; margin-top:8px; max-width:560px;}
.fc-item{display:flex; align-items:center; gap:12px; font-size:14.5px; font-weight:700; color:var(--dark);}
.fc-tick{
  width:22px; height:22px; border-radius:50%; background:var(--red); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:11px; flex-shrink:0;
}
.founder-sig{margin-top:36px; display:flex; align-items:center; justify-content:space-between; gap:18px; padding-top:28px; border-top:1px solid var(--line); flex-wrap:wrap;}
.founder-sig .name{font-family:'Anton',sans-serif; font-size:22px; color:var(--dark); letter-spacing:0.5px;}
.founder-sig .role{font-size:12.5px; color:var(--red); text-transform:uppercase; letter-spacing:1.2px; margin-top:4px; font-weight:800;}
.founder-sig-link{font-size:13px; font-weight:800; color:var(--red); text-transform:uppercase; letter-spacing:0.8px; text-decoration:none; white-space:nowrap;}

/* ===== ACHIEVEMENTS + EXPERIENCE (About page) ===== */
.achievements-section, .experience-section{padding-top:0;}
.achievements-intro{color:var(--ink-dim); font-size:16.5px; font-weight:500; max-width:640px; margin-bottom:56px; line-height:1.75;}
.award-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.award-card{
  background:var(--cream); border-radius:14px; padding:30px 28px; box-shadow:0 24px 50px -34px rgba(33,24,18,0.35);
  border:1px solid var(--line); position:relative;
}
.award-year{
  display:inline-block; font-family:'Anton',sans-serif; font-size:13px; letter-spacing:1.2px; color:#fff;
  background:var(--red); padding:6px 14px; border-radius:100px; margin-bottom:16px;
}
.award-card h3{font-size:18px; line-height:1.4; color:var(--dark); margin-bottom:10px; font-weight:800;}
.award-card p{font-size:14px; line-height:1.7; color:var(--ink-dim); font-weight:500;}

.exp-timeline{max-width:760px; position:relative; padding-left:124px;}
.exp-timeline::before{
  content:''; position:absolute; left:100px; top:8px; bottom:8px; width:2px;
  background:linear-gradient(180deg, var(--line) 0%, var(--line) 92%, transparent 100%);
}
.exp-item{position:relative; padding-bottom:34px;}
.exp-item:last-child{padding-bottom:0;}
.exp-year{
  position:absolute; left:-124px; top:2px; width:82px; text-align:right;
  font-family:'Anton',sans-serif; font-size:15px; color:var(--red); letter-spacing:0.3px;
}
.exp-dot{
  position:absolute; left:-12px; top:6px; width:14px; height:14px; border-radius:50%;
  background:var(--red); border:3px solid var(--paper); box-shadow:0 0 0 1px var(--red);
}
.exp-dot-intl{background:var(--marigold); box-shadow:0 0 0 1px var(--marigold);}
.exp-card{
  background:var(--cream); border:1px solid var(--line); border-radius:12px; padding:16px 22px;
  font-size:15px; font-weight:600; color:var(--dark); line-height:1.6;
  box-shadow:0 14px 30px -22px rgba(33,24,18,0.3);
}
.exp-card-intl{background:#fff; border-color:rgba(255,209,0,0.5); box-shadow:0 14px 30px -20px rgba(255,209,0,0.35);}
.exp-tag{
  display:inline-block; font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:0.8px;
  color:var(--red); background:rgba(224,27,36,0.1); padding:4px 12px; border-radius:100px; margin-left:10px;
  vertical-align:middle;
}
.exp-tag-intl{color:var(--dark-deep); background:var(--marigold);}

/* ===== ACHIEVEMENT STRIP ===== */
.achieve-strip{
  background:var(--blue); position:relative; overflow:hidden;
  display:grid; grid-template-columns:1fr 1fr; align-items:stretch; min-height:340px;
}
.achieve-strip::before{
  content:''; position:absolute; bottom:-180px; left:-120px; width:480px; height:480px; border-radius:50%;
  background:radial-gradient(circle, rgba(255,209,0,0.16), transparent 70%);
}
/* Sized to the photo's own aspect ratio (roughly 7:8) and set to
   object-fit:contain, so the whole image — dancers, award, and the
   India banner at the bottom — is always fully visible, never cropped. */
.achieve-photo{
  position:relative; overflow:hidden; min-height:760px;
  background:linear-gradient(160deg, var(--blue-deep), var(--dark-deep));
}
.achieve-photo img{width:100%; height:100%; object-fit:contain; position:absolute; inset:0;}
.achieve-copy{padding:80px 64px; display:flex; flex-direction:column; justify-content:center; position:relative; z-index:2;}
.achieve-copy .section-tag{color:var(--marigold); font-size:14px;}
.achieve-copy .section-tag::before{background:var(--marigold);}
.achieve-copy h2{font-family:'Anton',sans-serif; font-size:46px; color:#fff; text-transform:uppercase; line-height:1.14; margin-bottom:26px; max-width:520px;}
.achieve-copy h2 em{color:var(--marigold); font-style:normal;}
.achieve-copy p{color:rgba(255,255,255,0.78); font-size:18px; line-height:1.8; max-width:480px; font-weight:500; margin-bottom:20px;}
.achieve-copy p.achieve-extra{color:rgba(255,255,255,0.65); font-size:16px;}
.achieve-stats{display:flex; gap:56px; margin-top:32px; padding-top:32px; border-top:1px solid rgba(255,255,255,0.15); flex-wrap:wrap;}
.achieve-stats .n{font-family:'Anton',sans-serif; font-size:44px; color:var(--marigold); line-height:1;}
.achieve-stats .l{font-size:13px; color:rgba(255,255,255,0.7); text-transform:uppercase; letter-spacing:1.2px; margin-top:8px; font-weight:700;}
.country-row{margin-top:28px;}
.country-label{font-size:12px; color:rgba(255,255,255,0.55); text-transform:uppercase; letter-spacing:1.4px; font-weight:700; margin-bottom:12px;}
.country-chips{display:flex; gap:10px; flex-wrap:wrap;}
.country-chip{
  display:inline-flex; align-items:center; gap:10px; background:rgba(255,209,0,0.12); border:1px solid rgba(255,209,0,0.35);
  color:var(--marigold); font-size:13px; font-weight:800; letter-spacing:0.4px; padding:7px 18px 7px 8px; border-radius:100px;
}
.flag-icon{
  width:24px; height:16px; border-radius:3px; flex-shrink:0; display:block;
  box-shadow:0 0 0 1px rgba(255,255,255,0.25);
}


/* ===== PROGRAMS — photo bg + overlapping cards + goal copy ===== */
.programs-section{position:relative; overflow:hidden; padding:0;}
.programs-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 30%;}
.programs-video{position:absolute; inset:0; overflow:hidden;}
.programs-video iframe{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:100%; height:100%;
  /* Oversize + center-crop so the YouTube player fills the section
     edge-to-edge with no letterboxing, like object-fit:cover on a video. */
  min-width:177.78vh; /* 16:9 -> width needed to cover any viewport height */
  min-height:56.25vw; /* 16:9 -> height needed to cover any viewport width */
  pointer-events:none; /* purely decorative background, not interactive */
}
.programs-scrim{position:absolute; inset:0; background:linear-gradient(100deg, rgba(21,15,11,0.92) 0%, rgba(21,15,11,0.8) 45%, rgba(21,15,11,0.55) 100%);}
.programs-inner{position:relative; z-index:2; display:grid; grid-template-columns:560px 1fr; gap:50px; align-items:center; padding:130px 64px;}
.program-cards{position:relative; height:520px; width:560px;}
.pcard{
  position:absolute; width:300px; border-radius:14px; padding:32px 30px; box-shadow:0 30px 60px -20px rgba(0,0,0,0.5);
  display:flex; flex-direction:column; justify-content:space-between; height:340px; box-sizing:border-box;
}
.pcard1{top:0; left:0; background:linear-gradient(160deg, var(--blue), var(--blue-deep)); z-index:1;}
.pcard2{top:150px; left:260px; background:linear-gradient(160deg, var(--red), var(--red-deep)); z-index:2;}
.pcard .pnum{font-family:'Anton',sans-serif; font-size:14px; color:rgba(255,255,255,0.55); letter-spacing:1.5px; margin-bottom:auto;}
.pcard h3{font-family:'Anton',sans-serif; font-size:30px; color:#fff; text-transform:uppercase; margin:16px 0 12px;}
.pcard p{font-size:13.5px; line-height:1.6; color:rgba(255,255,255,0.85); font-weight:500; margin-bottom:20px;}
.pcard .plink{
  align-self:flex-start; background:#fff; color:var(--dark-deep); font-size:12.5px; font-weight:800;
  letter-spacing:0.8px; text-transform:uppercase; padding:11px 22px; border-radius:100px; text-decoration:none;
}
.programs-copy{position:relative; z-index:2;}
.programs-copy .section-tag{color:var(--marigold);}
.programs-copy .section-tag::before{background:var(--marigold);}
.programs-copy h2{font-family:'Anton',sans-serif; font-size:46px; color:#fff; text-transform:uppercase; line-height:1.1; margin-bottom:24px;}
.programs-copy h2 em{color:var(--marigold); font-style:normal;}
.programs-copy p{font-size:17px; line-height:1.85; color:rgba(255,255,255,0.72); font-weight:500; max-width:520px; margin-bottom:16px;}
.programs-copy blockquote{
  border-left:3px solid var(--marigold); padding-left:20px; margin:28px 0 0; font-size:16px; line-height:1.7;
  color:#fff; font-weight:600; font-style:italic; max-width:480px;
}

/* ===== WHY DIFFERENT ===== */
.different-section{background:var(--paper); padding:110px 64px 120px; text-align:center;}
.different-eyebrow{
  position:relative; display:inline-block; font-size:13px; font-weight:800; letter-spacing:2.5px;
  text-transform:uppercase; color:var(--red); padding:0 32px; margin-bottom:18px;
}
.different-eyebrow::before,.different-eyebrow::after{
  content:''; position:absolute; top:50%; width:70px; height:1px; background:var(--red); opacity:0.4;
}
.different-eyebrow::before{left:-70px;}
.different-eyebrow::after{right:-70px;}
.different-section .section-title{font-size:42px; margin-bottom:0;}
.different-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:56px 28px; margin-top:72px;}
.different-item{display:flex; flex-direction:column; align-items:center; text-align:center;}
.different-icon{width:52px; height:52px; margin-bottom:20px; color:var(--red);}
.different-icon img{width:100%; height:100%; object-fit:contain;}
.different-item p{font-size:14.5px; line-height:1.65; color:var(--ink-dim); font-weight:500; max-width:230px;}

/* ===== GALLERY STRIP ===== */
.gallery-section{background:var(--cream); padding:120px 64px;}
.gallery-header{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:48px; flex-wrap:wrap; gap:16px;}
.gallery-header .section-title{margin-bottom:0;}
.gallery-cta{font-size:13.5px; font-weight:800; letter-spacing:0.8px; text-transform:uppercase; color:var(--red); display:flex; align-items:center; gap:8px; white-space:nowrap; text-decoration:none;}
.gallery-grid{display:grid; grid-template-columns:1fr 1fr 1fr 1fr; grid-template-rows:1fr 1fr; gap:18px; height:620px;}
.gallery-grid img{width:100%; height:100%; object-fit:cover; border-radius:10px; box-shadow:0 20px 40px -20px rgba(33,24,18,0.3);}
.g-main{grid-row:1 / 3;}
.g-item{position:relative; overflow:hidden; border-radius:10px;}
.g-tag{position:absolute; bottom:14px; left:14px; background:rgba(21,15,11,0.78); color:#fff; font-size:10.5px; font-weight:800; letter-spacing:1px; text-transform:uppercase; padding:6px 12px; border-radius:100px;}

/* ===== INSTRUCTORS ===== */
.instructors-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:36px; margin-top:16px;}
.instructor-card{position:relative; border-radius:12px; overflow:hidden; height:460px; box-shadow:0 24px 50px -24px rgba(33,24,18,0.35);}
.instructor-card img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.instructor-photo-placeholder{position:absolute; inset:0;
  background:linear-gradient(165deg, #FFD98A 0%, #E5381A 55%, #B8004A 100%);}
.instructor-overlay{position:absolute; inset:0; background:linear-gradient(0deg, rgba(21,15,11,0.92) 0%, transparent 55%);}
.instructor-info{position:absolute; bottom:0; left:0; right:0; padding:26px; z-index:2;}
.instructor-info .iname{font-family:'Anton',sans-serif; font-size:24px; color:#fff; letter-spacing:0.5px;}
.instructor-info .irole{font-size:12.5px; color:var(--marigold); text-transform:uppercase; letter-spacing:1.2px; font-weight:700; margin-top:6px;}
.lead-badge{position:absolute; top:18px; left:18px; z-index:3; background:var(--red); color:#fff; font-size:10.5px; font-weight:800; padding:6px 13px; border-radius:100px; text-transform:uppercase; letter-spacing:1px;}
.photo-tag-sm{position:absolute; top:18px; right:18px; z-index:3; background:rgba(255,255,255,0.92); color:var(--ink-dim); font-size:9.5px; font-weight:800; letter-spacing:0.8px; text-transform:uppercase; padding:5px 10px; border-radius:100px;}

/* ===== TESTIMONIAL ===== */
.wow-strip{
  padding:110px 64px; text-align:center; position:relative;
  background:linear-gradient(160deg, var(--magenta), var(--magenta-deep));
}
.wow-strip .quote-mark{font-family:Georgia,serif; font-weight:900; font-size:160px; color:#fff; opacity:0.3; line-height:0.5; height:80px;}
.wow-strip blockquote{font-family:'Anton',sans-serif; font-size:38px; line-height:1.35; max-width:960px; margin:0 auto 28px; color:#fff; text-transform:none; font-weight:400;}
.wow-strip blockquote em{color:var(--marigold); font-style:normal;}
.wow-author{font-size:14px; color:rgba(255,255,255,0.75); text-transform:uppercase; letter-spacing:1.8px; font-weight:700;}

/* ===== CTA BAND — full-bleed, flows directly into footer ===== */
.cta-band{
  position:relative; overflow:hidden; min-height:420px;
  display:flex; align-items:center; justify-content:center; text-align:center;
}
.cta-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 30%;}
.cta-scrim{position:absolute; inset:0; background:linear-gradient(180deg, rgba(21,15,11,0.75) 0%, rgba(21,15,11,0.88) 100%);}
.cta-inner{position:relative; z-index:2; max-width:720px; padding:80px 64px;}
.cta-band .section-tag{justify-content:center; color:var(--marigold);}
.cta-band .section-tag::before{background:var(--marigold);}
.cta-band h2{font-family:'Anton',sans-serif; font-size:48px; color:#fff; line-height:1.1; text-transform:uppercase; margin-bottom:16px;}
.cta-band h2 em{color:var(--marigold); font-style:normal;}
.cta-band p{color:rgba(255,255,255,0.75); font-size:17px; margin-bottom:36px; font-weight:500;}
.cta-actions{display:flex; gap:18px; justify-content:center; flex-wrap:wrap;}
.cta-band .btn-dark{background:var(--red); color:#fff; padding:20px 40px; border-radius:3px; font-weight:800; text-transform:uppercase; letter-spacing:1.2px; font-size:14.5px; white-space:nowrap; text-decoration:none;}
.cta-band .btn-ghost{border:2px solid rgba(255,255,255,0.6); color:#fff; padding:18px 38px; border-radius:3px; font-weight:800; text-transform:uppercase; letter-spacing:1.2px; font-size:14.5px; white-space:nowrap; text-decoration:none;}

/* ===== FOOTER ===== */
footer{background:var(--blue-deep); padding:100px 64px 40px;}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:56px; padding-bottom:64px; border-bottom:1px solid rgba(255,255,255,0.12);}
.footer-logo img{height:130px; margin-bottom:22px; filter:brightness(0) invert(1);}
.footer-grid p{color:rgba(255,255,255,0.55); font-size:14px; line-height:1.8; max-width:280px;}
.footer-col{padding-top:12px;}
.footer-col h4{font-size:13px; text-transform:uppercase; letter-spacing:1.8px; color:var(--marigold); margin-bottom:22px; font-weight:800;}
.footer-col a{display:block; color:rgba(255,255,255,0.6); text-decoration:none; font-size:14.5px; margin-bottom:16px; font-weight:500;}
.footer-program{display:block; color:rgba(255,255,255,0.6); font-size:14.5px; margin-bottom:16px; font-weight:500;}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:32px; font-size:12.5px; color:rgba(255,255,255,0.35); flex-wrap:wrap; gap:16px;}
.footer-social{display:flex; gap:14px;}
.footer-social a{
  width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,0.08); color:rgba(255,255,255,0.7); transition:background 0.2s ease, color 0.2s ease;
}
.footer-social a:hover{background:var(--red); color:#fff;}
.footer-social svg{width:17px; height:17px;}

/* ===== PROGRAMS LIST PAGE — detail cards ===== */
.program-detail-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:40px;}
.program-detail-card{
  background:var(--cream); border-radius:14px; overflow:hidden; position:relative;
  box-shadow:0 24px 50px -30px rgba(33,24,18,0.35); display:flex; flex-direction:column;
}
.pd-num{
  position:absolute; top:20px; left:20px; z-index:2; font-family:'Anton',sans-serif; font-size:14px;
  color:#fff; background:rgba(21,15,11,0.55); padding:6px 14px; border-radius:100px; letter-spacing:1.5px;
}
.pd-photo{width:100%; height:240px; object-fit:cover;}
.pd-body{padding:32px 34px 36px;}
.pd-body h3{font-family:'Anton',sans-serif; font-size:26px; text-transform:uppercase; letter-spacing:0.5px; color:var(--dark); margin-bottom:14px;}
.pd-body p{font-size:15.5px; line-height:1.75; color:var(--ink-dim); font-weight:500; margin-bottom:18px;}
.pd-list{list-style:none; margin-bottom:26px;}
.pd-list li{
  font-size:14px; color:var(--ink-dim); font-weight:600; padding-left:24px; position:relative; margin-bottom:10px;
}
.pd-list li::before{content:'✓'; position:absolute; left:0; color:var(--red); font-weight:800;}
.plink-dark{
  display:inline-block; background:var(--red); color:#fff; font-size:12.5px; font-weight:800;
  letter-spacing:0.8px; text-transform:uppercase; padding:13px 26px; border-radius:100px; text-decoration:none;
}

/* ===== CONTACT PAGE ===== */
.contact-section{padding:120px 64px; background:var(--paper);}
.contact-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:70px; max-width:1200px; margin:0 auto;}

.contact-info-card{background:var(--blue); border-radius:16px; padding:48px 40px; color:#fff; height:fit-content;}
.contact-info-card .section-tag{color:var(--marigold);}
.contact-info-card .section-tag::before{background:var(--marigold);}
.contact-info-card h2{font-family:'Anton',sans-serif; font-size:32px; text-transform:uppercase; line-height:1.15; margin-bottom:18px;}
.contact-info-card > p{color:rgba(255,255,255,0.75); font-size:15.5px; line-height:1.75; font-weight:500; margin-bottom:36px;}
.contact-detail{display:flex; gap:16px; align-items:flex-start; margin-bottom:28px;}
.contact-detail .ci-icon{
  width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,0.12); flex-shrink:0;
  display:flex; align-items:center; justify-content:center; font-size:18px;
}
.contact-detail .ci-label{font-size:11.5px; text-transform:uppercase; letter-spacing:1.4px; color:var(--marigold); font-weight:800; margin-bottom:6px;}
.contact-detail a, .contact-detail span{color:rgba(255,255,255,0.85); font-size:15px; font-weight:600; text-decoration:none; line-height:1.6;}
.contact-detail a:hover{color:#fff;}
.contact-map-link{
  display:inline-flex; align-items:center; gap:10px; margin-top:8px; background:rgba(255,255,255,0.1);
  border:1px solid rgba(255,255,255,0.25); padding:12px 22px; border-radius:100px; color:#fff;
  font-size:13px; font-weight:800; text-transform:uppercase; letter-spacing:0.8px; text-decoration:none;
}
.contact-social{display:flex; gap:12px; margin-top:36px; padding-top:32px; border-top:1px solid rgba(255,255,255,0.15);}
.contact-social a{
  width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,0.1); color:#fff; transition:background 0.2s ease;
}
.contact-social a:hover{background:var(--red);}
.contact-social svg{width:18px; height:18px;}

.contact-form-card{background:var(--cream); border-radius:16px; padding:48px 44px; box-shadow:0 24px 60px -30px rgba(33,24,18,0.3);}
.contact-form-card .section-tag{margin-bottom:14px;}
.contact-form-card h2{font-family:'Anton',sans-serif; font-size:32px; text-transform:uppercase; color:var(--dark); margin-bottom:12px;}
.contact-form-card > p{color:var(--ink-dim); font-size:15.5px; font-weight:500; margin-bottom:32px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.form-field{margin-bottom:22px;}
.form-field label{
  display:block; font-size:12.5px; font-weight:800; text-transform:uppercase; letter-spacing:1px;
  color:var(--dark); margin-bottom:9px;
}
.form-field input, .form-field select, .form-field textarea{
  width:100%; border:1.5px solid var(--line); background:#fff; border-radius:8px; padding:14px 16px;
  font-family:'Manrope',sans-serif; font-size:15px; color:var(--ink); font-weight:500;
  transition:border-color 0.2s ease;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:none; border-color:var(--red);
}
.form-field textarea{resize:vertical; min-height:130px;}
.form-submit-btn{
  width:100%; background:var(--red); color:#fff; padding:18px; border:none; border-radius:8px;
  font-weight:800; text-transform:uppercase; letter-spacing:1.2px; font-size:14.5px; cursor:pointer;
  box-shadow:0 14px 30px rgba(224,27,36,0.3); transition:opacity 0.2s ease;
}
.form-submit-btn:disabled{opacity:0.6; cursor:not-allowed;}
.form-status{margin-top:18px; font-size:14px; font-weight:700; padding:14px 18px; border-radius:8px; display:none;}
.form-status.is-visible{display:block;}
.form-status.is-success{background:rgba(34,150,80,0.12); color:#1f7a44;}
.form-status.is-error{background:rgba(224,27,36,0.1); color:var(--red-deep);}

.contact-map-embed{max-width:1200px; margin:56px auto 0; border-radius:16px; overflow:hidden; box-shadow:0 24px 60px -30px rgba(33,24,18,0.3);}
.contact-map-embed iframe{width:100%; height:380px; border:0; display:block;}

/* ===== CAPTCHA WIDGET (shared by Contact page + modal form) ===== */
.captcha-field{margin-bottom:22px;}
.captcha-row{display:flex; align-items:center; gap:12px; flex-wrap:wrap;}
.captcha-img-wrap{
  position:relative; border-radius:8px; overflow:hidden; border:1.5px solid var(--line);
  background:var(--cream); line-height:0; flex-shrink:0;
}
.captcha-img-wrap img, .captcha-img-wrap svg{display:block; width:160px; height:56px;}
.captcha-img-wrap.is-loading{display:flex; align-items:center; justify-content:center; width:160px; height:56px;}
.captcha-img-wrap.is-loading::after{
  content:''; width:18px; height:18px; border-radius:50%; border:2.5px solid var(--line);
  border-top-color:var(--red); animation:captchaSpin 0.7s linear infinite;
}
@keyframes captchaSpin{to{transform:rotate(360deg);}}
.captcha-refresh{
  width:40px; height:40px; border-radius:8px; border:1.5px solid var(--line); background:#fff;
  color:var(--ink-dim); font-size:17px; cursor:pointer; flex-shrink:0; transition:border-color 0.2s ease, color 0.2s ease;
}
.captcha-refresh:hover{border-color:var(--red); color:var(--red);}
.captcha-field input{flex:1; min-width:140px;}

/* ===== SHARED MODAL (site-wide CTA -> enquiry form) ===== */
.modal-backdrop{
  display:none; position:fixed; inset:0; z-index:200; background:rgba(21,15,11,0.68);
  align-items:flex-start; justify-content:center; overflow-y:auto; padding:48px 20px;
  backdrop-filter:blur(2px);
}
.modal-backdrop.is-open{display:flex;}
.site-modal{
  background:var(--paper); border-radius:18px; width:100%; max-width:620px; position:relative;
  box-shadow:0 40px 90px -20px rgba(21,15,11,0.5); animation:siteModalIn 0.22s ease; overflow:hidden;
}
@keyframes siteModalIn{
  from{opacity:0; transform:translateY(14px) scale(0.97);}
  to{opacity:1; transform:translateY(0) scale(1);}
}
.site-modal-head{
  background:linear-gradient(160deg, var(--blue), var(--blue-deep)); padding:32px 40px 26px; position:relative;
}
.site-modal-head::after{
  content:''; position:absolute; bottom:-140px; right:-80px; width:260px; height:260px; border-radius:50%;
  background:radial-gradient(circle, rgba(255,209,0,0.16), transparent 70%); pointer-events:none;
}
.site-modal-eyebrow{color:var(--marigold); font-size:12px; font-weight:800; letter-spacing:2px; text-transform:uppercase; margin-bottom:8px; position:relative; z-index:1;}
.site-modal-title{font-family:'Anton',sans-serif; font-size:26px; text-transform:uppercase; color:#fff; line-height:1.15; margin-bottom:6px; position:relative; z-index:1;}
.site-modal-sub{color:rgba(255,255,255,0.7); font-size:14px; font-weight:500; position:relative; z-index:1;}
.site-modal-close{
  position:absolute; top:20px; right:20px; z-index:2; width:36px; height:36px; border-radius:50%;
  background:rgba(255,255,255,0.14); border:none; color:#fff; font-size:18px; cursor:pointer;
  display:flex; align-items:center; justify-content:center; transition:background 0.2s ease;
}
.site-modal-close:hover{background:rgba(255,255,255,0.26);}
.site-modal-body{padding:32px 40px 40px; max-height:70vh; overflow-y:auto;}
.site-modal-body .form-row{margin-bottom:0;}
.site-modal-body .form-field:last-of-type{margin-bottom:0;}

body.modal-open{overflow:hidden;}

@media (max-width: 720px){
  .site-modal{max-width:100%; border-radius:14px;}
  .site-modal-head{padding:26px 24px 22px;}
  .site-modal-title{font-size:21px;}
  .site-modal-body{padding:24px 22px 30px; max-height:75vh;}
  .modal-backdrop{padding:0; align-items:flex-end;}
  .site-modal{animation:siteModalInMobile 0.22s ease;}
  @keyframes siteModalInMobile{
    from{opacity:0; transform:translateY(24px);}
    to{opacity:1; transform:translateY(0);}
  }
}

/* ===== PAGE HEADER (for inner pages: About/Programs/Contact) ===== */
.page-hero{
  position:relative; min-height:420px; display:flex; align-items:center; overflow:hidden;
}
.page-hero-inner{position:relative; z-index:3; padding:140px 64px 60px; width:100%;}
.page-hero h1{font-size:60px; color:#fff; line-height:1.05; text-shadow:0 4px 30px rgba(0,0,0,0.3);}
.page-hero .breadcrumb{color:rgba(255,255,255,0.7); font-size:14px; font-weight:600; margin-top:16px;}
.page-hero .breadcrumb a{color:rgba(255,255,255,0.7); text-decoration:none;}
.page-hero .breadcrumb a:hover{color:var(--marigold);}

/* ===== RESPONSIVE ===== */
@media (max-width: 1100px){
  .about-grid, .achieve-strip, .programs-inner, .contact-grid{grid-template-columns:1fr;}
  .about-grid-reverse .about-photo-wrap{order:0;}
  .programs-inner{padding:100px 32px;}
  .program-cards{width:100%; max-width:560px; margin:0 auto 60px;}
  .instructors-grid, .different-grid, .styles-grid, .program-detail-grid, .award-grid{grid-template-columns:repeat(2,1fr);}
  .gallery-grid{grid-template-columns:1fr 1fr; grid-template-rows:repeat(4,220px); height:auto;}
  .g-main{grid-row:auto; grid-column:1 / 3;}
  .footer-grid{grid-template-columns:1fr 1fr; gap:40px;}
  .hero h1{font-size:58px;}
  .section-title{font-size:38px;}
}

@media (max-width: 720px){
  .topbar{padding:16px 24px;}
  .logo-wrap img{height:64px;}
  .nav{position:fixed; top:0; right:-100%; height:100vh; width:78%; max-width:320px; background:var(--dark-deep);
    flex-direction:column; align-items:flex-start; justify-content:flex-start; padding:100px 32px; gap:28px;
    transition:right 0.3s ease; z-index:30;}
  .nav.open{right:0;}
  .nav a{font-size:16px;}
  .nav-toggle{display:block;}
  .section, .trust-strip, .different-section, .styles-section, .gallery-section, .wow-strip, .contact-section{padding:70px 24px;}
  .contact-info-card, .contact-form-card{padding:34px 26px;}
  .form-row{grid-template-columns:1fr;}
  .styles-grid{grid-template-columns:repeat(2,1fr); gap:44px 24px;}
  .style-circle{width:140px; height:140px;}
  .style-name{font-size:20px;}
  .hero-inner, .page-hero-inner{padding:120px 24px 50px;}
  .hero h1{font-size:42px;}
  .page-hero h1{font-size:38px;}
  .section-title{font-size:32px;}
  .about-grid, .achieve-strip{gap:40px;}
  .programs-copy h2{font-size:32px;}
  .program-cards{height:auto;}
  .pcard{position:relative; width:100%; top:0 !important; left:0 !important; transform:none !important; margin-bottom:24px; height:auto;}
  .pcard2{margin-top:-20px;}
  .different-grid, .instructors-grid, .program-detail-grid, .award-grid{grid-template-columns:1fr;}
  .exp-timeline{padding-left:28px;}
  .exp-timeline::before{left:6px;}
  .exp-item{padding-bottom:28px;}
  .exp-year{position:static; width:auto; text-align:left; display:block; margin-bottom:8px; margin-left:20px;}
  .exp-dot{left:0;}
  .exp-card{margin-left:20px;}
  .gallery-grid{grid-template-columns:1fr; grid-template-rows:repeat(7,240px);}
  .g-main{grid-column:auto;}
  .footer-grid{grid-template-columns:1fr; gap:36px;}
  .cta-band h2{font-size:34px;}
  .achieve-stats{gap:28px;}
  .marquee-strip span{font-size:15px;}
}
