/* Ajustes solicitados: cabeçalho claro e refinamentos da versão mobile. */
.topbar {
  background: #f8fbfc !important;
  border-bottom-color: #dce8ed !important;
  box-shadow: 0 8px 22px rgba(8, 42, 61, .08);
}

.topbar .brand,
.topbar nav > a {
  color: #075b92 !important;
}

.topbar nav > a:hover { color: #168fc8 !important; }

.topbar.is-scrolled {
  background: rgba(255, 255, 255, .84) !important;
  border-bottom-color: rgba(180, 211, 222, .72) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.15) !important;
  backdrop-filter: blur(16px) saturate(1.15) !important;
  box-shadow: 0 10px 30px rgba(8, 42, 61, .12) !important;
}

@media (max-width: 700px) {
  .topbar { background: #fff !important; }
  .mobile-menu summary { border-color: #0b6fa8 !important; }
  .mobile-menu summary i { background: #0b6fa8 !important; }
  .mobile-menu > div { background: #0876ae !important; border-color: #0876ae !important; }
  .mobile-menu a { color: #fff !important; border-bottom-color: rgba(255, 255, 255, .28) !important; }
  .mobile-menu a:hover, .mobile-menu a:focus-visible { background: #fff !important; color: #0876ae !important; }
  .modes .mode-card { height: 272px !important; min-height: 272px !important; aspect-ratio: auto !important; }
  .modes .mode-card h3 { font-size: 24px !important; }
}

.testimonial-grid {
  display: flex !important;
  overflow-x: auto !important;
  gap: 16px !important;
  padding: 4px 4px 18px !important;
  scroll-snap-type: x mandatory;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  cursor: grab;
}

.testimonial-grid:active { cursor: grabbing; }
.testimonial-grid::-webkit-scrollbar { display: none; }

.testimonial-grid.is-dragging {
  cursor: grabbing;
  scroll-snap-type: none;
  user-select: none;
}

.testimonial-grid article {
  flex: 0 0 calc((100% - 32px) / 3) !important;
  scroll-snap-align: start;
}

/* User-provided hero artwork: landscape crop on desktop, portrait crop on mobile. */
.hero-art {
  background-image: url('./hero-desktop.png') !important;
  background-position: 68% center !important;
  filter: saturate(.88) contrast(1.08) !important;
}
.hero:after {
  background: linear-gradient(90deg, rgba(7,9,7,.98) 0%, rgba(7,9,7,.88) 30%, rgba(7,9,7,.38) 64%, rgba(7,9,7,.18) 100%), linear-gradient(0deg, rgba(7,9,7,.72) 0%, transparent 46%, rgba(7,9,7,.18) 100%) !important;
}
@media (max-width: 700px) {
  .hero-art {
    background-image: url('./hero-mobile.png') !important;
    background-position: 58% center !important;
  }
  .hero:after {
    background: linear-gradient(90deg, rgba(7,9,7,.92) 0%, rgba(7,9,7,.62) 55%, rgba(7,9,7,.28) 100%), linear-gradient(0deg, rgba(7,9,7,.78) 0%, transparent 55%, rgba(7,9,7,.22) 100%) !important;
  }
}

@media (max-width: 900px) {
  .testimonial-grid article { flex-basis: min(86%, 420px) !important; }
}

@media (min-width: 701px) {
  .modes .mode-grid { gap: 36px !important; }
  .modes .mode-card { min-height: 450px !important; }
  .modes > .button,
  .modes .button { min-height: 42px !important; padding: 0 18px !important; font-size: 10px !important; }
}

/* Header claro em efeito vidro, em todas as telas. */
.topbar {
  background: rgba(255, 255, 255, .86) !important;
  border-bottom: 1px solid rgba(8, 45, 54, .14) !important;
  box-shadow: 0 10px 30px rgba(7, 35, 42, .08) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.5) !important;
  backdrop-filter: blur(18px) saturate(1.5) !important;
}
.topbar .brand,
.topbar .brand small,
.topbar nav > a { color: #0b4a5a !important; }
.topbar nav > a:hover { color: #0ca6ba !important; }
.topbar .header-trial { background: #0ca6ba !important; color: #fff !important; }
.topbar .mobile-menu summary { color: #0b4a5a !important; }
@media (max-width: 700px) {
  .topbar { background: rgba(255, 255, 255, .9) !important; }
}

/* Hero mais claro, com contraste preservado pelo degradê turquesa. */
.hero-art {
  filter: saturate(1.02) contrast(1.02) brightness(1.12) !important;
}
.hero:after {
  background: linear-gradient(90deg, rgba(4, 53, 66, .72) 0%, rgba(4, 68, 79, .52) 36%, rgba(5, 104, 111, .20) 64%, rgba(5, 104, 111, .08) 100%), linear-gradient(0deg, rgba(3, 58, 68, .20) 0%, transparent 46%) !important;
}

/* Botão de modalidades mais compacto, sem alterar a seção. */
.modes .modes-cta {
  width: fit-content !important;
  min-height: 50px !important;
  margin: 38px auto 0 !important;
  padding: 0 28px !important;
}

/* Leve aumento de destaque para o título dos depoimentos. */
.testimonials #testimonials-title {
  font-size: clamp(2.9rem, 4.7vw, 4.8rem) !important;
}

/* Carrossel de depoimentos: três cards no desktop, setas e fade nas laterais. */
.testimonials { overflow: hidden !important; }
.testimonial-carousel {
  position: relative;
  max-width: 1320px;
  margin: 34px auto 0;
  padding: 0 58px;
}
.testimonial-grid {
  overflow: hidden !important;
  gap: 16px !important;
  padding: 4px 0 14px !important;
  scroll-behavior: smooth;
  cursor: default !important;
  -ms-overflow-style: none;
}
.testimonial-grid::-webkit-scrollbar { display: none !important; }
.testimonial-grid article {
  flex: 0 0 calc((100% - 32px) / 3) !important;
  scroll-snap-align: none !important;
}
.testimonial-carousel::before,
.testimonial-carousel::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 74px;
  z-index: 2;
  pointer-events: none;
}
.testimonial-carousel::before {
  left: 0;
  background: linear-gradient(90deg, #eef7f8 12%, rgba(238, 247, 248, 0));
}
.testimonial-carousel::after {
  right: 0;
  background: linear-gradient(270deg, #eef7f8 12%, rgba(238, 247, 248, 0));
}
.testimonial-carousel-control {
  position: absolute;
  top: 50%;
  z-index: 3;
  width: 42px;
  height: 42px;
  border: 1px solid #0d7886;
  border-radius: 50%;
  background: #eef7f8;
  color: #0b6876;
  cursor: pointer;
  font: 400 30px/34px Arial, sans-serif;
  transform: translateY(-50%);
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.testimonial-carousel-control:hover,
.testimonial-carousel-control:focus-visible {
  background: #0d93a3;
  color: #fff;
  transform: translateY(-50%) scale(1.06);
}
.testimonial-carousel-control.prev { left: 7px; }
.testimonial-carousel-control.next { right: 7px; }

@media (max-width: 700px) {
  .hero {
    min-height: 980px !important;
    align-items: flex-start !important;
    padding: 126px 24px 0 !important;
  }
  .hero-art {
    background-size: auto 74% !important;
    background-position: center bottom !important;
    background-repeat: no-repeat !important;
    background-color: #0a6675 !important;
  }
  .hero:after {
    background: linear-gradient(180deg, rgba(3, 74, 85, .76) 0%, rgba(4, 99, 109, .53) 34%, rgba(4, 99, 109, .14) 57%, rgba(4, 99, 109, .03) 100%) !important;
  }
  .modes .modes-cta { width: fit-content !important; padding: 0 22px !important; }
  .testimonials #testimonials-title { font-size: clamp(2.45rem, 11vw, 3.25rem) !important; }
  .testimonial-carousel { padding: 0 42px; }
  .testimonial-carousel::before,
  .testimonial-carousel::after { width: 54px; }
  .testimonial-carousel-control { width: 36px; height: 36px; font-size: 25px; line-height: 29px; }
  .testimonial-carousel-control.prev { left: 0; }
  .testimonial-carousel-control.next { right: 0; }
  .testimonial-grid article { flex-basis: 100% !important; }
}

/* Faixa institucional logo após a hero. */
.institutional-strip {
  background: #fff;
  border-top: 1px solid rgba(10, 85, 98, .10);
  padding: 46px 24px;
}
.institutional-strip-inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 1160px;
  margin: 0 auto;
}
.institutional-item {
  display: grid;
  grid-template-columns: 28px 1fr;
  column-gap: 16px;
  align-items: start;
  min-height: 78px;
  padding: 4px 42px;
}
.institutional-item + .institutional-item { border-left: 1px solid rgba(10, 85, 98, .13); }
.institutional-icon {
  width: 27px;
  height: 27px;
  color: #0d94a4;
  stroke: currentColor;
  stroke-width: 1.75;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.institutional-item h3 {
  margin: 0 0 7px;
  color: #153f49;
  font-size: 1.08rem;
  font-weight: 650;
  line-height: 1.18;
}
.institutional-item p {
  grid-column: 2;
  margin: 0;
  color: #55737a;
  font-size: .88rem;
  line-height: 1.55;
}
@media (max-width: 760px) {
  .institutional-strip { padding: 34px 24px; }
  .institutional-strip-inner { grid-template-columns: 1fr; gap: 0; }
  .institutional-item { padding: 22px 4px; }
  .institutional-item + .institutional-item {
    border-top: 1px solid rgba(10, 85, 98, .12);
    border-left: 0;
  }
  .institutional-item h3 { font-size: 1.06rem; }
  .institutional-item p { font-size: .92rem; }
}

/* Composição exclusiva da hero no mobile: texto acima, pessoas inteiras abaixo. */
@media (max-width: 700px) {
  .hero {
    min-height: max(100svh, 860px) !important;
    height: auto !important;
    align-items: flex-start !important;
    padding: 112px 24px 0 !important;
  }
  .hero-art {
    background-size: 100% auto !important;
    background-position: center bottom !important;
    background-color: #0b6b78 !important;
  }
  .hero:after {
    background: linear-gradient(90deg, rgba(3, 59, 71, .86) 0%, rgba(4, 86, 96, .64) 43%, rgba(5, 108, 116, .20) 67%, rgba(5, 108, 116, 0) 100%), linear-gradient(180deg, rgba(3, 59, 71, .20) 0%, transparent 48%) !important;
  }
  .hero-copy {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }
  .hero-copy .eyebrow { margin: 0 0 14px !important; }
  .hero-copy h1 { margin: 0 0 16px !important; }
  .hero-copy .hero-lead {
    max-width: 34rem;
    margin: 0 0 22px !important;
  }
  .hero-copy .hero-actions {
    gap: 12px !important;
    margin: 0 !important;
  }
}

/* Planos: cartões premium com hierarquia visual inspirada na referência. */
.plans {
  background: linear-gradient(135deg, #f8fdfe 0%, #eefafb 100%) !important;
}
.plans .plan-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 22px !important;
  max-width: 1140px !important;
  margin: 42px auto 0 !important;
}
.plans .plan-grid > article {
  display: flex !important;
  flex-direction: column;
  min-height: 650px;
  padding: 34px 38px 30px !important;
  background: rgba(255, 255, 255, .94) !important;
  border: 1px solid #d9edf1 !important;
  border-radius: 24px !important;
  box-shadow: 0 16px 38px rgba(15, 119, 134, .08) !important;
}
.plans .plan-grid > article:first-child {
  border-top: 9px solid #0796ae !important;
  padding-top: 27px !important;
  box-shadow: 0 19px 42px rgba(10, 164, 183, .16) !important;
}
.plans .plan-badge {
  align-self: flex-start;
  margin: 0 0 20px !important;
  padding: 9px 18px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg, #d6f3fa, #b8eafb) !important;
  color: #087ea2 !important;
  font-size: .8rem !important;
  font-weight: 800 !important;
  letter-spacing: .01em !important;
  text-transform: uppercase;
}
.plans .plan-badge.outline { background: #eaf4f7 !important; color: #49667c !important; }
.plans .plan-grid h3 {
  min-height: 86px;
  margin: 0 0 20px !important;
  color: #060b19 !important;
  font-size: clamp(2.25rem, 3.5vw, 3.25rem) !important;
  font-weight: 800 !important;
  line-height: .98 !important;
  letter-spacing: -.045em !important;
}
.plans .price {
  display: flex !important;
  align-items: baseline;
  gap: 7px;
  margin: 2px 0 4px !important;
  color: #050a18 !important;
}
.plans .price small { font-size: 1.15rem !important; font-weight: 800 !important; }
.plans .price strong { font-size: clamp(4.7rem, 8vw, 6.25rem) !important; font-weight: 850 !important; letter-spacing: -.075em !important; line-height: .8 !important; }
.plans .price sup { top: auto !important; font-size: 2rem !important; font-weight: 800 !important; }
.plans .price::after { content: './mês'; color: #58718a; font-size: 1.05rem; font-weight: 600; }
.plans .plan-installment { display: none !important; }
.plans .plan-helper {
  display: flex;
  align-items: center;
  min-height: 56px;
  margin: 26px 0 18px !important;
  padding: 0 18px !important;
  border-radius: 15px;
  background: #edf7f9 !important;
  color: #54708b !important;
  font-size: 1rem !important;
  font-weight: 650 !important;
}
.plans .plan-helper::before { content: '▭'; margin-right: 13px; color: #0796ae; font-size: 30px; line-height: 1; }
.plans .plan-grid > article > .button.primary {
  justify-content: center;
  width: 100%;
  min-height: 60px !important;
  margin: 0 0 24px !important;
  border-radius: 999px !important;
  background: linear-gradient(100deg, #078ca9, #05a9c0) !important;
  color: #fff !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
}
.plans .plan-grid > article:nth-child(2) > .button.primary {
  border: 2px solid #0796ae !important;
  background: #fff !important;
  color: #078ca9 !important;
}
.plans .plan-grid ul {
  position: relative;
  flex: 1;
  margin: 0 !important;
  padding: 58px 0 22px !important;
  border-top: 1px solid #d7e9ed !important;
  list-style: none !important;
}
.plans .plan-grid ul::before {
  content: 'O que você terá acesso';
  position: absolute;
  top: 20px;
  left: 0;
  color: #0a1020;
  font-size: 1.18rem;
  font-weight: 800;
}
.plans .plan-grid li {
  position: relative;
  margin: 0 0 10px !important;
  padding-left: 30px !important;
  color: #48627c !important;
  font-size: .98rem !important;
  line-height: 1.35 !important;
}
.plans .plan-grid li::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 0;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #079eb8;
  color: #fff;
  font-size: .78rem;
  font-weight: 900;
}
.plans .plan-details {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: auto !important;
  padding-top: 20px !important;
  border-top: 1px solid #d7e9ed !important;
}
.plans .plan-details > div { padding: 0 12px !important; }
.plans .plan-details > div + div { border-left: 1px solid #d7e9ed; }
.plans .plan-details small { display: block; color: #637b91; font-size: .8rem !important; }
.plans .plan-details b { display: block; margin-top: 3px; color: #142037; font-size: 1rem !important; }
.plans .plan-more { display: none !important; }
@media (max-width: 760px) {
  .plans .plan-grid { grid-template-columns: 1fr !important; gap: 18px !important; }
  .plans .plan-grid > article { min-height: auto; padding: 30px 24px !important; }
  .plans .plan-grid > article:first-child { padding-top: 23px !important; }
  .plans .plan-grid h3 { min-height: auto; font-size: 2.4rem !important; }
  .plans .price strong { font-size: 5.15rem !important; }
}

/* Faixa de diferenciais logo abaixo da hero, seguindo a referência. */
.institutional-strip { order: 2; padding: 32px 24px !important; }
.institutional-strip-inner {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  max-width: 1440px !important;
}
.institutional-item {
  display: grid !important;
  grid-template-columns: 78px 1fr !important;
  column-gap: 18px !important;
  min-height: 96px !important;
  padding: 0 30px !important;
}
.institutional-item + .institutional-item { border-left-color: #cfe6eb !important; }
.institutional-icon {
  width: 68px !important;
  height: 68px !important;
  padding: 17px;
  border-radius: 50%;
  background: #e9f8fb;
  color: #069bb7;
  stroke-width: 1.7;
}
.institutional-item h3 {
  align-self: end;
  margin: 0 0 5px !important;
  color: #0b4250 !important;
  font-size: 1.03rem !important;
  font-weight: 800 !important;
}
.institutional-item p {
  grid-column: 2;
  color: #48717d !important;
  font-size: .88rem !important;
  line-height: 1.46 !important;
}
@media (max-width: 960px) {
  .institutional-strip-inner { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .institutional-item:nth-child(3) { border-left: 0 !important; }
  .institutional-item:nth-child(n + 3) { padding-top: 24px !important; margin-top: 24px; border-top: 1px solid #cfe6eb; }
}
@media (max-width: 560px) {
  .institutional-strip { padding: 28px 24px !important; }
  .institutional-strip-inner { grid-template-columns: 1fr !important; }
  .institutional-item { padding: 18px 0 !important; }
  .institutional-item + .institutional-item { border-left: 0 !important; border-top: 1px solid #cfe6eb; }
  .institutional-item:nth-child(n + 3) { margin-top: 0; padding-top: 18px !important; }
}

/* Estrutura: composição limpa de carrossel e conteúdo. */
.structure { display:grid !important; grid-template-columns:minmax(0,1fr) minmax(0,.9fr) !important; gap:clamp(60px,8vw,130px) !important; align-items:start !important; background:#fff !important; }
.structure-carousel { position:relative; height:560px; overflow:hidden; border-radius:22px; }
.structure-slide { position:absolute; inset:0; opacity:0; background:center/cover no-repeat; transition:opacity .45s ease; }
.structure-slide.active { opacity:1; }
.structure-slide:after { content:none; }
.structure-caption { position:absolute; inset:auto 24px 24px; z-index:1; display:block; color:#fff; text-align:left; text-shadow:0 2px 12px rgba(0,0,0,.58); }
.structure-caption b { display:block; font-size:18px; font-weight:600; line-height:1.25; }
.structure-arrow { position:absolute; z-index:2; top:50%; width:46px; height:46px; border:0; border-radius:50%; background:#fff; color:#0a4352; font-size:34px; line-height:1; transform:translateY(-50%); cursor:pointer; }.structure-arrow.prev{left:-18px}.structure-arrow.next{right:-18px}
.structure-copy { padding:0 !important; }.structure .eyebrow{margin:0 0 28px !important}.structure-copy h2{margin:0 0 28px !important}.structure-story p{margin:0 !important; color:#58727b!important; line-height:1.55!important}.structure-features{display:grid;grid-template-columns:1fr 1fr;gap:28px 36px;margin:36px 0!important}.structure-features>div{display:grid;grid-template-columns:28px 1fr;gap:14px;align-items:start}.structure-features i{color:#079db8;font-size:22px;font-style:normal;line-height:1}.structure-features p{margin:0!important;display:grid;gap:5px}.structure-features b{color:#102d39;font-size:.98rem}.structure-features span{color:#5d7780;font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.structure .structure-cta{margin:0!important;padding:0 26px!important;min-height:50px!important}.structure .structure-cta:after{content:none!important}
@media(max-width:800px){.structure{grid-template-columns:1fr!important;gap:38px!important}.structure-carousel{height:420px}.structure-arrow.prev{left:12px}.structure-arrow.next{right:12px}.structure-features{gap:22px}.structure-features span{white-space:normal}.structure-copy{width:100%!important}}

/* Padrão tipográfico: títulos mais marcantes e contraste da marca. */
.hero h1,
section h2 {
  color: #081f2d !important;
  font-weight: 800 !important;
}
.hero h1 em,
section h2 em {
  color: #079db8 !important;
  font-style: normal !important;
  font-weight: 800 !important;
}
.eyebrow {
  margin: 0 0 12px !important;
  color: #078da7 !important;
  font-family: Montserrat, Arial, sans-serif !important;
  font-weight: 800 !important;
  letter-spacing: .11em !important;
}
.eyebrow::after {
  content: none !important;
  display: none !important;
}
.modes .section-head h2 {
  font-size: clamp(2.65rem, 5vw, 4.75rem) !important;
}

/* Ajustes de leitura e hierarquia da segunda seção. */
.structure-copy h2 {
  font-size: clamp(2rem, 3.4vw, 3.45rem) !important;
}
h1, h2, h3 {
  font-weight: 600 !important;
}
.hero h1 {
  color: #fff !important;
}
.hero h1 em {
  color: #16bdd5 !important;
}
@media (max-width: 800px) {
  .structure-copy { order: 1; }
  .structure-carousel { order: 2; }
}

/* Rodapé Clube R5 Sports. */
.site-footer {
  position: relative;
  overflow: hidden;
  padding: clamp(68px, 8vw, 130px) clamp(24px, 6vw, 96px) 28px !important;
  color: #effcff !important;
  background: radial-gradient(circle at 45% 30%, #08758a 0%, #003f4d 42%, #002d39 100%) !important;
}
.footer-watermark {
  position: absolute;
  z-index: 0;
  top: -58px;
  right: -35px;
  color: transparent;
  font-family: Montserrat, Arial, sans-serif;
  font-size: clamp(17rem, 31vw, 35rem);
  font-weight: 800;
  line-height: .8;
  letter-spacing: -.13em;
  -webkit-text-stroke: 1px rgba(91, 218, 233, .08);
  background: linear-gradient(135deg, rgba(26, 184, 207, .11), rgba(0, 17, 28, .04));
  -webkit-background-clip: text;
  background-clip: text;
  pointer-events: none;
}
.site-footer a { color: inherit !important; text-decoration: none !important; }
.footer-main { position: relative; z-index: 1; display: grid; grid-template-columns: 1.45fr .8fr 1.25fr .9fr; gap: clamp(36px, 5vw, 86px); max-width: 1540px; margin: 0 auto; }
.footer-brand .box-brand { display: inline-flex; align-items: center; gap: 17px; color: #fff !important; }
.footer-brand .box-brand img { width: 94px; height: auto; filter: brightness(0) invert(1); }
.footer-brand .box-brand span { font-size: 1.4rem; font-weight: 800; letter-spacing: .05em; }.footer-brand .box-brand small { display:block; margin-top:6px; font-size:.74rem; letter-spacing:.33em; }
.footer-brand p { max-width: 285px; margin: 30px 0 0 !important; color: #c4e6ec !important; font-size: 1.06rem; line-height: 1.65; }
.footer-column h3 { margin: 0 0 28px !important; color: #fff !important; font-size: 1.26rem !important; font-weight: 600 !important; }
.footer-column h3::after { content:''; display:block; width:49px; height:3px; margin-top:25px; background:#13c8dc; }
.footer-nav { display:grid; gap:15px; }.footer-nav a { color:#d8edf1!important; font-size:1rem; transition:color .2s ease; }.footer-nav a:hover { color:#16d5e9!important; }
.footer-contact { display:grid; gap:18px; }.footer-contact a { display:grid; grid-template-columns:52px 1fr; gap:15px; align-items:center; color:#d8edf1!important; line-height:1.55; }
.footer-contact .contact-icon { display:grid; place-items:center; width:52px; height:52px; border-radius:50%; background:linear-gradient(145deg,#0faac0,#00667a); color:#fff; font-size:1.35rem; }.footer-contact span:last-child { display:block; }
.footer-social { display:flex; gap:14px; }.footer-social a { display:grid; place-items:center; width:60px; height:60px; border:1px solid rgba(225,250,255,.58); border-radius:13px; font-size:1.65rem; font-weight:600; transition:background .2s ease, transform .2s ease; }.footer-social a:hover { background:rgba(15,193,216,.2); transform:translateY(-3px); }
.footer-bottom { position:relative; z-index:1; display:flex; justify-content:space-between; gap:22px; max-width:1540px; margin:clamp(52px,7vw,96px) auto 0; padding-top:26px; border-top:1px solid rgba(205,244,250,.44); color:#c6e5eb; font-size:.92rem; }.footer-legal { display:flex; gap:23px; }
@media(max-width:900px){.footer-main{grid-template-columns:1.25fr 1fr;gap:46px}.footer-social-column{grid-column:2}.footer-bottom{flex-direction:column}.footer-watermark{right:-75px}}
@media(max-width:580px){.site-footer{padding:58px 24px 26px!important}.footer-main{grid-template-columns:1fr;gap:42px}.footer-social-column{grid-column:auto}.footer-brand .box-brand img{width:80px}.footer-brand p{margin-top:22px!important}.footer-bottom{margin-top:48px;font-size:.82rem}.footer-legal{gap:16px;flex-wrap:wrap}.footer-watermark{top:18px;right:-25px;font-size:16rem}.footer-social a{width:52px;height:52px}}

/* Checkout: cartões estáveis em todas as larguras. */
.plans .plan-grid,
.plans .plan-grid > article { min-width: 0 !important; }
.plans .plan-grid > article { overflow: hidden; }
.plans .plan-grid h3 { min-height: 102px; line-height: 1.04 !important; overflow-wrap: anywhere; }
.plans .price { min-width: 0; white-space: nowrap; gap: 6px; }
.plans .price small,
.plans .price sup { font-weight: 600 !important; }
.plans .price strong { font-weight: 600 !important; letter-spacing: -.06em !important; }
.plans .plan-helper { min-width: 0; overflow-wrap: anywhere; }
.plans .plan-grid > article > .button.primary { flex-shrink: 0; }
@media (max-width: 760px) {
  .plans .plan-grid h3 { min-height: 0; font-size: 2.2rem !important; }
  .plans .price strong { font-size: 4.65rem !important; }
}

/* Planos: hierarquia limpa, comparável e sem elementos concorrentes. */
.plans .plan-grid { align-items: stretch !important; gap: 28px !important; }
.plans .plan-grid > .plan-card {
  min-height: 610px !important;
  padding: 36px 38px 30px !important;
  border: 1px solid #d8e7eb !important;
  border-top: 1px solid #d8e7eb !important;
  border-radius: 22px !important;
  box-shadow: 0 13px 34px rgba(4, 52, 64, .07) !important;
}
.plans .plan-grid > .plan-card:first-child { padding-top: 36px !important; box-shadow: 0 13px 34px rgba(4, 52, 64, .07) !important; }
.plans .plan-card .plan-badge { margin-bottom: 23px !important; padding: 7px 14px !important; font-size: .73rem !important; }
.plans .plan-card h3 { min-height: 82px !important; margin: 0 0 22px !important; font-size: clamp(2rem, 3.2vw, 2.8rem) !important; font-weight: 600 !important; line-height: 1.03 !important; }
.plans .plan-price { display:flex; align-items:baseline; min-width:0; margin:0; color:#101821; white-space:nowrap; }
.plans .plan-price small { margin-right:8px; font-size:1.15rem; font-weight:600; }
.plans .plan-price strong { font-size:clamp(4.5rem, 7vw, 5.7rem); font-weight:600; line-height:.82; letter-spacing:-.065em; }
.plans .plan-price sup { margin-left:3px; font-size:1.8rem; font-weight:600; }
.plans .plan-price span { margin-left:8px; color:#617581; font-size:1rem; font-weight:500; }
.plans .plan-payment { min-height:24px; margin:13px 0 28px !important; color:#617581 !important; font-size:.95rem !important; font-weight:500 !important; }
.plans .plan-card > .button.primary { min-height:56px !important; margin:0 0 30px !important; border-radius:999px !important; font-size:.96rem !important; font-weight:600 !important; }
.plans .plan-card:nth-child(2) > .button.primary { border:1px solid #078ca9 !important; }
.plans .plan-benefits { flex:1; display:grid; align-content:start; gap:13px; margin:0 !important; padding:0 !important; border:0 !important; list-style:none !important; }
.plans .plan-benefits::before { content:none !important; }
.plans .plan-benefits li { margin:0 !important; padding:0 0 0 24px !important; color:#425d68 !important; font-size:.94rem !important; line-height:1.35 !important; }
.plans .plan-benefits li::before { top:.11em !important; width:15px !important; height:15px !important; background:transparent !important; color:#0796ae !important; font-size:.95rem !important; font-weight:600 !important; }
.plans .plan-meta { display:grid; grid-template-columns:1fr 1fr; gap:0; margin-top:28px; padding-top:21px; border-top:1px solid #d8e7eb; }
.plans .plan-meta > div { padding:0 16px; }.plans .plan-meta > div:first-child { padding-left:0; }.plans .plan-meta > div + div { border-left:1px solid #d8e7eb; }
.plans .plan-meta small { display:block; color:#71858d; font-size:.76rem; }.plans .plan-meta b { display:block; margin-top:4px; color:#15242b; font-size:.98rem; font-weight:600; }
@media(max-width:760px){.plans .plan-grid > .plan-card{min-height:0!important;padding:30px 24px!important}.plans .plan-card h3{min-height:0!important;font-size:2rem!important}.plans .plan-price strong{font-size:4.4rem}.plans .plan-card > .button.primary{margin-bottom:26px!important}.plans .plan-meta{margin-top:26px}.plans .plan-benefits{gap:12px}}

/* Rodapé minimalista: uma superfície sólida e quatro colunas estáveis. */
.minimal-footer {
  padding: 76px clamp(24px, 6vw, 96px) 26px !important;
  color: #edf9fb !important;
  background: #003d4b !important;
}
.minimal-footer .footer-watermark { display: none !important; }
.minimal-footer .footer-columns { display: grid; grid-template-columns: 1.4fr .82fr 1.25fr .72fr; gap: clamp(38px, 5vw, 88px); max-width: 1440px; margin: 0 auto; }
.minimal-footer a { color: #e7f5f7 !important; text-decoration: none !important; }
.minimal-footer .footer-brand { min-width: 0; }
.minimal-footer .footer-logo { display:block; width: 70px; height:auto; margin:0 0 17px; filter: brightness(0) invert(1); }
.minimal-footer .footer-brand-name { margin:0 0 17px !important; color:#fff !important; font-family:Montserrat,Arial,sans-serif; font-size:1rem; font-weight:600; letter-spacing:.13em; }
.minimal-footer .footer-tagline { max-width:270px; margin:0 !important; color:#b9d5da !important; font-size:.98rem; line-height:1.55; }
.minimal-footer .footer-column { min-width:0; padding:0; }
.minimal-footer .footer-column h3 { margin:0 0 20px !important; color:#fff !important; font-size:.96rem !important; font-weight:600 !important; letter-spacing:.015em; }
.minimal-footer .footer-column h3::after { content:none !important; }
.minimal-footer .footer-nav { display:grid; gap:11px; }.minimal-footer .footer-nav a { color:#c8e1e5!important; font-size:.93rem; }
.minimal-footer .footer-contact-column address { margin:0 0 16px; color:#c8e1e5; font-style:normal; font-size:.93rem; line-height:1.65; }.minimal-footer .footer-contact-column a { color:#fff!important; font-size:.95rem; font-weight:500; }
.minimal-footer .footer-social-links { display:flex; align-items:center; gap:15px; }.minimal-footer .footer-social-links a { display:grid; place-items:center; width:30px; height:30px; color:#e8f7f9!important; font-family:Arial,sans-serif; font-size:1.25rem; font-weight:600; }.minimal-footer .footer-social-links a:hover { color:#15c4d8!important; }
.minimal-footer .footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:24px; max-width:1440px; margin:65px auto 0; padding-top:24px; border-top:1px solid rgba(214,239,243,.3); color:#b9d5da; font-size:.82rem; }.minimal-footer .footer-legal { display:flex; gap:23px; }.minimal-footer .footer-legal a { color:#b9d5da!important; white-space:nowrap; }
@media(max-width:900px){.minimal-footer .footer-columns{grid-template-columns:1.3fr 1fr;gap:46px}.minimal-footer .footer-social-column{grid-column:auto}.minimal-footer .footer-bottom{flex-direction:column;align-items:flex-start}}
@media(max-width:580px){.minimal-footer{padding:54px 24px 24px!important}.minimal-footer .footer-columns{grid-template-columns:1fr;gap:34px}.minimal-footer .footer-bottom{margin-top:46px;gap:16px}.minimal-footer .footer-legal{gap:16px;flex-wrap:wrap}.minimal-footer .footer-column h3{margin-bottom:15px!important}}

/* Correção final dos cards: neutraliza integralmente estilos legados. */
.plans .plan-grid > .plan-card { min-height: 590px !important; }
.plans .plan-grid .plan-card .plan-price strong { font-size: clamp(3.95rem, 5.6vw, 4.65rem) !important; font-weight: 600 !important; }
.plans .plan-grid .plan-card .plan-price small { font-size: 1rem !important; font-weight: 600 !important; }
.plans .plan-grid .plan-card .plan-price sup { font-size: 1.5rem !important; font-weight: 600 !important; }
.plans .plan-grid .plan-card .plan-price span { font-size: .9rem !important; }
.plans .plan-grid .plan-card .plan-payment { min-height: auto; margin: 11px 0 24px !important; font-size: .9rem !important; }
.plans .plan-grid .plan-card .plan-benefits { display: grid !important; flex: 1 1 auto !important; gap: 12px !important; margin: 0 !important; padding: 0 !important; border: 0 !important; }
.plans .plan-grid .plan-card .plan-benefits::before { content: none !important; display: none !important; }
.plans .plan-grid .plan-card .plan-benefits li { display:block !important; margin:0 !important; padding:0 0 0 23px !important; font-size:.9rem !important; line-height:1.35 !important; }
.plans .plan-grid .plan-card .plan-benefits li::before { content:'✓' !important; top:.08em !important; width:14px !important; height:14px !important; background:transparent !important; color:#0796ae !important; font-size:.86rem !important; font-weight:600 !important; }
.plans .plan-grid .plan-card .plan-meta { display:grid !important; grid-template-columns:1fr 1fr !important; min-height:60px; margin-top:24px !important; padding-top:18px !important; }
.plans .plan-grid .plan-card .plan-meta small { font-size:.74rem !important; }.plans .plan-grid .plan-card .plan-meta b { font-size:.92rem !important; font-weight:600 !important; }
@media(max-width:760px){.plans .plan-grid > .plan-card{min-height:0!important}.plans .plan-grid .plan-card .plan-price strong{font-size:3.9rem!important}.plans .plan-grid .plan-card .plan-benefits{gap:11px!important}.plans .plan-grid .plan-card .plan-meta{margin-top:22px!important}}

/* Sistema tipográfico unificado da página. */
h1, h2, h3 {
  font-family: Montserrat, Arial, sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: -.035em;
}
.hero h1 {
  max-width: 960px;
  margin: 0 0 20px !important;
  font-size: clamp(2.7rem, 4.2vw, 3.75rem) !important;
  line-height: 1.04 !important;
}

@media (min-width: 761px) {
  .hero h1 { font-size: clamp(2.3rem, 3.5vw, 3.125rem) !important; }
  .hero h1 em { display:block; margin-bottom:.14em; }
}

@media (min-width: 761px) {
  .modes .section-head { text-align:center !important; }
  .modes .section-head h2 {
    width:100% !important;
    margin-inline:auto !important;
    font-size:45px !important;
    line-height:1.12 !important;
  }
}
.structure-copy h2,
.modes .section-head h2,
.club-gallery .section-head h2,
.testimonial-heading h2,
.plans .section-head h2,
.faq .section-head h2,
.contact h2 {
  max-width: 850px;
  margin: 0 0 18px !important;
  font-size: clamp(2.75rem, 3.5vw, 3.25rem) !important;
  font-weight: 600 !important;
  line-height: 1.08 !important;
}
.agenda-heading h2,
.trial-cta h2 {
  max-width: 820px;
  margin: 0 0 18px !important;
  font-size: clamp(2.25rem, 3vw, 2.625rem) !important;
  font-weight: 600 !important;
  line-height: 1.1 !important;
}
.eyebrow { margin-bottom: 12px !important; }
.section-head > p,
.agenda-heading > p,
.testimonial-heading > p,
.structure-story > p,
.contact-intro,
.trial-content > p { margin-top: 0 !important; }
@media(max-width:760px){
  .hero h1{font-size:clamp(2.5rem,10vw,3.15rem)!important;line-height:1.06!important}
  .structure-copy h2,.modes .section-head h2,.club-gallery .section-head h2,.testimonial-heading h2,.plans .section-head h2,.faq .section-head h2,.contact h2{font-size:clamp(2.25rem,9vw,2.75rem)!important;line-height:1.1!important}
  .agenda-heading h2,.trial-cta h2{font-size:clamp(2rem,8vw,2.35rem)!important}
}

/* Hero com as novas artes: texto e ações protegidos acima dos personagens. */
@media(max-width:700px){
  .hero{min-height:max(100svh,920px)!important;height:auto!important;padding:112px 24px 36px!important;overflow:hidden!important}
  .hero-art{background-image:url('./hero-mobile.png')!important;background-size:100% auto!important;background-position:center bottom!important;background-repeat:no-repeat!important}
  .hero-copy{position:relative!important;z-index:3!important}
  .hero-copy .hero-actions{position:relative!important;z-index:4!important}
}

/* Rodapé: superfície única, alinhamento rígido e ícones vetoriais. */
.minimal-footer,
.minimal-footer::before,
.minimal-footer::after { background:#003c4a !important; background-image:none !important; box-shadow:none !important; }
.minimal-footer { overflow:hidden !important; }
.minimal-footer .footer-columns { grid-template-columns: minmax(220px,1.4fr) minmax(150px,.8fr) minmax(220px,1.2fr) minmax(150px,.7fr) !important; align-items:start !important; }
.minimal-footer .footer-logo { width:72px !important; margin-bottom:16px !important; }
.minimal-footer .footer-brand-name { margin-bottom:16px !important; }
.minimal-footer .footer-social-links { align-items:center !important; gap:18px !important; }
.minimal-footer .footer-social-links a { width:28px !important; height:28px !important; border:0 !important; border-radius:0 !important; background:transparent !important; }
.minimal-footer .footer-social-links svg { display:block; width:24px; height:24px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; }
.minimal-footer .footer-social-links a:nth-child(2) svg { stroke-width:0; }
.minimal-footer .footer-contact-column address { white-space:nowrap; }
.minimal-footer .footer-bottom { align-items:center !important; }
@media(max-width:900px){.minimal-footer .footer-columns{grid-template-columns:1.2fr 1fr!important}.minimal-footer .footer-contact-column address{white-space:normal}}

/* Ícones lineares relacionados aos recursos da estrutura. */
.structure-features .feature-icon { display:grid; place-items:center; width:28px; height:28px; color:#079db8; font-size:0; }
.structure-features .feature-icon svg { width:26px; height:26px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.6; }
@media(max-width:800px){
  .modes { padding-top: 58px !important; }
  .modes .section-head h2 { font-size: clamp(2.65rem, 10vw, 3.25rem) !important; line-height:1.06 !important; }
  .modes .modes-cta,
  .testimonials .testimonial-button { width: fit-content !important; min-width: 230px; max-width: calc(100% - 48px); justify-content:center; margin-inline:auto !important; }
}

/* Menu mobile alinhado visualmente ao cabeçalho. */
@media (max-width:700px){
  .topbar .mobile-menu > div{
    background:rgba(255,255,255,.9) !important;
    border-color:rgba(8,45,54,.14) !important;
    box-shadow:0 14px 30px rgba(7,35,42,.12) !important;
  }
  .topbar .mobile-menu a{
    color:#0b4a5a !important;
    border-bottom-color:rgba(8,45,54,.10) !important;
  }
  .topbar .mobile-menu a:hover,
  .topbar .mobile-menu a:focus-visible{
    background:rgba(12,166,186,.10) !important;
    color:#0876ae !important;
  }
}

/* Arte final da Hero: composição vertical deixa texto e pessoas em áreas separadas. */
@media (max-width:700px){
  .hero{
    min-height:max(100svh, 780px) !important;
    padding:104px 24px 0 !important;
  }
  .hero-art{
    background-image:url('./hero-mobile.png') !important;
    background-size:auto 68% !important;
    background-position:center bottom !important;
    background-repeat:no-repeat !important;
  }
  .hero-copy{
    max-width:100% !important;
    padding-bottom:0 !important;
  }
  .hero-copy .hero-actions{
    margin-bottom:0 !important;
  }
}

/* Hero mobile: texto acima, personagens livres na base. */
@media (max-width:700px){
  .hero{
    min-height:max(100svh, 860px) !important;
    padding:100px 24px 72px !important;
  }
  .hero h1{
    font-size:42px !important;
    font-weight:700 !important;
    line-height:1.08 !important;
  }
  .hero-art{
    background-size:auto 58% !important;
    background-position:center bottom !important;
  }
  .hero-copy{ z-index:3 !important; }
}

/* Assinatura da marca e CTA do cabeçalho. */
.topbar .box-brand small,
.minimal-footer .footer-brand-name small{
  display:block;
  margin-top:3px;
  font-size:9px;
  font-weight:700;
  letter-spacing:.15em;
  line-height:1.2;
}
.topbar .header-trial{
  background:#fff !important;
  color:#08778b !important;
  border:1px solid #08778b !important;
}
.topbar .header-trial:hover,
.topbar .header-trial:focus-visible{
  background:#f4fbfc !important;
  color:#04596c !important;
}

/* Ajustes de leitura e proporção nas seções de estrutura e modalidades. */
.structure-copy h2 em,
.modes .section-head h2 em{
  color:#079db8 !important;
  font-weight:700 !important;
}
.structure .structure-cta{
  width:fit-content !important;
  min-width:0 !important;
  padding-inline:26px !important;
}
@media(max-width:800px){
  .modes{ padding-top:44px !important; }
}

/* A nova arte vertical ocupa toda a largura e preserva os personagens na base. */
@media(max-width:700px){
  .hero-art{
    background-size:100% auto !important;
    background-position:center bottom !important;
  }
}

/* FAQ com chamada centralizada. */
.faq .section-head{
  text-align:center !important;
}
.faq .section-head h2,
.faq .section-head > p{
  margin-inline:auto !important;
}

/* Planos: comparação rápida, com o preço como ponto de entrada. */
.plans .plan-grid{
  width:min(980px, calc(100% - 48px)) !important;
  max-width:980px !important;
  gap:24px !important;
  align-items:stretch !important;
}
.plans .plan-grid > .plan-card{
  min-height:500px !important;
  padding:24px 30px !important;
  border:1px solid #d9e8eb !important;
  border-top:1px solid #d9e8eb !important;
  border-radius:18px !important;
  box-shadow:0 10px 28px rgba(4,52,64,.06) !important;
}
.plans .plan-grid > .plan-card:first-child{
  padding-top:21px !important;
  border-top:4px solid #0796ae !important;
  box-shadow:0 12px 30px rgba(7,150,174,.11) !important;
}
.plans .plan-card .plan-badge{
  margin:0 0 12px !important;
  padding:4px 9px !important;
  border:1px solid #cce8ed !important;
  background:#f4fbfc !important;
  color:#2e6978 !important;
  font-size:.65rem !important;
  font-weight:600 !important;
  letter-spacing:.03em !important;
  text-transform:none !important;
}
.plans .plan-card .plan-price{ margin:0 !important; }
.plans .plan-card .plan-price small{
  margin-right:5px !important;
  font-size:.85rem !important;
  font-weight:600 !important;
}
.plans .plan-card .plan-price strong{
  font-size:clamp(3.55rem,5vw,4.35rem) !important;
  font-weight:600 !important;
  line-height:.9 !important;
}
.plans .plan-card .plan-price sup{
  margin-left:3px !important;
  font-size:1.25rem !important;
  font-weight:600 !important;
}
.plans .plan-card .plan-price span{
  margin-left:6px !important;
  font-size:.78rem !important;
  font-weight:500 !important;
}
.plans .plan-card .plan-payment{ display:none !important; }
.plans .plan-card .plan-meta{
  width:100% !important;
  min-height:0 !important;
  margin:14px 0 16px !important;
  padding:10px 0 !important;
  border-top:1px solid #e0ecee !important;
  border-bottom:1px solid #e0ecee !important;
}
.plans .plan-card .plan-meta > div{ padding:0 13px !important; }
.plans .plan-card .plan-meta > div:first-child{ padding-left:0 !important; }
.plans .plan-card .plan-meta small{ font-size:.68rem !important; }
.plans .plan-card .plan-meta b{ margin-top:2px !important; font-size:.82rem !important; font-weight:600 !important; }
.plans .plan-card h3{
  min-height:48px !important;
  margin:0 0 14px !important;
  font-size:clamp(1.45rem,2.25vw,1.85rem) !important;
  font-weight:600 !important;
  line-height:1.08 !important;
}
.plans .plan-card > .button.primary{
  min-height:48px !important;
  margin:0 0 18px !important;
  border-radius:12px !important;
  font-size:.78rem !important;
  font-weight:600 !important;
}
.plans .plan-card .plan-benefits{
  flex:1 1 auto !important;
  gap:8px !important;
  padding:0 !important;
  border:0 !important;
}
.plans .plan-card .plan-benefits li{
  padding-left:20px !important;
  font-size:.79rem !important;
  line-height:1.25 !important;
  white-space:nowrap;
}
.plans .plan-card .plan-benefits li::before{
  width:12px !important;
  height:12px !important;
  font-size:.72rem !important;
}
@media(max-width:760px){
  .plans .plan-grid{ width:min(100% - 40px, 390px) !important; }
  .plans .plan-grid > .plan-card{ min-height:0 !important; padding:24px !important; }
  .plans .plan-card h3{ min-height:0 !important; }
  .plans .plan-card .plan-price strong{ font-size:3.6rem !important; }
}

/* Modalidades no mobile: enquadramentos que preservam os elementos principais. */
@media(max-width:700px){
  .modes .mode-card:nth-child(1){ background-position:center 18% !important; }
  .modes .mode-card:nth-child(3){ background-position:center 32% !important; }
  .structure{ padding-top:30px !important; }
  .faq{ padding-top:25px !important; }
}

/* Rodapé: alinhamento estável das colunas e da faixa final. */
.minimal-footer{
  display:block !important;
}
.minimal-footer .footer-columns{
  display:grid !important;
  grid-template-columns:minmax(190px,1.35fr) minmax(120px,.78fr) minmax(210px,1.12fr) minmax(130px,.72fr) !important;
  align-items:start !important;
  gap:clamp(32px,4.5vw,72px) !important;
}
.minimal-footer .footer-brand,
.minimal-footer .footer-column{
  min-width:0 !important;
  align-self:start !important;
}
.minimal-footer .footer-column h3{
  min-height:22px !important;
  margin:0 0 20px !important;
}
.minimal-footer .footer-contact-column address{
  display:block !important;
  margin:0 0 16px !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
}
.minimal-footer .footer-contact-column > a{
  display:inline-block !important;
  white-space:nowrap !important;
}
.minimal-footer .footer-social-links{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  gap:16px !important;
  min-height:30px !important;
}
.minimal-footer .footer-social-links a{
  flex:0 0 28px !important;
  display:grid !important;
  place-items:center !important;
}
.minimal-footer .footer-social-links{ gap:14px !important; }
.minimal-footer .footer-bottom{
  position:static !important;
  display:flex !important;
  width:100% !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:24px !important;
  margin:56px auto 0 !important;
  clear:both !important;
}
.minimal-footer .footer-bottom > span,
.minimal-footer .footer-legal{
  position:static !important;
  margin:0 !important;
}
.minimal-footer .footer-legal{
  display:flex !important;
  flex-wrap:nowrap !important;
  justify-content:flex-end !important;
  gap:24px !important;
  white-space:nowrap !important;
}
@media(max-width:900px){
  .minimal-footer .footer-columns{ grid-template-columns:1.2fr 1fr !important; }
}
@media(max-width:580px){
  .minimal-footer .footer-columns{ grid-template-columns:1fr !important; }
  .minimal-footer .footer-bottom{ align-items:flex-start !important; flex-direction:column !important; }
  .minimal-footer .footer-legal{ justify-content:flex-start !important; flex-wrap:wrap !important; }
}

/* Hero: a imagem começa depois do cabeçalho, sem cobrir os personagens. */
@media (min-width:701px){
  .hero{
    min-height:calc(100svh - 88px) !important;
    margin-top:88px !important;
  }
}

/* Mobile: respiro solicitado entre o cabeçalho e o primeiro bloco de texto. */
@media (max-width:700px){
  .hero{
    min-height:max(100svh, 895px) !important;
    padding-top:135px !important;
  }
}

/* Desktop: preserva o enquadramento integral da foto original abaixo do header. */
@media (min-width:701px){
  .hero{
    height:64.194vw !important;
    min-height:0 !important;
    padding-top:clamp(76px, 8vw, 126px) !important;
    padding-bottom:clamp(48px, 5vw, 80px) !important;
  }
  .hero-art{
    background-size:100% auto !important;
    background-position:center top !important;
    background-repeat:no-repeat !important;
  }
}

/* Header e arte compartilham a mesma borda, sem compensações de margem. */
.topbar{
  position:relative !important;
  inset:auto !important;
}
@media (min-width:701px){
  .topbar{ height:88px !important; }
  .hero{ margin-top:0 !important; }
}
@media (max-width:700px){
  .topbar{ height:72px !important; }
  .hero{
    margin-top:0 !important;
    padding-top:63px !important;
  }
}

/* Desktop: conteúdo começa na abertura da composição e a hero termina mais acima. */
@media (min-width:701px){
  .hero{
    height:57.4vw !important;
    min-height:0 !important;
    align-items:flex-start !important;
    padding-top:clamp(116px, 10vw, 138px) !important;
    padding-bottom:48px !important;
  }
}

/* Wallpaper da hero preenche a composição integralmente, sem faixa superior. */
.hero-art{
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  background-color:#003747 !important;
}

/* Destaque do título na seção de planos. */
.plans .section-head h2{
  color:#fff !important;
  font-size:clamp(38px, 3.8vw, 60px) !important;
}

/* Seção de planos atualmente exibida: mantém o título legível sobre o fundo escuro. */
.plans-placeholder .plans-heading h2,
.plans-placeholder .plans-heading h2 em{
  color:#fff !important;
}

/* Modalidades: título e texto de apoio centralizados no bloco. */
.modes > .section-head{
  width:min(100%, 58rem) !important;
  margin-right:auto !important;
  margin-left:auto !important;
  text-align:center !important;
}
.modes > .section-head > p{
  margin-right:auto !important;
  margin-left:auto !important;
}

/* Horários: redução proporcional de 10% no título principal. */
.schedule .agenda-heading h2{
  font-size:clamp(30.6px, 3.15vw, 49.5px) !important;
}

/* Ícones de horários: cada card recebe um símbolo reconhecível da atividade. */
.schedule-card .schedule-icon{
  font-size:0 !important;
  line-height:1 !important;
}
.schedule-card .schedule-icon::after{
  display:block;
  font-size:2rem;
  line-height:1;
}
.schedule-card:nth-child(1) .schedule-icon::after{ content:"🏋️"; }
.schedule-card:nth-child(2) .schedule-icon::after{ content:"🏊"; }
.schedule-card:nth-child(3) .schedule-icon::after{ content:"🤸"; }
.schedule-card:nth-child(4) .schedule-icon::after{ content:"🎾"; }
.schedule-card:nth-child(5) .schedule-icon::after{ content:"🚴"; }
.schedule-card:nth-child(6) .schedule-icon::after{ content:"🧒"; }

/* Desktop: mantém os personagens inteiros, ancorados à direita da hero. */
@media (min-width:701px){
  .hero-art{
    background-size:auto 100% !important;
    background-position:right bottom !important;
  }
}
@media (max-width:700px){
  .hero-art{
    background-image:url('./hero-mobile.png') !important;
    background-size:cover !important;
    background-position:center center !important;
  }
}
/* Ajustes finais — seção de planos e horários */
#planos .section-head h2 {
  font-size: 48px !important;
}

#planos .plans-heading h2 {
  font-size: 48px !important;
}

/* Hero: reduz pela metade o espaço horizontal que define a largura dos CTAs. */
.hero-actions .button {
  flex: 0 0 calc(62.5% - 7.5px) !important;
  width: calc(62.5% - 7.5px) !important;
  padding-inline: 14px !important;
}

.hero-actions {
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 16px !important;
}

/* Seção 3: foto fornecida para o card de Malhação. */
.modes .mode-card:first-child {
  background-image: linear-gradient(0deg, rgba(6, 45, 54, .94) 0%, rgba(6, 45, 54, .12) 72%), url('./r5/malhacao-card.png') !important;
  background-position: center 42% !important;
}

/* Ícones gráficos simples, substituindo os emojis da grade. */
#grade .schedule-icon::after {
  font-family: Arial, sans-serif !important;
  font-size: 42px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
}

#grade .schedule-card:nth-child(1) .schedule-icon::after { content: '▦' !important; }
#grade .schedule-card:nth-child(2) .schedule-icon::after { content: '◌' !important; }
#grade .schedule-card:nth-child(3) .schedule-icon::after { content: '◎' !important; }
#grade .schedule-card:nth-child(4) .schedule-icon::after { content: '◇' !important; }
#grade .schedule-card:nth-child(5) .schedule-icon::after { content: '◒' !important; }
#grade .schedule-card:nth-child(6) .schedule-icon::after { content: '✦' !important; }

/* Hero mobile: o véu azul protege o texto no topo e se dissolve antes dos personagens. */
@media (max-width: 700px) {
  .hero:after {
    background: linear-gradient(180deg, rgba(3, 59, 71, .76) 0%, rgba(4, 86, 96, .42) 26%, rgba(5, 108, 116, 0) 48%) !important;
  }
}

/* Hero desktop: arte horizontal sem véu azul sobre os personagens. */
@media (min-width: 701px) {
  .hero-art {
    background-image: url('./hero-desktop.png') !important;
    background-size: cover !important;
    background-position: center center !important;
    filter: none !important;
  }

  .hero:after {
    background: linear-gradient(90deg, rgba(0, 29, 38, .82) 0%, rgba(0, 29, 38, .62) 30%, rgba(0, 29, 38, .16) 47%, rgba(0, 29, 38, 0) 58%) !important;
  }
}

/* Tipografia: Montserrat aplicada sem alterar pesos, tamanhos ou espaçamentos. */
@font-face {
  font-family: 'Montserrat';
  src: url('./fonts/Montserrat-Regular.ttf') format('truetype');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'Montserrat';
  src: url('./fonts/Montserrat-Medium.ttf') format('truetype');
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: 'Montserrat';
  src: url('./fonts/Montserrat-SemiBold.ttf') format('truetype');
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: 'Montserrat';
  src: url('./fonts/Montserrat-Bold.ttf') format('truetype');
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
@font-face {
  font-family: 'Montserrat';
  src: url('./fonts/Montserrat-ExtraBold.ttf') format('truetype');
  font-style: normal;
  font-weight: 800;
  font-display: swap;
}
@font-face {
  font-family: 'Montserrat';
  src: url('./fonts/Montserrat-Black.ttf') format('truetype');
  font-style: normal;
  font-weight: 900;
  font-display: swap;
}

*, *::before, *::after {
  font-family: 'Montserrat', sans-serif !important;
}

/* Ícones gráficos continuam usando uma fonte com os respectivos glifos. */
.schedule-icon::after,
.mode-icon {
  font-family: Arial, sans-serif !important;
}
