/* ---------- Design tokens ---------- */
:root{
  --white:#ffffff;
  --off:#fafafa;
  --ink:#0a0a0c;
  --ink-soft:#4a4a52;
  --line:rgba(10,10,12,0.1);

  --blue:#00B8FF;
  --pink:#FF2DAA;
  --purple:#8B5CF6;
  --lime:#B8FF3B;

  --gradient-neon: linear-gradient(120deg, var(--blue), var(--purple) 55%, var(--pink));
  --gradient-neon-soft: linear-gradient(120deg, rgba(0,184,255,.15), rgba(139,92,246,.15) 55%, rgba(255,45,170,.15));

  --ivory:#F6F0E6;
  --ivory-bright:#FFFDF9;
  --ivory-shadow:#D7C9B7;
  --brown-type:#111110;
  --brown-body:#111110;
  --brown-border:#5D5347;

  --radius-lg: 32px;
  --radius-md: 20px;
  --radius-sm: 12px;

  --ease: cubic-bezier(.16,.84,.44,1);
  --ease-soft: cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box;}
html{ scroll-behavior:smooth; }
section[id]{ scroll-margin-top:100px; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
}
body{
  margin:0;
  background:var(--white);
  color:var(--ink);
  font-family:'Inter',system-ui,sans-serif;
  font-weight:400;
  overflow-x:hidden;
  cursor:auto;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:'Anton',sans-serif; font-weight:400; letter-spacing:0.01em; margin:0; text-transform:uppercase;}
p{line-height:1.7; color:var(--ink-soft); margin:0;}
.container{max-width:1320px; margin:0 auto; padding:0 32px;}

@media (max-width:768px){
  body{cursor:auto;}
  .cursor-dot,.cursor-ring{display:none;}
}

/* ---------- Grain overlay ---------- */
.grain{
  position:fixed; inset:0; pointer-events:none; z-index:9998;
  opacity:.025; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* ---------- Custom cursor (disabled — using default cursor) ---------- */
.cursor-dot,.cursor-ring{ display:none !important; }
a[href], button, .btn, [data-hover], .nav-toggle, label, summary{ cursor:pointer; }
input, textarea, select{ cursor:auto; }
.cursor-dot,.cursor-ring{
  position:fixed; top:0; left:0; pointer-events:none; z-index:9999;
  border-radius:50%;
  transform:translate(-50%,-50%);
  will-change:transform;
}
.cursor-dot{
  width:8px; height:8px; background:var(--ink);
  transition:background .2s var(--ease), opacity .2s;
}
.cursor-ring{
  width:38px; height:38px; border:1.5px solid var(--purple);
  transition:width .25s var(--ease), height .25s var(--ease), border-color .25s, background .25s, opacity .2s;
}
.cursor-ring.active{
  width:64px; height:64px;
  background:rgba(139,92,246,.08);
  border-color:var(--pink);
}
.cursor-dot.active{background:var(--pink);}

/* ---------- Background artistic words ---------- */
.bg-word{
  position:absolute; z-index:0; pointer-events:none;
  font-family:'Anton',sans-serif;
  color:var(--purple);
  opacity:.06;
  white-space:nowrap;
  line-height:1;
  user-select:none;
}
.bg-word-1{ font-size:clamp(90px,18vw,260px); top:8%; left:-4%; color:var(--blue); transform:rotate(-6deg);}
.bg-word-2{ font-size:clamp(90px,20vw,300px); bottom:-4%; right:-4%; color:var(--pink); transform:rotate(5deg);}
.bg-word-3{ font-size:clamp(90px,16vw,240px); top:4%; right:-3%; color:var(--lime); opacity:.09; transform:rotate(-4deg);}
.bg-word-4{ font-size:clamp(90px,18vw,260px); bottom:0; left:-4%; color:var(--purple); transform:rotate(4deg);}
.bg-word-5{ font-size:clamp(80px,16vw,220px); top:6%; left:50%; transform:translateX(-50%) rotate(-3deg); color:var(--blue);}
.bg-word-6{ font-size:clamp(90px,18vw,260px); top:-2%; right:-4%; color:var(--pink); transform:rotate(6deg);}

/* ---------- NAV ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:500;
  padding:28px 0;
  background:transparent;
  opacity:0; transform:translateY(-14px);
  transition:background .4s var(--ease), backdrop-filter .4s var(--ease), box-shadow .4s,
    opacity 1s ease-in-out, transform 1s ease-in-out;
}
body.loaded .nav{ opacity:1; transform:translateY(0); }
.nav.scrolled{
  background:rgba(245,241,232,.82);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  box-shadow:0 1px 0 rgba(59,50,31,.1);
}
.nav-inner{
  max-width:1600px; margin:0 auto; padding:0 5%;
  display:flex; align-items:center; justify-content:space-between;
}
.nav-logo{
  font-family:'Anton',sans-serif; font-size:19px; letter-spacing:.03em; text-transform:uppercase;
  color:var(--brown-type);
}
.nav-logo span{color:#C1517A;}
.nav-links{display:flex; align-items:center; gap:44px;}
.nav-links a{
  position:relative; font-family:'Inter',sans-serif;
  font-size:18px; font-weight:400; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--brown-type);
  padding:4px 0;
}
.nav-links a::after{
  content:''; position:absolute; left:0; bottom:-2px; width:0; height:1px;
  background:var(--brown-type); transition:width .35s var(--ease);
}
.nav-links a:hover::after{width:100%;}
.nav-cart{}
.nav-cart::after{display:none;}
.nav-cart:hover{opacity:.6;}

.nav-toggle{
  display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px; z-index:600;
}
.nav-toggle span{width:24px; height:2px; background:var(--brown-type); transition:transform .35s var(--ease), opacity .25s var(--ease);}

body.nav-open{ overflow:hidden; }

@media (max-width:860px){
  .nav-toggle{display:flex; position:relative;}
  .nav-toggle.active span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav-toggle.active span:nth-child(2){ opacity:0; }
  .nav-toggle.active span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

  .nav-links{
    position:fixed; inset:0; width:100%; height:100dvh; max-width:none; margin:0;
    background:rgba(245,241,232,.98); backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px);
    flex-direction:column; align-items:center; justify-content:center; gap:6px;
    padding:40px; transform:translateY(-8%); opacity:0; visibility:hidden;
    transition:transform .5s var(--ease), opacity .4s var(--ease), visibility 0s linear .5s;
    z-index:550;
  }
  .nav-links.open{
    transform:translateY(0); opacity:1; visibility:visible;
    transition:transform .5s var(--ease), opacity .4s var(--ease), visibility 0s;
  }
  .nav-links a{
    font-family:'Anton',sans-serif; text-transform:uppercase; letter-spacing:.01em;
    font-size:clamp(28px,8vw,42px); padding:12px 0;
    opacity:0; transform:translateY(14px);
    transition:opacity .5s var(--ease), transform .5s var(--ease);
  }
  .nav-links.open a{ opacity:1; transform:translateY(0); }
  .nav-links.open a:nth-child(1){ transition-delay:.08s; }
  .nav-links.open a:nth-child(2){ transition-delay:.13s; }
  .nav-links.open a:nth-child(3){ transition-delay:.18s; }
  .nav-links.open a:nth-child(4){ transition-delay:.23s; }
  .nav-links.open a:nth-child(5){ transition-delay:.28s; }
  .nav-links.open a:nth-child(6){ transition-delay:.33s; }
  .nav-links.open a:nth-child(7){ transition-delay:.38s; }
  .nav-links.open a:nth-child(8){ transition-delay:.43s; }
}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  height:100vh;
  min-height:680px;
  width:100%;
  overflow:hidden;
  background:var(--ivory);
}
.hero-bg{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(circle at 52% 38%, rgba(255,253,249,.95) 0%, rgba(255,253,249,.55) 20%, rgba(246,240,230,0) 58%),
    radial-gradient(ellipse 95% 90% at 52% 40%, rgba(255,253,249,.35) 0%, rgba(246,240,230,0) 72%),
    radial-gradient(ellipse 130% 130% at 50% 50%, transparent 38%, var(--ivory-shadow) 100%),
    var(--ivory);
}
.hero-bg::before{
  content:''; position:absolute; inset:0;
  opacity:.025; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='p'><feTurbulence type='fractalNoise' baseFrequency='0.035' numOctaves='4' seed='4' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0.23  0 0 0 0 0.2  0 0 0 0 0.12  0 0 0 .55 0'/></filter><rect width='100%25' height='100%25' filter='url(%23p)'/></svg>");
}
.hero-stage{ position:relative; z-index:1; width:100%; height:100%; }

.hero-type{
  position:absolute; z-index:1;
  font-family:'Bebas Neue','Anton',sans-serif;
  color:var(--brown-type);
  line-height:.82;
  letter-spacing:-0.01em;
  white-space:nowrap;
  user-select:none;
  font-size:clamp(150px, 21vw, 540px);
  opacity:0; transform:translateY(28px);
  transition:opacity 1.1s ease-in-out, transform 1.1s ease-in-out;
  transition-delay:.15s;
}
body.loaded .hero-type{ opacity:.92; transform:translateY(0); }
.hero-type-1{ top:9%; left:-.6%; }
.hero-type-2{ bottom:7%; right:-.6%; text-align:right; }

.hero-woman-wrap{
  position:absolute; z-index:2; left:52%; bottom:30px;
  height:min(86vh, 900px);
  transform:translateX(-50%) scale(.94);
  opacity:0;
  transition:opacity 1.1s ease-in-out, transform 1.1s ease-in-out;
  transition-delay:.32s;
}
body.loaded .hero-woman-wrap{ opacity:1; transform:translateX(-50%) scale(1); }
.hero-woman{
  height:100%; width:auto; display:block; max-width:none;
  filter:
    drop-shadow(0 46px 60px rgba(35,26,14,.32))
    drop-shadow(0 0 70px rgba(255,238,200,.35));
}

.hero-info-row{
  position:absolute; z-index:3; left:0; right:0; bottom:34px;
  display:flex; align-items:flex-start; justify-content:space-between;
  padding:0 5%;
  font-family:'Inter',sans-serif; font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--brown-body); opacity:0;
  transition:opacity 1s ease-in-out; transition-delay:.8s;
}
body.loaded .hero-info-row{ opacity:.62; }
.hero-info-row .center{ text-align:center; line-height:1.7; }

@media (max-width:1024px) and (orientation:landscape){
  .hero-woman-wrap{ bottom:56px; height:min(78vh, 620px); }
  .hero-info-row{ bottom:26px; }
}

/* Phones, and portrait tablets (iPad etc.) — dedicated stacked layout */
@media (max-width:760px), (max-width:1080px) and (orientation:portrait){
  .hero{
    height:auto; min-height:100svh;
    display:flex; flex-direction:column; align-items:center;
    padding:118px 24px 40px;
  }
  .hero-stage{ height:auto; }
  .hero-type{ font-size:clamp(64px, 21vw, 220px); }
  .hero-type-1{ top:-2%; left:-2%; }
  .hero-type-2{ bottom:-2%; top:auto; right:-2%; }

  .hero-woman-wrap{
    position:relative; left:auto; bottom:auto; transform:scale(.94);
    height:auto; max-height:none; width:min(78%, 520px); max-width:520px; margin:0 auto;
  }
  body.loaded .hero-woman-wrap{ transform:scale(1); }
  .hero-woman{ width:100%; height:auto; }

  .hero-info-row{
    position:relative; left:auto; right:auto; bottom:auto; z-index:3;
    width:100%; max-width:520px; padding:0; margin-top:32px;
  }
}

/* ---------- Buttons ---------- */
.btn{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  padding:16px 34px; border-radius:999px;
  font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  overflow:hidden; isolation:isolate;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), color .4s;
}
.btn::before{
  content:''; position:absolute; inset:0; z-index:-1;
  transition:transform .5s var(--ease);
}
.btn-solid{ background:var(--ink); color:var(--white); }
.btn-solid::before{ background:var(--gradient-neon); transform:translateY(101%); }
.btn-solid:hover::before{ transform:translateY(0); }
.btn-solid:hover{ transform:translateY(-3px); box-shadow:0 16px 30px -10px rgba(139,92,246,.45); }

.btn-outline{ background:transparent; color:var(--ink); border:1.5px solid var(--ink); }
.btn-outline::before{ background:var(--ink); transform:translateY(101%); z-index:-1; }
.btn-outline:hover{ color:var(--white); transform:translateY(-3px); }
.btn-outline:hover::before{ transform:translateY(0); }
.btn-full{width:100%;}

/* ---------- Reveal ---------- */
[data-reveal]{
  opacity:0; transform:translateY(36px);
  transition:opacity .9s var(--ease), transform .9s var(--ease);
}
[data-reveal].in-view{ opacity:1; transform:translateY(0); }

.eyebrow{
  display:inline-block; font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:var(--purple); margin-bottom:14px;
  padding:6px 14px; border-radius:999px; background:var(--gradient-neon-soft);
}
.section-head{ position:relative; z-index:1; margin-bottom:56px; }
.section-head h2{ font-size:clamp(38px,6vw,72px); }

/* ---------- TRUST BAR ---------- */
.trust-bar{
  position:relative; overflow:hidden;
  background:var(--ink); padding:22px 0;
}
.trust-track{
  display:flex; align-items:center; gap:28px; white-space:nowrap; width:max-content;
  animation:trustScroll 28s linear infinite;
}
.trust-bar:hover .trust-track{ animation-play-state:paused; }
.trust-item{
  font-family:'Anton',sans-serif; font-size:clamp(20px,2.6vw,34px);
  letter-spacing:.01em; text-transform:uppercase; color:var(--white);
}
.trust-sep{ color:var(--pink); font-size:16px; }
@keyframes trustScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .trust-track{ animation:none; } }

/* ---------- ABOUT (new) ---------- */
.about-new{ position:relative; padding:130px 0 0; background:#0a0a0a; overflow:hidden; }
body.despre-noi-page .about-new{ background:#000; }
.about-new-inner{ max-width:1400px; }
.about-new-header{
  display:grid; grid-template-columns:1.15fr 1fr; gap:60px; align-items:end;
  padding-bottom:100px;
}
.about-new-heading-col{ text-align:left; }
.about-new-header .eyebrow{
  background:none; padding:0; color:#b8afa0; font-weight:600;
}
.about-new-header h2{
  font-family:'Bebas Neue','Anton',sans-serif; text-transform:uppercase; letter-spacing:.005em;
  font-size:clamp(40px,6.4vw,84px); font-weight:400; line-height:1.02; color:#fff;
  margin-top:16px;
}
.about-new-header h2 .pink{ color:var(--pink); }
.about-new-desc{
  font-family:'Inter',sans-serif;
  font-size:19px; font-weight:400; line-height:1.75; color:rgba(255,255,255,.68);
  text-align:left;
}

.team-strip{
  position:relative; z-index:1;
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  width:100%;
}
.team-card{
  background:#fff; border-radius:0;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.team-card:hover{
  transform:translateY(-6px);
  box-shadow:0 30px 50px -20px rgba(0,0,0,.5);
  z-index:2;
}
.team-photo{
  border-radius:0; overflow:hidden; aspect-ratio:3/4;
}
.team-photo img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .35s var(--ease);
}
.team-card:hover .team-photo img{ transform:scale(1.04); }
.team-info{ padding:26px 26px 34px; }
.team-card h3{
  font-family:'Bebas Neue','Anton',sans-serif; text-transform:uppercase;
  font-weight:400; font-size:30px; letter-spacing:.01em;
  color:#111; margin-bottom:8px;
}
.team-role{
  display:block; font-family:'Inter',sans-serif; font-weight:700;
  font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--pink); margin-bottom:14px;
}
.team-card p{ font-family:'Inter',sans-serif; font-size:15px; line-height:1.75; color:#666; }

.team-card[data-reveal]{ transition-duration:.8s; }
.team-card:nth-child(1)[data-reveal]{ transition-delay:0ms; }
.team-card:nth-child(2)[data-reveal]{ transition-delay:120ms; }
.team-card:nth-child(3)[data-reveal]{ transition-delay:240ms; }
.team-card:nth-child(4)[data-reveal]{ transition-delay:360ms; }

.profesori-banner{
  width:100%; overflow:hidden;
  display:flex; justify-content:center; align-items:center;
  padding:56px 0 64px;
}
.profesori-banner span{
  display:inline-block; white-space:nowrap;
  font-family:'Bebas Neue','Anton',sans-serif; text-transform:uppercase;
  font-size:180px; line-height:1; color:#fff;
  transform-origin:center center;
}

/* ---------- ABOUT — hero community photo ---------- */
.about-hero-photo{ max-width:1200px; margin:0 auto; padding:0 32px; }
.about-hero-photo img{ width:100%; display:block; }

/* ---------- ABOUT — instructor rows (image + bio, no frames) ---------- */
.about-instructors{ max-width:1200px; margin:0 auto; padding:10px 32px 30px; }
.about-instr-row{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,72px); align-items:center;
  padding:clamp(40px,5vw,64px) 0; border-bottom:1px solid rgba(255,255,255,.09);
}
.about-instr-row:last-child{ border-bottom:0; }
.about-instr-row.reverse .about-instr-media{ order:2; }
.about-instr-row.reverse .about-instr-text{ order:1; }
.about-instr-media img{ width:100%; display:block; }

.about-instr-text{ display:flex; flex-direction:column; gap:30px; }
.about-instr-text.dual{ gap:22px; }
.about-instr-block h3{
  font-family:'Bebas Neue','Anton',sans-serif; text-transform:uppercase; font-weight:400;
  font-size:clamp(24px,2.8vw,34px); letter-spacing:.02em; line-height:1.05; color:#F4C400; margin:0 0 8px;
}
.about-instr-text.dual .about-instr-block h3{ font-size:clamp(19px,2.1vw,25px); }
.about-instr-role{
  display:block; font-family:'Inter',sans-serif; font-weight:700; font-size:11px;
  letter-spacing:.16em; text-transform:uppercase; color:rgba(244,196,0,.72); margin-bottom:12px;
}
.about-instr-block p{
  font-family:'Inter',sans-serif; font-size:14.5px; line-height:1.75; color:rgba(255,255,255,.66); margin:0 0 16px;
}
.about-instr-text.dual .about-instr-block p{ font-size:12.5px; line-height:1.6; margin-bottom:12px; }
.about-instr-social{ display:flex; gap:10px; }
.about-instr-social a{
  width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(244,196,0,.4); color:#F4C400;
  transition:background .3s var(--ease), color .3s var(--ease), transform .3s var(--ease);
}
.about-instr-social a:hover{ background:#F4C400; color:#0a0a0a; transform:translateY(-2px); }
.about-instr-social svg{ width:14px; height:14px; }

@media (max-width:860px){
  .about-instr-row{ grid-template-columns:1fr; gap:26px; padding:36px 0; }
  .about-instr-row.reverse .about-instr-media{ order:0; }
  .about-instr-row.reverse .about-instr-text{ order:1; }
}

.about-instr-trophies{ display:flex; flex-wrap:wrap; align-items:flex-end; gap:16px; margin-top:20px; }
.about-instr-trophies img{
  height:120px; width:auto; display:block;
  transition:transform .4s var(--ease);
}
.about-instr-trophies img:hover{ transform:translateY(-4px); }
.about-instr-text.dual .about-instr-trophies{ margin-top:14px; gap:10px; }
.about-instr-text.dual .about-instr-trophies img{ height:80px; }
@media (max-width:640px){
  .about-instr-trophies img{ height:92px; }
  .about-instr-text.dual .about-instr-trophies img{ height:62px; }
}

@media (max-width:1080px){
  .about-new-header{ grid-template-columns:1fr; gap:28px; }
  .team-strip{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:640px){
  .about-new{ padding:90px 0 0; }
  .about-new-header{ padding-bottom:60px; }
  .about-new-desc{ font-size:17px; }
  .team-strip{ grid-template-columns:1fr; }
  .profesori-banner{ padding:40px 0 48px; }
  .profesori-banner span{ font-size:90px; }
}

/* ---------- DANCE STYLES ---------- */
.styles-section{ position:relative; padding:80px 0 140px; overflow:hidden; }
.styles-grid{
  position:relative; z-index:1;
  display:grid; grid-template-columns:repeat(5,1fr); gap:22px;
}
.style-card{
  position:relative;
  background:var(--off);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:34px 26px 30px;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s, background .5s;
  overflow:hidden;
}
.style-card::before{
  content:''; position:absolute; inset:0; border-radius:inherit; padding:1.5px;
  background:linear-gradient(140deg, var(--glow), transparent 60%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  opacity:0; transition:opacity .5s var(--ease);
}
.style-card:hover{
  transform:translateY(-10px);
  background:var(--white);
  box-shadow:0 30px 50px -20px color-mix(in srgb, var(--glow) 45%, transparent);
}
.style-card:hover::before{opacity:1;}
.style-icon{
  width:56px; height:56px; margin-bottom:22px; color:var(--glow);
  transition:transform .5s var(--ease);
}
.style-icon svg{width:100%; height:100%;}
.style-card:hover .style-icon{ transform:scale(1.12) rotate(-4deg); }
.style-card h3{ font-size:20px; margin-bottom:10px; }
.style-card p{ font-size:14px; }
.style-arrow{
  position:absolute; top:30px; right:26px; font-size:18px; color:var(--glow);
  opacity:0; transform:translate(-6px,6px); transition:.4s var(--ease);
}
.style-card:hover .style-arrow{ opacity:1; transform:translate(0,0); }

@media (max-width:1100px){ .styles-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:640px){ .styles-grid{grid-template-columns:repeat(2,1fr);} }

/* ---------- PROGRAMS / TIMELINE ---------- */
.programs{ position:relative; padding:80px 0 140px; overflow:hidden; }
.timeline{
  position:relative; z-index:1;
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:20px;
}
.timeline-line{
  position:absolute; top:9px; left:0; right:0; height:2px;
  background:linear-gradient(90deg, var(--blue), var(--pink), var(--purple), var(--lime));
  opacity:.35;
}
.timeline-item{ position:relative; }
.timeline-dot{
  width:20px; height:20px; border-radius:50%; background:var(--c); margin-bottom:26px;
  box-shadow:0 0 0 6px color-mix(in srgb, var(--c) 18%, transparent);
  transition:transform .4s var(--ease);
}
.timeline-item:hover .timeline-dot{ transform:scale(1.3); }
.timeline-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md);
  padding:30px 24px; transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s;
}
.timeline-item:hover .timeline-card{
  transform:translateY(-8px);
  border-color:var(--c);
  box-shadow:0 24px 40px -18px color-mix(in srgb, var(--c) 40%, transparent);
}
.age{ font-family:'Anton',sans-serif; font-size:40px; color:var(--c); }
.age-suffix{ font-size:13px; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-soft); margin-left:6px; }
.timeline-card p{ margin-top:14px; font-size:14px; }

@media (max-width:860px){
  .timeline{ grid-template-columns:1fr 1fr; }
  .timeline-line{display:none;}
}
@media (max-width:520px){ .timeline{grid-template-columns:1fr;} }

/* ---------- WHY CHOOSE US ---------- */
.why{ position:relative; padding:80px 0 140px; overflow:hidden; }
.why-grid{
  position:relative; z-index:1;
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
}
.why-card{
  display:flex; align-items:center; gap:18px;
  background:rgba(255,255,255,.6);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:26px 24px;
  backdrop-filter:blur(10px);
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s;
}
.why-card:hover{
  transform:translateY(-6px);
  border-color:transparent;
  box-shadow:0 22px 44px -20px rgba(139,92,246,.35);
  background:linear-gradient(var(--white),var(--white)) padding-box, var(--gradient-neon) border-box;
  border:1.5px solid transparent;
}
.why-check{
  flex:none; width:38px; height:38px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--gradient-neon); color:var(--white); font-weight:700; font-size:16px;
}
.why-card h3{ font-size:16px; font-family:'Inter',sans-serif; font-weight:700; text-transform:none; letter-spacing:0; }

@media (max-width:860px){ .why-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .why-grid{grid-template-columns:1fr;} }

/* ---------- LOCATION ---------- */
.location{ position:relative; padding:80px 0 140px; overflow:hidden; }
.location-grid{
  position:relative; z-index:1;
  display:grid; grid-template-columns:.9fr 1.4fr; gap:50px; align-items:center;
}
.location h2{ font-size:clamp(36px,5vw,58px); margin-bottom:20px; }
.location-address{ font-size:18px; color:var(--ink); margin-bottom:30px; }
.location-map{
  border-radius:var(--radius-lg); overflow:hidden; height:420px;
  box-shadow:0 30px 60px -25px rgba(10,10,12,.25);
  filter:grayscale(1) contrast(1.05);
  transition:filter .6s var(--ease);
}
.location-map:hover{ filter:grayscale(.15) contrast(1.02); }
.location-map iframe{ width:100%; height:100%; border:0; }

@media (max-width:860px){
  .location-grid{ grid-template-columns:1fr; }
  .location-map{ height:320px; }
}

/* ---------- GALLERY ---------- */
.gallery{ position:relative; padding:80px 0 140px; }
.masonry{
  columns:3 260px; column-gap:22px;
}
.masonry-item{
  break-inside:avoid; margin-bottom:22px; border-radius:var(--radius-md);
  height:260px; position:relative; overflow:hidden;
  background:linear-gradient(150deg, var(--g1), var(--g2));
  display:flex; align-items:flex-end; padding:22px;
  transition:transform .5s var(--ease);
}
.masonry-item.span-2{ height:400px; }
.masonry-item span{
  color:var(--white); font-family:'Anton',sans-serif; font-size:22px; text-transform:uppercase;
  position:relative; z-index:1;
}
.masonry-item::after{
  content:''; position:absolute; inset:0; background:rgba(10,10,12,0); transition:background .4s var(--ease);
}
.masonry-item:hover{ transform:scale(1.03) rotate(-.4deg); }
.masonry-item:hover::after{ background:rgba(10,10,12,.12); }

@media (max-width:860px){ .masonry{columns:2 200px;} }
@media (max-width:520px){ .masonry{columns:1 100%;} }

/* ---------- CONTACT ---------- */
.contact{ position:relative; padding:80px 0 140px; overflow:hidden; }
.contact-grid{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1fr; max-width:560px;
}
.contact h2{ font-size:clamp(40px,6vw,68px); line-height:.92; margin-bottom:18px; }
.contact-info p{ font-size:17px; margin-bottom:30px; }
.contact-phone{ display:flex; align-items:center; gap:16px; margin-bottom:36px; }
.contact-phone svg{ width:24px; height:24px; color:var(--pink); flex:none; }
.contact-phone a{
  font-family:'Bebas Neue','Anton',sans-serif; text-transform:uppercase;
  font-size:clamp(30px,4vw,46px); letter-spacing:.03em; color:var(--ink);
  transition:color .3s var(--ease);
}
.contact-phone a:hover{ color:var(--pink); }
.social-icons{ display:flex; gap:14px; }
.social-icons a{
  width:46px; height:46px; border-radius:50%; border:1.5px solid var(--line);
  display:flex; align-items:center; justify-content:center; color:var(--ink);
  transition:transform .4s var(--ease), border-color .4s, color .4s, background .4s;
}
.social-icons svg{width:20px; height:20px;}
.social-icons a:hover{
  transform:translateY(-4px) rotate(-6deg);
  border-color:transparent;
  color:var(--white);
  background:var(--gradient-neon);
}

@media (max-width:520px){
  .contact-phone{ flex-wrap:wrap; }
}

/* ---------- FOOTER ---------- */
.footer{ border-top:1px solid var(--line); padding:40px 0; }
.footer-inner{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px;
}
.footer-links{ display:flex; gap:26px; flex-wrap:wrap; }
.footer-links a{ font-size:13px; font-weight:600; letter-spacing:.05em; color:var(--ink-soft); transition:color .3s; }
.footer-links a:hover{ color:var(--pink); }
.footer-copy{ font-size:12px; color:var(--ink-soft); width:100%; text-align:center; margin-top:10px; }

@media (min-width:640px){ .footer-copy{ width:auto; margin-top:0; } }

/* ============================================================
   DANCE STYLES — EDITORIAL SECTION
   ============================================================ */
.dance-styles{
  --se-pink:#FF4FA3;
  --se-blue:#4DB8FF;
  --se-grey:#CFCFCF;
  --se-lgrey:#F5F5F5;
  --se-black:#111111;
  position:relative; background:#fff; overflow:hidden;
  padding:clamp(70px,9vw,120px) 0 clamp(80px,10vw,140px);
}

/* --- head --- */
.ds-head{ text-align:center; margin-bottom:clamp(60px,8vw,110px); }
.ds-head h2{
  font-family:'Anton',sans-serif; font-weight:400;
  font-size:clamp(46px,10vw,132px); line-height:.92; letter-spacing:.005em;
  text-transform:uppercase; color:var(--se-black);
}
.ds-head p{
  margin-top:20px; font-family:'Inter',sans-serif;
  font-size:clamp(14px,1.4vw,17px); color:#8c8c92; letter-spacing:.02em;
}

/* --- category header --- */
.ds-cat{ margin:0 0 clamp(28px,3.5vw,48px); }
.ds-cat-title{
  font-family:'Bebas Neue',sans-serif; font-weight:400;
  font-size:clamp(26px,4.4vw,58px); line-height:1; letter-spacing:.03em;
  text-transform:uppercase; color:var(--se-black);
}
.ds-cat-rule{ height:1px; background:var(--se-grey); margin-top:20px; }

/* --- list / spacing between categories --- */
.ds-list{ display:flex; flex-direction:column; }
.ds-list:nth-of-type(2){ margin-bottom:clamp(80px,10vw,130px); }

/* --- card --- */
.ds-card{
  position:relative; display:grid; grid-template-columns:45% 55%;
  align-items:center; gap:clamp(20px,4vw,64px);
  min-height:clamp(258px,27vw,352px);
  padding:clamp(22px,2.6vw,36px) 0;
  border-bottom:1px solid #ededed;
}
.ds-list .ds-card:first-child{ border-top:1px solid #ededed; }

/* alternate: even cards -> text left, image right */
.ds-list .ds-card:nth-child(even){ grid-template-columns:55% 45%; }
.ds-list .ds-card:nth-child(even) .ds-media{ order:2; }
.ds-list .ds-card:nth-child(even) .ds-body{ order:1; text-align:left; }

/* --- media --- */
.ds-media{ position:relative; align-self:stretch; min-height:clamp(228px,24vw,312px); }
.ds-texture{
  position:absolute; inset:-8% -12%; z-index:0; pointer-events:none;
  background:url("styles-img/brush.svg") center/contain no-repeat;
  opacity:.12;
}
.ds-texture::after{
  content:""; position:absolute; inset:0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity:.5; mix-blend-mode:multiply;
}
.ds-media img{
  position:relative; z-index:1;
  width:100%; height:100%; max-height:clamp(250px,26vw,352px);
  object-fit:cover; object-position:center;
  -webkit-mask-image:linear-gradient(to right,#000 44%,transparent 97%),linear-gradient(to bottom,transparent,#000 13%,#000 87%,transparent);
  mask-image:linear-gradient(to right,#000 44%,transparent 97%),linear-gradient(to bottom,transparent,#000 13%,#000 87%,transparent);
  -webkit-mask-composite:source-in; mask-composite:intersect;
  transition:transform .55s var(--ease);
}
.ds-list .ds-card:nth-child(even) .ds-media img{
  -webkit-mask-image:linear-gradient(to left,#000 44%,transparent 97%),linear-gradient(to bottom,transparent,#000 13%,#000 87%,transparent);
  mask-image:linear-gradient(to left,#000 44%,transparent 97%),linear-gradient(to bottom,transparent,#000 13%,#000 87%,transparent);
}
.ds-card:hover .ds-media img{ transform:scale(1.03); }

/* --- typography / body --- */
.ds-body{ position:relative; z-index:1; text-align:right; }
.ds-script{
  display:block; font-family:'Kaushan Script',cursive; font-weight:400;
  font-size:clamp(32px,5vw,70px); line-height:1;
  margin-bottom:-.22em; padding:0 .12em;
  transition:transform .5s var(--ease);
}
.ds-script.pink{ color:var(--se-pink); }
.ds-script.blue{ color:var(--se-blue); }
.ds-card:hover .ds-script{ transform:translateY(-8px); }

.ds-name{
  font-family:'Anton',sans-serif; font-weight:400;
  font-size:clamp(34px,6vw,90px); line-height:.9; letter-spacing:.006em;
  text-transform:uppercase; color:var(--se-black);
}
.ds-name .accent-pink{ color:var(--se-pink); transition:filter .5s var(--ease); }
.ds-name .accent-blue{ color:var(--se-blue); transition:filter .5s var(--ease); }
.ds-name .plus{ color:var(--se-pink); }
.ds-card:hover .ds-name .accent-pink,
.ds-card:hover .ds-name .accent-blue{ filter:brightness(1.15) saturate(1.05); }

.ds-line{ width:64px; height:2px; background:var(--se-grey); margin:26px 0 16px auto; }
.ds-list .ds-card:nth-child(even) .ds-line{ margin-left:0; margin-right:auto; }
.ds-desc{
  font-family:'Inter',sans-serif; font-size:12.5px; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; color:#9a9aa2; line-height:1.6;
}

/* --- hover lift + scroll reveal (override base [data-reveal] transform) --- */
.ds-card[data-reveal]{
  opacity:0; transform:translateY(30px);
  transition:opacity .8s var(--ease), transform .55s var(--ease);
}
.ds-card[data-reveal].in-view{ opacity:1; transform:translateY(0); }
.ds-card:hover{ transform:translateY(-6px); }
.ds-list .ds-card:nth-child(1){ transition-delay:0ms; }
.ds-list .ds-card:nth-child(2){ transition-delay:120ms; }
.ds-list .ds-card:nth-child(3){ transition-delay:240ms; }
.ds-list .ds-card:nth-child(4){ transition-delay:360ms; }

/* --- mobile: stack, image on top --- */
@media (max-width:760px){
  .ds-card,
  .ds-list .ds-card:nth-child(even){ grid-template-columns:1fr; gap:8px; min-height:0; padding:34px 0; }
  .ds-media,
  .ds-list .ds-card:nth-child(even) .ds-media{ order:0; min-height:0; height:clamp(240px,64vw,340px); }
  .ds-body,
  .ds-list .ds-card:nth-child(even) .ds-body{ order:1; text-align:left; }
  .ds-media img,
  .ds-list .ds-card:nth-child(even) .ds-media img{
    height:100%; max-height:none;
    -webkit-mask-image:linear-gradient(to bottom,#000 58%,transparent 100%);
    mask-image:linear-gradient(to bottom,#000 58%,transparent 100%);
    -webkit-mask-composite:source-over; mask-composite:add;
  }
  .ds-line,
  .ds-list .ds-card:nth-child(even) .ds-line{ margin:20px 0 14px; }
  .ds-script{ margin-bottom:-.18em; }
}

/* ============================================================
   AGE GROUPS — "Grupe de vârstă" (sharp-cornered, stepped)
   ============================================================ */
.age-groups{
  --se-pink:#FF4FA3; --se-blue:#4DB8FF; --se-black:#111111;
  position:relative; z-index:1;
  display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; align-items:end;
}
.age-block{
  position:relative; border-radius:0; overflow:hidden; color:#fff; isolation:isolate;
  padding:clamp(22px,2.4vw,36px);
  display:flex; flex-direction:column; justify-content:flex-end;
}
.ab-1{ background:var(--se-pink); min-height:clamp(230px,25vw,300px); }
.ab-2{ background:var(--se-black); min-height:clamp(290px,32vw,380px); }
.ab-3{ background:var(--se-blue); color:#0c0c10; min-height:clamp(350px,39vw,462px); }

.age-index{
  position:absolute; top:clamp(14px,1.4vw,22px); right:clamp(16px,1.6vw,26px);
  font-family:'Bebas Neue',sans-serif; line-height:1; letter-spacing:.02em;
  font-size:clamp(34px,4.6vw,76px); opacity:.32;
}
.age-block-bottom{ margin-top:auto; }
.age-nums{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:0 clamp(10px,1vw,20px);
  font-family:'Anton',sans-serif; font-size:clamp(30px,4vw,62px); line-height:.98; letter-spacing:.01em;
}
.age-unit{
  display:inline-block; margin-top:8px;
  font-family:'Bebas Neue',sans-serif; font-size:clamp(15px,1.5vw,21px);
  letter-spacing:.16em; text-transform:uppercase; opacity:.8;
}
.age-desc{
  margin-top:14px; max-width:30ch;
  font-family:'Inter',sans-serif; font-size:13.5px; line-height:1.55; opacity:.88;
}

.age-block[data-reveal]{
  opacity:0; transform:translateY(30px);
  transition:opacity .8s var(--ease), transform .55s var(--ease);
}
.age-block[data-reveal].in-view{ opacity:1; transform:translateY(0); }
.age-block:hover{ transform:translateY(-8px); }
.age-groups .age-block:nth-child(1){ transition-delay:0ms; }
.age-groups .age-block:nth-child(2){ transition-delay:120ms; }
.age-groups .age-block:nth-child(3){ transition-delay:240ms; }

@media (max-width:760px){
  .age-groups{ grid-template-columns:1fr; align-items:stretch; }
  .ab-1,.ab-2,.ab-3{ min-height:clamp(170px,44vw,220px); }
}

/* ---------- team social icons overlaid on photos ---------- */
.team-photo{ position:relative; }
.team-social{ position:absolute; left:14px; bottom:14px; z-index:2; display:flex; gap:9px; }
.team-social a{
  width:38px; height:38px; border-radius:50%; display:grid; place-items:center;
  background:rgba(255,255,255,.92); color:#111; box-shadow:0 6px 16px rgba(0,0,0,.20);
  transition:transform .3s var(--ease), background .3s var(--ease), color .3s var(--ease);
}
.team-social a:hover{ transform:translateY(-3px); }
.team-social a.ig:hover{ background:var(--pink); color:#fff; }
.team-social a.fb:hover{ background:var(--blue); color:#fff; }
.team-social svg{ width:19px; height:19px; }
