* { box-sizing:border-box; }
html { overflow-x:clip; scroll-behavior:smooth; scroll-padding-top:6.5rem; background:var(--black); }
html.is-anchor-scrolling { scroll-behavior:auto; }
body { margin:0; overflow-x:clip; background:var(--black); color:var(--white); font-family:var(--font-ui); font-size:15px; line-height:1.5; }
body.menu-open, body.lightbox-open { overflow:hidden; }
body,main,section,header,footer,.hero,.hero__content,.hero__panel,h1,h2,h3,p,a,button { visibility:visible; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { font-family:var(--font-display); font-weight:400; line-height:1; white-space:normal; word-spacing:normal; text-wrap:balance; }
h1 { font-size:clamp(3.15rem,6.1vw,6.6rem); letter-spacing:-.06em; }
h2 { font-size:clamp(2.5rem,4.55vw,5.2rem); letter-spacing:-.055em; }
h3 { font-size:clamp(1.7rem,2.35vw,2.7rem); letter-spacing:-.04em; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; z-index:200; top:-5rem; left:1rem; padding:.75rem 1rem; background:var(--white); color:var(--black); }
.skip-link:focus { top:1rem; }
.section-shell { padding:var(--space-section) var(--page-gutter); }
.eyebrow,.metrics dd,.academy__specialties,.category-card,.site-header,.site-footer,.button,.text-link { font-family:var(--font-ui); font-size:.67rem; letter-spacing:.12em; text-transform:uppercase; }

.site-header { position:fixed; z-index:100; inset:0 0 auto; display:grid; grid-template-columns:220px 1fr auto; align-items:center; gap:2rem; padding:1.05rem var(--page-gutter); transition:background-color .5s var(--ease),backdrop-filter .5s var(--ease),box-shadow .5s var(--ease),padding .5s var(--ease); }
.site-header--scrolled { padding-block:.65rem; background:rgba(9,9,9,.94); backdrop-filter:blur(10px); box-shadow:0 1px 0 rgba(255,255,255,.07); }
.site-header__brand img { width:clamp(145px,14vw,210px); height:auto; }
.site-header__nav { display:flex; justify-self:center; gap:clamp(1rem,2.5vw,3rem); }
.site-header__nav a { font-size:clamp(.94rem,1.1vw,1.05rem); letter-spacing:.075em; }
.site-header__nav a,.site-footer a { transition:color .25s ease; }
.site-header__nav a:hover,.site-footer a:hover { color:var(--red); }
.site-header__toggle { display:none; }
.navigation__whatsapp { display:inline-flex; width:44px; height:44px; align-items:center; justify-content:center; color:var(--white); }
.navigation__whatsapp svg { width:30px; height:30px; fill:currentColor; }
.navigation__whatsapp:hover { color:var(--white); opacity:.78; }
.mobile-navigation { display:none; }
.button { display:inline-flex; min-height:43px; align-items:center; justify-content:center; padding:0 1.15rem; border:1px solid var(--white); transition:background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease); }
.button--primary { background:var(--red); border-color:var(--red); }
.button--primary:hover { background:var(--white); border-color:var(--white); color:var(--black); }
.button--whatsapp:hover { background:var(--white); color:var(--black); }

.hero { position:relative; min-height:100svh; overflow:hidden; }
.hero::before { position:absolute; z-index:1; inset:0; background:rgba(0,0,0,.18); content:""; pointer-events:none; }
.hero__content { position:relative; z-index:2; width:45%; min-height:100svh; padding:7.5rem clamp(2.25rem,7vw,8.5rem) 3rem; display:flex; flex-direction:column; justify-content:center; background:rgba(0,0,0,.58); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.hero__content .eyebrow { margin-bottom:1.6rem; color:var(--gray-300); }
.hero__lead { max-width:24rem; margin:2.7rem 0 3.1rem; color:var(--gray-300); font-family:var(--font-display); font-size:clamp(1rem,1.3vw,1.25rem); line-height:1.45; }
.hero__button { min-height:60px; padding-inline:2.25rem; align-self:flex-start; font-size:1rem; gap:.7rem; }
.hero__whatsapp-note { display:flex; align-items:center; gap:.45rem; margin-top:1rem; color:var(--gray-300); font-size:.72rem; letter-spacing:.04em; }
.hero__whatsapp-note svg { width:14px; height:14px; color:var(--white); fill:none; stroke:currentColor; stroke-width:1.5; }

.asset-frame { position:relative; display:block; overflow:hidden; background:#151515; }
.asset-frame img { width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.asset-frame--missing img { display:none; }
.asset-frame__placeholder { position:absolute; inset:0; display:grid; place-items:center; padding:1rem; border:1px solid #343431; color:#a7a7a1; font:normal .62rem/1.25 var(--font-ui); letter-spacing:.1em; text-align:center; text-transform:uppercase; }
.asset-frame--loaded .asset-frame__placeholder { display:none; }
.asset-frame--hero { position:absolute; z-index:0; inset:0; width:100%; height:100%; }
.hero__background,.hero__background img { display:block; width:100%; height:100%; }
.asset-frame--hero img { object-fit:cover; object-position:58% center; }

.metrics { padding-block:clamp(2rem,3vw,3rem); background:#0b0b0b; color:var(--white); }
.metrics__list { display:grid; grid-template-columns:repeat(5,1fr); gap:0; margin:0; }
.metrics__list > div { position:relative; display:grid; justify-items:center; gap:.55rem; min-height:9.5rem; padding:1rem 1.25rem; text-align:center; transition:background-color .3s var(--ease); }
.metrics__list > div:not(:last-child)::after { position:absolute; top:10%; right:0; bottom:10%; width:1px; background:var(--red); content:""; }
.metrics__list > div:not(:last-child)::before { position:absolute; z-index:1; top:50%; right:-3px; width:7px; height:7px; border-radius:50%; background:var(--red); content:""; transform:translateY(-50%); }
.metrics__list > div:hover { background:rgba(255,255,255,.03); }
.metrics__list svg { width:24px; height:24px; stroke:var(--red); stroke-width:1.5; fill:none; }
.metrics dt { font:400 clamp(1.65rem,2vw,2.4rem)/1.05 var(--font-display); letter-spacing:-.035em; }
.metrics dd { margin:0; color:var(--gray-300); font-size:.6rem; line-height:1.4; }

.why { background:var(--gray-100); color:var(--black); }
.section-intro { max-width:55rem; }
.section-intro .eyebrow { margin-bottom:1.5rem; color:var(--red); }
.why__grid { display:grid; grid-template-columns:repeat(3,1fr); align-items:stretch; gap:clamp(2.5rem,5vw,6.5rem); margin-top:clamp(3.75rem,6vw,6.5rem); }
.feature-card { display:flex; height:100%; flex-direction:column; }
.feature-card .asset-frame { height:clamp(16rem,28vw,27rem); margin-bottom:2.1rem; }
.feature-card .eyebrow { margin-bottom:1rem; color:var(--red); }
.feature-card h3 { margin-bottom:1rem; }
.feature-card > p:last-child { flex:1; color:#595955; font-family:var(--font-display); font-size:1.07rem; line-height:1.55; letter-spacing:.005em; }

.academy { display:grid; grid-template-columns:45% 55%; }
.academy__media { height:clamp(31rem,46vw,42rem); min-height:0; align-self:center; }
.academy__content { align-self:center; max-width:43rem; padding:clamp(5.5rem,8vw,8.5rem) var(--page-gutter); }
.academy__content .eyebrow { margin-bottom:1.5rem; color:var(--red); }
.academy__content > p:not(.eyebrow) { margin:2rem 0 2.7rem; color:var(--gray-300); font-family:var(--font-display); font-size:1.26rem; line-height:1.55; }
.academy__specialties { display:flex; flex-wrap:wrap; gap:1rem 1.75rem; max-width:34rem; padding:0; margin:0 0 3rem; color:var(--white); list-style:none; font-family:var(--font-display); font-size:clamp(1.05rem,1.35vw,1.25rem); letter-spacing:normal; text-transform:none; }
.academy__discipline { display:inline-flex; min-height:44px; align-items:center; gap:.8rem; }
.academy__discipline-icon { display:inline-flex; width:38px; height:38px; flex:0 0 38px; align-items:center; justify-content:center; color:#C8102E; }
.academy__discipline-icon svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
.text-link { display:inline-flex; gap:.6rem; padding-bottom:.5rem; border-bottom:1px solid currentColor; transition:color .25s ease; }
.text-link:hover { color:var(--red); }

.store { background:#111; }
.section-intro--split { display:flex; align-items:end; justify-content:space-between; gap:3rem; max-width:none; }
.section-intro--split > p { max-width:22rem; color:var(--gray-300); font-family:var(--font-display); font-size:1.19rem; line-height:1.55; }
.asset-frame--store { height:min(42vw,35rem); margin-top:clamp(3.5rem,6vw,6rem); }
.store__categories { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:clamp(2.5rem,4vw,4.5rem); background:var(--gray-700); }
.category-card { position:relative; display:flex; min-height:18.5rem; justify-content:space-between; padding:1.35rem; overflow:hidden; background:var(--black); }
.category-card > span { position:relative; z-index:2; }
.category-card > span:first-of-type { color:var(--white); font-family:var(--font-display); font-size:.82rem; font-weight:600; letter-spacing:.1em; }
.category-card > span:last-of-type { color:var(--gray-300); font-size:.74rem; }
.category-card .asset-frame { position:absolute; inset:0; display:block; width:100%; height:100%; padding:0; margin:0; overflow:hidden; border:0; outline:0; line-height:0; }
.category-card .asset-frame img { display:block; width:100%; height:100%; padding:0; margin:0; border:0; object-fit:cover; object-position:center; transition:transform .3s var(--ease); }
.category-card .asset-frame::after { position:absolute; inset:0; background:rgba(0,0,0,.28); content:""; transition:background-color .3s var(--ease); }
.category-card:hover .asset-frame--loaded::after,.category-card:focus-visible .asset-frame--loaded::after { background:rgba(0,0,0,.10); }
.category-card:hover img,.category-card:focus-visible img { transform:scale(1.03); }
.gallery__item:hover img { transform:scale(1.04); }

.gallery { padding-top:clamp(6rem,11vw,10rem); padding-bottom:clamp(6rem,11vw,10rem); background:var(--white); color:var(--black); }
.gallery__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.35rem,3vw,4rem); margin-top:clamp(5rem,8vw,8rem); margin-bottom:clamp(1rem,3vw,3rem); }
.gallery__item { display:block; aspect-ratio:1; padding:0; overflow:hidden; border:0; border-radius:7px; cursor:zoom-in; background:#151515; transition:transform .45s var(--ease),box-shadow .45s var(--ease); }
.gallery__item:hover { transform:translateY(-4px); box-shadow:0 18px 34px rgba(9,9,9,.16); }
.gallery__item .asset-frame { width:100%; height:100%; }
.gallery__item .asset-frame__placeholder { border:0; }

.brands { padding:1.8rem 0; overflow:hidden; background:var(--red); }
.brands__viewport { width:100%; overflow:hidden; }
.brands__track { display:flex; width:max-content; animation:brands-marquee 42s linear infinite; }
.brands__group { display:flex; flex:0 0 auto; align-items:center; gap:clamp(2.5rem,5vw,5.5rem); padding-right:clamp(2.5rem,5vw,5.5rem); }
.brands__item { display:flex; min-width:180px; flex:0 0 auto; align-items:center; justify-content:center; }
.brands__item img { display:block; width:auto; max-width:180px; height:44px; object-fit:contain; opacity:.68; transition:opacity .25s ease,transform .25s ease; }
.brands__item:hover img,.brands__item:focus-within img { opacity:1; transform:scale(1.03); }
@keyframes brands-marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .brands__track { width:100%; animation:none; transform:none; }
  .brands__group { width:100%; flex-wrap:wrap; justify-content:center; padding:0 var(--page-gutter); }
  .brands__group[aria-hidden="true"] { display:none; }
}

.locations { background:var(--gray-100); color:var(--black); }
.locations__grid { display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(1rem,3vw,3rem); margin-top:clamp(4rem,8vw,8rem); }
.location-card { display:flex; min-height:23rem; flex-direction:column; align-items:flex-start; justify-content:end; padding:clamp(2rem,3.5vw,3.5rem); background:var(--white); }
.location-card .eyebrow { margin-bottom:1rem; color:var(--red); }
.location-card h3 { margin-bottom:1.5rem; }
.location-card address,.location-card__contact { display:flex; max-width:24rem; flex-direction:column; color:#5b5b58; font-family:var(--font-display); font-size:1.22rem; font-style:normal; line-height:1.55; overflow-wrap:anywhere; }
.location-card address { margin-bottom:1rem; }
.location-card__contact { margin-bottom:2rem; }

.final-cta { display:grid; min-height:100svh; place-items:center; padding:var(--space-section) var(--page-gutter); background:#090909; text-align:center; }
.final-cta { position:relative; overflow:hidden; }
.final-cta::before { position:absolute; z-index:1; inset:0; background:linear-gradient(rgba(0,0,0,.62),rgba(0,0,0,.66)); content:""; }
.final-cta__media { position:absolute; inset:0; z-index:0; width:100%; height:100%; }
.final-cta__media img { width:100%; height:100%; object-fit:cover; object-position:center; }
.final-cta__media .asset-frame__placeholder { border:0; }
.final-cta__content { position:relative; z-index:2; max-width:70rem; }
.final-cta .eyebrow { margin-bottom:1.5rem; color:var(--red); }
.final-cta h2 { font-size:clamp(3.2rem,6.9vw,7.7rem); }
.final-cta p:not(.eyebrow) { max-width:30rem; margin:2.4rem auto 3.2rem; color:var(--gray-300); font-family:var(--font-display); font-size:1.24rem; line-height:1.55; }
.final-cta .button { min-height:52px; padding-inline:1.55rem; }

.site-footer { padding:2.25rem var(--page-gutter) 1.25rem; border-top:1px solid var(--gray-700); }
.site-footer__main { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:3rem; }
.site-footer__main img { width:180px; height:auto; }
.site-footer nav { display:flex; flex-direction:column; gap:.8rem; }
.site-footer__social { display:flex; align-items:center; gap:.5rem; }
.footer__social-link { display:inline-flex; width:44px; height:44px; align-items:center; justify-content:center; flex:0 0 44px; color:#C8102E; transition:opacity .25s var(--ease),transform .25s var(--ease); }
.footer__social-link svg { width:26px; height:26px; fill:currentColor; }
.footer__social-link svg rect,.footer__social-link svg circle { fill:none; stroke:currentColor; stroke-width:1.7; }
.footer__social-link .footer__social-dot { fill:currentColor; stroke:none; }
.footer__social-link:hover { color:#C8102E; opacity:.82; transform:translateY(-1px); }
.footer__social-link:focus-visible { outline-color:var(--white); }
.footer__social-link--disabled { cursor:default; opacity:.6; }
.site-footer__legal { margin-top:3.25rem; padding-top:1.25rem; border-top:1px solid var(--gray-700); color:var(--gray-500); font-size:.69rem; line-height:1.55; letter-spacing:.09em; text-transform:uppercase; }

.lightbox { position:fixed; z-index:300; inset:0; display:none; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:1rem; padding:2rem; background:rgba(0,0,0,.98); opacity:0; transition:opacity .35s var(--ease); }
.lightbox.is-open { display:grid; opacity:1; }
.lightbox__figure { max-width:min(90vw,1200px); max-height:85vh; margin:auto; transform:scale(.985); transition:transform .45s var(--ease); }
.lightbox.is-open .lightbox__figure { transform:scale(1); }
.lightbox__figure img { max-width:100%; max-height:85vh; object-fit:contain; }
.lightbox button { border:0; background:transparent; color:var(--white); cursor:pointer; }
.lightbox__close { position:absolute; top:1rem; right:1.5rem; font-size:2.5rem; }
.lightbox__next,.lightbox__previous { padding:1rem; font-size:2rem; }
