:root{
  --bg:#F7F8F8; --surface:#FFFFFF; --ink:#1B2124; --accent:#00C6C9; --support:#FF0360;
  --ink-12: rgba(26,29,27,.12); --ink-06: rgba(26,29,27,.06);
  --font: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --sm:8px; --md:16px; --lg:32px; --xl:64px;
  --r-sm:6px; --r-md:12px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.5;font-size:16px}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--font);font-weight:800;line-height:1.1;margin:0 0 .5em}
h1{font-size:clamp(2.2rem,5vw,3.6rem)}
h2{font-size:clamp(1.6rem,3vw,2.4rem)}
h3{font-size:1.3rem}
p{margin:0 0 1em;max-width:70ch}
.container{max-width:1180px;margin:0 auto;padding:0 20px}
.site-header{background:var(--surface);border-bottom:1px solid var(--ink-12);position:sticky;top:0;z-index:50}
.site-header .container{display:flex;align-items:center;justify-content:space-between;height:72px}
.site-logo{font-weight:800;font-size:1.3rem;letter-spacing:-.02em}
.site-logo span{color:var(--accent)}
.main-nav ul{list-style:none;display:flex;gap:24px;margin:0;padding:0;flex-wrap:wrap}
.main-nav a{font-weight:600;font-size:.92rem;padding:8px 0;border-bottom:2px solid transparent}
.main-nav a:hover{border-color:var(--accent)}
.btn{display:inline-block;background:var(--accent);color:var(--surface);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;padding:12px 22px;border-radius:var(--r-sm);border:none;cursor:pointer}
.btn:hover{opacity:.9}
.btn-outline{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.badge{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:4px 10px;border-radius:var(--r-sm);background:var(--support);color:#fff}
.badge-accent{background:var(--accent)}
.badge-outline{background:transparent;border:1px solid var(--ink-12);color:var(--ink)}
.hero{padding:var(--xl) 0 var(--lg);background:linear-gradient(135deg,#0A2E30 0%,#062022 100%);color:#fff;position:relative;overflow:hidden}
.hero .container{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.hero h1{color:#fff}
.hero p{color:rgba(255,255,255,.82);font-size:1.1rem}
.hero-visual{aspect-ratio:4/3;border-radius:var(--r-md);background:linear-gradient(160deg,var(--accent) 0%,#FF0360 100%);position:relative}
.hero-visual::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.08) 0 2px,transparent 2px 22px);border-radius:var(--r-md)}
@media(max-width:820px){.hero .container{grid-template-columns:1fr}.hero-visual{order:-1;aspect-ratio:16/9}}
.section{padding:var(--lg) 0}
.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}
.section-head a{font-weight:700;color:var(--accent);font-size:.9rem}
.grid{display:grid;gap:20px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
@media(max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.grid-3,.grid-4,.grid-2{grid-template-columns:1fr}}
.card{background:var(--surface);border:1px solid var(--ink-12);border-radius:var(--r-md);overflow:hidden;display:flex;flex-direction:column}
.card-media{aspect-ratio:16/10;background:linear-gradient(145deg,var(--accent),#0A8F91);position:relative}
.card-tag-chip{position:absolute;top:10px;left:10px;background:var(--accent);color:#fff;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:4px 10px;border-radius:var(--r-sm)}
.card-tag-chip.pink{background:var(--support)}
.filter-bar{background:var(--surface);border:1px solid var(--ink-12);border-radius:var(--r-md);padding:16px;display:grid;grid-template-columns:repeat(4,1fr) auto;gap:10px;margin-bottom:28px;align-items:end}
.filter-bar label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:rgba(27,33,36,.6);display:block;margin-bottom:4px}
@media(max-width:900px){.filter-bar{grid-template-columns:1fr 1fr}}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.calendar-day{background:var(--surface);border:1px solid var(--ink-12);border-radius:var(--r-sm);min-height:90px;padding:6px;font-size:.78rem}
.calendar-day .day-num{font-weight:700;margin-bottom:4px}
.calendar-day.has-event{border-color:var(--accent)}
.calendar-day a{display:block;background:var(--accent);color:#fff;border-radius:4px;padding:2px 4px;margin-bottom:2px;font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.az-jump{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:28px}
.az-jump a{background:var(--surface);border:1px solid var(--ink-12);border-radius:var(--r-sm);width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}
.az-jump a:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.az-group{margin-bottom:32px}
.az-group h2{border-bottom:2px solid var(--accent);padding-bottom:6px;margin-bottom:16px}
.list-cal-row{display:flex;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--ink-12)}
.list-cal-date{background:var(--ink);color:#fff;border-radius:var(--r-sm);padding:8px 12px;text-align:center;min-width:64px}
.list-cal-date .d{font-size:1.3rem;font-weight:800;line-height:1}
.list-cal-date .m{font-size:.7rem;text-transform:uppercase}
.card-body{padding:18px;display:flex;flex-direction:column;gap:8px;flex:1}
.card-body h3{font-size:1.05rem;margin:0}
.card-meta{font-size:.82rem;color:rgba(26,29,27,.65)}
.card-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:8px}
.tools-hub{background:var(--surface);border:1px solid var(--ink-12);border-radius:var(--r-md);padding:24px;display:flex;flex-direction:column;gap:10px}
.tools-hub h3{margin:0}
.tools-hub .btn{align-self:flex-start;margin-top:8px}
.single-wrap{padding:var(--lg) 0;max-width:820px;margin:0 auto}
.single-wrap .meta-box{background:var(--surface);border:1px solid var(--ink-12);border-radius:var(--r-md);padding:20px;margin:24px 0;display:grid;gap:10px}
.meta-row{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--ink-06);font-size:.92rem}
.meta-row:last-child{border-bottom:none}
.meta-row dt{font-weight:700;color:rgba(26,29,27,.6)}
.meta-row dd{margin:0;text-align:right}
.archive-head{background:var(--support);color:#fff;padding:56px 0 40px}
.archive-head h1{color:#fff}
.archive-head p{color:rgba(255,255,255,.8)}
.site-footer{background:var(--ink);color:rgba(255,255,255,.75);padding:var(--lg) 0;margin-top:var(--xl)}
.site-footer a{color:#fff}
.footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.footer-grid h4{color:#fff;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em}
.footer-grid ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:.9rem}
@media(max-width:700px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.footer-grid{grid-template-columns:1fr;gap:28px}}
.calc-box{background:var(--surface);border:1px solid var(--ink-12);border-radius:var(--r-md);padding:28px;max-width:560px}
.calc-box label{display:block;font-weight:700;font-size:.85rem;margin:14px 0 6px}
.calc-result{margin-top:20px;padding:16px;background:var(--bg);border-radius:var(--r-sm);font-weight:700}
.eyebrow{text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;color:var(--accent);font-weight:700}
.accent-text{color:var(--accent)}
.filter-bar{background:#F1F3F4;border-radius:16px;padding:20px 24px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr 1fr auto;gap:16px;margin-bottom:8px;align-items:center}
.filter-bar input,.filter-bar select{width:100%;padding:22px 20px;border:1px solid #E4E6E7;border-radius:12px;font-family:var(--font);font-size:1rem;background:#fff;color:var(--ink);line-height:1;appearance:none;-webkit-appearance:none}
.filter-bar select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23888' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 18px center;padding-right:38px}
.filter-bar input::placeholder{color:#9AA3A6}
.filter-bar .btn{padding:22px 30px;border-radius:12px;white-space:nowrap;font-size:.85rem}
@media(max-width:1050px){.filter-bar{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:600px){.filter-bar{grid-template-columns:1fr 1fr}}
.pill-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:28px 0 8px}
.pill{display:inline-flex;align-items:center;padding:11px 24px;border-radius:9999px;background:var(--accent);color:#fff;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;border:1.5px solid var(--accent)}
.pill:hover{opacity:.88}
.pill.is-active{background:#fff;color:var(--accent);border-color:var(--accent)}
.main-nav ul li{position:relative}
.main-nav > ul > li > a{display:flex;align-items:center;gap:5px}
.main-nav > ul > li.menu-item-has-children > a::after{content:'';width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-3px;opacity:.6}
.main-nav ul.sub-menu{display:none;position:absolute;top:100%;left:0;background:var(--surface);border:1px solid var(--ink-12);border-radius:12px;padding:8px;min-width:220px;flex-direction:column;gap:2px;box-shadow:0 12px 28px rgba(27,33,36,.1);z-index:100}
.main-nav ul li:hover > ul.sub-menu,.main-nav ul li:focus-within > ul.sub-menu{display:flex}
.main-nav ul.sub-menu li{width:100%}
.main-nav ul.sub-menu a{display:block;padding:10px 14px;border-radius:8px;font-weight:500;font-size:.88rem;border-bottom:none}
.main-nav ul.sub-menu a:hover{background:var(--bg);border-color:transparent;color:var(--accent)}
.nav-toggle{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;border:none;background:transparent;cursor:pointer;padding:0;flex-shrink:0}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:transform .2s ease,opacity .2s ease}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:900px){
  .nav-toggle{display:flex}
  .site-header .container{flex-wrap:nowrap;height:64px;padding:0 20px;position:relative}
  .main-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--ink-12);max-height:calc(100vh - 64px);overflow-y:auto;box-shadow:0 12px 28px rgba(27,33,36,.14)}
  .main-nav.is-open{display:block}
  .main-nav > ul{flex-direction:column;align-items:stretch;gap:0;padding:8px 20px 24px;flex-wrap:nowrap}
  .main-nav ul li{width:100%}
  .main-nav > ul > li > a{padding:14px 2px;border-bottom:1px solid var(--ink-06);width:100%;justify-content:space-between}
  .main-nav > ul > li.menu-item-has-children > a::after{margin-top:0;transition:transform .15s ease}
  .main-nav > ul > li.menu-item-has-children.is-open > a::after{transform:rotate(-135deg)}
  .main-nav ul.sub-menu{position:static;display:none;border:none;padding:4px 0 8px 14px;box-shadow:none;background:transparent;min-width:0}
  .main-nav ul li:hover > ul.sub-menu,.main-nav ul li:focus-within > ul.sub-menu{display:none}
  .main-nav ul li.is-open > ul.sub-menu{display:flex}
  .main-nav ul.sub-menu a{padding:12px 14px}
}
/* ================= PHASE 2 ADDITIONS (01/08/2026) ================= */

.card-media img,.card img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero-media{aspect-ratio:21/9;border-radius:var(--r-md);background:linear-gradient(145deg,var(--accent),#0A8F91);position:relative;display:flex;align-items:flex-end;padding:20px}
.event-vibe-trail .event-hero-media{background:linear-gradient(145deg,#7A6A4F,#3F5F3A)}
.event-hero-badges{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

.badge-this-week{background:#FF0360}
.badge-this-month{background:#FF5A1F}
.badge-upcoming{background:var(--accent)}
.badge-year-tag{background:#5B5F97}
.badge-past{background:#8A8F98}
.badge-cancelled{background:#B3261E}

.rating-badge{display:inline-flex;align-items:center;gap:4px;font-size:.85rem;font-weight:700;color:#E8A33D;margin-top:6px}
.rating-badge .rating-count{color:var(--ink);opacity:.6;font-weight:500;font-size:.8rem}
.rating-badge.rating-empty{color:var(--ink);opacity:.5;font-weight:500}

.spotlight{padding:8px 0}
.spotlight-road{background:var(--bg)}
.spotlight-trail{background:#F1EEE6}
.spotlight-trail .card-media{background:linear-gradient(145deg,#7A6A4F,#3F5F3A)}
.spotlight-trail h2{color:#3F5F3A}
.spotlight-road h2{color:var(--accent)}
.spotlight-sub{font-size:.85rem;opacity:.7}

.highlight-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.highlight-list li{position:relative;padding-left:28px;font-size:.95rem}
.highlight-list li::before{content:'\2713';position:absolute;left:0;top:0;color:var(--accent);font-weight:800}

.race-options{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:8px}
.race-option-card{border:1.5px solid var(--ink-12);border-radius:var(--r-md);padding:14px 20px;display:flex;flex-direction:column;gap:4px;min-width:140px}
.race-option-card strong{font-size:1.05rem}
.race-option-card span{font-size:.8rem;opacity:.7}

.faq-accordion details{border:1px solid var(--ink-12);border-radius:var(--r-sm);padding:14px 18px;margin-bottom:10px;background:var(--surface)}
.faq-accordion summary{font-weight:700;cursor:pointer}
.faq-accordion p{margin-top:10px;margin-bottom:0;font-size:.92rem}

.top3-list{list-style:decimal;padding-left:20px;margin:0;font-size:.88rem;display:grid;gap:4px}

.reviews-section{margin-top:48px;padding-top:32px;border-top:1px solid var(--ink-12)}
.review-list{display:grid;gap:16px;margin:20px 0}
.review-item{border:1px solid var(--ink-12);border-radius:var(--r-md);padding:16px 20px;background:var(--surface)}
.review-item-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px;font-size:.85rem}
.review-stars{color:#E8A33D}
.review-date{opacity:.6}
.review-form,.account-form{display:grid;gap:14px;max-width:480px;margin-top:20px}
.review-form label,.account-form label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;font-weight:700}
.review-form textarea{min-height:100px;resize:vertical;height:auto}
.event-hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;border-radius:var(--r-md)}
.event-hero-media{overflow:hidden}
.event-hero-badges{position:relative;z-index:1}
.elite-photo{aspect-ratio:1/1;border-radius:var(--r-md);overflow:hidden;background:linear-gradient(145deg,var(--accent),#0A8F91);max-width:220px;margin-bottom:16px}
.elite-photo img{width:100%;height:100%;object-fit:cover;display:block}

select,input[type=text],input[type=email],input[type=password],input[type=date],input[type=search],input[type=number],textarea{width:100%;padding:22px 20px;border:1px solid #E4E6E7;border-radius:12px;font-family:var(--font);font-size:1rem;box-sizing:border-box;background:#fff;color:var(--ink);line-height:1;appearance:none;-webkit-appearance:none}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23888' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 18px center;padding-right:38px}
input::placeholder,textarea::placeholder{color:#9AA3A6}
textarea{height:auto;line-height:1.5}

.card-media{overflow:hidden}
.card-media .badge{position:absolute;top:10px;left:10px;z-index:2;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.card-media .rating-badge{position:absolute;top:10px;right:10px;z-index:2;background:rgba(255,255,255,.92);padding:3px 8px;border-radius:20px}

.avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:2.4rem;letter-spacing:.02em}
.elite-photo .avatar-placeholder{border-radius:var(--r-md)}
.card-media .avatar-placeholder{font-size:1.8rem}
.generic-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#E8EAEA,#D6DADA)}
.generic-placeholder span{font-size:2.4rem;opacity:.55}
.card-media .generic-placeholder span{font-size:2rem}
.gamify-panel{background:var(--surface);border:1px solid var(--ink-12);border-radius:var(--r-md);padding:20px;margin-top:24px}
.gamify-stats{display:flex;gap:24px;margin-bottom:14px}
.gamify-stat{display:flex;flex-direction:column;align-items:center}
.gamify-stat strong{font-size:1.6rem;color:var(--accent)}
.gamify-stat span{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;opacity:.65}
.badge-row{display:flex;flex-wrap:wrap;gap:8px}
.gamify-badge{background:var(--bg);border:1px solid var(--ink-12);border-radius:20px;padding:5px 12px;font-size:.8rem;font-weight:600}

/* Native WP comments (comments_template) cleanup */
#comments{margin-top:40px;padding-top:32px;border-top:1px solid var(--ink-12)}
#comments .comments-title,#comments .comment-reply-title{font-size:1.3rem;font-weight:800;margin-bottom:18px}
ol.comment-list{list-style:none;margin:0 0 24px;padding:0}
ol.comment-list ol.children{list-style:none;margin:0;padding-left:32px}
ol.comment-list li.comment{margin-bottom:16px}
.comment-body{background:var(--surface);border:1px solid var(--ink-12);border-radius:var(--r-md);padding:16px 18px}
.comment-body .avatar{border-radius:50%;float:left;margin-right:12px;width:40px;height:40px}
.comment-author.vcard{font-weight:700;font-size:.92rem;overflow:hidden;display:block}
.comment-author.vcard cite{font-style:normal}
.comment-metadata{overflow:hidden;font-size:.78rem;color:rgba(27,33,36,.55);margin-bottom:8px}
.comment-metadata a{color:inherit}
.comment-content p{margin:0 0 8px;font-size:.92rem;line-height:1.55}
.comment-content p:last-child{margin-bottom:0}
.reply{margin-top:8px}
.comment-reply-link{font-size:.78rem;font-weight:700;color:var(--brand,#FF5A1F);text-decoration:none}
#respond{margin-top:8px}
.comment-form p{margin:0 0 14px}
.comment-form label{display:block;font-size:.8rem;font-weight:700;margin-bottom:6px}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{width:100%}
.comment-form textarea{height:auto;min-height:110px;resize:vertical}
.comment-notes,.comment-awaiting-moderation{font-size:.82rem;color:rgba(27,33,36,.6);margin-bottom:14px}
.comment-form .form-submit{margin:0}
.comment-form .form-submit input[type=submit]{background:var(--brand,#FF5A1F);color:#fff;border:none;border-radius:var(--r-sm);padding:10px 22px;font-weight:700;font-size:.85rem;cursor:pointer;height:auto}
.no-comments{font-size:.9rem;color:rgba(27,33,36,.6)}
/* ================= RUNNING LOCATION FINDER (Round 8) ================= */
.state-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:900px){.state-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.state-grid{grid-template-columns:1fr}}
.state-card{display:flex;flex-direction:column;gap:4px;padding:20px 22px;border:1px solid var(--ink-12);border-radius:var(--r-md);background:var(--surface);transition:border-color .15s ease,transform .15s ease}
.state-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.state-card-name{font-weight:700;font-size:1.05rem}
.state-card-count{color:#8A9296;font-size:.85rem}

.location-finder-layout{display:grid;grid-template-columns:260px 1fr;gap:32px;align-items:start}
@media(max-width:820px){.location-finder-layout{grid-template-columns:1fr}}
.location-finder-sidebar{position:sticky;top:88px}
@media(max-width:820px){.location-finder-sidebar{position:static}}
.location-filter-sidebar{border:1px solid var(--ink-12);border-radius:var(--r-md);padding:20px;background:var(--surface)}
.filter-group{margin-bottom:18px}
.filter-group h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:#8A9296;margin:0 0 10px}
.filter-check{display:flex;align-items:center;gap:8px;font-size:.92rem;padding:5px 0;cursor:pointer}
.filter-check input{width:16px;height:16px;accent-color:var(--accent)}
.filter-clear{display:block;text-align:center;margin-top:10px;font-size:.85rem;color:#8A9296}

.results-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;font-size:.92rem;color:#8A9296}
.results-head a{color:var(--accent);font-weight:600}
.location-row-card{display:flex;gap:18px;padding:18px 0;border-bottom:1px solid var(--ink-12)}
.location-row-card:first-child{padding-top:0}
.location-row-card .card-media{width:180px;height:130px;flex-shrink:0;border-radius:var(--r-sm);overflow:hidden}
.location-row-card .card-body{flex:1;min-width:0}
.location-row-card h3{margin:0 0 6px}
.location-excerpt{color:#5B6367;font-size:.9rem;margin-top:8px}
@media(max-width:600px){.location-row-card{flex-direction:column}.location-row-card .card-media{width:100%;height:180px}}

.location-nearby-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:900px){.location-nearby-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.location-nearby-grid{grid-template-columns:1fr}}
.location-nearby-card{display:block;border:1px solid var(--ink-12);border-radius:var(--r-sm);overflow:hidden;background:var(--surface)}
.location-nearby-card .card-media{height:110px}
.location-nearby-card .card-body{padding:12px 14px}
.location-nearby-card h4{margin:0 0 4px;font-size:.92rem}
.location-nearby-card .distance-tag{font-size:.8rem;color:#8A9296}

.location-routes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:900px){.location-routes-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.location-routes-grid{grid-template-columns:1fr}}

.location-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media(max-width:700px){.location-photo-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:480px){.location-photo-grid{grid-template-columns:repeat(2,1fr)}}
.location-photo-grid img{width:100%;height:130px;object-fit:cover;border-radius:8px;display:block}
.photo-upload-box{border:1.5px dashed var(--ink-12);border-radius:var(--r-md);padding:24px;text-align:center;margin-top:16px}
.photo-upload-box input[type=file]{display:block;margin:12px auto}
.upload-msg{margin-top:10px;font-size:.9rem}
.upload-msg-ok{color:#1a7f37}
.upload-msg-error{color:#d1242f}

.location-events-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:900px){.location-events-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.location-events-grid{grid-template-columns:1fr}}
.location-events-grid .card-media{position:relative}

.btn-disabled{opacity:.55;cursor:not-allowed;pointer-events:none}

.list-cal-thumb{width:64px;height:64px;min-width:64px;border-radius:var(--r-sm);overflow:hidden;background:var(--ink-06,#eee)}
.list-cal-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.list-cal-thumb .generic-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:1.4rem}

.month-nav{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:24px}
.month-nav-label{margin:0;font-size:1.3rem;min-width:180px;text-align:center}
.month-nav-arrow{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--ink-06,#f1f1f1);color:var(--ink);font-size:1.1rem;text-decoration:none;flex-shrink:0}
.month-nav-arrow:hover{background:var(--ink-12,#e4e4e4)}
.list-cal-empty{text-align:center;opacity:.7;padding:24px 0}

.list-cal-date .dow{font-size:.62rem;text-transform:uppercase;opacity:.75;letter-spacing:.03em}

/* Race Results Malaysia - lrr-card grid (mirrors lesgo.my layout) */
.lrr-section-title { margin: 32px 0 16px; font-size: 1.3rem; }
.lrr-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 20px; margin-bottom: 12px; }
.lrr-card { border: 1.5px solid var(--ink-12); border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; background: #fff; transition: box-shadow .15s ease; }
.lrr-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,.08); }
.lrr-card-img { width: 100%; height: 130px; overflow: hidden; background-color: #eee; }
.lrr-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lrr-pagination { display: flex; align-items: center; justify-content: center; gap: 18px; margin: 18px 0 40px; }
.lrr-card-body { padding: 12px 14px 16px; display: flex; flex-direction: column; gap: 6px; }
.lrr-card-title { margin: 0; font-weight: 600; font-size: .95rem; line-height: 1.3; }
.lrr-card-title a { color: inherit; text-decoration: none; }
.lrr-card-title a:hover { text-decoration: underline; }
.lrr-card-date { font-size: .82rem; color: var(--ink-60, #666); }
.lrr-badge { display: inline-block; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; padding: 4px 10px; border-radius: var(--r-sm); width: fit-content; }
.lrr-badge-done { background: var(--support); color: #fff; }
.lrr-badge-pending { background: var(--accent); color: #fff; }
.lrr-badge-na { background: transparent; border: 1px solid var(--ink-12); color: var(--ink); }
.lrr-card-cta { margin-top: 4px; display: inline-block; text-align: center; padding: 10px 12px; border-radius: var(--r-sm); font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; text-decoration: none; }
.lrr-cta-done { background: var(--accent); color: var(--surface); }
.lrr-cta-done:hover { opacity: .9; }
.lrr-cta-disabled { background: var(--ink-06); color: var(--ink); opacity: .45; cursor: default; }
/* == HERO REBUILD: photo hero + 3 quick-access cards == */
.hero{position:relative;overflow:hidden;padding:0;background:#062022;color:#fff}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center 40%}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(6,32,34,.95) 0%,rgba(6,32,34,.86) 42%,rgba(6,32,34,.45) 100%)}
.hero > .container.hero-inner{display:block;padding-top:76px;padding-bottom:56px;position:relative;z-index:2}
.hero-inner h1{font-size:clamp(2rem,4.4vw,3.2rem);line-height:1.08;margin:10px 0 14px;max-width:17ch}
.hero-sub{max-width:58ch;font-size:1.02rem;line-height:1.55;opacity:.88;margin:0 0 26px}
.hero .eyebrow{color:var(--accent)}
.hero-search{display:flex;gap:8px;max-width:560px;margin:0 0 44px}
.hero-search input{flex:1;min-width:0;padding:14px 16px;border:1px solid transparent;border-radius:var(--r-sm);font-family:var(--font);font-size:.95rem;color:var(--ink)}
.hero-search .btn{padding:14px 24px}
.quick-access{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.qa-card{display:flex;flex-direction:column;background:var(--surface);color:var(--ink);border:1px solid var(--ink-12);border-radius:var(--r-md);padding:22px;text-decoration:none;position:relative}
.qa-ico{width:40px;height:40px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;background:rgba(0,198,201,.12);color:var(--accent);margin-bottom:14px}
.qa-ico svg{width:21px;height:21px;display:block}
.qa-card.is-support .qa-ico{background:rgba(255,3,96,.1);color:var(--support)}
.qa-card h3{margin:0 0 6px;font-size:1.08rem;line-height:1.2}
.qa-card p{margin:0;font-size:.86rem;line-height:1.45;opacity:.7}
.qa-go{margin-top:14px;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent)}
.qa-card.is-support .qa-go{color:var(--support)}
.qa-count{position:absolute;top:22px;right:22px;font-size:.72rem;font-weight:700;letter-spacing:.03em;color:var(--ink);opacity:.42}
@media(max-width:900px){
  .quick-access{grid-template-columns:1fr}
  .hero > .container.hero-inner{padding-top:48px;padding-bottom:40px}
  .hero-search{margin-bottom:32px}
  .qa-card{padding:18px}
  .qa-ico{margin-bottom:10px}
}

/* == Branded placeholder tile (replaces the flat grey emoji box) == */
.generic-placeholder{
  background:linear-gradient(150deg,#0A2E30 0%,#0F4446 55%,#0A2E30 100%);
  position:relative;overflow:hidden;color:#fff
}
.generic-placeholder::before{
  content:"";position:absolute;inset:0;
  background-image:repeating-linear-gradient(115deg,rgba(0,198,201,.16) 0 2px,transparent 2px 13px);
  opacity:.85
}
.generic-placeholder > span{
  position:relative;z-index:1;font-size:1.9rem;line-height:1;
  filter:grayscale(1) brightness(2.4);opacity:.62
}
.card-media img,.card-media .lesgo-stock-img{width:100%;height:100%;object-fit:cover;display:block}

/* == Tools hub == */
.tools-intro > *{max-width:820px}
.tools-intro p{font-size:1.02rem;line-height:1.65;margin:0 0 14px}
.tools-group .section-head{align-items:flex-start;flex-direction:column;gap:4px;margin-bottom:20px}
.tools-group .spotlight-sub{font-size:.92rem;opacity:.7}
.tool-card{display:flex;flex-direction:column;background:var(--surface);color:var(--ink);border:1px solid var(--ink-12);border-radius:var(--r-md);padding:24px;text-decoration:none;position:relative}
.tool-ico{width:40px;height:40px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;background:rgba(0,198,201,.12);color:var(--accent);margin-bottom:14px}
.tool-ico svg{width:22px;height:22px;display:block}
.tool-card h3{margin:0 0 8px;font-size:1.1rem;line-height:1.25}
.tool-card p{margin:0 0 12px;font-size:.9rem;line-height:1.5;opacity:.78}
.tool-best{font-size:.82rem;line-height:1.5;opacity:.66;display:block;padding-top:12px;border-top:1px solid var(--ink-12)}
.tool-best strong{opacity:.9}
.tool-lang{align-self:flex-start;display:inline-block;margin-top:10px;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--support);background:rgba(255,3,96,.09);padding:3px 8px;border-radius:var(--r-sm)}
.tool-card .qa-go{margin-top:auto;padding-top:14px}

.tools-table-wrap{overflow-x:auto;border:1px solid var(--ink-12);border-radius:var(--r-md);background:var(--surface)}
.tools-table{width:100%;border-collapse:collapse;font-size:.92rem;min-width:640px}
.tools-table th,.tools-table td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--ink-12);vertical-align:top}
.tools-table thead th{font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;opacity:.6;background:var(--bg)}
.tools-table tbody tr:last-child td{border-bottom:none}
.tools-table td a{color:var(--accent);font-weight:700;text-decoration:none}

.faq-list{display:grid;gap:10px;max-width:820px}
.faq-item{border:1px solid var(--ink-12);border-radius:var(--r-sm);background:var(--bg)}
.faq-item summary{cursor:pointer;padding:15px 18px;font-weight:700;font-size:.96rem;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";float:right;color:var(--accent);font-weight:800}
.faq-item[open] summary::after{content:"\2212"}
.faq-item p{margin:0;padding:0 18px 16px;font-size:.92rem;line-height:1.6;opacity:.8}
@media(max-width:900px){.tool-card{padding:20px}}

/* == Calculator UI shared by all tool pages == */
.calc-box-wide{max-width:680px}
.calc-tabs{display:flex;gap:6px;background:var(--bg);padding:4px;border-radius:var(--r-sm);margin-bottom:6px}
.calc-tab{flex:1;border:none;background:transparent;font-family:var(--font);font-weight:700;font-size:.84rem;padding:9px 12px;border-radius:var(--r-sm);cursor:pointer;color:var(--ink);opacity:.6}
.calc-tab.is-active{background:var(--surface);opacity:1;box-shadow:none;border:1px solid var(--ink-12)}
.calc-box input[type=number],.calc-box input[type=text],.calc-box select{width:100%;padding:11px 12px;border:1.5px solid var(--ink-12);border-radius:var(--r-sm);font-family:var(--font);font-size:.95rem;background:var(--surface);color:var(--ink)}
.time-row{display:flex;gap:8px}
.time-row input{max-width:90px}
.calc-hint{font-size:.8rem;opacity:.6;margin:6px 0 0}
.calc-headline{font-size:2rem;font-weight:800;line-height:1.1;color:var(--ink)}
.calc-headline span{font-size:.95rem;font-weight:700;opacity:.55}
.calc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:16px}
.calc-grid > div{background:var(--surface);border:1px solid var(--ink-12);border-radius:var(--r-sm);padding:10px 12px}
.calc-grid span{display:block;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;opacity:.55;font-weight:700}
.calc-grid strong{font-size:1.05rem}
.calc-sub{margin-top:18px;font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;opacity:.55}
.calc-table{width:100%;border-collapse:collapse;margin-top:8px;font-weight:400}
.calc-table td{padding:8px 10px;border-bottom:1px solid var(--ink-12);font-size:.92rem}
.calc-table tr:last-child td{border-bottom:none}
.calc-table td:last-child{text-align:right}
.calc-note{margin:14px 0 0;font-size:.82rem;line-height:1.55;opacity:.65;font-weight:400}
.calc-warn{background:rgba(255,3,96,.07);border:1px solid rgba(255,3,96,.2);color:var(--ink);border-radius:var(--r-sm);padding:10px 12px;font-size:.86rem;font-weight:400;margin-top:14px}
.tools-intro h2{margin:26px 0 10px;font-size:1.35rem}
.tools-intro h2:first-child{margin-top:0}
@media(max-width:560px){.calc-grid{grid-template-columns:1fr}}

/* == Pace band == */
#pace-band{border:1px solid var(--ink-12);border-radius:var(--r-sm);overflow:hidden;background:var(--surface);margin-top:8px}
.band-head{background:var(--ink);color:#fff;font-size:.78rem;font-weight:700;letter-spacing:.04em;padding:8px 12px;text-transform:uppercase}
.band-table thead th{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;opacity:.55;padding:8px 10px;text-align:left;border-bottom:1px solid var(--ink-12)}
.band-table td:last-child,.band-table th:last-child{text-align:right}
}

/* == Course difficulty / GPX == */
.gpx-drop{border:2px dashed var(--ink-12);border-radius:var(--r-md);padding:26px 20px;text-align:center;background:var(--bg);transition:border-color .15s}
.gpx-drop.is-over{border-color:var(--accent);background:rgba(0,198,201,.06)}
.gpx-drop p{margin:0 0 6px}
.gpx-drop input[type=file]{margin-top:12px;width:auto;border:none;background:transparent;font-size:.9rem}
.gpx-profile{width:100%;height:130px;display:block;margin:16px 0 4px;background:var(--bg);border:1px solid var(--ink-12);border-radius:var(--r-sm)}
.gpx-scale{display:flex;gap:5px;margin-top:12px}
.gpx-scale span{flex:1;height:6px;border-radius:3px;background:var(--ink-12)}
.gpx-scale span.on{background:var(--accent)}
.gpx-scale span.on:nth-child(4),.gpx-scale span.on:nth-child(5){background:var(--support)}

/* ================= BLOG ARTICLE COMPONENTS ================= */
.entry-content{font-size:1.02rem;line-height:1.75}
.entry-content h2{margin:2.2em 0 .6em;font-size:1.5rem;line-height:1.3}
.entry-content h3{margin:1.8em 0 .5em;font-size:1.15rem;line-height:1.35}
.entry-content p{margin:0 0 1.05em}
.entry-content ul,.entry-content ol{margin:0 0 1.2em;padding-left:1.35em}
.entry-content li{margin:.35em 0}
.entry-content a{text-decoration:underline;text-underline-offset:2px}
.qa-box{border:1px solid rgba(127,127,127,.28);border-left:4px solid #e8590c;border-radius:10px;padding:16px 18px;margin:0 0 28px;background:rgba(232,89,12,.06)}
.qa-box .qa-label{display:block;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;opacity:.7;margin-bottom:6px;font-weight:700}
.qa-box p{margin:0 0 .7em}
.qa-box p:last-child{margin-bottom:0}
.blog-table-wrap{overflow-x:auto;margin:0 0 1.6em}
table.blog-table{width:100%;border-collapse:collapse;font-size:.93rem;min-width:480px}
table.blog-table th,table.blog-table td{border:1px solid rgba(127,127,127,.28);padding:9px 11px;text-align:left;vertical-align:top}
table.blog-table th{background:rgba(127,127,127,.1);font-weight:700;font-size:.85rem}
table.blog-table caption{caption-side:bottom;font-size:.8rem;opacity:.7;padding-top:8px;text-align:left}
.note-box{border:1px solid rgba(127,127,127,.28);border-left:4px solid #1c7ed6;border-radius:10px;padding:14px 16px;margin:0 0 1.6em;background:rgba(28,126,214,.06);font-size:.95rem}
.warn-box{border:1px solid rgba(127,127,127,.28);border-left:4px solid #c92a2a;border-radius:10px;padding:14px 16px;margin:0 0 1.6em;background:rgba(201,42,42,.06);font-size:.95rem}
.note-box p:last-child,.warn-box p:last-child{margin-bottom:0}
.faq-list{margin:0 0 1.8em}
.faq-list h3{margin:1.4em 0 .35em;font-size:1.03rem;font-weight:700}
.faq-list h3:first-child{margin-top:0}
.cta-box{border-radius:12px;padding:20px 22px;margin:2em 0;background:rgba(232,89,12,.09);border:1px solid rgba(232,89,12,.3)}
.cta-box h3{margin:0 0 .5em;font-size:1.1rem}
.cta-box p{margin:0 0 .9em}
.cta-btns{display:flex;flex-wrap:wrap;gap:10px}
.cta-btns a{display:inline-block;padding:10px 16px;border-radius:8px;background:#e8590c;color:#fff;text-decoration:none;font-weight:600;font-size:.92rem}
.cta-btns a.alt{background:transparent;color:inherit;border:1px solid rgba(127,127,127,.45)}
.src-note{margin:2.4em 0 0;padding-top:18px;border-top:1px solid rgba(127,127,127,.25);font-size:.85rem;opacity:.85}
.src-note h2{font-size:1.05rem;margin:0 0 .6em}
.src-note ol{padding-left:1.3em}
.src-note li{margin:.3em 0;word-break:break-word}
.rel-posts{margin:2.2em 0 0;padding-top:18px;border-top:1px solid rgba(127,127,127,.25)}
.rel-posts h2{font-size:1.1rem;margin:0 0 .6em}
.rel-posts ul{padding-left:1.2em}
@media(max-width:640px){.entry-content h2{font-size:1.3rem}.cta-btns a{width:100%;text-align:center}}
/* == Hero photo credit (required for CC BY-SA images) == */
.hero-credit{position:absolute;right:14px;bottom:10px;z-index:3;font-size:.66rem;letter-spacing:.02em;color:rgba(255,255,255,.55);line-height:1.3;text-align:right;max-width:60%}
.hero-credit a{color:rgba(255,255,255,.7);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.25)}
.hero-credit a:hover{color:#fff}
@media(max-width:900px){.hero-credit{position:static;padding:8px 0 0;text-align:left;max-width:none;opacity:.75}}
