
:root { --red:#ef2b2d; --ink:#0b0b0c; --paper:#f5f4f1; --line:#deddd9; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; }
button,input,select { font:inherit; }
a { color:inherit; text-decoration:none; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-header { height:76px; padding:0 4vw; display:flex; align-items:center; justify-content:space-between; background:#fff; border-bottom:1px solid #e7e6e2; position:sticky; top:0; z-index:20; }
.brand { display:flex; align-items:center; gap:10px; font-size:15px; font-weight:900; letter-spacing:-.5px; }
.brand>span:last-child>span { color:var(--red); }
.brand-mark { width:34px; height:34px; display:grid; place-items:center; color:#fff; background:var(--red); transform:skew(-7deg); }
nav { display:flex; gap:26px; font-size:13px; font-weight:700; }
nav a:hover { color:var(--red); }
.header-cta,.search-button,.submit-section>a { display:flex; align-items:center; justify-content:center; gap:10px; background:var(--red); color:#fff; font-weight:800; font-size:13px; padding:15px 20px; }
.hero { position:relative; overflow:hidden; background:#0b0b0c; color:#fff; min-height:610px; padding:96px max(5vw,calc((100vw - 1180px)/2)); }
.hero-grid { position:absolute; inset:0; opacity:.16; background-image:linear-gradient(#888 1px,transparent 1px),linear-gradient(90deg,#888 1px,transparent 1px); background-size:64px 64px; mask-image:linear-gradient(90deg,transparent 12%,#000 55%,transparent); transform:perspective(600px) rotateX(55deg) scale(1.4) translateY(11%); }
.hero:after { content:""; position:absolute; width:460px; height:460px; right:-110px; bottom:-230px; border:90px solid var(--red); border-radius:50%; opacity:.9; }
.hero>*:not(.hero-grid) { position:relative; z-index:1; }
.eyebrow,.kicker { font-family:var(--font-geist-mono); font-size:11px; font-weight:700; letter-spacing:.16em; color:var(--red); }
.eyebrow { display:flex; gap:10px; align-items:center; }
.eyebrow span { width:28px; height:2px; background:var(--red); }
.hero h1 { margin:27px 0 22px; max-width:820px; font-size:clamp(58px,7.6vw,108px); line-height:.88; letter-spacing:-.075em; text-transform:uppercase; font-weight:900; }
.hero h1 em { color:var(--red); font-style:normal; }
.hero>p { max-width:630px; color:#b8b8ba; font-size:18px; line-height:1.6; }
.search-panel { margin-top:38px; max-width:1020px; min-height:72px; display:grid; grid-template-columns:1.4fr .8fr auto; background:#fff; color:#111; padding:8px; box-shadow:0 22px 80px #0008; }
.search-field,.select-field { display:flex; align-items:center; gap:12px; padding:0 18px; border-right:1px solid #ddd; }
.search-field svg,.select-field svg { color:#777; flex:none; }
.search-field input,.select-field select { width:100%; border:0; outline:0; background:transparent; color:#222; }
.select-field { position:relative; }
.select-field select { appearance:none; }
.quick-stats { margin-top:42px; display:flex; gap:48px; }
.quick-stats div { display:flex; align-items:center; gap:12px; }
.quick-stats strong { font-size:25px; }
.quick-stats span { color:#8f8f92; font-size:11px; text-transform:uppercase; letter-spacing:.08em; max-width:110px; line-height:1.35; }
.section { max-width:1180px; margin:0 auto; padding:95px 24px; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:38px; }
.section-heading h2,.submit-section h2 { margin:9px 0 0; font-size:clamp(38px,5vw,62px); text-transform:uppercase; letter-spacing:-.055em; line-height:.95; }
.section-heading>p { max-width:450px; margin:0; color:#666; line-height:1.6; font-size:14px; }
.featured-section { padding-top:82px; }
.filter-row { display:flex; align-items:center; gap:8px; padding:15px 0; border-block:1px solid var(--line); margin-bottom:28px; }
.filter-label { display:flex; gap:7px; align-items:center; margin-right:12px; font-size:12px; font-weight:800; text-transform:uppercase; }
.filter-row button { border:1px solid #d8d7d3; background:#fff; padding:9px 14px; font-size:12px; cursor:pointer; }
.filter-row button.active,.filter-row button:hover { background:#111; color:#fff; border-color:#111; }
.result-count { margin-left:auto; color:#777; font-size:12px; }
.cards-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.champ-card { background:#fff; border:1px solid #e2e1dd; transition:.22s ease; }
.champ-card:hover { transform:translateY(-4px); box-shadow:0 18px 50px #1111; }
.card-visual { height:150px; position:relative; display:grid; place-items:center; overflow:hidden; color:#fff; background:#161617; }
.card-visual:before { content:""; position:absolute; inset:-50%; background:repeating-linear-gradient(120deg,transparent 0 26px,#ffffff0b 27px 28px); transform:rotate(-10deg); }
.visual-1 { background:#29292b; }.visual-2 { background:#151515; }
.card-number { position:absolute; left:18px; top:15px; font:700 11px var(--font-geist-mono); color:#777; }
.card-tag { position:absolute; right:14px; top:14px; background:var(--red); padding:5px 8px; font:700 9px var(--font-geist-mono); text-transform:uppercase; letter-spacing:.08em; }
.card-body { padding:22px; }
.card-meta { display:flex; justify-content:space-between; align-items:center; color:#777; font-size:10px; text-transform:uppercase; letter-spacing:.05em; }
.level { padding:5px 8px; font-weight:800; }.level-green{background:#e6f5e9;color:#18702a}.level-amber{background:#fff0cf;color:#8c5b00}.level-red{background:#fde2e1;color:#a61d1d}
.card-body h3 { min-height:49px; margin:16px 0 9px; font-size:20px; line-height:1.2; letter-spacing:-.025em; }
.location { display:flex; align-items:center; gap:6px; margin:0; color:#777; font-size:12px; }
.location svg { color:var(--red); }
.card-details { display:flex; flex-direction:column; gap:9px; border-block:1px solid #ecebe7; margin:18px 0; padding:16px 0; color:#555; font-size:11px; }
.card-details span { display:flex; align-items:center; gap:7px; }
.card-footer { display:flex; justify-content:space-between; align-items:center; }
.card-footer strong { font-size:13px; }
.card-footer button { border:0; background:none; color:var(--red); display:flex; align-items:center; gap:5px; font-size:11px; font-weight:800; cursor:pointer; }
.empty-state { grid-column:1/-1; text-align:center; padding:70px; background:#fff; border:1px solid var(--line); }.empty-state h3{margin:12px 0 4px}.empty-state p{margin:0;color:#777}
.light { color:var(--red); }
.region-list { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.region-list button { min-height:72px; padding:0 20px; display:flex; align-items:center; justify-content:space-between; border:0; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:transparent; font-size:13px; font-weight:700; cursor:pointer; text-align:left; }
.region-list button:hover { background:#111;color:#fff; }.region-list button:hover svg{color:var(--red)}
.region-link { min-height:72px; padding:0 20px; display:flex; align-items:center; justify-content:space-between; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; font-size:13px; font-weight:800; }
.region-link:hover { background:#111; color:#fff; }.region-link:hover svg{color:var(--red)}
.submit-section { max-width:1180px; margin:0 auto 90px; padding:52px; background:var(--red); color:#fff; display:flex; align-items:center; justify-content:space-between; }
.submit-section>div { display:flex; align-items:center; gap:26px; }.submit-icon { width:60px;height:60px;display:grid;place-items:center;background:#fff;color:var(--red);flex:none}.submit-section .kicker{color:#280000}.submit-section h2{font-size:38px}.submit-section p{margin:8px 0 0;color:#ffe1e1;font-size:13px}.submit-section>a{background:#111;white-space:nowrap}
footer { background:#09090a; color:#fff; min-height:230px; padding:55px max(5vw,calc((100vw - 1180px)/2)); display:grid; grid-template-columns:1fr 1fr; align-items:center; }
.footer-brand{font-size:16px}.footer-brand+p{color:#8d8d8f;font-size:13px;text-align:right}footer small{grid-column:1/-1;border-top:1px solid #29292b;margin-top:35px;padding-top:22px;color:#68686b;font-size:10px}

.guide-hero { background:#0b0b0c; color:#fff; padding:92px max(5vw,calc((100vw - 1080px)/2)) 80px; position:relative; overflow:hidden; }
.guide-hero:after { content:""; position:absolute; width:360px; height:360px; right:-150px; top:-180px; border:70px solid var(--red); border-radius:50%; }
.guide-hero>* { position:relative; z-index:1; }
.guide-hero h1 { max-width:900px; margin:24px 0 20px; font-size:clamp(52px,7vw,92px); line-height:.9; letter-spacing:-.065em; text-transform:uppercase; }
.guide-hero h1 em { color:var(--red); font-style:normal; }
.guide-hero p { max-width:680px; margin:0; color:#b8b8ba; font-size:18px; line-height:1.6; }
.guide-content { max-width:1080px; margin:0 auto; padding:80px 24px 100px; }
.guide-intro { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; padding-bottom:70px; border-bottom:1px solid var(--line); }
.guide-intro h2,.guide-block h2 { margin:8px 0 0; font-size:clamp(34px,4vw,52px); line-height:1; letter-spacing:-.045em; text-transform:uppercase; }
.guide-intro p { margin:0; color:#555; font-size:17px; line-height:1.75; }
.guide-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:55px 0 80px; }
.guide-card { background:#fff; border:1px solid var(--line); padding:28px; }
.guide-card svg { color:var(--red); }
.guide-card h3 { margin:24px 0 10px; font-size:19px; }
.guide-card p { margin:0; color:#666; line-height:1.65; font-size:13px; }
.guide-block { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; background:#fff; border:1px solid var(--line); padding:50px; }
.guide-block p { color:#5e5e5e; line-height:1.7; }
.guide-checks { display:flex; flex-direction:column; gap:13px; }
.guide-checks span { display:flex; align-items:flex-start; gap:10px; font-size:14px; line-height:1.45; }
.guide-checks svg { color:var(--red); flex:none; margin-top:2px; }
.guide-cta { margin-top:24px; display:inline-flex; align-items:center; gap:9px; background:var(--red); color:#fff; padding:14px 18px; font-size:13px; font-weight:800; }
.guide-note { margin-top:22px; color:#777; font-size:12px; }
.guide-block-spaced { margin-top:22px; }
.discount-banner{margin:28px 0 55px;padding:34px 40px;display:flex;align-items:center;justify-content:space-between;gap:32px;background:var(--red);color:#fff}.discount-banner h2{margin:8px 0 5px;font-size:clamp(32px,4vw,48px);line-height:1;text-transform:uppercase;letter-spacing:-.045em}.discount-banner p{margin:0;color:#ffd8d8;font-size:13px}.discount-action{display:flex;align-items:center;gap:13px;flex-wrap:wrap;justify-content:flex-end}.discount-action>strong{padding:14px 18px;border:1px dashed rgba(255,255,255,.65);background:rgba(0,0,0,.16);font:800 16px var(--font-geist-mono);letter-spacing:.05em}.discount-banner .guide-cta{margin:0;background:#111}
.province-hero { background:#0b0b0c; color:#fff; padding:42px max(5vw,calc((100vw - 1180px)/2)) 90px; }
.back-link { display:inline-flex; align-items:center; gap:7px; color:#929295; font-size:12px; margin-bottom:65px; }.back-link:hover{color:#fff}
.province-hero h1 { max-width:1050px; margin:25px 0 23px; font-size:clamp(52px,7vw,94px); line-height:.91; letter-spacing:-.065em; text-transform:uppercase; }.province-hero h1 em{color:var(--red);font-style:normal}.province-hero>p{max-width:740px;margin:0;color:#b8b8ba;font-size:18px;line-height:1.65}
.province-content { max-width:1180px; margin:0 auto; padding:90px 24px 105px; }
.province-heading { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:40px; }.province-heading h2{margin:9px 0 0;font-size:clamp(36px,5vw,58px);line-height:.95;letter-spacing:-.05em;text-transform:uppercase}.province-heading>p{max-width:440px;margin:0;color:#666;font-size:14px;line-height:1.65}
.competition-list { display:flex; flex-direction:column; gap:18px; }.competition-card{display:grid;grid-template-columns:70px 1.2fr .8fr;gap:28px;padding:34px;background:#fff;border:1px solid var(--line)}.competition-index{color:#c4c3bf;font:700 13px var(--font-geist-mono)}
.competition-main h2{margin:10px 0 12px;font-size:29px;letter-spacing:-.035em}.competition-main>p{margin:0;color:#616161;line-height:1.65;font-size:14px}.competition-facts{display:flex;flex-wrap:wrap;gap:9px 18px;margin-top:23px;padding-top:20px;border-top:1px solid #ecebe7}.competition-facts span{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700}.competition-facts svg{color:var(--red)}
.contact-groups{display:flex;flex-direction:column;gap:12px;margin-top:18px}.contact-group>strong{display:block;margin-bottom:8px;font-size:11px;text-transform:uppercase;color:#666}.contact-links{display:flex;flex-wrap:wrap;gap:8px}.contact-links a{display:inline-flex;align-items:center;gap:6px;padding:9px 11px;border:1px solid #deddd8;background:#fafaf8;color:#222;font-size:11px;font-weight:800}.contact-links a:hover{border-color:var(--red);color:var(--red)}.contact-links svg{color:var(--red)}.contact-pending{margin-top:18px;padding:10px 12px;border-left:3px solid #c9c7c0;background:#f6f5f1;color:#777;font-size:11px;font-weight:700}
.competition-format{border-left:1px solid var(--line);padding-left:28px;display:flex;flex-direction:column;gap:10px}.competition-format h3{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:13px;text-transform:uppercase}.competition-format h3 svg{color:var(--red)}.competition-format>span{font-size:13px;color:#444}.competition-format>small{margin-top:auto;padding-top:18px;color:#888;line-height:1.5}
.endurance-block{margin-top:28px;padding:46px;display:grid;grid-template-columns:1fr 1fr;gap:60px;background:#111;color:#fff}.endurance-block h2{margin:10px 0 15px;font-size:36px;line-height:1;text-transform:uppercase;letter-spacing:-.045em}.endurance-block p{margin:0;color:#aaa;line-height:1.7;font-size:14px}.endurance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#333}.endurance-grid>span{background:#181819;padding:23px;display:flex;flex-direction:column;gap:9px}.endurance-grid svg{color:var(--red)}.endurance-grid strong{font-size:18px}.endurance-grid small{color:#999;line-height:1.45}
.endurance-grid-single{grid-template-columns:1fr}.endurance-grid-single>span{min-height:150px;justify-content:center}
.endurance-grid-two{grid-template-columns:repeat(2,1fr)}
.known-circuits{margin-top:28px;padding:46px;display:grid;grid-template-columns:1fr 1fr;gap:60px;background:#fff;border:1px solid var(--line)}.known-circuits h2{margin:10px 0 14px;font-size:36px;line-height:1;text-transform:uppercase;letter-spacing:-.045em}.known-circuits p{margin:0;color:#666;line-height:1.7;font-size:14px}.circuit-tags{display:flex;flex-wrap:wrap;align-content:center;gap:10px}.circuit-tags span{display:flex;align-items:center;gap:7px;padding:13px 15px;background:var(--paper);border:1px solid var(--line);font-size:12px;font-weight:700}.circuit-tags svg{color:var(--red)}

@media (max-width:900px){
  nav{display:none}.cards-grid{grid-template-columns:repeat(2,1fr)}.region-list{grid-template-columns:repeat(3,1fr)}.submit-section{margin-inline:20px}.submit-section>div{align-items:flex-start}.submit-icon{display:none}.guide-intro{grid-template-columns:1fr;gap:24px}.guide-grid{grid-template-columns:1fr}.guide-block{grid-template-columns:1fr;gap:30px}.discount-banner{align-items:flex-start}.discount-action{justify-content:flex-start}.competition-card{grid-template-columns:45px 1fr}.competition-format{grid-column:2;border-left:0;border-top:1px solid var(--line);padding:22px 0 0}.endurance-block,.known-circuits{grid-template-columns:1fr}.province-heading{display:block}.province-heading>p{margin-top:18px}
}
@media (max-width:640px){
  .site-header{height:66px;padding:0 18px}.header-cta{font-size:0;padding:12px}.header-cta svg{margin:0}.hero{padding:70px 20px 65px;min-height:auto}.hero h1{font-size:53px}.hero>p{font-size:15px}.search-panel{grid-template-columns:1fr;padding:7px}.search-field,.select-field{height:54px;border-right:0;border-bottom:1px solid #ddd}.search-button{height:52px}.quick-stats{gap:18px;justify-content:space-between}.quick-stats div{display:block}.quick-stats strong{display:block}.quick-stats span{font-size:8px}.section{padding:68px 18px}.section-heading{display:block}.section-heading>p{margin-top:18px}.filter-row{overflow:auto}.filter-label{display:none}.result-count{display:none}.cards-grid{grid-template-columns:1fr}.card-body h3{min-height:auto}.region-list{grid-template-columns:repeat(2,1fr)}.submit-section{padding:34px 24px;display:block;margin-bottom:60px}.submit-section h2{font-size:34px}.submit-section>a{margin-top:25px}.submit-section>div{display:block}footer{grid-template-columns:1fr;padding:45px 22px}.footer-brand+p{text-align:left;margin-top:22px}footer small{grid-column:1}.guide-hero{padding:70px 20px 58px}.guide-hero p{font-size:15px}.guide-content{padding:58px 18px 70px}.guide-block{padding:28px}.discount-banner{display:block;padding:28px}.discount-action{margin-top:24px}.province-hero{padding:28px 20px 58px}.back-link{margin-bottom:48px}.province-hero h1{font-size:46px}.province-hero>p{font-size:15px}.province-content{padding:60px 18px}.competition-card{grid-template-columns:1fr;padding:25px}.competition-index{display:none}.competition-format{grid-column:1}.endurance-block,.known-circuits{padding:28px;gap:32px}.endurance-grid{grid-template-columns:1fr}}

/* Static hosting helpers */
a{text-decoration:none}.icon{display:inline-block;width:1.1em;text-align:center}.static-note{font-size:12px;color:#777}.brand-mark{display:inline-flex;align-items:center;justify-content:center}.brand-mark:before{content:"⚑"}.brand-mark svg{display:none}.champ-card .card-visual .big-icon{font-size:42px}.competition-format h3,.competition-facts span,.contact-links a,.guide-checks span{display:flex;align-items:center;gap:8px}.region-link{cursor:pointer}.no-results{padding:35px;border:1px solid var(--line);background:#fff;text-align:center}.site-header{z-index:10}.card-footer a{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:800;color:inherit}.footer-brand{white-space:nowrap}
