/*
 * RacerPacer plugin, events module: the event card, the race finder, an event's
 * header, its races, and what happened afterwards.
 *
 * Every rule sits under .rpkit-ev, the wrapper the module puts round each of its
 * blocks, and every colour and font comes from the --rpkit-* custom properties on
 * that wrapper (see includes/style.php). So the blocks look right in any theme,
 * in whichever colour set and mode the owner chose.
 *
 * The class names inside the wrapper (card, chip, metric...) are the ones the
 * separate RaceDay plugins used, so the look carried over rule for rule from the
 * Wildstride theme's skin.
 */

.rpkit.rpkit-ev {
	--rpkit-ev-surface-2: color-mix(in srgb, var(--rpkit-surface) 86%, var(--rpkit-text));
	--rpkit-ev-edge: 1px solid var(--rpkit-border);
	--rpkit-ev-focus: var(--rpkit-accent-text);
	--rpkit-ev-band-hair: color-mix(in srgb, var(--rpkit-band-text) 22%, transparent);
	--rpkit-ev-band-deep: color-mix(in srgb, var(--rpkit-band-bg) 80%, #000);
	/* Behind a photo, and the far end of the register band: always dark. */
	--rpkit-ev-photo: color-mix(in srgb, var(--rpkit-band-bg) 70%, #000);
	--rpkit-ev-sky: linear-gradient(157deg, var(--rpkit-band-wash, var(--rpkit-accent)) 0%, var(--rpkit-band-wash-2, var(--rpkit-accent-2)) 24%, color-mix(in srgb, var(--rpkit-band-wash-2, var(--rpkit-accent-2)) 45%, var(--rpkit-band-bg)) 46%, var(--rpkit-band-bg) 100%);
	--rpkit-ev-t-hero: clamp(2.6rem, 8.5vw, 5.8rem);
	--rpkit-ev-t-h2: clamp(1.7rem, 4.5vw, 2.6rem);
	--rpkit-ev-t-h3: clamp(1.5rem, 3.5vw, 2.2rem);
	--rpkit-ev-t-lead: clamp(1rem, 2.5vw, 1.15rem);
	--rpkit-ev-t-body: 17px;
	--rpkit-ev-t-cap: 0.74rem;
	--rpkit-ev-pad: clamp(18px, 4vw, 64px);
	--rpkit-ev-gap: clamp(16px, 2vw, 26px);
	--rpkit-ev-maxw: 1320px;
	--rpkit-ev-tap: 44px;
	--rpkit-ev-ctl-radius: min(var(--rpkit-radius), 10px);
	color: var(--rpkit-text);
	font-size: var(--rpkit-ev-t-body);
	line-height: 1.6;
}
/* A block that runs edge to edge sets its own page colour; a small one (a readout, a bookmark) sits on whatever is behind it. */
.rpkit.rpkit-ev.alignfull {
	background: var(--rpkit-bg);
}
.rpkit.rpkit-ev.rpkit-inherit {
	--rpkit-ev-surface-2: color-mix(in srgb, currentColor 8%, transparent);
	--rpkit-ev-photo: #101418;
}
.rpkit-ev h1,.rpkit-ev h2,.rpkit-ev h3,.rpkit-ev h4{font-family:var(--rpkit-font-head);font-weight:var(--rpkit-head-weight);line-height:0.94;letter-spacing:-0.03em;margin:0;}
.rpkit-ev a{color:inherit;text-decoration:none;}
.rpkit-ev img{max-width:100%;display:block;}
.rpkit-ev button{font-family:inherit;}
.rpkit-ev [hidden]{display:none !important;}
.rpkit-ev .mono{font-family:var(--rpkit-font-mono);font-size:var(--rpkit-ev-t-cap);letter-spacing:0.04em;}
.rpkit-ev .shell{max-width:var(--rpkit-ev-maxw);margin:0 auto;}
@media(prefers-reduced-motion:reduce){.rpkit-ev *{transition:none !important;}}
/* A grid placed straight on the page keeps to the same width as everything else. */
.rpkit-ev > .grid-2{max-width:var(--rpkit-ev-maxw);margin-inline:auto;}

/* ---------- Section heads ---------- */
.rpkit-ev .shead{display:flex;align-items:baseline;gap:16px;padding:clamp(40px,6vw,72px) var(--rpkit-ev-pad) 18px;}
.rpkit-ev .shead .n{font-family:var(--rpkit-font-mono);font-size:0.8rem;color:var(--rpkit-accent-2-text);}
.rpkit-ev .shead h2{font-size:var(--rpkit-ev-t-h2);color:var(--rpkit-text);}
.rpkit-ev .shead .r{margin-left:auto;font-family:var(--rpkit-font-mono);font-size:var(--rpkit-ev-t-cap);color:var(--rpkit-muted);text-transform:uppercase;letter-spacing:0.1em;}
.rpkit-ev .shead.on-dark h2{color:var(--rpkit-band-text);}
.rpkit-ev .shead.on-dark .r{color:var(--rpkit-band-muted);}
.rpkit-ev .shead.on-dark .n{color:var(--rpkit-band-accent);}
@media(max-width:560px){
.rpkit-ev .shead{flex-wrap:wrap;}
.rpkit-ev .shead .r{margin-left:0;flex-basis:100%;}
}

/* ---------- Buttons and links ---------- */
.rpkit-ev .btn{font-family:var(--rpkit-font-head);font-weight:600;font-size:1rem;padding:15px 26px;min-height:52px;border:1px solid var(--rpkit-accent);background:var(--rpkit-accent);color:var(--rpkit-on-accent);cursor:pointer;display:inline-flex;gap:10px;align-items:center;justify-content:center;border-radius:var(--rpkit-radius);transition:transform .1s,background .1s;text-decoration:none;}
.rpkit-ev .btn:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--rpkit-accent) 82%,#fff);color:var(--rpkit-on-accent);}
.rpkit-ev .btn-ghost{background:transparent;color:var(--rpkit-band-text);border:1px solid var(--rpkit-band-text);}
.rpkit-ev .btn-ghost:hover{background:color-mix(in srgb,currentColor 12%,transparent);color:var(--rpkit-band-text);}
.rpkit-ev .btn-dark{background:var(--rpkit-band-bg);color:var(--rpkit-band-text);border-color:var(--rpkit-band-bg);}
.rpkit-ev .btn-dark:hover{background:color-mix(in srgb,var(--rpkit-band-bg) 82%,#000);color:var(--rpkit-band-text);}
.rpkit-ev .btn-lg{font-size:1.05rem;padding:18px 30px;min-height:56px;}
.rpkit-ev .btn-block{width:100%;}
.rpkit-ev .link-arrow{font-family:var(--rpkit-font-head);font-weight:600;display:inline-flex;gap:8px;align-items:center;color:var(--rpkit-text);border-bottom:2px solid var(--rpkit-text);padding-bottom:2px;}
.rpkit-ev .link-arrow:hover{color:var(--rpkit-accent-2-text);border-bottom-color:var(--rpkit-accent-2-text);}

/* ---------- Tags and chips ---------- */
.rpkit-ev .tag{font-family:var(--rpkit-font-mono);font-size:0.75rem;letter-spacing:0.06em;text-transform:uppercase;padding:6px 11px;background:var(--rpkit-accent-2);color:var(--rpkit-on-accent-2);}
.rpkit-ev .tag-sun{background:var(--rpkit-accent);color:var(--rpkit-on-accent);}
.rpkit-ev .chip{font-family:var(--rpkit-font-mono);font-size:0.75rem;border:1px solid var(--rpkit-edge);padding:5px 9px;display:inline-block;color:var(--rpkit-text);}
.rpkit-ev .chip.live{background:var(--rpkit-accent);border-color:var(--rpkit-accent);color:var(--rpkit-on-accent);}
.rpkit-ev .chip-set{display:flex;flex-wrap:wrap;gap:8px;}
.rpkit-ev .on-dark .chip{border-color:var(--rpkit-ev-band-hair);color:var(--rpkit-band-text);}

/* ---------- Event card ---------- */
.rpkit-ev .card{border:var(--rpkit-ev-edge);background:var(--rpkit-surface);display:flex;flex-direction:column;overflow:hidden;transition:transform .12s,box-shadow .12s;}
.rpkit-ev .card:hover{transform:translateY(-3px);box-shadow:0 10px 0 -4px var(--rpkit-border);}
.rpkit-ev .card.wide{flex-direction:row;}
@media(max-width:720px){
.rpkit-ev .card.wide{flex-direction:column;}
}
.rpkit-ev .card .media{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--rpkit-ev-surface-2);}
.rpkit-ev .card.wide .media{flex:1 1 52%;aspect-ratio:auto;min-height:280px;}
.rpkit-ev .card .media img{width:100%;height:100%;object-fit:cover;}
.rpkit-ev .card .media .tag{position:absolute;top:0;left:0;}
.rpkit-ev .card .cb{padding:22px var(--rpkit-ev-pad);display:flex;flex-direction:column;}
.rpkit-ev .card.wide .cb{flex:1 1 48%;justify-content:center;}
.rpkit-ev .card .when{font-family:var(--rpkit-font-mono);font-size:0.75rem;color:var(--rpkit-muted);text-transform:uppercase;letter-spacing:0.06em;}
.rpkit-ev .card h3{font-size:var(--rpkit-ev-t-h3);margin:10px 0 8px;color:var(--rpkit-text);}
.rpkit-ev .card .loc{font-family:var(--rpkit-font-mono);font-size:0.8rem;color:var(--rpkit-muted);}
.rpkit-ev .card .chip-set{margin-top:16px;}
.rpkit-ev .card .link-arrow{margin-top:20px;align-self:flex-start;}

/* ---------- Photo header pieces and the next-up readout ---------- */
.rpkit-ev .hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;}
.rpkit-ev .hero-scrim{position:absolute;inset:0;background:
  linear-gradient(115deg,color-mix(in srgb,var(--rpkit-ev-photo) 90%,transparent) 0%,color-mix(in srgb,var(--rpkit-ev-photo) 50%,transparent) 46%,color-mix(in srgb,var(--rpkit-accent) 14%,transparent) 100%),
  linear-gradient(0deg,color-mix(in srgb,var(--rpkit-ev-photo) 92%,transparent) 0%,color-mix(in srgb,var(--rpkit-ev-photo) 0%,transparent) 55%);}
.rpkit-ev .hero-actions{display:flex;flex-wrap:wrap;gap:14px 20px;align-items:center;}
.rpkit-ev .readout{margin-top:34px;display:flex;flex-wrap:wrap;border:1px solid color-mix(in srgb,var(--rpkit-band-text) 28%,transparent);width:fit-content;}
.rpkit-ev .readout div{padding:10px 18px;border-right:1px solid color-mix(in srgb,var(--rpkit-band-text) 28%,transparent);}
.rpkit-ev .readout div:last-child{border-right:none;}
.rpkit-ev .readout .k{font-family:var(--rpkit-font-mono);font-size:0.75rem;color:var(--rpkit-band-muted);text-transform:uppercase;letter-spacing:0.08em;}
.rpkit-ev .readout .v{font-family:var(--rpkit-font-head);font-weight:var(--rpkit-head-weight);font-size:1.1rem;color:var(--rpkit-band-text);}
@media(max-width:480px){
.rpkit-ev .readout div:nth-child(2){border-right:none;}
}
/* The readout as a block of its own sits on the page, not on a photo: it takes the colour of the text around it. */
.rpkit-ev > .readout{margin-top:0;border-color:color-mix(in srgb,currentColor 28%,transparent);}
.rpkit-ev > .readout div{border-right-color:color-mix(in srgb,currentColor 28%,transparent);}
.rpkit-ev > .readout .k{color:inherit;opacity:.85;}
.rpkit-ev > .readout .v{color:inherit;}

/* ---------- Dark band, scrolling modules, stats ---------- */
.rpkit-ev .band-dark{background:var(--rpkit-band-bg);color:var(--rpkit-band-text);}
.rpkit-ev .scroll{padding:0 0 clamp(30px,4vw,48px);}
.rpkit-ev .scroll::-webkit-scrollbar{height:8px;}
.rpkit-ev .scroll::-webkit-scrollbar-track{background:var(--rpkit-ev-band-deep);}
.rpkit-ev .scroll::-webkit-scrollbar-thumb{background:var(--rpkit-accent);}
.rpkit-ev .mod{border-right:1px solid var(--rpkit-ev-band-hair);padding:0 var(--rpkit-ev-pad);}
.rpkit-ev .mod .media{aspect-ratio:4/3;overflow:hidden;border:1px solid var(--rpkit-ev-band-hair);margin-bottom:18px;}
.rpkit-ev .mod .media img{width:100%;height:100%;object-fit:cover;}
.rpkit-ev .mod h3{font-size:1.5rem;color:var(--rpkit-band-text);}
.rpkit-ev .mod .quote{font-size:1.02rem;line-height:1.5;color:var(--rpkit-band-text);margin:14px 0;}
.rpkit-ev .mod .who{font-family:var(--rpkit-font-mono);font-size:0.75rem;color:var(--rpkit-band-accent);}
.rpkit-ev .stat{display:flex;align-items:baseline;gap:12px;border-top:var(--rpkit-ev-edge);margin-top:18px;padding-top:16px;}
.rpkit-ev .stat .big{font-family:var(--rpkit-font-head);font-weight:var(--rpkit-head-weight);font-size:2.1rem;color:var(--rpkit-accent-2-text);letter-spacing:-0.03em;}
.rpkit-ev .stat .lab{font-family:var(--rpkit-font-mono);font-size:0.75rem;color:var(--rpkit-muted);text-transform:uppercase;letter-spacing:0.05em;line-height:1.4;}
.rpkit-ev .band-dark .stat{border-top:1px solid var(--rpkit-ev-band-hair);}
.rpkit-ev .band-dark .stat .big{color:var(--rpkit-band-accent);}
.rpkit-ev .band-dark .stat .lab{color:var(--rpkit-band-muted);}

/* ---------- Register band ---------- */
.rpkit-ev .cta-band{background:var(--rpkit-ev-sky);color:var(--rpkit-band-text);padding:clamp(48px,8vw,100px) var(--rpkit-ev-pad);}
.rpkit-ev .cta-band .inner{max-width:var(--rpkit-ev-maxw);margin:0 auto;}
.rpkit-ev .cta-band h2{font-size:clamp(2.4rem,8vw,5.4rem);max-width:14ch;color:var(--rpkit-band-text);text-shadow:0 2px 20px color-mix(in srgb,var(--rpkit-ev-photo) 35%,transparent);}
.rpkit-ev .cta-band p{max-width:44ch;margin:20px 0 30px;color:var(--rpkit-band-text);font-size:1.05rem;text-shadow:0 1px 10px color-mix(in srgb,var(--rpkit-ev-photo) 40%,transparent);}

/* ---------- Event header ---------- */
.rpkit-ev .festival{position:relative;min-height:min(78vh,640px);display:flex;align-items:flex-end;overflow:hidden;background:var(--rpkit-band-bg);}
.rpkit-ev .festival .hero-img{object-position:center 45%;}
.rpkit-ev .festival .fx{position:relative;z-index:2;padding:0 var(--rpkit-ev-pad) clamp(28px,4vw,52px);width:100%;max-width:var(--rpkit-ev-maxw);margin:0 auto;}
.rpkit-ev .festival .coords{font-family:var(--rpkit-font-mono);font-size:0.75rem;letter-spacing:0.1em;color:var(--rpkit-band-accent);text-transform:uppercase;margin-bottom:18px;}
.rpkit-ev .festival h1{font-size:clamp(2.6rem,9vw,6rem);color:var(--rpkit-band-text);}
.rpkit-ev .festival .when-loc{display:flex;flex-wrap:wrap;gap:10px 26px;margin:20px 0 26px;font-family:var(--rpkit-font-mono);font-size:0.82rem;color:var(--rpkit-band-text);}
.rpkit-ev .festival .when-loc b{color:var(--rpkit-band-text);font-weight:500;}

/* ---------- Race picker ---------- */
.rpkit-ev .selector-wrap{background:var(--rpkit-band-bg);color:var(--rpkit-band-text);border-top:1px solid var(--rpkit-ev-band-hair);}
.rpkit-ev .selector{max-width:var(--rpkit-ev-maxw);margin:0 auto;padding:clamp(24px,3vw,36px) var(--rpkit-ev-pad);}
.rpkit-ev .selector .lbl{font-family:var(--rpkit-font-mono);font-size:0.75rem;text-transform:uppercase;letter-spacing:0.1em;color:var(--rpkit-band-muted);margin-bottom:14px;}
.rpkit-ev .segments{display:flex;flex-wrap:wrap;border:1px solid var(--rpkit-band-muted);width:fit-content;max-width:100%;}
.rpkit-ev .segment{appearance:none;background:transparent;color:var(--rpkit-band-text);border:none;border-right:1px solid var(--rpkit-band-muted);padding:14px 20px;min-height:var(--rpkit-ev-tap);cursor:pointer;font-family:var(--rpkit-font-head);font-weight:600;font-size:0.95rem;display:flex;flex-direction:column;align-items:flex-start;gap:2px;transition:background .1s,color .1s;}
.rpkit-ev .segment:last-child{border-right:none;}
.rpkit-ev .segment .km{font-family:var(--rpkit-font-mono);font-size:0.75rem;font-weight:400;letter-spacing:0.06em;color:var(--rpkit-band-muted);}
.rpkit-ev .segment[aria-selected="true"]{background:var(--rpkit-accent);color:var(--rpkit-on-accent);}
.rpkit-ev .segment[aria-selected="true"] .km{color:var(--rpkit-on-accent);}
.rpkit-ev .segment:hover:not([aria-selected="true"]){background:color-mix(in srgb,currentColor 12%,transparent);}
@media(max-width:560px){
.rpkit-ev .segments{flex-direction:column;width:100%;}
.rpkit-ev .segment{border-right:none;border-bottom:1px solid var(--rpkit-band-muted);width:100%;}
.rpkit-ev .segment:last-child{border-bottom:none;}
}

/* ---------- Route numbers and elevation ---------- */
.rpkit-ev .matrix{border:var(--rpkit-ev-edge);border-bottom:none;background:var(--rpkit-surface);}
.rpkit-ev .metric{padding:22px var(--rpkit-ev-pad);border-right:var(--rpkit-ev-edge);border-bottom:var(--rpkit-ev-edge);}
.rpkit-ev .metric:nth-child(4n){border-right:none;}
@media(max-width:760px){
.rpkit-ev .metric:nth-child(4n){border-right:var(--rpkit-ev-edge);}
.rpkit-ev .metric:nth-child(2n){border-right:none;}
}
@media(max-width:420px){
.rpkit-ev .metric{border-right:none;}
}
.rpkit-ev .metric .k{font-family:var(--rpkit-font-mono);font-size:0.75rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--rpkit-muted);}
.rpkit-ev .metric .v{font-family:var(--rpkit-font-head);font-weight:var(--rpkit-head-weight);font-size:clamp(1.6rem,4vw,2.4rem);letter-spacing:-0.03em;margin-top:8px;color:var(--rpkit-text);}
.rpkit-ev .metric .v small{font-size:0.9rem;font-weight:500;color:var(--rpkit-muted);letter-spacing:0;}
.rpkit-ev .metric .alt{font-family:var(--rpkit-font-mono);font-size:0.75rem;color:var(--rpkit-muted);margin-top:6px;}
.rpkit-ev .techbar{display:flex;gap:5px;margin-top:12px;}
.rpkit-ev .techbar span{flex:1;height:12px;background:var(--rpkit-border);}
.rpkit-ev .techbar span.on{background:var(--rpkit-accent-2);}
.rpkit-ev .elev{border:var(--rpkit-ev-edge);border-top:none;padding:20px var(--rpkit-ev-pad);background:var(--rpkit-surface);}
.rpkit-ev .elev .cap{font-family:var(--rpkit-font-mono);font-size:0.75rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--rpkit-muted);margin-bottom:12px;}
.rpkit-ev .elev svg{width:100%;height:auto;display:block;}

/* ---------- Route files ---------- */
.rpkit-ev .gpx{background:var(--rpkit-band-bg);color:var(--rpkit-band-text);padding:clamp(28px,4vw,48px) var(--rpkit-ev-pad);}
.rpkit-ev .gpx .inner{max-width:var(--rpkit-ev-maxw);margin:0 auto;display:grid;grid-template-columns:1.1fr 0.9fr;gap:var(--rpkit-ev-gap);align-items:center;}
@media(max-width:720px){
.rpkit-ev .gpx .inner{grid-template-columns:1fr;}
}
.rpkit-ev .gpx h3{font-size:var(--rpkit-ev-t-h3);color:var(--rpkit-band-text);}
.rpkit-ev .gpx p{color:var(--rpkit-band-text);max-width:44ch;margin:12px 0 0;}
.rpkit-ev .gpx .actions{display:flex;flex-direction:column;gap:12px;}
.rpkit-ev .gpx .ext{display:flex;gap:12px;flex-wrap:wrap;}
.rpkit-ev .gpx .ext a{flex:1;min-width:140px;border:1px solid var(--rpkit-band-muted);color:var(--rpkit-band-text);font-family:var(--rpkit-font-mono);font-size:0.78rem;letter-spacing:0.04em;padding:14px 16px;min-height:var(--rpkit-ev-tap);display:flex;align-items:center;justify-content:space-between;gap:8px;transition:background .1s;}
.rpkit-ev .gpx .ext a:hover{background:color-mix(in srgb,currentColor 12%,transparent);}

/* ---------- Kit list ---------- */
.rpkit-ev .gear{padding:clamp(28px,4vw,48px) var(--rpkit-ev-pad);}
.rpkit-ev .gear .inner{max-width:var(--rpkit-ev-maxw);margin:0 auto;}
.rpkit-ev .gear .note{font-family:var(--rpkit-font-mono);font-size:0.75rem;color:var(--rpkit-accent-2-text);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:18px;}
.rpkit-ev .gearlist{list-style:none;margin:0;padding:0;border-top:var(--rpkit-ev-edge);max-width:760px;}
.rpkit-ev .gearlist li{border-bottom:var(--rpkit-ev-edge);}
.rpkit-ev .gearlist label{display:flex;align-items:flex-start;gap:14px;padding:16px 4px;min-height:var(--rpkit-ev-tap);cursor:pointer;}
.rpkit-ev .gearlist input{appearance:none;flex:none;width:24px;height:24px;border:2px solid var(--rpkit-text);margin-top:2px;cursor:pointer;position:relative;background:var(--rpkit-surface);}
.rpkit-ev .gearlist input:checked{background:var(--rpkit-accent);border-color:var(--rpkit-accent);}
.rpkit-ev .gearlist input:checked::after{content:"";position:absolute;left:7px;top:2px;width:6px;height:12px;border:solid var(--rpkit-on-accent);border-width:0 3px 3px 0;transform:rotate(45deg);}
.rpkit-ev .gearlist input:focus-visible{outline:3px solid var(--rpkit-ev-focus);outline-offset:2px;}
.rpkit-ev .gearlist .txt{line-height:1.45;color:var(--rpkit-text);}
.rpkit-ev .gearlist .txt b{font-weight:600;}
.rpkit-ev .gearlist .txt .spec{display:block;font-family:var(--rpkit-font-mono);font-size:0.75rem;color:var(--rpkit-muted);margin-top:3px;}
.rpkit-ev .gearlist li:has(input:checked) .txt{opacity:.65;text-decoration:line-through;text-decoration-color:var(--rpkit-muted);}

/* ---------- Form controls ---------- */
.rpkit-ev .filter-label{font-family:var(--rpkit-font-mono);font-size:0.75rem;text-transform:uppercase;letter-spacing:0.1em;color:var(--rpkit-muted);margin-bottom:12px;display:block;}
.rpkit-ev .filter-label .hint{text-transform:none;letter-spacing:0;color:var(--rpkit-muted);font-weight:400;}
.rpkit-ev .field{width:100%;font-family:var(--rpkit-font-body);font-size:1rem;color:var(--rpkit-text);background:var(--rpkit-surface);border:1px solid var(--rpkit-edge);border-radius:var(--rpkit-ev-ctl-radius);padding:15px 18px;min-height:var(--rpkit-ev-tap);transition:border-color .12s,box-shadow .12s;}
.rpkit-ev .field::placeholder{color:var(--rpkit-muted);}
.rpkit-ev .field:hover{border-color:var(--rpkit-muted);}
.rpkit-ev .field:focus,.rpkit-ev .field:focus-visible{outline:none;border-color:var(--rpkit-ev-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--rpkit-ev-focus) 28%,transparent);}
.rpkit-ev .field-lg{font-size:1.1rem;padding:17px 20px;min-height:56px;}
.rpkit-ev .select-wrap{position:relative;}
.rpkit-ev .select{appearance:none;-webkit-appearance:none;width:100%;font-family:var(--rpkit-font-body);font-size:1rem;color:var(--rpkit-text);background:var(--rpkit-surface);border:1px solid var(--rpkit-edge);border-radius:var(--rpkit-ev-ctl-radius);padding:15px 46px 15px 18px;min-height:var(--rpkit-ev-tap);cursor:pointer;transition:border-color .12s,box-shadow .12s;}
.rpkit-ev .select:hover{border-color:var(--rpkit-muted);}
.rpkit-ev .select:focus,.rpkit-ev .select:focus-visible{outline:none;border-color:var(--rpkit-ev-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--rpkit-ev-focus) 28%,transparent);}
.rpkit-ev .select-chev{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:16px;height:16px;pointer-events:none;color:var(--rpkit-muted);}

/* ---------- Filter toggles ---------- */
.rpkit-ev .toggle-set{display:flex;flex-wrap:wrap;gap:10px;}
.rpkit-ev .toggle{font-family:var(--rpkit-font-mono);font-size:0.8rem;letter-spacing:0.02em;color:var(--rpkit-text);background:var(--rpkit-surface);border:1px solid var(--rpkit-edge);border-radius:var(--rpkit-ev-ctl-radius);padding:10px 15px;min-height:var(--rpkit-ev-tap);display:inline-flex;align-items:center;gap:9px;cursor:pointer;transition:background .12s,border-color .12s,color .12s;}
.rpkit-ev .toggle:hover:not([aria-pressed="true"]){border-color:var(--rpkit-ev-focus);}
.rpkit-ev .toggle svg{width:16px;height:16px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;color:var(--rpkit-muted);}
.rpkit-ev .toggle[aria-pressed="true"]{background:var(--rpkit-accent);border-color:var(--rpkit-accent);color:var(--rpkit-on-accent);}
.rpkit-ev .toggle[aria-pressed="true"] svg{color:var(--rpkit-on-accent);}

/* ---------- Search panel ---------- */
.rpkit-ev .search-panel{border:var(--rpkit-ev-edge);background:var(--rpkit-surface);border-radius:var(--rpkit-ev-ctl-radius);padding:clamp(20px,3vw,30px);}
.rpkit-ev .search-panel .fg{margin-bottom:clamp(18px,2.4vw,26px);}
.rpkit-ev .search-panel .fg:last-child{margin-bottom:0;}
.rpkit-ev .fg-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--rpkit-ev-gap);}
@media(max-width:640px){
.rpkit-ev .fg-grid{grid-template-columns:1fr;}
}
.rpkit-ev .search-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 20px;margin-top:clamp(24px,3vw,32px);}
.rpkit-ev .search-actions .count{font-family:var(--rpkit-font-mono);font-size:0.75rem;color:var(--rpkit-muted);letter-spacing:0.04em;}
.rpkit-ev .btn-reset{font-family:var(--rpkit-font-mono);font-size:0.75rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--rpkit-muted);background:transparent;border:none;padding:8px 4px;min-height:var(--rpkit-ev-tap);cursor:pointer;}
.rpkit-ev .btn-reset:hover{color:var(--rpkit-accent-2-text);}
/* mobile filters toggle (visual — show/hide is structural) */
.rpkit-ev .filters-toggle{font-family:var(--rpkit-font-mono);font-size:0.78rem;text-transform:uppercase;letter-spacing:0.08em;padding:14px 16px;min-height:var(--rpkit-ev-tap);border:1px solid var(--rpkit-edge);background:var(--rpkit-surface);color:var(--rpkit-text);cursor:pointer;}
.rpkit-ev .results .shead{padding:6px 0 18px;}
.rpkit-ev .no-results{border:var(--rpkit-ev-edge);background:var(--rpkit-surface);padding:clamp(28px,4vw,44px);}
.rpkit-ev .no-results h3{font-size:1.4rem;}
.rpkit-ev .no-results p{color:var(--rpkit-text);max-width:52ch;margin:12px 0 0;}

/* ---------- Document links ---------- */
.rpkit-ev .doclinks{display:flex;flex-wrap:wrap;gap:12px;}
.rpkit-ev .doclink{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--rpkit-edge);background:var(--rpkit-surface);color:var(--rpkit-text);font-family:var(--rpkit-font-mono);font-size:0.76rem;letter-spacing:0.04em;text-transform:uppercase;padding:12px 16px;min-height:var(--rpkit-ev-tap);transition:border-color .1s,background .1s;}
.rpkit-ev .doclink:hover{border-color:var(--rpkit-ev-focus);}
.rpkit-ev .doclink .ic{color:var(--rpkit-accent-2-text);}
.rpkit-ev .band-dark .doclink{background:transparent;color:var(--rpkit-band-text);border-color:var(--rpkit-band-muted);}
.rpkit-ev .band-dark .doclink:hover{background:color-mix(in srgb,currentColor 12%,transparent);}
.rpkit-ev .band-dark .doclink .ic{color:var(--rpkit-band-accent);}

/* ---------- Bookmark ---------- */
.rpkit-ev .bookmark{display:inline-flex;align-items:center;gap:8px;font-family:var(--rpkit-font-mono);font-size:0.75rem;text-transform:uppercase;letter-spacing:0.06em;border:1px solid var(--rpkit-edge);background:var(--rpkit-surface);color:var(--rpkit-text);padding:8px 12px;min-height:38px;cursor:pointer;transition:background .1s,border-color .1s;}
.rpkit-ev .bookmark svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round;}
.rpkit-ev .bookmark:hover{border-color:var(--rpkit-ev-focus);}
.rpkit-ev .bookmark[aria-pressed="true"]{background:var(--rpkit-accent);border-color:var(--rpkit-accent);color:var(--rpkit-on-accent);}
.rpkit-ev .bookmark[aria-pressed="true"] svg{fill:currentColor;}
.rpkit-ev .card .media .bookmark{position:absolute;top:0;right:0;border:none;min-height:var(--rpkit-ev-tap);}
.rpkit-ev .on-dark .bookmark,.rpkit-ev .band-dark .bookmark{background:transparent;color:var(--rpkit-band-text);border-color:var(--rpkit-band-muted);}
.rpkit-ev .on-dark .bookmark[aria-pressed="true"],.rpkit-ev .band-dark .bookmark[aria-pressed="true"]{background:var(--rpkit-accent);border-color:var(--rpkit-accent);color:var(--rpkit-on-accent);}
.rpkit-ev .festival .bookmark{background:color-mix(in srgb,var(--rpkit-band-bg) 45%,transparent);color:var(--rpkit-band-text);border-color:var(--rpkit-band-text);min-height:var(--rpkit-ev-tap);}
.rpkit-ev .festival .bookmark[aria-pressed="true"]{background:var(--rpkit-accent);border-color:var(--rpkit-accent);color:var(--rpkit-on-accent);}

/* ---------- Media tiles ---------- */
.rpkit-ev .gallery .tile-ph{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;background:var(--rpkit-ev-surface-2);color:var(--rpkit-muted);font-family:var(--rpkit-font-mono);font-size:0.75rem;letter-spacing:0.06em;text-transform:uppercase;line-height:1.6;}
.rpkit-ev .gallery a.tile-video{position:relative;aspect-ratio:4/3;background:var(--rpkit-band-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--rpkit-band-text);}
.rpkit-ev .gallery a.tile-video .play{width:52px;height:52px;border:2px solid var(--rpkit-band-text);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .1s,border-color .1s;}
.rpkit-ev .gallery a.tile-video .play::after{content:"";display:block;margin-left:4px;border-style:solid;border-width:9px 0 9px 15px;border-color:transparent transparent transparent currentColor;}
.rpkit-ev .gallery a.tile-video:hover .play{background:var(--rpkit-accent);border-color:var(--rpkit-accent);color:var(--rpkit-on-accent);}
.rpkit-ev .gallery a.tile-video .vt{font-family:var(--rpkit-font-mono);font-size:0.75rem;letter-spacing:0.06em;text-transform:uppercase;}

/* ---------- Photo gallery ---------- */
.rpkit-ev .gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--rpkit-ev-gap);padding:0 var(--rpkit-ev-pad);max-width:var(--rpkit-ev-maxw);margin:0 auto;}
@media(max-width:860px){
.rpkit-ev .gallery{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:520px){
.rpkit-ev .gallery{grid-template-columns:1fr;}
}
.rpkit-ev .gallery figure{margin:0;border:var(--rpkit-ev-edge);background:var(--rpkit-surface);}
.rpkit-ev .gallery img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;}
.rpkit-ev .gallery figcaption{font-family:var(--rpkit-font-mono);font-size:0.75rem;color:var(--rpkit-muted);padding:10px 14px;letter-spacing:0.03em;}

/* ---------- Aftermath weekends ---------- */
.rpkit-ev .weekend{padding-bottom:clamp(36px,5vw,64px);scroll-margin-top:16px;}
.rpkit-ev .weekend.band-dark{padding-top:2px;}
.rpkit-ev .wk-meta{display:flex;flex-wrap:wrap;gap:10px 26px;padding:0 var(--rpkit-ev-pad) 20px;max-width:var(--rpkit-ev-maxw);margin:0 auto;font-family:var(--rpkit-font-mono);font-size:0.78rem;color:var(--rpkit-muted);}
.rpkit-ev .wk-meta b{color:var(--rpkit-text);font-weight:500;}
.rpkit-ev .band-dark .wk-meta{color:var(--rpkit-band-muted);}
.rpkit-ev .band-dark .wk-meta b{color:var(--rpkit-band-text);}
.rpkit-ev .wk-links{display:flex;flex-wrap:wrap;gap:12px;padding:0 var(--rpkit-ev-pad) 24px;max-width:var(--rpkit-ev-maxw);margin:0 auto;}
.rpkit-ev .wk-quote{padding:26px var(--rpkit-ev-pad) 0;max-width:var(--rpkit-ev-maxw);margin:0 auto;}
.rpkit-ev .wk-quote blockquote{margin:0;max-width:52ch;font-family:var(--rpkit-font-head);font-weight:500;font-size:clamp(1.2rem,2.6vw,1.6rem);line-height:1.3;letter-spacing:-0.01em;color:var(--rpkit-text);}
.rpkit-ev .band-dark .wk-quote blockquote{color:var(--rpkit-band-text);}
.rpkit-ev .wk-quote cite{display:block;font-style:normal;font-family:var(--rpkit-font-mono);font-size:0.75rem;color:var(--rpkit-accent-2-text);margin-top:12px;}
.rpkit-ev .band-dark .wk-quote cite{color:var(--rpkit-band-accent);}
.rpkit-ev .wk-stats{display:flex;flex-wrap:wrap;gap:clamp(20px,4vw,56px);padding:22px var(--rpkit-ev-pad) 0;max-width:var(--rpkit-ev-maxw);margin:0 auto;}
.rpkit-ev .jump{margin:26px 0 8px;max-width:440px;}
.rpkit-ev .jump-wrap{padding:0 var(--rpkit-ev-pad) 10px;}
.rpkit-ev .gallery + .gallery{margin-top:var(--rpkit-ev-gap);}
.rpkit-ev .weekend .shead .bookmark{margin-left:4px;}

/* ---------- Page pieces a theme can use inside the wrapper: hero, page head, questions, long copy ---------- */
.rpkit-ev .hero{position:relative;min-height:min(92vh,760px);display:flex;align-items:flex-end;overflow:hidden;background:var(--rpkit-band-bg);}
.rpkit-ev .hero-inner{position:relative;z-index:2;padding:clamp(56px,9vw,104px) var(--rpkit-ev-pad) clamp(32px,5vw,64px);width:100%;max-width:var(--rpkit-ev-maxw);margin:0 auto;}
.rpkit-ev .eyebrow{font-family:var(--rpkit-font-mono);font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--rpkit-band-accent);margin-bottom:22px;}
.rpkit-ev .hero h1{font-size:var(--rpkit-ev-t-hero);color:var(--rpkit-band-text);max-width:16ch;}
.rpkit-ev .hero h1 mark{background:var(--rpkit-accent);color:var(--rpkit-on-accent);padding:0.08em 0.08em;line-height:1.28;box-decoration-break:clone;-webkit-box-decoration-break:clone;}
.rpkit-ev .hero .sub{max-width:46ch;color:var(--rpkit-band-text);margin:24px 0 30px;font-size:var(--rpkit-ev-t-lead);}
.rpkit-ev .page-head{max-width:var(--rpkit-ev-maxw);margin:0 auto;padding:clamp(28px,5vw,56px) var(--rpkit-ev-pad) clamp(22px,3vw,32px);}
.rpkit-ev .page-head .eyebrow{color:var(--rpkit-accent-2-text);margin-bottom:14px;}
.rpkit-ev .page-head h1{font-size:clamp(2rem,6vw,3.4rem);color:var(--rpkit-text);max-width:20ch;}
.rpkit-ev .page-head .lede{max-width:56ch;margin:16px 0 0;color:var(--rpkit-text);font-size:var(--rpkit-ev-t-lead);}
.rpkit-ev .qa{border-top:var(--rpkit-ev-edge);max-width:820px;}
.rpkit-ev .qa details{border-bottom:var(--rpkit-ev-edge);}
.rpkit-ev .qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 4px;min-height:var(--rpkit-ev-tap);font-family:var(--rpkit-font-head);font-weight:600;font-size:1.1rem;color:var(--rpkit-text);}
.rpkit-ev .qa summary::-webkit-details-marker{display:none;}
.rpkit-ev .qa summary::after{content:"+";font-family:var(--rpkit-font-mono);color:var(--rpkit-accent-2-text);flex:none;font-size:1.1rem;}
.rpkit-ev .qa details[open] summary::after{content:"−";}
.rpkit-ev .qa summary:hover{color:var(--rpkit-accent-2-text);}
.rpkit-ev .qa .a{padding:0 4px 20px;max-width:62ch;color:var(--rpkit-text);}
.rpkit-ev .qa .a p{margin:0 0 12px;}
.rpkit-ev .qa .a p:last-child{margin-bottom:0;}
.rpkit-ev .prose{max-width:62ch;color:var(--rpkit-text);}
.rpkit-ev .prose p{margin:0 0 18px;}
.rpkit-ev .prose h3{font-size:1.4rem;color:var(--rpkit-text);margin:34px 0 12px;}
.rpkit-ev .prose ul{margin:0 0 18px;padding-left:20px;}

/* ---------- Layout: grids, the finder, scrolling ---------- */
/* --- event card grid (event-grid block, finder results) ----- */
.rpkit-ev .grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--rpkit-ev-gap);padding:0 var(--rpkit-ev-pad);}
@media(max-width:720px){
.rpkit-ev .grid-2{grid-template-columns:1fr;}
}
.rpkit-ev .card.wide{grid-column:1 / -1;}
/* --- race finder layout -------------------------------------
   Cards left, sticky filters right on desktop; filters collapse
   behind the .filters-toggle button on mobile. */
.rpkit-ev .finder{max-width:var(--rpkit-ev-maxw);margin:0 auto;padding:0 var(--rpkit-ev-pad);display:grid;gap:var(--rpkit-ev-gap);align-items:start;}
.rpkit-ev .results{min-width:0;}
.rpkit-ev .results .grid-2{padding:0;}
.rpkit-ev .filters-toggle{display:flex;width:100%;justify-content:space-between;align-items:center;gap:10px;}
.rpkit-ev .filters-toggle .chev{width:16px;height:16px;flex:none;transition:transform .15s;}
.rpkit-ev .finder-side.open .filters-toggle .chev{transform:rotate(180deg);}
@media(max-width:999px){
.rpkit-ev .finder-side .search-panel{display:none;margin-top:12px;}
.rpkit-ev .finder-side.open .search-panel{display:block;}
}
@media(min-width:1000px){
.rpkit-ev .finder{grid-template-columns:minmax(0,1fr) 380px;}
.rpkit-ev .finder-side{order:2;position:sticky;top:16px;}
.rpkit-ev .results{order:1;}
.rpkit-ev .filters-toggle{display:none;}
/* sidebar is narrow — stack the two selects */
.rpkit-ev .finder-side .fg-grid{grid-template-columns:1fr;}
}
/* --- horizontal scroll (aftermath modules) ------------------ */
.rpkit-ev .scroll{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;}
.rpkit-ev .mod{flex:0 0 min(84vw,400px);scroll-snap-align:start;}
/* --- route matrix columns (race-details block) --------------- */
.rpkit-ev .matrix{display:grid;grid-template-columns:repeat(4,1fr);}
@media(max-width:760px){
.rpkit-ev .matrix{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:420px){
.rpkit-ev .matrix{grid-template-columns:1fr;}
}

/* ---------- In the editor ---------- */
/* The editor puts a block's background and text colour on its own outer element, so the wrapper inside steps aside. */
[data-type^="rpkit/"].has-background .rpkit.rpkit-ev.alignfull{background:transparent;}
[data-type^="rpkit/"].has-text-color .rpkit.rpkit-ev{color:inherit;}

/* ---------- Volunteers ---------- */
.rpkit-ev .volunteers{padding:clamp(36px,5vw,64px) var(--rpkit-ev-pad);border-top:var(--rpkit-ev-edge);}
.rpkit-ev .volunteers .inner{max-width:var(--rpkit-ev-maxw);margin:0 auto;}
.rpkit-ev .vol-head{max-width:60ch;margin-bottom:26px;}
.rpkit-ev .vol-head .note{font-family:var(--rpkit-font-mono);font-size:0.75rem;color:var(--rpkit-accent-2-text);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:14px;}
.rpkit-ev .vol-head h2{font-size:var(--rpkit-ev-t-h2);color:var(--rpkit-text);}
.rpkit-ev .vol-head p{margin:14px 0 0;color:var(--rpkit-muted);}
.rpkit-ev .vol-message{margin:0 0 22px;padding:14px 18px;border-left:4px solid var(--rpkit-accent);background:var(--rpkit-ev-surface-2);color:var(--rpkit-text);max-width:760px;}
.rpkit-ev .vol-roles{border:0;margin:0 0 26px;padding:0;max-width:760px;border-top:var(--rpkit-ev-edge);}
.rpkit-ev .vol-roles legend{font-family:var(--rpkit-font-mono);font-size:0.75rem;color:var(--rpkit-muted);text-transform:uppercase;letter-spacing:0.08em;padding:0 0 12px;}
.rpkit-ev .vol-role{display:flex;align-items:flex-start;gap:14px;padding:16px 4px;min-height:var(--rpkit-ev-tap);border-bottom:var(--rpkit-ev-edge);cursor:pointer;}
.rpkit-ev .vol-role input{appearance:none;flex:none;width:24px;height:24px;border:2px solid var(--rpkit-text);border-radius:50%;margin:2px 0 0;background:var(--rpkit-surface);cursor:pointer;}
.rpkit-ev .vol-role input:checked{border-color:var(--rpkit-accent);background:radial-gradient(var(--rpkit-on-accent) 34%,var(--rpkit-accent) 38%);}
.rpkit-ev .vol-role input:focus-visible{outline:3px solid var(--rpkit-ev-focus);outline-offset:2px;}
.rpkit-ev .vol-role .txt{flex:1;display:flex;flex-direction:column;gap:4px;}
.rpkit-ev .vol-role .txt b{font-family:var(--rpkit-font-head);font-weight:600;font-size:1.05rem;color:var(--rpkit-text);}
.rpkit-ev .vol-role .spec,.rpkit-ev .vol-role .left{font-family:var(--rpkit-font-mono);font-size:0.75rem;color:var(--rpkit-muted);}
.rpkit-ev .vol-role .left{flex:none;padding-top:4px;color:var(--rpkit-accent-2-text);}
.rpkit-ev .vol-role.is-full{cursor:default;}
.rpkit-ev .vol-role.is-full input{border-color:var(--rpkit-border);cursor:default;}
.rpkit-ev .vol-role.is-full .txt b,.rpkit-ev .vol-role.is-full .left{color:var(--rpkit-muted);}
.rpkit-ev .vol-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px var(--rpkit-ev-gap);max-width:760px;}
.rpkit-ev .vol-fields p{margin:0;}
.rpkit-ev .vol-fields label{display:block;font-family:var(--rpkit-font-mono);font-size:0.75rem;color:var(--rpkit-muted);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:6px;}
@media(max-width:640px){
.rpkit-ev .vol-fields{grid-template-columns:1fr;}
.rpkit-ev .vol-role{flex-wrap:wrap;}
.rpkit-ev .vol-role .left{flex-basis:100%;padding-left:38px;}
}
.rpkit-ev .vol-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.rpkit-ev .vol-ok{margin:18px 0 22px;max-width:760px;color:var(--rpkit-muted);font-size:0.92rem;}
.rpkit-ev .vol-ok label{display:flex;gap:10px;align-items:flex-start;cursor:pointer;}
.rpkit-ev .vol-ok input{width:20px;height:20px;margin:2px 0 0;flex:none;accent-color:var(--rpkit-accent);}

/* ---------- Runner info pack: the link on an event's page ---------- */
.rpkit-ev .pack-link{padding:clamp(22px,3vw,32px) var(--rpkit-ev-pad);border-top:var(--rpkit-ev-edge);border-bottom:var(--rpkit-ev-edge);background:var(--rpkit-ev-surface-2);}
.rpkit-ev .pack-link .inner{max-width:var(--rpkit-ev-maxw);margin:0 auto;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;}
.rpkit-ev .pack-link h3{font-size:1.35rem;color:var(--rpkit-text);}
.rpkit-ev .pack-link p{margin:8px 0 0;max-width:56ch;color:var(--rpkit-muted);}

