@charset "UTF-8";
/* ==========================================================================
   Move — design tokens
   ========================================================================== */
:root{
  --color-cream:      #EFEFE5;
  --color-light-gray: #EAEAEA;
  --color-blue-gray:  #BCC2C6;
  --color-yellow:     #E5D897;
  --color-dark:       #292827;
  --color-gray:       #B2B2B2;
  --color-hero-card:  #212121;
  --color-card-dark:  #131312;

  --color-bg:         var(--color-cream);
  --color-text:       var(--color-dark);
  --color-text-muted: #6b6864;

  --font-primary:   'thermal-variable', Georgia, 'Times New Roman', serif;
  --font-secondary: 'akzidenz-grotesk-next-pro', 'Helvetica Neue', Arial, sans-serif;

  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 32px;
  --radius-pill: 999px;

  --ease: cubic-bezier(0.65, 0, 0.35, 1);
}

/* fluid root font-size, same scaling approach as the reference template */
html{ font-size: calc(0.9rem + 0.3vw); }
@media screen and (max-width:991px){ html{ font-size: calc(0.85rem + 0.5vw); } }
@media screen and (max-width:767px){ html{ font-size: calc(0.95rem + 0.6vw); } }
@media screen and (max-width:479px){ html{ font-size: calc(1rem + 0.7vw); } }

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  background:var(--color-bg);
  color:var(--color-text);
  font-family:var(--font-secondary);
  font-size:1rem;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

img,svg{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }

h1,h2,h3,h4{
  font-family:var(--font-primary);
  font-weight:400;
  line-height:1.08;
  margin:0;
  letter-spacing:-0.01em;
}

.container{
  width:100%;
  max-width:75rem;
  margin:0 auto;
  padding-left:1.5rem;
  padding-right:1.5rem;
}

.section{ padding:6rem 0; }
@media screen and (max-width:767px){ .section{ padding:4rem 0; } }

.eyebrow{
  font-family:var(--font-secondary);
  font-size:0.8125rem;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--color-text-muted);
  margin:0 0 1rem;
}

.section-heading{
  font-size:clamp(1.8rem, 1.2rem + 2.4vw, 3rem);
  max-width:38rem;
}

.section-lede{
  font-size:1.125rem;
  color:var(--color-text-muted);
  max-width:34rem;
  margin-top:1rem;
}

/* ==========================================================================
   Motion — scroll reveal, hover lifts, subtle ambient movement
   ========================================================================== */
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity 0.8s var(--ease), transform 0.8s var(--ease);
}
.reveal.is-visible{ opacity:1; transform:translateY(0); }
.reveal-1.is-visible{ transition-delay:0.08s; }
.reveal-2.is-visible{ transition-delay:0.16s; }
.reveal-3.is-visible{ transition-delay:0.24s; }
.reveal-4.is-visible{ transition-delay:0.32s; }

@keyframes fadeInUp{
  from{ opacity:0; transform:translateY(22px); }
  to{ opacity:1; transform:translateY(0); }
}

/* hover lift shared by card-like blocks */
.workout-card,
.pricing-card,
.placeholder-media,
.media-photo{
  transition:transform 0.4s var(--ease), box-shadow 0.4s var(--ease);
}
.workout-card:hover,
.pricing-card:hover{
  transform:translateY(-6px);
  box-shadow:0 1.25rem 2.5rem rgba(41,40,39,0.1);
}
.pricing-card.is-featured:hover{ transform:translateY(-0.5rem) translateY(-6px); }
.placeholder-media:hover{ transform:translateY(-2px); }

/* slow ambient shimmer on placeholder photography stand-ins */
.placeholder-media::before{
  background-size:200% 200%;
  animation:shimmer 12s ease-in-out infinite;
}
@keyframes shimmer{
  0%{ background-position:0% 0%; }
  50%{ background-position:100% 100%; }
  100%{ background-position:0% 0%; }
}

@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  .placeholder-media::before{ animation:none; }
  .hero-content > *{ animation:none !important; opacity:1; }
}

/* ---- placeholder media block (stand-in for real photography) ---- */
.placeholder-media{
  position:relative;
  width:100%;
  border-radius:var(--radius-md);
  background:linear-gradient(135deg, var(--color-blue-gray), var(--color-light-gray));
  display:flex;
  align-items:flex-end;
  overflow:hidden;
}
.placeholder-media::before{
  content:"";
  position:absolute; inset:0;
  background-image:
    repeating-linear-gradient(45deg, rgba(41,40,39,0.05) 0 2px, transparent 2px 14px);
}
.placeholder-media span{
  position:relative;
  margin:1rem;
  padding:0.4rem 0.8rem;
  border-radius:var(--radius-sm);
  background:rgba(41,40,39,0.65);
  color:var(--color-cream);
  font-size:0.75rem;
  letter-spacing:0.04em;
  text-transform:uppercase;
}

/* ---- real photography block ---- */
.media-photo{
  position:relative;
  width:100%;
  border-radius:var(--radius-md);
  overflow:hidden;
}
.media-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* ---- buttons ---- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:0.6rem;
  padding:0.9rem 1.6rem;
  border-radius:var(--radius-pill);
  font-family:var(--font-secondary);
  font-size:0.95rem;
  font-weight:600;
  white-space:nowrap;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform 0.35s var(--ease), background-color 0.35s var(--ease), color 0.35s var(--ease);
}
.btn:hover{ transform:translateY(-2px); }
.btn-primary{ background:var(--color-dark); color:var(--color-cream); }
.btn-primary:hover{ background:#000; }
.btn-outline{ background:transparent; color:var(--color-dark); border-color:var(--color-dark); }
.btn-outline:hover{ background:var(--color-dark); color:var(--color-cream); }
.btn-hero-cta{ background:var(--color-yellow); color:var(--color-dark); }
.btn-hero-cta:hover{ background:#efe2a8; }
.btn .icon-arrow{
  width:0.9rem; height:0.9rem;
  border-radius:50%;
  position:relative;
}
.btn .icon-arrow::after{
  content:"\2192";
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-size:0.85rem;
  transition:transform 0.35s var(--ease);
}
.btn:hover .icon-arrow::after{ transform:translateX(3px); }

/* ==========================================================================
   Navbar
   ========================================================================== */
.navbar{
  position:sticky; top:0; z-index:50;
  background:rgba(239,239,229,0.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(41,40,39,0.08);
}
.navbar .container{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:1.1rem; padding-bottom:1.1rem;
}
.nav-logo{ width:6rem; }
.nav-links{ display:flex; gap:2rem; align-items:center; }
.nav-links a{
  font-size:0.9rem;
  font-weight:500;
  color:var(--color-text-muted);
  transition:color 0.25s var(--ease);
}
.nav-links a:hover{ color:var(--color-dark); }
.nav-cta{ display:flex; }
.nav-toggle{ display:none; }

@media screen and (max-width:767px){
  .nav-links{ display:none; }
  .nav-cta{ display:none; }
  .nav-logo{ width:5rem; }
}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{ padding-top:2rem; padding-bottom:4rem; }
.hero-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:stretch;
  gap:1.5rem;
  min-height:40rem;
}
.hero-photo-block{
  aspect-ratio:auto;
  height:100%;
  border-radius:var(--radius-lg);
}
.hero-photo-block img{ border-radius:inherit; }
.hero-card{
  background:var(--color-hero-card);
  border-radius:var(--radius-lg);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:3rem 2.5rem;
  text-align:center;
}
.hero-content{
  max-width:26rem;
  color:var(--color-cream);
}
.hero-content > *{ animation:fadeInUp 0.9s var(--ease) both; }
.hero-logo{
  width:9rem;
  height:auto;
  margin:0 auto 1.5rem;
  filter:brightness(0) invert(1);
  animation-delay:0.02s;
}
.hero-content .eyebrow{ color:rgba(239,239,229,0.85); animation-delay:0.05s; }
.hero-content .hero-h1{ animation-delay:0.18s; }
.hero-content .hero-sub{ animation-delay:0.34s; }
.hero-content .btn{ animation-delay:0.48s; margin-top:1.5rem; }
.hero-h1{
  color:var(--color-cream);
  font-size:clamp(1.9rem, 1.3rem + 2.2vw, 2.8rem);
  margin-bottom:0.75rem;
}
.hero-sub{
  font-size:1.1rem;
  color:rgba(239,239,229,0.85);
  max-width:300px;
  margin:0 auto;
}

@media screen and (max-width:767px){
  .hero{ padding-bottom:20px; }
  .hero + .about.section{ padding-top:20px; }
  .hero-grid{ grid-template-columns:1fr; min-height:0; gap:1rem; }
  .hero-photo-block{ aspect-ratio:4/3; height:auto; }
  .hero-card{ padding:2rem 1.5rem; }
  .hero-logo{ width:7rem; margin-bottom:1rem; }
  .hero-h1{ font-size:1.7rem; margin-bottom:0.5rem; }
  .hero-content .eyebrow{ margin-bottom:0.5rem; }
  .hero-sub{ font-size:1rem; }
  .hero-content .btn{ margin-top:1rem; }
}


/* ==========================================================================
   About / Story
   ========================================================================== */
.about-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:3rem;
}
.about-content{ max-width:30rem; }
.about-content .section-heading{ margin-bottom:1.25rem; }
.about-sub{
  font-size:1.125rem;
  color:var(--color-text-muted);
  margin:0 0 2rem;
}
.about-photo{ border-radius:var(--radius-lg); }

@media screen and (max-width:767px){
  .about-grid{ grid-template-columns:1fr; gap:2rem; }
  .about-content{ max-width:none; order:2; }
  .about-photo{ order:1; }
}


/* ==========================================================================
   Workouts grid ("Nossos treinos")
   ========================================================================== */
.workouts-header{ text-align:center; max-width:36rem; margin:0 auto 3.5rem; }
.workouts-header .section-heading{ margin:0 auto 1rem; }
.workouts-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.5rem;
}
.workout-card{
  background:var(--color-dark);
  color:var(--color-cream);
  border-radius:var(--radius-md);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.workout-card .media-photo{ aspect-ratio:3/4; border-radius:0; }
.workout-card-body{ padding:1.5rem; }
.workout-card-body h3{ font-size:1.3rem; margin-bottom:0.6rem; }
.workout-card-body p{ font-family:var(--font-secondary); font-size:0.9rem; color:var(--color-gray); margin:0; }

@media screen and (max-width:900px){
  .workouts-grid{ grid-template-columns:repeat(2, 1fr); }
}
@media screen and (max-width:479px){
  .workouts-grid{ grid-template-columns:1fr; }
}

/* ==========================================================================
   Pricing
   ========================================================================== */
.pricing{ background:var(--color-dark); }
.pricing-header{ text-align:center; max-width:34rem; margin:0 auto 3.5rem; }
.pricing-header .section-heading{ margin:0 auto; color:var(--color-cream); }
.pricing-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.5rem;
  align-items:stretch;
}
.pricing-card{
  background:var(--color-card-dark);
  color:var(--color-cream);
  border-radius:17.6px;
  padding:2.5rem 2rem;
  display:flex;
  flex-direction:column;
  border:1px solid transparent;
}
.pricing-card.is-featured{
  background:var(--color-yellow);
  color:var(--color-dark);
  border-color:var(--color-dark);
  transform:translateY(-0.5rem);
}
.pricing-badge{
  align-self:flex-start;
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  background:var(--color-dark);
  color:var(--color-cream);
  padding:0.3rem 0.7rem;
  border-radius:var(--radius-pill);
  margin-bottom:1rem;
}
.pricing-card h3{ font-family:var(--font-secondary); font-weight:600; font-size:1rem; text-transform:uppercase; letter-spacing:0.04em; margin-bottom:0.5rem; color:var(--color-gray); }
.pricing-card.is-featured h3{ color:#444; }
.pricing-price{ font-family:var(--font-primary); font-size:3.6rem; line-height:1.1; margin-top:0; margin-bottom:0.75rem; }
.pricing-price-lede{ font-family:var(--font-secondary); font-size:1rem; font-weight:500; margin-right:0.3rem; }
.pricing-price span{ font-family:var(--font-secondary); font-size:1.05rem; color:rgba(239,239,229,0.6); font-weight:500; }
.pricing-card.is-featured .pricing-price span{ color:var(--color-text-muted); }
.pricing-card p:not(.pricing-price){ color:rgba(239,239,229,0.75); font-size:0.95rem; flex-grow:1; }
.pricing-card.is-featured p:not(.pricing-price){ color:var(--color-text-muted); }
.pricing-card .btn{ margin-top:1.5rem; align-self:flex-start; }
.pricing-card .btn-outline{ border-color:var(--color-yellow); color:var(--color-cream); }
.pricing-card .btn-outline:hover{ background:var(--color-yellow); color:var(--color-dark); }
.pricing-note{ text-align:center; max-width:32rem; margin:3rem auto 0; color:rgba(239,239,229,0.75); font-size:0.95rem; }
.pricing-note strong{ color:var(--color-cream); }
.pricing-cta{ text-align:center; margin-top:2.5rem; }

@media screen and (max-width:900px){
  .pricing-grid{ grid-template-columns:1fr; }
  .pricing-card.is-featured{ transform:none; }
}


/* ==========================================================================
   FAQ (PLACEHOLDER — sem copy definido ainda)
   ========================================================================== */
.faq-header{ max-width:34rem; margin:0 auto 2.5rem; text-align:center; }
.faq-header .section-heading{ margin:0 auto; }
.faq-list{ max-width:44rem; margin:0 auto; }
.faq-item{
  border-bottom:1px solid rgba(41,40,39,0.14);
  padding:1.5rem 0;
}
.faq-item summary{
  cursor:pointer;
  font-family:var(--font-primary);
  font-size:1.15rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
  list-style:none;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
  content:"+";
  font-family:var(--font-secondary);
  font-size:1.4rem;
  color:var(--color-text-muted);
  transition:transform 0.3s var(--ease);
}
.faq-item[open] summary::after{ transform:rotate(45deg); }
.faq-item p{ margin:1rem 0 0; color:var(--color-text-muted); }

/* ==========================================================================
   Final CTA
   ========================================================================== */
.final-cta{ background:var(--color-dark); text-align:center; }
.final-cta .container{ max-width:44rem; }
.final-cta .section-heading{ margin:0 auto 1rem; color:var(--color-cream); }
.final-cta p{ color:rgba(239,239,229,0.85); font-size:1.1rem; margin:0 auto 2rem; max-width:300px; }

/* ==========================================================================
   Footer
   ========================================================================== */
.footer{
  background:var(--color-dark);
  color:var(--color-cream);
  padding-top:2.5rem;
  padding-bottom:2.5rem;
}
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center;
  font-size:0.8rem;
  color:var(--color-gray);
}

@media screen and (max-width:767px){
  .footer-bottom{ flex-direction:column; gap:0.75rem; align-items:flex-start; }
}