:root {
  --pink: #d82074;
  --pink-dark: #b7165e;
  --ink: #28232a;
  --muted: #6f6870;
  --cream: #fffaf5;
  --warm: #f8f4ef;
  --gold: #efc978;
  --white: #fff;
  --content: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body { margin: 0; color: var(--ink); background: var(--white); font: 18px/1.72 "Karla", Arial, sans-serif; }
img { display: block; width: 100%; height: 100%; object-fit: cover; }
a { color: inherit; text-decoration: none; }
.skip-link { position: absolute; z-index: 20; top: -60px; left: 18px; padding: 10px 16px; background: var(--white); color: var(--ink); }
.skip-link:focus { top: 12px; }
.site-header { position: absolute; inset: 0 0 auto; z-index: 10; min-height: 94px; padding: 16px max(4.2vw, calc((100vw - var(--content)) / 2)); display: flex; align-items: center; justify-content: space-between; gap: 24px; color: var(--white); border-bottom: 1px solid rgb(255 255 255 / 20%); }
.brand { display: inline-flex; align-items: center; gap: 11px; flex: 0 0 auto; }
.brand-mark { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold); font: 600 15px/1 "Poppins", sans-serif; letter-spacing: .06em; }
.brand-name { display: grid; font: 500 13px/1.3 "Poppins", sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.brand-name b { font-weight: 600; }
.brand-name small { margin-top: 2px; font: 400 10px/1.4 "Karla", sans-serif; letter-spacing: .2em; opacity: .82; }
.desktop-nav { display: flex; align-items: center; gap: clamp(13px, 1.7vw, 26px); }
.desktop-nav a { font: 500 11px/1.4 "Poppins", sans-serif; text-transform: uppercase; letter-spacing: .07em; transition: color .2s; }
.desktop-nav a:hover, .desktop-nav a:focus-visible { color: var(--gold); }
.header-cta { padding: 10px 16px; border: 1px solid rgb(255 255 255 / 65%); border-radius: 2px; font: 500 12px/1.4 "Poppins", sans-serif; white-space: nowrap; }
.header-cta span { margin-left: 8px; color: var(--gold); }
.mobile-nav { display: none; }
.hero { position: relative; display: grid; place-items: center; min-height: min(780px, 100svh); padding: 150px 24px 115px; overflow: hidden; color: var(--white); text-align: center; background: #30232a; }
.hero-image, .hero-shade { position: absolute; inset: 0; }
.hero-image { background: url("https://strajasthanifolkmusicalgroup.com/assets/images/img-17.jpeg") center 36%/cover no-repeat; transform: scale(1.015); }
.hero-shade { background: linear-gradient(90deg, rgb(24 17 21 / 69%), rgb(33 19 29 / 42%) 52%, rgb(24 17 21 / 64%)), linear-gradient(0deg, rgb(22 14 18 / 48%), transparent 50%); }
.hero-content { position: relative; z-index: 1; width: min(820px, 100%); }
.script { font-family: "Playball", "Brush Script MT", cursive; font-weight: 400; }
.hero-welcome { margin: 0 0 -4px; color: var(--gold); font-size: clamp(32px, 5vw, 51px); }
.hero h1 { margin: 0 auto 22px; font: 600 clamp(38px, 6.5vw, 76px)/1.1 "Poppins", sans-serif; letter-spacing: -.035em; text-transform: uppercase; }
.hero h1 span { color: var(--gold); }
.hero-copy { max-width: 610px; margin: 0 auto 29px; color: rgb(255 255 255 / 88%); font-size: 19px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 50px; padding: 11px 21px; font: 500 13px/1.5 "Poppins", sans-serif; transition: background .2s, color .2s, transform .2s; }
.button:hover { transform: translateY(-2px); }
.button-light { color: var(--white); border: 1px solid rgb(255 255 255 / 72%); }
.button-light:hover { background: var(--white); color: var(--pink); }
.button-pink { margin-top: 12px; background: var(--pink); color: var(--white); }
.button-pink:hover { background: var(--pink-dark); }
.hero-scroll { position: absolute; z-index: 1; bottom: 26px; left: 50%; display: flex; align-items: center; gap: 10px; transform: translateX(-50%); color: rgb(255 255 255 / 78%); font: 500 10px/1.4 "Poppins", sans-serif; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.hero-scroll span { display: inline-block; width: 28px; height: 1px; background: var(--gold); }
.section { padding: 82px max(24px, calc((100vw - var(--content)) / 2)); }
.intro { display: grid; grid-template-columns: 1.1fr .9fr; gap: 8%; align-items: center; padding-top: 64px; padding-bottom: 42px; }
.eyebrow { margin: 0 0 14px; color: var(--pink); font: 600 11px/1.5 "Poppins", sans-serif; letter-spacing: .17em; text-transform: uppercase; }
.intro-quote { max-width: 610px; margin: 0; font: 500 clamp(24px, 3.2vw, 38px)/1.32 "Poppins", sans-serif; letter-spacing: -.035em; }
.intro-copy p { margin: 0 0 12px; color: var(--muted); }
.text-link { display: inline-flex; gap: 10px; align-items: center; margin-top: 3px; color: var(--pink); font: 600 12px/1.4 "Poppins", sans-serif; text-transform: uppercase; letter-spacing: .07em; }
.about-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 8%; padding-top: 35px; padding-bottom: 88px; }
.photo-frame { position: relative; min-height: 390px; background: var(--warm); }
.photo-frame::before { position: absolute; z-index: 1; inset: 15px -15px -15px 15px; border: 1px solid var(--gold); content: ""; pointer-events: none; }
.photo-frame img { position: relative; z-index: 2; min-height: 390px; }
.photo-caption { position: absolute; z-index: 3; right: 0; bottom: 0; padding: 9px 15px; background: var(--pink); color: var(--white); font: 500 10px/1.5 "Poppins", sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.about-text { padding: 12px 0; }
.about-text h2, .culture h2 { margin: 0 0 19px; font: 600 clamp(29px, 3.4vw, 43px)/1.2 "Poppins", sans-serif; letter-spacing: -.04em; }
.about-text h2 span { color: var(--pink); }
.about-text p:not(.eyebrow) { color: var(--muted); }
.highlights { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; padding: 30px max(24px, calc((100vw - var(--content)) / 2)); background: var(--pink); color: var(--white); }
.highlight { display: grid; grid-template-columns: 45px 1fr; grid-template-rows: auto auto; align-items: center; column-gap: 14px; padding: 4px 20px; border-right: 1px solid rgb(255 255 255 / 25%); }
.highlight:last-child { border: 0; }
.highlight-icon { grid-row: 1 / span 2; color: var(--gold); font-size: 31px; line-height: 1; }
.highlight strong { font: 600 13px/1.5 "Poppins", sans-serif; }
.highlight small { color: rgb(255 255 255 / 80%); font-size: 14px; }
.section-heading { max-width: 670px; margin: 0 auto 38px; text-align: center; }
.section-heading .script { margin: 0 0 10px; color: var(--pink); font-size: clamp(38px, 5.2vw, 55px); line-height: 1.2; }
.section-heading p:last-child { margin: 7px 0 0; color: var(--muted); }
.performances { padding-top: 82px; padding-bottom: 94px; }
.gallery-grid { display: grid; grid-template-columns: 1.15fr .85fr .85fr; grid-auto-rows: 205px; gap: 14px; }
.gallery-item { position: relative; min-width: 0; margin: 0; overflow: hidden; background: #ddd; }
.gallery-item::after { position: absolute; inset: 35% 0 0; background: linear-gradient(transparent, rgb(25 15 20 / 72%)); content: ""; }
.gallery-item img { transition: transform .45s ease; }
.gallery-item:hover img { transform: scale(1.045); }
.gallery-item figcaption { position: absolute; z-index: 1; right: 16px; bottom: 13px; left: 16px; color: var(--white); font: 500 11px/1.5 "Poppins", sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.gallery-tall { grid-row: span 2; }
.gallery-wide { grid-column: span 2; }
.culture { display: grid; grid-template-columns: .9fr 1.1fr; gap: 8%; align-items: center; background: var(--warm); }
.culture-copy { padding: 15px 0; }
.culture h2 span { color: var(--pink); }
.culture-copy > p:not(.eyebrow) { max-width: 470px; color: var(--muted); }
.culture-copy .button { margin-top: 13px; border-color: var(--pink); background: var(--pink); }
.dance-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
.dance-list article { display: grid; grid-template-columns: 38px 1fr; align-content: start; padding: 18px 0; border-bottom: 1px solid #e5dcd2; }
.dance-list article > span { grid-row: 1 / span 2; padding-top: 3px; color: var(--pink); font: 500 11px/1.5 "Poppins", sans-serif; }
.dance-list h3 { margin: 0; font: 600 16px/1.5 "Poppins", sans-serif; }
.dance-list p { grid-column: 2; margin: 5px 0 0; color: var(--muted); font-size: 15px; line-height: 1.5; }
.music { background: var(--white); }
.song-list { max-width: 850px; margin: auto; border-top: 1px solid #e8e1e5; }
.song-list article { display: grid; grid-template-columns: 44px 48px 1fr auto; align-items: center; gap: 13px; min-height: 78px; border-bottom: 1px solid #e8e1e5; }
.song-number, .song-type { color: var(--muted); font: 500 10px/1.5 "Poppins", sans-serif; letter-spacing: .09em; text-transform: uppercase; }
.song-note { color: var(--pink); font-size: 23px; }
.song-list h3 { margin: 0; font: 500 16px/1.5 "Poppins", sans-serif; }
.testimonials { background: #f8f8f8; }
.testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.testimonial-grid blockquote { position: relative; margin: 0; padding: 24px 25px 22px; background: var(--white); border-top: 2px solid var(--pink); box-shadow: 0 10px 28px rgb(49 32 43 / 4%); }
.quote-mark { color: var(--pink); font: 400 52px/.8 Georgia, serif; }
.testimonial-grid blockquote p { min-height: 106px; margin: 10px 0 17px; color: var(--muted); font-size: 16px; line-height: 1.6; }
.testimonial-grid cite { color: var(--ink); font: normal 600 11px/1.5 "Poppins", sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.booking { display: grid; grid-template-columns: 70px 1fr auto; align-items: center; gap: 25px; padding: 39px max(24px, calc((100vw - var(--content)) / 2)); background: var(--pink); color: var(--white); }
.booking-mark { color: var(--gold); font-size: 52px; line-height: 1; }
.booking .eyebrow { margin-bottom: 3px; color: var(--gold); }
.booking h2 { margin: 0; font-size: clamp(28px, 4vw, 43px); line-height: 1.2; }
.booking p:last-child { margin: 4px 0 0; color: rgb(255 255 255 / 83%); }
.booking-actions { display: grid; justify-items: center; gap: 7px; }
.booking-actions .button { min-width: 190px; font-size: 12px; }
.booking-whatsapp { color: var(--white); font-size: 12px; }
.site-footer { padding: 52px max(24px, calc((100vw - var(--content)) / 2)) 0; background: #241d25; color: rgb(255 255 255 / 77%); }
.footer-main { display: grid; grid-template-columns: 1.6fr .85fr 1fr; gap: 8%; padding-bottom: 38px; }
.brand-inverse { color: var(--white); }
.footer-brand > p { max-width: 335px; margin: 17px 0 0; font-size: 15px; }
.footer-main h3 { margin: 3px 0 14px; color: var(--white); font: 600 12px/1.5 "Poppins", sans-serif; letter-spacing: .09em; text-transform: uppercase; }
.footer-main > div:not(:first-child) { display: flex; flex-direction: column; align-items: flex-start; }
.footer-main > div:not(:first-child) a, .footer-main > div:not(:first-child) p { margin: 0 0 6px; font-size: 15px; }
.footer-main a:hover, .footer-bottom a:hover { color: var(--gold); }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding: 15px 0; border-top: 1px solid rgb(255 255 255 / 14%); font-size: 12px; }

@media (max-width: 1100px) {
  .site-header { padding-right: 24px; padding-left: 24px; }
  .desktop-nav { gap: 12px; }
  .desktop-nav a { font-size: 10px; }
  .header-cta { padding: 9px 12px; }
}
@media (max-width: 850px) {
  .site-header { min-height: 80px; }
  .desktop-nav, .header-cta { display: none; }
  .mobile-nav { display: block; position: relative; }
  .mobile-nav summary { display: grid; gap: 5px; width: 42px; height: 42px; align-content: center; justify-items: center; list-style: none; cursor: pointer; }
  .mobile-nav summary::-webkit-details-marker { display: none; }
  .mobile-nav summary span { width: 22px; height: 2px; background: var(--white); }
  .mobile-nav nav { position: absolute; top: 52px; right: 0; display: grid; min-width: 210px; padding: 10px 18px; background: #241d25; box-shadow: 0 15px 30px rgb(0 0 0 / 22%); }
  .mobile-nav nav a { padding: 10px 0; border-bottom: 1px solid rgb(255 255 255 / 12%); font: 500 11px/1.4 "Poppins", sans-serif; letter-spacing: .06em; text-transform: uppercase; }
  .intro { gap: 5%; }
  .about-grid { gap: 6%; }
  .gallery-grid { grid-auto-rows: 175px; }
  .culture { gap: 5%; }
  .booking { grid-template-columns: 48px 1fr; }
  .booking-mark { font-size: 42px; }
  .booking-actions { grid-column: 2; grid-row: 2; justify-items: start; }
}
@media (max-width: 600px) {
  body { font-size: 16px; }
  .site-header { min-height: 72px; padding: 11px 18px; }
  .brand-mark { width: 42px; height: 42px; font-size: 13px; }
  .brand-name { font-size: 11px; }
  .brand-name small { font-size: 9px; }
  .hero { min-height: 690px; min-height: 92svh; padding: 130px 20px 100px; }
  .hero-image { background-position: 48% center; }
  .hero-copy { font-size: 17px; }
  .section { padding: 62px 21px; }
  .intro { grid-template-columns: 1fr; gap: 20px; padding-top: 51px; padding-bottom: 34px; }
  .intro-quote { font-size: 27px; }
  .about-grid { grid-template-columns: 1fr; gap: 39px; padding-top: 25px; padding-bottom: 62px; }
  .photo-frame, .photo-frame img { min-height: 300px; }
  .about-text h2, .culture h2 { font-size: 32px; }
  .highlights { grid-template-columns: 1fr; gap: 0; padding: 15px 24px; }
  .highlight { min-height: 75px; padding: 8px 5px; border-right: 0; border-bottom: 1px solid rgb(255 255 255 / 25%); }
  .highlight:last-child { border-bottom: 0; }
  .performances { padding-top: 62px; padding-bottom: 64px; }
  .section-heading { margin-bottom: 29px; }
  .gallery-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 145px; gap: 9px; }
  .gallery-tall { grid-row: span 2; }
  .gallery-wide { grid-column: span 1; }
  .culture { grid-template-columns: 1fr; gap: 26px; }
  .dance-list { gap: 0 14px; }
  .dance-list article { grid-template-columns: 30px 1fr; padding: 14px 0; }
  .dance-list h3 { font-size: 14px; }
  .dance-list p { font-size: 14px; }
  .song-list article { grid-template-columns: 25px 30px 1fr; gap: 9px; min-height: 72px; }
  .song-list h3 { font-size: 14px; }
  .song-type { display: none; }
  .testimonial-grid { grid-template-columns: 1fr; gap: 12px; }
  .testimonial-grid blockquote { padding: 20px; }
  .testimonial-grid blockquote p { min-height: 0; }
  .booking { grid-template-columns: 35px 1fr; gap: 14px; padding: 32px 21px; }
  .booking-mark { font-size: 32px; }
  .booking h2 { font-size: 28px; }
  .booking p:last-child { font-size: 15px; }
  .booking-actions { grid-column: 1 / -1; }
  .site-footer { padding: 40px 21px 0; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 28px 18px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; gap: 6px; font-size: 11px; }
}

/* Match the reference site's header, hero and homepage details */
:root { --pink:#d82074; --pink-dark:#d82074; --ink:#111; --muted:#333; --blue:#133283; --warm:#fff; --content:1120px; }
body { color:#111; font:400 18px/1.857 "Karla",sans-serif; }
.site-header { position:relative; inset:auto; display:flex; min-height:128px; height:128px; justify-content:space-between; gap:16px; padding:0 32px; background:#fff; color:var(--blue); border:0; }
.brand { flex:0 0 170px; width:170px; flex-direction:column; justify-content:center; gap:0; color:var(--blue); text-align:center; }
.brand-mark { display:block; width:auto; height:42px; border:0; border-radius:0; color:var(--pink); font:400 34px/1.2 "Great Vibes",cursive; letter-spacing:0; }
.brand-name { display:block; color:var(--blue); font:400 22px/1.1 "Great Vibes",cursive; letter-spacing:0; text-transform:none; }
.brand-name b { font-weight:400; }
.brand-name small { display:block; margin-top:3px; font:500 9px/1.25 "Poppins",sans-serif; letter-spacing:.16em; text-transform:uppercase; }
.desktop-nav { flex:1; justify-content:flex-end; gap:0; }
.desktop-nav a { color:var(--blue); font:500 18px/30px "Poppins",sans-serif; letter-spacing:0; text-transform:uppercase; }
.desktop-nav > a, .nav-drop > a { padding:0 17px; }
.desktop-nav a:hover, .desktop-nav a:focus-visible, .desktop-nav a[aria-current="page"], .desktop-nav .is-active > a { color:var(--pink); }
.nav-drop > a span { color:var(--blue); font-size:15px; }
.nav-menu { top:100%; left:0; min-width:230px; background:#fff; border-top:2px solid var(--pink); box-shadow:0 6px 15px rgb(0 0 0 / 15%); }
.nav-menu a { padding:10px 12px; color:var(--blue); font-size:13px; line-height:1.4; text-transform:none; }
.nav-menu a:hover, .nav-menu a[aria-current="page"] { color:var(--pink); }
.header-cta { display:none; }
.hero { height:720px; min-height:600px; padding:0; background:#133283; }
.hero-image { inset:0; transform:none; background:none; }
.hero-slide { position:absolute; inset:0; display:block; background-image:var(--slide-image); background-position:center top; background-size:cover; opacity:0; animation:heroFade 24s infinite, heroZoom 24s infinite; }
.hero-slide:nth-child(1) { animation-delay:0s; }
.hero-slide:nth-child(2) { animation-delay:6s; }
.hero-slide:nth-child(3) { animation-delay:12s; }
.hero-slide:nth-child(4) { animation-delay:18s; }
@keyframes heroFade { 0%,23% {opacity:1} 25%,98% {opacity:0} 100% {opacity:1} }
@keyframes heroZoom { 0% {transform:scale(1)} 100% {transform:scale(1.09)} }
.hero-shade { inset:0; background:linear-gradient(172.8deg,#ff1c84 6%,#002ca0 74%); opacity:.84; }
.hero-content { width:100%; max-width:none; padding:0 30px; transform:translateY(-7px); }
.hero-welcome { display:block; margin:0; color:#fff; font:500 39.6px/1.86 "Playball",cursive; }
.hero h1 { max-width:1200px; margin:0 auto 25px; color:#fff; font:600 63px/1.86 "Great Vibes",cursive; letter-spacing:0; text-transform:none; }
.hero-button { min-height:53px; padding:10px 20px; background:var(--pink); border:0; border-radius:1px; color:#fff; font:500 18px/1.85 "Poppins",sans-serif; }
.hero-button:hover { background:#b7165e; color:#fff; }
.hero-shape { position:absolute; z-index:2; right:0; bottom:-1px; left:0; height:62px; background:#fff; clip-path:ellipse(72% 34% at 50% 100%); }
.hero-scroll { display:none; }
.section { max-width:none; padding-right:max(24px,calc((100vw - 1120px)/2)); padding-left:max(24px,calc((100vw - 1120px)/2)); }
.source-intro { display:block; width:100%; max-width:1120px; min-height:170px; margin:0 auto; padding:36px 24px 12px; text-align:center; }
.source-intro p { max-width:920px; margin:0 auto; color:#111; font:400 18px/1.86 "Karla",sans-serif; }
.source-about { display:grid; width:100%; max-width:1120px; margin:0 auto; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:35px; align-items:center; padding:0 24px 45px; box-sizing:border-box; }
.source-about .about-copy p { margin:0 0 15px; font:400 18px/1.86 "Karla",sans-serif; }
.source-about-photo { min-height:360px; }
.source-about-photo img { min-height:360px; object-fit:cover; }
.source-about .button { min-height:auto; padding:8px 16px; border-radius:1px; font-size:14px; }
.source-stats { display:grid; grid-template-columns:repeat(3,1fr); align-items:center; min-height:191px; padding:28px max(24px,calc((100vw - 1120px)/2)); background:var(--pink); color:#fff; }
.source-stat { display:flex; align-items:center; justify-content:center; gap:28px; color:#fff; }
.source-stat .stat-icon { display:grid; width:74px; height:74px; place-items:center; border:3px solid #fff; border-radius:50%; color:#fff; font:400 38px/1 "Poppins",sans-serif; }
.source-stat div { display:grid; }
.source-stat b { font:700 58px/1 "Roboto",sans-serif; }
.source-stat strong { font:600 20px/1.3 "Roboto",sans-serif; }
.source-performances { padding-top:72px; padding-bottom:90px; }
.source-performances .section-heading, .source-clients .section-heading, .source-testimonials .section-heading, .source-music .section-heading { margin:0 auto 28px; }
.source-performances .section-heading h2, .source-clients .section-heading h2, .source-testimonials .section-heading h2, .source-music .section-heading h2 { color:var(--blue); font:600 36px/1.3 "Roboto",sans-serif; text-transform:uppercase; }
.source-performances .section-heading p:last-child, .source-clients .section-heading p:last-child { margin-top:8px; color:#111; font:400 20px/1.55 "Karla",sans-serif; }
.source-performances .gallery-grid { grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:auto; gap:8px; }
.source-performances .gallery-item { grid-column:auto; grid-row:auto; aspect-ratio:1.72; }
.source-performances .gallery-item::after, .source-performances .gallery-item figcaption { display:none; }
.source-performances .gallery-item img { object-fit:cover; }
.source-music { position:relative; padding-top:54px; padding-bottom:54px; background:#133283 url("https://strajasthanifolkmusicalgroup.com/assets/images/img-6.jpeg") center/cover no-repeat; color:#fff; isolation:isolate; }
.source-music::before { position:absolute; z-index:-1; inset:0; background:#133283; opacity:.94; content:""; }
.source-music .section-heading { margin-bottom:30px; }
.source-music .section-heading h2 { color:#fff; }
.album-player { display:grid; grid-template-columns:2fr 1fr; width:min(1108px,100%); min-height:430px; margin:auto; background:#fff; }
.video-placeholder { min-height:430px; background:#000; }
.album-tracks { display:flex; flex-direction:column; color:#666; background:#fff; }
.album-tracks h3 { margin:0; padding:14px 17px; border-bottom:1px solid #ddd; color:#111; font:600 15px/1.5 "Roboto",sans-serif; }
.album-tracks a { padding:18px 16px; border-bottom:1px solid #e4e4e4; color:#777; font:400 14px/1.4 "Karla",sans-serif; }
.album-tracks a:first-of-type { background:#f3f3f3; }
.album-tracks a:hover { color:var(--pink); }
.album-button { display:flex; width:max-content; min-height:53px; margin:63px auto 0; padding:10px 20px; background:#fff; color:var(--blue); font:500 18px/1.85 "Poppins",sans-serif; }
.source-clients { padding-top:60px; padding-bottom:62px; }
.source-clients { min-height:502px; }
.source-clients .section-heading h2 { color:var(--pink); }
.client-logos { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); align-items:center; gap:18px; margin-top:34px; }
.client-logos span { min-height:115px; padding:10px; background:transparent; color:#363636; font:600 13px/1.3 "Roboto",sans-serif; text-align:center; text-transform:capitalize; }
.client-logos span { padding:0; }
.client-logos img { width:100%; height:110px; object-fit:contain; }
.source-testimonials { min-height:455px; background:#f8f8f8; padding-top:72px; padding-bottom:54px; }
.source-testimonials .section-heading { margin-bottom:33px; }
.source-testimonials .section-heading h2 { color:var(--blue); }
.source-testimonials .testimonial-grid { display:block; width:100%; max-width:1040px; margin:auto; }
.source-testimonials blockquote { min-height:128px; margin:0; padding:18px 24px 10px; border:0; background:#e4e7ef; box-shadow:none; text-align:center; }
.source-testimonials .quote-mark { display:none; }
.source-testimonials blockquote p { min-height:0; margin:0 0 13px; color:#111; font:400 18px/1.55 "Karla",sans-serif; }
.source-testimonials blockquote cite { color:var(--pink); font:600 15px/1.5 "Roboto",sans-serif; }
.booking { grid-template-columns:1.2fr .55fr 1.2fr; gap:22px; align-items:center; min-height:268px; padding:40px max(24px,calc((100vw - 1120px)/2)); background:var(--pink); color:#fff; }
.booking-title h2 { max-width:460px; margin:0; color:#fff; font:600 39.6px/1.3 "Roboto",sans-serif; }
.booking-mark { display:grid; place-items:center; width:auto; color:#fff; font:400 74px/1 "Great Vibes",cursive; }
.booking-info { display:grid; gap:10px; }
.booking-info p { margin:0 0 3px; color:#fff; font:400 20px/1.4 "Karla",sans-serif; }
.booking-info a { display:flex; align-items:center; gap:14px; color:#fff; font:600 19px/1.4 "Roboto",sans-serif; }
.booking-info a span { display:grid; width:36px; height:36px; place-items:center; border-radius:50%; background:var(--blue); }
.site-footer { padding:54px max(24px,calc((100vw - 1120px)/2)) 0; background:linear-gradient(rgb(0 0 0 / 94%),rgb(0 0 0 / 96%)),url("https://strajasthanifolkmusicalgroup.com/assets/images/img-24.jpeg") center/cover no-repeat; color:#fff; }
.footer-main { grid-template-columns:1.25fr .75fr 1.35fr; gap:7%; padding-bottom:34px; }
.footer-brand .brand { justify-content:flex-start; text-align:center; }
.brand-inverse, .brand-inverse .brand-name { color:#fff; }
.brand-inverse .brand-mark { color:#fff; }
.footer-brand > p { max-width:390px; color:#fff; font:400 15px/1.65 "Karla",sans-serif; text-align:center; }
.footer-main h3 { color:var(--pink); font:600 16px/1.5 "Roboto",sans-serif; letter-spacing:0; }
.footer-main > div:not(:first-child) a, .footer-main > div:not(:first-child) p { color:#fff; font:400 15px/1.65 "Karla",sans-serif; }
.footer-useful a { color:#133283!important; }
.footer-contact > div { margin-top:20px; }
.footer-contact strong { color:#fff; font:700 16px/1.4 "Roboto",sans-serif; }
.footer-contact p { margin:3px 0!important; }
.follow-heading { margin-top:22px!important; text-align:center; }
.social-links { display:flex; justify-content:center; gap:12px; flex-wrap:wrap; }
.social-links a { color:#fff; font:400 12px/1.4 "Karla",sans-serif; }
.footer-bottom { color:#fff; border-top:1px solid #2b2b2b; font:400 13px/1.5 "Karla",sans-serif; }
.page-banner { min-height:310px; padding-top:45px; background:#fff; color:var(--blue); }
.page-banner::before { opacity:.24; filter:grayscale(1); }
.page-banner::after { background:linear-gradient(90deg,rgb(19 50 131 / 82%),rgb(216 32 116 / 65%)); opacity:.72; }
.page-banner h1 { font:600 39.6px/1.3 "Roboto",sans-serif; text-transform:uppercase; }
.page-banner .eyebrow, .breadcrumb { color:#fff; }
.section-heading .eyebrow { color:var(--pink); }
.section-heading .script { font-family:"Roboto",sans-serif; text-transform:uppercase; }
@media (max-width:1100px) {
  .site-header { padding:0 16px; }
  .desktop-nav { justify-content:flex-end; }
  .desktop-nav a { font-size:14px; }
  .desktop-nav > a, .nav-drop > a { padding:0 9px; }
}
@media (max-width:850px) {
  .site-header { min-height:95px; height:95px; }
  .brand { flex-basis:140px; width:140px; }
  .desktop-nav { display:none; }
  .mobile-nav { display:block; position:relative; }
  .mobile-nav summary span { background:var(--blue); }
  .mobile-nav nav { top:48px; background:#fff; box-shadow:0 8px 20px rgb(0 0 0 / 18%); }
  .mobile-nav nav { max-height:calc(100vh - 110px); overflow:auto; }
  .mobile-nav nav a { color:var(--blue); border-color:#eee; }
  .mobile-nav nav a[aria-current="page"] { color:var(--pink); }
  .hero { height:calc(100vh - 95px); min-height:520px; }
  .hero h1 { font-size:52px; line-height:1.5; }
  .source-about { padding-right:24px; padding-left:24px; }
  .source-stat { gap:12px; }
  .source-stat b { font-size:44px; }
  .source-stat strong { font-size:15px; }
  .source-stat .stat-icon { width:54px; height:54px; font-size:28px; }
}
@media (max-width:600px) {
  .site-header { min-height:78px; height:78px; padding:0 16px; }
  .brand { flex-direction:row; width:auto; flex-basis:auto; gap:7px; }
  .brand-mark { width:auto; height:auto; font-size:26px; }
  .brand-name { font-size:18px; text-align:left; }
  .brand-name small { font-size:8px; }
  .hero { min-height:510px; height:calc(100vh - 78px); padding:8rem 0; }
  .hero-welcome { font-size:1.4rem; line-height:1.8; }
  .hero h1 { margin:-.5rem auto 18px; font-size:1.8rem; line-height:1.8; }
  .hero-button { min-height:auto; padding:8px; font-size:.8rem; }
  .source-intro { min-height:0; padding:38px 22px 18px; }
  .source-intro p { font-size:1rem; line-height:1.7; }
  .source-about .about-copy p { font-size:.9rem; }
  .source-about { grid-template-columns:1fr; gap:18px; padding:0 4% 9%; }
  .source-about-photo, .source-about-photo img { min-height:250px; }
  .source-stats { grid-template-columns:repeat(3,1fr); gap:4px; padding:8% 3%; }
  .source-stat { flex-direction:column; gap:8px; text-align:center; }
  .source-stat .stat-icon { width:39px; height:39px; font-size:20px; }
  .source-stat b { font-size:30px; }
  .source-stat strong { font-size:11px; }
  .source-performances { padding:10% 3%; }
  .source-performances .section-heading h2, .source-clients .section-heading h2, .source-testimonials .section-heading h2, .source-music .section-heading h2 { font-size:1.5em; }
  .source-performances .section-heading p:last-child, .source-clients .section-heading p:last-child { font-size:.9rem; }
  .source-performances .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; }
  .source-music { padding:10% 4%; }
  .album-player { grid-template-columns:1fr; min-height:0; }
  .video-placeholder { min-height:220px; }
  .album-tracks a { padding:14px; }
  .album-button { margin-top:32px; font-size:14px; }
  .source-clients, .source-testimonials { padding:10% 4%; }
  .client-logos { grid-template-columns:repeat(3,1fr); gap:6px; }
  .client-logos span { min-height:76px; font-size:10px; }
  .source-testimonials blockquote p { font-size:15px; }
  .booking { grid-template-columns:1fr; gap:10px; padding:8% 6%; text-align:center; }
  .booking-title h2 { font-size:1.8rem; }
  .booking-mark { display:none; }
  .booking-info { justify-items:center; }
  .booking-info a { font-size:14px; }
  .footer-main { grid-template-columns:1fr; gap:25px; }
  .footer-brand .brand { justify-content:center; }
  .footer-main > div:not(:first-child) { align-items:center; text-align:center; }
  .footer-contact > div { margin-top:12px; }
  .footer-bottom { flex-direction:row; }
}

.album-video { display:block; width:100%; min-height:430px; border:0; background:#000; }
.testimonial-slider { position:relative; display:grid; grid-template-columns:40px minmax(0,1fr) 40px; align-items:center; width:100%; max-width:1120px; margin:auto; }
.testimonial-window { overflow:hidden; width:100%; }
.testimonial-track { display:flex; transition:transform .45s ease; }
.testimonial-slide { flex:0 0 100%; min-height:135px; margin:0; padding:18px 24px 12px; border:0; background:#e4e7ef; box-shadow:none; text-align:center; }
.testimonial-slide p { min-height:0; margin:0 0 13px; color:#111; font:400 18px/1.55 "Karla",sans-serif; }
.testimonial-slide cite { color:var(--pink); font:600 15px/1.5 "Roboto",sans-serif; }
.testimonial-arrow { display:grid; width:38px; height:54px; place-items:center; border:0; background:transparent; color:var(--blue); font:400 42px/1 "Karla",sans-serif; cursor:pointer; }
.testimonial-arrow:hover { color:var(--pink); }
.testimonial-dots { display:flex; justify-content:center; gap:12px; margin:22px 0 0; }
.testimonial-dots button { width:7px; height:7px; padding:0; border:0; border-radius:50%; background:#bbb; cursor:pointer; }
.testimonial-dots button.active { background:#111; }
.source-testimonials .testimonial-grid { display:none; }
.contact-page { display:grid; grid-template-columns:1fr 1fr; gap:6%; align-items:start; }
.contact-intro h2, .contact-form-wrap h2 { margin:0 0 23px; color:var(--blue); font:600 30px/1.35 "Roboto",sans-serif; }
.office-tabs { display:flex; gap:0; margin-bottom:20px; border-bottom:2px solid var(--pink); color:var(--blue); font:500 14px/1.5 "Poppins",sans-serif; }
.office-tabs span { padding:10px 16px; }
.office-tabs span:first-child { background:var(--pink); color:#fff; }
.office-grid { display:grid; grid-template-columns:1fr 1fr; gap:25px; }
.office-grid article { display:grid; align-content:start; gap:5px; }
.office-grid p { min-height:88px; margin:0 0 4px; color:#111; font:400 16px/1.6 "Karla",sans-serif; }
.office-grid a { color:var(--blue); font:400 16px/1.6 "Karla",sans-serif; }
.office-grid a:hover { color:var(--pink); }
.contact-form-wrap h2 { margin-bottom:16px; color:var(--pink); font-size:22px; }
.contact-social { display:flex; gap:12px; margin-bottom:19px; }
.contact-social a { padding:8px 12px; background:var(--blue); color:#fff; font:500 12px/1.5 "Poppins",sans-serif; }
.contact-page .contact-form { grid-template-columns:1fr; gap:11px; padding:20px; background:#f8f8f8; }
.contact-page .contact-form label:nth-child(4) { grid-column:auto; }
.contact-page .contact-form button { min-width:110px; }
.contact-page .form-note { display:none; }
@media(max-width:850px) {
  .contact-page { grid-template-columns:1fr; gap:36px; }
}
@media(max-width:600px) {
  .album-video { min-height:220px; }
  .testimonial-slider { grid-template-columns:25px minmax(0,1fr) 25px; }
  .testimonial-slide { min-height:150px; padding:14px 10px; }
  .testimonial-slide p { font-size:15px; }
  .testimonial-arrow { width:25px; font-size:32px; }
  .office-grid { grid-template-columns:1fr; }
  .office-grid p { min-height:0; }
  .contact-page { padding-top:45px; padding-bottom:45px; }
}
.page-banner { height:720px; min-height:600px; padding:0 24px; background:#133283; }
.page-banner::before { inset:0; background-position:center top; background-size:cover; opacity:1; filter:none; }
.page-banner::after { background:linear-gradient(172.8deg,#ff1c84 6%,#002ca0 74%); opacity:.84; }
.page-banner-content { transform:translateY(-5px); }
.page-banner .eyebrow { margin:0; color:#fff; font:500 39.6px/1.86 "Playball",cursive; letter-spacing:0; text-transform:none; }
.page-banner h1 { margin:0; color:#fff; font:600 63px/1.86 "Great Vibes",cursive; letter-spacing:0; text-transform:none; }
.page-banner .breadcrumb { display:none; }
.profile-copy, .group-story { max-width:1120px; color:#111; font:400 18px/1.86 "Karla",sans-serif; }
.profile-text p, .group-story p { margin:0 0 16px; }
.profile-photos { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:25px; }
.profile-photos img { width:100%; height:310px; object-fit:cover; }
.achievements { display:grid; grid-template-columns:.6fr 1.4fr; gap:6%; background:#f8f8f8; }
.achievements .section-heading { margin:0; text-align:left; }
.achievements .section-heading h2, .profile-highlights .section-heading h2 { color:var(--blue); font:600 36px/1.3 "Roboto",sans-serif; text-transform:uppercase; }
.achievements ul, .profile-highlights ul { margin:0; padding-left:22px; font:400 18px/1.8 "Karla",sans-serif; }
.achievements li, .profile-highlights li { padding:3px 0; }
.group-story .section-heading h2 { color:var(--blue); font:600 36px/1.3 "Roboto",sans-serif; text-transform:uppercase; }
.group-photo-row { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-top:35px; }
.group-photo-row img { aspect-ratio:1.2; object-fit:cover; }
.profile-highlights { max-width:1120px; }
.profile-highlights .section-heading { margin:0 0 24px; }
.award-section { padding-top:72px; padding-bottom:80px; }
.award-section .section-heading { max-width:1120px; margin-bottom:32px; }
.award-section .section-heading h2 { color:var(--blue); font:600 36px/1.3 "Roboto",sans-serif; text-transform:uppercase; }
.award-section .section-heading p:last-child { color:#111; font:400 20px/1.55 "Karla",sans-serif; }
.award-rule { display:flex; align-items:center; justify-content:center; gap:8px; max-width:445px; margin:15px auto 22px; color:var(--pink); }
.award-rule::before, .award-rule::after { flex:1; height:2px; background:var(--pink); content:""; }
.award-grid article { min-height:0; padding:0 0 18px; border:0; background:#fff; text-align:center; }
.award-grid article img { display:block; width:100%; height:250px; object-fit:contain; background:#fafafa; }
.award-grid h3 { margin:12px 0 5px; color:var(--blue); font:600 16px/1.4 "Roboto",sans-serif; }
.award-grid p { color:#111; }
.source-gallery .section-heading h2 { color:var(--blue); font:600 36px/1.3 "Roboto",sans-serif; text-transform:uppercase; }
.source-gallery .section-heading p:last-child { color:#111; font:400 18px/1.6 "Karla",sans-serif; }
.source-gallery .gallery-grid { grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:auto; gap:8px; }
.source-gallery .gallery-item { grid-column:auto; grid-row:auto; aspect-ratio:1.72; }
.source-gallery .gallery-item::after, .source-gallery .gallery-item figcaption { display:none; }
.source-gallery .gallery-item img { object-fit:cover; }
@media(max-width:850px) {
  .page-banner { height:calc(100vh - 95px); min-height:520px; }
  .page-banner h1 { font-size:52px; line-height:1.5; }
  .page-banner .eyebrow { font-size:1.4rem; line-height:1.8; }
}
@media(max-width:600px) {
  .page-banner { height:calc(100vh - 78px); min-height:510px; padding:8rem 18px; }
  .page-banner h1 { margin:-.5rem auto 0; font-size:1.8rem; line-height:1.8; }
  .page-banner .eyebrow { font-size:1.4rem; line-height:1.8; }
  .profile-copy, .group-story { padding-top:8%; padding-bottom:8%; font-size:.9rem; }
  .profile-photos { grid-template-columns:1fr 1fr; gap:6px; }
  .profile-photos img { height:180px; }
  .achievements { grid-template-columns:1fr; gap:18px; }
  .achievements ul, .profile-highlights ul { font-size:.9rem; }
  .group-photo-row { grid-template-columns:repeat(2,1fr); }
  .award-section { padding-top:10%; padding-bottom:10%; }
  .award-section .section-heading h2 { font-size:1.5em; }
  .award-section .section-heading p:last-child { font-size:.9rem; }
  .award-grid article img { height:205px; }
  .source-gallery .section-heading h2 { font-size:1.5em; }
  .source-gallery .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; }
}

/* Shared multi-page navigation and inner-page layouts */
.nav-drop { position: relative; display: flex; align-items: center; height: 100%; }
.nav-drop > a { display: inline-flex; align-items: center; gap: 5px; }
.nav-drop > a span { color: var(--gold); font-size: 14px; }
.nav-menu { position: absolute; z-index: 15; top: calc(100% + 22px); left: -16px; display: none; min-width: 210px; padding: 8px 14px; background: #241d25; box-shadow: 0 12px 30px rgb(0 0 0 / 24%); }
.nav-menu a { display: block; padding: 10px 4px; border-bottom: 1px solid rgb(255 255 255 / 12%); color: var(--white); white-space: nowrap; }
.nav-menu a:last-child { border-bottom: 0; }
.nav-menu a:hover, .nav-menu a[aria-current="page"] { color: var(--gold); }
.nav-drop:hover .nav-menu, .nav-drop:focus-within .nav-menu { display: block; }
.desktop-nav a[aria-current="page"], .desktop-nav .is-active > a { color: var(--gold); }
.mobile-nav nav a[aria-current="page"] { color: var(--gold); }
.page-banner { position: relative; display: grid; min-height: 405px; place-items: center; padding: 145px 24px 62px; overflow: hidden; background: #33242c; color: var(--white); text-align: center; }
.page-banner::before, .page-banner::after { position: absolute; inset: 0; content: ""; }
.page-banner::before { background: var(--page-image) center 40%/cover no-repeat; }
.page-banner::after { background: linear-gradient(90deg, rgb(24 17 21 / 75%), rgb(33 19 29 / 53%), rgb(24 17 21 / 72%)); }
.page-banner-content { position: relative; z-index: 1; max-width: 850px; }
.page-banner .eyebrow { color: var(--gold); }
.page-banner h1 { margin: 0 0 15px; font: 600 clamp(35px, 5.5vw, 62px)/1.12 "Poppins", sans-serif; letter-spacing: -.035em; text-transform: uppercase; }
.breadcrumb { display: flex; justify-content: center; gap: 10px; color: rgb(255 255 255 / 78%); font: 500 10px/1.5 "Poppins", sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.breadcrumb span:nth-child(2) { color: var(--gold); }
.center-link { margin: 30px 0 0; text-align: center; }
.clients { background: var(--warm); }
.client-logos { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; align-items: stretch; }
.client-logos span { display: grid; min-height: 82px; place-items: center; padding: 12px; background: var(--white); color: #625c62; text-align: center; font: 600 12px/1.4 "Poppins", sans-serif; }
.content-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 22px; }
.content-card { overflow: hidden; background: var(--white); box-shadow: 0 10px 28px rgb(49 32 43 / 7%); }
.content-card-image { display: block; height: 225px; overflow: hidden; background: var(--warm); }
.content-card-image img { transition: transform .4s; }
.content-card:hover .content-card-image img { transform: scale(1.04); }
.content-card-copy { padding: 20px 21px 22px; }
.content-card-copy .eyebrow { margin-bottom: 7px; font-size: 9px; }
.content-card h3 { margin: 0 0 9px; font: 600 17px/1.45 "Poppins", sans-serif; }
.content-card-copy > p:not(.eyebrow) { margin: 0 0 11px; color: var(--muted); font-size: 15px; line-height: 1.6; }
.gallery-note { margin: 26px auto 0; max-width: 760px; color: var(--muted); text-align: center; font-size: 14px; }
.mission { display: grid; grid-template-columns: .8fr 1.2fr; gap: 7%; align-items: center; background: var(--warm); }
.mission .section-heading { margin: 0; text-align: left; }
.mission-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.mission-grid article { padding: 17px 14px; border-left: 2px solid var(--pink); background: var(--white); }
.mission-grid article > span { color: var(--pink); font: 500 10px/1.4 "Poppins", sans-serif; }
.mission-grid h3 { margin: 7px 0 4px; font: 600 15px/1.5 "Poppins", sans-serif; }
.mission-grid p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.expertise-grid { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: 18px 28px; align-items: center; }
.expertise-grid > p { grid-row: span 3; margin: 0; color: var(--muted); }
.skill { display: grid; gap: 7px; font: 600 11px/1.4 "Poppins", sans-serif; }
.skill i { display: block; height: 7px; overflow: hidden; background: #f0e8ee; }
.skill b { display: block; height: 100%; background: var(--pink); }
.team-note, .contact-band { padding: 48px 24px; background: var(--pink); color: var(--white); text-align: center; }
.team-note .script { margin: 0; color: var(--gold); font-size: 48px; line-height: 1; }
.team-note h2 { margin: 3px 0 8px; font: 600 25px/1.35 "Poppins", sans-serif; }
.team-note p:last-child { margin: 0; color: rgb(255 255 255 / 82%); }
.award-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.award-grid article { position: relative; min-height: 185px; padding: 24px; border: 1px solid #eadfe6; background: var(--white); }
.award-number { color: var(--pink); font: 500 10px/1.4 "Poppins", sans-serif; letter-spacing: .1em; }
.award-star { position: absolute; top: 17px; right: 20px; color: var(--gold); font-size: 25px; }
.award-grid h3 { margin: 25px 0 6px; font: 600 16px/1.45 "Poppins", sans-serif; }
.award-grid p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.news-coverage { display: grid; grid-template-columns: .75fr 1.25fr; gap: 5%; align-items: center; background: var(--warm); }
.news-coverage .script { margin: 0 0 10px; color: var(--pink); font-size: 46px; }
.news-coverage > div:first-child > p:last-child { color: var(--muted); }
.news-coverage .gallery-grid { grid-template-columns: repeat(3,1fr); grid-auto-rows: 160px; }
.news-coverage .gallery-tall, .news-coverage .gallery-wide { grid-column: auto; grid-row: auto; }
.dance-detail { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 8%; }
.dance-detail .detail-image, .dance-detail .detail-image img { min-height: 410px; }
.detail-copy h2 { margin: 0 0 15px; font: 600 clamp(29px,3.4vw,43px)/1.2 "Poppins",sans-serif; }
.detail-copy > p:not(.eyebrow) { color: var(--muted); }
.related-dances { background: var(--warm); }
.related-dances .content-card { background: var(--white); }
.blog-grid .content-card-image { height: 205px; }
.contact-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 8%; align-items: start; }
.contact-details h2 { margin: 0 0 14px; color: var(--pink); font-size: 47px; line-height: 1.2; }
.contact-details > p:not(.eyebrow) { color: var(--muted); }
.contact-method { display: grid; gap: 2px; margin-top: 22px; padding-top: 14px; border-top: 1px solid #eadfe6; }
.contact-method span { color: var(--pink); font: 600 10px/1.5 "Poppins", sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.contact-method a { font: 500 17px/1.5 "Poppins", sans-serif; }
.contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; padding: 25px; background: var(--warm); }
.contact-form label { display: grid; gap: 6px; color: var(--ink); font: 600 11px/1.5 "Poppins", sans-serif; }
.contact-form label:nth-child(4) { grid-column: 1 / -1; }
.contact-form input, .contact-form textarea { width: 100%; padding: 11px 12px; border: 1px solid #e3d9df; border-radius: 0; background: var(--white); color: var(--ink); font: 400 15px/1.5 "Karla",sans-serif; }
.contact-form button { justify-self: start; border: 0; cursor: pointer; }
.form-note { grid-column: 1 / -1; margin: -9px 0 0; color: var(--muted); font-size: 12px; }
.contact-band .eyebrow { color: var(--gold); }
.contact-band h2 { margin: 0 0 17px; font-size: 43px; }
.related-dances .section-heading { margin-bottom: 30px; }
@media (max-width: 1100px) {
  .desktop-nav { gap: 9px; }
  .desktop-nav a { font-size: 9px; }
  .nav-menu { top: calc(100% + 24px); }
}
@media (max-width: 850px) {
  .nav-menu { display: none; }
  .mission, .news-coverage { grid-template-columns: 1fr; gap: 28px; }
  .mission .section-heading { max-width: 100%; }
  .client-logos { grid-template-columns: repeat(3,1fr); }
  .content-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dance-detail { gap: 6%; }
  .contact-layout { gap: 5%; }
}
@media (max-width: 600px) {
  .page-banner { min-height: 330px; padding: 120px 20px 45px; }
  .page-banner h1 { font-size: 34px; }
  .client-logos { grid-template-columns: repeat(2,1fr); }
  .content-grid, .award-grid { grid-template-columns: 1fr; gap: 14px; }
  .content-card-image { height: 210px; }
  .mission-grid { grid-template-columns: 1fr; }
  .expertise-grid { grid-template-columns: 1fr; }
  .expertise-grid > p { grid-row: auto; }
  .news-coverage .gallery-grid { grid-template-columns: repeat(3,1fr); grid-auto-rows: 110px; }
  .dance-detail { grid-template-columns: 1fr; gap: 35px; }
  .dance-detail .detail-image, .dance-detail .detail-image img { min-height: 280px; }
  .contact-layout { grid-template-columns: 1fr; gap: 35px; }
  .contact-details h2 { font-size: 38px; }
  .contact-form { grid-template-columns: 1fr; padding: 18px; }
  .contact-form label:nth-child(4), .form-note { grid-column: auto; }
  .contact-band h2 { font-size: 34px; }
}

/* Keep desktop dropdowns connected to their trigger so pointer selection works. */
.site-header { z-index: 40; }
.desktop-nav { position: relative; z-index: 41; }
.nav-drop { z-index: 1; }
.nav-drop:hover, .nav-drop:focus-within { z-index: 2; }
.nav-menu { top: calc(100% - 1px); z-index: 50; }
@media (max-width:1100px) {
  .nav-menu { top: calc(100% - 1px); }
}
@media (max-width:850px) {
  .site-header { z-index: 40; }
  .desktop-nav { display: none; }
}

/* Uploaded performance clips */
.video-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.video-card { min-width:0; overflow:hidden; background:#fff; box-shadow:0 10px 28px rgb(49 32 43 / 9%); }
.video-card video { display:block; width:100%; aspect-ratio:16 / 9; background:#111; object-fit:cover; }
.video-card h3 { margin:0; padding:13px 16px 15px; color:var(--blue); font:500 14px/1.5 "Poppins",sans-serif; }
.video-gallery { background:#f7f7f8; }
@media (max-width:850px) { .video-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; } }
@media (max-width:600px) { .video-grid { grid-template-columns:1fr; gap:14px; } .video-card h3 { padding:10px 12px 12px; } }

/* Accessible click-to-open image and video popups */
#main img { cursor:zoom-in; }
.video-open { display:grid; width:100%; aspect-ratio:16 / 9; place-items:center; border:0; padding:0; background:#111 var(--video-poster) center/cover no-repeat; cursor:pointer; }
.video-open:hover .video-play, .video-open:focus-visible .video-play { transform:scale(1.1); background:var(--pink); }
.video-play { display:grid; width:64px; height:64px; place-items:center; padding-left:4px; border:2px solid #fff; border-radius:50%; background:rgb(19 50 131 / 88%); color:#fff; font-size:24px; box-shadow:0 2px 15px rgb(0 0 0 / 32%); transition:transform .18s,background .18s; }
.album-video-open { min-height:430px; height:100%; }
.media-modal { position:fixed; inset:0; display:none; flex-direction:column; width:min(96vw,1440px); height:min(92vh,960px); height:min(92dvh,960px); max-width:none; max-height:none; margin:auto; padding:54px 16px 16px; overflow:hidden; border:1px solid rgb(255 255 255 / 18%); border-radius:8px; background:#111; color:#fff; box-shadow:0 24px 80px rgb(0 0 0 / 45%); }
.media-modal[open] { display:flex; }
.media-modal::backdrop { background:rgb(0 0 0 / 88%); backdrop-filter:blur(3px); }
.media-modal-close { position:absolute; top:9px; right:12px; z-index:2; display:grid; width:38px; height:38px; flex:0 0 38px; place-items:center; border:1px solid rgb(255 255 255 / 58%); border-radius:50%; background:rgb(0 0 0 / 45%); color:#fff; font:400 30px/1 "Karla",sans-serif; cursor:pointer; }
.media-modal-stage { display:grid; flex:1 1 auto; width:100%; min-width:0; min-height:0; place-items:center; overflow:hidden; }
.media-modal-stage img { display:block; width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; }
.media-modal-stage video { display:block; width:auto; height:auto; max-width:100%; max-height:100%; background:#000; object-fit:contain; }
@media (max-width:600px) { .media-modal { width:calc(100vw - 16px); height:min(90vh,90dvh); padding:54px 8px 8px; border-radius:6px; } .media-modal-stage { flex:1 1 auto; } .album-video-open { min-height:220px; } }

.more-videos { text-align:center; }
.more-videos > .button { display:flex; width:max-content; margin:12px auto 0; }


/* Booking and first-look media updates */
.hero-actions { position:relative; z-index:2; display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:14px; }
.hero-video-button { border:1px solid rgb(255 255 255 / 75%); background:rgb(17 27 68 / 35%); color:#fff; cursor:pointer; }
.hero-video-button:hover { background:#fff; color:var(--pink); }
.hero-video-button span { color:var(--gold); }
.first-look-media { padding-top:58px; padding-bottom:70px; }
.first-look-media .section-heading { margin-bottom:28px; }
.first-look-media .gallery-grid { grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:auto; gap:12px; margin-bottom:24px; }
.first-look-media .gallery-item { grid-column:auto; grid-row:auto; aspect-ratio:1.5; }
.first-look-media .gallery-item::after { display:none; }
.first-look-media .gallery-item img { object-fit:cover; }
.header-cta { color:#fff; border-color:rgb(255 255 255 / 72%); }
.header-cta:hover { border-color:var(--gold); color:var(--gold); }
.mobile-booking-link { display:block; margin:10px 14px 14px; padding:11px 14px; background:var(--pink); color:#fff !important; text-align:center; font-weight:700 !important; }
.booking .eyebrow { color:var(--gold); }
.booking-whatsapp-cta { font-weight:700 !important; }
.floating-whatsapp { position:fixed; z-index:30; right:22px; bottom:20px; display:flex; align-items:center; gap:10px; padding:12px 18px; border:2px solid #fff; border-radius:999px; background:#168c50; color:#fff; box-shadow:0 5px 22px rgb(0 0 0 / 23%); font:600 13px/1.3 "Poppins",sans-serif; }
.floating-whatsapp:hover { background:#117340; transform:translateY(-2px); }
.floating-whatsapp span { font-size:19px; }
@media(max-width:850px) { .header-cta { display:none; } }
@media(max-width:600px) {
  .hero-actions { gap:9px; }
  .hero-actions .button { width:min(270px,100%); justify-content:center; }
  .first-look-media { padding:42px 18px 48px; }
  .first-look-media .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .first-look-media .gallery-item:last-child { display:none; }
  .floating-whatsapp { right:12px; bottom:12px; padding:10px 14px; font-size:12px; }
}

/* Keep the hero video action compact; .video-open supplies card sizing elsewhere. */
.hero-actions .hero-video-button { display:inline-flex; width:auto; min-width:205px; min-height:53px; aspect-ratio:auto; padding:10px 20px; border:1px solid rgb(255 255 255 / 78%); border-radius:1px; background:rgb(19 50 131 / 82%); color:#fff; font:500 15px/1.5 "Poppins",sans-serif; }
.hero-actions .hero-video-button:hover, .hero-actions .hero-video-button:focus-visible { background:#fff; color:var(--pink); }
@media(max-width:600px) { .hero-actions .hero-video-button { width:min(270px,100%); min-width:0; min-height:48px; aspect-ratio:auto; padding:8px 12px; font-size:.8rem; } }

/* More legible, colorful Performance Memories heading and intro. */
.source-gallery .section-heading h2 { font-size:clamp(42px,4.4vw,50px); line-height:1.2; letter-spacing:.015em; background:linear-gradient(90deg,#133283 0%,#d82074 55%,#b17b18 100%); background-clip:text; -webkit-background-clip:text; color:transparent; }
.source-gallery .section-heading p:last-child { max-width:920px; margin:14px auto 0; color:#34303a; font-size:21px; line-height:1.75; }
.source-gallery .section-heading p:last-child span { font-weight:700; }
.memory-kalbeliya { color:#d82074; }
.memory-ghoomar { color:#133283; }
.memory-chari { color:#bd7412; }
.memory-bhavai { color:#168c68; }
.memory-teratali { color:#7846a6; }
@media(max-width:600px) {
  .source-gallery .section-heading h2 { font-size:clamp(32px,9vw,40px); }
  .source-gallery .section-heading p:last-child { font-size:18px; line-height:1.65; }
}


/* Celebrity performance proof section on the homepage */
.celebrity-section { padding-top:70px; padding-bottom:76px; background:#f7f7fa; }
.celebrity-layout { display:grid; grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr); align-items:center; gap:48px; max-width:var(--content); margin:0 auto; }
.celebrity-copy h2 { margin:0 0 18px; color:var(--blue); font:600 clamp(30px,3vw,42px)/1.2 "Roboto",sans-serif; }
.celebrity-copy > p:not(.eyebrow) { color:#514b55; font-size:17px; line-height:1.7; }
.celebrity-copy .celebrity-caption { margin:22px 0 7px; color:var(--pink); font:600 13px/1.5 "Poppins",sans-serif; text-transform:uppercase; letter-spacing:.07em; }
.celebrity-names { display:grid; grid-template-columns:1fr; gap:0; margin:0; padding:0; list-style:none; }
.celebrity-names li { position:relative; display:grid; gap:2px; padding:8px 8px 8px 19px; border-bottom:1px solid #e5dce4; }
.celebrity-names strong { color:var(--blue); font:600 14px/1.35 "Poppins",sans-serif; }
.celebrity-names li span { color:#625b66; font:400 12px/1.4 "Karla",sans-serif; }
.celebrity-names li::before { position:absolute; left:2px; color:var(--pink); content:"✦"; }
.celebrity-copy .button { margin-top:20px; }
.celebrity-photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.celebrity-photo-grid figure { position:relative; min-width:0; aspect-ratio:1.45; margin:0; overflow:hidden; border-radius:4px; background:#e7e4e7; box-shadow:0 8px 22px rgb(35 29 43 / 12%); cursor:zoom-in; }
.celebrity-photo-grid img { width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.celebrity-photo-grid figure:hover img { transform:scale(1.04); }
.celebrity-photo-grid figcaption { position:absolute; right:0; bottom:0; left:0; padding:18px 8px 7px; background:linear-gradient(transparent,rgb(20 20 30 / 72%)); color:#fff; font:500 9px/1.35 "Poppins",sans-serif; }
@media(max-width:900px) { .celebrity-layout { grid-template-columns:1fr; gap:28px; } .celebrity-photo-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:600px) { .celebrity-section { padding:48px 18px; } .celebrity-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; } .celebrity-photo-grid figure { aspect-ratio:1.28; } .celebrity-names { gap:5px 8px; } .celebrity-names strong { font-size:12px; } .celebrity-names li span { font-size:11px; } .celebrity-photo-grid figcaption { font-size:8px; } }


/* Homepage dance forms carousel */
.dance-showcase { padding-top:66px; padding-bottom:72px; background:#fffaf5; }
.dance-showcase-heading { display:flex; align-items:end; justify-content:space-between; gap:25px; max-width:var(--content); margin:0 auto 30px; }
.dance-showcase-heading h2 { margin:0 0 8px; color:var(--blue); font:600 clamp(30px,3.2vw,42px)/1.2 "Roboto",sans-serif; }
.dance-showcase-heading p:last-child { max-width:690px; margin:0; color:#5c5660; font-size:17px; }
.dance-carousel-controls { display:flex; flex:0 0 auto; align-items:center; gap:13px; }
.dance-carousel-controls button { display:grid; width:42px; height:42px; place-items:center; border:1px solid var(--pink); border-radius:50%; background:#fff; color:var(--pink); font:400 28px/1 "Karla",sans-serif; cursor:pointer; transition:background .2s,color .2s; }
.dance-carousel-controls button:hover,.dance-carousel-controls button:focus-visible { background:var(--pink); color:#fff; }
.dance-carousel-count { min-width:52px; color:#655c66; font:500 12px/1.4 "Poppins",sans-serif; text-align:center; }
.dance-carousel-viewport { max-width:var(--content); margin:0 auto; overflow:hidden; }
.dance-carousel-track { position:relative; display:flex; gap:20px; transition:transform .45s cubic-bezier(.2,.7,.2,1); will-change:transform; }
.dance-carousel-card { flex:0 0 calc((100% - 40px)/3); min-width:0; overflow:hidden; border:1px solid #eee5e8; border-radius:5px; background:#fff; box-shadow:0 10px 28px rgb(49 32 43 / 8%); }
.dance-card-media { position:relative; aspect-ratio:16/10; overflow:hidden; background:#16347a; }
.dance-card-media > img,.dance-video-open { display:block; width:100%; height:100%; object-fit:cover; }
.dance-video-open { position:absolute; inset:0; display:grid; width:100%; height:100%; aspect-ratio:auto; place-items:center; border:0; padding:0; background:#133283 var(--video-poster) center/cover no-repeat; cursor:pointer; }
.dance-video-open::after { position:absolute; inset:0; background:linear-gradient(0deg,rgb(14 20 46 / 58%),transparent 58%); content:""; pointer-events:none; }
.dance-video-open .video-play { position:relative; z-index:1; }
.dance-video-label { position:absolute; z-index:1; right:12px; bottom:10px; color:#fff; font:600 10px/1.4 "Poppins",sans-serif; letter-spacing:.1em; }
.dance-type-tag { position:absolute; z-index:2; top:12px; left:12px; padding:6px 10px; border-radius:2px; background:var(--pink); color:#fff; font:600 10px/1.3 "Poppins",sans-serif; letter-spacing:.06em; text-transform:uppercase; }
.dance-card-copy { padding:17px 18px 18px; }
.dance-card-copy h3 { margin:0 0 7px; color:var(--blue); font:600 17px/1.4 "Poppins",sans-serif; }
.dance-card-copy p { min-height:50px; margin:0 0 12px; color:#5c5660; font-size:14px; line-height:1.55; }
.dance-card-copy small { display:block; overflow:hidden; color:#8a8189; font:400 10px/1.4 "Karla",sans-serif; text-overflow:ellipsis; white-space:nowrap; }
@media(max-width:950px) { .dance-carousel-card { flex-basis:calc((100% - 20px)/2); } }
@media(max-width:600px) { .dance-showcase { padding:48px 18px; } .dance-showcase-heading { align-items:start; flex-direction:column; gap:18px; } .dance-showcase-heading p:last-child { font-size:15px; } .dance-carousel-controls { align-self:flex-end; } .dance-carousel-card { flex-basis:100%; } .dance-carousel-track { gap:14px; } .dance-card-copy { padding:14px; } }


/* ST group typographic logo overlay on site video playback */
.media-video-branded-frame { position:relative; display:grid; width:100%; height:100%; min-width:0; min-height:0; place-items:center; }
.media-video-branded-frame video { display:block; width:auto; height:auto; max-width:100%; max-height:100%; background:#000; object-fit:contain; }
.media-video-watermark { position:absolute; top:16px; left:16px; display:flex; align-items:center; gap:9px; padding:7px 11px; border:1px solid rgb(255 255 255 / 42%); border-radius:3px; background:rgb(16 25 55 / 64%); color:#fff; opacity:.86; pointer-events:none; text-shadow:0 1px 4px rgb(0 0 0 / 40%); }
.media-video-mark { display:grid; width:31px; height:31px; place-items:center; border:1px solid #efc978; border-radius:50%; color:#efc978; font:600 11px/1 "Poppins",sans-serif; }
.media-video-name { display:grid; gap:2px; font:600 10px/1.2 "Poppins",sans-serif; letter-spacing:.05em; }
.media-video-name small { color:#efc978; font:500 8px/1.2 "Poppins",sans-serif; letter-spacing:.18em; }
@media(max-width:600px) { .media-video-watermark { top:10px; left:10px; gap:6px; padding:5px 7px; } .media-video-mark { width:25px; height:25px; font-size:9px; } .media-video-name { font-size:8px; } .media-video-name small { font-size:7px; } }


/* contain media fully in carousel frames without cutting off dancers */
.dance-card-media { display:grid; place-items:center; background:#171a22; }
.dance-card-media > img { width:100%; height:100%; object-fit:contain; object-position:center; background:#171a22; }
.dance-card-media .dance-video-open { background-color:#171a22; background-position:center; background-size:contain; }
.video-card .video-open { background-color:#171a22; background-position:center; background-size:contain; }
.media-modal-stage { min-width:0; min-height:0; }
.media-video-branded-frame { min-width:0; min-height:0; max-width:100%; max-height:100%; overflow:hidden; }
.media-video-branded-frame video { width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; object-position:center; }
.media-modal-stage img { width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; object-position:center; }


/* Fit popup media to the real source aspect ratio */
.media-modal-stage { display:grid; flex:1 1 auto; width:100%; height:auto; min-width:0; min-height:0; place-items:center; overflow:hidden; }
.media-video-branded-frame { position:relative; display:grid; width:100%; height:100%; min-width:0; min-height:0; place-items:center; overflow:hidden; }
.media-video-viewport { position:relative; display:grid; width:100%; height:100%; min-width:0; min-height:0; place-items:center; overflow:hidden; background:#000; }
.media-video-viewport video { display:block; width:100%; height:100%; max-width:none; max-height:none; object-fit:contain; object-position:center; background:#000; }
.media-video-viewport .media-video-watermark { top:12px; left:12px; }
.media-modal-stage img { display:block; width:100%; height:100%; max-width:100%; max-height:100%; object-fit:contain; object-position:center; }


/* Size popup photos from their natural dimensions and show the full frame */
.media-image-fit-frame { position:relative; display:grid; container-type:inline-size; max-width:100%; max-height:100%; place-items:center; overflow:hidden; background:#111; }
.media-image-fit-frame > .media-full-image { display:block; width:100%; height:100%; max-width:none; max-height:none; object-fit:contain; object-position:center; }
.gallery-grid .gallery-item img,
.celebrity-photo-grid img { object-fit:contain; object-position:center; background:#171a22; }
.dance-card-media > img { object-fit:contain; object-position:center; background:#171a22; }


/* Contact form storage status and spam honeypot */
.contact-honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.form-privacy-note { margin:2px 0 8px; color:#716c79; font-size:13px; line-height:1.5; }
.contact-form-status { margin:14px 0 0; padding:12px 14px; border-left:3px solid var(--pink); background:#fff7fa; color:#302a34; font-size:15px; }
.contact-form-status:empty { display:none; }
.contact-form button:disabled { opacity:.65; cursor:wait; }


/* Use the supplied group logo as the video popup watermark */
.media-video-watermark { top:12px; left:12px; display:block; gap:0; padding:0; border:0; border-radius:0; background:transparent; opacity:.88; box-shadow:none; text-shadow:none; }
.media-video-watermark img { display:block; width:112px; height:112px; max-width:none; max-height:none; object-fit:contain; object-position:center; background:transparent; }
@media(max-width:600px) { .media-video-watermark { top:8px; left:8px; padding:0; } .media-video-watermark img { width:76px; height:76px; } }


/* Scale the watermark logo to each video's fitted width */
.media-video-viewport { container-type:inline-size; }
.media-video-viewport .media-video-watermark img { width:clamp(30px,8cqw,64px); height:auto; aspect-ratio:1; object-fit:contain; }
@media(max-width:600px) { .media-video-viewport .media-video-watermark img { width:clamp(28px,10cqw,52px); height:auto; } }


/* Scale the supplied logo over popup photos to match the displayed image width */
.media-image-watermark { position:absolute; z-index:2; top:10px; left:10px; display:block; width:clamp(30px,8cqw,64px); height:auto; aspect-ratio:1; max-width:none; max-height:none; object-fit:contain; object-position:center; opacity:.88; pointer-events:none; }
@media(max-width:600px) { .media-image-watermark { top:8px; left:8px; width:clamp(28px,10cqw,52px); height:auto; } }


/* Keep popup image watermark at logo size; override the modal's full-image rule */
.media-image-fit-frame > img.media-image-watermark { position:absolute; z-index:2; top:10px; left:10px; display:block; width:clamp(30px,8cqw,64px); height:auto; aspect-ratio:1; max-width:none; max-height:none; object-fit:contain; object-position:center; opacity:.88; pointer-events:none; }
@media(max-width:600px) { .media-image-fit-frame > img.media-image-watermark { top:8px; left:8px; width:clamp(28px,10cqw,52px); height:auto; } }
