/* Sarasota Archery Academy — Stadium Energy stylesheet
   Locked design system 2026-05-16
   Loaded on every page; per-page tweaks go in a 2-letter-prefixed <style> block. */

:root{
  --black:#0A0A0A;
  --gray:#161616;
  --gray-2:#1F1F1F;
  --grayline:#2A2A2A;
  --orange:#E94E1B;
  --orange-d:#C73E10;
  --white:#FFFFFF;
  --dim:#9A9A9A;
  --dim-2:#6E6E6E;
  --max:1500px;
  --max-content:1300px;
  --max-prose:900px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{background:var(--black);color:var(--white);font-family:'Inter',sans-serif;-webkit-font-smoothing:antialiased;line-height:1.55;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}

/* ============== SAA LOGO MARK ============== */
.saa-mark{display:inline-flex;align-items:center;gap:14px;text-decoration:none}
.saa-mark svg{height:46px;width:auto;display:block;flex-shrink:0}
.saa-mark .wordmark{display:none}
@media (min-width:880px){
  .saa-mark .wordmark{display:inline-block;font-family:'Bebas Neue',sans-serif;color:var(--orange);font-size:14px;letter-spacing:4px;line-height:1.1}
}

/* ============== NAV ============== */
nav.site-nav{position:absolute;top:0;left:0;right:0;z-index:50;padding:24px 50px;display:flex;justify-content:space-between;align-items:center}
nav.site-nav.solid{position:sticky;top:0;background:rgba(10,10,10,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--grayline)}
nav.site-nav ul{list-style:none;display:flex;gap:30px;align-items:center}
nav.site-nav ul a{color:#fff;text-decoration:none;font-size:13px;letter-spacing:2px;text-transform:uppercase;font-weight:700;padding:6px 0;transition:color .15s}
nav.site-nav ul a:hover,nav.site-nav ul a.active{color:var(--orange)}
nav.site-nav ul a.donate{background:var(--orange);color:#fff;padding:10px 20px;border-radius:0;letter-spacing:2px}
nav.site-nav ul a.donate:hover{background:var(--orange-d);color:#fff}
.menu-toggle{display:none;background:none;border:0;color:#fff;font-size:24px;cursor:pointer}

/* ============== HERO SLIDESHOW ============== */
/* Drop 3-5 hero images into assets/images/ and set the class:
   <div class="hero-slideshow slides-4">
     <div class="slide" style="background-image:url('/assets/images/hero-home-1.jpg')"></div>
     ...
   </div>
   Each slide auto-fades through with a subtle Ken Burns zoom. If an image is missing
   the slide stays transparent and the hero's dark background shows through. */
.hero-slideshow{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-slideshow .slide{position:absolute;inset:0;background:center/cover no-repeat;opacity:0;will-change:opacity,transform}
.hero-slideshow.slides-3 .slide{animation:saSlide3 21s infinite}
.hero-slideshow.slides-4 .slide{animation:saSlide4 28s infinite}
.hero-slideshow.slides-5 .slide{animation:saSlide5 35s infinite}
.hero-slideshow .slide:nth-child(1){animation-delay:0s}
.hero-slideshow .slide:nth-child(2){animation-delay:7s}
.hero-slideshow .slide:nth-child(3){animation-delay:14s}
.hero-slideshow .slide:nth-child(4){animation-delay:21s}
.hero-slideshow .slide:nth-child(5){animation-delay:28s}
@keyframes saSlide3{0%{opacity:0;transform:scale(1)}5%{opacity:1}33%{opacity:1;transform:scale(1.08)}38%{opacity:0}100%{opacity:0;transform:scale(1)}}
@keyframes saSlide4{0%{opacity:0;transform:scale(1)}4%{opacity:1}25%{opacity:1;transform:scale(1.08)}29%{opacity:0}100%{opacity:0;transform:scale(1)}}
@keyframes saSlide5{0%{opacity:0;transform:scale(1)}3%{opacity:1}20%{opacity:1;transform:scale(1.08)}23%{opacity:0}100%{opacity:0;transform:scale(1)}}
/* Dark gradient overlay sits ABOVE slideshow but BELOW hero content, keeps text readable */
.hero-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(135deg,rgba(10,10,10,.55) 0%,rgba(10,10,10,.85) 100%);pointer-events:none}
@media (prefers-reduced-motion: reduce){
  .hero-slideshow .slide{animation:none}
  .hero-slideshow .slide:nth-child(1){opacity:1}  /* show only first slide */
}

/* ============== HERO ============== */
.hero{position:relative;overflow:hidden;display:flex;align-items:center;color:#fff}
.hero.full{height:100vh;min-height:760px}
.hero.tall{min-height:620px;padding:140px 0 100px}
.hero.compact{min-height:380px;padding:140px 0 80px}
.hero::before{content:"";position:absolute;inset:0;background:var(--black) center/cover no-repeat;z-index:0}
.hero.with-bg::before{background:linear-gradient(135deg,rgba(10,10,10,.45) 0%,rgba(10,10,10,.92) 100%),var(--hero-bg,none) center/cover;filter:contrast(1.1) saturate(.92)}
.hero-inner{position:relative;z-index:2;max-width:var(--max);margin:0 auto;padding:0 50px;width:100%}
.hero .eyebrow{font-family:'JetBrains Mono',monospace;color:var(--orange);font-size:13px;letter-spacing:4px;margin-bottom:24px;text-transform:uppercase}
.hero h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(56px,11vw,180px);line-height:.88;letter-spacing:1px;color:#fff;margin-bottom:30px}
.hero.compact h1{font-size:clamp(48px,7vw,96px);line-height:1}
.hero h1 .line{display:block}
.hero h1 .underlined{display:inline-block;position:relative;color:#fff}
.hero h1 .underlined::after{content:"";position:absolute;bottom:8px;left:0;right:0;height:10px;background:var(--orange);z-index:-1;transform:skew(-12deg)}
.hero h1 .or{color:var(--orange)}
.hero .sub{font-size:18px;max-width:560px;color:#ccc;line-height:1.55;margin-bottom:40px;font-weight:400}
.hero .ctas{display:flex;gap:14px;flex-wrap:wrap}

/* ============== BUTTONS ============== */
.btn{display:inline-flex;align-items:center;gap:10px;padding:18px 36px;text-decoration:none;font-weight:700;letter-spacing:2px;text-transform:uppercase;font-size:13px;border:0;cursor:pointer;transition:all .15s;font-family:inherit}
.btn-primary{background:var(--orange);color:#fff}
.btn-primary:hover{background:var(--orange-d);transform:translateY(-2px)}
.btn-primary .arrow{transition:transform .2s}
.btn-primary:hover .arrow{transform:translateX(4px)}
.btn-ghost{border:2px solid #fff;color:#fff;padding:16px 36px;background:transparent}
.btn-ghost:hover{background:#fff;color:var(--black)}
.btn-dark{background:var(--gray);color:#fff;border:1px solid var(--grayline)}
.btn-dark:hover{background:var(--gray-2);border-color:var(--orange)}

/* ============== TICKER ============== */
/* Speed control: change the default below, or add a class on the .ticker element:
   .ticker.crawl    = 90s   (very slow, ambient)
   .ticker.slow     = 60s
   (default)        = 40s
   .ticker.fast     = 28s
   .ticker.sprint   = 18s   (very fast, energetic)
   You can also set --ticker-speed inline: style="--ticker-speed: 35s"
*/
.ticker{background:var(--orange);color:#fff;padding:18px 0;overflow:hidden;border-top:2px solid var(--black);border-bottom:2px solid var(--black);--ticker-speed:40s}
.ticker.crawl{--ticker-speed:90s}
.ticker.slow{--ticker-speed:60s}
.ticker.fast{--ticker-speed:28s}
.ticker.sprint{--ticker-speed:18s}
.ticker:hover{--ticker-speed:120s}  /* slow on hover so readers can catch up */
.ticker-row{display:flex;gap:60px;animation:tickerScroll var(--ticker-speed) linear infinite;white-space:nowrap;font-family:'Bebas Neue',sans-serif;font-size:22px;letter-spacing:4px;width:max-content;will-change:transform}
.ticker-row span::before{content:"\25CF";color:var(--black);margin-right:60px;font-size:14px;vertical-align:middle}
@keyframes tickerScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){
  .ticker-row{animation:none}
}

/* ============== SECTION HEAD PATTERN ============== */
.section{padding:120px 50px}
.section.dark{background:var(--gray)}
.section.darker{background:var(--gray-2)}
.section.black{background:var(--black)}
.section-inner{max-width:var(--max);margin:0 auto}
.section-head{margin-bottom:70px;max-width:900px}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head .eyebrow{font-family:'JetBrains Mono',monospace;color:var(--orange);letter-spacing:4px;font-size:13px;margin-bottom:14px;text-transform:uppercase}
.section-head h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(48px,7vw,96px);line-height:.92;letter-spacing:1px;color:#fff}
.section-head h2 .or{color:var(--orange)}
.section-head .lede{font-size:18px;color:var(--dim);max-width:680px;margin-top:24px;line-height:1.55}
.section-head.center .lede{margin-left:auto;margin-right:auto}

/* ============== SCOREBOARD ============== */
.scoreboard{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--grayline)}
.scoreboard.cols-3{grid-template-columns:repeat(3,1fr)}
.scoreboard.cols-2{grid-template-columns:repeat(2,1fr)}
.score{padding:50px 36px;border-right:1px solid var(--grayline);position:relative}
.score:last-child{border-right:0}
.score .lbl{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:3px;color:var(--dim);text-transform:uppercase;margin-bottom:24px}
.score .num{font-family:'Bebas Neue',sans-serif;font-size:clamp(80px,9vw,128px);line-height:1;color:#fff}
.score .num .dot{color:var(--orange)}
.score .trend{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--orange);margin-top:8px}

/* ============== LEADERBOARD TABLE ============== */
.leaderboard{width:100%;border-collapse:collapse;font-family:'JetBrains Mono',monospace}
.leaderboard th{text-align:left;padding:18px 14px;border-bottom:2px solid var(--orange);font-size:11px;letter-spacing:3px;color:var(--dim);text-transform:uppercase;font-weight:700}
.leaderboard th.r{text-align:right}
.leaderboard td{padding:20px 14px;border-bottom:1px solid var(--grayline);font-size:15px;vertical-align:middle}
.leaderboard td.athlete,.leaderboard td.lead{font-family:'Bebas Neue',sans-serif;font-size:22px;letter-spacing:2px}
.leaderboard td.r{text-align:right;color:var(--orange);font-weight:700}
.leaderboard td .rank{display:inline-block;width:30px;color:var(--orange);font-weight:700}

/* ============== CARD GRID ============== */
.card-grid{display:grid;gap:24px;grid-template-columns:repeat(3,1fr)}
.card-grid.cols-4{grid-template-columns:repeat(4,1fr)}
.card-grid.cols-2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--gray);border:1px solid var(--grayline);padding:36px 32px;position:relative;transition:transform .2s,border-color .2s}
.card:hover{transform:translateY(-2px);border-color:var(--orange)}
.card.accent::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--orange)}
.card .eyebrow{font-family:'JetBrains Mono',monospace;color:var(--orange);font-size:11px;letter-spacing:3px;text-transform:uppercase;margin-bottom:18px}
.card h3{font-family:'Bebas Neue',sans-serif;font-size:30px;letter-spacing:1px;color:#fff;margin-bottom:14px;line-height:1.05}
.card p{color:var(--dim);font-size:15px;line-height:1.6}
.card .price{font-family:'Bebas Neue',sans-serif;font-size:54px;color:var(--orange);line-height:1;margin:18px 0 8px}
.card .price .per{font-size:14px;color:var(--dim);letter-spacing:2px;font-family:'JetBrains Mono',monospace;margin-left:6px}
.card .meta{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--dim);margin-top:18px;letter-spacing:2px}
.card a.more{display:inline-block;margin-top:20px;color:var(--orange);font-family:'JetBrains Mono',monospace;text-decoration:none;font-size:12px;letter-spacing:3px;text-transform:uppercase;border-bottom:1px solid var(--orange);padding-bottom:4px}
.card a.more:hover{color:#fff;border-bottom-color:#fff}

/* ============== FAQ ============== */
.faq{max-width:var(--max-prose);margin:0 auto}
.faq-item{border-bottom:1px solid var(--grayline);padding:24px 0}
.faq-q{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;cursor:pointer;background:none;border:0;text-align:left;width:100%;padding:0;color:#fff;font-family:'Bebas Neue',sans-serif;font-size:24px;letter-spacing:1px;line-height:1.25}
.faq-q .plus{color:var(--orange);font-family:'JetBrains Mono',monospace;font-size:24px;flex-shrink:0;transition:transform .2s}
.faq-item[open] .faq-q .plus{transform:rotate(45deg)}
.faq-a{padding-top:18px;color:var(--dim);font-size:16px;line-height:1.7}
.faq-a p{margin-bottom:14px}
.faq-a p:last-child{margin-bottom:0}
.faq-a a{color:var(--orange);text-decoration:underline}

/* ============== CTA STRIP ============== */
.cta-strip{position:relative;padding:140px 50px;text-align:center;overflow:hidden}
.cta-strip::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(10,10,10,.55) 0%,rgba(10,10,10,.85) 100%),var(--cta-bg,none) center/cover;z-index:0}
.cta-inner{position:relative;z-index:2;max-width:900px;margin:0 auto}
.cta-strip .eyebrow{font-family:'JetBrains Mono',monospace;color:var(--orange);letter-spacing:4px;font-size:13px;margin-bottom:20px;text-transform:uppercase}
.cta-strip h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(48px,8vw,108px);line-height:.95;letter-spacing:1px;color:#fff;margin-bottom:24px}
.cta-strip h2 .or{color:var(--orange)}
.cta-strip p{color:#ddd;font-size:18px;margin-bottom:36px;max-width:600px;margin-left:auto;margin-right:auto}
.cta-strip .ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ============== STAT BAND (compact) ============== */
.stat-band{padding:80px 50px;background:var(--gray-2);border-top:1px solid var(--grayline);border-bottom:1px solid var(--grayline)}
.stat-band-inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:30px;text-align:center}
.stat-band .num{font-family:'Bebas Neue',sans-serif;font-size:64px;color:var(--orange);line-height:1}
.stat-band .lbl{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:3px;color:var(--dim);text-transform:uppercase;margin-top:10px}

/* ============== PROSE ============== */
.prose{max-width:var(--max-prose);margin:0 auto;color:#ddd;font-size:17px;line-height:1.75}
.prose h2{font-family:'Bebas Neue',sans-serif;font-size:42px;letter-spacing:1px;color:#fff;margin:48px 0 16px;line-height:1.1}
.prose h2:first-child{margin-top:0}
.prose h3{font-family:'Bebas Neue',sans-serif;font-size:30px;letter-spacing:1px;color:#fff;margin:36px 0 12px}
.prose p{margin-bottom:20px}
.prose ul,.prose ol{margin:0 0 20px 24px}
.prose li{margin-bottom:8px}
.prose a{color:var(--orange);text-decoration:underline}
.prose a:hover{color:#fff}
.prose strong{color:#fff}
.prose blockquote{border-left:3px solid var(--orange);padding:12px 0 12px 24px;margin:32px 0;font-style:italic;color:#fff}

/* ============== QUICK-ANSWER CARD (AEO) ============== */
.qa-card{background:linear-gradient(135deg,var(--gray) 0%,var(--gray-2) 100%);border:1px solid var(--grayline);border-left:4px solid var(--orange);padding:32px 36px;max-width:var(--max-content);margin:0 auto;border-radius:0}
.qa-card .label{font-family:'JetBrains Mono',monospace;color:var(--orange);font-size:11px;letter-spacing:4px;text-transform:uppercase;margin-bottom:14px}
.qa-card p{color:#fff;font-size:19px;line-height:1.55;font-family:'Inter',sans-serif;font-weight:500;margin:0}

/* ============== TRUST BAR ============== */
.trust-bar{background:var(--gray);padding:40px 50px;border-bottom:1px solid var(--grayline)}
.trust-inner{max-width:var(--max);margin:0 auto;display:flex;justify-content:space-around;align-items:center;flex-wrap:wrap;gap:30px}
.trust-item{font-family:'JetBrains Mono',monospace;color:var(--dim);font-size:12px;letter-spacing:3px;text-transform:uppercase;text-align:center}
.trust-item strong{color:#fff;display:block;font-family:'Bebas Neue',sans-serif;font-size:24px;letter-spacing:2px;margin-bottom:4px}

/* ============== FORM ============== */
.form-wrap{background:var(--gray);padding:48px;border:1px solid var(--grayline);max-width:var(--max-prose);margin:0 auto}
.form-row{margin-bottom:22px}
.form-row label{display:block;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:3px;color:var(--dim);text-transform:uppercase;margin-bottom:8px}
.form-row input[type=text],.form-row input[type=email],.form-row input[type=tel],.form-row textarea,.form-row select{width:100%;background:var(--black);border:1px solid var(--grayline);color:#fff;padding:14px 16px;font-family:'Inter',sans-serif;font-size:16px;border-radius:0;transition:border-color .15s}
.form-row input:focus,.form-row textarea:focus,.form-row select:focus{outline:0;border-color:var(--orange)}
.form-row textarea{min-height:140px;resize:vertical;font-family:inherit}
.form-row.required label::after{content:" *";color:var(--orange)}

/* ============== FOOTER ============== */
footer.site-footer{background:var(--gray);color:var(--dim);padding:80px 50px 30px;border-top:1px solid var(--grayline)}
.footer-grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:50px}
.footer-grid h4{font-family:'JetBrains Mono',monospace;color:var(--orange);font-size:11px;letter-spacing:4px;text-transform:uppercase;margin-bottom:18px}
.footer-grid ul{list-style:none;padding:0;margin:0}
.footer-grid ul li{margin-bottom:10px}
.footer-grid ul a{color:var(--dim);text-decoration:none;font-size:14px;transition:color .15s}
.footer-grid ul a:hover{color:var(--orange)}
.footer-brand p{font-size:14px;line-height:1.6;margin-top:16px;color:var(--dim)}
.footer-bottom{max-width:var(--max);margin:0 auto;padding-top:30px;border-top:1px solid var(--grayline);display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:2px;color:var(--dim-2);text-transform:uppercase}
.footer-bottom .or{color:var(--orange)}

/* ============== UTILITIES ============== */
.text-or{color:var(--orange)}
.mt-0{margin-top:0!important}
.mb-0{margin-bottom:0!important}
.center{text-align:center}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

/* ============== RESPONSIVE ============== */
@media (max-width:880px){
  nav.site-nav{padding:18px 22px}
  nav.site-nav ul{display:none;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--black);padding:24px;gap:20px;border-top:1px solid var(--grayline)}
  nav.site-nav.open ul{display:flex}
  .menu-toggle{display:block}
  .hero-inner{padding:0 25px}
  .section{padding:80px 25px}
  .stat-band-inner,.scoreboard{grid-template-columns:repeat(2,1fr)}
  .scoreboard .score{border-right:0;border-bottom:1px solid var(--grayline)}
  .scoreboard .score:nth-child(2n){border-right:0}
  .scoreboard .score:nth-last-child(-n+2){border-bottom:0}
  .card-grid,.card-grid.cols-4,.card-grid.cols-2{grid-template-columns:1fr}
  .leaderboard{font-size:12px}
  .leaderboard td.athlete,.leaderboard td.lead{font-size:18px}
  .cta-strip{padding:90px 25px}
  .footer-grid{grid-template-columns:1fr;gap:30px}
  .form-wrap{padding:32px 22px}
}
