/* =========================================================================
   Ride for Glory — main stylesheet
   ----------------------------------------------------------------------- 
   1. Tokens & reset            5. Hero            9. Gallery
   2. Typography & helpers       6. Sections/about 10. Races
   3. Buttons & icons            7. Stats          11. CTA + Footer
   4. Topbar & header            8. News/cards     12. Posts + responsive
   ========================================================================= */

/* 1. Tokens & reset ------------------------------------------------------ */
:root{
	--ink:#0b0e14; --ink-2:#11161f; --ink-3:#1b2230;
	--paper:#ffffff; --paper-2:#f5f7fa;
	--text:#19212e; --muted:#6a7686; --line:rgba(13,18,28,.10);
	--accent:#ff4d14; --accent-600:#e6400b; --amber:#ffc400;
	--radius:16px; --radius-lg:26px; --pill:999px;
	--shadow-sm:0 8px 22px -12px rgba(11,14,20,.35);
	--shadow:0 28px 64px -30px rgba(11,14,20,.5);
	--container:1180px;
	--font-display:'Oswald',system-ui,sans-serif;
	--font-body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
	margin:0;font-family:var(--font-body);color:var(--text);
	background:var(--paper);line-height:1.6;font-size:16px;
	-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul{margin:0;padding:0;list-style:none}
button{font-family:inherit;cursor:pointer}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:600;line-height:1.05;letter-spacing:.01em}

.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:24px}
.section{padding-block:84px}
.hero,.about,.stats,.news,.gallery,.races,.cta-band,#contact{scroll-margin-top:84px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:var(--ink);color:#fff;padding:10px 16px;border-radius:0 0 10px 0}
.skip-link:focus{left:0}

/* 2. Typography helpers -------------------------------------------------- */
.eyebrow{
	font-family:var(--font-display);text-transform:uppercase;letter-spacing:.28em;
	font-size:13px;font-weight:600;color:var(--accent);margin:0 0 14px
}
.eyebrow--light{color:var(--amber)}
.section-head{max-width:680px;margin-bottom:48px}
.section-head__title{font-size:clamp(30px,4.4vw,52px);text-transform:uppercase}
.section-head__lead{margin-top:18px;color:var(--muted);font-size:18px}
.section-head--row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;max-width:none}

/* 3. Buttons & icons ---------------------------------------------------- */
.btn{
	display:inline-flex;align-items:center;gap:10px;justify-content:center;
	font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;
	font-weight:600;font-size:15px;line-height:1;border:2px solid transparent;
	padding:15px 26px;border-radius:var(--pill);transition:.22s ease;white-space:nowrap
}
.btn--sm{padding:11px 20px;font-size:14px}
.btn--xs{padding:8px 16px;font-size:12.5px}
.btn--lg{padding:18px 34px;font-size:16px}
.btn--accent{background:var(--accent);color:#fff;box-shadow:0 14px 30px -12px rgba(255,77,20,.6)}
.btn--accent:hover{background:var(--accent-600);transform:translateY(-2px)}
.btn--dark{background:var(--ink);color:#fff}
.btn--dark:hover{background:#000;transform:translateY(-2px)}
.btn--ghost{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.28)}
.btn--ghost:hover{background:rgba(255,255,255,.14);transform:translateY(-2px)}
.btn--outline{background:transparent;color:var(--text);border-color:var(--line)}
.btn--outline:hover{border-color:var(--accent);color:var(--accent)}
.btn [data-lucide="play-circle"]{width:1.15em;height:1.15em;vertical-align:-.25em}

/* 3. Icons (Lucide + Font Awesome) --------------------------------------- */
/* Lucide inline SVGs produced by lucide.createIcons() */
i[data-lucide],svg.lucide{display:inline-block;width:1em;height:1em;vertical-align:-.2em;
	stroke-width:1.75;stroke:currentColor;fill:none;flex-shrink:0}
/* Font Awesome brand icons */
.social .fa-brands{font-size:15px;line-height:1}

/* 4. Topbar & header ---------------------------------------------------- */
.topbar{background:var(--ink);color:rgba(255,255,255,.78);font-size:13.5px}
.topbar__inner{display:flex;align-items:center;justify-content:space-between;min-height:44px;gap:16px}
.topbar__meta{display:flex;flex-wrap:wrap;gap:22px}
.topbar__meta li,.topbar__meta li a{display:flex;align-items:center;gap:7px}
.topbar__meta li a{color:inherit}
.topbar__meta a:hover{color:#fff}
.topbar__meta .ic{flex:0 0 auto;width:14px;height:14px;color:var(--accent)}

.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);
	backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line);transition:.25s}
.site-header.is-stuck{box-shadow:var(--shadow-sm)}
.site-header__inner{display:flex;align-items:center;gap:24px;min-height:74px}
.nav-brand{display:inline-flex;align-items:center;text-decoration:none}
.site-logo{height:40px;width:auto;display:block}
.site-nav{margin-left:auto}
.nav-menu{display:flex;gap:30px}
.nav-menu a{font-family:var(--font-display);text-transform:uppercase;font-size:15px;letter-spacing:.04em;
	font-weight:500;color:var(--ink);padding:6px 0;position:relative}
.nav-menu a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--accent);transition:.25s}
.nav-menu a:hover::after,.nav-menu .current-menu-item>a::after{right:0}
.site-header__actions{display:flex;align-items:center;gap:14px}

.brand{display:inline-flex;align-items:center;gap:12px;color:var(--ink)}
.brand__mark{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;
	background:var(--accent);color:#fff;box-shadow:0 10px 22px -10px rgba(255,77,20,.7)}
.brand__text strong{display:block;font-family:var(--font-display);text-transform:uppercase;font-weight:700;
	font-size:21px;letter-spacing:.02em;line-height:1}
.brand__text strong span{color:var(--accent);margin-inline:1px}
.brand__text em{font-style:normal;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.brand--light{color:#fff}
.brand--light .brand__text strong{color:#fff}
.footer-logo{height:38px;width:auto;filter:brightness(0) invert(1);display:block}

.nav-toggle{display:none;flex-direction:column;gap:5px;width:44px;height:40px;border:1px solid var(--line);
	border-radius:12px;background:#fff;align-items:center;justify-content:center}
.nav-toggle span{width:20px;height:2px;background:var(--ink);transition:.25s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* 5. Hero --------------------------------------------------------------- */
.hero{position:relative;background:var(--ink);color:#fff;overflow:hidden;isolation:isolate;
	display:flex;flex-direction:column;
	min-height:calc(100svh - 118px)} /* 44px topbar + 74px header */
.admin-bar .hero{min-height:calc(100svh - 150px)} /* +32px admin bar */
@media(max-width:782px){.admin-bar .hero{min-height:calc(100svh - 164px)}} /* +46px mobile admin bar */
.hero__bg{position:absolute;inset:0;z-index:-1}
.hero__glow{position:absolute;border-radius:50%;filter:blur(90px);opacity:.6}
.hero__glow--1{width:520px;height:520px;background:radial-gradient(circle,rgba(255,77,20,.85),transparent 60%);top:-120px;right:-80px}
.hero__glow--2{width:480px;height:480px;background:radial-gradient(circle,rgba(45,120,255,.5),transparent 60%);bottom:-160px;left:-120px}
.hero__grid{position:absolute;inset:0;opacity:.12;
	background-image:linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px);
	background-size:64px 64px;mask-image:radial-gradient(circle at 50% 40%,#000,transparent 75%)}
.hero__inner{display:grid;grid-template-columns:1fr;gap:0;align-items:center;align-content:center;
	padding-block:clamp(40px,5vh,80px);flex:1}
.hero__content{max-width:680px}
.hero__title{font-size:clamp(44px,7vw,86px);text-transform:uppercase;letter-spacing:.005em}
.hero__title span{color:var(--accent);display:block}
.hero__lead{margin:22px 0 32px;font-size:clamp(17px,2vw,20px);color:rgba(255,255,255,.78);max-width:520px}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px}
.hero__facts{display:flex;flex-wrap:wrap;gap:24px 30px;margin-top:36px;padding-top:24px;border-top:1px solid rgba(255,255,255,.14)}
.hero__facts strong{display:block;font-family:var(--font-display);font-size:22px;text-transform:uppercase}
.hero__facts span{font-size:13px;color:rgba(255,255,255,.6)}

.hero__scroll{position:absolute;left:50%;bottom:22px;translate:-50% 0;width:26px;height:42px;border:2px solid rgba(255,255,255,.4);border-radius:14px;display:none}
.hero__scroll span{position:absolute;left:50%;top:8px;translate:-50% 0;width:4px;height:8px;border-radius:2px;background:#fff;animation:rfg-scroll 1.6s ease-in-out infinite}
@media(min-width:1024px){.hero__scroll{display:block}}
@keyframes rfg-scroll{0%,100%{opacity:0;top:8px}50%{opacity:1;top:20px}}
@keyframes rfg-dash{from{opacity:0}to{opacity:1}}

/* Hero: background photo variant */
.hero--has-photo .hero__photo{position:absolute;inset:0;background-size:cover;background-position:center}
.hero--has-photo .hero__photo::after{content:"";position:absolute;inset:0;
	background:linear-gradient(105deg,rgba(11,14,20,.92) 0%,rgba(11,14,20,.65) 55%,rgba(11,14,20,.25) 100%)}
.hero--has-photo .hero__glow{display:none}
.hero--has-photo .hero__grid{opacity:.08}
.hero--has-photo .hero__content{max-width:700px}

/* Hero: sponsor ticker */
.hero__ticker{overflow:hidden;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);
	border-top:1px solid rgba(255,255,255,.1);padding:12px 0}
.hero__ticker-track{display:flex;gap:0;white-space:nowrap;will-change:transform}
/* hover-pause handled by JS */
.hero__ticker-item{display:inline-flex;align-items:center;gap:10px;padding:0 28px;
	font-family:var(--font-display);font-size:12px;text-transform:uppercase;letter-spacing:.1em;
	color:rgba(255,255,255,.65);border-right:1px solid rgba(255,255,255,.12)}
.hero__ticker-item img{height:22px;width:auto;filter:brightness(0) invert(1) opacity(.7)}
.hero__ticker-item--title{color:#fff;font-weight:700}
.hero__ticker-item--gold{color:var(--amber)}
.hero__ticker-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);flex-shrink:0}

/* 6. About / features --------------------------------------------------- */
.about{padding-block:96px;background:var(--paper)}
.about .section-head{margin-inline:auto;text-align:center}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.feature{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius-lg);
	padding:36px 30px;transition:.25s}
.feature:hover{transform:translateY(-6px);box-shadow:var(--shadow);background:#fff}
.feature__icon{display:grid;place-items:center;width:62px;height:62px;border-radius:18px;
	background:#fff;color:var(--accent);border:1px solid var(--line);margin-bottom:20px}
.feature__icon svg{width:30px;height:30px}
.feature h3{font-size:23px;text-transform:uppercase;margin-bottom:10px}
.feature p{color:var(--muted);margin:0}
.about__cta{display:flex;gap:14px;justify-content:center;margin-top:46px;flex-wrap:wrap}
.about__cta--left{justify-content:flex-start}

/* About split layout */
.about__split{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:center}
.about__split-photo{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/5;flex-shrink:0}
.about__split-photo img{width:100%;height:100%;object-fit:cover;display:block}
.about__split-body .eyebrow{margin-bottom:14px}
.about__split-body .section-head__title{text-align:left;margin-bottom:18px}
.about__split-lead{color:var(--muted);line-height:1.7;margin-bottom:28px;font-size:17px}

/* Feature list (inside split body) */
.feature-list{list-style:none;padding:0;margin:0 0 36px;display:flex;flex-direction:column;gap:20px}
.feature-list__item{display:flex;gap:18px;align-items:flex-start}
.feature-list__icon{flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;
	border-radius:14px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}
.feature-list__icon svg{width:22px;height:22px}
.feature-list__item strong{display:block;font-family:var(--font-display);font-size:17px;text-transform:uppercase;margin-bottom:3px}
.feature-list__item p{color:var(--muted);font-size:15px;margin:0}

/* 7. Stats -------------------------------------------------------------- */
.stats{background:var(--ink);color:#fff;background-image:linear-gradient(120deg,#0b0e14,#161d2b)}
.stats__inner{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding-block:60px}
.stat{text-align:center;position:relative}
.stat:not(:last-child)::after{content:"";position:absolute;right:-12px;top:50%;translate:0 -50%;width:1px;height:54px;background:rgba(255,255,255,.14)}
.stat__value{display:block;font-family:var(--font-display);font-size:clamp(40px,5vw,60px);color:var(--accent);line-height:1}
.stat__label{display:block;margin-top:8px;text-transform:uppercase;letter-spacing:.14em;font-size:13px;color:rgba(255,255,255,.72)}

/* 8. News / cards ------------------------------------------------------- */
.news{padding-block:96px}
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;
	display:flex;flex-direction:column;transition:.25s}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.card__media{position:relative;aspect-ratio:16/10;overflow:hidden;display:block}
.card__media img{width:100%;height:100%;object-fit:cover;transition:.5s}
.card:hover .card__media img{transform:scale(1.06)}
.card__date{position:absolute;left:14px;bottom:14px;background:var(--accent);color:#fff;
	font-family:var(--font-display);text-transform:uppercase;font-size:12px;letter-spacing:.06em;padding:6px 12px;border-radius:var(--pill)}
.card__body{padding:24px 24px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.card__cat{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:var(--accent);font-weight:600}
.card__title{font-size:21px;text-transform:uppercase;line-height:1.12}
.card__title a:hover{color:var(--accent)}
.card__excerpt{color:var(--muted);margin:0;font-size:15px}
.card__more{margin-top:auto;font-family:var(--font-display);text-transform:uppercase;font-size:14px;
	letter-spacing:.06em;color:var(--ink)}
.card__more:hover{color:var(--accent)}
.card__share{display:flex;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.card__share-btn{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;
	background:var(--paper-2);color:var(--muted);transition:.2s}
.card__share-btn:hover{background:var(--accent);color:#fff}
.card__share-btn svg.lucide{width:15px;height:15px}

/* Videos section */
.videos{padding-block:80px;background:var(--ink);color:#fff}
.videos .section-head{text-align:center;margin-inline:auto}
.videos .section-head__title{color:#fff}
.videos .section-head__lead{color:rgba(255,255,255,.7)}
.video-grid{display:grid;gap:20px;margin-top:40px}
.video-grid--1{grid-template-columns:1fr;max-width:900px;margin-inline:auto}
.video-grid--2{grid-template-columns:repeat(2,1fr)}
.video-grid--3{grid-template-columns:repeat(3,1fr)}
.video-card{border-radius:var(--radius-lg);overflow:hidden;background:rgba(255,255,255,.06)}
.video-card__frame{position:relative;aspect-ratio:16/9}
.video-card__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* 9. Gallery ------------------------------------------------------------ */
.gallery{padding-block:96px;background:var(--paper-2)}
.gallery .section-head{margin-inline:auto;text-align:center}
.gallery__feature{margin-bottom:26px}
.gallery__video{position:relative;aspect-ratio:21/9;border-radius:var(--radius-lg);overflow:hidden;
	background-size:cover;background-position:center;display:grid;place-items:center;box-shadow:var(--shadow)}
.gallery__video::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,14,20,.1),rgba(11,14,20,.6))}
.gallery__play{position:relative;z-index:2;width:84px;height:84px;border-radius:50%;background:var(--accent);
	color:#fff;display:grid;place-items:center;font-size:34px;box-shadow:0 20px 40px -14px rgba(255,77,20,.8);transition:.25s}
.gallery__play svg.lucide{width:1em;height:1em;stroke-width:2;fill:rgba(255,255,255,.15)}
.gallery__play:hover{transform:scale(1.08)}
.gallery__video-label{position:absolute;z-index:2;left:24px;bottom:20px;color:#fff;font-family:var(--font-display);
	text-transform:uppercase;letter-spacing:.06em}
.gallery__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gallery__item{aspect-ratio:1;border-radius:16px;background-size:cover;background-position:center;
	filter:grayscale(.3);transition:.3s;position:relative}
.gallery__item::after{content:"";position:absolute;inset:0;border-radius:16px;background:var(--accent);opacity:0;mix-blend-mode:multiply;transition:.3s}
.gallery__item:hover{filter:grayscale(0);transform:scale(1.03)}
.gallery__item:hover::after{opacity:.18}

/* 10. Races ------------------------------------------------------------- */
.races{padding-block:96px}
.race-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.race-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;
	display:flex;flex-direction:column;transition:.25s}
.race-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.race-card__media{aspect-ratio:16/11;background-size:cover;background-position:center;position:relative}
.race-card__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(11,14,20,.35))}
.race-card__badge{position:absolute;z-index:2;left:16px;top:16px;background:var(--ink);color:#fff;
	font-family:var(--font-display);text-transform:uppercase;font-size:12px;letter-spacing:.08em;padding:7px 14px;border-radius:var(--pill)}
.race-card__body{padding:26px;display:flex;flex-direction:column;gap:14px;flex:1}
.race-card__title{font-size:24px;text-transform:uppercase;line-height:1.08}
.race-card__excerpt{color:var(--muted);margin:0;font-size:15px}
.race-card__meta{display:flex;flex-direction:column;gap:9px;margin-top:2px}
.race-card__meta li{display:flex;align-items:center;gap:10px;font-size:14.5px;color:var(--text)}
.race-card__meta .ic,.race-card__meta i[data-lucide]{color:var(--accent)}
.race-card__cta{margin-top:auto;align-self:flex-start;font-family:var(--font-display);text-transform:uppercase;
	letter-spacing:.06em;color:var(--accent);font-size:15px}
.race-card__cta:hover{color:var(--accent-600)}

/* 11. CTA band + footer ------------------------------------------------- */
.cta-band{background:var(--accent);background-image:linear-gradient(120deg,var(--accent),#ff7a3c);color:#fff;position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;inset:0;opacity:.18;
	background-image:repeating-linear-gradient(45deg,#fff 0 2px,transparent 2px 22px)}
.cta-band__inner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:30px;padding-block:60px;flex-wrap:wrap}
.cta-band h2{font-size:clamp(28px,4vw,46px);text-transform:uppercase}
.cta-band__text p:last-child{margin:10px 0 0;max-width:560px;color:rgba(255,255,255,.92)}

.site-footer{background:var(--ink);color:rgba(255,255,255,.7)}
.site-footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.4fr;gap:36px;padding-block:64px}
.site-footer h3{color:#fff;font-size:16px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:18px}
.site-footer__about{margin:18px 0 20px;max-width:320px}
.footer-menu li,.contact-list li{margin-bottom:11px}
.footer-menu a:hover,.contact-list a:hover{color:var(--accent)}
.contact-list li,.contact-list li a{display:flex;align-items:center;gap:11px}
.contact-list li a{color:inherit}
.contact-list i[data-lucide]{flex:0 0 auto;width:17px;height:17px;color:var(--accent)}
.subscribe{display:flex;gap:8px;background:rgba(255,255,255,.07);padding:7px;border-radius:var(--pill);max-width:320px}
.subscribe input{flex:1;background:transparent;border:0;color:#fff;padding:0 14px;outline:none}
.subscribe input::placeholder{color:rgba(255,255,255,.5)}
.social{display:flex;gap:10px}
.social a{width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.08);display:grid;place-items:center;transition:.22s}
.social a:hover{background:var(--accent);transform:translateY(-3px)}
.social i[data-lucide],.social .fa-brands{width:17px;height:17px;color:rgba(255,255,255,.9)}
.site-footer__bar{border-top:1px solid rgba(255,255,255,.1)}
.site-footer__bar-inner{display:flex;justify-content:space-between;gap:16px;padding-block:22px;font-size:13.5px;flex-wrap:wrap}
.site-footer__powered{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.55)}
.site-footer__powered img{height:18px;width:auto;opacity:.75;filter:brightness(0) invert(1);vertical-align:middle}

/* 12. Posts + page heads + responsive ----------------------------------- */
.page-head{background:var(--ink);color:#fff;padding-block:70px 60px}
.page-head__title{font-size:clamp(34px,5vw,56px);text-transform:uppercase}
.page-head__title span{color:var(--accent)}
.page-head__lead{margin-top:16px;color:rgba(255,255,255,.72);max-width:620px;font-size:18px}

/* Forms (registration + contact) */
.form-layout{display:grid;grid-template-columns:1.6fr .9fr;gap:40px;align-items:start}
.form-main{min-width:0}
.rfg-form,.form-success{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
	padding:34px;box-shadow:var(--shadow-sm)}
.form-block{border:0;padding:0;margin:0 0 24px;min-width:0}
.form-block legend{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;
	font-size:14px;color:var(--accent);padding:0 0 12px;margin-bottom:18px;width:100%;border-bottom:1px solid var(--line)}
.field{display:flex;flex-direction:column;margin:0 0 16px}
.field label{font-size:14px;font-weight:600;margin-bottom:7px;color:var(--text)}
.field label span{color:var(--accent)}
.field label .muted{color:var(--muted);font-weight:400}
.field input,.field select,.field textarea{
	width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--paper-2);
	font-family:inherit;font-size:15px;color:var(--text);transition:.18s;-webkit-appearance:none;appearance:none}
.field textarea{resize:vertical;min-height:130px}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2319212e' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px;padding-right:42px}
.field input:focus,.field select:focus,.field textarea:focus{
	outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px rgba(255,77,20,.14)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field--check label{flex-direction:row;align-items:flex-start;gap:11px;font-weight:400;font-size:14.5px;color:var(--muted)}
.field--check input{width:20px;height:20px;margin-top:2px;flex:0 0 auto;accent-color:var(--accent)}
.field--check a{color:var(--accent);text-decoration:underline}
.field--check span span{color:var(--accent)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-foot{margin:14px 0 0;font-size:13px;color:var(--muted)}
.form-foot span{color:var(--accent)}
.rfg-form .btn{margin-top:6px}

.form-note{padding:15px 18px;border-radius:14px;margin-bottom:22px;font-size:15px}
.form-note--ok{background:#e8f8ee;border:1px solid #b6e6c7;color:#176c39}
.form-note--err{background:#fdecea;border:1px solid #f6c8c2;color:#a32316}

.form-success{text-align:center;padding:54px 34px}
.form-success__icon{display:grid;place-items:center;width:74px;height:74px;border-radius:50%;margin:0 auto 18px;
	background:var(--accent);color:#fff;font-size:34px;box-shadow:0 16px 30px -12px rgba(255,77,20,.7)}
.form-success h2{font-size:30px;text-transform:uppercase;margin-bottom:10px}
.form-success p{color:var(--muted);max-width:440px;margin:0 auto 22px}
.form-success__actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

.form-aside{display:grid;gap:20px;position:sticky;top:96px}
.aside-card{background:var(--ink);color:#fff;border-radius:var(--radius-lg);padding:28px}
.aside-card h3{color:#fff;font-size:18px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:18px}
.aside-card--fees{background:var(--ink-2)}
.tick-list li{position:relative;padding:0 0 11px 28px;color:rgba(255,255,255,.82);font-size:15px}
.tick-list li::before{content:"";position:absolute;left:0;top:3px;width:16px;height:16px;border-radius:50%;
	background:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") center/12px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") center/12px no-repeat;background-color:#fff}
.tick-list li::after{content:"";position:absolute;left:0;top:3px;width:16px;height:16px;border-radius:50%;background:var(--accent);z-index:-1}
.fee-list li,.hours-list li{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.fee-list li:last-child,.hours-list li:last-child{border-bottom:0}
.fee-list span,.hours-list span{color:rgba(255,255,255,.72)}
.fee-list strong,.hours-list strong{font-family:var(--font-display);font-size:18px}
.aside-note{margin:16px 0 0;font-size:13.5px;color:var(--amber)}
.contact-list--dark li{color:rgba(255,255,255,.82);margin-bottom:13px}
.contact-list--dark a:hover{color:#fff}

/* Event landing page */
.page-head--event .page-head__lead{margin-bottom:24px}
.event-meta{display:flex;flex-wrap:wrap;gap:34px;margin:0 0 30px}
.event-meta span{display:flex;flex-direction:column;gap:3px;color:rgba(255,255,255,.62);font-size:12px;text-transform:uppercase;letter-spacing:.1em}
.event-meta strong{font-family:var(--font-display);font-size:22px;color:#fff;letter-spacing:0;text-transform:uppercase}
.event-cats .section-head{margin-inline:auto;text-align:center}
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.cat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:30px;display:flex;flex-direction:column;gap:8px;transition:.25s}
.cat-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.cat-card__badge{align-self:flex-start;background:var(--ink);color:#fff;font-family:var(--font-display);text-transform:uppercase;font-size:12px;letter-spacing:.08em;padding:6px 13px;border-radius:var(--pill)}
.cat-card__name{font-size:24px;text-transform:uppercase;margin-top:6px}
.cat-card__price{font-family:var(--font-display);font-size:30px;color:var(--accent);line-height:1;margin:0}
.cat-card__cut{font-size:12.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0}
.cat-card__blurb{color:var(--muted);margin:4px 0 10px;font-size:15px}
.cat-card .btn{margin-top:auto;align-self:flex-start}
.event-perks{background:var(--ink);color:#fff;padding-block:84px}
.event-perks .section-head{margin-inline:auto;text-align:center}
.perks-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 28px;max-width:920px;margin:0 auto}
.event-rules .section-head{margin-inline:auto;text-align:center}
.rules-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.rules-col{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius-lg);padding:30px}
.rules-col h3{font-size:20px;text-transform:uppercase;margin-bottom:16px}
.rules-col--dq{background:#fdf1ee;border-color:#f6d5cc}
.rules-col--dq .dot-list li::before{background:#c93a1c}

/* Awards & recognition */
.event-awards{background:var(--paper)}
.event-awards .section-head{margin-inline:auto;text-align:center}
.awards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.awards-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px;transition:.25s}
.awards-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.awards-card__title{font-size:21px;text-transform:uppercase;margin-bottom:14px;padding-bottom:12px;border-bottom:2px solid var(--accent)}
.awards-note{margin:26px auto 0;text-align:center;max-width:560px;color:var(--muted);font-size:14.5px}

/* Need help band */
.event-help{background:var(--ink);color:#fff}
.event-help__inner{display:grid;grid-template-columns:1fr 1.4fr;gap:40px;align-items:center;padding-block:64px}
.event-help__text h2{font-size:clamp(26px,3.4vw,40px);text-transform:uppercase}
.event-help__text p{color:rgba(255,255,255,.72);margin:12px 0 0}
.event-help__cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.event-help__cards li{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);padding:22px 18px;display:flex;flex-direction:column;gap:8px;text-align:center;align-items:center}
.event-help__cards i[data-lucide]{width:22px;height:22px;color:var(--accent)}
.event-help__cards strong{font-family:var(--font-display);text-transform:uppercase;font-size:14px;letter-spacing:.06em}
.event-help__cards a,.event-help__cards li>span:not(.ic){color:rgba(255,255,255,.75);font-size:14px}
.event-help__cards a:hover{color:var(--accent)}
.dot-list li{position:relative;padding:0 0 12px 22px;color:var(--muted)}
.dot-list li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:50%;background:var(--accent)}
.event-final-cta{background:var(--paper-2);border-top:1px solid var(--line)}
.event-final-cta__inner{display:flex;align-items:center;justify-content:space-between;gap:28px;padding-block:54px;flex-wrap:wrap}
.event-final-cta h2{font-size:clamp(26px,3.4vw,40px);text-transform:uppercase}
.event-final-cta p{color:var(--muted);margin:8px 0 0}
@media(max-width:860px){
	.cat-grid{grid-template-columns:1fr}
	.perks-grid{grid-template-columns:1fr 1fr}
	.rules-grid{grid-template-columns:1fr}
	.awards-grid{grid-template-columns:1fr}
	.event-help__inner{grid-template-columns:1fr}
	.event-help__cards{grid-template-columns:1fr}
}
@media(max-width:560px){
	.perks-grid{grid-template-columns:1fr}
	.event-meta{gap:20px}
}
.single__head{background:var(--ink);color:#fff;padding-block:64px 56px}
.single__title{font-size:clamp(32px,4.6vw,54px);text-transform:uppercase;margin-top:6px;max-width:900px}
.single__meta{margin-top:14px;color:rgba(255,255,255,.6)}
.single__media{margin-top:-40px;margin-bottom:10px}
.single__media img{border-radius:var(--radius-lg);box-shadow:var(--shadow)}
.single__body{max-width:760px;padding-block:40px}
.entry-content{font-size:17px}
.entry-content p{margin:0 0 1.2em}
.entry-content h2,.entry-content h3{margin:1.6em 0 .5em;text-transform:none}
.entry-content a{color:var(--accent);text-decoration:underline}
.pagination{margin-top:50px}
.pagination .nav-links{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.pagination a,.pagination .current{display:grid;place-items:center;min-width:44px;height:44px;padding:0 12px;
	border:1px solid var(--line);border-radius:12px;font-family:var(--font-display)}
.pagination .current{background:var(--accent);color:#fff;border-color:var(--accent)}
.no-results{color:var(--muted);text-align:center;padding:40px 0}

/* ---- Polish pass ------------------------------------------------------- */
.cta-band .eyebrow{color:rgba(255,255,255,.92)}
.feature__icon i[data-lucide]{width:30px;height:30px;stroke-width:1.5}
.social a{background:rgba(255,255,255,.1);color:rgba(255,255,255,.92)}
.social a:hover{background:var(--accent);color:#fff}
.admin-bar .site-header{top:32px}
.single__head-inner,.single__media,.single__body,.single__comments{max-width:820px}
.single__body{padding-block:48px}
.single__comments{padding-bottom:64px}
.comment-respond{margin-top:8px}
.comment-reply-title{font-family:var(--font-display);text-transform:uppercase;font-size:24px;margin:0 0 6px}
.comment-notes,.comment-form-cookies-consent{color:var(--muted);font-size:14px}
.comment-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}
.comment-form>p{margin:0}
.comment-form-comment,.comment-form-url,.comment-notes,.comment-form-cookies-consent,.comment-form .form-submit{grid-column:1 / -1}
.comment-form label{display:block;font-weight:600;font-size:14px;margin-bottom:6px}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--paper-2);font:inherit;font-size:15px;color:var(--text);-webkit-appearance:none;appearance:none}
.comment-form textarea{min-height:130px;resize:vertical}
.comment-form input:focus,.comment-form textarea:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px rgba(255,77,20,.14)}
.comment-form .form-submit input{background:var(--accent);color:#fff;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;border:0;border-radius:var(--pill);padding:14px 28px;font-size:15px;cursor:pointer;transition:.2s}
.comment-form .form-submit input:hover{background:var(--accent-600)}
.comment-list{list-style:none;margin:0 0 36px;padding:0}
.comment-list .comment-body{background:var(--paper-2);border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:16px}
.error-404{padding-block:80px;text-align:center}
.error-404 .btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
@media(max-width:782px){.admin-bar .site-header{top:46px}}
@media(max-width:560px){.comment-form{grid-template-columns:1fr}}

@media(max-width:1024px){
	.hero__inner{grid-template-columns:1fr}
	.hero__content{max-width:660px;margin-inline:auto;text-align:center}
	.hero__lead{margin-inline:auto}
	.hero__lead{max-width:660px}
	.hero__actions,.hero__facts{justify-content:center}
	.site-footer__grid{grid-template-columns:1fr 1fr}
	.gallery__grid{grid-template-columns:repeat(3,1fr)}
	.about__split{grid-template-columns:1fr;gap:40px}
	.about__split-photo{max-height:380px;aspect-ratio:auto}
	.video-grid--3{grid-template-columns:1fr 1fr}
}
@media(max-width:860px){
	.feature-grid,.post-grid,.race-grid{grid-template-columns:1fr 1fr}
	.form-layout{grid-template-columns:1fr}
	.form-aside{position:static}
	.stats__inner{grid-template-columns:repeat(2,1fr);gap:36px 24px}
	.stat:nth-child(2)::after{display:none}
	.topbar__meta li:not(:first-child){display:none}
	.site-nav{position:fixed;inset:74px 0 auto 0;background:#fff;border-bottom:1px solid var(--line);
		max-height:0;overflow:hidden;transition:max-height .3s ease;margin:0}
	.site-nav.is-open{max-height:70vh;box-shadow:var(--shadow)}
	.nav-menu{flex-direction:column;gap:0;padding:8px 24px 20px}
	.nav-menu a{padding:14px 0;border-bottom:1px solid var(--line);display:block}
	.nav-menu a::after{display:none}
	.site-header__actions{margin-left:auto} /* push hamburger to far right */
	.nav-toggle{display:flex}
	.site-header__actions .btn--sm{display:none}
}
@media(max-width:560px){
	.section,.about,.news,.gallery,.races,.videos{padding-block:60px}
	.feature-grid,.post-grid,.race-grid,.gallery__grid{grid-template-columns:1fr}
	.field-row{grid-template-columns:1fr}
	.gallery__grid{grid-template-columns:1fr 1fr}
	.section-head--row{flex-direction:column;align-items:flex-start}
	.cta-band__inner{flex-direction:column;align-items:flex-start}
	.single__media{margin-top:0}
	.video-grid--2,.video-grid--3{grid-template-columns:1fr}
	.about__split-body .section-head__title{font-size:clamp(28px,7vw,44px)}
}

@media(prefers-reduced-motion:reduce){
	*{animation:none!important;scroll-behavior:auto!important}
}

/* ── Promo Popup ────────────────────────────────────────────────────────────── */
.promo-popup{position:fixed;inset:0;z-index:9000;display:grid;place-items:center;padding:20px}
.promo-popup[hidden]{display:none}
.promo-popup.is-open .promo-popup__backdrop{opacity:1}
.promo-popup.is-open .promo-popup__card{opacity:1;transform:translateY(0) scale(1)}
.promo-popup__backdrop{position:absolute;inset:0;background:rgba(11,14,20,.72);
	backdrop-filter:blur(4px);opacity:0;transition:opacity .3s ease;cursor:pointer}
.promo-popup__card{position:relative;z-index:1;width:100%;max-width:520px;
	border-radius:var(--radius-lg);background:#fff;overflow:hidden;
	box-shadow:0 32px 80px -16px rgba(0,0,0,.4);
	opacity:0;transform:translateY(28px) scale(.97);transition:opacity .32s ease,transform .32s cubic-bezier(.2,.8,.4,1)}
.promo-popup__image img{display:block;width:100%;max-height:260px;object-fit:cover}
.promo-popup__body{padding:28px 32px 32px}
.promo-popup__badge{display:inline-block;background:var(--amber);color:var(--ink);
	font-family:var(--font-display);font-size:11px;font-weight:700;
	letter-spacing:.12em;text-transform:uppercase;padding:3px 10px;
	border-radius:4px;margin-bottom:14px}
.promo-popup__title{font-size:clamp(20px,4vw,26px);margin-bottom:10px;color:var(--ink);line-height:1.15}
.promo-popup__text{color:var(--muted);line-height:1.65;margin-bottom:20px;font-size:15px}
.promo-popup__cta{display:inline-flex;width:100%;justify-content:center}
.promo-popup__close{position:absolute;top:12px;right:12px;z-index:2;
	width:34px;height:34px;border-radius:50%;border:none;cursor:pointer;
	background:rgba(11,14,20,.12);color:var(--ink);display:grid;place-items:center;
	transition:.2s;font-size:18px}
.promo-popup__close:hover{background:rgba(11,14,20,.22)}
body.rfg-popup-open{overflow:hidden}

/* ── Sponsors carousel ───────────────────────────────────────────────────────── */
.sponsors{padding-block:44px 36px;background:var(--surface,#f6f7f9);border-top:1px solid var(--line)}
.sponsors__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:16px}
.sponsors__label{font-family:var(--font-display);font-size:13px;text-transform:uppercase;
	letter-spacing:.14em;color:var(--muted)}
.sponsors__cta{display:inline-flex;align-items:center;gap:6px;
	font-family:var(--font-display);font-size:13px;text-transform:uppercase;
	letter-spacing:.08em;color:var(--accent);text-decoration:none;transition:.2s}
.sponsors__cta:hover{gap:10px}
.sponsors__cta svg.lucide{width:.9em;height:.9em}

/* The runway clips the strip; no scroll-padding */
.sponsors__runway{overflow:hidden;border-top:1px solid var(--line)}
.sponsors__runway--reverse{border-top:none;border-bottom:1px solid var(--line)}
.sponsors__strip{display:flex;gap:0;will-change:transform}

/* Individual logo badge */
.sponsor-badge{flex-shrink:0;display:inline-flex;align-items:center;gap:10px;
	height:72px;padding-inline:28px;
	border-right:1px solid var(--line);
	text-decoration:none;color:var(--ink);transition:background .2s}
.sponsor-badge:hover{background:rgba(255,77,20,.05)}
.sponsor-badge img{max-height:38px;max-width:110px;width:auto;object-fit:contain;
	filter:grayscale(1);opacity:.65;transition:.3s}
.sponsor-badge:hover img{filter:grayscale(0);opacity:1}
.sponsor-badge__init{flex-shrink:0;width:42px;height:42px;border-radius:10px;
	background:var(--ink);color:#fff;
	font-family:var(--font-display);font-weight:700;font-size:15px;
	display:grid;place-items:center;letter-spacing:.03em}
.sponsor-badge__name{font-family:var(--font-display);font-size:14px;font-weight:600;
	text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;color:var(--ink)}
.sponsor-badge--title .sponsor-badge__init{background:var(--accent);width:48px;height:48px;font-size:18px}
.sponsor-badge--gold  .sponsor-badge__init{background:var(--amber);color:var(--ink)}
.sponsor-badge--title{min-width:180px}
.sponsor-badge--title .sponsor-badge__name{font-size:16px}

.sponsors__note{margin-top:14px;font-size:13px;color:var(--muted);
	display:flex;align-items:center;gap:6px}
.sponsors__note svg.lucide{width:.9em;height:.9em;flex-shrink:0}
.sponsors__note a{color:var(--accent)}

/* Single-post sponsor strip — tighter padding */
.single .sponsors{padding-block:28px}

@media(max-width:480px){
	.promo-popup__body{padding:22px 20px 24px}
	.sponsor-badge{height:60px;padding-inline:20px}
	.sponsor-badge__init{width:36px;height:36px;font-size:13px}
}
