:root{--color-heather:#6b4c7a;--color-heather-dark:#4f3861;--color-gorse:#e8ad00;--color-granite:#2e2e33;--color-ink:#22222a;--color-paper:#faf9f7;--color-surface:#fff;--color-surface-alt:#ece7ee;--color-border:#ddd6e0;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--radius:10px}*{box-sizing:border-box}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-sans);margin:0;line-height:1.5}a{color:var(--color-heather-dark)}.container{max-width:1080px;margin:0 auto;padding:0 20px}.site-nav{background:var(--color-granite)}.site-nav .container{flex-wrap:wrap;align-items:center;gap:24px;padding-top:14px;padding-bottom:14px;display:flex}.site-nav a{color:#fff;font-size:.95rem;text-decoration:none}.site-nav a:hover{color:var(--color-gorse)}.site-nav .brand{align-items:center;gap:10px;margin-right:auto;display:flex}.site-nav .brand-mark{flex-shrink:0;width:34px;height:34px}.site-nav .brand-text{flex-direction:column;font-size:1.1rem;font-weight:700;line-height:1.15;display:flex}.site-nav .brand-text small{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-gorse);font-size:.65rem;font-weight:500}.site-footer{border-top:1px solid var(--color-border);background:var(--color-surface);margin-top:64px;padding:32px 0 48px}.sponsor-strip{align-items:center;gap:14px;display:flex}.sponsor-strip img{width:auto;height:48px}.sponsor-strip .sponsor-label{text-transform:uppercase;letter-spacing:.06em;color:#666;font-size:.75rem}.chip{background:var(--color-surface-alt);color:var(--color-heather-dark);border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:600;display:inline-block}.chip.status-open{color:#276b35;background:#e3f3e6}.chip.status-part-closed{color:#946200;background:#fdf0d8}.chip.status-closed{color:#a12b2b;background:#fbe1e1}.filter-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-wrap:wrap;gap:16px;margin-bottom:24px;padding:16px;display:flex}.filter-panel label{color:#555;flex-direction:column;gap:4px;font-size:.85rem;font-weight:600;display:flex}.filter-panel select{font:inherit;border:1px solid var(--color-border);border-radius:6px;min-width:150px;padding:6px 8px}.route-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.route-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:inherit;padding:16px;text-decoration:none;transition:box-shadow .15s,transform .15s;display:block}.route-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px #00000014}.route-card h3{color:var(--color-ink);margin:0 0 8px;font-size:1.05rem}.route-card .chips{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.route-card .stats{font-family:var(--font-mono);color:var(--color-granite);font-size:.9rem}.route-card .summary{color:#555;margin-top:8px;font-size:.88rem}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin:20px 0;display:grid}.stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:10px 12px}.stat .label{text-transform:uppercase;letter-spacing:.04em;color:#777;font-size:.72rem}.stat .value{font-family:var(--font-mono);color:var(--color-ink);font-size:1.15rem}.highlights{padding-left:20px}.highlights li{margin-bottom:6px}.nearby-list{gap:10px;padding:0;list-style:none;display:grid}.nearby-list li{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:10px 14px}.gpx-missing{color:#946200;background:#fdf0d8;border-radius:8px;padding:10px 14px;font-size:.9rem}.hero{height:56vh;min-height:340px;max-height:560px;margin:0 calc(50% - 50vw);position:relative;overflow:hidden}.hero img{object-fit:cover;width:100%;height:100%;display:block}.hero-overlay{background:linear-gradient(#140f1900,#140f1926 45%,#140f19bf);flex-direction:column;justify-content:flex-end;padding:32px 0;display:flex;position:absolute;inset:0}.hero h1{color:#fff;margin:0 0 8px;font-size:clamp(1.8rem,4vw,2.8rem)}.hero p{color:#f0ecf3;max-width:520px;margin:0 0 16px;font-size:1.05rem}.photo-credit{color:#999;font-size:.7rem}.photo-credit a{color:#999}.btn{background:var(--color-gorse);color:var(--color-ink);border-radius:999px;padding:10px 20px;font-weight:700;text-decoration:none;display:inline-block}.btn:hover{background:#fcc12e}.btn-outline{color:#fff;border:1px solid #fff;border-radius:999px;padding:9px 19px;font-weight:600;text-decoration:none;display:inline-block}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;display:grid}.photo-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.photo-card .photo-wrap{aspect-ratio:4/3;background:var(--color-surface-alt);overflow:hidden}.photo-card img{object-fit:cover;width:100%;height:100%;display:block}.photo-card .body{padding:12px 14px}.photo-card h3{margin:0 0 6px;font-size:1rem}.listing-logo{object-fit:contain;vertical-align:middle;border:1px solid var(--color-border);background:#fff;border-radius:6px;width:36px;height:36px;margin-right:8px;padding:2px}.photo-card .logo-wrap{aspect-ratio:4/3;background:var(--color-surface);justify-content:center;align-items:center;padding:24px;display:flex}.photo-card .logo-wrap img{object-fit:contain;max-width:70%;max-height:70%}.photo-card>a{color:inherit;text-decoration:none;display:block}.photo-card .chips{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.weather-widget{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px 20px}.weather-loading{color:#777;margin:0}.weather-now{align-items:center;gap:16px;margin-bottom:14px;display:flex}.weather-temp{font-family:var(--font-mono);color:var(--color-heather-dark);font-size:2.4rem;font-weight:700}.weather-desc{font-weight:600}.weather-wind{font-family:var(--font-mono);color:#666;font-size:.9rem}.weather-forecast{border-top:1px solid var(--color-border);grid-template-columns:repeat(4,1fr);gap:10px;padding-top:12px;display:grid}.weather-day{text-align:center;font-size:.85rem}.weather-day-label{margin-bottom:2px;font-weight:700}.weather-day-desc{color:#666;min-height:2.2em;font-size:.78rem}.weather-day-temps{font-family:var(--font-mono)}.weather-day-rain{font-family:var(--font-mono);color:var(--color-heather-dark);font-size:.78rem}
