/* ===== Lifted Fitness — shared styles ===== */

:root{
  --black: #0a0a0a;
  --panel: #141414;
  --line-dark: #2a2a2a;
  --off-white: #f5f5f2;
  --line-light: #d8d8d3;
  --gray: #8a8a85;
  --gray-dark: #5c5c58;
  --max: 1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--off-white);
  color:var(--black);
  font-family:'Inter', -apple-system, sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,.display{
  font-family:'Anton', sans-serif;
  font-weight:400;
  text-transform:uppercase;
  line-height:0.95;
  letter-spacing:0.01em;
  margin:0;
}

a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

.wrap{
  max-width:var(--max);
  margin:0 auto;
  padding:0 32px;
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
}

/* ---------- Header ---------- */
header{
  position:sticky;
  top:0;
  z-index:50;
  background:var(--black);
  border-bottom:1px solid var(--line-dark);
}
.nav-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:8px 32px;
  max-width:var(--max);
  margin:0 auto;
}
.logo-mark img{height:100px;width:auto;}
nav ul{
  list-style:none;
  display:flex;
  gap:30px;
  margin:0;
  padding:0;
}
nav a{
  color:var(--off-white);
  font-size:13px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  font-weight:600;
  padding:6px 0;
  border-bottom:2px solid transparent;
  transition:border-color 0.2s ease, color 0.2s ease;
}
nav a:hover, nav a.active{
  border-color:var(--off-white);
}
.nav-cta{
  border:1.5px solid var(--off-white) !important;
  padding:9px 20px !important;
  border-radius:2px;
}
.nav-cta:hover{
  background:var(--off-white);
  color:var(--black) !important;
}
.menu-toggle{display:none;}

@media (max-width: 860px){
  nav ul{
    position:fixed;
    top:117px;
    left:0;right:0;
    background:var(--black);
    flex-direction:column;
    gap:0;
    max-height:0;
    overflow:hidden;
    transition:max-height 0.3s ease;
    border-bottom:1px solid var(--line-dark);
  }
  nav ul.open{max-height:400px;}
  nav ul li{padding:16px 32px;border-top:1px solid var(--line-dark);}
  .menu-toggle{
    display:block;
    background:none;border:none;
    color:var(--off-white);
    font-size:44px;
    cursor:pointer;
    margin-left:auto;
  }
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;
  font-family:'Inter',sans-serif;
  font-weight:700;
  font-size:14px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  padding:16px 32px;
  border-radius:2px;
  border:2px solid currentColor;
  transition:background 0.2s ease, color 0.2s ease;
}
.btn-solid-dark{background:var(--black);color:var(--off-white);border-color:var(--black);}
.btn-solid-dark:hover{background:transparent;color:var(--black);}
.btn-outline-dark{background:transparent;color:var(--black);}
.btn-outline-dark:hover{background:var(--black);color:var(--off-white);}
.btn-solid-light{background:var(--off-white);color:var(--black);border-color:var(--off-white);}
.btn-solid-light:hover{background:transparent;color:var(--off-white);}
.btn-outline-light{background:transparent;color:var(--off-white);}
.btn-outline-light:hover{background:var(--off-white);color:var(--black);}

/* ---------- Sections generic ---------- */
section{padding:96px 0;}
.section-dark{background:var(--black);color:var(--off-white);}
.section-light{background:var(--off-white);color:var(--black);}
.eyebrow-num{
  font-family:'Anton',sans-serif;
  font-size:14px;
  color:var(--gray);
  margin-bottom:10px;
}

/* ---------- Hero (page banners) ---------- */
.hero{
  background:var(--black);
  color:var(--off-white);
  text-align:center;
  padding:120px 0 90px;
  position:relative;
  overflow:hidden;
}
.hero .display{
  font-size:clamp(48px, 9vw, 118px);
  animation:riseIn 0.8s cubic-bezier(.2,.8,.2,1) both;
}
.hero p.lede{
  max-width:560px;
  margin:24px auto 0;
  color:var(--gray);
  font-size:18px;
}
.hero .cta-row{
  margin-top:38px;
  display:flex;
  gap:16px;
  justify-content:center;
  flex-wrap:wrap;
}
@keyframes riseIn{
  from{opacity:0; transform:translateY(24px);}
  to{opacity:1; transform:translateY(0);}
}

/* ---------- Stat strip ---------- */
.stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line-light);
  border-bottom:1px solid var(--line-light);
}
.stats div{
  text-align:center;
  padding:40px 16px;
  border-right:1px solid var(--line-light);
}
.stats div:last-child{border-right:none;}
.stats .num{font-family:'Anton',sans-serif;font-size:44px;}
.stats .label{font-size:13px;letter-spacing:0.1em;text-transform:uppercase;color:var(--gray-dark);margin-top:6px;}
@media (max-width:640px){
  .stats{grid-template-columns:1fr;}
  .stats div{border-right:none;border-bottom:1px solid var(--line-light);}
}

/* ---------- Outlined program cards (logo motif) ---------- */
.grid-3{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
@media (max-width:900px){.grid-3{grid-template-columns:1fr;}}

.grid-2{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
}
@media (max-width:800px){.grid-2{grid-template-columns:1fr;}}

.outline-card{
  border:1.5px solid var(--off-white);
  padding:36px 28px;
  border-radius:2px;
}
.outline-card h3{font-size:28px;margin-bottom:14px;}
.outline-card p{color:var(--gray);font-size:15px;margin-bottom:20px;}
.outline-card a{
  font-size:13px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  font-weight:700;
  border-bottom:1.5px solid var(--off-white);
  padding-bottom:2px;
}

.outline-card-dark{
  border:1.5px solid var(--black);
  padding:36px 28px;
  border-radius:2px;
}
.outline-card-dark h3{font-size:28px;margin-bottom:14px;}
.outline-card-dark p{color:var(--gray-dark);font-size:15px;margin-bottom:20px;}
.outline-card-dark a{
  font-size:13px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  font-weight:700;
  border-bottom:1.5px solid var(--black);
  padding-bottom:2px;
}

/* ---------- Reviews ---------- */
.review-card{
  border:1.5px solid var(--black);
  border-radius:2px;
  padding:32px 28px;
}
.review-scroll{
  overflow:hidden;
  padding-bottom:16px;
}
.review-track{
  display:flex;
  gap:20px;
  width:max-content;
  animation:reviewScroll 235s linear infinite;
}
.review-scroll:hover .review-track,
.review-scroll.paused .review-track{
  animation-play-state:paused;
}
@keyframes reviewScroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@media (prefers-reduced-motion: reduce){
  .review-track{animation:none;}
}
.review-track .review-card{
  flex:0 0 300px;
}
@media (max-width:640px){
  .review-track .review-card{flex-basis:82vw;}
}
.review-card .stars{
  letter-spacing:2px;
  margin-bottom:16px;
  font-size:15px;
}
.review-card p{font-size:15px;color:var(--gray-dark);margin-bottom:20px;}
.review-card .reviewer{
  font-size:14px;
  font-weight:700;
  border-top:1px solid var(--line-light);
  padding-top:14px;
}

/* ---------- Section header ---------- */
.section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  margin-bottom:48px;
  flex-wrap:wrap;
}
.section-head h2{font-size:clamp(32px,5vw,52px);}
.section-head p{max-width:380px;color:var(--gray-dark);}
.section-dark .section-head p{color:var(--gray);}

/* ---------- Program schedule cards ---------- */
.program-card{
  border:1.5px solid var(--off-white);
  border-radius:2px;
  padding:36px 32px;
}
.program-card h3{font-size:30px;margin-bottom:22px;}
.program-card .time-row{
  display:flex;
  justify-content:space-between;
  padding:12px 0;
  border-top:1px solid var(--line-dark);
  font-size:15px;
}
.program-card .time-row:first-of-type{border-top:none;}
.program-card .time-row .days{color:var(--gray);}
.program-card .rates{
  margin-top:24px;
  padding-top:24px;
  border-top:1px solid var(--line-dark);
  display:flex;
  gap:22px;
  flex-wrap:wrap;
}
.program-card .rate{text-align:left;}
.program-card .rate .price{font-family:'Anton',sans-serif;font-size:28px;}
.program-card .rate .days-label{font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--gray);}

.program-card-light{
  border:1.5px solid var(--black);
  border-radius:2px;
  padding:36px 32px;
}
.program-card-light h3{font-size:30px;margin-bottom:22px;}
.program-card-light .time-row{
  display:flex;
  justify-content:space-between;
  padding:12px 0;
  border-top:1px solid var(--line-light);
  font-size:15px;
}
.program-card-light .time-row:first-of-type{border-top:none;}
.program-card-light .time-row .days{color:var(--gray-dark);}
.program-card-light .rates{
  margin-top:24px;
  padding-top:24px;
  border-top:1px solid var(--line-light);
  display:flex;
  gap:22px;
  flex-wrap:wrap;
}
.program-card-light .rate .price{font-family:'Anton',sans-serif;font-size:28px;}
.program-card-light .rate .days-label{font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--gray-dark);}

/* ---------- Gallery ---------- */
.gallery{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}
.gallery img{
  width:100%;height:100%;
  object-fit:cover;
  filter:grayscale(1) contrast(1.08);
  aspect-ratio:3/4;
}
.gallery a:nth-child(1){grid-row:span 2;}
.gallery a:nth-child(1) img{aspect-ratio:auto;height:100%;}
@media (max-width:900px){
  .gallery{grid-template-columns:repeat(2,1fr);}
  .gallery a:nth-child(1){grid-row:span 1;}
}

/* ---------- CTA band ---------- */
.cta-band{
  text-align:center;
  padding:110px 0;
}
.cta-band .display{font-size:clamp(38px,7vw,84px);}
.cta-band p{color:var(--gray);margin:18px 0 34px;}

/* ---------- Footer ---------- */
footer{
  background:var(--off-white);
  border-top:1px solid var(--line-light);
  padding:64px 0 32px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:32px;
  padding-bottom:40px;
}
.footer-grid img{height:90px;margin-bottom:16px;}
.footer-grid h4{
  font-family:'Inter',sans-serif;
  font-size:13px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  margin-bottom:16px;
  color:#3a3a37;
}
.footer-grid ul{list-style:none;margin:0;padding:0;}
.footer-grid li{margin-bottom:10px;font-size:14px;}
.footer-grid p{font-size:14px;color:#3a3a37;margin:0 0 8px;}
.footer-bottom{
  border-top:1px solid var(--line-light);
  padding-top:24px;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
  font-size:12px;
  color:#3a3a37;
  letter-spacing:0.04em;
}
@media (max-width:760px){
  .footer-grid{grid-template-columns:1fr 1fr;}
}

/* ---------- Page banner (interior pages) ---------- */
.page-banner{
  background:var(--black);
  color:var(--off-white);
  text-align:center;
  padding:80px 0 60px;
}
.page-banner .display{font-size:clamp(38px,7vw,74px);}
.page-banner p{color:var(--gray);margin-top:16px;}

/* ---------- Utility ---------- */
.mt-0{margin-top:0;}
.center{text-align:center;}
