/* ============================================================
   LOFTON BASEBALL TRAINING — shared styles (v2 modern)
   Palette: chalk white / royal blue / seam red / navy ink
   Type: Anton (display) · Graduate (varsity labels) · Barlow (body)
   ============================================================ */

:root{
  --chalk:#F6F4EE;
  --white:#FFFFFF;
  --royal:#1F3BB3;
  --royal-deep:#16297E;
  --ink:#0E1734;
  --stitch:#A81C1C;
  --gold:#F0B429;
  --line:#E4DFD2;
  --muted:#5B6178;
  --max:1160px;
  --r:18px;
  --shadow-soft:0 6px 24px rgba(14,23,52,.07), 0 2px 6px rgba(14,23,52,.05);
  --shadow-lift:0 22px 48px rgba(14,23,52,.16), 0 6px 16px rgba(14,23,52,.08);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Barlow',system-ui,sans-serif;
  background:var(--chalk);
  color:var(--ink);
  line-height:1.6;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;}
a{color:inherit;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px;}

/* ---------- type roles ---------- */
.display{
  font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;
  letter-spacing:.015em;line-height:1.02;
}
.eyebrow{
  font-family:'Graduate',serif;font-size:12.5px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--stitch);
}
.eyebrow.on-dark{color:#F3C8C8;}

/* ---------- glass header ---------- */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(255,255,255,.8);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(14,23,52,.08);
}
.header-inner{
  max-width:var(--max);margin:0 auto;padding:10px 24px;
  display:flex;align-items:center;gap:20px;
}
.logo-link{display:flex;align-items:center;gap:12px;text-decoration:none;}
.logo-link img{height:52px;width:auto;transition:transform .25s ease;}
.logo-link:hover img{transform:rotate(-4deg) scale(1.05);}
.logo-word{font-family:'Graduate',serif;font-size:14px;letter-spacing:.1em;color:var(--ink);line-height:1.3;}
.main-nav{margin-left:auto;display:flex;align-items:center;gap:8px;}
.main-nav a{
  text-decoration:none;font-weight:600;font-size:15px;color:var(--ink);
  padding:9px 16px;border-radius:999px;transition:background .18s ease,color .18s ease;
}
.main-nav a:hover{background:rgba(31,59,179,.08);}
.main-nav a.active{background:var(--royal);color:#fff;}
.btn-call{
  background:var(--stitch);color:#fff !important;margin-left:8px;
  padding:10px 20px;border-radius:999px;font-weight:700;white-space:nowrap;
  box-shadow:0 6px 18px rgba(168,28,28,.32);
}
.btn-call:hover{background:#8C1414 !important;}

.nav-toggle{display:none;margin-left:auto;background:rgba(255,255,255,.7);
  border:1.5px solid rgba(14,23,52,.2);border-radius:999px;padding:9px 16px;
  font-family:'Graduate',serif;font-size:11.5px;letter-spacing:.12em;cursor:pointer;color:var(--ink);}
@media (max-width:860px){
  .nav-toggle{display:block;}
  .main-nav{
    display:none;position:absolute;top:100%;left:12px;right:12px;
    background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
    border:1px solid rgba(14,23,52,.08);border-radius:20px;
    box-shadow:var(--shadow-lift);
    flex-direction:column;align-items:stretch;padding:14px;gap:6px;
  }
  .main-nav.open{display:flex;}
  .main-nav a{padding:13px 16px;}
  .btn-call{margin-left:0;text-align:center;}
  .logo-link img{height:44px;}
  .logo-word{font-size:12.5px;}
}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;text-decoration:none;font-weight:700;font-size:16px;
  padding:15px 32px;border-radius:999px;
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn:active{transform:translateY(0);}
.btn-primary{background:linear-gradient(135deg,#2748D6,var(--royal-deep));color:#fff;box-shadow:0 10px 26px rgba(31,59,179,.35);}
.btn-outline-light{border:1.5px solid rgba(255,255,255,.7);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:rgba(255,255,255,.08);}
.btn-outline-light:hover{background:rgba(255,255,255,.18);}
.btn-red{background:linear-gradient(135deg,#C22525,#8C1414);color:#fff;box-shadow:0 10px 26px rgba(168,28,28,.38);}
.btn-group{display:flex;gap:14px;flex-wrap:wrap;}

/* ---------- seam divider ---------- */
.seam{display:block;margin:0 auto;width:190px;height:26px;}

/* ---------- HERO (poster background) ---------- */
.hero{
  position:relative;color:#fff;overflow:hidden;
  display:flex;align-items:center;min-height:94vh;
}
.hero-bg{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center 32%;
  transform:scale(1.06);
  animation:heroDrift 18s ease-in-out infinite alternate;
}
@keyframes heroDrift{
  from{transform:scale(1.06) translateY(0);}
  to{transform:scale(1.12) translateY(-16px);}
}
.hero-shade{
  position:absolute;inset:0;
  background:
    radial-gradient(120% 90% at 15% 30%, rgba(10,16,44,.94) 0%, rgba(13,22,62,.82) 45%, rgba(13,22,62,.42) 100%),
    linear-gradient(0deg, rgba(10,16,44,.88) 0%, rgba(10,16,44,.5) 26%, rgba(10,16,44,0) 55%);
}
.hero-content{position:relative;max-width:var(--max);margin:0 auto;padding:120px 24px 170px;width:100%;}
.hero .champ-chip{
  display:inline-flex;align-items:center;gap:10px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  padding:9px 18px;border-radius:999px;margin-bottom:22px;
  font-weight:600;font-size:14px;color:#EDEFF9;
}
.hero .champ-chip .dot{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold);}
.hero h1{font-size:clamp(46px,7.4vw,92px);margin:6px 0 10px;text-shadow:0 4px 30px rgba(0,0,0,.35);}
.hero h1 .accent{color:var(--gold);}
.hero .sub{font-size:clamp(17px,2vw,21px);max-width:560px;color:#DDE2F4;margin-bottom:34px;font-weight:500;}

/* floating chips inside hero (desktop) */
.hero-float{
  position:absolute;right:6%;display:none;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-radius:16px;padding:14px 22px;text-align:center;color:#fff;
  box-shadow:0 16px 40px rgba(0,0,0,.3);
  animation:floaty 6s ease-in-out infinite;
}
.hero-float .n{font-family:'Anton',sans-serif;font-size:24px;letter-spacing:.02em;}
.hero-float .l{font-family:'Graduate',serif;font-size:9.5px;letter-spacing:.16em;color:#C9D1F0;margin-top:3px;text-transform:uppercase;}
.hero-float.f1{top:24%;}
.hero-float.f2{top:48%;right:14%;animation-delay:-3s;}
@keyframes floaty{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-14px);}
}
@media (min-width:1024px){.hero-float{display:block;}}
@media (max-width:640px){
  .hero{min-height:82vh;}
  .hero-content{padding:88px 24px 150px;}
}

/* ---------- FLOATING STAT TILES (overlap hero) ---------- */
.float-strip{position:relative;z-index:5;margin-top:-92px;}
.float-grid{
  max-width:var(--max);margin:0 auto;padding:0 24px;
  display:grid;grid-template-columns:repeat(5,1fr);gap:16px;
}
.tile{
  background:rgba(255,255,255,.86);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.7);
  border-radius:var(--r);padding:22px 14px;text-align:center;
  box-shadow:var(--shadow-lift);
  transition:transform .2s ease, box-shadow .2s ease;
}
.tile:hover{transform:translateY(-6px);}
.tile .num{font-family:'Anton',sans-serif;font-size:26px;color:var(--royal);line-height:1.1;}
.tile .lbl{font-family:'Graduate',serif;font-size:9.8px;letter-spacing:.13em;color:var(--muted);margin-top:6px;text-transform:uppercase;}
@media (max-width:900px){
  .float-grid{grid-template-columns:repeat(2,1fr);}
  .float-strip{margin-top:-70px;}
  .tile:last-child{grid-column:1 / -1;}
}

/* ---------- sections ---------- */
.section{padding:104px 0;}
.section.tight{padding:76px 0;}
.section-head{text-align:center;max-width:680px;margin:0 auto 56px;}
.section-head h2{font-size:clamp(32px,4.4vw,52px);margin:12px 0 14px;}
.section-head p{color:var(--muted);font-size:18px;}

/* ---------- training cards ---------- */
.train-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.train-card{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r);
  padding:32px 26px;box-shadow:var(--shadow-soft);
  transition:transform .2s ease, box-shadow .2s ease;
  position:relative;overflow:hidden;
}
.train-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:5px;
  background:linear-gradient(90deg,var(--royal),#4A66E0);
}
.train-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lift);}
.train-card h3{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;
  letter-spacing:.03em;font-size:21px;margin-bottom:10px;color:var(--royal-deep);}
.train-card p{color:var(--muted);font-size:15.5px;}
@media (max-width:960px){.train-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.train-grid{grid-template-columns:1fr;}}

/* ---------- pricing ---------- */
.price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:stretch;}
.price-card{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r);
  padding:36px 24px 30px;text-align:center;position:relative;
  display:flex;flex-direction:column;box-shadow:var(--shadow-soft);
  transition:transform .2s ease, box-shadow .2s ease;
}
.price-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lift);}
.price-card.best{
  border:2px solid transparent;
  background:
    linear-gradient(var(--white),var(--white)) padding-box,
    linear-gradient(135deg,#C22525,var(--royal)) border-box;
  box-shadow:0 20px 50px rgba(168,28,28,.18);
}
.best-tag{
  position:absolute;top:-14px;left:50%;transform:translateX(-50%);
  background:linear-gradient(135deg,#C22525,#8C1414);color:#fff;font-family:'Graduate',serif;
  font-size:10.5px;letter-spacing:.16em;padding:7px 16px;border-radius:999px;white-space:nowrap;
  box-shadow:0 8px 20px rgba(168,28,28,.4);
}
.price-card .plan{font-family:'Graduate',serif;font-size:12px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;}
.price-card .amount{font-family:'Anton',sans-serif;font-size:52px;color:var(--ink);margin:14px 0 2px;line-height:1;}
.price-card .per{color:var(--muted);font-size:14.5px;margin-bottom:14px;}
.price-card .save{color:var(--stitch);font-weight:700;font-size:14.5px;margin-bottom:18px;min-height:22px;}
.price-card .btn{margin-top:auto;padding:13px 24px;font-size:15px;}
.price-note{text-align:center;color:var(--muted);font-size:15px;margin-top:34px;}
.price-note a{color:var(--royal);font-weight:600;}
@media (max-width:960px){.price-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.price-grid{grid-template-columns:1fr;}}

/* ---------- quote band over team photo ---------- */
.quote-band{
  position:relative;color:#fff;text-align:center;padding:130px 0;overflow:hidden;
}
.quote-band .qbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;}
.quote-band .qshade{position:absolute;inset:0;background:linear-gradient(180deg, rgba(10,16,44,.84), rgba(14,23,52,.78));}
.quote-band .wrap{position:relative;}
.quote-band blockquote{
  font-family:'Anton',sans-serif;text-transform:uppercase;
  font-size:clamp(28px,4.6vw,52px);line-height:1.15;max-width:880px;margin:22px auto 26px;
  text-shadow:0 4px 28px rgba(0,0,0,.4);
}
.quote-band blockquote .accent{color:var(--gold);}
.quote-band cite{font-family:'Graduate',serif;font-style:normal;font-size:13.5px;letter-spacing:.18em;color:#BFC8E8;}
.quote-band .more{margin-top:36px;}

/* ---------- CTA band ---------- */
.cta-band{
  background:
    radial-gradient(90% 140% at 85% 0%, rgba(74,102,224,.55) 0%, rgba(31,59,179,0) 55%),
    linear-gradient(135deg,var(--royal) 0%, var(--royal-deep) 100%);
  color:#fff;text-align:center;padding:96px 0;
}
.cta-band h2{font-size:clamp(34px,5vw,56px);margin:12px 0 12px;}
.cta-band p{color:#DDE3F8;font-size:18px;max-width:560px;margin:0 auto 34px;}
.cta-band .btn-group{justify-content:center;}

/* ---------- footer ---------- */
.site-footer{background:var(--ink);color:#B9C0D8;padding:60px 0 40px;font-size:15px;}
.footer-grid{display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between;align-items:flex-start;}
.footer-brand img{height:72px;margin-bottom:14px;background:#fff;border-radius:16px;padding:9px;}
.footer-brand .fw{font-family:'Graduate',serif;color:#fff;font-size:13.5px;letter-spacing:.12em;}
.footer-col h4{font-family:'Graduate',serif;font-size:11.5px;letter-spacing:.16em;color:#fff;margin-bottom:14px;text-transform:uppercase;}
.footer-col a{display:block;color:#B9C0D8;text-decoration:none;margin-bottom:9px;transition:color .15s ease;}
.footer-col a:hover{color:#fff;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.14);margin-top:44px;padding-top:22px;
  display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;font-size:13.5px;color:#8890AC;}

/* ---------- meet coach page ---------- */
.coach-hero{background:var(--ink);color:#fff;overflow:hidden;}
.coach-hero-grid{
  max-width:var(--max);margin:0 auto;padding:0 24px;
  display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:stretch;
}
.coach-hero-text{padding:96px 0;align-self:center;}
.coach-hero-text h1{font-size:clamp(46px,6.4vw,84px);margin:14px 0 18px;}
.coach-hero-text .sub{color:#D7DCEF;font-size:19px;max-width:480px;margin-bottom:30px;}
.coach-hero-photo{position:relative;min-height:540px;}
.coach-hero-photo img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%;
}
.coach-hero-photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg, var(--ink) 0%, rgba(14,23,52,0) 26%);
}
@media (max-width:880px){
  .coach-hero-grid{grid-template-columns:1fr;gap:0;padding:0;}
  .coach-hero-text{padding:68px 24px 40px;}
  .coach-hero-photo{min-height:440px;}
  .coach-hero-photo::after{background:linear-gradient(180deg, var(--ink) 0%, rgba(14,23,52,0) 22%);}
}

/* career timeline */
.timeline{max-width:820px;margin:0 auto;}
.inning{
  display:grid;grid-template-columns:120px 1fr;gap:26px;
  padding:30px 0;border-bottom:1px dashed var(--line);
}
.inning:last-child{border-bottom:none;}
.inning .yr{font-family:'Anton',sans-serif;font-size:27px;color:var(--royal);line-height:1.15;text-transform:uppercase;}
.inning h3{font-size:20px;font-weight:700;margin-bottom:6px;}
.inning p{color:var(--muted);font-size:16px;}
@media (max-width:600px){.inning{grid-template-columns:1fr;gap:6px;padding:24px 0;}}

/* championship split */
.champ-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center;}
.champ-grid .poster{
  border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-lift);
  transform:rotate(-1.5deg);transition:transform .25s ease;
}
.champ-grid .poster:hover{transform:rotate(0deg) scale(1.02);}
.champ-grid h2{font-size:clamp(30px,4vw,46px);margin:12px 0 16px;}
.champ-grid p{color:var(--muted);margin-bottom:14px;}
@media (max-width:880px){
  .champ-grid{grid-template-columns:1fr;gap:34px;}
  .champ-grid .poster{max-width:440px;margin:0 auto;}
}

/* philosophy long-form */
.philosophy{max-width:760px;margin:0 auto;}
.philosophy p{margin-bottom:18px;font-size:17.5px;}
.philosophy .lead{font-size:20px;font-weight:600;color:var(--ink);}

/* ---------- policy page ---------- */
.policy-hero{
  background:
    radial-gradient(90% 140% at 85% 0%, rgba(74,102,224,.55) 0%, rgba(31,59,179,0) 55%),
    linear-gradient(135deg,var(--royal) 0%, var(--royal-deep) 100%);
  color:#fff;text-align:center;padding:92px 0 76px;
}
.policy-hero h1{font-size:clamp(40px,6vw,68px);margin:12px 0 10px;}
.policy-hero p{color:#DDE3F8;font-size:18px;max-width:540px;margin:0 auto;}
.policy-body{max-width:760px;margin:0 auto;}
.policy-card{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r);
  padding:38px 36px;margin-bottom:24px;box-shadow:var(--shadow-soft);
  transition:transform .2s ease, box-shadow .2s ease;
}
.policy-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);}
.policy-card h2{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;
  font-size:23px;letter-spacing:.03em;color:var(--royal-deep);margin-bottom:12px;}
.policy-card p{color:#333A52;margin-bottom:10px;}
.policy-card ul{margin:8px 0 4px 20px;color:#333A52;}
.policy-card li{margin-bottom:8px;}
@media (max-width:560px){.policy-card{padding:28px 22px;}}

/* ---------- scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1;transform:none;}
.reveal.d1{transition-delay:.08s;}
.reveal.d2{transition-delay:.16s;}
.reveal.d3{transition-delay:.24s;}
.reveal.d4{transition-delay:.32s;}

/* accessibility + motion */
a:focus-visible,button:focus-visible{outline:3px solid var(--stitch);outline-offset:2px;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .btn,.tile,.train-card,.price-card,.policy-card{transition:none;}
  .hero-bg{animation:none;transform:none;}
  .hero-float{animation:none;}
  .reveal{opacity:1;transform:none;transition:none;}
}
