.catalogue-symbol,.catalogue-cover{background:#eaf8f6;border:0;border-radius:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.catalogue-symbol{width:76px;height:90px}.catalogue-symbol .icon{width:38px;height:38px}
.catalogue-cover{width:100%;height:100px;margin-bottom:18px}.catalogue-cover .icon{width:48px;height:48px}
.primary[href]{display:flex;justify-content:center;text-decoration:none;margin:18px 0}
.event-card{padding:0;overflow:hidden;border:0;background:#087e82;color:#fff;cursor:pointer}
.event-art{position:relative;overflow:hidden;aspect-ratio:513/369;border-radius:18px 18px 0 0;background:#b6f6d9;margin-bottom:18px}
.event-card .event-art{margin-bottom:0}
.approved-event-art{position:absolute;max-width:none!important;width:325.93%;height:auto;top:-43.09%;left:-8.97%}
.triathlon .approved-event-art{left:-113.84%}.trail .approved-event-art{left:-217.35%}
.event-art .heart{position:absolute;top:4.4%;right:3.2%;width:13%;height:auto;aspect-ratio:1;display:grid;place-items:center;background:white;border:1.5px solid #062a32;border-radius:50%;color:#062a32;font-size:26px;line-height:1;padding:0;z-index:1}
.event-art .heart.saved{color:#087e82;background:#d4ff43}
.official-event-photo{width:100%;height:100%;object-fit:cover;display:block}
.event-heading{display:flex;gap:14px;align-items:center;padding:14px 18px;background:#043f47}
.event-heading .race-title{color:white;flex:1;text-align:left;font-size:20px;line-height:1.2}
.event-date{font-size:12px;line-height:1.4;max-width:95px;flex-shrink:0;padding-left:12px;border-left:1px solid #ffffff55}
.event-body{padding:18px}.event-body p{color:white;margin:5px 0}.event-sport{font-size:25px;font-weight:800;text-transform:uppercase;font-style:italic}
.event-distance{font-size:15px}.event-registration{margin:12px 0}.event-body .primary{background:#d4ff43;color:#032c31;margin:12px 0 0;border:0}
.review-badge{background:#fff0cf!important;color:#704b00!important;font-size:11px;margin-top:8px}
.event-card .badge.grey{background:#d9f0eb;color:#164a48}.event-card .badge{white-space:normal}
.event-card:focus-within{outline:3px solid #d4ff43;outline-offset:2px}

/* Light, airy race cards */
.event-card{display:flex;flex-direction:column;background:#fff;color:#0d2b30;box-shadow:0 6px 22px #062f3b14}
.event-card .event-art{aspect-ratio:513/300;margin-bottom:0}
.event-card .approved-event-art{top:-71%}
.event-card .event-body{display:flex;flex-direction:column;flex:1;padding:18px 18px 20px;gap:0}
.event-card .event-body p{color:inherit}
.event-meta{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;font-size:13px;color:#5b6f71}
.event-card .event-sport{align-self:flex-start;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-style:normal;color:#087780;background:#e6f6f3;border-radius:999px;padding:3px 10px}
.event-card .race-title{display:block;text-align:left;color:#0d2b30;font-size:21px;line-height:1.2;font-weight:700;margin:12px 0 4px;padding:0;background:none;border:0}
.event-card .event-date{font-size:16px;font-weight:600;color:#0d2b30;max-width:none;border:0;padding:0;margin:0 0 14px;flex-shrink:1}
.opt-chips{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:8px}
.opt-chip{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;background:#f2f8f6;border-radius:12px;padding:9px 12px;font-size:14px}
.opt-chip b{font-weight:700;color:#0d2b30}.opt-chip span{color:#4b6264}
.opt-chip em{margin-left:auto;font-style:normal;font-size:12px;font-weight:700;color:#a3294a}
.opt-chip.sold b,.opt-chip.sold span{opacity:.6}
.event-card .event-registration{margin:0 0 14px}
.event-card .badge{background:#d8f4e6;color:#0b5a3c}.event-card .badge.grey{background:#eef2f2;color:#41595b}
.event-card .event-body .primary{margin-top:auto;background:#d4ff43;color:#032c31}

.event-card .race-title{margin:10px 0 6px}
.event-where{font-size:15px;font-weight:600;color:#0d2b30;margin:0}
.event-card .event-date{font-size:15px;font-weight:700;color:#087780;margin:2px 0 14px}
.event-card .event-art .heart{top:2%;width:14%}

/* Race day block */
.race-day{background:#fff;border:1px solid #d6e6e2;border-radius:20px;padding:18px 16px 14px;margin:18px 0;box-shadow:0 6px 18px rgba(8,119,128,.07)}
.race-day h2{margin:0 0 6px;font-size:20px}
.rd-row{display:flex;gap:12px;padding:12px 0;border-top:1px solid #e8f0ee}
.rd-row:first-of-type{border-top:0}
.rd-ico{flex:0 0 34px;height:34px;border-radius:10px;background:#e4f3ef;display:grid;place-items:center;font-size:17px}
.rd-row small{display:block;color:#5b6f71;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.rd-val{margin-top:2px;line-height:1.4;overflow-wrap:anywhere}
.rd-na{color:#8a9a9c}
.rd-pick+.rd-pick{margin-top:8px}
.rd-pick small{display:block;text-transform:none;letter-spacing:0;font-weight:400;font-size:13px}
.rd-maps{display:flex;gap:8px;margin-top:6px}
.rd-maps a,.rd-rules{display:inline-block;padding:7px 12px;border-radius:999px;background:#e4f3ef;color:#087780;font-weight:700;font-size:13px;text-decoration:none}
.rd-rules{margin:6px 0 0 46px}
.rd-src{margin:12px 0 0;font-size:12px;color:#6b7c7e}
.rd-src a{color:#087780}

/* City photo credit */
.event-art .photo-credit{position:absolute;left:8px;bottom:6px;max-width:80%;padding:2px 7px;border-radius:999px;background:rgba(4,40,46,.62);color:#fff;font-size:10px;line-height:1.4;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.unverified-badge{background:#eef2f3!important;color:#4a5b5e!important;font-size:11px;margin-top:8px;border:1px dashed #b9c6c8}
.event-art .photo-credit:hover,.event-art .photo-credit:focus-visible{background:rgba(4,40,46,.85);text-decoration:underline}
.list-entry .date-block{display:flex;align-items:center;justify-content:center;min-width:76px}
.list-entry .date-block strong{font-size:21px;line-height:1.15;white-space:nowrap}

.event-art{background:#eef7f5}.sport-placeholder{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
