:root{--black:#000;--ink:#141414;--yellow:#ffc700;--orange:#ffaf36;--white:#fff;--soft:#eaeaea;--line:rgba(255,255,255,.27);font-family:Arial,Helvetica,sans-serif;color:var(--white);background:var(--black)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--black);line-height:1.5}a{color:inherit;text-decoration:none}img{max-width:100%}.skip-link{left:-999px;position:absolute}.skip-link:focus{background:var(--yellow);color:#000;left:1rem;padding:.6rem;top:1rem;z-index:30}.site-header{align-items:center;background:rgba(0,0,0,.96);border-bottom:1px solid rgba(255,199,0,.35);display:flex;justify-content:space-between;padding:10px 5vw;position:sticky;top:0;z-index:20}.brand{color:var(--yellow);display:inline-flex;flex-direction:column;line-height:.76;text-align:center}.brand strong{font-size:2rem;font-weight:900;letter-spacing:-.13em}.brand span{font-size:.42rem;font-weight:700;letter-spacing:.3em;margin-top:8px}.menu-button{background:transparent;border:1px solid var(--yellow);color:var(--yellow);display:none;font:inherit;padding:9px 13px}.main-nav{align-items:center;display:flex;gap:28px}.main-nav a{color:var(--yellow);font-size:.9rem}.button{background:var(--yellow);border:0;border-radius:999px;color:var(--black);display:inline-block;font-size:.84rem;font-weight:700;letter-spacing:.03em;padding:15px 25px}.button:hover,.button:focus-visible{background:var(--orange)}.header-cta{margin-left:24px}.page-hero{border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;min-height:530px}.page-hero-copy{align-self:center;padding:8vw 5vw}.eyebrow{color:var(--yellow);font-size:.73rem;font-weight:700;letter-spacing:.15em;margin:0 0 17px;text-transform:uppercase}.page-hero h1,.hero h1{font-size:clamp(3.2rem,6vw,6.7rem);letter-spacing:-.075em;line-height:.88;margin:0}.page-hero p:not(.eyebrow){font-size:1.05rem;max-width:630px}.page-hero-image{height:100%;min-height:530px;margin:0}.page-hero-image img,.image-tile img,.gallery img{display:block;height:100%;object-fit:cover;width:100%}.hero{display:grid;grid-template-columns:1.1fr .9fr;min-height:670px}.hero-copy{align-self:center;padding:8vw 5vw}.hero-promo{color:var(--orange);font-size:1rem;font-weight:800;letter-spacing:.1em;margin:34px 0 19px}.hero-image{margin:0;min-height:670px}.hero-image img{display:block;height:100%;object-fit:cover;width:100%}.intro{border-bottom:1px solid var(--line);display:grid;gap:6vw;grid-template-columns:.85fr 1.15fr;padding:9vw 5vw}.intro h2,.section-heading h2,.feature-copy h2,.cta h2,.contact-card h2{font-size:clamp(2.6rem,5vw,5.5rem);letter-spacing:-.07em;line-height:.9;margin:0}.intro h2 em{color:var(--orange);font-style:normal}.intro-copy{font-size:1.05rem;max-width:700px}.section{padding:9vw 5vw}.section-heading{margin-bottom:48px;max-width:850px}.section-heading>p:last-child{color:#d7d7d7;max-width:620px}.class-grid{display:grid;gap:14px;grid-template-columns:repeat(3,1fr)}.class-card{border:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;min-height:300px;padding:25px}.class-card span{color:var(--yellow);font-size:.75rem;font-weight:700}.class-card h3{font-size:clamp(2rem,3vw,3.4rem);letter-spacing:-.06em;line-height:.9;margin:35px 0 18px}.class-card p{color:#d5d5d5;font-size:.88rem;margin:0}.class-card.image-tile{grid-column:span 2;min-height:470px;padding:0;position:relative}.image-tile img{inset:0;position:absolute}.image-tile div{background:linear-gradient(0deg,rgba(0,0,0,.9),transparent 70%);bottom:0;left:0;padding:30px;position:absolute;width:100%}.image-tile h3{font-size:clamp(3rem,5vw,5.5rem);margin:0}.yellow-panel{background:var(--yellow);border-color:var(--yellow);color:#000}.yellow-panel span,.yellow-panel p{color:#000}.feature{background:var(--yellow);color:#000;display:grid;grid-template-columns:1fr 1fr}.feature-copy{align-self:center;padding:9vw 7vw}.feature-copy .eyebrow{color:#000}.feature-copy p{max-width:590px}.feature-image{min-height:580px}.feature-image img{display:block;height:100%;object-fit:cover;width:100%}.pricing-grid{display:grid;gap:14px;grid-template-columns:repeat(4,1fr)}.price-card{background:var(--ink);border:1px solid var(--yellow);display:flex;flex-direction:column;min-height:315px;padding:26px}.price-card h3{color:var(--white);font-size:.82rem;letter-spacing:.1em;margin:0}.price-card strong{color:var(--yellow);font-size:3.7rem;letter-spacing:-.08em;line-height:1;margin:42px 0 20px}.price-card small{font-size:1rem;letter-spacing:0}.price-card p{color:#d7d7d7;font-size:.86rem;margin:0}.price-card.highlight{background:var(--yellow);border-color:var(--yellow);color:#000}.highlight h3,.highlight p{color:#000}.cta{align-items:center;border-top:1px solid var(--line);display:flex;gap:40px;justify-content:space-between;padding:8vw 5vw}.cta>div{max-width:840px}.cta p:not(.eyebrow){max-width:650px}.cta .button{background:var(--orange);flex-shrink:0}.schedule{display:grid;gap:14px;grid-template-columns:repeat(3,1fr)}.schedule article{border:1px solid var(--line);padding:25px}.schedule h2{color:var(--yellow);font-size:1.15rem;letter-spacing:.05em;margin:0 0 20px}.schedule p{font-size:.9rem;margin:8px 0}.class-detail{border-top:1px solid var(--line);display:grid;gap:5vw;grid-template-columns:.75fr 1.25fr;padding:7vw 5vw}.class-detail h2{color:var(--yellow);font-size:clamp(2.3rem,4vw,4.4rem);letter-spacing:-.06em;line-height:.9;margin:0}.class-detail p{font-size:1.03rem;max-width:760px}.bonos{display:grid;gap:14px;grid-template-columns:repeat(4,1fr)}.gallery{display:grid;gap:10px;grid-template-columns:repeat(4,1fr)}.gallery figure{aspect-ratio:1/1;margin:0;overflow:hidden}.gallery img{transition:transform .35s}.gallery figure:hover img{transform:scale(1.03)}.about-text{margin:auto;max-width:850px;padding:9vw 5vw}.about-text p{font-size:1.1rem}.team-grid{display:grid;gap:14px;grid-template-columns:repeat(5,1fr)}.team-card{border:1px solid var(--line);padding-bottom:22px}.team-card img{aspect-ratio:1/1;display:block;object-fit:cover;width:100%}.team-card h3{font-size:1.15rem;margin:18px 18px 2px}.team-card p{color:var(--yellow);font-size:.78rem;margin:0 18px}.equipment{columns:2;gap:50px;list-style:none;margin:0;padding:0}.equipment li{border-bottom:1px solid var(--line);padding:11px 0}.contact-layout{display:grid;gap:14px;grid-template-columns:1fr 1fr;padding:9vw 5vw}.contact-card{background:var(--yellow);color:#000;padding:7vw}.contact-card .eyebrow{color:#000}.contact-card h2{margin-bottom:30px}.contact-card a{font-size:1.2rem;text-decoration:underline;text-underline-offset:4px}.contact-image{min-height:530px}.contact-image img{display:block;height:100%;object-fit:cover;width:100%}.trial-copy{margin:auto;max-width:900px;padding:3vw 1vw}.trial-copy p{font-size:1.08rem}.site-footer{background:var(--yellow);color:#000;display:grid;gap:45px;grid-template-columns:1.2fr 1fr 1fr;padding:5vw}.site-footer .brand,.site-footer .eyebrow{color:#000}.site-footer a:not(.brand){text-decoration:underline;text-underline-offset:3px}.site-footer p{font-size:.95rem}.site-footer h2{font-size:2.7rem;letter-spacing:-.07em;line-height:.9;margin:0 0 20px}@media(max-width:900px){.main-nav{display:none}.menu-button{display:block}.main-nav.is-open{background:#000;border-bottom:1px solid var(--yellow);display:flex;flex-direction:column;gap:0;left:0;padding:18px 5vw;position:absolute;top:100%;width:100%}.main-nav.is-open a{padding:11px 0}.header-cta{display:none}.page-hero,.hero,.feature{grid-template-columns:1fr}.page-hero-copy,.hero-copy{padding-block:100px 65px}.page-hero-image,.hero-image{min-height:420px}.intro{grid-template-columns:1fr}.class-grid{grid-template-columns:1fr 1fr}.class-card.image-tile{grid-column:span 2}.pricing-grid,.bonos{grid-template-columns:1fr 1fr}.schedule{grid-template-columns:1fr 1fr}.class-detail{grid-template-columns:1fr}.team-grid{grid-template-columns:repeat(3,1fr)}.site-footer{grid-template-columns:1fr 1fr}}@media(max-width:560px){.site-header{padding:10px 5vw}.brand strong{font-size:1.65rem}.page-hero h1,.hero h1{font-size:3.35rem}.section,.intro,.cta,.about-text,.trial-copy{padding-block:75px}.class-grid,.pricing-grid,.bonos,.schedule,.team-grid,.site-footer{grid-template-columns:1fr}.class-card.image-tile{grid-column:auto;min-height:390px}.class-detail{padding-block:70px}.cta{align-items:flex-start;flex-direction:column}.feature-image{min-height:370px}.contact-layout{grid-template-columns:1fr;padding:0}.contact-card{padding:75px 5vw}.contact-image{min-height:360px}.equipment{columns:1}}
.site-footer--uniform{align-items:start;gap:30px;grid-template-columns:1.2fr 1fr 1fr;padding:25px 5vw}.site-footer--uniform p{margin:0}.footer-brand{font-size:1.05rem!important;font-weight:800!important;letter-spacing:-.03em}.footer-copyright{font-size:.75rem!important;margin-top:3px!important;opacity:.75}.footer-links{display:grid;gap:5px}.footer-links a,.footer-links .cookie-preferences{color:inherit;font:inherit;font-size:.82rem;line-height:inherit;text-decoration:underline;text-underline-offset:3px}.footer-links .cookie-preferences{-webkit-appearance:none;appearance:none;background:transparent;border:0;border-radius:0;cursor:pointer;display:block;letter-spacing:normal;padding:0;text-align:left}@media(max-width:560px){.site-footer--uniform{align-items:flex-start;gap:0;grid-template-columns:1fr;padding:25px 5vw}.site-footer--uniform>div:first-child{margin-bottom:20px}.site-footer--uniform>nav.footer-links{margin-bottom:5px}}
.pricing-hero .eyebrow{color:var(--white)}.pricing-hero h1{color:var(--yellow)}

.bonus-heading .eyebrow{color:var(--white)}.bonus-heading h2{color:var(--yellow)}

.bonos .price-card h3{text-transform:uppercase}

.pricing-section{padding-bottom:3vw}.bonuses-section{padding-top:3vw}@media(max-width:560px){.pricing-section{padding-bottom:30px}.bonuses-section{padding-top:30px}}

.pricing-heading .eyebrow{color:var(--white);margin:0 0 17px}.pricing-heading h2{color:var(--yellow)}

.pricing-hero{grid-template-columns:1fr}.pricing-hero .page-hero-image{width:100%}

.pricing-hero{display:block;min-height:650px;overflow:hidden;position:relative}.pricing-hero .page-hero-copy{bottom:0;left:0;padding:9vw 5vw;position:absolute;z-index:1}.pricing-hero .page-hero-image{inset:0;margin:0;min-height:0;position:absolute;width:100%}.pricing-hero .page-hero-image::after{background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.25));content:"";inset:0;position:absolute}.pricing-hero .page-hero-image img{height:100%;width:100%}@media(max-width:560px){.pricing-hero{min-height:560px}.pricing-hero .page-hero-copy{padding:70px 5vw}}


.booking-card{justify-content:flex-start;padding-bottom:80px;position:relative}.booking-card .booking-whatsapp{bottom:26px;font-size:.68rem;left:50%;margin:0;min-width:180px;padding:11px 12px;position:absolute;text-align:center;transform:translateX(-50%);white-space:nowrap}
.class-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px}.class-tabs button{background:var(--ink);border:1px solid var(--line);color:var(--white);cursor:pointer;flex:1 1 145px;font:700 .76rem Arial,Helvetica,sans-serif;letter-spacing:.06em;padding:13px 16px;text-transform:uppercase}.class-tabs button[aria-selected="true"],.class-tabs button:hover,.class-tabs button:focus-visible{background:var(--yellow);border-color:var(--yellow);color:var(--black)}.class-catalog-card{background:var(--ink);border:1px solid var(--yellow);display:flex;flex-direction:column;min-height:500px;padding:38px}.class-catalog-card[hidden]{display:none}.class-catalog-card h2{color:var(--yellow);font-size:clamp(2.3rem,4vw,4rem);letter-spacing:-.06em;line-height:.9;margin:0 0 28px}.class-catalog-card>p{color:#ddd;font-size:.98rem;margin:0}.class-catalog-card h3{color:var(--white);font-size:.78rem;letter-spacing:.12em;margin:32px 0 12px;text-transform:uppercase}.class-catalog-card ul{list-style:none;margin:0;max-width:700px;padding:0}.class-catalog-card li{border-top:1px solid var(--line);font-size:.9rem;padding:10px 0}.class-catalog-card li strong{color:var(--yellow);display:inline-block;font-size:.78rem;letter-spacing:.04em;min-width:110px;text-transform:uppercase}@media(max-width:560px){.class-tabs button{flex-basis:130px}.class-catalog-card{min-height:0;padding:28px}.class-catalog-card h2{font-size:2.5rem}.class-catalog-card li strong{min-width:92px}}
.classes-hero{display:block;min-height:650px;overflow:hidden;position:relative}.classes-hero .page-hero-copy{bottom:0;left:0;padding:9vw 5vw;position:absolute;z-index:1}.classes-hero .page-hero-copy .eyebrow{color:var(--white)}.classes-hero .page-hero-copy h1{color:var(--yellow)}.classes-hero .page-hero-image{inset:0;margin:0;min-height:0;position:absolute;width:100%}.classes-hero .page-hero-image::after{background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.25));content:"";inset:0;position:absolute}.classes-hero .page-hero-image img{height:100%;width:100%}@media(max-width:560px){.classes-hero{min-height:560px}.classes-hero .page-hero-copy{padding:70px 5vw}}

/* Cabeceras de página: mismo contraste en todas las secciones hero. */
.page-hero-copy .eyebrow{color:var(--white)}.page-hero h1{color:var(--yellow)}
.class-catalog-card>h2,.class-catalog-card>p,.class-catalog-card>h3,.class-catalog-card>ul{margin-left:auto;margin-right:auto;max-width:900px;width:100%}

/* Titulares compactos en móvil: mantienen una sola línea sin desbordar. */
@media(max-width:560px){
  .trial-hero .page-hero-copy h1{font-size:clamp(2rem,8vw,2.5rem);white-space:nowrap}
  .classes-hero:not(.classes-hero--summer) .page-hero-copy h1{font-size:clamp(2rem,10vw,2.6rem);white-space:nowrap}
  .classes-hero--summer .page-hero-copy h1{font-size:clamp(1.25rem,6.5vw,1.7rem);white-space:nowrap}
  .class-catalog-card h2{font-size:clamp(1.45rem,7vw,1.8rem);white-space:nowrap}
}

/* Sistema común de titulares móviles. La excepción .title--allow-wrap conserva
   los títulos cuya composición esté diseñada expresamente en varias líneas. */
@media(max-width:560px){
  main:not(.legal) :is(h1,h2,h3,h4,h5,h6):not(.title--allow-wrap){max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .page-hero h1{font-size:clamp(1.25rem,6.5vw,2.2rem)}
  .section-heading h2,.feel-the-beat h2,.about-team-heading h2,.about-equipment h2,.contact-card h2{font-size:clamp(1.15rem,6.3vw,2rem)}
  .title--allow-wrap{overflow:visible;white-space:normal}
}
