/* GymPro Spor Merkezi – v2 "BOLD" */
:root{
  --bk:#0a0a0a; --bk2:#131313; --bk3:#1c1c1c;
  --red:#e61e3c; --red-d:#b8102a; --yel:#ffd400;
  --wh:#fff; --mut:#b4b4b4; --line:rgba(255,255,255,.14);
  --fd:'Anton','Bebas Neue',Impact,'Arial Narrow',sans-serif;
  --fb:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --wrap:1320px; --pad:clamp(1.1rem,4vw,2.5rem);
  --cut:clamp(28px,5vw,80px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bk);color:var(--wh);font:400 1rem/1.6 var(--fb);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{margin:0;font-weight:400}
p{margin:0}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.ic{width:1.15em;height:1.15em;flex:none;vertical-align:-.18em}
.red{color:var(--red)}
.outline{color:transparent;-webkit-text-stroke:2px var(--wh)}
.skip{position:absolute;left:-999px;top:0;background:var(--red);color:#fff;padding:.6rem 1rem;z-index:200}
.skip:focus{left:1rem;top:1rem}
:focus-visible{outline:3px solid var(--yel);outline-offset:3px}

/* ---------- buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;isolation:isolate;
  font:400 1.05rem/1 var(--fd);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;
  padding:1rem 1.6rem;color:#fff;white-space:nowrap;transition:transform .2s ease}
.btn span{display:inline-flex;align-items:center;gap:.55rem}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;transform:skewX(-12deg);transition:background .2s,box-shadow .2s,transform .2s}
.btn:hover{transform:translateY(-2px)}
.btn-red::before{background:var(--red);box-shadow:6px 6px 0 #000}
.btn-red:hover::before{background:#ff2a4b;box-shadow:8px 8px 0 var(--yel)}
.btn-line::before{border:2px solid #fff;background:rgba(0,0,0,.25)}
.btn-line:hover::before{background:#fff}
.btn-line:hover{color:#000}
.btn-black::before{background:#000;box-shadow:6px 6px 0 rgba(0,0,0,.25)}
.btn-black:hover::before{box-shadow:8px 8px 0 #fff}
.btn-xl{font-size:clamp(1.05rem,1.5vw,1.3rem);padding:1.15rem 2rem}

/* ---------- header ---------- */
.nav{position:fixed;inset:0 0 auto;z-index:100;transition:background .25s,box-shadow .25s,padding .25s;padding:.9rem 0}
.nav.scrolled{background:rgba(8,8,8,.94);box-shadow:0 2px 0 var(--red);padding:.45rem 0;backdrop-filter:blur(8px)}
.nav-in{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad);display:flex;align-items:center;gap:1.5rem}
.logo{font:400 2rem/1 var(--fd);letter-spacing:.02em;text-decoration:none;color:#fff}
.logo span{color:var(--red)}
.links{display:flex;gap:.3rem;margin-left:auto}
.links a{font:400 1.05rem/1 var(--fd);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;padding:.7rem .9rem;position:relative}
.links a::after{content:"";position:absolute;left:.9rem;right:.9rem;bottom:.3rem;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.links a:hover::after,.links a.active::after{transform:scaleX(1)}
.links .menu-cta{display:none}
.btn-nav{font-size:.98rem;padding:.8rem 1.2rem}
.burger{display:none;margin-left:auto;width:48px;height:48px;background:var(--red);border:0;cursor:pointer;position:relative;clip-path:polygon(12% 0,100% 0,88% 100%,0 100%)}
.burger span{position:absolute;left:13px;right:13px;height:3px;background:#fff;transition:transform .25s,opacity .2s}
.burger span:nth-child(1){top:15px}.burger span:nth-child(2){top:22.5px}.burger span:nth-child(3){top:30px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* ---------- hero ---------- */
.hero{position:relative;min-height:min(100svh,980px);display:flex;align-items:center;padding:7.5rem 0 calc(var(--cut) + 4.5rem);
  clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut)),0 100%);background:#000;overflow:hidden}
.hero-bg,.hero-bg img{position:absolute;inset:0;width:100%;height:100%}
.hero-bg img{object-fit:cover;object-position:50% 55%;filter:grayscale(.35) contrast(1.15) brightness(.85);transform:scale(1.04)}
.hero-shade{position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.95) 0%,rgba(0,0,0,.82) 42%,rgba(0,0,0,.35) 75%,rgba(0,0,0,.55) 100%),
    linear-gradient(0deg,rgba(0,0,0,.9),transparent 45%),
    radial-gradient(60% 70% at 85% 30%,rgba(230,30,60,.45),transparent 70%);}
.hero-shade::after{content:"";position:absolute;inset:0;opacity:.18;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero-in{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(2rem,4vw,4rem);align-items:center}
.chip{display:inline-flex;align-items:center;gap:.5rem;background:var(--yel);color:#000;font:400 .95rem/1 var(--fd);letter-spacing:.1em;padding:.55rem .9rem .5rem;transform:skewX(-10deg);margin-bottom:1.4rem}
.chip .ic{width:1em;height:1em}
.mega{font-family:var(--fd);text-transform:uppercase;line-height:.9;letter-spacing:-.005em;font-size:clamp(4.2rem,10.4vw,10.5rem);margin:0 0 1.6rem}
.mega span{display:block}
.mega .l1{margin-bottom:.06em}
.mega .l2{color:transparent;-webkit-text-stroke:2px #fff}
.mega .l3 em{font-style:normal;color:var(--red);text-shadow:0 0 40px rgba(230,30,60,.45)}
.hero-lead{font-size:clamp(1.02rem,1.3vw,1.22rem);color:#e6e6e6;max-width:36rem;margin-bottom:2rem}
.hero-lead strong{color:#fff}
.cta-row{display:flex;flex-wrap:wrap;gap:1.1rem 1.4rem;margin-bottom:2.4rem}
.hero-facts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0;border-left:4px solid var(--red)}
.hero-facts li{padding:.2rem 1.4rem;border-right:1px solid var(--line);display:flex;flex-direction:column}
.hero-facts li:last-child{border-right:0}
.hero-facts strong{font:400 1.9rem/1.05 var(--fd);display:flex;align-items:center;gap:.25rem}
.hero-facts .star{color:var(--yel);width:.8em;height:.8em}
.hero-facts span{font-size:.82rem;color:var(--mut);text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.hero-art{position:relative;justify-self:end;width:min(100%,430px)}
.hero-photo{position:relative;aspect-ratio:3/4;clip-path:polygon(14% 0,100% 0,86% 100%,0 100%);box-shadow:0 30px 60px rgba(0,0,0,.6)}
.hero-photo img{width:100%;height:100%;object-fit:cover}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(230,30,60,.45))}
.hero-art::before{content:"";position:absolute;inset:0;transform:translate(22px,22px);background:var(--red);clip-path:polygon(14% 0,100% 0,86% 100%,0 100%)}
.badge-spin{position:absolute;width:150px;height:150px;left:-58px;bottom:9%;filter:drop-shadow(0 10px 24px rgba(0,0,0,.5))}
.badge-spin > text{font:400 17.5px var(--fd);letter-spacing:.14em;fill:#fff}
.badge-spin{animation:spin 18s linear infinite}
.badge-core{animation:spin 18s linear infinite reverse;transform-origin:100px 100px}
.bc1{font:400 40px var(--fd);fill:#fff}
.bc2{font:700 15px var(--fb);letter-spacing:.2em;fill:#fff}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- tapes ---------- */
.tapes{position:relative;z-index:5;height:clamp(110px,12vw,160px);margin:calc(var(--cut) * -1 - 46px) 0 -10px;overflow:hidden;pointer-events:none}
.tape{position:absolute;left:-5%;width:110%;top:50%;overflow:hidden;white-space:nowrap}
.tape-front{background:var(--red);transform:translateY(-50%) rotate(-3deg);box-shadow:0 10px 30px rgba(0,0,0,.5);padding:.75rem 0;z-index:2}
.tape-back{background:var(--yel);color:#000;transform:translateY(-50%) rotate(2.4deg);padding:.4rem 0}
.track{display:inline-flex;animation:marquee 32s linear infinite}
.tape-back .track{animation-duration:46s;animation-direction:reverse}
.track span{font:400 clamp(1.5rem,2.6vw,2.4rem)/1 var(--fd);letter-spacing:.04em;padding-right:.4em}
.tape-back .track span{font-size:clamp(.95rem,1.4vw,1.25rem);letter-spacing:.14em}
.track i{font-style:normal;color:#000;padding:0 .35em}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- numbers ---------- */
.numbers{padding:3.5rem 0 3rem}
.num-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.num{padding:1.8rem 1.2rem;border-right:1px solid var(--line)}
.num:last-child{border-right:0}
.num strong{display:block;font:400 clamp(3rem,6vw,5.4rem)/.95 var(--fd);color:#fff}
.num strong sup{font-size:.42em;color:var(--red);vertical-align:top;position:relative;top:.25em;margin-left:.06em}
.num span{display:block;margin-top:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.82rem;color:var(--mut)}
.num:nth-child(odd) strong{color:var(--red)}
.num:nth-child(odd) strong sup{color:#fff}

/* ---------- section heads ---------- */
.kicker{font:800 .85rem/1 var(--fb);letter-spacing:.24em;text-transform:uppercase;color:var(--red);margin-bottom:1.3rem}
.kicker-dark{color:#000}
.h-big{font:400 clamp(3rem,7.4vw,7rem)/1.04 var(--fd);text-transform:uppercase;letter-spacing:-.005em}
.sec-head{margin-bottom:clamp(2.2rem,4vw,3.5rem);max-width:60rem}
.sec-sub{color:#cfcfcf;font-size:1.08rem;max-width:34rem;margin-top:1.3rem}
.sec-head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;max-width:none}
.sec-head-row .sec-sub{margin-top:0}

/* ---------- services ---------- */
.services{position:relative;padding:3rem 0 calc(var(--cut) + 4rem);overflow:hidden}
.bgword{position:absolute;top:1.5rem;right:-2vw;font:400 clamp(7rem,19vw,19rem)/1 var(--fd);color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.07);pointer-events:none;white-space:nowrap}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.9rem,1.6vw,1.4rem)}
.svc{position:relative;min-height:clamp(330px,30vw,420px);overflow:hidden;display:flex;align-items:flex-end;background:var(--bk3);isolation:isolate;transition:transform .3s ease}
.svc:hover{transform:translateY(-6px)}
.svc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .6s ease;filter:contrast(1.1)}
.svc:hover img{transform:scale(1.07)}
.svc-photo::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.45) 45%,rgba(0,0,0,.92) 100%)}
.svc-body{padding:clamp(1.3rem,2.2vw,2rem);width:100%}
.svc-num{display:block;font:400 clamp(4rem,6vw,5.6rem)/.8 var(--fd);color:transparent;-webkit-text-stroke:2px var(--red);margin-bottom:.9rem}
.svc h3{font:400 clamp(1.7rem,2.4vw,2.3rem)/1 var(--fd);letter-spacing:.01em;margin-bottom:.6rem}
.svc p{color:#ddd;font-size:.98rem}
.svc-photo .svc-num{-webkit-text-stroke-color:#fff}
.svc-red{background:var(--red)}
.svc-red .svc-num{-webkit-text-stroke-color:#000}
.svc-red p{color:#fff}
.svc-red::after,.svc-dark::after,.svc-yellow::after{content:"";position:absolute;right:-30%;top:-20%;width:80%;height:140%;transform:skewX(-18deg);z-index:-1}
.svc-red::after{background:rgba(0,0,0,.12)}
.svc-dark{background:#151515;border:2px solid var(--line)}
.svc-dark::after{background:linear-gradient(90deg,rgba(230,30,60,.0),rgba(230,30,60,.14))}
.svc-yellow{background:var(--yel);color:#000}
.svc-yellow p{color:#1a1a1a}
.svc-yellow .svc-num{-webkit-text-stroke-color:#000}
.svc-yellow::after{background:rgba(0,0,0,.06)}
.svc-link{display:inline-flex;align-items:center;gap:.45rem;margin-top:1.1rem;font:400 1rem/1.2 var(--fd);letter-spacing:.07em;text-transform:uppercase;text-decoration:none;border-bottom:3px solid currentColor;padding-bottom:.2rem}
.svc-dark .svc-link{color:var(--red)}
.svc-link:hover .ic{transform:translateX(4px)}
.svc-link .ic{transition:transform .2s}

/* ---------- student band ---------- */
.band{position:relative;background:var(--red);color:#000;margin-top:calc(var(--cut) * -1);padding:calc(var(--cut) + 3.5rem) 0 calc(var(--cut) + 3.5rem);
  clip-path:polygon(0 var(--cut),100% 0,100% calc(100% - var(--cut)),0 100%);overflow:hidden}
.band-word{position:absolute;left:-1vw;bottom:-.12em;font:400 clamp(8rem,24vw,24rem)/1 var(--fd);color:rgba(0,0,0,.09);white-space:nowrap;pointer-events:none}
.band-in{position:relative;display:grid;grid-template-columns:1.2fr 1fr;gap:3rem;align-items:center}
.band .h-big{color:#fff;text-shadow:5px 5px 0 #000;font-size:clamp(3rem,6.2vw,6.2rem)}
.band-list{list-style:none;padding:0;margin:0 0 2rem}
.band-list li{font:400 clamp(1.4rem,2.2vw,2rem)/1.1 var(--fd);text-transform:uppercase;letter-spacing:.02em;padding:.7rem 0 .7rem 2.4rem;border-bottom:2px solid rgba(0,0,0,.25);position:relative;color:#fff}
.band-list li::before{content:"";position:absolute;left:0;top:50%;width:1.4rem;height:.45rem;background:#000;transform:translateY(-50%) skewX(-20deg)}
.band-note{margin-top:1.6rem;font-weight:500;color:#1b0005}
.band-note strong{font-weight:800}

/* ---------- gallery ---------- */
.gallery{padding:clamp(3rem,6vw,5rem) 0 calc(var(--cut) + 4rem)}
.gallery .h-big .outline{-webkit-text-stroke-width:2px}
.g-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(150px,16vw,230px);gap:clamp(.5rem,1vw,.85rem);
  grid-template-areas:"a a b c" "a a b d" "e f f d" "e f f g" "h i i g"}
.g-a{grid-area:a}.g-b{grid-area:b}.g-c{grid-area:c}.g-d{grid-area:d}.g-e{grid-area:e}.g-f{grid-area:f}.g-g{grid-area:g}.g-h{grid-area:h}.g-i{grid-area:i}
.g-item{position:relative;overflow:hidden;display:block;background:var(--bk3);cursor:zoom-in}
.g-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease,filter .4s;filter:saturate(1.05)}
.g-c img{object-position:50% 80%}
.g-f img{object-position:50% 60%}
.g-i img{object-position:50% 62%}
.g-h img{object-position:50% 45%}
.g-item::after{content:"+";position:absolute;right:0;bottom:0;width:3rem;height:3rem;display:grid;place-items:center;background:var(--red);font:400 2rem/1 var(--fd);transform:translate(100%,100%);transition:transform .3s}
.g-item::before{content:"";position:absolute;inset:0;z-index:1;border:0 solid var(--red);transition:border-width .2s;pointer-events:none}
.g-item:hover img{transform:scale(1.06)}
.g-item:hover::after,.g-item:focus-visible::after{transform:none}
.g-item:hover::before{border-width:4px}

/* ---------- contact ---------- */
.contact{position:relative;background:var(--bk2);margin-top:calc(var(--cut) * -1);padding:calc(var(--cut) + 3.5rem) 0 4.5rem;
  clip-path:polygon(0 0,100% var(--cut),100% 100%,0 100%)}
.ct-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:start;margin-bottom:3rem}
.ct-buttons{display:grid;gap:1rem;margin-top:2.2rem;max-width:34rem}
.bigbtn{display:flex;align-items:center;gap:1.1rem;padding:1.2rem 1.6rem;text-decoration:none;transition:transform .2s,box-shadow .2s;clip-path:polygon(0 0,100% 0,calc(100% - 22px) 100%,0 100%)}
.bigbtn .ic{width:2.6rem;height:2.6rem}
.bigbtn span{display:flex;flex-direction:column;font:400 clamp(1.6rem,3vw,2.5rem)/1 var(--fd);letter-spacing:.02em}
.bigbtn small{font:800 .75rem/1 var(--fb);letter-spacing:.2em;text-transform:uppercase;margin-bottom:.45rem;opacity:.85}
.bigbtn-red{background:var(--red);color:#fff}
.bigbtn-white{background:#fff;color:#000}
.bigbtn:hover{transform:translateX(8px)}
.ct-info{display:grid;gap:.8rem}
.info-block{background:var(--bk);border-left:4px solid var(--red);padding:1.3rem 1.4rem}
.info-block h3{font:400 1.45rem/1 var(--fd);letter-spacing:.05em;display:flex;align-items:center;gap:.6rem;margin-bottom:1rem}
.info-block h3 .ic{color:var(--red)}
.hours{width:100%;border-collapse:collapse}
.hours th,.hours td{padding:.65rem 0;border-bottom:1px solid var(--line);text-align:left;font-weight:500}
.hours td{text-align:right;font:400 1.5rem/1 var(--fd);letter-spacing:.03em}
.open-now{margin-top:1rem;display:inline-flex;align-items:center;gap:.55rem;font:800 .82rem/1 var(--fb);letter-spacing:.12em;text-transform:uppercase;padding:.55rem .8rem}
.open-now::before{content:"";width:.6rem;height:.6rem;border-radius:50%;background:currentColor;box-shadow:0 0 0 0 currentColor;animation:pulse 1.8s infinite}
.open-now.is-open{background:rgba(37,211,102,.12);color:#3ddc84}
.open-now.is-closed{background:rgba(230,30,60,.14);color:#ff5a72}
@keyframes pulse{0%{box-shadow:0 0 0 0 currentColor}70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}
.info-link{display:flex;align-items:center;gap:1rem;text-decoration:none;transition:background .2s,transform .2s}
.info-link .ic{width:1.8rem;height:1.8rem;color:var(--red)}
.info-link span{display:flex;flex-direction:column;font-weight:700;font-size:1.05rem;line-height:1.35;overflow-wrap:anywhere}
.info-link small{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mut);margin-bottom:.3rem;font-weight:800}
.info-link:hover{background:#000;transform:translateX(6px)}
.map{position:relative;border:4px solid var(--red);box-shadow:14px 14px 0 #000;height:clamp(300px,36vw,440px)}
.map iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(1) invert(.9) contrast(.95) hue-rotate(180deg)}
.map-tag{position:absolute;right:-4px;top:-4px;background:var(--red);font:400 1.1rem/1 var(--fd);letter-spacing:.12em;padding:.6rem .9rem;display:flex;gap:.4rem;align-items:center}

/* ---------- footer ---------- */
.footer{position:relative;background:#000;border-top:6px solid var(--red);padding:0 0 3rem;overflow:hidden}
.foot-word{font:400 clamp(6rem,23vw,22rem)/.8 var(--fd);text-align:center;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.12);margin:2.5rem 0 2rem;letter-spacing:-.01em;white-space:nowrap}
.foot-word span{-webkit-text-stroke-color:rgba(230,30,60,.45)}
.foot-in{display:grid;grid-template-columns:1fr auto;gap:1.5rem 2rem;align-items:start}
.foot-in > div p{color:var(--mut);margin-top:.6rem;font-size:.95rem}
.foot-links{display:flex;flex-wrap:wrap;gap:.3rem 1.4rem}
.foot-links a{font:400 1.1rem/1 var(--fd);letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
.foot-links a:hover{color:var(--red)}
.foot-small{grid-column:1/-1;color:#8a8a8a;font-size:.85rem;border-top:1px solid var(--line);padding-top:1.4rem}
.foot-small a{text-decoration:none}

/* ---------- floating whatsapp ---------- */
.wa-float{position:fixed;right:clamp(.9rem,2vw,1.6rem);bottom:clamp(.9rem,2vw,1.6rem);z-index:90;display:flex;align-items:center;gap:.6rem;background:#25d366;color:#fff;text-decoration:none;
  height:60px;padding:0 1.3rem 0 1.05rem;border-radius:999px;box-shadow:0 10px 30px rgba(0,0,0,.45),0 0 0 4px rgba(37,211,102,.25);font:400 1.1rem/1 var(--fd);letter-spacing:.06em;text-transform:uppercase;transition:transform .2s}
.wa-float svg{width:30px;height:30px}
.wa-float:hover{transform:scale(1.05)}

/* ---------- lightbox ---------- */
.lb{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.94);display:flex;align-items:center;justify-content:center;padding:4.5rem 4.5rem 3.5rem}
.lb[hidden]{display:none}
.lb-fig{margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center}
.lb-fig img{max-width:100%;max-height:calc(100svh - 9rem);object-fit:contain;border:3px solid var(--red);box-shadow:12px 12px 0 rgba(230,30,60,.35)}
.lb-fig figcaption{margin-top:1rem;display:flex;gap:1rem;align-items:baseline;color:#ddd;font-size:.95rem;text-align:center}
#lbCount{font:400 1.2rem/1 var(--fd);color:var(--red);letter-spacing:.08em;flex:none}
.lb-btn{position:absolute;background:var(--red);color:#fff;border:0;width:52px;height:52px;font:400 2rem/1 var(--fb);cursor:pointer;display:grid;place-items:center}
.lb-btn:hover{background:#fff;color:#000}
.lb-close{top:1rem;right:1rem;font-size:1.4rem}
.lb-prev{left:1rem;top:50%;transform:translateY(-50%)}
.lb-next{right:1rem;top:50%;transform:translateY(-50%)}
body.lb-open{overflow:hidden}

/* ---------- reveal ---------- */
.js .reveal{opacity:0;transform:translateY(34px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .links a{padding:.7rem .6rem}
  .btn-nav{display:none}
  .svc-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .hero-in{grid-template-columns:1fr}
  .hero-art{display:none}
  .mega{font-size:clamp(4rem,13.5vw,8.5rem)}
  .num-grid{grid-template-columns:repeat(2,1fr)}
  .num:nth-child(2){border-right:0}
  .num:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .band-in,.ct-grid{grid-template-columns:1fr}
  .sec-head-row{flex-direction:column;align-items:flex-start}
  .sec-head-row .sec-sub{margin-top:0}
}
@media (max-width:820px){
  .burger{display:block}
  .links{position:fixed;inset:0;z-index:-1;background:#000;flex-direction:column;justify-content:center;align-items:flex-start;gap:0;padding:6rem var(--pad) 3rem;
    clip-path:polygon(0 0,100% 0,100% 0,0 0);transition:clip-path .45s cubic-bezier(.7,0,.2,1);visibility:hidden}
  .links.open{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);visibility:visible}
  .links a{font-size:clamp(2.8rem,13vw,4.5rem);padding:.25rem 0;letter-spacing:.01em}
  .links a::after{left:0;right:auto;width:3.5rem;bottom:.2rem;height:5px}
  .links .menu-cta{display:inline-flex;align-items:center;gap:.6rem;margin-top:2rem;font-size:1.3rem;background:var(--red);padding:1rem 1.3rem;letter-spacing:.06em}
  .links .menu-cta::after{display:none}
  .nav.menu-open{background:transparent;box-shadow:none;backdrop-filter:none}
}
@media (max-width:700px){
  :root{--cut:34px}
  html{scroll-padding-top:64px}
  .logo{font-size:1.75rem}
  .nav{padding:.7rem 0}
  .hero{min-height:100svh;padding:6.2rem 0 calc(var(--cut) + 4.6rem);align-items:flex-end}
  .hero-bg img{object-position:50% 50%;filter:grayscale(.2) contrast(1.1) brightness(.8)}
  .hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.35) 30%,rgba(0,0,0,.88) 62%,rgba(0,0,0,.97) 100%),radial-gradient(80% 50% at 80% 20%,rgba(230,30,60,.35),transparent 70%)}
  .chip{font-size:.8rem;margin-bottom:1rem}
  .mega{font-size:clamp(3.6rem,19.5vw,6rem);margin-bottom:1.1rem}
  .mega .l2{-webkit-text-stroke-width:1.5px}
  .hero-lead{font-size:1rem;margin-bottom:1.5rem}
  .cta-row{flex-direction:column;align-items:stretch;gap:.9rem;margin-bottom:1.8rem;padding:0 .4rem}
  .btn-xl{width:100%}
  .hero-facts{display:grid;grid-template-columns:repeat(3,auto);justify-content:start}
  .hero-facts li{padding:.1rem .8rem}
  .hero-facts strong{font-size:1.45rem}
  .hero-facts span{font-size:.64rem;letter-spacing:.04em}
  .tapes{height:96px;margin-top:calc(var(--cut) * -1 - 34px)}
  .tape-front{padding:.6rem 0}
  .numbers{padding:2.2rem 0 2rem}
  .num{padding:1.3rem .9rem}
  .num strong{font-size:3.2rem}
  .num span{font-size:.72rem}
  .svc-grid{grid-template-columns:1fr}
  .svc{min-height:300px}
  .svc-photo{min-height:360px}
  .bgword{top:.5rem}
  .band-list li{font-size:1.45rem}
  .btn-black.btn-xl{white-space:normal;text-align:center}
  .g-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:clamp(130px,40vw,190px);
    grid-template-areas:"a a" "a a" "b c" "b d" "e d" "e f" "g f" "g h" "i i"}
  .g-item::after{transform:none;width:2.2rem;height:2.2rem;font-size:1.5rem}
  .bigbtn{padding:1rem 1.2rem;gap:.9rem}
  .bigbtn .ic{width:2.1rem;height:2.1rem}
  .map{box-shadow:8px 8px 0 #000}
  .foot-in{grid-template-columns:1fr}
  .footer{padding-bottom:6.5rem}
  .gallery{padding-bottom:calc(var(--cut) + 2.5rem)}
  .hours td{font-size:1.25rem}
  .hours th{font-size:.92rem}
  .wa-float{width:60px;padding:0;justify-content:center}
  .wa-float span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .lb{padding:4rem .6rem 5.5rem}
  .lb-prev,.lb-next{top:auto;bottom:1rem;transform:none}
  .lb-prev{left:calc(50% - 60px)}.lb-next{right:calc(50% - 60px)}
  .lb-fig img{max-height:calc(100svh - 12rem)}
  .lb-fig figcaption{flex-direction:column;gap:.3rem;align-items:center}
}
@media (max-width:350px){
  .hero-facts{grid-template-columns:repeat(2,auto)}
  .hero-facts li:nth-child(3){display:none}
  .hero-facts li:nth-child(2){border-right:0}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .reveal{opacity:1;transform:none}
  .track{transform:none}
}
