/* ─── MEMBERSHIP PAGE CUSTOM STYLES ─── */
.mem4-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;align-items:stretch}
@media(max-width:1100px){.mem4-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.mem4-grid{grid-template-columns:1fr}}
.mem-card{background:#181818;border:1px solid #292929;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;position:relative}
.mem-card:hover{transform:translateY(-6px);box-shadow:0 16px 64px rgba(0,0,0,.8);border-color:rgba(252,15,18,.35)}
.mem-card--best{border-color:#FC0F12;box-shadow:0 8px 40px rgba(252,15,18,.3)}
.mem-card--best:hover{box-shadow:0 16px 64px rgba(252,15,18,.45)}
.mem-card__badge{position:absolute;top:0;left:0;right:0;background:#FC0F12;color:#fff;font-family:var(--font-display);font-size:.65rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;text-align:center;padding:6px 12px}
.mem-card__header{padding:2rem 1.5rem 1.25rem;border-bottom:1px solid #292929}
.mem-card--best .mem-card__header{padding-top:3rem}
.mem-card__duration{font-family:var(--font-display);font-size:.7rem;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:#FC0F12;display:block;margin-bottom:.6rem}
.mem-card__name{font-family:var(--font-display);font-size:1.35rem;font-weight:700;color:#F5F5F5;margin:0}
.mem-card__pricing{padding:1.5rem;border-bottom:1px solid #1F1F1F}
.mem-card__price{display:flex;align-items:baseline;gap:.4rem}
.mem-card__currency{font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:#A5A5A5}
.mem-card__amount{font-family:var(--font-display);font-size:2.75rem;font-weight:700;color:#F5F5F5;line-height:1}
.mem-card--best .mem-card__amount{color:#FC0F12}
.mem-card__footer{padding:1.25rem 1.5rem 1.5rem;margin-top:auto}
/* GOODIE */
.goodie-promo{background:#0D0D0D;border-top:1px solid #222;border-bottom:1px solid #222;padding:5rem 0}
.goodie-headline{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.25rem);font-weight:800;letter-spacing:-.02em;color:#F5F5F5;margin-bottom:.6rem}
.goodie-headline span{color:#FC0F12}
.goodie-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
@media(max-width:768px){.goodie-grid{grid-template-columns:1fr}}
.goodie-card{background:#181818;border:1px solid #292929;border-radius:14px;overflow:hidden;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.goodie-card:hover{transform:translateY(-5px);border-color:rgba(252,15,18,.4);box-shadow:0 12px 40px rgba(252,15,18,.15)}
.goodie-card__img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center;background:#f0f0f0}
.goodie-card__body{padding:1.25rem 1.5rem 1.5rem;border-top:1px solid #242424}
.goodie-card__label{font-family:var(--font-display);font-size:.65rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#FC0F12;display:block;margin-bottom:.4rem}
.goodie-card__name{font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:#F5F5F5;margin-bottom:.3rem}
.goodie-card__desc{font-size:.8rem;color:#A5A5A5;line-height:1.5}
.goodie-note{display:inline-flex;align-items:center;gap:.75rem;background:rgba(252,15,18,.08);border:1px solid rgba(252,15,18,.25);border-radius:8px;padding:1rem 1.5rem;margin-top:2.5rem;font-family:var(--font-display);font-size:.8rem;font-weight:600;letter-spacing:.05em;color:#F5F5F5}
/* PT */
/* PT WITH CLIENT BANNER BACKGROUND */
.pt-section {
  position: relative;
  background: #08080A url('assets/personal-training-banner.webp') center center / cover no-repeat;
  padding: 7rem 0;
  overflow: hidden;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.pt-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 8, 10, 0.88) 0%, rgba(8, 8, 10, 0.74) 45%, rgba(8, 8, 10, 0.94) 100%),
              radial-gradient(ellipse at 50% 20%, rgba(252, 15, 18, 0.15) 0%, transparent 60%);
  pointer-events: none;
  z-index: 1;
}
.pt-section > .container {
  position: relative;
  z-index: 2;
}
.pt-separator{display:flex;align-items:center;gap:1rem;margin-bottom:3rem}
.pt-separator::before,.pt-separator::after{content:'';flex:1;height:1px;background:rgba(255,255,255,0.1)}
.pt-separator span{font-family:var(--font-display);font-size:.65rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#FC0F12;white-space:nowrap}
.pt-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;align-items:stretch}
@media(max-width:1100px){.pt-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.pt-grid{grid-template-columns:1fr}}
.pt-card{background:rgba(18,18,22,0.8);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,0.1);border-radius:14px;padding:2.25rem 1.75rem;display:flex;flex-direction:column;transition:transform .3s cubic-bezier(0.16,1,0.3,1),box-shadow .3s ease,border-color .3s ease;position:relative;overflow:hidden;box-shadow:0 16px 40px rgba(0,0,0,0.6)}
.pt-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#FC0F12,#D4090C);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.pt-card:hover::before{transform:scaleX(1)}
.pt-card:hover{transform:translateY(-6px);box-shadow:0 20px 50px rgba(0,0,0,.8),0 0 25px rgba(252,15,18,0.2);border-color:rgba(252,15,18,.45)}
.pt-card__sessions{font-family:var(--font-display);font-size:3.5rem;font-weight:800;color:#FC0F12;line-height:1}
.pt-card__sessions-label{font-family:var(--font-display);font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#A5A5A5;margin-top:.25rem;margin-bottom:1.5rem;display:block}
.pt-card__price{display:flex;align-items:baseline;gap:.35rem;margin-bottom:1.5rem}
.pt-card__currency{font-family:var(--font-display);font-size:1rem;font-weight:600;color:#A5A5A5}
.pt-card__amount{font-family:var(--font-display);font-size:2.25rem;font-weight:700;color:#F5F5F5;line-height:1}
.pt-card__footer{margin-top:auto}

/* GROUP CLASSES SECTION */
.gc-section{background:#0C0C0E;padding:7rem 0;border-top:1px solid #1E1E22;border-bottom:1px solid #1E1E22;position:relative}
.gc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin:3.5rem 0 2.5rem}
@media(max-width:1100px){.gc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.gc-grid{grid-template-columns:1fr}}
.gc-item{background:#141418;border:1px solid rgba(255,255,255,0.08);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:transform .3s cubic-bezier(0.16,1,0.3,1),border-color .3s ease,box-shadow .3s ease}
.gc-item:hover{transform:translateY(-6px);border-color:rgba(252,15,18,0.4);box-shadow:0 16px 40px rgba(0,0,0,0.6),0 0 20px rgba(252,15,18,0.15)}
.gc-item__img-wrap{position:relative;width:100%;height:190px;overflow:hidden}
.gc-item__img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.gc-item:hover .gc-item__img{transform:scale(1.08)}
.gc-item__badge{position:absolute;top:12px;left:12px;background:rgba(12,12,14,0.85);backdrop-filter:blur(8px);border:1px solid rgba(252,15,18,0.4);color:#FC0F12;font-family:var(--font-display);font-size:.65rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;padding:4px 10px;border-radius:9999px}
.gc-item__body{padding:1.5rem;display:flex;flex-direction:column;flex:1}
.gc-item__title{font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:#F5F5F5;margin-bottom:.5rem}
.gc-item__desc{font-size:.825rem;color:#A5A5A5;line-height:1.6}

/* 12-Session Pass Card */
.gc-pass-card{background:linear-gradient(135deg,rgba(24,24,30,0.95) 0%,rgba(18,18,22,0.95) 100%);border:1px solid rgba(252,15,18,0.35);border-radius:16px;padding:2.5rem 3rem;display:flex;align-items:center;justify-content:space-between;gap:2.5rem;box-shadow:0 16px 48px rgba(0,0,0,0.6),inset 0 1px 0 rgba(255,255,255,0.1);position:relative;overflow:hidden;margin-top:2rem}
.gc-pass-card::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%;background:#FC0F12}
@media(max-width:850px){.gc-pass-card{flex-direction:column;text-align:center;padding:2rem 1.5rem}}
.gc-pass-info{display:flex;flex-direction:column;gap:.5rem}
.gc-pass-label{font-family:var(--font-display);font-size:.7rem;font-weight:700;letter-spacing:.25em;text-transform:uppercase;color:#FC0F12}
.gc-pass-title{font-family:var(--font-display);font-size:1.75rem;font-weight:800;color:#F5F5F5;margin:0}
.gc-pass-desc{font-size:.875rem;color:#A5A5A5;max-width:540px;line-height:1.6;margin:0}
.gc-pass-pricing{display:flex;flex-direction:column;align-items:flex-end;gap:1rem;flex-shrink:0}
@media(max-width:850px){.gc-pass-pricing{align-items:center}}
.gc-pass-price-box{display:flex;align-items:baseline;gap:.4rem}
.gc-pass-currency{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:#A5A5A5}
.gc-pass-amount{font-family:var(--font-display);font-size:3rem;font-weight:800;color:#FC0F12;line-height:1}
.gc-pass-unit{font-size:.75rem;color:#888;text-transform:uppercase;letter-spacing:.1em;font-weight:600}

/* LOGO */
.nav__logo-img{height:48px;width:auto;object-fit:contain;display:block;background:transparent !important;transition:transform .25s ease, filter .25s ease;filter:drop-shadow(0 2px 8px rgba(0,0,0,0.45))}
.nav__logo:hover .nav__logo-img{transform:scale(1.04);filter:drop-shadow(0 4px 16px rgba(252,15,18,0.4))}
.footer__logo-img{height:42px;width:auto;object-fit:contain;display:block;background:transparent !important}
/* comparison */
.comparison-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #222;border-radius:12px}
.comparison-table{width:100%;border-collapse:collapse;font-size:.875rem}
.comparison-table th,.comparison-table td{padding:1rem 1.25rem;text-align:left;border-bottom:1px solid #1f1f1f;white-space:nowrap}
.comparison-table th{background:#181818;font-family:var(--font-display);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:#A5A5A5}
.comparison-table th.highlight{color:#FC0F12}
.comparison-table td{color:#A5A5A5}
.comparison-table td:first-child{color:#F5F5F5}
.comparison-table td.highlight{background:rgba(252,15,18,.04)}
.comparison-table tr:last-child td{border-bottom:none}
.check-icon{color:#FC0F12}

/* FAQ ACCORDION STYLES */
.faq-grid{display:flex;flex-direction:column;gap:0.85rem;margin-top:2.5rem}
.faq-item{background:#141418;border:1px solid rgba(255,255,255,0.08);border-radius:12px;overflow:hidden;transition:border-color .25s ease,box-shadow .25s ease,background .25s ease}
.faq-item:hover{border-color:rgba(252,15,18,0.3);box-shadow:0 6px 20px rgba(0,0,0,0.4)}
.faq-item.open{border-color:rgba(252,15,18,0.45);background:#16161B;box-shadow:0 10px 30px rgba(0,0,0,0.5),0 0 20px rgba(252,15,18,0.1)}
.faq-question{width:100%;text-align:left;padding:1.35rem 1.75rem;background:none;border:none;color:#F5F5F5;font-family:var(--font-display);font-size:.95rem;font-weight:600;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;transition:color .2s ease}
.faq-question:hover,.faq-item.open .faq-question{color:#FFFFFF}
.faq-icon{color:#FC0F12;font-size:0.85rem;transition:transform .3s cubic-bezier(0.16,1,0.3,1);flex-shrink:0;display:inline-block}
.faq-item.open .faq-icon{transform:rotate(180deg)}
.faq-answer{display:none;padding:0 1.75rem 1.5rem;background:transparent;font-size:.9rem;color:#B5B5B5;line-height:1.75;border-top:1px solid rgba(255,255,255,0.05);padding-top:1rem}
.faq-item.open .faq-answer{display:block;animation:faqFadeIn .25s ease-out}
@keyframes faqFadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
  
/* GOODIE IMAGES: scaled from the top-left so the corner watermark falls outside the frame */
.goodie-card__media{width:100%;aspect-ratio:1/1;overflow:hidden;background:#0d0d0d}
.goodie-card__media picture{display:block;width:100%;height:100%}
.goodie-card__media .goodie-card__img{width:100%;height:100%;aspect-ratio:auto;transform:scale(1.12);transform-origin:top left}

/* Mobile: separator label wraps instead of being cut off */
@media(max-width:600px){
  .pt-separator{gap:.75rem}
  .pt-separator span{white-space:normal;text-align:center;line-height:1.5;max-width:80%}
  .pt-separator::before,.pt-separator::after{min-width:12px}
}
