*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:#050505;color:#fff;font-family:Arial,Helvetica,sans-serif}
body{overflow-x:hidden}
.stage{width:100%;min-height:100vh;display:flex;align-items:flex-start;justify-content:center;background:#050505}
.artboard{position:relative;width:100%;max-width:1664px;aspect-ratio:16/9;background:#050505;overflow:hidden}
.home-art{display:block;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.hotspot{position:absolute;border:0;background:transparent;padding:0;margin:0;cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent}
.hotspot:focus-visible{outline:2px solid rgba(255,255,255,.75);outline-offset:2px;border-radius:8px}

/* Coordenadas proporcionais à arte 1664×936 */
.hs-sobre{left:32.4%;top:2.5%;width:5.2%;height:8%}
.hs-jiujitsu{left:37.6%;top:2.5%;width:6.2%;height:8%}
.hs-boxe{left:44.0%;top:2.5%;width:4.5%;height:8%}
.hs-horarios{left:48.4%;top:2.5%;width:6.8%;height:8%}
.hs-app{left:55.3%;top:2.5%;width:4.2%;height:8%}
.hs-contato{left:59.8%;top:2.5%;width:6.8%;height:8%}
.hs-agendar-top{left:71.2%;top:2.1%;width:24.3%;height:7.2%}
.hs-primeira-aula{left:9.7%;top:71.1%;width:19.0%;height:7.5%}
.hs-como-chegar{left:29.8%;top:71.1%;width:15.3%;height:7.5%}
.hs-metodo{left:4.4%;top:82.5%;width:30.5%;height:13.5%}
.hs-app-card{left:36.2%;top:82.5%;width:32.2%;height:13.5%}

.coming{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.88);opacity:0;visibility:hidden;transition:opacity .18s ease,visibility .18s ease}
.coming.open{opacity:1;visibility:visible}
.coming-content{text-align:center;padding:24px;max-width:560px}
.coming-content h2{margin:0 0 10px;font-size:clamp(42px,7vw,84px);font-weight:800;letter-spacing:-.04em}
.coming-content p{margin:0;color:#cfcfcf;font-size:clamp(16px,2vw,22px);line-height:1.5}
.ghost-art{display:none}
.coming-close{position:absolute;top:22px;right:28px;background:none;border:0;color:#fff;font-size:44px;font-weight:200;line-height:1;cursor:pointer;padding:8px}

@media (min-aspect-ratio:16/9){
  .stage{align-items:center}
}
@media (max-width:760px){
  .stage{min-height:auto;display:block;padding-top:0}
  .artboard{width:100%;max-width:none;aspect-ratio:16/9}
  .coming-close{top:12px;right:14px}
}

/* V18 - botão Avalie no Google, sem alterar a arte original */
.review-button{
  position:absolute;
  left:46.2%;
  top:71.1%;
  width:15.3%;
  height:7.5%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  text-decoration:none;
  border:1px solid rgba(255,255,255,.78);
  border-radius:10px;
  background:rgba(8,8,8,.56);
  font-weight:700;
  font-size:clamp(10px,1.05vw,17px);
  line-height:1;
  cursor:pointer;
  z-index:4;
  -webkit-tap-highlight-color:transparent;
}
.review-button:hover{background:rgba(255,255,255,.10)}
.review-button:focus-visible{outline:2px solid rgba(255,255,255,.85);outline-offset:2px}

/* Grade de horários baseada na V17 */
.schedule-modal{
  position:fixed;
  inset:0;
  z-index:80;
  display:none;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.94);
  padding:10px;
}
.schedule-modal.open{display:flex}
.schedule-shell{
  position:relative;
  width:min(1020px,94vw);
  max-height:none;
  overflow:hidden;
  padding:18px 16px 14px;
  border-radius:24px;
  background:rgba(7,7,7,.97);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 30px 90px rgba(0,0,0,.55);
}
.schedule-close{
  position:absolute;
  top:12px;
  right:16px;
  z-index:90;
  background:none;
  border:0;
  color:#fff;
  font-size:40px;
  line-height:1;
  cursor:pointer;
  padding:6px;
}
.schedule-watermark{position:absolute;left:3%;top:9%;width:min(28vw,280px);opacity:.05;pointer-events:none}
.schedule-head{position:relative;text-align:center;margin-bottom:10px}
.schedule-head h2{margin:0;font-size:clamp(32px,3vw,44px);text-transform:uppercase;line-height:.95}
.schedule-head p{margin:6px 0 0;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#dfdfdf}
.schedule-grid{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.schedule-card{
  display:grid;
  grid-template-columns:58px 1fr;
  gap:0 10px;
  align-items:start;
  color:#fff;
  text-decoration:none;
  padding:11px 12px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.03);
}
.schedule-card:hover{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.22)}
.schedule-icon{display:flex;align-items:center;justify-content:center;min-height:56px}
.schedule-icon img{max-width:44px;max-height:40px;width:auto;height:auto;filter:brightness(1.04)}
.schedule-icon.boxing img{max-width:39px;max-height:36px}
.schedule-content{min-width:0}
.schedule-topline{display:block;font-size:9px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#e2e2e2;margin-bottom:3px}
.schedule-content h3{margin:0;font-size:clamp(22px,1.6vw,28px);text-transform:uppercase;line-height:.96}
.schedule-sub{display:block;margin-top:3px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#d3d3d3}
.schedule-times{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.schedule-times li{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#efefef}
.schedule-times strong{font-weight:800}
.schedule-cta{
  grid-column:1/span 2;
  justify-self:start;
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:10px;
  padding:9px 12px;
  border-radius:11px;
  background:#f4f4f4;
  color:#080808;
  font-size:10px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.schedule-cta span{font-size:16px}

@media (min-width:761px) and (max-height:820px){
  .schedule-shell{width:min(980px,94vw);padding:16px 14px 12px}
  .schedule-head h2{font-size:34px}.schedule-head p{font-size:10px}
  .schedule-grid{gap:8px}.schedule-card{padding:10px}.schedule-content h3{font-size:22px}.schedule-times li{font-size:11px}.schedule-cta{font-size:9px;padding:8px 10px}
}

@media (max-width:760px){
  .review-button{font-size:5.5px;border-radius:4px;border-width:.5px}
  .schedule-modal{padding:8px;align-items:flex-start;overflow:auto}
  .schedule-shell{width:100%;max-height:none;overflow:visible;padding:42px 12px 14px;border-radius:20px}
  .schedule-watermark{left:-10%;top:6%;width:74vw}
  .schedule-head h2{font-size:30px}.schedule-head p{font-size:10px;letter-spacing:.1em;line-height:1.35}
  .schedule-grid{grid-template-columns:1fr;gap:10px}
  .schedule-card{padding:12px;border-radius:18px}
  .schedule-content h3{font-size:24px}.schedule-times li{font-size:12px}
  .schedule-cta{justify-self:stretch;justify-content:center}
}

/* V21 - menu principal atualizado e seções internas */
.top-nav-overlay{
  position:absolute;
  left:25.8%;
  top:0;
  width:40.7%;
  height:10.1%;
  z-index:6;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:2.35vw;
  padding:0 1.2vw;
  background:linear-gradient(180deg,rgba(10,10,10,.98),rgba(10,10,10,.94));
}
.top-nav-overlay button{
  appearance:none;border:0;background:none;color:#fff;cursor:pointer;padding:0;
  font-size:clamp(10px,1vw,16px);font-weight:500;white-space:nowrap;opacity:.95
}
.top-nav-overlay button:hover{opacity:1}

.section-modal{
  position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;
  overflow:auto;color:#fff;background:#070707
}
.section-modal.open{display:flex}
.section-photo::before{
  content:"";position:absolute;inset:0;background-image:var(--section-bg);background-size:cover;background-position:center;filter:brightness(.82) contrast(1.04)
}
.section-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,5,.90) 0%,rgba(5,5,5,.77) 42%,rgba(5,5,5,.48) 72%,rgba(5,5,5,.64) 100%)}
.section-dark{background:radial-gradient(circle at 70% 20%,#1b1b1b 0%,#090909 42%,#050505 100%)}
.section-close{
  position:fixed;top:18px;right:24px;z-index:104;border:0;background:rgba(0,0,0,.46);color:#fff;
  width:48px;height:48px;border-radius:50%;font-size:38px;line-height:1;cursor:pointer
}
.section-content{
  position:relative;z-index:102;width:min(680px,86vw);margin:70px auto 40px;padding:28px 30px;
  background:rgba(4,4,4,.62);border:1px solid rgba(255,255,255,.14);border-radius:24px;backdrop-filter:blur(3px)
}
.section-content-wide{width:min(860px,88vw)}
.section-kicker{display:block;margin-bottom:9px;font-size:11px;font-weight:800;letter-spacing:.24em;color:#c9c9c9}
.section-content h2{margin:0 0 16px;font-size:clamp(30px,4vw,58px);line-height:1.02;letter-spacing:-.035em}
.section-content p{margin:0 0 13px;color:#e4e4e4;font-size:clamp(14px,1.08vw,18px);line-height:1.48}
.section-content strong{color:#fff}
.section-cta{
  display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin-top:10px;padding:0 18px;border-radius:13px;
  background:#fff;color:#0a0a0a;text-decoration:none;font-weight:800;font-size:14px
}
.secondary-cta{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.62)}
.section-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}
.section-columns>div{padding:14px;border-radius:16px;background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.11)}
.section-columns>div>strong{display:block;font-size:18px;margin-bottom:5px}
.section-columns>div p{font-size:13px;margin:0;line-height:1.38}
.contact-content{width:min(560px,86vw);text-align:left}
.contact-actions{display:flex;gap:10px;flex-wrap:wrap}
.app-section-wrap{position:relative;z-index:102;width:min(1060px,92vw);display:grid;grid-template-columns:1.2fr .8fr;gap:34px;align-items:center;margin:40px auto;padding:30px}
.app-section-wrap .section-content{width:auto;margin:0}
.app-device{display:flex;justify-content:center;align-items:center}
.app-device img{width:min(280px,30vw);max-height:74vh;object-fit:contain;border-radius:28px;box-shadow:0 24px 70px rgba(0,0,0,.48);border:2px solid rgba(255,255,255,.22)}

@media (max-width:760px){
  .top-nav-overlay{left:23.5%;width:45%;gap:1.9vw;padding:0 .5vw}
  .top-nav-overlay button{font-size:5.2px}
  .section-modal{align-items:flex-start}
  .section-photo::before{background-position:center}
  .section-overlay{background:linear-gradient(180deg,rgba(5,5,5,.66) 0%,rgba(5,5,5,.86) 44%,rgba(5,5,5,.96) 100%)}
  .section-close{top:10px;right:10px;width:42px;height:42px;font-size:32px}
  .section-content,.section-content-wide{width:calc(100% - 24px);margin:62px 12px 22px;padding:20px 18px;border-radius:20px}
  .section-content h2{font-size:30px}
  .section-content p{font-size:14px;line-height:1.42}
  .section-columns{grid-template-columns:1fr;gap:9px}
  .section-columns>div{padding:12px}.section-columns>div p{font-size:13px}
  .app-section-wrap{grid-template-columns:1fr;width:100%;gap:18px;margin:0;padding:62px 12px 24px}
  .app-section-wrap .section-content{width:100%;margin:0;padding:20px 18px}
  .app-device img{width:min(210px,54vw);max-height:none}
}


/* V22 - ajustes solicitados */
#section-sobre::before{
  background-position:center top;
}
#section-metodo::before{
  filter:brightness(.96) contrast(1.03);
}
#section-metodo .section-overlay{
  background:linear-gradient(90deg,rgba(5,5,5,.78) 0%,rgba(5,5,5,.62) 42%,rgba(5,5,5,.34) 72%,rgba(5,5,5,.50) 100%);
}
#section-app .app-section-wrap{
  grid-template-columns:.92fr 1.08fr;
}
#section-app .app-device img{
  width:min(620px,48vw);
  max-height:76vh;
  object-fit:contain;
  border-radius:24px;
}
@media (max-width:760px){
  #section-sobre::before{background-position:center top}
  #section-metodo::before{background-position:center}
  #section-app .app-device img{width:100%;max-width:680px;max-height:none}
}


/* V23 - padronização das telas internas, sem barra lateral visível */
.section-modal{
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.section-modal::-webkit-scrollbar{width:0;height:0;display:none}

/* Todas as fotos de fundo ficam evidentes como a tela Método */
.section-photo::before{
  filter:brightness(.96) contrast(1.03);
}
.section-photo .section-overlay{
  background:linear-gradient(90deg,rgba(5,5,5,.78) 0%,rgba(5,5,5,.62) 42%,rgba(5,5,5,.34) 72%,rgba(5,5,5,.50) 100%);
}

/* Sobre: mantém a parte superior da fachada/logo em evidência */
#section-sobre::before{background-position:center top}

/* App: imagem da mão/celular vira fundo, inteira na altura e sem competir com o texto */
#section-app::before{
  background-position:right center;
  background-size:cover;
  filter:brightness(.94) contrast(1.03);
}
#section-app .section-overlay{
  background:linear-gradient(90deg,rgba(5,5,5,.90) 0%,rgba(5,5,5,.78) 34%,rgba(5,5,5,.34) 59%,rgba(5,5,5,.18) 100%);
}
#section-app .app-copy{
  width:min(650px,44vw);
  margin:0 auto 0 7vw;
  padding:28px 30px;
}
#section-app{
  align-items:center;
  justify-content:flex-start;
}

/* Evita corte no topo das telas internas em computadores de menor altura */
@media (min-width:761px){
  .section-content{
    max-height:calc(100vh - 86px);
    overflow:auto;
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  .section-content::-webkit-scrollbar{display:none}
  #section-app .section-content{max-height:none;overflow:visible}
}

@media (max-width:760px){
  .section-photo::before{filter:brightness(.92) contrast(1.03)}
  .section-photo .section-overlay{
    background:linear-gradient(180deg,rgba(5,5,5,.48) 0%,rgba(5,5,5,.66) 34%,rgba(5,5,5,.88) 70%,rgba(5,5,5,.95) 100%);
  }
  #section-app::before{
    background-position:68% center;
  }
  #section-app .section-overlay{
    background:linear-gradient(180deg,rgba(5,5,5,.38) 0%,rgba(5,5,5,.64) 40%,rgba(5,5,5,.91) 72%,rgba(5,5,5,.96) 100%);
  }
  #section-app .app-copy{
    width:calc(100% - 24px);
    margin:46vh 12px 22px;
    padding:20px 18px;
  }
}


/* V24 - somente versão celular: mantém o layout anterior e atualiza imagens/conteúdo */
.app-mobile-image{display:none}

@media (max-width:760px){
  /* preserva a navegação e o comportamento mobile anterior */
  .section-modal{
    align-items:flex-start;
    overflow-y:auto;
    overflow-x:hidden;
  }
  .section-photo::before{
    background-position:center;
    filter:brightness(.92) contrast(1.03);
  }
  .section-photo .section-overlay{
    background:linear-gradient(180deg,rgba(5,5,5,.48) 0%,rgba(5,5,5,.66) 34%,rgba(5,5,5,.88) 70%,rgba(5,5,5,.95) 100%);
  }
  .section-content,.section-content-wide{
    width:calc(100% - 24px);
    margin:62px 12px 22px;
    padding:20px 18px;
    border-radius:20px;
  }
  .section-content h2{font-size:30px}
  .section-content p{font-size:14px;line-height:1.42}
  .section-columns{grid-template-columns:1fr;gap:9px}
  .section-columns>div{padding:12px}
  .section-columns>div p{font-size:13px}

  /* App mobile volta ao padrão anterior: imagem separada e texto abaixo */
  #section-app{
    display:none;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    background:#070707;
  }
  #section-app.open{display:flex}
  #section-app::before{display:none}
  #section-app .section-overlay{display:none}
  #section-app .app-mobile-image{
    display:block;
    width:100%;
    margin:0;
    padding:0;
    background:#050505;
  }
  #section-app .app-mobile-image img{
    display:block;
    width:100%;
    height:auto;
    max-height:none;
    object-fit:cover;
    object-position:center;
  }
  #section-app .app-copy{
    width:calc(100% - 24px);
    margin:14px 12px 22px;
    padding:20px 18px;
    background:rgba(8,8,8,.96);
    border:1px solid rgba(255,255,255,.13);
    border-radius:20px;
  }

  /* Sobre mantém a fachada enquadrada para evidenciar o letreiro */
  #section-sobre::before{background-position:center top}
}


/* V25 - SOMENTE versão celular. Desktop permanece igual à V24/V23. */
.mobile-home{display:none}

@media (max-width:760px){
  .stage{display:none !important}
  body{background:#050505;overflow-x:hidden}
  .mobile-home{display:block;min-height:100dvh;background:#050505;color:#fff}
  .mobile-topbar{position:fixed;top:0;left:0;right:0;height:58px;z-index:60;display:flex;align-items:center;justify-content:flex-end;padding:8px 16px;background:rgba(5,5,5,.92);border-bottom:1px solid rgba(255,255,255,.07);backdrop-filter:blur(8px)}
  .mobile-topbar img{display:none}
  .mobile-menu-button{border:0;background:none;color:#fff;font-size:30px;line-height:1;padding:0 2px;cursor:pointer}
  .mobile-menu-panel{position:fixed;inset:0;z-index:150;background:rgba(0,0,0,.86);backdrop-filter:blur(7px);display:none}
  .mobile-menu-panel.open{display:block}
  .mobile-menu-panel nav{position:absolute;top:0;right:0;width:min(84vw,340px);height:100%;padding:82px 26px 28px;display:flex;flex-direction:column;gap:20px;background:#080808;border-left:1px solid rgba(255,255,255,.09)}
  .mobile-menu-panel nav button{border:0;background:none;color:#fff;text-align:left;padding:0;font-size:21px;font-weight:700;cursor:pointer}
  .mobile-menu-close{position:absolute;top:14px;right:18px;z-index:2;border:0;background:none;color:#fff;font-size:38px;line-height:1;cursor:pointer}
  .mobile-hero{position:relative;min-height:100dvh;padding-top:58px;background:url('assets/academia.png') 62% 10%/cover no-repeat}
  .mobile-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,5,5,.86) 0%,rgba(5,5,5,.72) 24%,rgba(5,5,5,.84) 55%,rgba(5,5,5,.985) 100%)}
  .mobile-hero-content{position:relative;z-index:2;padding:22px 16px 30px;text-align:center}
  .mobile-main-logo{display:block;width:min(70vw,300px);height:auto;margin:4px auto 10px;filter:drop-shadow(0 12px 32px rgba(0,0,0,.5))}
  .mobile-lead{margin:0 0 8px;font-size:clamp(17px,5.2vw,22px);line-height:1.25;text-shadow:0 2px 12px rgba(0,0,0,.72)}
  .mobile-lead span{display:inline-block;margin-top:4px;font-size:.87em;font-weight:500;color:#e5e5e5}
  .mobile-support{margin:0 auto 14px;max-width:520px;font-size:clamp(13px,3.8vw,15px);line-height:1.38;color:#eee;text-shadow:0 2px 10px rgba(0,0,0,.72)}
  .mobile-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:560px;margin:0 auto}
  .mobile-actions a{min-height:50px;display:flex;align-items:center;justify-content:center;padding:10px 12px;border-radius:14px;text-decoration:none;font-weight:800;font-size:14px}
  .mobile-primary{grid-column:1 / -1;background:#f5f5f5;color:#090909}
  .mobile-secondary{color:#fff;border:1px solid rgba(255,255,255,.48);background:rgba(5,5,5,.42)}
  .mobile-location{margin:11px 0 0;font-size:12px;font-weight:700;color:#ededed}
  .mobile-phone-wrap{display:flex;justify-content:center;margin:18px 0 14px}
  .mobile-phone-frame{width:min(54vw,220px);aspect-ratio:.515;background:#060606;border:3px solid #777;border-radius:34px;padding:7px;box-shadow:0 24px 60px rgba(0,0,0,.52)}
  .mobile-phone-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;border-radius:25px}
  .mobile-info-stack{display:grid;gap:12px;max-width:560px;margin:0 auto}
  .mobile-info-card{appearance:none;width:100%;text-align:left;color:#fff;border:1px solid rgba(255,255,255,.16);border-radius:20px;background:rgba(4,4,4,.64);padding:16px;backdrop-filter:blur(3px)}
  .mobile-info-card>span{display:block;margin-bottom:6px;font-size:10px;font-weight:800;letter-spacing:.19em;color:#bdbdbd}
  .mobile-info-card>strong{display:block;font-size:20px;margin-bottom:7px}
  .mobile-info-card p{margin:0;font-size:13px;line-height:1.38;color:#e0e0e0}

  /* Modais internos continuam acima da nova home mobile */
  .section-modal,.schedule-modal{z-index:300}
}
