/* Ride discovery: quiet surfaces, strong type and practical information first.
   System fonts and native controls avoid additional font/interaction downloads. */
:root { --off-white:#edf0eb; --surface:#fff; --surface-muted:#f1f4ef; --border-strong:#758579; --heading:#173a25; --charcoal:#202923; --muted-text:#505b53; --border-soft:#b4c0b6; --radius:4px; }
html[data-theme="dark"] { --off-white:#121914; --surface:#222d25; --surface-muted:#29382e; --border-strong:#7b8b7f; --heading:#f4f5ed; --charcoal:#e5e9e3; --muted-text:#b8c2ba; --border-soft:#48574b; }
body { font-family:system-ui,-apple-system,"Segoe UI",sans-serif; line-height:1.6; }
h1,h2,h3,h4 { font-weight:750; letter-spacing:-.035em; }
h1 { line-height:1.12; }
header.site-header { box-shadow:none; border-bottom-width:2px; }
.site-header__row { min-height:72px; gap:16px; padding-block:10px; }
.brand img { height:44px; width:auto; }
.header-theme-toggle { width:44px; height:44px; border-radius:4px; border-color:#ffffff70; background:transparent; }
.btn,.btn:hover { box-shadow:none; transform:none; min-height:44px; }
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid var(--sky-blue); outline-offset:3px; }
.site-header :focus-visible { outline-color:#ffb64f; }
.skip-link { position:fixed; top:8px; left:8px; z-index:2000; padding:10px 18px; color:#fff; background:#173a25; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.mobile-menu-trigger { display:none; }
.mobile-menu { width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; background:var(--deep-forest); color:#fff; }
.mobile-menu::backdrop { background:var(--deep-forest); }
.mobile-menu__header { min-height:68px; border-bottom:2px solid var(--brand-orange); }
.mobile-menu-close,.mobile-menu-trigger { align-items:center; justify-content:center; width:44px; height:44px; flex-shrink:0; border:1px solid #ffffff70; border-radius:4px; color:#fff; background:transparent; }
.mobile-menu-close { display:flex; order:2; }
.mobile-menu nav { display:grid; padding:20px 18px; }
@media(prefers-reduced-motion:no-preference) { .mobile-menu[open] nav { animation:menu-reveal 160ms ease-out; } }
@keyframes menu-reveal { from { transform:translateY(-12px); opacity:0; } to { transform:translateY(0); opacity:1; } }
.mobile-menu nav a { padding:16px 4px; border-bottom:1px solid #ffffff40; font-size:1.25rem; font-weight:600; color:#fff; text-decoration:none; }
.mobile-menu :focus-visible { outline:3px solid #ffb64f; outline-offset:3px; }
html.menu-open { overflow:hidden; }
html[data-theme="dark"] .view-switch a[aria-current] { background:#e5ad5b; border-color:#e5ad5b; color:#152019; }
.finder-intro { padding:16px 0 22px; }
.finder-intro h1 { margin:0 0 10px; font-size:clamp(2rem,4.4vw,3.7rem); }
.finder-intro p { margin:0; color:var(--muted-text); font-size:1.05rem; }
.finder-intro--small h1 { font-size:clamp(1.85rem,3.4vw,2.8rem); }
.ride-filters { display:grid; grid-template-columns:minmax(220px,1.6fr) minmax(140px,1fr) minmax(140px,1fr) auto; align-items:end; gap:12px 20px; padding:20px; border:1px solid var(--border-soft); background:var(--surface); border-radius:4px; }
.ride-filters label { display:grid; gap:6px; font-size:.875rem; font-weight:650; color:var(--heading); }
.ride-search__input { display:flex; gap:8px; margin-top:6px; }
.ride-search__input input { width:0; flex:1; }
.ride-search__input button { flex-shrink:0; }
.ride-filters .form-control,.ride-filters .form-select { min-height:46px; font-size:1rem; border-color:var(--border-strong); border-radius:3px; }
.ride-filters__foot { grid-column:1/-1; display:flex; justify-content:space-between; flex-wrap:wrap; gap:4px 16px; color:var(--muted-text); font-size:.8125rem; }
.ride-filters__foot a { font-weight:600; }
.discovery-toolbar { display:flex; justify-content:space-between; gap:16px; align-items:center; margin:16px 0 24px; border-bottom:1px solid var(--border-soft); }
.ride-types { display:flex; flex-wrap:wrap; gap:0 20px; }
.ride-types a { padding:12px 0; color:var(--muted-text); font-size:.9375rem; text-decoration:none; border-bottom:3px solid transparent; }
.ride-types a[aria-current] { color:var(--heading); font-weight:700; border-color:var(--brand-orange); }
.view-switch { display:flex; gap:0; padding-bottom:8px; }
.view-switch a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:6px 15px; border:1px solid var(--border-strong); text-decoration:none; color:var(--heading); }
.view-switch a:first-child { border-radius:3px 0 0 3px; }
.view-switch a:last-child { border-radius:0 3px 3px 0; border-left:0; }
.view-switch a[aria-current] { background:var(--deep-forest); color:#fff; border-color:var(--deep-forest); }
.results-heading { display:flex; align-items:baseline; justify-content:space-between; gap:8px 16px; margin-bottom:12px; }
.results-heading h2 { margin:0; font-size:1.125rem; letter-spacing:-.015em; overflow-wrap:anywhere; }
.results-heading>span { font-size:.8125rem; color:var(--muted-text); flex-shrink:0; }
.ride-list { list-style:none; margin:0; padding:0; border:1px solid var(--border-soft); background:var(--surface); border-radius:4px; overflow:hidden; }
.ride-list>li:last-child { border-bottom:0; }
.ride-list>li { margin:0; border-bottom:1px solid var(--border-soft); }
.ride-row { display:grid; grid-template-columns:190px minmax(0,1fr) 88px 18px; align-items:center; gap:18px; padding:22px 12px; text-decoration:none; color:var(--charcoal); }
.ride-row:hover { background:var(--surface-hover); color:var(--charcoal); }
.ride-row__date { font-size:.9375rem; font-weight:650; line-height:1.5; }
.ride-row__body { display:grid; gap:3px; min-width:0; }
.ride-row__name { font-size:1.0625rem; line-height:1.4; font-weight:700; color:var(--heading); }
.ride-row__place { font-size:.9375rem; color:var(--muted-text); overflow-wrap:anywhere; }
.ride-row__type { font-size:.8125rem; color:var(--muted-text); text-align:right; }
.ride-row__arrow { color:var(--heading); }
.more-rides { display:flex; justify-content:space-between; padding:20px 12px; font-weight:650; }
.ride-note { border-left:3px solid var(--brand-orange); padding:4px 0 4px 18px; margin:32px 0 8px; color:var(--muted-text); max-width:72ch; font-size:.9375rem; }
.ride-note strong { display:block; color:var(--heading); }
.ride-empty { padding:32px 12px; }
.ride-empty h2 { font-size:1.25rem; }
.ride-empty p { color:var(--muted-text); }
.submit-note { padding:32px 0 0; color:var(--muted-text); }
.ride-detail__header { padding:0 0 28px; border-bottom:1px solid var(--border-strong); }
.back-to-rides { display:inline-block; margin-bottom:24px; padding-block:6px; font-size:.9375rem; }
.ride-detail__type { margin:0 0 8px; font-size:.875rem; color:var(--muted-text); }
.ride-detail__header h1 { max-width:24ch; font-size:clamp(2rem,4vw,3.4rem); margin:0 0 20px; }
.ride-detail__date { font-size:1.2rem; font-weight:700; margin:0 0 4px; color:var(--heading); }
.ride-detail__place { margin:0 0 4px; }
.ride-detail__times { margin:8px 0 0; color:var(--muted-text); }
.ride-primary-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.ride-detail__columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.48fr); gap:24px; align-items:start; margin-top:24px; }
.ride-detail__section { padding:28px 0; }
.ride-detail__section h2 { font-size:1.35rem; margin:0 0 18px; }
.ride-detail__main { padding:0 24px; background:var(--surface); border:1px solid var(--border-soft); border-radius:4px; }
.ride-detail__practical { padding:24px; background:var(--surface); border:1px solid var(--border-soft); border-radius:4px; }
.ride-detail__section h2,.ride-detail__section h3 { color:var(--charcoal); letter-spacing:0; }
.ride-references { margin-top:24px; border-top:1px solid var(--border-soft); color:var(--muted-text); font-size:.9375rem; }
.ride-references summary { padding:16px 0; cursor:pointer; }
.ride-detail__practical .ride-detail__section { padding:0 0 24px; margin-bottom:24px; border-bottom:1px solid var(--border-soft); }
.ride-detail__practical h2 { font-size:1.125rem; }
.ride-detail__practical p { font-size:.9375rem; }
.event-details { font-size:1.0625rem; line-height:1.75; max-width:68ch; overflow-wrap:anywhere; }
.event-details h3 { font-size:1.125rem; margin:26px 0 8px; letter-spacing:-.01em; }
.event-details h3:first-child { margin-top:0; }
.event-details p { margin:0 0 16px; }
.event-details ul { padding-left:22px; }
.event-details li { margin-bottom:8px; }
.ride-day+.ride-day { margin-top:20px; padding-top:18px; border-top:1px solid var(--border-soft); }
.ride-day h3 { font-size:1rem; letter-spacing:0; margin-bottom:10px; }
.ride-day dl { margin:0; font-size:.9375rem; }
.ride-day dl>div { display:flex; justify-content:space-between; gap:12px; }
.ride-day dt { font-weight:400; color:var(--muted-text); }
.ride-day dd { margin:0 0 6px; text-align:right; }
.ride-contact { list-style:none; padding:0; margin:0; overflow-wrap:anywhere; }
.ride-contact li { margin-top:8px; }
.ride-contact a { display:inline-block; padding:4px 0; }
.ride-secondary-actions { display:flex; flex-wrap:wrap; gap:8px; padding-bottom:24px; }
.ride-secondary-actions .btn { font-size:.875rem; }
.past-rides { border-top:1px solid var(--border-soft); margin:16px 0; }
.past-rides summary { padding:16px 0; font-weight:650; cursor:pointer; }
.discovery-map { width:100%; height:560px; height:min(65svh,650px); min-height:350px; position:relative; background:var(--surface-muted); border:1px solid var(--border-strong); }
.ride-location-map { width:100%; height:320px; margin-top:16px; background:var(--surface-muted); }
.ride-location-map[hidden] { display:none; }
.map-help { margin-top:16px; color:var(--muted-text); font-size:.875rem; }
.map-event-marker--compact .map-event-marker__label { display:none; }
.map-popup { color:var(--charcoal); line-height:1.5; }
.map-popup p { margin:10px 0; }
.map-ride-link { display:inline-block; min-height:44px; padding:10px 0; color:var(--sky-blue); font-weight:650; }
@media(max-width:900px) {
    .ride-filters { grid-template-columns:1fr 1fr; }
    .ride-search { grid-column:1/-1; }
    .ride-detail__columns { gap:28px; grid-template-columns:minmax(0,1fr) minmax(240px,.6fr); }
}
@media(max-width:768px) {
    .container { padding-inline:18px; }
    header.site-header,footer.site-footer { padding-inline:0; }
    .site-header__row { gap:12px; min-height:66px; padding-inline:18px !important; }
    .brand img { height:38px; max-width:185px; object-fit:contain; }
    .brand { order:0; }
    .header-theme-toggle { order:1; width:44px; height:44px; }
    .mobile-menu-trigger { display:flex; order:2; }
    .primary-nav { display:none; }
    main { padding-top:20px; }
    .finder-intro { padding:0 0 20px; }
    .finder-intro h1 { font-size:2rem; }
    .finder-intro p { font-size:1rem; max-width:32ch; }
    .ride-filters { padding:14px; gap:12px 10px; }
    .ride-search__input { gap:6px; }
    .ride-search__input button { padding-inline:12px; font-size:.875rem; }
    .ride-filters__foot { font-size:.75rem; }
    .discovery-toolbar { flex-wrap:wrap; gap:0 12px; margin:12px 0 20px; }
    .ride-types { gap:16px; }
    .ride-types a { font-size:.875rem; }
    .view-switch { margin-top:8px; width:100%; }
    .view-switch a { flex:1; padding:6px 12px; font-size:.875rem; }
    .results-heading { flex-wrap:wrap; }
    .ride-row { grid-template-columns:minmax(0,1fr) auto; gap:6px 12px; padding:18px 14px; }
    .ride-row__date { grid-column:1; grid-row:1; color:var(--heading); font-size:.875rem; }
    .ride-row__body { grid-row:2; grid-column:1/-1; padding-right:18px; }
    .ride-row__name { font-size:1.0625rem; }
    .ride-row__type { grid-row:1; grid-column:2; }
    .ride-row__arrow { display:none; }
    .ride-row__place { font-size:.9375rem; }
    .ride-detail__header h1 { font-size:2rem; margin-bottom:16px; }
    .back-to-rides { margin-bottom:12px; }
    .ride-detail__date { font-size:1.0625rem; }
    .ride-detail__columns { grid-template-columns:1fr; gap:20px; }
    .ride-detail__main { padding:0 18px; }
    .ride-detail__practical { padding:18px; margin:0; }
    .ride-detail__section { padding:24px 0; }
    .ride-detail__practical .ride-detail__section { padding:24px 0; margin:0; border-top:1px solid var(--border-soft); border-bottom:0; }
    .event-details { font-size:1rem; line-height:1.75; }
    .ride-primary-actions .btn { padding-inline:12px; font-size:.875rem; }
}
@media(max-width:360px) {
    .brand img { max-width:150px; }
    .site-header__row { gap:8px; }
    .ride-types { gap:12px; }
}

/* Keep the actions close to the title without crowding a narrow phone screen. */
.ride-detail { position:relative; }
.ride-detail__header { padding-right:290px; }
.ride-detail > .ride-secondary-actions { position:absolute; right:0; top:0; padding:0; max-width:280px; justify-content:flex-end; }
.ride-references { padding:24px 0; }
.ride-references h2 { font-size:1.125rem; color:var(--charcoal); letter-spacing:0; }
.ride-filters__submit { min-height:46px; }
@media(max-width:900px) { .ride-filters__submit { grid-column:1/-1; justify-self:end; min-width:140px; } }
@media(max-width:768px) {
    .ride-detail__header { padding-right:0; }
    .ride-detail > .ride-secondary-actions { position:static; max-width:none; justify-content:flex-start; padding:20px 0 0; margin-top:8px; border-top:1px solid var(--border-soft); }
    .ride-filters__submit { width:100%; }
    .site-header__row { flex-wrap:nowrap; }
}

/* Stories use the same restrained surfaces and reading rhythm as ride details. */
.blog-index-header { max-width:760px; margin:0 0 28px; }
.blog-index-header h1 { font-size:clamp(2rem,4vw,3.4rem); }
.blog-grid { display:grid; gap:0; margin-bottom:32px; border:1px solid var(--border-soft); border-radius:4px; background:var(--surface); }
.blog-card { border-bottom:1px solid var(--border-soft); }
.blog-card:last-child { border-bottom:0; }
.blog-card__body { padding:24px; max-width:85ch; }
.blog-card__title { font-size:1.4rem; letter-spacing:0; }
.blog-card__title a { color:var(--heading); text-decoration:none; }
.blog-card__title a:hover { text-decoration:underline; }
.blog-card__meta { color:var(--muted-text); font-size:.875rem; margin-bottom:8px; }
.blog-card__abstract { margin:12px 0; }
.blog-tags { display:flex; gap:8px; flex-wrap:wrap; margin:12px 0; }
.blog-tags .badge { background:var(--surface-muted)!important; color:var(--charcoal)!important; font-weight:500; }
.blog-post { max-width:860px; margin:0 auto 32px; overflow-wrap:anywhere; }
.blog-post__header { padding:0 0 24px; }
.blog-post__header h1 { font-size:clamp(2rem,4vw,3.4rem); }
.blog-post__abstract { color:var(--muted-text); font-size:1.125rem; line-height:1.65; }
.blog-body,.rating-panel { padding:clamp(18px,4vw,32px); background:var(--surface); border:1px solid var(--border-soft); border-radius:4px; margin-top:24px; }
.blog-body { font-size:1.0625rem; line-height:1.8; }
.blog-body h2,.blog-body h3 { letter-spacing:0; margin-top:28px; }
.blog-body img { display:block; max-width:100%; height:auto; margin:24px auto; }
.blog-body iframe { display:block; width:100%; aspect-ratio:16/9; height:auto; border:0; margin:24px 0; }
.blog-body blockquote { padding-left:18px; border-left:3px solid var(--brand-orange); color:var(--muted-text); }
.ratings { display:grid; gap:16px; }
.rating-item+.rating-item { border-top:1px solid var(--border-soft); padding-top:16px; }
.stars { color:#855700; white-space:nowrap; }
html[data-theme="dark"] .stars { color:#ffc45d; }
.author-card { display:flex; gap:16px; padding:24px 0; margin-top:24px; border-top:1px solid var(--border-soft); }
.author-avatar { width:44px; height:44px; display:grid; place-items:center; background:var(--deep-forest); color:#fff; border-radius:4px; flex-shrink:0; }
.draft-banner { background:#fff3cd; color:#664d03; padding:12px; margin-bottom:16px; }
@media(max-width:600px) { .blog-card__body { padding:18px; } .blog-body { font-size:1rem; } }


@media(max-width:768px) { .mobile-menu__header { min-height:68px; } }
/* Override the older generic card treatment on story pages. */
main .blog-card,main .blog-post__header,main .author-card { background:transparent; border:0; box-shadow:none; }
main .blog-card:not(:last-child) { border-bottom:1px solid var(--border-soft); }
main .author-card { border-top:1px solid var(--border-soft); }
main .blog-body,main .rating-panel { background:var(--surface); border-color:var(--border-soft); box-shadow:none; }
@media(max-width:360px) { .ride-filters { grid-template-columns:1fr; } }

.btn-hype { --bs-btn-color:#fff; --bs-btn-bg:#914319; --bs-btn-border-color:#914319; --bs-btn-hover-color:#fff; --bs-btn-hover-bg:#743512; --bs-btn-hover-border-color:#743512; --bs-btn-disabled-color:#fff; --bs-btn-disabled-bg:#914319; --bs-btn-disabled-border-color:#914319; --bs-btn-disabled-opacity:1; }
.hype-count { display:inline-block; min-width:1.6em; padding:0 5px; margin-left:4px; border-radius:3px; background:#fff; color:#713115; font-weight:750; }
.hype-status { flex-basis:100%; font-size:.875rem; color:var(--muted-text); }
.hype-status:empty { display:none; }
html[data-theme="dark"] .btn-hype { --bs-btn-color:#25170e; --bs-btn-bg:#e5ad5b; --bs-btn-border-color:#e5ad5b; --bs-btn-hover-color:#25170e; --bs-btn-hover-bg:#f3c482; --bs-btn-hover-border-color:#f3c482; --bs-btn-disabled-color:#25170e; --bs-btn-disabled-bg:#e5ad5b; --bs-btn-disabled-border-color:#e5ad5b; }
