/* ============================================================
   RIVER CITY AQUATICS MASTERS — SHARED STYLESHEET
   Used by every page: index, about, practice, coaches, join, contact
   ============================================================ */

:root{
  --black:#050505;
  --deep:#0a0a0a;
  --steel:#121212;
  --iron:#232323;
  --white:#f2ede6;
  --mist:#aaa89e;
  --ash:#6d6c66;
  --primary:#2f6fef;
  --primary-dim:rgba(47,111,239,.35);
  --accent:#8fd424;
  --accent-dim:rgba(143,212,36,.35);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--black);
  color:var(--white);
  font-family:'Barlow',Arial,sans-serif;
  font-weight:300;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:'Bebas Neue',cursive;font-weight:400;margin:0;text-wrap:balance;}
p{margin:0;}
a{color:inherit;}
img{display:block;}
::selection{background:var(--accent);color:var(--black);}

.label{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.35em;
  text-transform:uppercase;
  color:var(--accent);
}

/* ---------- NAV ---------- */
header{
  position:sticky; top:0; z-index:100;
  background:rgba(5,5,5,.88);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--iron);
}
.nav-wrap{
  max-width:1180px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  padding:.9rem 1.5rem;
}
.wordmark{
  text-decoration:none;
  display:flex; align-items:center;
}
.wordmark img{display:block; height:38px; width:auto;}
nav ul{
  list-style:none; display:flex; gap:2rem; margin:0; padding:0;
}
nav a{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--mist);
  transition:color .2s;
}
nav a:hover, nav a:focus-visible{color:var(--accent);}
nav a.active{color:var(--accent);}
.nav-cta{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.72rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color:var(--black); background:var(--accent);
  padding:.55rem 1.1rem; text-decoration:none; white-space:nowrap;
}
.mobile-btn{display:none; background:none; border:1px solid var(--iron); color:var(--white); width:38px; height:38px; cursor:pointer;}
.mobile-menu{display:none;}

/* ---------- HOME HERO ---------- */
.hero{
  position:relative;
  overflow:hidden;
  background:var(--black);
  padding:5.5rem 1.5rem 4rem;
}
.hero-bg{
  position:absolute; inset:0; z-index:0;
  background-size:cover; background-position:center 60%; background-repeat:no-repeat;
}
.hero-bg::after{
  content:''; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(5,5,5,.62) 0%, rgba(5,5,5,.42) 35%, rgba(5,5,5,.68) 100%),
    linear-gradient(90deg, rgba(5,5,5,.4) 0%, rgba(5,5,5,.08) 45%, rgba(5,5,5,.4) 100%);
}
.hero-lanes{position:absolute; inset:0; opacity:.08; pointer-events:none; z-index:1;}
.hero-lanes svg{position:absolute; bottom:0; width:100%; height:55%;}
.hero-ghost{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-55%);
  font-family:'Bebas Neue',cursive; font-size:min(32vw,20rem); line-height:1;
  color:rgba(242,237,230,.025); white-space:nowrap; pointer-events:none; user-select:none;
}
.hero-inner{position:relative; z-index:1; max-width:1180px; margin:0 auto;}
.hero-title{
  font-size:clamp(3rem,9vw,6.2rem); line-height:.9; letter-spacing:.01em;
  margin:.6rem 0 .3rem;
  text-shadow:0 3px 18px rgba(0,0,0,.6);
}
.hero-title em{font-style:normal; color:var(--accent); display:block;}
.hero-sub{
  font-family:'Barlow Condensed',sans-serif; font-style:italic; font-weight:300;
  font-size:clamp(1rem,2vw,1.3rem); color:var(--mist); max-width:520px; line-height:1.6;
  margin-bottom:2rem;
}
.hero-actions{display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:3rem;}
.btn{
  font-family:'Barlow Condensed',sans-serif; font-size:.8rem; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; text-decoration:none;
  padding:.9rem 1.7rem; display:inline-block; border:1px solid transparent; cursor:pointer;
}
.btn-solid{background:var(--accent); color:var(--black);}
.btn-ghost{border-color:var(--iron); color:var(--white);}
.btn-ghost:hover{border-color:var(--accent); color:var(--accent);}

.hero-chips{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--iron); border:1px solid var(--iron); max-width:760px;
}
.hero-chip{background:var(--deep); padding:1.1rem 1.3rem;}
.hero-chip .day{
  font-family:'Barlow Condensed',sans-serif; font-size:.68rem; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--accent); margin-bottom:.35rem;
}
.hero-chip .time{font-family:'Bebas Neue',cursive; font-size:1.4rem; letter-spacing:.02em;}

/* ---------- PAGE HERO (about / practice / coaches / join / contact) ---------- */
.page-hero{
  position:relative; overflow:hidden;
  background:var(--black);
  padding:6.5rem 1.5rem 3.2rem;
  border-bottom:1px solid var(--iron);
}
.page-hero--photo{padding-top:9rem; padding-bottom:4.5rem;}
.page-hero-photo{
  position:absolute; inset:0; background-size:cover; background-position:center;
}
.page-hero-scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(5,5,5,.55) 0%, rgba(5,5,5,.88) 78%, var(--black) 100%);
}
.page-hero-lanes{position:absolute; inset:0; opacity:.06; pointer-events:none;}
.page-hero-lanes svg{position:absolute; bottom:0; width:100%; height:60%;}
.page-hero-inner{position:relative; z-index:1; max-width:1180px; margin:0 auto;}
.page-hero h1{
  font-size:clamp(2.6rem,7vw,4.6rem); line-height:.92; margin-top:.5rem;
}
.page-hero h1 em{font-style:normal; color:var(--accent);}
.page-hero p{
  font-family:'Barlow Condensed',sans-serif; font-style:italic; font-weight:300;
  color:var(--mist); max-width:540px; line-height:1.6; margin-top:.9rem; font-size:1.05rem;
}

/* ---------- SECTIONS / SHARED LAYOUT ---------- */
section{padding:5rem 1.5rem;}
.section-inner{max-width:1180px; margin:0 auto;}
.divider{height:1px; background:linear-gradient(to right,transparent,var(--iron) 20%,var(--iron) 80%,transparent); max-width:1180px; margin:0 auto;}
.section-head{margin-bottom:2.5rem; max-width:640px;}
.section-head h2{font-size:clamp(2.2rem,5vw,3.2rem); color:var(--white); margin-top:.5rem;}
.prose{max-width:660px; display:flex; flex-direction:column; gap:1.1rem;}
.prose p{font-size:1rem; line-height:1.8; color:var(--mist); font-weight:300;}
.prose strong{color:var(--white); font-weight:600;}
.prose em{color:var(--accent); font-style:italic;}

.who-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--iron); border:1px solid var(--iron); margin-top:3rem;}
.who-card{background:var(--deep); padding:2rem 1.6rem;}
.who-card .num{font-family:'Bebas Neue',cursive; font-size:2.2rem; color:var(--primary); line-height:1; margin-bottom:.6rem;}
.who-card h3{font-family:'Barlow Condensed',sans-serif; font-size:1rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--white); margin-bottom:.5rem;}
.who-card p{font-size:.88rem; color:var(--mist); line-height:1.7;}

/* ---------- HOME QUICK LINKS ---------- */
.quick-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--iron); border:1px solid var(--iron);}
.quick-card{background:var(--deep); padding:2rem 1.5rem; text-decoration:none; transition:background .2s;}
.quick-card:hover{background:var(--steel);}
.quick-card .num{font-family:'Bebas Neue',cursive; font-size:1.8rem; color:var(--primary); line-height:1; margin-bottom:.7rem;}
.quick-card h3{font-family:'Barlow Condensed',sans-serif; font-size:.95rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--white); margin-bottom:.4rem;}
.quick-card p{font-size:.8rem; color:var(--mist); line-height:1.6;}
.quick-card .go{
  display:inline-block; margin-top:.9rem; font-family:'Barlow Condensed',sans-serif;
  font-size:.65rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--accent);
}

/* ---------- PRACTICE ---------- */
.practice-table{border:1px solid var(--iron); margin-top:2.5rem;}
.practice-row{
  display:grid; grid-template-columns:1.4fr 1fr 1fr; align-items:center;
  padding:1.5rem 1.8rem; border-bottom:1px solid var(--iron); gap:1rem;
}
.practice-row:last-child{border-bottom:none;}
.practice-row .day{font-family:'Bebas Neue',cursive; font-size:1.7rem; letter-spacing:.02em; color:var(--white);}
.practice-row .period{
  font-family:'Barlow Condensed',sans-serif; font-size:.7rem; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ash);
}
.practice-row .time{
  font-family:'Bebas Neue',cursive; font-size:1.5rem; color:var(--accent); text-align:right;
}
.practice-note{
  margin-top:1.8rem; padding:1.1rem 1.4rem; border-left:2px solid var(--primary);
  background:var(--deep); font-size:.85rem; color:var(--mist); line-height:1.7; max-width:660px;
}
.practice-loc{
  display:flex; align-items:center; gap:.6rem; margin-top:1.8rem;
  font-family:'Barlow Condensed',sans-serif; font-size:.78rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--mist);
}
.practice-loc a{color:var(--primary); text-decoration:none; border-bottom:1px solid var(--primary-dim);}

.visitor-box{
  margin-top:2.5rem; padding:1.8rem; border:1px solid var(--iron); border-top:2px solid var(--accent);
  background:var(--deep); max-width:660px;
}
.visitor-box .label{margin-bottom:.6rem;}
.visitor-box p{font-size:.9rem; color:var(--mist); line-height:1.75; margin-bottom:.8rem;}
.visitor-box p:last-child{margin-bottom:0;}
.visitor-box strong{color:var(--white);}

.facility-gallery{
  display:grid; grid-template-columns:1.6fr 1fr; grid-template-rows:1fr 1fr;
  gap:2px; background:var(--iron); border:1px solid var(--iron);
  margin-top:3rem; max-width:900px; aspect-ratio:16/9;
}
.facility-gallery img{width:100%; height:100%; object-fit:cover; display:block;}
.facility-gallery a:first-child{grid-row:1/3;}
.facility-gallery a{display:block; overflow:hidden; position:relative;}
.facility-gallery a::after{content:'';}
.facility-gallery-cap{margin-top:1rem; font-family:'Barlow Condensed',sans-serif; font-size:.78rem; letter-spacing:.05em; color:var(--ash); max-width:660px;}

/* ---------- CALLOUT BANNERS ---------- */
.free-banner{
  display:flex; align-items:center; gap:1.2rem; flex-wrap:wrap;
  background:var(--accent); color:var(--black);
  padding:1.5rem 1.8rem; margin-bottom:3rem; max-width:900px;
}
.free-banner .tag{
  font-family:'Bebas Neue',cursive; font-size:1.9rem; letter-spacing:.02em; line-height:1; white-space:nowrap;
}
.free-banner p{font-family:'Barlow Condensed',sans-serif; font-size:.92rem; font-weight:600; line-height:1.5; margin:0;}

.usms-box{
  margin-top:2.5rem; padding:1.8rem 2rem; border:1px solid var(--iron); border-left:3px solid var(--primary);
  background:var(--deep); max-width:900px;
}
.usms-box .label{color:var(--primary); margin-bottom:.6rem;}
.usms-box p{font-size:.95rem; color:var(--white); line-height:1.8; font-weight:400;}
.usms-box p strong{color:var(--white);}
.usms-box a{color:var(--primary); text-decoration:underline; text-underline-offset:2px;}

.promo-banner{
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap;
  background:var(--deep); border:1px solid var(--iron); border-left:3px solid var(--accent);
  padding:1.8rem 2rem; max-width:1180px; margin:0 auto;
}
.promo-banner .label{color:var(--accent); margin-bottom:.5rem;}
.promo-banner h3{
  font-family:'Barlow Condensed',sans-serif; font-weight:600; font-size:1.2rem;
  color:var(--white); max-width:640px; line-height:1.4;
}
.promo-banner .btn{flex-shrink:0;}

/* ---------- FOUNDING MEMBERS / FORMS ---------- */
.rate-compare{
  display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--iron); border:1px solid var(--iron);
  margin-top:3rem; max-width:640px;
}
.rate-card{background:var(--deep); padding:1.8rem 1.6rem;}
.rate-card-featured{background:var(--steel); border-top:2px solid var(--accent);}
.rate-card .price-badge{position:static; display:inline-block; margin-bottom:.8rem;}
.rate-card .price-amount{font-size:2.4rem; margin-bottom:.6rem;}
.rate-card p{font-size:.85rem; color:var(--mist); line-height:1.6;}

.founding-progress{margin-top:3rem; max-width:640px;}
.founding-progress-head{
  display:flex; justify-content:space-between; gap:1rem;
  font-family:'Barlow Condensed',sans-serif; font-size:.78rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--mist); margin-bottom:.6rem;
}
.progress-track{width:100%; height:8px; background:var(--iron);}
.progress-fill{height:100%; background:var(--accent);}

.rcam-form{max-width:640px; margin-top:2.5rem; display:flex; flex-direction:column; gap:1.4rem;}
.hp-field{position:absolute; left:-9999px; top:-9999px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:1.4rem;}
.form-field{display:flex; flex-direction:column; gap:.5rem;}
.form-field label{
  font-family:'Barlow Condensed',sans-serif; font-size:.72rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:var(--mist);
}
.form-field input[type="text"],
.form-field input[type="email"],
.form-field input[type="tel"],
.form-field select,
.form-field textarea{
  background:var(--deep); border:1px solid var(--iron); color:var(--white);
  padding:.8rem .9rem; font-family:'Barlow',sans-serif; font-size:.92rem;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:none; border-color:var(--primary);
}
.form-field textarea{resize:vertical;}
.form-checkboxes{display:flex; flex-direction:column; gap:.6rem; margin-top:.2rem;}
.form-check{
  display:flex; align-items:center; gap:.6rem; font-family:'Barlow',sans-serif;
  font-size:.88rem; color:var(--mist); text-transform:none; letter-spacing:normal; font-weight:400;
}
.form-check input{accent-color:var(--accent); width:16px; height:16px;}
.form-fineprint{font-size:.78rem; color:var(--ash); line-height:1.6; max-width:520px;}
.form-success{
  margin-top:2.5rem; padding:1.8rem 2rem; border:1px solid var(--iron); border-top:2px solid var(--accent);
  background:var(--deep); max-width:640px;
}
.form-success .label{color:var(--accent); margin-bottom:.6rem;}
.form-success p{font-size:.9rem; color:var(--mist); line-height:1.75; margin-bottom:0;}

/* ---------- PRICING ---------- */
.pricing-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--iron); border:1px solid var(--iron); margin-top:2.5rem;}
.price-card{background:var(--deep); padding:2.2rem 1.6rem; display:flex; flex-direction:column; position:relative;}
.price-card.featured{background:var(--steel);}
.price-badge{
  position:absolute; top:-1px; left:-1px; right:-1px;
  background:var(--accent); color:var(--black); text-align:center;
  font-family:'Barlow Condensed',sans-serif; font-size:.62rem; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; padding:.4rem;
}
.price-tier{
  font-family:'Barlow Condensed',sans-serif; font-size:.85rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--accent); margin-bottom:.8rem;
}
.price-card.featured .price-tier{margin-top:1.6rem;}
.price-amount{font-family:'Bebas Neue',cursive; font-size:2.8rem; color:var(--white); line-height:1;}
.price-amount sup{font-size:1.1rem; color:var(--mist); font-family:'Barlow Condensed',sans-serif; vertical-align:top; top:.3em; position:relative;}
.price-period{
  font-family:'Barlow Condensed',sans-serif; font-size:.72rem; color:var(--ash); letter-spacing:.1em;
  text-transform:uppercase; margin-bottom:1.3rem;
}
.price-desc{font-size:.85rem; color:var(--mist); line-height:1.7; flex-grow:1;}
.price-desc strong{color:var(--white);}
.price-card.placeholder{border:1px dashed var(--iron);}
.price-card.placeholder .price-amount, .price-card.placeholder .price-tier{color:var(--ash);}

.addon-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--iron); border:1px solid var(--iron); margin-top:1.2rem;}
.addon-card{background:var(--deep); padding:1.6rem 1.5rem;}
.addon-card .price-tier{margin-bottom:.5rem;}
.addon-card .price-amount{font-size:1.9rem;}
.addon-card p{font-size:.83rem; color:var(--mist); line-height:1.7; margin-top:.5rem;}
.coach-price-row{
  display:flex; align-items:baseline; justify-content:space-between;
  padding:.4rem 0; border-top:1px solid var(--iron);
}
.coach-price-row:first-of-type{border-top:none; margin-top:.2rem;}
.coach-price-name{
  font-family:'Barlow Condensed',sans-serif; font-size:1rem; font-weight:600;
  letter-spacing:.03em; color:var(--white);
}
.coach-price-amt{font-family:'Bebas Neue',cursive; font-size:1.5rem; color:var(--accent);}

.price-fineprint{margin-top:2.5rem; max-width:660px; display:flex; flex-direction:column; gap:.7rem;}
.price-fineprint p{font-size:.83rem; color:var(--ash); line-height:1.7;}
.price-fineprint strong{color:var(--mist);}

/* ---------- FAQ ---------- */
.faq-list{max-width:760px; margin-top:2.5rem; display:flex; flex-direction:column; gap:1px; background:var(--iron); border:1px solid var(--iron);}
.faq-item{background:var(--deep);}
.faq-item summary{
  cursor:pointer; list-style:none; padding:1.3rem 1.6rem;
  font-family:'Barlow Condensed',sans-serif; font-size:.95rem; font-weight:700;
  letter-spacing:.02em; color:var(--white); display:flex; justify-content:space-between; align-items:center; gap:1rem;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+"; font-family:'Bebas Neue',cursive; font-size:1.4rem; color:var(--accent); flex-shrink:0;
}
.faq-item[open] summary::after{content:"–";}
.faq-item p{padding:0 1.6rem 1.4rem; font-size:.88rem; color:var(--mist); line-height:1.8; max-width:640px;}
.faq-item p:has(+ .faq-glossary){padding-bottom:.6rem;}
.faq-glossary{
  margin:0; padding:0 1.6rem 1rem; list-style:none; max-width:640px;
  display:flex; flex-direction:column; gap:.7rem;
}
.faq-glossary li{font-size:.85rem; color:var(--mist); line-height:1.7;}
.faq-glossary strong{color:var(--white); font-family:'Barlow Condensed',sans-serif; letter-spacing:.03em;}

/* ---------- MEETS ---------- */
.meets-group{margin-top:2.5rem;}
.meets-group + .meets-group{margin-top:3rem;}
.meets-group-title{
  font-family:'Barlow Condensed',sans-serif; font-size:.78rem; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--mist); margin-bottom:1rem;
  padding-bottom:.6rem; border-bottom:1px solid var(--iron);
}
.meet-row{
  display:grid; grid-template-columns:110px 1fr auto; align-items:center; gap:1.2rem;
  padding:1.1rem 0; border-bottom:1px solid var(--iron);
}
.meet-row:last-child{border-bottom:none;}
.meet-date{font-family:'Bebas Neue',cursive; font-size:1.2rem; color:var(--accent); letter-spacing:.02em;}
.meet-name{font-size:.92rem; color:var(--white);}
.meet-loc{display:block; font-size:.78rem; color:var(--ash); margin-top:.15rem;}
.meet-link{
  font-family:'Barlow Condensed',sans-serif; font-size:.68rem; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; color:var(--primary); text-decoration:none; white-space:nowrap;
}

@media (max-width:820px){
  .pricing-grid, .addon-grid{grid-template-columns:1fr;}
  .meet-row{grid-template-columns:1fr; gap:.3rem;}
  .meet-link{margin-top:.4rem;}
  .facility-gallery{grid-template-columns:1fr; grid-template-rows:auto; aspect-ratio:auto;}
  .facility-gallery a{aspect-ratio:4/3;}
  .facility-gallery a:first-child{grid-row:auto;}
  .promo-banner{padding:1.5rem;}
  .promo-banner .btn{width:100%; text-align:center;}
  .form-row{grid-template-columns:1fr;}
}

/* ---------- COACHES ---------- */
.coach-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--iron); border:1px solid var(--iron); margin-top:2.5rem;}
.coach-card{background:var(--deep); padding:2.4rem 2rem;}
.coach-photo{
  width:88px; height:88px; border-radius:50%; object-fit:cover; margin-bottom:1.2rem;
  border:2px solid var(--iron);
}
.coach-photo-placeholder{
  width:88px; height:88px; border-radius:50%; margin-bottom:1.2rem;
  border:2px dashed var(--iron); display:flex; align-items:center; justify-content:center;
  color:var(--ash); font-family:'Bebas Neue',cursive; font-size:1.6rem;
}
.coach-name{font-family:'Bebas Neue',cursive; font-size:1.9rem; letter-spacing:.01em; color:var(--white);}
.coach-role{
  font-family:'Barlow Condensed',sans-serif; font-size:.75rem; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase; color:var(--accent); margin:.3rem 0 1rem;
}
.coach-bio{font-size:.88rem; line-height:1.8; color:var(--mist);}
.coach-cred{
  display:block; margin-top:1.2rem; font-family:'Barlow Condensed',sans-serif;
  font-size:.68rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--ash);
}

/* ---------- JOIN ---------- */
.join-steps{display:flex; flex-direction:column; margin-top:2.5rem;}
.join-step{
  display:grid; grid-template-columns:70px 1fr; gap:1.5rem;
  padding:1.8rem 0; border-bottom:1px solid var(--iron);
}
.join-step:first-child{padding-top:0;}
.join-step:last-child{border-bottom:none;}
.join-step-num{
  font-family:'Bebas Neue',cursive; font-size:2.4rem; color:var(--iron); line-height:1;
}
.join-step-title{
  font-family:'Barlow Condensed',sans-serif; font-size:1.05rem; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; color:var(--white); margin-bottom:.5rem;
}
.join-step p{font-size:.9rem; color:var(--mist); line-height:1.75;}
.join-step-tag{
  display:inline-block; margin-top:.7rem; font-family:'Barlow Condensed',sans-serif;
  font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--primary); text-decoration:none; border-bottom:1px solid var(--primary-dim);
}

/* ---------- CONTACT ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:3rem; margin-top:2.5rem;}
.contact-item{margin-bottom:1.4rem;}
.contact-item .l{
  font-family:'Barlow Condensed',sans-serif; font-size:.68rem; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ash); margin-bottom:.3rem;
}
.contact-item .v{font-size:1rem; color:var(--white);}
.contact-item .v a{color:var(--primary); text-decoration:none;}
.contact-cta-row{display:flex; gap:1rem; flex-wrap:wrap; margin-top:1.5rem;}

footer{
  border-top:1px solid var(--iron); padding:2.8rem 1.5rem;
  display:flex; flex-direction:column; align-items:center; gap:1rem; text-align:center;
}
.footer-logo{display:block; height:44px; width:auto; margin-bottom:.4rem;}
.footer-links{display:flex; gap:1.8rem; flex-wrap:wrap; justify-content:center;}
.footer-links a{
  font-family:'Barlow Condensed',sans-serif; font-size:.68rem; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ash); text-decoration:none;
}
.footer-links a:hover{color:var(--accent);}
.footer-copy{font-family:'Barlow Condensed',sans-serif; font-size:.7rem; color:var(--ash); letter-spacing:.05em;}

.sponsor-strip{margin-top:.8rem; padding-top:2rem; border-top:1px solid var(--iron); width:100%; max-width:640px;}
.sponsor-label{
  font-family:'Barlow Condensed',sans-serif; font-size:.62rem; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ash); margin-bottom:1.2rem;
}
.sponsor-logos{display:flex; align-items:center; justify-content:center; gap:1.6rem; flex-wrap:wrap;}
.sponsor-chip{
  background:var(--white); padding:.7rem 1.1rem; display:inline-flex; align-items:center;
  border-radius:2px;
}
.sponsor-chip img{display:block; height:32px; width:auto;}
.sponsor-logo-plain{display:inline-flex; align-items:center;}
.sponsor-logo-plain img{display:block; height:26px; width:auto; opacity:.9;}
.sponsor-badge{
  display:inline-flex; align-items:center; justify-content:center;
  width:58px; height:58px; border-radius:50%;
  background:var(--white); border:1px solid var(--iron);
  box-shadow:0 3px 14px rgba(0,0,0,.45);
  overflow:hidden; padding:3px;
}
.sponsor-badge img{display:block; width:100%; height:100%; object-fit:cover; border-radius:50%;}
.sponsor-badge-wrap{
  display:inline-flex; flex-direction:column; align-items:center; gap:.5rem;
  text-decoration:none;
}
.sponsor-badge-name{
  font-family:'Barlow Condensed',sans-serif; font-size:.64rem; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--ash);
}
.sponsor-badge-wrap:hover .sponsor-badge-name{color:var(--accent);}

@media (max-width:820px){
  nav ul, .nav-cta{display:none;}
  .mobile-btn{display:block;}
  .mobile-menu.open{
    display:flex; flex-direction:column; gap:.2rem;
    position:fixed; inset:60px 0 0 0; background:var(--black); z-index:99;
    padding:1.5rem; overflow-y:auto;
  }
  .mobile-menu a{
    font-family:'Barlow Condensed',sans-serif; font-size:1.1rem; font-weight:700;
    letter-spacing:.1em; text-transform:uppercase; color:var(--white); text-decoration:none;
    padding:1rem 0; border-bottom:1px solid var(--iron);
  }
  .hero-chips, .who-grid, .coach-grid, .contact-grid{grid-template-columns:1fr;}
  .quick-grid{grid-template-columns:repeat(2,1fr);}
  .practice-row{grid-template-columns:1fr; gap:.3rem; text-align:left;}
  .practice-row .time{text-align:left;}
}
