/* Home page and racecourse directory (release 31). Built by scripts/build-home.mjs. */
.home-v2{--ink:#13231c;--soft:#56645c;--paper:#f5f2e8;--surface:#fffef9;--rule:#d8ded6;--green:#0b3b2e;--turf:#155c46;--gold:#d7a947;--cream:#f4ead3;--serif:"Newsreader",Georgia,"Times New Roman",serif;--label:"Barlow Condensed","Arial Narrow",Arial,sans-serif;background:var(--paper);color:var(--ink);margin:0}
.home-v2 main{display:block}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Hero */
.h-hero{background:linear-gradient(90deg,rgba(8,40,31,.94) 0%,rgba(8,40,31,.82) 45%,rgba(8,40,31,.35) 100%),url(cheltenham-course-photo.webp) center 60%/cover;color:#fff;border-bottom:5px solid var(--gold);position:relative}
.h-hero-in,.d-hero-in{max-width:1180px;margin:0 auto;padding:64px 30px 56px}
.h-eyebrow{margin:0 0 10px;font:600 1rem/1 var(--label);letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.h-hero h1,.d-hero h1{margin:0;max-width:760px;font:600 clamp(2.3rem,5.4vw,4rem)/1.04 var(--serif);letter-spacing:-.01em}
.h-lede{max-width:640px;margin:16px 0 0;font:400 1.15rem/1.55 var(--serif);color:#e3efe8}
.h-search{display:flex;gap:10px;max-width:560px;margin:26px 0 0}
.h-search input{flex:1;min-width:0;height:52px;border:0;border-radius:10px;padding:0 16px;font:inherit;font-size:1.05rem;color:var(--ink)}
.h-search button{height:52px;padding:0 22px;border:0;border-radius:10px;background:var(--gold);color:var(--green);font:600 1.15rem var(--label);letter-spacing:.04em;cursor:pointer}
.h-search button:hover,.h-search button:focus-visible{background:#e8bf63}
.h-quick{margin:14px 0 0;color:#cfe0d6;font-size:.95rem}
.h-quick a{color:#fff;font-weight:600}

/* Sections */
.h-sec{max-width:1180px;margin:0 auto;padding:44px 30px}
.h-alt{max-width:none;background:var(--cream)}
.h-alt>*{max-width:1120px;margin-left:auto;margin-right:auto}
.h-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 20px;margin-bottom:18px}
.h-head h2{margin:0;font:600 clamp(1.6rem,3vw,2.1rem)/1.15 var(--serif);color:var(--green)}
.h-head p{flex-basis:100%;margin:0;color:var(--soft)}
.h-head a{color:var(--turf);font-weight:700}

/* Event cards */
.ev-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ev{display:flex;gap:14px;align-items:flex-start;padding:14px;border:1px solid var(--rule);border-radius:12px;background:var(--surface);text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}
.ev:hover,.ev:focus-visible{transform:translateY(-2px);box-shadow:0 12px 30px rgba(18,35,28,.1)}
.ev-date{flex:0 0 54px;display:flex;flex-direction:column;align-items:center;padding:6px 0;border-radius:8px;background:var(--green);color:#fff;font:600 .85rem/1.1 var(--label);text-transform:uppercase;letter-spacing:.05em}
.ev-date b{font-size:1.6rem;line-height:1}
.ev-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.ev-course{font:600 .95rem var(--label);letter-spacing:.06em;text-transform:uppercase;color:var(--turf)}
.ev-name{font:600 1.08rem/1.25 var(--serif)}
.ev-price{margin-top:4px;font-weight:700;font-size:.9rem;color:#7a5a12}

/* Festivals */
.fest-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.fest{display:flex;flex-direction:column;border-radius:12px;overflow:hidden;background:var(--surface);border:1px solid var(--rule);color:inherit}
.fest-main{display:flex;flex:1;flex-direction:column;text-decoration:none;color:inherit}
.fest-img{display:block;background:var(--green)}
.fest img{width:100%;height:120px;object-fit:cover;display:block}
.fest-credit{display:block;padding:0 14px 10px;color:var(--soft);font-size:.75rem;line-height:1.25}
.fest-t{padding:12px 14px 0;font:600 1.3rem/1.2 var(--serif);color:var(--green)}
.fest-d{padding:2px 14px 14px;color:var(--soft);font-size:.92rem}
.fest:hover .fest-t,.fest-main:focus-visible .fest-t{text-decoration:underline}

/* Christmas */
.xmas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.xcol{padding:18px;border-radius:12px;background:var(--surface);border:1px solid var(--rule)}
.xcol h3{margin:0 0 8px;font:600 1.3rem var(--serif);color:var(--green)}
.xcol ul{margin:0;padding:0;list-style:none}
.xcol li{padding:7px 0;border-top:1px solid var(--rule)}
.xcol li:first-child{border-top:0}
.xcol a{color:var(--turf);font-weight:700}
.xcol span{color:var(--soft);font-size:.9rem}

/* Countries */
.country-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ctry{padding:18px;border-radius:12px;border:1px solid var(--rule);background:var(--surface)}
.ctry h3{margin:0 0 6px;font:600 1.35rem var(--serif)}
.ctry h3 a{color:var(--green)}
.ctry h3 span{font:600 .9rem var(--label);color:var(--soft);letter-spacing:.06em}
.ctry p{margin:0;line-height:1.7}
.ctry p a{color:var(--turf)}

/* Guide and trust */
.h-split{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:start}
.h-split>*{margin:0}
.h-split h2{margin:0 0 8px;font:600 1.8rem var(--serif);color:var(--green)}
.h-btn{display:inline-block;margin-top:12px;padding:12px 18px;border-radius:10px;background:var(--green);color:#fff;font-weight:700;text-decoration:none}
.h-btn:hover,.h-btn:focus-visible{background:var(--turf)}
.h-trust{padding:20px;border-radius:12px;background:var(--surface);border-left:5px solid var(--gold)}
.h-trust h3{margin:0 0 6px;font:600 1.2rem var(--serif)}
.h-trust p{margin:0 0 8px;color:var(--soft)}
.h-trust a{color:var(--turf);font-weight:700}

/* Directory */
.d-hero{background:var(--green);color:#fff;border-bottom:5px solid var(--gold)}
.d-hero-in{padding-top:44px;padding-bottom:40px}
.d-tools{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;gap:10px;align-items:center;max-width:1180px;margin:0 auto;padding:16px 30px;background:var(--paper);border-bottom:1px solid var(--rule)}
.d-tools input[type=search],.d-tools select{height:46px;border:1px solid #aeb9b0;border-radius:9px;background:#fff;padding:0 12px;font:inherit;color:var(--ink)}
.d-tools input[type=search]{flex:1 1 220px}
.d-check{display:flex;gap:6px;align-items:center;font-weight:600}
.d-check input{width:20px;height:20px}
.d-count{margin:0 0 0 auto;color:var(--soft);font-size:.95rem}
.d-group{max-width:1180px;margin:0 auto;padding:22px 30px 6px}
.d-group h2{margin:0 0 14px;font:600 1.7rem var(--serif);color:var(--green)}
.d-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.dcard{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:12px;overflow:hidden;background:var(--surface);text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}
.dcard:hover,.dcard:focus-visible{transform:translateY(-2px);box-shadow:0 12px 30px rgba(18,35,28,.1)}
.dcard img{display:block;width:100%;height:96px;object-fit:cover}
.dc-body{display:flex;flex-direction:column;gap:3px;padding:12px 14px 14px}
.dc-name{font:600 1.25rem/1.2 var(--serif);color:var(--green)}
.dc-meta{font:500 .9rem var(--label);letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.dc-meta b{color:#7a5a12;font-weight:600}
.dc-next{font-size:.9rem;line-height:1.35}
.dc-price{font-weight:700;font-size:.9rem;color:#7a5a12}
.dc-ai{margin-top:5px;color:var(--soft);font-size:.75rem;line-height:1.25}
.d-empty,.d-note{max-width:1180px;margin:10px auto;padding:0 30px;color:var(--soft)}
.d-note{margin-bottom:34px;font-size:.9rem}

/* Footer (same as the course pages) */
.dydq{max-width:1180px;margin:0 auto;padding:30px 30px 40px}
.dydq-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center;border-top:1px solid var(--rule);padding-top:26px;font-family:var(--serif)}
.dydq-card img{width:64px;height:64px}
.dydq-card p{margin:0;font-size:.95rem;color:var(--soft)}
.dydq-card p+p{margin-top:4px}
.dydq-card strong{color:var(--ink)}
.dydq-card a{color:var(--turf);font-weight:600}

@media (max-width:1000px){.ev-grid,.d-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.fest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.h-hero-in,.d-hero-in,.h-sec,.d-group,.d-tools,.dydq,.d-empty,.d-note{padding-left:18px;padding-right:18px}.h-hero-in{padding-top:40px;padding-bottom:36px}.ev-grid,.d-grid,.country-grid,.xmas,.h-split{grid-template-columns:repeat(2,minmax(0,1fr))}.h-split{grid-template-columns:1fr}.d-count{flex-basis:100%;margin:0}}
@media (max-width:520px){.ev-grid,.d-grid,.fest-grid,.country-grid,.xmas{grid-template-columns:1fr}.h-search{flex-direction:column}.h-search button{width:100%}.d-tools{position:static}.d-tools select{flex:1 1 45%}}
@media (prefers-reduced-motion:reduce){.ev,.dcard{transition:none}.ev:hover,.dcard:hover{transform:none}}
.home-v2 main{max-width:none;margin:0;padding:0}
.ev-grid[data-limit] .ev:nth-child(n+9){display:none}
@media (max-width:520px){.h-search input{flex:none;width:100%}.ev-grid .ev:nth-child(n+5){display:none}}

.h-credit{position:absolute;right:12px;bottom:8px;margin:0;padding:3px 8px;border-radius:6px;background:rgba(8,40,31,.72);color:#e6efe9;font-size:.72rem}
.h-credit a{color:#fff}
.ev-price.tbc,.dc-price.tbc{color:var(--muted,#637169);font-weight:600}

/* r50 credit: on phones the banner photo credit sits on its own line below the Popular links */
@media (max-width:640px){.h-credit{position:static;display:inline-block;margin:0 0 14px 18px}}
.dydq-links{margin-top:6px!important;font-size:.84rem;line-height:1.7}.dydq-links a{font-weight:600}

.topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.topic-card{display:block;padding:24px;background:var(--surface,#fffdf4);border:1px solid var(--line,#d2d8cc);border-radius:12px;text-decoration:none}.topic-card h3{margin:0 0 10px}.topic-card p{margin:0;line-height:1.5}@media(max-width:650px){.topic-grid{grid-template-columns:1fr}}
