@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap");

/* Layout refresh marker for deployment. */
:root {
  --navy: #061744;
  --navy-2: #0b2558;
  --ink: #102342;
  --muted: #66748a;
  --line: #dbe5f2;
  --blue: #006bff;
  --blue-2: #0056d6;
  --cyan: #40c4ef;
  --yellow: #ffd22e;
  --green: #e8f7ed;
  --orange: #fff0dc;
  --white: #ffffff;
  --surface: #f7faff;
  --shadow: 0 18px 44px rgba(6, 23, 68, 0.12);
  --brand-font: "Inter", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --label-tracking: 0.16em;
}

/* 2026 public race-centre adaptation. Keep this final layer shared by all public pages. */
:root {
  --msr-ink:#071a36;
  --msr-blue:#075fd8;
  --msr-cyan:#10a6df;
  --msr-green:#15b879;
  --msr-lime:#a7ed27;
  --msr-red:#ef3f3f;
  --msr-line:#dfe6ef;
  --msr-soft:#f5f8fc;
}
body { color:var(--msr-ink); background:#f8fafc; }
.site-header.app-header { position:sticky; top:0; z-index:1000; width:100%; min-height:76px; box-sizing:border-box; padding:0 max(24px,calc((100vw - 1320px)/2)); border-bottom:1px solid var(--msr-line); background:rgba(255,255,255,.97); box-shadow:0 4px 18px rgba(8,31,66,.05); backdrop-filter:blur(14px); }
.site-header .brand-logo { width:220px; max-height:54px; object-fit:contain; object-position:left center; }
.site-header .main-nav { gap:32px; }
.site-header .main-nav a { position:relative; padding:29px 0 25px; color:#152946; font-size:11px; font-weight:850; letter-spacing:0; text-transform:uppercase; }
.site-header .main-nav a::after { position:absolute; right:0; bottom:17px; left:0; height:2px; content:""; background:var(--msr-blue); transform:scaleX(0); transition:transform .18s ease; }
.site-header .main-nav a:hover::after,.site-header .main-nav a.active::after { transform:scaleX(1); }
.site-header .outline-button { min-height:36px; padding:0 15px; border:1px solid var(--msr-blue); border-radius:4px; color:var(--msr-blue); background:#fff; font-size:10px; font-weight:850; text-transform:uppercase; }

.listing-page,.ranking-page,.detail-page,.results-page { width:min(1320px,calc(100% - 40px)); margin:0 auto; }
.listing-hero,.detail-hero,.results-hero { position:relative; overflow:hidden; margin:22px 0 14px; padding:28px 32px; border:1px solid var(--msr-line); border-left:5px solid var(--msr-blue); border-radius:6px; background:#fff; box-shadow:0 8px 24px rgba(8,31,66,.055); }
.listing-hero::after,.detail-hero::after,.results-hero::after { position:absolute; top:0; right:0; width:220px; height:100%; content:""; opacity:.07; background:url('images/main_logo_icon.png') center/110px no-repeat; }
.listing-hero .eyebrow,.detail-hero .eyebrow,.results-hero .eyebrow { color:var(--msr-blue); }
.listing-hero h1,.detail-hero h1,.results-hero h1 { margin:3px 0 7px; color:var(--msr-ink); font-size:clamp(28px,3.2vw,46px); line-height:1.02; letter-spacing:0; }
.listing-hero > p:last-child,.detail-hero > div > p:last-child { max-width:760px; color:#63738a; font-size:13px; }

.event-directory,.results-listing-board,.ranking-board,.detail-content,.results-layout { border-color:var(--msr-line)!important; border-radius:6px!important; background:#fff; box-shadow:0 8px 28px rgba(8,31,66,.05)!important; }
.event-tabs,.results-listing-header { border-bottom:1px solid var(--msr-line); background:#fff; }
.event-tabs button,.public-class-filters button,.ranking-tabs a,.public-filter-buttons button { border-radius:4px!important; letter-spacing:0!important; }
.public-class-filters button.active,.ranking-tabs a.active,.public-filter-buttons button.active { color:#fff!important; border-color:var(--msr-blue)!important; background:var(--msr-blue)!important; }
.event-detail-card { min-height:132px; border:0!important; border-bottom:1px solid #e6ebf2!important; border-radius:0!important; background:#fff!important; box-shadow:none!important; transition:background .16s ease,transform .16s ease; }
.event-detail-card:hover { background:#f7faff!important; transform:translateX(2px); }
.event-detail-card:last-child { border-bottom:0!important; }
.event-date { border-radius:4px!important; color:var(--msr-ink)!important; background:#eef4fb!important; }
.event-date strong { color:var(--msr-blue)!important; }
.event-thumb { border-radius:4px!important; }
.event-copy h2 { color:var(--msr-ink)!important; font-size:18px!important; }
.event-tags span { border-radius:3px!important; }
.details-button,.results-button,.enter-button,.primary-button { min-width:110px; box-sizing:border-box; border-radius:4px!important; font-size:10px!important; font-weight:850!important; text-transform:uppercase; }
.results-button,.primary-button { color:#fff!important; border-color:var(--msr-blue)!important; background:var(--msr-blue)!important; }
.enter-button { color:#062d20!important; border-color:var(--msr-lime)!important; background:var(--msr-lime)!important; }
.results-filter-panel,.results-side-card,.detail-section,.results-board { border-radius:6px!important; border-color:var(--msr-line)!important; }
input,select,textarea { border-color:#cfd9e7!important; border-radius:4px!important; background:#fff; }
input:focus,select:focus,textarea:focus { border-color:var(--msr-blue)!important; box-shadow:0 0 0 3px rgba(7,95,216,.12)!important; outline:0; }

.home-platform-suite { display:grid; grid-template-columns:1.05fr .9fr 1.25fr; min-height:290px; margin-top:16px; overflow:hidden; border-radius:7px; color:#fff; background:#071a36; box-shadow:0 16px 40px rgba(8,31,66,.16); }
.home-platform-suite > article { position:relative; min-width:0; padding:28px; border-right:1px solid rgba(255,255,255,.14); }
.home-platform-suite > article:last-child { border-right:0; }
.home-platform-suite .eyebrow { color:#80d8ff; }
.home-platform-suite h2 { max-width:340px; margin:6px 0 10px; color:#fff; font-size:25px; line-height:1.05; letter-spacing:0; }
.home-platform-suite p:not(.eyebrow) { max-width:320px; color:#b8c7da; font-size:12px; line-height:1.55; }
.home-app-panel > div:first-child { position:relative; z-index:2; width:62%; }
.home-app-panel a { display:inline-flex; align-items:center; gap:10px; margin-top:14px; padding:10px 12px; border-radius:4px; color:#071a36; background:var(--msr-lime); font-size:9px; font-weight:850; text-transform:uppercase; }
.home-app-scoring { background:linear-gradient(145deg,#35126f,#111b59); }
.home-coming-soon { display:inline-block; margin-top:12px; padding:6px 9px; border:1px solid rgba(255,255,255,.35); border-radius:3px; color:#fff; font-size:8px; font-weight:850; text-transform:uppercase; }
.home-phone-preview { position:absolute; right:22px; bottom:-28px; display:grid; width:118px; height:235px; align-content:start; gap:8px; box-sizing:border-box; padding:22px 12px; border:5px solid #293d5c; border-radius:20px; color:#071a36; background:#f8fbff; box-shadow:0 18px 30px rgba(0,0,0,.28); transform:rotate(4deg); }
.home-phone-preview::before { position:absolute; top:6px; left:42px; width:34px; height:4px; border-radius:4px; content:""; background:#293d5c; }
.home-phone-preview span { color:var(--msr-red); font-size:7px; font-weight:900; }
.home-phone-preview strong { margin-bottom:6px; font-size:14px; }
.home-phone-preview i { padding:8px; border-left:3px solid var(--msr-blue); border-radius:3px; background:#eaf2fc; font-size:8px; font-style:normal; font-weight:800; }
.home-app-screens { position:absolute; right:12px; bottom:-82px; width:170px; height:310px; }
.home-app-screens img { position:absolute; width:112px; height:242px; object-fit:cover; object-position:top; border:5px solid #263b59; border-radius:19px; background:#fff; box-shadow:0 18px 32px rgba(0,0,0,.34); }
.home-app-screens img:first-child { top:25px; left:0; z-index:2; transform:rotate(-6deg); }
.home-app-screens img:last-child { top:0; right:0; transform:rotate(5deg); }
.home-score-preview { position:absolute; right:18px; bottom:30px; display:flex; gap:5px; transform:rotate(-5deg); }
.home-score-preview b { display:grid; width:43px; height:58px; place-items:center; border-radius:5px; color:#fff; background:#1268d5; font-size:25px; box-shadow:0 10px 18px rgba(0,0,0,.2); }
.home-score-preview b:nth-child(2) { background:#ef3f7d; }
.home-score-preview b:nth-child(3) { background:#16b98a; }
.home-app-panel .home-scoring-screen { position:absolute; right:-34px; bottom:22px; display:block; width:210px; height:142px; min-height:0; margin:0; padding:0; overflow:hidden; border:5px solid #26325f; border-radius:9px; background:#fff; box-shadow:0 18px 32px rgba(0,0,0,.32); transform:rotate(-4deg); }
.home-scoring-screen img { width:100%; height:100%; object-fit:cover; object-position:left top; transition:transform .2s ease; }
.home-scoring-screen:hover img { transform:scale(1.025); }
.home-suite-panel { background:#f4f7fb; }
.home-suite-panel .eyebrow { color:var(--msr-blue); }
.home-suite-panel h2 { color:var(--msr-ink); }
.home-suite-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin-top:24px; }
.home-suite-links a { display:grid; gap:5px; min-height:92px; align-content:center; padding:12px; border:1px solid #dce4ee; border-radius:5px; color:var(--msr-ink); background:#fff; transition:transform .16s ease,box-shadow .16s ease; }
.home-suite-links a:hover { transform:translateY(-2px); box-shadow:0 8px 20px rgba(7,34,72,.1); }
.home-suite-links strong { font-size:12px; }
.home-suite-links span { color:#6c7d93; font-size:8px; line-height:1.35; }

body > footer { width:min(1320px,calc(100% - 40px)); margin:20px auto 0; padding:24px 0; border-top:1px solid var(--msr-line); background:transparent; }

@media (max-width:1050px) {
  .site-header .main-nav { gap:18px; }
  .home-platform-suite { grid-template-columns:1fr 1fr; }
  .home-suite-panel { grid-column:1/-1; }
}
@media (max-width:780px) {
  .site-header.app-header { position:sticky; min-height:66px; padding:8px 16px; }
  .site-header .brand-logo { width:178px; }
  .site-header .main-nav { top:65px; padding:8px 16px 16px; background:#fff; box-shadow:0 14px 24px rgba(8,31,66,.13); }
  .site-header .main-nav a { padding:12px 4px; }
  .listing-page,.ranking-page,.detail-page,.results-page { width:100%; }
  .listing-hero,.detail-hero,.results-hero { margin:0; padding:24px 18px; border-width:0 0 1px 4px; border-radius:0; }
  .listing-hero::after,.detail-hero::after,.results-hero::after { display:none; }
  .event-directory,.results-listing-board,.ranking-board,.detail-content,.results-layout { border-radius:0!important; box-shadow:none!important; }
  .event-detail-card { padding:14px!important; }
  .home-platform-suite { grid-template-columns:1fr; margin:14px 12px 0; }
  .home-platform-suite > article { min-height:250px; border-right:0; border-bottom:1px solid rgba(255,255,255,.14); }
  .home-suite-panel { grid-column:auto; }
  .home-suite-links { grid-template-columns:1fr; }
  .home-suite-links a { min-height:64px; }
  body > footer { width:calc(100% - 24px); }
}

/* Match the public data pages to the native app's softer visual language. */
body:has(.public-app-bottom-nav):not(:has(.home-page)) { color:#07122d; background:linear-gradient(180deg,#fbfdff 0%,#edf3fb 48%,#f7f9fc 100%); }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .listing-hero,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-hero { overflow:hidden; border-radius:18px!important; background:linear-gradient(135deg,#061a49,#005dff)!important; box-shadow:0 12px 28px rgba(0,93,255,.18)!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .listing-hero h1,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-hero h1 { color:#fff!important; letter-spacing:-.025em!important; text-transform:none!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .listing-hero .eyebrow { color:#9fc7ff!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .app-page-stat { border-radius:14px; background:rgba(255,255,255,.12); box-shadow:inset 0 1px 0 rgba(255,255,255,.1); }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-directory,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .results-listing-board,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-board { overflow:hidden; border-color:#d6e0f0!important; border-radius:16px!important; background:#fff; box-shadow:0 10px 28px rgba(8,23,51,.08)!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .results-listing-header { border-bottom:1px solid #e5ecf6; background:#fbfdff; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .results-listing-header h2 { color:#07122d!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .results-listing-header p { color:#5f6c83!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .public-class-filters { gap:8px; background:#f5f8fe; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .public-class-filters button,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-tabs a { border:1px solid #d6e0f0!important; border-radius:999px!important; color:#42516a; background:#fff!important; box-shadow:0 3px 10px rgba(8,23,51,.035); }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .public-class-filters button.is-selected,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-tabs a.active { color:#fff!important; border-color:transparent!important; background:linear-gradient(135deg,#061a49,#005dff)!important; box-shadow:0 8px 18px rgba(0,93,255,.2); }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-list-detailed { gap:12px; background:#f8fbff; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card { border:1px solid #d6e0f0!important; border-radius:14px!important; background:#fff!important; box-shadow:0 8px 24px rgba(8,23,51,.06)!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-copy h2 { color:#07122d!important; font-weight:850; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-copy > p { color:#5f6c83!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-tags span { border-color:#cfe0ff!important; color:#0f3b79!important; background:#eef6ff!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-tags .tag-ranking { color:#725300!important; border-color:#ead47a!important; background:#fff3bf!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-actions a { border-radius:10px!important; font-weight:850; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-actions .results-button,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-actions .details-button { color:#fff!important; border-color:#005dff!important; background:linear-gradient(135deg,#061a49,#005dff)!important; box-shadow:0 8px 18px rgba(0,93,255,.16); }
body:has(.public-app-bottom-nav):not(:has(.home-page)) input,
body:has(.public-app-bottom-nav):not(:has(.home-page)) select { border-color:#d6e0f0!important; border-radius:12px!important; color:#07122d; background:#f8fbff!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) input:focus,
body:has(.public-app-bottom-nav):not(:has(.home-page)) select:focus { outline:3px solid rgba(0,93,255,.12); border-color:#005dff!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-table-wrap { overflow:hidden; border-radius:14px; box-shadow:0 8px 24px rgba(8,23,51,.05); }

@media(max-width:760px){
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .listing-page,
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-page { padding:16px 12px 28px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .listing-hero,
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-hero { margin:0 8px 18px!important; border-radius:16px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card { min-height:0!important; grid-template-columns:58px minmax(0,1fr)!important; gap:12px!important; padding:12px!important; overflow:visible; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-date { width:58px!important; height:auto!important; min-height:74px!important; align-self:start; border-radius:10px!important; background:linear-gradient(155deg,#010f34,#082b72 58%,#005dff)!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-date strong { font-size:23px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-copy { padding:1px 0 0!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-copy h2 { font-size:17px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-side { padding:0!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-actions a { min-height:40px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-list-detailed { padding:12px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .public-class-filters { margin:0; border-radius:0; }
  .public-app-bottom-nav { border-radius:18px 18px 0 0; box-shadow:0 -10px 28px rgba(8,23,51,.12); }
  .public-app-bottom-nav a { border-radius:12px; }
}

/* Final website behaviour: association-width desktop, app-styled responsive cards. */
body:has(.public-app-bottom-nav):not(:has(.home-page)) { font-family:"Inter","Segoe UI",Arial,sans-serif; }
@media(min-width:901px){
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .site-header.app-header { width:min(1460px,calc(100% - 32px)); }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .listing-page,
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-page { width:min(1460px,calc(100% - 32px)); }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-directory.public-association-events { display:grid!important; grid-template-columns:minmax(0,1fr) 310px!important; gap:18px; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-main { grid-column:1; grid-row:1; margin-top:0; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar { grid-column:2; grid-row:1; order:initial; align-self:start; padding:0; border:0; background:transparent; box-shadow:none; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar .find-panel { display:block; padding:20px; border:1px solid #d6e0f0; border-radius:14px; background:#fff; box-shadow:0 10px 28px rgba(8,23,51,.08); }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar .find-panel h2,
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar .public-filter-group,
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar #applyFilters,
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar #resetFilters { display:block; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card { grid-template-columns:64px 110px minmax(0,1fr) 160px!important; gap:16px!important; padding:14px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-thumb { display:block!important; width:110px; height:82px; border-radius:12px; object-fit:cover; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-copy { grid-column:3!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-side { grid-column:4!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-actions { width:150px!important; }
  body:has(.public-app-bottom-nav) .public-association-results-layout { display:grid!important; grid-template-columns:minmax(0,1fr) 310px; gap:18px; }
  body:has(.public-app-bottom-nav) .association-results-main { grid-column:1; grid-row:1; }
  body:has(.public-app-bottom-nav) .association-results-sidebar { grid-column:2; grid-row:1; order:initial; }
  body:has(.public-app-bottom-nav) .results-filter-panel { display:block; padding:20px!important; }
  body:has(.public-app-bottom-nav) .results-filter-panel > h2 { margin-bottom:14px; }
  body:has(.public-app-bottom-nav) .results-filter-selects { display:grid; grid-template-columns:1fr; gap:10px; }
  body:has(.public-app-bottom-nav) .results-filter-group { margin-top:12px; }
  body:has(.public-app-bottom-nav) .results-reset-button { width:100%; margin-top:12px; }
}

/* Compact event-card finishing layer. */
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-copy { min-width:0; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-copy h2 { overflow-wrap:anywhere; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .club-logo-card { display:grid; width:52px; height:52px; place-items:center; margin:0 auto 8px; padding:4px; box-sizing:border-box; border:1px solid #d6e0f0; border-radius:10px; background:#fff; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .club-logo { width:42px!important; height:42px!important; object-fit:contain; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-actions { gap:6px!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-actions a { min-height:32px!important; padding:6px 10px!important; border-radius:8px!important; font-size:9px!important; line-height:1.1; letter-spacing:.04em; }

@media(min-width:901px){
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card { grid-template-columns:60px 76px minmax(0,1fr) 126px!important; gap:12px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-date { grid-column:1; grid-row:1; width:60px!important; min-height:78px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-thumb { grid-column:2; grid-row:1; display:block!important; width:76px!important; height:58px!important; align-self:center; border-radius:9px!important; object-fit:contain; background:#f5f8fe; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-copy { grid-column:3!important; grid-row:1; align-self:center; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-side { grid-column:4!important; grid-row:1; align-self:center!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-actions { width:118px!important; }
}

/* Logo hierarchy: class mark top-right, club mark beneath the date. */
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card { position:relative; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-club-mark { display:grid; width:42px; height:42px; place-items:center; justify-self:center; padding:4px; box-sizing:border-box; border:1px solid #d6e0f0; border-radius:9px; background:#fff; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-club-mark img { width:32px; height:32px; object-fit:contain; }

@media(min-width:901px){
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card { grid-template-columns:60px minmax(0,1fr) 118px!important; grid-template-rows:auto auto; column-gap:14px!important; row-gap:8px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-date { grid-column:1!important; grid-row:1!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-club-mark { grid-column:1; grid-row:2; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-copy { grid-column:2!important; grid-row:1 / 3!important; align-self:start!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-thumb { grid-column:3!important; grid-row:1!important; display:block!important; width:46px!important; height:36px!important; justify-self:end; align-self:start!important; margin:0!important; border-radius:7px!important; object-fit:contain!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-side { grid-column:3!important; grid-row:2!important; align-self:start!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-actions { width:110px!important; }
}

@media(max-width:900px){
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-club-mark { grid-column:1; grid-row:2; width:38px; height:38px; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-club-mark img { width:28px; height:28px; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-thumb { position:absolute; top:12px; right:12px; display:block!important; width:42px!important; height:32px!important; border-radius:7px!important; object-fit:contain!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-copy { padding-right:48px!important; }
}

@media(max-width:900px){
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .club-logo-card { width:40px; height:40px; margin:0 8px 0 0; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .club-logo { width:32px!important; height:32px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-side { display:flex!important; align-items:center!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-actions { display:flex!important; width:auto!important; }
}

/* Results and rankings use the same vertical app flow as Coming Events. */
body:has(.public-app-bottom-nav) .public-association-results-layout { display:flex!important; flex-direction:column; gap:14px; }
body:has(.public-app-bottom-nav) .association-results-sidebar { display:block!important; order:-1; width:auto!important; padding:0!important; border:0!important; background:transparent!important; }
body:has(.public-app-bottom-nav) .association-results-help { display:none!important; }
body:has(.public-app-bottom-nav) .results-filter-panel { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:0; padding:14px!important; border:1px solid rgba(217,226,239,.82)!important; border-radius:12px!important; background:rgba(255,255,255,.92)!important; box-shadow:0 10px 28px rgba(8,23,51,.08); }
body:has(.public-app-bottom-nav) .results-filter-panel > h2 { grid-column:1/-1; margin:0; color:#07122d; font-size:17px; }
body:has(.public-app-bottom-nav) .results-filter-selects { display:grid; grid-column:1/-1; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
body:has(.public-app-bottom-nav) .results-filter-group { margin:0; padding:10px; border:1px solid #d6e0f0; border-radius:10px; background:#f5f8fe; }
body:has(.public-app-bottom-nav) .results-reset-button { align-self:end; min-height:44px; border:1px solid #ffd4cf!important; border-radius:10px!important; color:#7f1d1d!important; background:#fff5f4!important; }
body:has(.public-app-bottom-nav) .association-results-main { width:100%; }
body:has(.public-app-bottom-nav) .public-results-event-list { display:grid; gap:12px; padding:14px!important; background:#f8fbff; }
body:has(.public-app-bottom-nav) .ranking-tabs { display:flex; gap:8px; overflow-x:auto; padding:14px; border-bottom:1px solid #e5ecf6; background:#f5f8fe; scrollbar-width:none; }
body:has(.public-app-bottom-nav) .ranking-tabs::-webkit-scrollbar { display:none; }
body:has(.public-app-bottom-nav) .ranking-tabs a { flex:0 0 auto; min-height:40px; padding:9px 14px; }
body:has(.public-app-bottom-nav) .ranking-table-wrap { margin:14px!important; }
body:has(.public-app-bottom-nav) .ranking-table tbody tr { background:#fff; }
body:has(.public-app-bottom-nav) .ranking-table tbody tr:nth-child(even) { background:#f8fbff; }
body:has(.public-app-bottom-nav) .ranking-table tbody tr:hover { background:#eef6ff; }
body:has(.public-app-bottom-nav) .ranking-sailor-button { color:#005dff!important; font-weight:850; }

@media(max-width:760px){
  body:has(.public-app-bottom-nav) .results-filter-panel { display:block; padding:12px!important; }
  body:has(.public-app-bottom-nav) .results-filter-panel > h2 { margin-bottom:10px; }
  body:has(.public-app-bottom-nav) .results-filter-selects { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  body:has(.public-app-bottom-nav) .results-filter-group { margin-top:10px; }
  body:has(.public-app-bottom-nav) .results-reset-button { width:100%; margin-top:10px; }
  body:has(.public-app-bottom-nav) .ranking-table-wrap { margin:12px!important; border-radius:10px; }
}

/* Keep the mobile public pages aligned with the native app after legacy responsive rules. */
@media (max-width:760px) {
  body:has(.public-app-bottom-nav) .event-detail-card { grid-template-columns:70px minmax(0,1fr)!important; gap:14px!important; }
  body:has(.public-app-bottom-nav) .event-detail-card .event-copy { grid-column:2!important; }
  body:has(.public-app-bottom-nav) .event-detail-card .event-side { grid-column:2!important; }
  body:has(.public-app-bottom-nav) .event-detail-card .event-actions { width:auto!important; grid-template-columns:none!important; }
}

/* Dominant homepage app showcase. */
body:has(.simple-sailing-hero) .home-platform-suite { display:grid; min-height:540px; grid-template-columns:minmax(0,2fr) minmax(285px,1fr); grid-template-rows:1fr 1fr; gap:0; overflow:hidden; }
body:has(.simple-sailing-hero) .home-platform-suite > article { border-right:0; }
body:has(.simple-sailing-hero) .home-app-primary { grid-column:1; grid-row:1 / 3; min-height:540px; overflow:hidden; padding:54px 44px; background:radial-gradient(circle at 82% 20%,rgba(29,128,255,.28),transparent 34%),linear-gradient(145deg,#04173b,#073d99 68%,#0874ec); }
body:has(.simple-sailing-hero) .home-app-primary::after { position:absolute; right:-110px; bottom:-150px; width:470px; height:470px; border:1px solid rgba(255,255,255,.1); border-radius:50%; content:""; }
body:has(.simple-sailing-hero) .home-app-primary .home-app-copy { width:40%; }
body:has(.simple-sailing-hero) .home-app-primary h2 { max-width:390px; font-size:42px; line-height:1.02; }
body:has(.simple-sailing-hero) .home-app-primary p:not(.eyebrow) { max-width:380px; font-size:14px; }
.home-app-benefits { display:flex; flex-wrap:wrap; gap:7px; margin-top:20px; }
.home-app-benefits span { padding:7px 10px; border:1px solid rgba(255,255,255,.22); border-radius:16px; color:#e6f1ff; background:rgba(255,255,255,.08); font-size:9px; font-weight:800; text-transform:uppercase; }
body:has(.simple-sailing-hero) .home-app-primary .home-app-downloads { margin-top:24px; }
body:has(.simple-sailing-hero) .home-app-screens { z-index:2; right:3%; bottom:-50px; width:56%; height:535px; }
body:has(.simple-sailing-hero) .home-app-screens figure { position:absolute; width:48%; margin:0; }
body:has(.simple-sailing-hero) .home-app-screens figure:first-child { z-index:2; top:62px; left:0; transform:rotate(-4deg); }
body:has(.simple-sailing-hero) .home-app-screens figure:last-child { top:8px; right:0; transform:rotate(4deg); }
body:has(.simple-sailing-hero) .home-app-screens img { position:static; width:100%; height:470px; box-sizing:border-box; border:8px solid #10284c; border-radius:31px; object-fit:cover; object-position:top; box-shadow:0 28px 55px rgba(0,0,0,.38); transform:none; }
body:has(.simple-sailing-hero) .home-app-screens figcaption { margin-top:10px; color:#d9e8fb; font-size:9px; font-weight:850; text-align:center; text-transform:uppercase; }
body:has(.simple-sailing-hero) .home-app-scoring { grid-column:2; grid-row:1; min-height:270px; border-bottom:1px solid rgba(255,255,255,.14); }
body:has(.simple-sailing-hero) .home-suite-panel { grid-column:2; grid-row:2; min-height:270px; }
body:has(.simple-sailing-hero) .home-sailrc-feature { grid-column:2; grid-row:1 / 3; display:grid; grid-template-rows:minmax(0,1fr) 230px; gap:20px; min-height:540px; overflow:hidden; padding:34px; background:radial-gradient(circle at 85% 12%,rgba(20,121,255,.32),transparent 34%),linear-gradient(155deg,#031434,#082e70 62%,#075fd8); }
.home-sailrc-copy { position:relative; z-index:2; }
.home-sailrc-logo { display:block; width:180px; height:64px; margin-bottom:25px; padding:8px 12px; box-sizing:border-box; border-radius:10px; object-fit:contain; object-position:center; background:#fff; box-shadow:0 10px 24px rgba(0,0,0,.18); }
.home-sailrc-feature h2 { max-width:390px!important; margin-top:8px!important; font-size:30px!important; line-height:1.08!important; }
.home-sailrc-feature p:not(.eyebrow) { max-width:390px!important; font-size:13px!important; }
.home-sailrc-price { display:block; margin-top:18px; color:#fff; font-size:24px; font-weight:900; }
.home-sailrc-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:22px; }
.home-sailrc-actions a { display:inline-flex; min-height:40px; align-items:center; gap:8px; padding:0 15px; border:1px solid rgba(255,255,255,.35); border-radius:8px; color:#fff; font-size:9px; font-weight:850; text-transform:uppercase; }
.home-sailrc-actions a:first-child { color:#061a36; border-color:#fff; background:#fff; }
.home-sailrc-actions a:hover { transform:translateY(-2px); }
.home-sailrc-product-image { position:relative; display:grid; min-height:0; place-items:center; overflow:hidden; border-radius:16px; background:#fff; box-shadow:0 20px 38px rgba(0,0,0,.24); }
.home-sailrc-product-image::after { position:absolute; right:12px; bottom:10px; padding:6px 9px; border-radius:7px; content:'Shop at SailRC'; color:#fff; background:#075fd8; font-size:8px; font-weight:850; text-transform:uppercase; }
.home-sailrc-product-image img { display:block; width:100%; height:100%; min-height:0; object-fit:contain; padding:14px; box-sizing:border-box; transition:transform .2s ease; }
.home-sailrc-product-image:hover img { transform:scale(1.035); }

@media(max-width:1000px){
  body:has(.simple-sailing-hero) .home-platform-suite { grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr); }
  body:has(.simple-sailing-hero) .home-app-primary { padding:42px 30px; }
  body:has(.simple-sailing-hero) .home-app-primary h2 { font-size:34px; }
  body:has(.simple-sailing-hero) .home-app-screens { right:1%; width:55%; }
}

@media(max-width:760px){
  body:has(.simple-sailing-hero) .home-platform-suite { display:block; min-height:0; overflow:visible; border-radius:12px; }
  body:has(.simple-sailing-hero) .home-app-primary { min-height:720px; padding:34px 24px 0; }
  body:has(.simple-sailing-hero) .home-app-primary .home-app-copy { width:100%; }
  body:has(.simple-sailing-hero) .home-app-primary h2 { max-width:100%; font-size:34px; }
  body:has(.simple-sailing-hero) .home-app-primary p:not(.eyebrow) { max-width:100%; }
  body:has(.simple-sailing-hero) .home-app-screens { right:4%; bottom:-54px; width:92%; height:390px; }
  body:has(.simple-sailing-hero) .home-app-screens figure { width:48%; }
  body:has(.simple-sailing-hero) .home-app-screens figure:first-child { top:35px; }
  body:has(.simple-sailing-hero) .home-app-screens img { height:360px; border-width:6px; border-radius:24px; }
  body:has(.simple-sailing-hero) .home-app-scoring,
  body:has(.simple-sailing-hero) .home-suite-panel { min-height:265px; }
  body:has(.simple-sailing-hero) .home-sailrc-feature { display:grid; min-height:570px; grid-template-rows:auto 250px; padding:28px 24px; }
}

/* App-first homepage hero based on the supplied mobile campaign reference. */
body:has(.app-first-hero) .app-first-hero { min-height:660px; background:linear-gradient(90deg,rgba(242,249,255,.98) 0%,rgba(235,246,255,.91) 43%,rgba(235,246,255,.2) 70%),url('images/hero-radio-sailing-enhanced.png') center 52%/cover no-repeat; }
body:has(.app-first-hero) .app-first-hero::before { position:absolute; right:-6%; bottom:-270px; width:52%; height:480px; content:""; background:#0867db; clip-path:polygon(0 20%,100% 0,100% 100%,0 100%); transform:rotate(-5deg); }
body:has(.app-first-hero) .app-first-hero::after { height:135px; background:linear-gradient(180deg,transparent,rgba(4,28,66,.42)); }
body:has(.app-first-hero) .simple-hero-copy { padding-top:95px; }
body:has(.app-first-hero) .simple-hero-copy > p { color:#0867db; font-size:11px; }
body:has(.app-first-hero) .simple-hero-copy h1 { max-width:610px; color:#071a36; font-size:70px; line-height:.98; text-transform:none; }
body:has(.app-first-hero) .simple-hero-copy h1 strong { color:#0867db; }
body:has(.app-first-hero) .simple-hero-copy > span { max-width:450px; color:#263c58; font-size:17px; line-height:1.6; }
body:has(.app-first-hero) .app-first-downloads { display:flex; gap:10px; margin-top:28px; }
body:has(.app-first-hero) .app-first-downloads a { min-width:170px; min-height:52px; padding:0 18px; border:0; border-radius:7px; color:#fff; background:#05090f; box-shadow:0 8px 20px rgba(0,0,0,.16); font-size:10px; }
body:has(.app-first-hero) .app-first-downloads a:first-child { color:#fff; background:#05090f; }
.app-first-phone { position:absolute; z-index:3; top:36px; right:9%; width:330px; height:625px; padding:13px; box-sizing:border-box; overflow:hidden; border:4px solid #101820; border-radius:48px; background:#101820; box-shadow:0 35px 70px rgba(2,17,40,.38); transform:rotate(7deg); }
.app-first-phone::before { position:absolute; z-index:3; top:8px; left:50%; width:112px; height:24px; border-radius:0 0 15px 15px; content:""; background:#101820; transform:translateX(-50%); }
.app-first-phone::after { position:absolute; top:105px; right:-7px; width:5px; height:85px; border-radius:0 4px 4px 0; content:""; background:#17222d; }
.app-first-phone > span { position:absolute; z-index:4; top:15px; left:50%; width:34px; height:4px; border-radius:3px; background:#2f3942; transform:translateX(-50%); }
.app-first-phone img { width:100%; height:100%; border-radius:34px; object-fit:cover; object-position:top; background:#fff; }
.home-app-feature-strip { position:relative; z-index:5; display:grid; width:calc(100% - 40px); min-height:150px; grid-template-columns:repeat(4,minmax(0,1fr)); margin:-54px auto 22px; overflow:hidden; border:1px solid #dce5ef; border-radius:12px; background:#fff; box-shadow:0 18px 42px rgba(7,31,69,.13); }
.home-app-feature-strip article { display:grid; justify-items:center; align-content:center; gap:7px; padding:22px; border-right:1px solid #e5ebf2; text-align:center; }
.home-app-feature-strip article:last-child { border-right:0; }
.home-app-feature-strip article > span { display:grid; width:48px; height:48px; place-items:center; border-radius:50%; color:#0867db; background:#e9f3ff; font-size:22px; }
.home-app-feature-strip strong { color:#0a1f3d; font-size:13px; }
.home-app-feature-strip small { max-width:170px; color:#62738a; font-size:10px; line-height:1.5; }
body:has(.app-first-hero) .simple-event-search { margin-top:0; }

@media(max-width:980px){
  body:has(.app-first-hero) .simple-hero-copy h1 { font-size:58px; }
  .app-first-phone { right:4%; width:285px; height:560px; }
}

@media(max-width:760px){
  body:has(.app-first-hero) .app-first-hero { min-height:850px; background:linear-gradient(180deg,rgba(241,249,255,.97) 0%,rgba(236,247,255,.9) 48%,rgba(236,247,255,.2) 73%),url('images/hero-radio-sailing-enhanced.png') 68% bottom/auto 54% no-repeat; }
  body:has(.app-first-hero) .app-first-hero::before { right:-32%; bottom:-100px; width:120%; height:285px; }
  body:has(.app-first-hero) .simple-hero-copy { padding:48px 24px 0; }
  body:has(.app-first-hero) .simple-hero-copy h1 { max-width:100%; font-size:44px; }
  body:has(.app-first-hero) .simple-hero-copy > span { max-width:92%; font-size:15px; }
  body:has(.app-first-hero) .app-first-downloads { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  body:has(.app-first-hero) .app-first-downloads a { min-width:0; min-height:48px; padding:0 9px; font-size:8px; }
  .app-first-phone { top:400px; right:50%; width:242px; height:458px; border-radius:37px; transform:translateX(50%) rotate(6deg); }
  .app-first-phone img { border-radius:26px; }
  .home-app-feature-strip { width:calc(100% - 24px); min-height:0; grid-template-columns:1fr 1fr; margin:-24px auto 18px; }
  .home-app-feature-strip article { min-height:130px; padding:16px 12px; }
  .home-app-feature-strip article:nth-child(2) { border-right:0; }
  .home-app-feature-strip article:nth-child(-n+2) { border-bottom:1px solid #e5ebf2; }
  .home-app-feature-strip article > span { width:42px; height:42px; }
}

/* Supplied mock composition: clean live sports dashboard. */
body:has(.home-page) { background:#fff; }
body:has(.home-page) .home-race-status,
body:has(.home-page) .home-command { display:none; }
body:has(.home-page) .home-page::before { display:none; }
.mock-race-centre { display:grid; grid-template-columns:minmax(270px,.9fr) minmax(410px,1.2fr) minmax(330px,.95fr); min-height:350px; margin-top:20px; border-bottom:1px solid var(--msr-line); background:#fff; }
.mock-race-centre > div { min-width:0; }
.mock-race-intro { display:flex; flex-direction:column; justify-content:center; padding:34px 34px 34px 2px; border-right:4px solid var(--msr-blue); }
.mock-race-intro > p { margin:0 0 22px; color:#e5332f; font-size:10px; font-weight:900; text-transform:uppercase; }
.mock-race-intro > p > span { display:inline-block; width:9px; height:9px; margin-right:7px; border-radius:50%; background:#f13f35; box-shadow:0 0 0 4px rgba(241,63,53,.1); }
.mock-race-intro > p small { margin-left:14px; color:#607188; font-size:8px; }
.mock-race-intro h1 { margin:0; color:#071a36; font-size:58px; font-weight:900; line-height:.92; letter-spacing:0; text-transform:uppercase; }
.mock-race-intro h1 strong { color:var(--msr-blue); font-weight:900; }
.mock-race-intro > span { margin-top:18px; color:#4f6077; font-size:13px; line-height:1.5; }
.mock-race-intro > div { display:flex; gap:10px; margin-top:26px; }
.mock-race-intro > div a { display:inline-flex; min-height:42px; align-items:center; gap:18px; padding:0 16px; border:1px solid #cbd6e4; border-radius:4px; color:#18304f; background:#fff; font-size:9px; font-weight:900; text-transform:uppercase; }
.mock-race-intro > div a:first-child { color:#fff; border-color:var(--msr-blue); background:var(--msr-blue); }
.mock-live-events,.mock-leaderboard { align-self:center; margin:22px 0 22px 18px; overflow:hidden; border:1px solid var(--msr-line); border-radius:6px; background:#fff; box-shadow:0 8px 24px rgba(9,35,73,.045); }
.mock-live-events > header,.mock-leaderboard > header { display:flex; min-height:48px; align-items:center; justify-content:space-between; padding:0 16px; border-bottom:1px solid var(--msr-line); text-transform:uppercase; }
.mock-live-events > header strong,.mock-leaderboard > header strong { font-size:11px; }
.mock-live-events > header span,.mock-leaderboard > header a { color:#607188; font-size:8px; font-weight:800; }
.mock-live-events > a { display:grid; min-height:78px; grid-template-columns:50px minmax(0,1fr) auto 12px; gap:11px; align-items:center; padding:0 15px; border-bottom:1px solid #e8edf3; color:#102442; }
.mock-live-events > a:last-child { border-bottom:0; }
.mock-live-events > a:hover { background:#f7faff; }
.mock-live-events > a > span { display:grid; width:43px; height:43px; place-items:center; border:1px solid #9ec4f4; border-radius:50%; color:var(--msr-blue); font-size:9px; font-weight:900; }
.mock-live-events > a > div { display:grid; gap:4px; }
.mock-live-events > a strong { overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.mock-live-events > a small { overflow:hidden; color:#6a7a90; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.mock-live-events > a em { color:#16875f; font-size:8px; font-style:normal; font-weight:800; text-transform:uppercase; }
.mock-live-events > a > b { color:#7a889b; font-size:20px; }
.mock-leaderboard { margin-right:0; }
.mock-leaderboard .home-live-leaderboard { position:static; width:auto; padding:0; border:0; background:#fff; backdrop-filter:none; }
.mock-leaderboard .home-leader-row { grid-template-columns:34px 75px minmax(0,1fr) 48px; min-height:40px; padding:0 14px; color:#112746; border-bottom:1px solid #edf1f6; background:#fff; }
.mock-leaderboard .home-leader-head { min-height:34px; color:#718096; font-size:7px; text-transform:uppercase; }
.mock-leaderboard .home-leader-row > strong:first-child { color:var(--msr-blue); font-size:13px; }
.mock-leaderboard .home-leader-row:nth-child(3) > strong:first-child { color:#be8c00; }
.mock-leaderboard .home-leader-row:nth-child(4) > strong:first-child { color:#b76b45; }
.mock-full-results { display:flex; min-height:42px; align-items:center; padding:0 15px; color:var(--msr-blue); font-size:8px; font-weight:900; text-transform:uppercase; }
body:has(.home-page) .home-lower-grid { margin-top:18px; }

@media (max-width:1050px) {
  .mock-race-centre { grid-template-columns:1fr 1.25fr; }
  .mock-leaderboard { grid-column:1/-1; margin:0 0 18px; }
}
@media (max-width:780px) {
  .mock-race-centre { display:grid; grid-template-columns:1fr; margin-top:0; }
  .mock-race-intro { padding:32px 20px; border-right:0; border-bottom:4px solid var(--msr-blue); }
  .mock-race-intro h1 { font-size:43px; }
  .mock-race-intro > div { flex-wrap:wrap; }
  .mock-live-events,.mock-leaderboard { width:calc(100% - 24px); margin:12px; box-sizing:border-box; }
  .mock-leaderboard { grid-column:auto; }
  .mock-live-events > a { grid-template-columns:46px minmax(0,1fr) 12px; }
  .mock-live-events > a em { display:none; }
}

.entry-page {
  margin: 0;
  color: var(--ink);
  background: #f6f9fc;
  font-family: var(--brand-font);
}

.entry-page .site-header {
  position: sticky;
  z-index: 20;
  top: 0;
  display: flex;
  min-height: 82px;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 16px clamp(20px, 5vw, 72px);
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.entry-page .brand-logo {
  display: block;
  width: 210px;
  max-width: 42vw;
  height: auto;
}

.entry-page .main-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
}

.entry-page .main-nav a {
  color: #26344f;
  font-size: 13px;
  font-weight: 650;
  text-decoration: none;
}

.entry-page .main-nav a.active {
  color: var(--blue);
}

.entry-layout {
  width: min(1120px, calc(100% - 36px));
  margin: 0 auto;
  padding: 30px 0 70px;
}

.entry-modal-body {
  background: #fff;
}

.entry-modal-body .entry-layout {
  width: min(1080px, calc(100% - 28px));
  padding: 18px 0 calc(112px + env(safe-area-inset-bottom));
}

.entry-modal-body .entry-card {
  box-shadow: none;
}

.entry-hero {
  margin-bottom: 22px;
  padding: 32px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: linear-gradient(135deg, #102342, #0b2558);
  color: #fff;
  box-shadow: var(--shadow);
}

.entry-hero h1 {
  max-width: 850px;
  margin: 4px 0 10px;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.05;
}

.entry-hero p {
  margin: 0;
  color: rgba(255,255,255,.82);
}

.entry-card {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: clamp(20px, 3vw, 32px);
  background: #fff;
  box-shadow: 0 18px 44px rgba(13, 35, 70, 0.08);
  overflow: hidden;
}

.entry-form-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 18px;
}

.entry-form-header h2,
.entry-success h2 {
  margin: 0;
  color: var(--ink);
  font-size: 26px;
}

.entry-form-header span {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  border-radius: 999px;
  padding: 0 14px;
  color: var(--blue);
  background: #eef5ff;
  font-size: 13px;
  font-weight: 750;
}

.entry-form {
  display: grid;
  gap: 18px;
}

.entry-form .entry-section {
  display: grid;
  grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
  gap: clamp(22px, 3vw, 34px);
  margin: 0;
  border: 1px solid #e3ebf5;
  border-radius: 12px;
  padding: clamp(18px, 2.5vw, 26px);
  background: #fbfdff;
}

.entry-form .entry-section h3,
.entry-indemnity h3 {
  margin: 0;
  color: var(--ink);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.25;
}

.entry-section-body {
  width: 100%;
  min-width: 0;
}

.entry-form label {
  display: grid;
  gap: 8px;
  width: 100%;
  min-width: 0;
  margin-bottom: 0;
  color: #26344f;
  font-size: 13px;
  font-weight: 650;
}

.entry-label-text {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  color: #26344f;
}

.entry-label-text b {
  color: #d91d2a;
  font-weight: 800;
}

.entry-form input,
.entry-form select,
.entry-form textarea {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  min-height: 44px;
  border: 1px solid #ccd8e8;
  border-radius: 8px;
  padding: 10px 13px;
  color: var(--ink);
  background: #fff;
  font: inherit;
  font-weight: 450;
}

.entry-form input:focus,
.entry-form select:focus,
.entry-form textarea:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(0, 107, 255, 0.12);
  outline: none;
}

.entry-form textarea {
  min-height: 116px;
  resize: vertical;
}

.entry-grid {
  display: grid;
  gap: 16px;
  margin-bottom: 16px;
  width: 100%;
}

.entry-grid:last-child,
.entry-section-body > label:last-child {
  margin-bottom: 0;
}

.entry-grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.entry-grid.three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.entry-field-wide {
  width: 100%;
}

.entry-club-picker {
  position: relative;
}

.entry-club-options {
  position: absolute;
  z-index: 100;
  top: 70px;
  right: 0;
  left: 0;
  max-height: 280px;
  overflow-y: auto;
  border: 1px solid #b9c8db;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 14px 30px rgba(13, 35, 70, 0.2);
}

.entry-club-option {
  display: grid;
  gap: 2px;
  width: 100%;
  min-height: 52px;
  border: 0;
  border-bottom: 1px solid #e5ebf3;
  border-radius: 0;
  padding: 8px 12px;
  color: #17233a;
  background: #ffffff;
  text-align: left;
  cursor: pointer;
}

.entry-club-option:last-child {
  border-bottom: 0;
}

.entry-club-option:hover,
.entry-club-option:focus {
  outline: 0;
  background: #eef5ff;
}

.entry-club-option strong,
.entry-club-option span {
  display: block;
}

.entry-club-option span {
  color: #637189;
  font-size: 12px;
}

.entry-sail-number-group {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 12px;
  min-width: 0;
}

.entry-sail-number-field {
  min-width: 0;
}

.entry-personal-number-check {
  align-self: end;
  min-height: 44px;
  margin: 0 !important;
  padding: 0 14px !important;
  white-space: nowrap;
  background: #f5f9fd !important;
}

.entry-form [hidden] {
  display: none !important;
}

.entry-field-hint {
  color: #66748a;
  font-size: 12px;
  font-weight: 450;
  line-height: 1.45;
}

.entry-checkbox {
  display: flex !important;
  grid-template-columns: none !important;
  align-items: center;
  gap: 10px !important;
  width: fit-content;
  margin-top: 2px;
  border: 1px solid #dce6f2;
  border-radius: 999px;
  padding: 10px 14px;
  background: #fff;
  font-weight: 700;
}

.entry-checkbox input {
  width: 18px;
  min-height: 18px;
  margin: 0;
}

.entry-payment-options {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}

.entry-payment-notice {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 14px;
  border: 1px solid #bfd7ea;
  border-radius: 12px;
  padding: 15px 16px;
  color: #173a57;
  background: #f1f8fd;
}

.entry-payment-notice > div {
  display: grid;
  gap: 3px;
}

.entry-payment-notice strong,
.entry-payment-notice span {
  display: block;
}

.entry-payment-notice strong {
  font-size: 14px;
}

.entry-payment-notice span:not(.entry-payment-notice-icon) {
  color: #52677b;
  font-size: 13px;
  line-height: 1.5;
}

.entry-payment-notice-icon {
  display: inline-flex !important;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #fff;
  background: #1778b5;
  font-size: 14px;
  font-weight: 800;
  font-style: normal;
}

.entry-payment-notice-compact {
  margin: 0 14px 14px;
  border-radius: 10px;
  padding: 13px 14px;
}

.entry-payment-choice {
  overflow: hidden;
  border: 1px solid #dce6f2;
  border-radius: 14px;
  background: #fff;
  transition: border-color .18s ease, box-shadow .18s ease;
}

.entry-payment-choice:has(input[type="radio"]:checked) {
  border-color: #1686c9;
  box-shadow: 0 0 0 3px rgba(22, 134, 201, .1);
}

.entry-payment-choice .entry-payment-choice-label {
  width: 100%;
  margin: 0;
  border: 0;
  border-radius: 0;
  padding: 14px 16px;
  background: transparent;
}

.entry-payment-instructions {
  margin: 0;
  border-top: 1px solid #e6edf5;
  padding: 0 16px 14px 44px;
  color: #526178;
  font-size: 13px;
  line-height: 1.55;
}

.entry-bank-details {
  margin: 0 14px 14px;
  border: 1px solid #cadbea;
  border-radius: 12px;
  padding: 16px;
  background: linear-gradient(145deg, #f8fbfe 0%, #eef6fc 100%);
}

.entry-bank-details-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.entry-bank-details-header > div {
  display: grid;
  gap: 2px;
}

.entry-bank-details-header strong {
  color: #172c49;
  font-size: 14px;
}

.entry-bank-details-header small {
  color: #5c6c82;
  font-size: 12px;
  line-height: 1.4;
}

.entry-bank-icon {
  display: inline-flex;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  align-items: center;
  justify-content: center;
  border-radius: 11px;
  color: #fff;
  background: #116fa9;
  box-shadow: 0 5px 12px rgba(17, 111, 169, .2);
}

.entry-bank-icon svg {
  width: 24px;
  height: 24px;
}

.entry-bank-details dl {
  display: grid;
  gap: 0;
  margin: 0;
  border-top: 1px solid #d5e3ee;
}

.entry-bank-details dl > div {
  display: grid;
  grid-template-columns: minmax(110px, .42fr) minmax(0, 1fr);
  gap: 16px;
  border-bottom: 1px solid #d5e3ee;
  padding: 10px 2px;
}

.entry-bank-details dt,
.entry-bank-details dd {
  margin: 0;
}

.entry-bank-details dt {
  color: #607087;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.entry-bank-details dd {
  color: #172c49;
  font-size: 15px;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.entry-bank-note {
  margin: 10px 0 0;
  color: #526178;
  font-size: 13px;
  line-height: 1.5;
}

.entry-indemnity {
  display: grid;
  grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
  gap: clamp(22px, 3vw, 34px);
  margin: 0;
  border: 1px solid #e3ebf5;
  border-radius: 12px;
  padding: clamp(18px, 2.5vw, 26px);
  background: #fff;
}

.entry-indemnity p,
.entry-success p {
  margin: 0 0 12px;
  color: #48566f;
  font-size: 14px;
  line-height: 1.7;
}

.entry-indemnity .entry-checkbox {
  margin-top: 12px;
}

.entry-alert {
  margin-bottom: 22px;
  border: 1px solid #f2b4ba;
  border-radius: 8px;
  padding: 15px 17px;
  color: #7d111b;
  background: #fff2f3;
}

.entry-alert ul {
  margin: 8px 0 0;
}

.entry-rule-warning {
  grid-column: 1 / -1;
  display: grid;
  gap: 8px;
  border: 1px solid #e3a008;
  border-left: 5px solid #d97706;
  border-radius: 8px;
  padding: 15px 17px;
  color: #6b3b05;
  background: #fff8e6;
  font-size: 13px;
  line-height: 1.5;
}

.entry-rule-warning-title {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #7a3d00;
  font-size: 14px;
}

.entry-rule-warning-title > span {
  display: inline-grid;
  width: 24px;
  height: 24px;
  place-items: center;
  flex: 0 0 24px;
  color: #fff;
  background: #d97706;
  border-radius: 50%;
  font-weight: 900;
}

.entry-rule-warning p,
.entry-rule-warning ul {
  margin: 0;
}

.entry-rule-warning ul {
  padding-left: 20px;
}

.privacy-page {
  background: #f5f8fc;
}

.privacy-hero {
  padding: clamp(42px, 7vw, 78px) max(20px, calc((100vw - 1180px) / 2));
  color: #fff;
  background: #071a36;
}

.privacy-hero .eyebrow {
  color: #8ec5ff;
}

.privacy-hero h1 {
  max-width: 780px;
  margin: 8px 0 14px;
  color: #fff;
  font-size: clamp(36px, 6vw, 60px);
  letter-spacing: 0;
}

.privacy-hero > p:not(.eyebrow) {
  max-width: 760px;
  margin: 0;
  color: #d9e7f8;
  font-size: 16px;
  line-height: 1.7;
}

.privacy-policy-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin-top: 24px;
  color: #b9cce2;
  font-size: 12px;
  font-weight: 700;
}

.privacy-layout {
  display: grid;
  grid-template-columns: 220px minmax(0, 780px);
  justify-content: center;
  gap: clamp(32px, 6vw, 76px);
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: clamp(38px, 6vw, 72px) 0 80px;
}

.privacy-nav {
  position: sticky;
  top: 96px;
  display: grid;
  align-self: start;
  gap: 8px;
  border-left: 2px solid #dbe5f1;
  padding-left: 18px;
}

.privacy-nav strong {
  margin-bottom: 5px;
  color: #12233e;
  font-size: 13px;
}

.privacy-nav a {
  color: #53637a;
  font-size: 12px;
  line-height: 1.4;
  text-decoration: none;
}

.privacy-nav a:hover,
.privacy-nav a:focus-visible {
  color: #075cc9;
}

.privacy-content {
  min-width: 0;
}

.privacy-content section {
  scroll-margin-top: 100px;
  border-bottom: 1px solid #dbe5f1;
  padding: 0 0 34px;
  margin: 0 0 34px;
}

.privacy-content section:last-child {
  margin-bottom: 0;
}

.privacy-content h2 {
  margin: 0 0 16px;
  color: #10223f;
  font-size: clamp(21px, 3vw, 27px);
  letter-spacing: 0;
}

.privacy-content p,
.privacy-content li,
.privacy-content address {
  color: #435269;
  font-size: 14px;
  line-height: 1.75;
}

.privacy-content p {
  margin: 0 0 14px;
}

.privacy-content ul {
  display: grid;
  gap: 8px;
  margin: 0 0 16px;
  padding-left: 22px;
}

.privacy-content strong {
  color: #172b49;
}

.privacy-content a {
  color: #075cc9;
  font-weight: 700;
}

.privacy-content address {
  margin: 0 0 16px;
  border-left: 3px solid #0b70d1;
  padding: 4px 0 4px 16px;
  font-style: normal;
}

.privacy-action {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  margin-top: 4px;
  border-radius: 6px;
  padding: 10px 15px;
  color: #fff !important;
  background: #075cc9;
  text-decoration: none;
}

.privacy-footer-copy {
  margin: 0;
  color: #b9cce2;
  font-size: 12px;
}

@media (max-width: 760px) {
  .privacy-layout {
    grid-template-columns: 1fr;
    width: min(100% - 32px, 760px);
  }

  .privacy-nav {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-left: 0;
    border-bottom: 1px solid #dbe5f1;
    padding: 0 0 24px;
  }

  .privacy-nav strong {
    grid-column: 1 / -1;
  }
}
.entry-success-note {
  margin-bottom: 18px;
  border: 1px solid #b9e3c5;
  border-radius: 8px;
  padding: 13px 15px;
  color: #245c32;
  background: #f1fbf4;
  font-size: 14px;
}

.entry-auth-card {
  display: grid;
  gap: 18px;
}

.entry-auth-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.entry-auth-layout-simple {
  grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
}

.entry-auth-layout-three {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(240px, .75fr);
}

.entry-auth-panel {
  display: grid;
  gap: 14px;
  min-width: 0;
  border: 1px solid #e3ebf5;
  border-radius: 12px;
  padding: clamp(18px, 2.5vw, 24px);
  background: #fbfdff;
}

.entry-auth-panel h3 {
  margin: 0;
  color: var(--ink);
  font-size: 18px;
}

.entry-auth-panel label {
  display: grid;
  gap: 8px;
  color: #26344f;
  font-size: 13px;
  font-weight: 650;
}

.entry-auth-panel input,
.entry-auth-panel select {
  box-sizing: border-box;
  width: 100%;
  min-height: 44px;
  border: 1px solid #ccd8e8;
  border-radius: 8px;
  padding: 10px 13px;
  color: var(--ink);
  background: #fff;
  font: inherit;
  font-weight: 450;
}

.entry-auth-panel input:focus,
.entry-auth-panel select:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(0, 107, 255, 0.12);
  outline: none;
}

.entry-google-button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: 10px;
  justify-content: center;
  border: 1px solid #ccd8e8;
  border-radius: 7px;
  padding: 0 18px;
  color: var(--ink);
  background: #fff;
  font-size: 13px;
  font-weight: 750;
  text-decoration: none;
}

.entry-google-button svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.entry-new-entrant-panel {
  align-content: center;
  background: #fff;
}

.entry-new-entrant-panel p,
.entry-guest-panel p {
  margin: 0;
  color: #5b667a;
  font-size: 13px;
  line-height: 1.55;
}

.entry-guest-panel {
  align-content: center;
  border-color: #cfdcf0;
  background: #fff;
}

.entry-auth-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #7a8598;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.entry-auth-divider::before,
.entry-auth-divider::after {
  content: "";
  height: 1px;
  flex: 1;
  background: #dce6f2;
}

.entry-reset-panel {
  border-top: 1px solid var(--line);
  padding-top: 14px;
}

.entry-reset-panel summary {
  width: fit-content;
  cursor: pointer;
  color: var(--blue);
  font-size: 13px;
  font-weight: 750;
}

.entry-reset-panel .entry-auth-layout {
  margin-top: 14px;
}

.entry-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: flex-end;
}

.entry-submit-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: end;
  border-top: 1px solid var(--line);
  padding-top: 14px;
}

.entry-submit-account {
  display: grid;
  grid-template-columns: minmax(220px, 1.2fr) minmax(150px, .8fr) minmax(150px, .8fr);
  gap: 12px;
  align-items: end;
}

.entry-submit-account label {
  display: grid;
  gap: 7px;
  color: #26344f;
  font-size: 12px;
  font-weight: 650;
}

.entry-submit-account input {
  box-sizing: border-box;
  width: 100%;
  min-height: 42px;
  border: 1px solid #ccd8e8;
  border-radius: 8px;
  padding: 9px 12px;
  color: var(--ink);
  background: #fff;
  font: inherit;
  font-weight: 450;
}

.entry-submit-account input:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(0, 107, 255, 0.12);
  outline: none;
}

.entry-submit-account > .entry-password-rules {
  grid-column: 2 / -1;
  margin-top: -5px;
}

.entry-account-option {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid #dce5f1;
  border-radius: 10px;
  background: #f8fafc;
}

.entry-account-option-heading {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 12px;
}

.entry-account-option-heading h4 {
  flex: 0 0 auto;
  margin: 0;
  color: #26344f;
  font-size: 14px;
}

.entry-account-option-heading p {
  margin: 0;
  color: #66748a;
  font-size: 12px;
  line-height: 1.45;
}

.entry-account-option > .entry-password-rules {
  display: block;
  margin-top: 8px;
}

.entry-form-powered {
  display: flex;
  min-height: 38px;
  align-items: center;
  gap: 8px;
  justify-content: flex-start;
  margin-top: 2px;
  color: #66748a;
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
}

.entry-form-powered span {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

.entry-form-powered img {
  display: block;
  width: 116px;
  height: 38px;
  object-fit: contain;
  object-position: left center;
  transform: translateY(9px);
}

.entry-page .primary-button,
.entry-page .outline-button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  border-radius: 7px;
  padding: 0 18px;
  font-weight: 750;
  text-decoration: none;
}

.entry-page .primary-button {
  border: 1px solid var(--blue);
  color: #fff;
  background: var(--blue);
}

.entry-page .outline-button {
  border: 1px solid #ccd8e8;
  color: var(--ink);
  background: #fff;
}

.entry-success strong {
  display: inline-flex;
  margin: 4px 0 12px;
  border-radius: 8px;
  padding: 12px 18px;
  color: var(--blue);
  background: #eef5ff;
  font-size: 30px;
  letter-spacing: .08em;
}

@media (max-width: 760px) {
  .entry-page .site-header {
    align-items: flex-start;
    flex-direction: column;
  }
  .entry-layout {
    width: min(100% - 24px, 1120px);
    padding-top: 18px;
  }
  .entry-modal-body .entry-layout {
    width: 100%;
    padding-top: 0;
  }
  .entry-auth-card {
    gap: 20px;
  }
  .entry-modal-body .entry-auth-card {
    border-right: 0;
    border-left: 0;
    border-radius: 0;
    padding: 22px 16px;
  }
  .entry-auth-card .entry-form-header {
    margin-bottom: 4px;
    padding-bottom: 18px;
  }
  .entry-auth-card .entry-form-header h2 {
    font-size: 27px;
    line-height: 1.15;
  }
  .entry-auth-card .entry-form-header p:not(.eyebrow) {
    margin: 10px 0 0;
    color: #35445d;
    font-size: 16px;
    line-height: 1.55;
  }
  .entry-auth-panel {
    gap: 16px;
    padding: 20px 16px;
    background: #fff;
  }
  .entry-auth-panel h3 {
    font-size: 20px;
    line-height: 1.25;
  }
  .entry-auth-panel label,
  .entry-auth-panel .entry-label-text {
    color: #17233a;
    font-size: 15px;
    line-height: 1.35;
  }
  .entry-auth-panel input,
  .entry-auth-panel select {
    min-height: 50px;
    padding: 12px 14px;
    font-size: 16px;
  }
  .entry-auth-card .entry-field-hint,
  .entry-auth-card .entry-guest-panel p {
    color: #405069;
    font-size: 15px;
    line-height: 1.55;
  }
  .entry-google-button,
  .entry-auth-panel .primary-button,
  .entry-auth-panel .outline-button {
    min-height: 50px;
    font-size: 16px;
  }
  .entry-google-button svg {
    width: 20px;
    height: 20px;
  }
  .entry-auth-divider,
  .entry-reset-panel summary {
    color: #405069;
    font-size: 14px;
  }
  .entry-hero {
    padding: 24px;
  }
  .entry-form .entry-section,
  .entry-indemnity {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 16px;
  }
  .entry-grid.two,
  .entry-grid.three,
  .entry-auth-layout,
  .entry-auth-layout-three,
  .entry-submit-row,
  .entry-submit-account {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .entry-submit-account > .entry-password-rules {
    grid-column: 1 / -1;
  }
  .entry-account-option-heading {
    display: grid;
    gap: 5px;
  }
  .entry-sail-number-group {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
  }
  .entry-personal-number-check {
    padding: 0 10px !important;
    font-size: 12px !important;
  }
  .entry-bank-details dl > div {
    grid-template-columns: 1fr;
    gap: 3px;
  }
  .entry-form-header {
    flex-direction: column;
  }
  .entry-actions {
    justify-content: stretch;
  }
  .entry-actions .primary-button,
  .entry-actions .outline-button {
    width: 100%;
  }
}

@media (max-width: 900px) {
  .entry-form .entry-section,
  .entry-indemnity {
    grid-template-columns: 1fr;
  }
}

.ranking-page {
  min-height: 100vh;
  overflow-x: hidden;
  padding-bottom: 56px;
  background: #f6f9fc;
}

.ranking-hero {
  padding-bottom: 54px;
}

.ranking-board {
  margin: -34px auto 0;
  width: calc(100% - clamp(24px, 5vw, 72px));
  max-width: none;
  padding: 24px;
  border: 1px solid #dfe7f2;
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 18px 44px rgba(13, 35, 70, 0.1);
  overflow: visible;
}

.ranking-board .results-listing-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
}

.ranking-board .results-listing-header h2 {
  margin: 0 0 4px;
  color: #102342;
  font-size: 24px;
  font-weight: 650;
  letter-spacing: 0;
}

.ranking-board .results-listing-header p {
  margin: 0;
  color: #66748a;
  font-size: 13px;
  font-weight: 450;
}

.ranking-tabs {
  display: flex;
  gap: 10px;
  margin: 18px 0 22px;
  overflow-x: auto;
  border-bottom: 1px solid #dfe7f2;
}

.ranking-tabs a {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  gap: 8px;
  padding: 0 14px;
  color: #283450;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}

.ranking-tabs a.active {
  color: #075bff;
  border-color: #075bff;
}

.ranking-tabs strong {
  min-width: 24px;
  padding: 3px 8px;
  color: #5f39d8;
  background: #eee8ff;
  border-radius: 999px;
  font-size: 12px;
  text-align: center;
}

.ranking-table-wrap {
  position: relative;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  border: 1px solid #dfe7f2;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(20, 44, 82, 0.07);
}

.ranking-table {
  width: 100%;
  min-width: 1150px;
  border-collapse: collapse;
  table-layout: fixed;
}

.ranking-col-rank {
  width: 70px;
}

.ranking-col-name {
  width: 240px;
}

.ranking-col-sail {
  width: 110px;
}

.ranking-col-state {
  width: 90px;
}

.ranking-col-points {
  width: 92px;
}

.ranking-col-events {
  width: 90px;
}

.ranking-col-event {
  width: 106px;
}

.ranking-table th,
.ranking-table td {
  height: 54px;
  padding: 12px 14px;
  border-bottom: 1px solid #e8eef6;
  color: #23314f;
  font-size: 13px;
  font-weight: 450;
  line-height: 1.25;
  text-align: center;
  vertical-align: middle;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ranking-table th {
  color: #5d6b82;
  background: #f5f7fb;
  font-size: 12px;
  font-weight: 650;
  text-transform: uppercase;
  white-space: nowrap;
}

.ranking-table th:nth-child(1),
.ranking-table td:nth-child(1) {
  width: 70px;
  color: #6a7891;
}

.ranking-table td:nth-child(2),
.ranking-table th:nth-child(2) {
  width: 240px;
  text-align: left;
}

.ranking-table td:nth-child(2) {
  color: #0d2346;
  font-weight: 600;
}

.ranking-table th:nth-child(3),
.ranking-table td:nth-child(3) {
  width: 110px;
}

.ranking-table th:nth-child(4),
.ranking-table td:nth-child(4) {
  width: 90px;
}

.ranking-table th:nth-child(5),
.ranking-table td:nth-child(5) {
  width: 92px;
}

.ranking-table th:nth-child(6),
.ranking-table td:nth-child(6) {
  width: 90px;
}

.ranking-table th:nth-child(n + 7),
.ranking-table td:nth-child(n + 7) {
  width: 106px;
}

.ranking-table td:nth-child(5) strong {
  color: #075bff;
  font-weight: 750;
}

.ranking-table tbody tr:hover {
  background: #f8fbff;
}

.ranking-event-column {
  position: relative;
  overflow: visible;
  padding: 6px;
  text-overflow: clip;
}

.ranking-event-heading {
  position: relative;
  display: inline-flex;
  justify-content: center;
  outline: 0;
  overflow: visible;
}

.ranking-event-code {
  display: inline-flex;
  min-width: 70px;
  min-height: 30px;
  align-items: center;
  justify-content: center;
  padding: 4px 7px;
  border: 1px solid #cfe0f7;
  border-radius: 999px;
  color: #075bff;
  background: #eef5ff;
  font-size: 11px;
  font-weight: 700;
  text-transform: none;
}

.ranking-event-popover {
  display: none;
}

.ranking-floating-tooltip {
  position: fixed;
  z-index: 1000;
  display: grid;
  width: 280px;
  max-width: calc(100vw - 28px);
  gap: 6px;
  padding: 14px 15px;
  border: 1px solid #dbe6f5;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 18px 42px rgba(15, 36, 68, 0.2);
  color: #5f6d82;
  font-size: 12px;
  font-weight: 450;
  line-height: 1.38;
  text-align: left;
  white-space: normal;
  overflow-wrap: anywhere;
  opacity: 0;
  pointer-events: none;
  transform: translateY(6px);
  transition: opacity 0.14s ease, transform 0.14s ease;
}

.ranking-floating-tooltip.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.ranking-floating-tooltip strong {
  color: #10294c;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.25;
}

.ranking-floating-tooltip span {
  display: block;
  color: #66748a;
  font-size: 12px;
  font-weight: 450;
}

.ranking-empty-state {
  padding: 28px;
  color: #69748e;
  text-align: center;
}

.public-live-results {
  display: grid;
  gap: 18px;
}

.public-live-results-meta {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: #66748a;
  font-size: 13px;
  font-weight: 450;
}

.public-results-actions {
  justify-content: flex-end;
}

.public-results-metrics {
  display: grid;
  grid-template-columns: repeat(5, minmax(120px, 1fr));
  gap: 10px;
}

.public-results-metrics[hidden] {
  display: none;
}

.public-results-metrics span {
  display: grid;
  gap: 4px;
  min-height: 70px;
  align-content: center;
  padding: 12px 14px;
  border: 1px solid #e2e8f2;
  border-radius: 10px;
  color: #66748a;
  background: linear-gradient(180deg, #ffffff, #f8fbff);
  font-size: 12px;
  font-weight: 550;
}

.public-results-metrics strong {
  overflow: hidden;
  color: #102342;
  font-size: 22px;
  font-weight: 650;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.public-results-fleet {
  overflow: hidden;
  border: 1px solid #dfe7f2;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(21, 35, 58, 0.045);
}

.public-results-fleet-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 18px;
  border-bottom: 1px solid #e8eef6;
  background: linear-gradient(180deg, #fbfcff, #f6f8fc);
}

.public-results-fleet-header h3 {
  margin: 0;
  color: #102342;
  font-size: 16px;
  font-weight: 650;
}

.public-results-fleet-header span {
  color: #66748a;
  font-size: 12px;
  font-weight: 450;
}

.public-results-fleet.fleet-gold .public-results-fleet-header,
.public-results-fleet.fleet-overall .public-results-fleet-header {
  border-top: 3px solid #f0c63b;
}

.public-results-fleet.fleet-silver .public-results-fleet-header {
  border-top: 3px solid #b9c2d0;
}

.public-results-fleet.fleet-bronze .public-results-fleet-header,
.public-results-fleet.fleet-copper .public-results-fleet-header {
  border-top: 3px solid #c07a3f;
}

.public-results-fleet.fleet-alloy .public-results-fleet-header {
  border-top: 3px solid #9ca7b7;
}

.public-results-table-scroll {
  width: 100%;
  overflow-x: auto;
  scrollbar-color: #c7d2e4 #f4f7fb;
}

.public-live-results-table {
  width: max-content;
  min-width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.public-live-results-table th,
.public-live-results-table td {
  min-width: 54px;
  padding: 10px 9px;
  border-right: 1px solid #eef2f7;
  border-bottom: 1px solid #eef2f7;
  color: #24314a;
  font-size: 12.5px;
  font-weight: 450;
  line-height: 1.25;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
}

.public-live-results-table th {
  height: 42px;
  color: #59667a;
  background: #f2f5fa;
  font-size: 11px;
  font-weight: 650;
  text-transform: uppercase;
}

.public-live-results-table th:nth-child(1),
.public-live-results-table td:nth-child(1) {
  width: 42px;
  min-width: 42px;
}

.public-live-results-table th:nth-child(2),
.public-live-results-table td:nth-child(2) {
  width: 58px;
  min-width: 58px;
}

.public-live-results-table th:nth-child(3),
.public-live-results-table td:nth-child(3) {
  width: 250px;
  min-width: 250px;
  text-align: left;
}

.public-live-results-table th:nth-child(4),
.public-live-results-table td:nth-child(4) {
  width: 160px;
  min-width: 160px;
  text-align: left;
}

.public-live-results-table th:nth-child(5),
.public-live-results-table td:nth-child(5),
.public-live-results-table th:nth-child(6),
.public-live-results-table td:nth-child(6) {
  width: 62px;
  min-width: 62px;
}

.public-live-results-table tbody tr:hover {
  background: #f7fbff;
}

.public-live-results-table small,
.public-results-name small,
.public-results-sail small {
  display: block;
  margin-top: 3px;
  color: #66748a;
  font-size: 11px;
  font-weight: 450;
}

.public-results-name strong,
.public-results-sail strong {
  color: #152440;
  font-weight: 600;
}

.public-results-move span,
.public-results-move small {
  display: block;
}

.public-results-move span {
  font-size: 14px;
  line-height: 1;
}

.public-results-move small {
  margin-top: 2px;
  font-size: 10px;
  font-weight: 650;
}

.public-live-results-table .move-up {
  color: #16834a;
}

.public-live-results-table .move-down {
  color: #c43636;
}

.public-live-results-table .move-same {
  color: #9aa3b2;
}

.public-live-results-table .score-first {
  color: #b78300;
  font-weight: 750;
}

.public-live-results-table td > span {
  display: block;
}

@media (max-width: 760px) {
  .ranking-board {
    width: calc(100vw - 24px);
    max-width: calc(100vw - 24px);
    padding: 14px;
    border-radius: 8px;
  }

  .ranking-board .results-listing-header h2 {
    font-size: 20px;
  }

  .ranking-tabs {
    margin-top: 14px;
  }

  .ranking-floating-tooltip {
    width: 210px;
  }

  .public-results-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--surface);
  color: var(--ink);
  font-family: var(--brand-font);
  font-size: 15px;
  line-height: 1.55;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select {
  font: inherit;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: grid;
  grid-template-columns: minmax(250px, 1fr) auto minmax(220px, 1fr);
  align-items: center;
  gap: 22px;
  padding: 12px clamp(20px, 5vw, 72px);
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid rgba(219, 229, 242, 0.92);
  backdrop-filter: blur(14px);
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
}

.brand-logo {
  display: block;
  width: min(254px, 48vw);
  height: auto;
}

.main-nav,
.header-actions,
.hero-actions,
.footer-links {
  display: flex;
  align-items: center;
  gap: 12px;
}

.main-nav a {
  padding: 8px 6px;
  color: var(--navy);
  font-family: var(--brand-font);
  font-size: 14px;
  font-weight: 550;
}

.main-nav a:hover {
  color: var(--blue);
}

.header-actions {
  justify-self: end;
}

.primary-button,
.outline-button,
.glass-button,
.icon-button {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 5px;
  cursor: pointer;
  font-family: var(--brand-font);
  font-size: 14px;
  font-weight: 600;
}

.primary-button {
  padding: 0 18px;
  color: var(--white);
  background: var(--blue);
  box-shadow: 0 10px 24px rgba(0, 107, 255, 0.18);
}

.outline-button,
.glass-button {
  padding: 0 18px;
  color: var(--blue);
  background: var(--white);
  border-color: #b9d0f5;
}

.glass-button {
  color: var(--white);
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.68);
  backdrop-filter: blur(10px);
}

.icon-button {
  width: 42px;
  padding: 0;
  background: transparent;
  color: var(--navy);
}

.icon-button svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
}

.large {
  min-height: 50px;
  padding-inline: 22px;
}

.hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(360px, 0.68fr);
  min-height: 620px;
  align-items: center;
  gap: clamp(26px, 4vw, 64px);
  padding: clamp(56px, 7vw, 92px) clamp(20px, 5vw, 72px);
  overflow: hidden;
  background-image: url("images/hero.jpg");
  background-size: cover;
  background-position: center;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(6, 23, 68, 0.86) 0%, rgba(6, 23, 68, 0.66) 40%, rgba(6, 23, 68, 0.24) 74%, rgba(6, 23, 68, 0.12) 100%),
    linear-gradient(0deg, rgba(6, 23, 68, 0.42), transparent 46%);
}

.hero-content,
.hero-panel {
  position: relative;
  z-index: 1;
}

.eyebrow {
  margin: 0 0 10px;
  color: var(--navy);
  font-family: var(--brand-font);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: var(--label-tracking);
  text-transform: uppercase;
}

.hero .eyebrow,
.platform-section .eyebrow {
  color: rgba(255, 255, 255, 0.82);
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1 {
  max-width: 760px;
  margin-bottom: 20px;
  color: var(--white);
  font-family: var(--brand-font);
  font-size: clamp(42px, 5.5vw, 70px);
  font-weight: 500;
  line-height: 1.04;
  letter-spacing: 0;
}

h2 {
  margin-bottom: 12px;
  color: var(--navy);
  font-family: var(--brand-font);
  font-size: clamp(25px, 3vw, 36px);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: 0;
}

h3 {
  margin-bottom: 4px;
  color: var(--navy);
  font-family: var(--brand-font);
  font-weight: 600;
}

.hero-summary {
  max-width: 660px;
  margin-bottom: 30px;
  color: rgba(255, 255, 255, 0.90);
  font-size: 18px;
  line-height: 1.62;
}

.hero-panel {
  align-self: end;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.46);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: var(--shadow);
  backdrop-filter: blur(16px);
}

.panel-header {
  display: flex;
  justify-content: space-between;
  padding: 17px 20px;
  color: var(--navy);
  border-bottom: 1px solid var(--line);
  font-family: var(--brand-font);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: var(--label-tracking);
  text-transform: uppercase;
}

.panel-header strong {
  color: var(--blue);
  font-weight: 600;
}

.mini-filters {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  padding: 14px;
  background: #f6f9fd;
}

.mini-filters span {
  min-height: 38px;
  padding: 10px 12px;
  color: var(--muted);
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--white);
  font-family: var(--brand-font);
  font-size: 13px;
  font-weight: 500;
}

.panel-list {
  display: grid;
}

.panel-list article {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 4px 16px;
  padding: 16px 20px;
  border-top: 1px solid var(--line);
}

.panel-list strong {
  color: var(--navy);
  font-family: var(--brand-font);
  font-weight: 600;
  letter-spacing: 0.01em;
}

.panel-list span {
  color: var(--muted);
  font-size: 13px;
}

.panel-list button {
  grid-row: 1 / span 2;
  min-width: 64px;
  border: 0;
  border-radius: 5px;
  color: var(--white);
  background: var(--blue);
  font-weight: 600;
}

.feature-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  padding: 36px clamp(20px, 5vw, 72px);
  background: #f4f8fe;
}

.feature-card {
  position: relative;
  display: grid;
  min-height: 214px;
  gap: 20px;
  align-items: center;
  overflow: hidden;
  padding: 30px;
  border: 1px solid rgba(202, 216, 236, 0.92);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 14px 34px rgba(6, 23, 68, 0.07);
}

.feature-card p:not(.eyebrow) {
  color: var(--muted);
  font-size: 15px;
  line-height: 1.6;
}

.feature-card .primary-button {
  justify-self: start;
}

.event-directory,
.results-section,
.platform-section,
.club-strip {
  padding-inline: clamp(20px, 5vw, 72px);
}

.event-directory {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 34px;
  padding-top: 54px;
  padding-bottom: 68px;
  background: #fbfcff;
}

.section-heading,
.section-title-row {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
}

.text-link,
.section-title-row a {
  color: var(--blue);
  font-weight: 600;
}

select,
input {
  width: 100%;
  min-height: 46px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 5px;
  outline: 0;
  background: #fbfdff;
  color: var(--ink);
}

.event-tabs {
  display: flex;
  align-items: center;
  gap: 26px;
  margin-bottom: 22px;
  border-bottom: 1px solid var(--line);
}

.country-choice-strip {
  display: flex;
  min-height: 34px;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 5px clamp(16px, 4vw, 54px);
  border-bottom: 1px solid #d6e2f3;
  background: #f4f7fc;
  color: #344866;
  transition: opacity 180ms ease, min-height 180ms ease, padding 180ms ease;
}

.country-choice-strip p {
  margin: 0;
  font-size: 12px;
  line-height: 1.35;
}

.country-choice-strip > div {
  display: flex;
  align-items: center;
  gap: 7px;
}

.country-choice-strip button {
  min-height: 25px;
  padding: 0 9px;
  border: 1px solid #b7c9e5;
  border-radius: 4px;
  background: #fff;
  color: var(--blue);
  font: inherit;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
}

.country-choice-strip button:hover {
  border-color: var(--blue);
  background: #edf3ff;
}

.country-choice-strip [data-country-countdown] {
  min-width: 25px;
  color: var(--muted);
  font-size: 11px;
  text-align: right;
}

.country-choice-strip.is-closing {
  pointer-events: none;
  opacity: 0.45;
}

.event-location-notice {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin-bottom: 18px;
  padding: 12px 14px;
  border: 1px solid #d9e6fb;
  border-radius: 7px;
  background: #f7faff;
  color: #263b5e;
}

.event-location-notice-icon {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: #e9f1ff;
  color: var(--blue);
}

.event-location-notice-icon svg {
  width: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}

.event-location-notice p {
  margin: 0;
  font-size: 13px;
  line-height: 1.45;
}

.event-location-notice button {
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid #a9c4f5;
  border-radius: 5px;
  background: #fff;
  color: var(--blue);
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.event-location-notice button:hover {
  border-color: var(--blue);
  background: #eef4ff;
}

.event-location-notice > a {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  border: 1px solid #a9c4f5;
  border-radius: 5px;
  background: #fff;
  color: var(--blue);
  font-size: 12px;
  font-weight: 600;
}

.event-location-notice > a:hover {
  border-color: var(--blue);
  background: #eef4ff;
}

.event-location-notice.showing-all {
  border-color: var(--line);
  background: #fbfcff;
}

.home-country-notice {
  max-width: calc(100% - clamp(48px, 10vw, 184px));
  margin: 20px auto 42px;
}

.home-country-notice + .home-dashboard {
  margin-top: 0;
}

.home-results-empty,
.home-events-empty {
  margin: 8px 0 0;
  padding: 18px 4px;
  color: var(--muted);
  font-size: 13px;
}

.home-events-empty {
  min-height: 150px;
  display: grid;
  place-items: center;
  text-align: center;
}

@media (max-width: 640px) {
  .country-choice-strip {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
    padding-block: 7px;
  }

  .country-choice-strip > div {
    width: 100%;
  }

  .event-location-notice {
    grid-template-columns: 34px minmax(0, 1fr);
  }

  .event-location-notice button {
    grid-column: 1 / -1;
    width: 100%;
  }

  .event-location-notice > a {
    grid-column: 1 / -1;
    width: 100%;
  }

  .home-country-notice {
    max-width: calc(100% - 32px);
  }
}

.event-tabs button {
  min-height: 44px;
  padding: 0;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--navy);
  font-family: var(--brand-font);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.event-tabs button.active {
  color: var(--blue);
  border-color: var(--blue);
}

.event-tabs span {
  margin-left: auto;
  color: var(--muted);
  font-size: 12px;
}

.public-class-filters {
  display: flex;
  gap: 7px;
  margin: -8px 0 18px;
  overflow-x: auto;
  scrollbar-width: none;
}

.public-class-filters::-webkit-scrollbar { display: none; }

.public-class-filters button,
.public-filter-buttons button {
  min-width: 48px;
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid #c8d5e5;
  border-radius: 6px;
  color: #34455e;
  background: #fff;
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}

.public-class-filters button.is-selected,
.public-filter-buttons button.is-selected {
  color: #fff;
  border-color: var(--blue);
  background: var(--blue);
}

.public-class-filters .reset-filter-chip { color: #7b2630; background: #fff5f4; border-color: #efc8c5; }

.public-filter-group { margin: 14px 0; padding: 0; border: 0; }
.public-filter-group legend { margin-bottom: 8px; color: #c2cee0; font-family: var(--brand-font); font-size: 12px; letter-spacing: .04em; }
.public-filter-buttons { display: flex; flex-wrap: wrap; gap: 7px; }
.public-filter-buttons button { flex: 1 1 calc(50% - 7px); color: #dfe8f2; border-color: #2d4167; background: #0d234f; }

.results-listing-board {
  width: min(1180px, calc(100% - 40px));
  margin: 34px auto 70px;
  padding: 24px;
  border: 1px solid #dfe7f1;
  border-radius: 8px;
  background: #fff;
}

.results-listing-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); }
.results-listing-header h2 { margin: 0 0 4px; color: var(--navy); font-size: 22px; }
.results-listing-header p { margin: 0; color: var(--muted); font-size: 12px; }
.results-class-filters { margin: 16px 0; }

.results-filter-panel { margin: 0 0 18px; padding: 18px; border: 1px solid #dce5f0; border-radius: 8px; background: #f7faff; }
.results-filter-panel[hidden] { display: none; }
.results-filter-selects { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.results-filter-selects label { display: grid; gap: 6px; color: #526078; font-size: 12px; font-weight: 700; }
.results-filter-selects select { min-height: 40px; background: #fff; }
.results-filter-group { margin: 16px 0 0; padding: 0; border: 0; }
.results-filter-group legend { margin-bottom: 8px; color: #526078; font-size: 12px; font-weight: 700; }
.light-filter-buttons { justify-content: flex-start; }
.light-filter-buttons button { flex: 0 1 auto; color: #34455e; border-color: #c8d5e5; background: #fff; }
.light-filter-buttons button.is-selected { color: #fff; border-color: var(--blue); background: var(--blue); }
.results-reset-button { width: auto; margin-top: 16px; padding: 0 12px; color: #7b2630; }

.public-results-list { border-top: 1px solid var(--line); }
.public-results-list > article { display: grid; grid-template-columns: 82px minmax(0,1fr) 120px 90px 110px; gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line); }
.public-results-list > article[hidden] { display: none !important; }
.public-results-list > article > img { width: 82px; height: 62px; object-fit: cover; border-radius: 6px; }
.public-results-list h3 { margin: 0 0 5px; color: var(--navy); font-size: 15px; }
.public-results-list p,.public-results-list small { margin: 0; color: var(--muted); font-size: 12px; }
.public-results-list > article > span { color: #40516a; font-size: 12px; font-weight: 700; }
.public-results-list > article > a { display: inline-flex; min-height: 38px; align-items: center; justify-content: center; border: 1px solid var(--blue); border-radius: 6px; color: #fff; background: var(--blue); font-size: 12px; font-weight: 700; }

.public-association-results-layout { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 28px; align-items: start; }
.association-results-main { min-width: 0; }
.association-results-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; background: var(--white); }
.association-results-table { width: 100%; border-collapse: collapse; color: #17243b; }
.association-results-table th { padding: 12px 13px; color: #fff; background: var(--navy); font-size: 11px; font-weight: 800; text-align: left; text-transform: uppercase; }
.association-results-table td { padding: 13px; border-bottom: 1px solid var(--line); font-size: 12px; vertical-align: middle; }
.association-results-table tbody tr:last-child td { border-bottom: 0; }
.association-results-table tbody tr:hover { background: var(--surface); }
.association-results-table tr[hidden] { display: none !important; }
.association-result-title { color: #14233d; font-weight: 800; }
.association-result-details { display: inline-flex; align-items: center; gap: 6px; color: var(--blue); font-weight: 800; white-space: nowrap; }
.association-result-details span { font-size: 16px; }
.association-results-sidebar { display: grid; gap: 16px; }
.association-results-sidebar .results-filter-panel,.association-results-help { margin: 0; padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); box-shadow: 0 8px 24px rgba(6,23,68,.06); }
.association-results-sidebar h2 { margin: 0 0 16px; color: #17243b; font-size: 17px; }
.association-results-sidebar h2::after { display: block; width: 42px; height: 3px; margin-top: 10px; background: var(--blue); content: ""; }
.association-results-help p { margin: 0; color: #647083; font-size: 12px; line-height: 1.55; }
.association-results-sidebar .results-filter-selects { grid-template-columns: 1fr; }
.association-results-sidebar .results-filter-group { margin-top: 16px; }
.association-results-sidebar .light-filter-buttons button { flex: 1 1 calc(50% - 7px); }
.association-results-sidebar .light-filter-buttons button.is-selected { border-color: var(--blue); background: var(--blue); }
.association-results-class-filters button.is-selected { border-color: var(--blue); background: var(--blue); }

@media (max-width: 820px) {
  .public-association-results-layout { grid-template-columns: 1fr; }
  .association-results-sidebar { grid-template-columns: 1fr 1fr; }
  .results-filter-selects { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .public-results-list > article { grid-template-columns: 70px minmax(0,1fr) auto; }
  .public-results-list > article > img { width: 70px; height: 56px; }
  .public-results-list > article > span { display: none; }
}

@media (max-width: 580px) {
  .results-listing-board { width: calc(100% - 20px); margin-top: 14px; padding: 14px; }
  .results-listing-header { align-items: stretch; flex-direction: column; padding-bottom: 14px; }
  .results-search-row { padding: 0; gap: 8px; }
  .results-search-row input { flex: 1; min-width: 0; }
  .results-filter-selects { grid-template-columns: 1fr; }
  .association-results-sidebar { grid-template-columns: 1fr; }
  .association-results-table { min-width: 720px; }
  .public-results-list > article { grid-template-columns: 58px minmax(0,1fr); gap: 10px; }
  .public-results-list > article > img { width: 58px; height: 48px; }
  .public-results-list > article > a { grid-column: 1 / -1; }
}

/* Association layouts adapted to the mySailingResults website theme. */
.event-directory.public-association-events {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  grid-template-columns: minmax(0,1fr) 300px;
  gap: 28px;
  padding: 38px 0 70px;
  background: transparent;
}

.public-association-events .event-tabs { margin-bottom: 18px; }
.public-association-events .event-tabs button.active { color: var(--blue); border-color: var(--blue); }
.public-association-events .event-list-detailed { display: grid; gap: 10px; border-top: 0; }
.public-association-events .event-detail-card { grid-template-columns: 64px 112px minmax(0,1fr) 150px; gap: 14px; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); }
.public-association-events .event-date { border-right: 1px solid var(--line); }
.public-association-events .event-thumb { width: 112px; height: 76px; border-radius: 6px; }
.public-association-events .event-copy h2 { font-size: 16px; }
.public-association-events .event-side { align-self: stretch; }
.public-association-events .event-actions a { min-height: 36px; border-radius: 6px; }

.association-events-sidebar .find-panel {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  background: var(--white);
  box-shadow: 0 8px 24px rgba(6,23,68,.06);
}
.association-events-sidebar .find-panel h2 { color: var(--navy); font-size: 17px; letter-spacing: 0; text-transform: none; }
.association-events-sidebar .find-panel h2::after { display: block; width: 42px; height: 3px; margin-top: 10px; background: var(--blue); content: ""; }
.association-events-sidebar .find-panel label,.association-events-sidebar .public-filter-group legend { color: #526078; font-family: var(--brand-font); font-weight: 700; letter-spacing: 0; }
.association-events-sidebar .find-panel input,.association-events-sidebar .find-panel select { color: var(--ink); border-color: var(--line); background: var(--surface); }
.association-events-sidebar .public-filter-buttons button { color: #34455e; border-color: #c8d5e5; background: #fff; }
.association-events-sidebar .public-filter-buttons button.is-selected { color: #fff; border-color: var(--blue); background: var(--blue); }
.association-events-sidebar .reset-button { color: #7b2630; }

.ranking-board.public-association-rankings {
  width: min(1180px, calc(100% - 40px));
  margin: 34px auto 0;
  border-radius: 8px;
  box-shadow: 0 8px 26px rgba(6,23,68,.07);
}
.public-association-rankings .results-listing-header h2::after { display: block; width: 42px; height: 3px; margin-top: 10px; background: var(--blue); content: ""; }
.public-association-rankings .ranking-tabs { gap: 7px; border-bottom: 0; }
.public-association-rankings .ranking-tabs a { min-height: 38px; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.public-association-rankings .ranking-tabs a.active { color: #fff; border-color: var(--blue); background: var(--blue); }
.public-association-rankings .ranking-tabs strong { color: var(--blue); background: #eaf3ff; border-radius: 6px; }
.public-association-rankings .ranking-tabs a.active strong { color: var(--navy); background: #fff; }
.public-association-rankings .ranking-table-wrap { box-shadow: none; }
.public-association-rankings .ranking-table th { color: #fff; background: var(--navy); }
.public-association-rankings .ranking-table th,.public-association-rankings .ranking-table td { height: 48px; padding-top: 10px; padding-bottom: 10px; }

.results-listing-board.public-results-events-style {
  width: min(1180px, calc(100% - 40px));
  margin-top: 34px;
  padding: 0;
  border: 0;
  background: transparent;
}
.public-results-events-style .results-listing-header { padding: 0 0 18px; }
.public-results-events-style .public-association-results-layout { grid-template-columns: minmax(0,1fr) 300px; gap: 28px; }
.public-results-events-style .public-results-event-list { display: grid; gap: 10px; border-top: 0; }
.public-results-events-style .event-detail-card { grid-template-columns: 64px 112px minmax(0,1fr) 150px; gap: 14px; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); }
.public-results-events-style .event-date { border-right: 1px solid var(--line); }
.public-results-events-style .event-thumb { width: 112px; height: 76px; border-radius: 6px; }
.public-results-events-style .event-copy h2 { font-size: 16px; }
.public-results-events-style .event-copy .event-location { margin-bottom: 3px; }
.public-results-events-style .event-copy .event-range { margin: 0 0 7px; }
.public-results-events-style .event-side { align-self: stretch; }
.public-results-events-style .event-actions a { min-height: 36px; border-radius: 6px; }
.public-results-events-style .event-actions .results-button { color: #fff; border-color: var(--blue); background: var(--blue); }
.public-results-events-style .event-actions .details-button { color: var(--navy); border-color: var(--line); background: var(--surface); }
.public-results-events-style .association-results-sidebar .results-filter-panel,.public-results-events-style .association-results-help { border-color: var(--line); border-radius: 8px; }

@media (max-width: 960px) {
  .event-directory.public-association-events { grid-template-columns: 1fr; }
  .association-events-sidebar { grid-row: 1; }
  .public-results-events-style .public-association-results-layout { grid-template-columns: 1fr; }
  .public-results-events-style .association-results-sidebar { grid-row: 1; }
}

@media (max-width: 720px) {
  .event-directory.public-association-events,.ranking-board.public-association-rankings { width: calc(100% - 20px); }
  .event-directory.public-association-events { padding-top: 18px; }
  .public-association-events .event-detail-card { grid-template-columns: 58px minmax(0,1fr); }
  .public-association-events .event-thumb { display: none; }
  .public-association-events .event-side { grid-column: 1 / -1; }
  .public-association-events .event-actions { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .ranking-board.public-association-rankings { margin-top: 16px; padding: 16px; }
  .results-listing-board.public-results-events-style { width: calc(100% - 20px); margin-top: 16px; }
  .public-results-events-style .event-detail-card { grid-template-columns: 58px minmax(0,1fr); }
  .public-results-events-style .event-thumb { display: none; }
  .public-results-events-style .event-side { grid-column: 1 / -1; }
  .public-results-events-style .event-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

.event-list-detailed {
  border-top: 1px solid var(--line);
}

.event-detail-card {
  display: grid;
  grid-template-columns: 70px 150px 1fr 190px;
  gap: 16px;
  align-items: center;
  padding: 15px 0;
  border-bottom: 1px solid var(--line);
}

.event-detail-card[hidden] {
  display: none !important;
}

.empty-events {
  margin: 0;
  padding: 22px 0;
  color: var(--muted);
  border-bottom: 1px solid var(--line);
  font-family: var(--brand-font);
  font-size: 14px;
}

.empty-events[hidden] {
  display: none !important;
}

.load-more-button {
  width: 100%;
  min-height: 44px;
  margin-top: 18px;
  border: 1px solid #b9d0f5;
  border-radius: 5px;
  background: var(--white);
  color: var(--blue);
  cursor: pointer;
  font-family: var(--brand-font);
  font-weight: 600;
}

.load-more-button:hover {
  border-color: var(--blue);
}

.load-more-button:disabled {
  cursor: wait;
  opacity: 0.68;
}

.load-more-button[hidden] {
  display: none !important;
}

.event-pagination {
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 20px;
}

.event-pagination[hidden] {
  display: none !important;
}

.event-pagination button {
  min-width: 78px;
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: #f8fbff;
  color: var(--navy);
  cursor: pointer;
  font-family: var(--brand-font);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: var(--label-tracking);
  text-transform: uppercase;
}

.event-pagination button:not(:disabled):hover {
  color: var(--blue);
  border-color: #b9d0f5;
  background: var(--white);
}

.event-pagination button:disabled {
  cursor: default;
  opacity: 0.42;
}

.event-pagination span {
  display: inline-flex;
  min-width: 62px;
  min-height: 34px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--white);
  color: var(--navy);
  font-family: var(--brand-font);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.event-date {
  display: grid;
  place-items: center;
  color: var(--blue);
  text-align: center;
  text-transform: uppercase;
}

.event-date strong {
  font-size: 30px;
  font-weight: 500;
  line-height: 0.9;
}

.event-date span {
  margin-top: 4px;
  color: var(--navy);
  font-size: 13px;
  font-weight: 600;
}

.event-date small {
  color: var(--muted);
  font-size: 11px;
}

.event-thumb {
  width: 150px;
  height: 84px;
  object-fit: contain;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--white);
}

.event-copy h2 {
  margin: 0 0 6px;
  font-size: 18px;
  font-weight: 550;
  letter-spacing: 0.01em;
}

.event-copy p {
  margin: 0 0 6px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.35;
}

.event-location {
  display: flex;
  align-items: center;
  gap: 5px;
  color: var(--ink) !important;
  font-weight: 600;
}

.event-range {
  color: var(--blue) !important;
  font-family: var(--brand-font);
  font-weight: 600;
}

.event-location svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

.event-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 9px;
}

.event-tags span,
.source-pill {
  display: inline-flex;
  min-height: 22px;
  align-items: center;
  gap: 4px;
  padding: 0 8px;
  border-radius: 4px;
  color: #1559d0;
  background: #eef5ff;
  font-family: var(--brand-font);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.event-tags .tag-country {
  color: var(--navy);
  background: #f8fbff;
  border: 1px solid var(--line);
}

.event-tags .tag-region {
  color: #4b5870;
  background: #f4f7fb;
}

.event-tags .tag-class {
  color: #19784c;
  background: #edf8f2;
  border: 1px solid #b9e0c7;
}

.tag-flag {
  font-size: 13px;
  line-height: 1;
}

.event-side {
  display: grid;
  grid-template-columns: 72px minmax(96px, 1fr);
  gap: 10px;
  align-content: center;
  align-items: center;
}

.event-side.no-club-logo .event-actions {
  grid-column: 2;
}

.club-logo-card {
  display: grid;
  width: 72px;
  min-height: 64px;
  place-items: center;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--white);
}

.club-logo {
  display: block;
  max-width: 54px;
  max-height: 48px;
  object-fit: contain;
}

.event-actions {
  display: grid;
  gap: 8px;
}

.event-actions a {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  border: 1px solid #b9d0f5;
  border-radius: 5px;
  color: var(--blue);
  background: var(--white);
  font-family: var(--brand-font);
  font-size: 12px;
  font-weight: 600;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.event-actions .details-button {
  background: #f8fbff;
}

.event-actions .results-button {
  color: var(--navy);
  background: #f8fbff;
}

.event-actions .enter-button {
  color: var(--white);
  background: var(--blue);
  border-color: var(--blue);
}

.event-sidebar {
  display: grid;
  align-content: start;
  gap: 18px;
}

.find-panel,
.submit-panel,
.calendar-panel {
  padding: 22px;
  border-radius: 6px;
  background: var(--navy);
  color: var(--white);
}

.find-panel h2,
.submit-panel h2,
.calendar-panel h2 {
  margin-bottom: 14px;
  color: var(--white);
  font-family: var(--brand-font);
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.find-panel label {
  display: grid;
  gap: 8px;
  margin-bottom: 12px;
  color: #c2cee0;
  font-family: var(--brand-font);
  font-size: 12px;
  letter-spacing: 0.04em;
}

.find-panel input,
.find-panel select {
  min-height: 42px;
  color: #dfe8f2;
  border-color: #2d4167;
  background: #0d234f;
}

.full-width {
  width: 100%;
}

.reset-button {
  width: 100%;
  min-height: 36px;
  margin-top: 8px;
  border: 0;
  color: #c7d2dc;
  background: transparent;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.6px;
  text-transform: uppercase;
}

.submit-panel {
  background: #eef5ff;
  color: var(--navy);
  border: 1px solid #c7d9f6;
}

.submit-panel h2,
.submit-panel p {
  color: var(--navy);
}

.submit-panel button,
.calendar-panel button {
  min-height: 42px;
  padding: 0 14px;
  border: 0;
  border-radius: 4px;
  background: var(--blue);
  color: var(--navy);
  font-weight: 600;
}

.submit-panel button {
  color: var(--white);
}

.calendar-panel button {
  color: var(--white);
  background: transparent;
  border: 1px solid #60749b;
}

.results-section {
  padding-top: 58px;
  padding-bottom: 68px;
  background: var(--white);
}

.section-title-row h2 {
  margin-bottom: 0;
  font-size: 28px;
}

.results-list {
  display: grid;
  margin-top: 18px;
  border-top: 1px solid var(--line);
}

.result-row {
  display: grid;
  grid-template-columns: 58px 1fr 86px 78px 86px;
  gap: 14px;
  align-items: center;
  padding: 15px 0;
  border-bottom: 1px solid var(--line);
}

.class-badge {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--navy);
  background: #f8fbff;
  font-weight: 600;
}

.result-row h3 {
  margin: 0 0 3px;
  font-size: 16px;
  font-weight: 550;
  letter-spacing: 0.01em;
}

.result-row p,
.result-row > span:not(.class-badge):not(.source-pill) {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.source-pill {
  justify-content: center;
  color: #19784c;
  border: 1px solid #b9e0c7;
}

.source-pill.html,
.source-pill.api {
  color: #1559d0;
  background: #eef5ff;
  border-color: #bdd4ff;
}

.source-pill.api {
  color: #5843c7;
  background: #f2efff;
  border-color: #d2caff;
}

.view-button {
  min-height: 34px;
  border: 1px solid #b9d0f5;
  border-radius: 5px;
  color: var(--blue);
  background: var(--white);
  font-weight: 600;
}

.platform-section {
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(0, 1fr);
  gap: 44px;
  align-items: center;
  padding-top: 72px;
  padding-bottom: 72px;
  background: var(--navy);
  color: #d8e7fb;
}

.platform-section h2 {
  color: var(--white);
}

.platform-section p:not(.eyebrow) {
  color: #b9c9e4;
  font-size: 16px;
  line-height: 1.6;
}

.ops-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.ops-grid article {
  display: grid;
  gap: 8px;
  min-height: 134px;
  padding: 20px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.07);
}

.ops-grid strong {
  color: var(--white);
  font-family: var(--brand-font);
  font-size: 18px;
  font-weight: 600;
}

.ops-grid span {
  color: #b9c9e4;
  line-height: 1.45;
}

.club-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding-top: 50px;
  padding-bottom: 50px;
  background: #f4f8fe;
}

.club-strip h2 {
  max-width: 850px;
}

footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 30px clamp(20px, 5vw, 72px);
  color: #d8e7fb;
  background: var(--navy);
}

.footer-logo {
  width: min(260px, 70vw);
  height: auto;
  border-radius: 4px;
}

.footer-links a {
  color: #d8e7fb;
  font-family: var(--brand-font);
  font-weight: 500;
}

.detail-page {
  background: #fbfcff;
}

.detail-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 34px;
  align-items: center;
  padding: 68px clamp(20px, 5vw, 72px);
  color: var(--white);
  background: var(--navy);
}

.detail-hero.compact {
  padding-top: 46px;
  padding-bottom: 46px;
}

.detail-hero h1 {
  max-width: 980px;
  margin-bottom: 14px;
  font-size: clamp(34px, 4vw, 56px);
}

.detail-hero p:not(.eyebrow) {
  margin-bottom: 16px;
  color: #d8e7fb;
  font-size: 17px;
}

.detail-logo-stack {
  display: grid;
  grid-template-columns: repeat(2, 92px);
  gap: 12px;
  align-items: center;
}

.detail-class-logo,
.detail-club-logo {
  width: 92px;
  height: 92px;
  object-fit: contain;
  padding: 12px;
  border-radius: 6px;
  background: var(--white);
}

.detail-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 34px;
  padding: 46px clamp(20px, 5vw, 72px) 72px;
}

.detail-content.single-column {
  grid-template-columns: minmax(0, 760px);
}

.detail-main,
.detail-content aside {
  min-width: 0;
}

.detail-main {
  display: grid;
  gap: 22px;
}

.detail-content p {
  color: var(--muted);
  font-size: 16px;
  line-height: 1.68;
}

.detail-section {
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--white);
}

.detail-section h2 {
  margin-bottom: 12px;
  font-size: 24px;
}

.detail-section .eyebrow {
  margin-bottom: 8px;
}

.muted-section {
  background: #f8fbff;
}

.event-info-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(28px, 5vw, 80px);
  padding-bottom: 10px;
}

.event-info-block h2 {
  margin: 0 0 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
  color: var(--navy);
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.event-info-line {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  color: var(--navy);
  font-size: 16px;
}

.event-info-line strong {
  font-weight: 700;
}

.event-info-line a {
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.event-info-block p {
  margin-top: 14px;
  color: var(--navy);
  font-weight: 600;
}

.where-flag {
  font-size: 19px;
}

.event-action-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--white);
}

.event-action-strip a {
  display: flex;
  min-height: 56px;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  border-right: 1px solid var(--line);
  color: #1f3d96;
  font-family: var(--brand-font);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-align: center;
  text-transform: uppercase;
}

.event-action-strip a:last-child {
  border-right: 0;
}

.event-action-strip a.active {
  color: var(--white);
  background: #20296f;
}

.event-action-strip a.disabled {
  color: #8a94ad;
  pointer-events: none;
  background: #f7f9fd;
}

.event-summary-section {
  border: 0;
  padding: 0;
  background: transparent;
}

.event-summary-section > p {
  color: var(--ink);
  font-size: 17px;
  line-height: 1.72;
}

.compact-facts {
  margin-top: 24px;
}

.detail-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.detail-facts div {
  display: grid;
  gap: 4px;
  min-height: 72px;
  align-content: center;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: #f8fbff;
}

.detail-facts span {
  color: var(--muted);
  font-family: var(--brand-font);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: var(--label-tracking);
  text-transform: uppercase;
}

.detail-facts strong {
  color: var(--navy);
  font-family: var(--brand-font);
  font-size: 15px;
  font-weight: 600;
}

.event-notes {
  color: var(--muted);
  font-size: 16px;
  line-height: 1.68;
}

.event-notes :is(h2, h3, h4) {
  margin: 22px 0 10px;
  color: var(--navy);
  font-size: 20px;
}

.event-notes p,
.event-notes ul,
.event-notes ol {
  margin: 0 0 14px;
}

.detail-content aside {
  display: grid;
  align-content: start;
  gap: 12px;
}

.detail-aside {
  position: sticky;
  top: 96px;
}

.detail-side-card {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--white);
}

.detail-side-card h2 {
  margin-bottom: 8px;
  font-size: 20px;
}

.event-action-panel {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #f7f9fd;
}

.event-action-button {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 54px;
  min-height: 48px;
  overflow: hidden;
  border: 1px solid rgba(11, 19, 43, 0.16);
  border-radius: 5px;
  color: var(--white);
  background: #232a44;
  box-shadow: 0 7px 16px rgba(11, 19, 43, 0.12);
}

.event-action-button span,
.event-action-button strong {
  display: flex;
  align-items: center;
}

.event-action-button span {
  padding: 0 13px;
  font-size: 14px;
  font-weight: 700;
}

.event-action-button strong {
  justify-content: center;
  color: var(--white);
  font-family: var(--brand-font);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: var(--label-tracking);
  text-transform: uppercase;
}

.event-action-button.website strong {
  background: #4d8f2f;
}

.event-action-button.contact strong {
  background: #d9892d;
}

.event-action-button.register strong {
  background: #ad3b2d;
}

.event-action-button.results strong {
  background: #1f4f9a;
}

.event-action-button.calendar strong {
  background: #33415c;
}

.location-map-section {
  padding: 0;
  overflow: hidden;
}

.location-map-section > :not(.openstreetmap-frame) {
  margin-right: 24px;
  margin-left: 24px;
}

.location-map-section > .eyebrow {
  margin-top: 22px;
}

.location-map-section h2 {
  margin-bottom: 4px;
}

.openstreetmap-frame {
  margin-top: 14px;
  border-top: 1px solid var(--line);
  background: #dce8ee;
}

.openstreetmap-frame iframe {
  display: block;
  width: 100%;
  height: 320px;
  border: 0;
}

.map-fallback-link {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  margin-top: 14px;
  margin-bottom: 24px;
  color: var(--blue);
  font-family: var(--brand-font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: var(--label-tracking);
  text-transform: uppercase;
}

.event-map {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--white);
}

.event-map iframe {
  display: block;
  width: 100%;
  height: 220px;
  border: 0;
}

.event-map a {
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  border-top: 1px solid var(--line);
  color: var(--blue);
  font-family: var(--brand-font);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: var(--label-tracking);
  text-transform: uppercase;
}

.result-stat {
  display: grid;
  gap: 4px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--white);
}

.result-stat span {
  color: var(--muted);
  font-family: var(--brand-font);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: var(--label-tracking);
  text-transform: uppercase;
}

.result-stat strong {
  color: var(--navy);
  font-size: 30px;
  font-weight: 500;
}

@media (max-width: 1160px) {
  .site-header {
    grid-template-columns: 1fr auto;
  }

  .main-nav {
    display: none;
  }

  .hero,
  .platform-section {
    grid-template-columns: 1fr;
  }

  .hero-panel {
    max-width: 620px;
  }

  .event-directory {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .site-header {
    position: static;
    grid-template-columns: 1fr;
  }

  .header-actions {
    justify-self: stretch;
  }

  .header-actions .primary-button,
  .header-actions .outline-button {
    flex: 1;
  }

  .hero {
    min-height: auto;
    padding-top: 54px;
    padding-bottom: 54px;
  }

  .hero-actions,
  .feature-cards,
  .feature-card,
  .ops-grid {
    grid-template-columns: 1fr;
  }

  .feature-cards {
    padding-top: 24px;
  }

  .feature-card {
    display: grid;
  }

  .event-detail-card {
    grid-template-columns: 58px 1fr;
  }

  .event-thumb {
    grid-column: 2;
    width: 100%;
    height: 118px;
  }

  .event-side {
    grid-column: 2;
    grid-template-columns: 72px minmax(0, 1fr);
  }

  .event-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .result-row {
    grid-template-columns: 48px 1fr;
  }

  .section-heading,
  .section-title-row,
  .club-strip,
  .detail-hero,
  .detail-content,
  footer {
    align-items: start;
    flex-direction: column;
  }

  .detail-hero,
  .detail-content {
    grid-template-columns: 1fr;
  }

  .event-info-grid,
  .event-action-strip {
    grid-template-columns: 1fr;
  }

  .event-action-strip a {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .event-action-strip a:last-child {
    border-bottom: 0;
  }
}

/* 2026 product layout refresh */
.app-header {
  grid-template-columns: minmax(220px, 1fr) auto minmax(250px, 1fr);
  min-height: 72px;
  padding-top: 10px;
  padding-bottom: 10px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 10px 30px rgba(6, 23, 68, 0.05);
}

.app-header .brand-logo {
  width: min(290px, 46vw);
}

.app-header .main-nav {
  gap: 24px;
}

.app-header .main-nav a {
  position: relative;
  padding: 22px 0;
  font-size: 14px;
  font-weight: 700;
}

.app-header .main-nav a.active::after {
  position: absolute;
  right: 0;
  bottom: 10px;
  left: 0;
  height: 3px;
  border-radius: 99px;
  background: var(--blue);
  content: "";
}

.app-header .primary-button,
.app-header .outline-button,
.app-header .icon-button {
  min-height: 46px;
  border-radius: 999px;
}

.home-page {
  background:
    radial-gradient(circle at 12% 8%, rgba(64, 196, 239, 0.12), transparent 28%),
    linear-gradient(180deg, #ffffff 0%, #f5f9ff 44%, #ffffff 100%);
}

.home-hero {
  position: relative;
  display: grid;
  min-height: 360px;
  align-items: center;
  padding: 42px clamp(24px, 5vw, 92px) 58px;
  overflow: hidden;
  background:
    linear-gradient(90deg, #ffffff 0%, rgba(255,255,255,0.96) 38%, rgba(255,255,255,0.72) 60%, rgba(255,255,255,0.16) 100%),
    url("images/hero.jpg") center right / cover no-repeat;
}

.home-hero::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 100px;
  background: linear-gradient(180deg, rgba(244, 248, 255, 0), #f4f8ff);
  content: "";
}

.home-hero-copy {
  position: relative;
  z-index: 1;
  max-width: 580px;
}

.home-hero .eyebrow {
  color: var(--blue);
}

.home-hero h1 {
  color: var(--navy);
  font-size: clamp(36px, 3.6vw, 56px);
  font-weight: 850;
  line-height: 1.08;
}

.home-hero h1 span {
  color: var(--blue);
}

.home-hero-copy > p:not(.eyebrow) {
  max-width: 500px;
  color: var(--navy);
  font-size: 17px;
}

.home-hero .outline-button {
  border-color: var(--blue);
  color: var(--blue);
  background: rgba(255,255,255,0.82);
}

.hero-trust-card {
  position: absolute;
  right: clamp(28px, 6vw, 92px);
  top: 92px;
  z-index: 1;
  width: 180px;
  padding: 24px;
  border-radius: 10px;
  color: var(--white);
  background: #061744;
  box-shadow: 0 18px 38px rgba(6, 23, 68, 0.24);
}

.hero-trust-card span {
  display: block;
  margin-bottom: 6px;
  font-size: 30px;
  font-weight: 750;
}

.hero-trust-card p {
  margin: 0;
  color: #e8f1ff;
  font-size: 13px;
}

.home-dashboard {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(260px, 0.82fr) minmax(360px, 1.36fr) minmax(260px, 0.82fr);
  gap: 14px;
  margin: -32px clamp(24px, 5vw, 92px) 18px;
}

.dashboard-card,
.service-ribbon,
.integration-ribbon,
.event-directory,
.results-board,
.results-side-nav,
.event-tabs-bar,
.organiser-card {
  border: 1px solid #d9e7fb;
  border-radius: 10px;
  background: rgba(255,255,255,0.94);
  box-shadow: 0 14px 34px rgba(6, 23, 68, 0.07);
}

.dashboard-card {
  min-width: 0;
  padding: 16px;
}

.dashboard-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.dashboard-card-header h2 {
  margin: 0;
  font-size: 18px;
  font-weight: 750;
}

.dashboard-card-header a,
.integration-ribbon a {
  color: var(--blue);
  font-size: 13px;
  font-weight: 750;
}

.featured-event-image {
  display: grid;
  min-height: 180px;
  align-content: end;
  padding: 18px;
  border-radius: 8px;
  color: var(--white);
  background:
    linear-gradient(180deg, rgba(6, 23, 68, 0.05), rgba(6, 23, 68, 0.88)),
    url("images/hero.jpg") center / cover no-repeat;
}

.featured-event-image span {
  justify-self: start;
  margin-bottom: auto;
  padding: 4px 9px;
  border-radius: 4px;
  background: var(--blue);
  font-size: 11px;
  font-weight: 750;
  text-transform: uppercase;
}

.featured-event-image strong {
  font-size: 18px;
  line-height: 1.25;
}

.featured-event-image small,
.compact-event-list small,
.upcoming-list small {
  color: #d9e9ff;
  font-size: 12px;
}

.compact-event-list {
  display: grid;
  gap: 12px;
  margin-top: 16px;
}

.compact-event-list a,
.latest-result-list article,
.upcoming-list article {
  display: grid;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid var(--line);
}

.compact-event-list a {
  grid-template-columns: 72px 1fr;
  padding-bottom: 12px;
}

.compact-event-list img,
.upcoming-list img {
  width: 72px;
  height: 54px;
  border-radius: 6px;
  object-fit: contain;
  background: #eef5ff;
}

.compact-event-list strong,
.upcoming-list h3,
.latest-result-list h3 {
  margin: 0;
  color: var(--navy);
  font-size: 15px;
  font-weight: 750;
}

.compact-event-list small,
.upcoming-list small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
}

.upcoming-list {
  display: grid;
}

.upcoming-list article {
  grid-template-columns: 72px minmax(0, 1fr) auto auto;
  min-height: 64px;
  padding: 8px 0;
}

.upcoming-list p,
.latest-result-list p {
  margin: 0;
  color: var(--navy);
  font-size: 12px;
}

.upcoming-list a {
  min-width: 66px;
  padding: 6px 9px;
  border: 1px solid #b9d0f5;
  border-radius: 7px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 750;
  text-align: center;
  text-transform: uppercase;
}

.latest-result-list {
  display: grid;
}

.latest-result-list article {
  grid-template-columns: 48px minmax(0, 1fr) auto;
  min-height: 62px;
  padding: 9px 0;
}

.latest-result-list small {
  color: #0c8f4a;
  font-size: 12px;
  text-align: right;
}

.wide-outline-button {
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  margin-top: 12px;
  border: 1px solid var(--blue);
  border-radius: 999px;
  color: var(--blue);
  font-weight: 750;
}

.service-ribbon,
.integration-ribbon,
.benefit-ribbon {
  display: grid;
  align-items: center;
  gap: 24px;
  margin: 14px clamp(24px, 5vw, 92px);
  padding: 16px 24px;
}

.service-ribbon {
  grid-template-columns: 160px repeat(4, 1fr);
}

.service-ribbon strong,
.integration-ribbon strong {
  color: var(--navy);
  font-size: 17px;
}

.service-ribbon article {
  display: grid;
  gap: 4px;
}

.service-ribbon span {
  color: var(--navy);
  font-weight: 750;
}

.service-ribbon small {
  color: var(--muted);
}

.integration-ribbon {
  grid-template-columns: 220px repeat(4, 1fr) auto;
}

.integration-ribbon span {
  color: var(--navy);
  font-size: 20px;
  font-weight: 750;
  text-align: center;
}

.benefit-ribbon {
  grid-template-columns: repeat(4, 1fr);
  border-radius: 8px;
  color: var(--white);
  background: #061744;
}

.benefit-ribbon span {
  text-align: center;
}

.sailrc-group-section {
  display: grid;
  grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
  gap: 26px;
  align-items: stretch;
  margin: 18px clamp(24px, 5vw, 92px);
  padding: 26px;
  border: 1px solid #d9e7fb;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 18px 44px rgba(6, 23, 68, 0.08);
}

.sailrc-group-intro {
  display: grid;
  align-content: center;
  padding: 6px 10px;
}

.sailrc-group-logo {
  width: min(230px, 100%);
  height: auto;
  margin-bottom: 18px;
}

.sailrc-group-intro .eyebrow {
  color: var(--blue);
}

.sailrc-group-intro h2 {
  margin-bottom: 12px;
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 750;
}

.sailrc-group-intro p:not(.eyebrow) {
  margin: 0;
  color: var(--muted);
  font-size: 16px;
}

.sailrc-group-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.sailrc-group-grid article {
  display: grid;
  align-content: start;
  min-height: 180px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbff;
}

.sailrc-group-grid .sailrc-linked-product {
  padding: 0;
}

.sailrc-linked-product > a {
  display: grid;
  min-height: 100%;
  align-content: start;
  padding: 22px;
  color: inherit;
  text-decoration: none;
}

.sailrc-linked-product > a:hover h3,
.sailrc-linked-product > a:focus-visible h3 {
  color: var(--brand);
}

.sailrc-linked-product > a:focus-visible {
  outline: 3px solid rgba(0, 93, 255, 0.32);
  outline-offset: 3px;
  border-radius: 8px;
}

.sailrc-group-grid span {
  display: grid;
  align-items: center;
  justify-items: start;
  width: 100%;
  min-height: 58px;
  margin-bottom: 18px;
  padding: 10px 12px;
  border: 1px solid #dfeaf9;
  border-radius: 8px;
  background: #ffffff;
}

.sailrc-group-grid span img {
  display: block;
  width: auto;
  max-width: 180px;
  max-height: 42px;
  object-fit: contain;
}

.sailrc-group-grid h3 {
  margin-bottom: 8px;
  font-size: 18px;
  font-weight: 800;
}

.sailrc-group-grid p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}

.event-directory {
  grid-template-columns: minmax(0, 1fr) 300px;
  margin-top: 34px;
  padding: 20px;
  border-radius: 14px;
  box-shadow: 0 18px 44px rgba(6, 23, 68, 0.07);
}

.event-detail-card {
  border-color: #dbe8fa;
  border-radius: 10px;
  box-shadow: none;
}

.event-detail-card h2 {
  font-weight: 750;
}

.breadcrumb-nav {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 18px clamp(24px, 5vw, 72px);
  color: #597099;
  font-size: 13px;
}

.breadcrumb-nav a::after,
.breadcrumb-nav span::after {
  margin-left: 10px;
  color: #9cafca;
  content: ">";
}

.breadcrumb-nav strong {
  color: var(--navy);
}

.event-hero-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  align-items: center;
  gap: 28px;
  min-height: 300px;
  margin: 0 clamp(24px, 5vw, 72px);
  padding: 34px 38px;
  overflow: hidden;
  border-radius: 14px;
  color: var(--white);
  background:
    linear-gradient(90deg, rgba(6, 23, 68, 0.94), rgba(6, 23, 68, 0.55), rgba(6, 23, 68, 0.1)),
    url("images/hero.jpg") center / cover no-repeat;
  box-shadow: 0 20px 52px rgba(6, 23, 68, 0.16);
}

.event-hero-panel h1,
.results-hero h1 {
  margin-bottom: 18px;
  color: inherit;
  font-size: clamp(34px, 4vw, 54px);
  font-weight: 750;
}

.hero-badge {
  display: inline-flex;
  margin-bottom: 16px;
  padding: 7px 11px;
  border-radius: 999px;
  color: var(--white);
  background: var(--blue);
  font-size: 11px;
  font-weight: 750;
  text-transform: uppercase;
}

.event-hero-meta,
.results-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  color: #edf5ff;
  font-weight: 700;
}

.organiser-card {
  padding: 22px;
  color: var(--navy);
  background: rgba(255,255,255,0.94);
}

.organiser-card > span {
  color: var(--muted);
  font-size: 12px;
}

.organiser-logo-line {
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 12px;
  align-items: center;
  margin: 12px 0 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line);
}

.organiser-logo-line img {
  width: 54px;
  height: 54px;
  object-fit: contain;
}

.organiser-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  text-align: center;
}

.organiser-stats strong {
  display: block;
  color: var(--blue);
  font-size: 18px;
}

.organiser-stats span {
  color: var(--navy);
  font-size: 11px;
}

.event-tabs-bar {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  margin: 20px clamp(24px, 5vw, 72px) 0;
  overflow: hidden;
}

.event-tabs-bar a {
  min-height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-right: 1px solid var(--line);
  color: var(--navy);
  font-weight: 750;
}

.event-tabs-bar a:last-child {
  border-right: 0;
}

.event-tabs-bar a.active {
  color: var(--blue);
  box-shadow: inset 0 -3px 0 var(--blue);
}

.detail-page .detail-content,
.results-layout {
  padding-top: 22px;
}

.results-page {
  min-height: 100vh;
  background: #f4f8ff;
}

.results-hero,
.listing-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: end;
  padding: 34px clamp(24px, 5vw, 72px);
  color: var(--navy);
  background:
    linear-gradient(90deg, #f7fbff 0%, rgba(247,251,255,0.92) 43%, rgba(247,251,255,0.1) 100%),
    url("images/hero.jpg") center right / cover no-repeat;
}

.listing-hero {
  grid-template-columns: minmax(0, 720px);
  min-height: 292px;
  align-content: end;
  align-items: end;
  padding-top: 54px;
  padding-bottom: 58px;
}

.listing-hero .eyebrow {
  color: var(--blue);
}

.listing-hero h1 {
  margin-bottom: 12px;
  color: var(--navy);
  font-size: clamp(40px, 4.4vw, 66px);
  font-weight: 750;
}

.listing-hero p:not(.eyebrow) {
  max-width: 560px;
  margin-bottom: 0;
  color: var(--navy);
  font-size: 17px;
}

.status-line {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-bottom: 10px;
  color: var(--navy);
  font-size: 16px;
  font-weight: 750;
}

.status-line span {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #10935c;
}

.results-hero-meta {
  color: var(--navy);
}

.results-hero-actions {
  display: flex;
  gap: 14px;
}

.results-layout {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 24px;
  padding: 24px clamp(24px, 5vw, 72px) 72px;
}

.results-side-nav {
  display: grid;
  align-content: start;
  gap: 6px;
  padding: 18px;
}

.results-side-nav a {
  display: flex;
  min-height: 42px;
  align-items: center;
  padding: 0 14px;
  border-radius: 7px;
  color: var(--navy);
  font-weight: 700;
}

.results-side-nav a.active {
  color: var(--blue);
  background: #edf4ff;
  box-shadow: inset 3px 0 0 var(--blue);
}

.help-card {
  display: grid;
  gap: 8px;
  margin-top: 18px;
  padding: 16px;
  border-radius: 8px;
  background: #f1f6ff;
}

.help-card a {
  min-height: 0;
  padding: 0;
  color: var(--blue);
}

.results-board {
  padding: 24px;
}

.results-tabs {
  display: flex;
  gap: 28px;
  border-bottom: 1px solid var(--line);
}

.results-tabs button {
  min-height: 46px;
  border: 0;
  color: var(--navy);
  background: transparent;
  font-weight: 750;
}

.results-tabs button.active {
  color: var(--blue);
  box-shadow: inset 0 -3px 0 var(--blue);
}

.results-tools,
.results-search-row,
.results-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
  padding: 18px 0;
  color: var(--navy);
}

.results-tools {
  border-bottom: 1px solid var(--line);
}

.results-tools select,
.results-search-row input {
  min-height: 42px;
  border: 1px solid #c9daf4;
  border-radius: 8px;
  padding: 0 14px;
  background: var(--white);
}

.results-tools button,
.results-search-row button,
.results-pagination button {
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid #b9d0f5;
  border-radius: 8px;
  color: var(--blue);
  background: var(--white);
  font-weight: 750;
}

.results-search-row input {
  width: min(360px, 100%);
}

.results-table-wrap {
  overflow-x: auto;
}

.results-table {
  width: 100%;
  border-collapse: collapse;
  color: var(--navy);
  white-space: nowrap;
}

.results-table th,
.results-table td {
  padding: 13px 14px;
  border-bottom: 1px solid var(--line);
  text-align: left;
}

.results-table th {
  font-size: 12px;
  font-weight: 750;
  background: #f7faff;
}

.results-table td:not(:nth-child(2)):not(:nth-child(4)) {
  text-align: center;
}

.results-table.public-live-results-table th,
.results-table.public-live-results-table td {
  padding: 10px 9px;
  border-right: 1px solid #eef2f7;
  border-bottom: 1px solid #eef2f7;
  text-align: center;
  vertical-align: middle;
}

.results-table.public-live-results-table th:nth-child(3),
.results-table.public-live-results-table td:nth-child(3),
.results-table.public-live-results-table th:nth-child(4),
.results-table.public-live-results-table td:nth-child(4) {
  text-align: left;
}

.results-table.public-live-results-table td:nth-child(3),
.results-table.public-live-results-table td:nth-child(4) {
  line-height: 1.28;
}

.results-table.public-live-results-table td:nth-child(5),
.results-table.public-live-results-table td:nth-child(6),
.results-table.public-live-results-table td:nth-child(n + 7) {
  text-align: center;
}

.results-pagination {
  justify-content: space-between;
}

@media (max-width: 1180px) {
  .home-dashboard,
  .service-ribbon,
  .integration-ribbon,
  .sailrc-group-section {
    grid-template-columns: 1fr;
  }

  .sailrc-group-grid {
    grid-template-columns: 1fr;
  }

  .benefit-ribbon {
    grid-template-columns: repeat(2, 1fr);
  }

  .event-hero-panel,
  .results-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .app-header {
    grid-template-columns: 1fr;
  }

  .app-header .main-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
  }

  .app-header .main-nav a {
    padding: 6px 0;
  }

  .home-hero {
    padding-top: 38px;
    background:
      linear-gradient(180deg, rgba(255,255,255,0.98), rgba(255,255,255,0.82)),
      url("images/hero.jpg") center / cover no-repeat;
  }

.hero-trust-card {
    position: static;
    width: auto;
    margin-top: 24px;
  }

  .home-dashboard,
  .service-ribbon,
  .integration-ribbon,
  .sailrc-group-section,
  .benefit-ribbon {
    grid-template-columns: 1fr;
    margin-right: 16px;
    margin-left: 16px;
  }

  .event-directory {
    margin-right: 16px;
    margin-left: 16px;
    padding: 14px;
  }

  .upcoming-list article,
  .latest-result-list article {
    grid-template-columns: 56px 1fr;
  }

  .upcoming-list a,
  .latest-result-list small {
    grid-column: 2;
    justify-self: start;
  }

  .event-tabs-bar {
    grid-template-columns: 1fr 1fr;
  }

  .event-hero-panel,
  .results-hero {
    margin-right: 16px;
    margin-left: 16px;
    padding: 24px;
  }

  .results-hero {
    grid-template-columns: 1fr;
  }
}

/* Event detail page tuned to match the reference layout */
.detail-page {
  min-height: 100vh;
  padding-bottom: 46px;
  background: #f4f8ff;
}

.detail-page .breadcrumb-nav {
  max-width: 1450px;
  margin: 0 auto;
  padding: 20px clamp(18px, 3vw, 42px);
}

.detail-page .event-hero-panel {
  grid-template-columns: minmax(0, 1fr) minmax(260px, 300px);
  min-height: 0;
  align-items: end;
  margin: 0;
  padding: 34px clamp(24px, 5vw, 72px);
  border: 0;
  border-radius: 0;
  color: var(--navy);
  background:
    linear-gradient(90deg, #f7fbff 0%, rgba(247,251,255,0.92) 43%, rgba(247,251,255,0.1) 100%),
    url("images/hero.jpg") center right / cover no-repeat;
  box-shadow: none;
}

.event-hero-content {
  max-width: 780px;
}

.detail-page .event-hero-panel h1 {
  max-width: 980px;
  margin-bottom: 18px;
  color: var(--navy);
  font-size: clamp(30px, 3.25vw, 46px);
  line-height: 1.08;
}

.detail-page .hero-badge {
  border-radius: 6px;
  box-shadow: 0 10px 20px rgba(0, 107, 255, 0.22);
}

.detail-page .hero-actions {
  margin-top: 24px;
}

.detail-page .event-hero-meta {
  color: var(--navy);
}

.detail-page .glass-button {
  color: var(--blue);
  background: rgba(255,255,255,0.82);
  border-color: #b9d0f5;
}

.detail-page .organiser-card {
  border-radius: 8px;
  background: rgba(255,255,255,0.94);
  box-shadow: 0 18px 42px rgba(6, 23, 68, 0.10);
}

.detail-page .organiser-stats {
  gap: 0;
}

.detail-page .organiser-stats div {
  padding: 0 10px;
  border-right: 1px solid var(--line);
}

.detail-page .organiser-stats div:last-child {
  border-right: 0;
}

.detail-page .event-tabs-bar {
  max-width: 1450px;
  margin: -18px auto 0;
  border-radius: 10px;
  position: relative;
  z-index: 2;
}

.event-status-strip {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  max-width: 1450px;
  margin: -30px auto 24px;
  overflow: hidden;
  border: 1px solid #d9e7fb;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 18px 44px rgba(6, 23, 68, 0.09);
}

.event-status-strip article {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 3px;
  min-height: 82px;
  align-content: center;
  align-items: center;
  padding: 14px 18px;
  border-right: 1px solid var(--line);
}

.event-status-strip article:last-child {
  border-right: 0;
}

.status-icon {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 10px;
}

.status-icon svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.status-green {
  color: #10a563;
  background: #eaf8f0;
}

.status-red {
  color: #f23d4f;
  background: #fff0f2;
}

.status-purple {
  color: #8d42f5;
  background: #f4edff;
}

.status-blue {
  color: #1f6fff;
  background: #eef4ff;
}

.status-orange {
  color: #ff7a1a;
  background: #fff3e9;
}

.status-cyan {
  color: #08a8c8;
  background: #eafaff;
}

.event-status-strip article > div > span {
  color: var(--navy);
  font-size: 12px;
  font-weight: 900;
}

.event-status-strip article > div > strong {
  display: block;
  color: var(--navy);
  font-size: 16px;
  line-height: 1.1;
}

.event-status-strip article > div > small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.detail-page .event-tabs-bar a {
  min-height: 68px;
  gap: 8px;
}

.detail-page .detail-content {
  grid-template-columns: minmax(0, 1fr) 330px;
  max-width: 1450px;
  margin: 0 auto;
  padding: 20px clamp(18px, 3vw, 42px) 26px;
}

.detail-page .detail-main {
  gap: 18px;
}

.event-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.62fr);
  gap: 18px;
}

.detail-page .detail-section,
.detail-page .detail-side-card,
.detail-page .event-action-panel {
  border-color: #dfeafa;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 16px 36px rgba(6, 23, 68, 0.06);
}

.detail-page .detail-section {
  padding: 26px;
}

.detail-page .detail-section h2,
.detail-page .detail-side-card h2 {
  margin-bottom: 16px;
  font-size: 22px;
  font-weight: 800;
}

.event-summary-section p {
  color: var(--navy);
  font-size: 15px;
  line-height: 1.65;
}

.detail-tag-row {
  margin-top: 18px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--line);
}

.contact-lines,
.key-info-card dl {
  display: grid;
  gap: 0;
  margin: 0;
}

.contact-lines {
  margin-top: 20px;
  gap: 16px;
}

.contact-lines div,
.key-info-card dl div {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr);
  gap: 14px;
}

.contact-lines dt,
.key-info-card dt {
  color: var(--navy);
  font-size: 13px;
  font-weight: 800;
}

.contact-lines dd,
.key-info-card dd {
  margin: 0;
  color: var(--navy);
  font-size: 13px;
  text-align: right;
}

.section-link-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.section-link-row a {
  color: var(--blue);
  font-size: 13px;
  font-weight: 800;
}

.program-list {
  display: grid;
  gap: 0;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}

.program-list li {
  position: relative;
  display: grid;
  grid-template-columns: 62px 22px minmax(0, 1fr);
  gap: 14px;
  min-height: 74px;
  align-items: start;
}

.program-list li::before {
  grid-column: 2;
  width: 12px;
  height: 12px;
  margin-top: 17px;
  border: 2px solid var(--blue);
  border-radius: 50%;
  background: var(--white);
  content: "";
  z-index: 1;
}

.program-list li::after {
  position: absolute;
  top: 30px;
  bottom: -18px;
  left: 90px;
  width: 1px;
  background: #a8c7f8;
  content: "";
}

.program-list li:last-child::after {
  display: none;
}

.program-list .program-done::before {
  border-color: #12a668;
  background: #12a668;
  box-shadow: inset 0 0 0 3px var(--white);
}

.program-list time {
  display: grid;
  min-height: 46px;
  place-items: center;
  padding: 6px 8px;
  border-radius: 8px;
  background: #edf4ff;
  color: var(--navy);
  text-align: center;
}

.program-list time strong,
.program-list time span {
  display: block;
  line-height: 1.05;
}

.program-list time strong {
  font-size: 12px;
}

.program-list time span {
  font-size: 12px;
}

.program-list li > div {
  padding: 10px 0 18px;
  border-bottom: 1px solid var(--line);
}

.program-list li:last-child > div {
  border-bottom: 0;
}

.program-list li > div strong {
  display: block;
  color: var(--navy);
  font-size: 14px;
}

.program-list li > div span {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
}

.schedule-table {
  display: grid;
  margin-top: 6px;
}

.schedule-table h3 {
  margin: 16px 0 8px;
  color: #65a927;
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
}

.schedule-table h3:first-child {
  margin-top: 0;
}

.schedule-table div {
  display: grid;
  grid-template-columns: minmax(120px, 0.46fr) minmax(0, 1fr);
  gap: 18px;
  min-height: 34px;
  align-items: center;
  border-bottom: 1px solid var(--line);
}

.schedule-table time {
  color: var(--navy);
  font-size: 13px;
  font-weight: 800;
}

.schedule-table span {
  color: var(--navy);
  font-size: 13px;
  font-weight: 650;
}

.event-lower-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.82fr);
  gap: 18px;
}

.event-resource-card {
  display: grid;
  align-content: start;
  padding: 0 !important;
  overflow: hidden;
}

.event-resource-card article {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 6px;
  padding: 22px 24px;
  border-bottom: 1px solid var(--line);
}

.event-resource-card article:last-child {
  border-bottom: 0;
}

.event-resource-card strong {
  display: block;
  margin-bottom: 4px;
  color: var(--navy);
  font-size: 14px;
  font-weight: 900;
  text-transform: uppercase;
}

.event-resource-card span,
.event-resource-card a {
  color: var(--muted);
  font-size: 14px;
  font-weight: 700;
}

.event-resource-card a {
  display: block;
  color: var(--navy);
}

.event-resource-card a small {
  display: inline-flex;
  margin-left: 7px;
  padding: 2px 6px;
  border-radius: 3px;
  color: #5f6e83;
  background: #eef2f7;
  font-size: 10px;
  font-weight: 900;
}

.resource-icon {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  color: #65a927;
}

.resource-icon svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.event-location-card .compact-map {
  margin: 0 0 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.event-location-card .compact-map iframe {
  height: 190px;
}

.event-location-card > strong {
  display: block;
  color: var(--navy);
  font-size: 15px;
}

.event-location-card > p {
  margin: 4px 0 0;
  color: var(--navy);
  font-size: 14px;
  line-height: 1.45;
}

.weather-card {
  display: grid;
  align-content: start;
}

.weather-card > p {
  display: grid;
  gap: 2px;
  margin-bottom: 16px;
  color: var(--navy);
  font-size: 14px;
  line-height: 1.25;
}

.weather-card > p strong {
  color: var(--navy);
}

.weather-card > p span {
  color: var(--muted);
}

.weather-main {
  display: grid;
  grid-template-columns: 46px auto 1fr;
  gap: 12px;
  align-items: center;
  padding: 12px 0 22px;
  border-bottom: 1px solid var(--line);
}

.weather-main strong {
  color: var(--navy);
  font-size: 30px;
  line-height: 1;
}

.weather-main small {
  color: var(--navy);
  font-size: 13px;
}

.weather-sun {
  position: relative;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #ffc928;
  box-shadow: 0 0 0 7px rgba(255, 201, 40, 0.18);
}

.weather-card dl {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin: 16px 0 20px;
}

.weather-card dl div {
  display: grid;
  gap: 2px;
  justify-items: center;
  border-right: 1px solid var(--line);
}

.weather-card dl div:last-child {
  border-right: 0;
}

.weather-card dt {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.weather-card dd {
  margin: 0;
  color: var(--navy);
  font-size: 12px;
  font-weight: 800;
  text-align: center;
}

.weather-card a {
  color: var(--blue);
  font-size: 13px;
  font-weight: 800;
}

.latest-results-card {
  min-width: 0;
}

.mini-results-table {
  display: grid;
  overflow-x: auto;
  color: var(--navy);
}

.mini-results-table > div {
  display: grid;
  grid-template-columns: 42px minmax(110px, 1fr) minmax(130px, 1.1fr) minmax(100px, 1fr) minmax(110px, 0.9fr);
  gap: 12px;
  align-items: center;
  min-width: 620px;
  min-height: 42px;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}

.mini-results-table > div:last-child {
  border-bottom: 0;
}

.mini-results-head {
  min-height: 34px !important;
  color: var(--muted);
  font-size: 12px !important;
  font-weight: 800;
}

.mini-results-table strong {
  font-size: 13px;
}

.mini-results-table span {
  min-width: 0;
}

.key-info-card dl div {
  min-height: 52px;
  align-items: center;
  border-bottom: 1px solid var(--line);
}

.key-info-card dl div:last-child {
  border-bottom: 0;
}

.download-card {
  display: grid;
  gap: 0;
}

.download-card a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 62px;
  border-bottom: 1px solid var(--line);
}

.download-card a:last-child {
  border-bottom: 0;
}

.download-card span {
  color: var(--navy);
  font-size: 14px;
  font-weight: 800;
}

.download-card strong {
  color: var(--blue);
  font-size: 12px;
  text-transform: uppercase;
}

.detail-page .event-action-panel {
  padding: 14px;
}

.detail-page .key-info-card {
  border-color: rgba(255, 255, 255, 0.08);
  color: var(--white);
  background: linear-gradient(145deg, #061744 0%, #09264e 100%);
  box-shadow: 0 18px 42px rgba(6, 23, 68, 0.18);
}

.detail-page .key-info-card h2 {
  color: var(--white);
}

.detail-page .key-info-card dl div {
  border-bottom-color: rgba(255, 255, 255, 0.14);
}

.detail-page .key-info-card dt {
  color: rgba(255, 255, 255, 0.72);
}

.detail-page .key-info-card dd {
  color: var(--white);
}

.detail-page .key-info-card + .download-card {
  display: grid;
}

.public-document-open {
  overflow: hidden;
}

.public-document-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: 28px;
}

.public-document-modal[hidden] {
  display: none;
}

.public-document-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(5, 18, 38, 0.62);
  backdrop-filter: blur(4px);
}

.public-document-panel {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  width: min(1120px, 96vw);
  height: min(860px, 92vh);
  overflow: hidden;
  border: 1px solid rgba(220, 228, 240, 0.88);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 30px 80px rgba(4, 20, 45, 0.32);
}

.public-document-panel > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
  background: #fbfdff;
}

.public-document-panel h2 {
  margin: 0;
  color: var(--navy);
  font-size: 20px;
  font-weight: 650;
}

.public-document-actions {
  display: flex;
  gap: 10px;
  align-items: center;
}

.public-document-actions .icon-button {
  width: 38px;
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--navy);
}

.public-document-panel iframe {
  width: 100%;
  height: 100%;
  border: 0;
  background: #f6f9fd;
}

.public-document-note {
  margin: 0;
  padding: 10px 18px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 13px;
}

.event-cta-panel {
  display: flex;
  max-width: 1400px;
  min-height: 136px;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  margin: 0 auto;
  padding: 28px clamp(28px, 4vw, 54px);
  border-radius: 14px;
  color: var(--white);
  background:
    linear-gradient(135deg, #061744 0%, #003a92 100%);
  box-shadow: 0 22px 48px rgba(6, 23, 68, 0.16);
}

.listing-page {
  background: #f4f8ff;
}

.event-cta-panel > div,
.event-cta-panel nav {
  display: flex;
  align-items: center;
  gap: 24px;
}

.event-cta-panel h2 {
  margin: 0 0 4px;
  color: var(--white);
  font-size: 26px;
  font-weight: 800;
}

.event-cta-panel p {
  margin: 0;
  color: #e2efff;
}

.cta-sail-mark {
  display: grid;
  width: 62px;
  height: 62px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 50%;
  color: var(--white);
  background: var(--blue);
  font-weight: 900;
}

.listing-page,
.detail-page {
  font-weight: 400;
}

.listing-page h1,
.detail-page h1,
.home-hero h1,
.event-hero-panel h1,
.results-hero h1 {
  font-weight: 700;
  letter-spacing: 0;
}

.listing-page h2,
.listing-page h3,
.detail-page h2,
.detail-page h3,
.dashboard-card-header h2,
.section-title-row h2,
.feature-card h2,
.sailrc-group-grid h3,
.event-copy h2,
.detail-page .detail-section h2,
.detail-page .detail-side-card h2,
.event-cta-panel h2 {
  font-weight: 650;
}

.listing-page strong,
.detail-page strong,
.event-location,
.event-range,
.event-status-strip article > div > span,
.event-status-strip article > div > small,
.schedule-table time,
.schedule-table span,
.contact-lines dt,
.key-info-card dt,
.section-link-row a,
.event-resource-card strong,
.event-resource-card span,
.event-resource-card a {
  font-weight: 560;
}

.event-tags span,
.source-pill,
.hero-badge,
.event-tabs button,
.event-actions a,
.event-pagination button,
.event-pagination span {
  font-weight: 600;
}

.event-copy p,
.event-summary-section p,
.event-location-card > p,
.key-info-card dd,
.contact-lines dd {
  color: #4e5f7a;
  font-weight: 400;
}

.event-location,
.event-range,
.event-date span,
.event-date small {
  font-weight: 400;
}

.event-date strong {
  font-weight: 450;
}

@media (max-width: 1180px) {
  .detail-page .event-hero-panel,
  .detail-page .detail-content,
  .event-overview-grid,
  .event-lower-grid,
  .event-status-strip {
    grid-template-columns: 1fr;
  }

  .detail-page .detail-aside {
    position: static;
  }

  .event-status-strip {
    margin-right: 18px;
    margin-left: 18px;
  }

  .event-status-strip article {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .event-status-strip article:last-child {
    border-bottom: 0;
  }

}


@media (max-width: 760px) {
  .detail-page .event-tabs-bar,
  .detail-page .detail-content,
  .event-cta-panel {
    margin-right: 16px;
    margin-left: 16px;
  }

  .detail-page .event-hero-panel {
    padding: 24px;
  }

  .detail-page .event-tabs-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .contact-lines div,
  .key-info-card dl div {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 12px 0;
  }

  .contact-lines dd,
  .key-info-card dd {
    text-align: left;
  }

  .program-list li {
    grid-template-columns: 56px 18px minmax(0, 1fr);
  }

  .program-list li::after {
    left: 80px;
  }

  .event-cta-panel,
  .event-cta-panel > div,
  .event-cta-panel nav {
    align-items: stretch;
    flex-direction: column;
  }

  .listing-hero {
    min-height: 250px;
    background:
      linear-gradient(180deg, rgba(255,255,255,0.98), rgba(255,255,255,0.82)),
      url("images/hero.jpg") center / cover no-repeat;
  }

}


.protest-public-shell {
  width: min(1240px, calc(100% - 40px));
  margin: 0 auto;
  padding: 28px 0 72px;
}

.protest-form-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
  margin: 22px 0 24px;
}

.protest-form-heading h1 {
  margin: 4px 0 8px;
  color: #0d1f43;
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 650;
}

.protest-form-heading p {
  max-width: 720px;
  margin: 0;
  color: #64718a;
}

.protest-event-summary {
  display: grid;
  min-width: min(360px, 100%);
  gap: 5px;
  padding: 18px 20px;
  border: 1px solid #e0e7f2;
  border-radius: 8px;
  background: #fff;
}

.protest-event-summary strong {
  color: #17284b;
  font-weight: 600;
}

.protest-event-summary span {
  color: #68758d;
  font-size: 13px;
}

.protest-form-card,
.protest-success-card {
  border: 1px solid #e0e7f2;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(26, 42, 78, 0.07);
}

.protest-form-section {
  padding: 28px 30px;
  border-bottom: 1px solid #e8edf5;
}

.protest-form-section > header {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 22px;
}

.protest-form-section > header > span {
  display: grid;
  width: 30px;
  height: 30px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 7px;
  color: #fff;
  background: #7248e8;
  font-size: 13px;
  font-weight: 600;
}

.protest-form-section h2 {
  margin: 0 0 4px;
  color: #152748;
  font-size: 19px;
  font-weight: 600;
}

.protest-form-section header p,
.protest-form-actions p {
  margin: 0;
  color: #758198;
  font-size: 13px;
}

.protest-grid {
  display: grid;
  gap: 16px;
  margin-top: 16px;
}

.protest-grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.protest-grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.protest-grid-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.protest-form-section label {
  display: grid;
  gap: 7px;
  color: #526078;
  font-size: 12.5px;
  font-weight: 500;
}

.protest-form-section input,
.protest-form-section select,
.protest-form-section textarea {
  width: 100%;
  min-height: 42px;
  padding: 10px 12px;
  border: 1px solid #bfd0e8;
  border-radius: 7px;
  color: #1f2d49;
  background: #fff;
  font: inherit;
  font-weight: 400;
  box-shadow: none;
  outline: 0;
}

.protest-form-section input:focus,
.protest-form-section select:focus,
.protest-form-section textarea:focus {
  border-color: #7248e8;
}

.protest-form-section input[readonly] {
  color: #66738b;
  background: #f7f9fc;
}

.protest-form-section textarea {
  resize: vertical;
}

.protest-entry-search {
  position: relative;
}

.protest-entry-suggestions {
  position: absolute;
  z-index: 12;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  overflow: hidden;
  border: 1px solid #d7e0ed;
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(20, 38, 73, 0.14);
}

.protest-entry-suggestions button {
  display: grid;
  width: 100%;
  grid-template-columns: minmax(80px, auto) 1fr;
  gap: 12px;
  padding: 10px 12px;
  border: 0;
  border-bottom: 1px solid #e8edf5;
  color: #243451;
  background: #fff;
  text-align: left;
  cursor: pointer;
}

.protest-entry-suggestions button:last-child {
  border-bottom: 0;
}

.protest-entry-suggestions button:hover,
.protest-entry-suggestions button:focus {
  background: #f5f2ff;
}

.protest-entry-suggestions strong {
  color: #6840d5;
  font-weight: 600;
}

.protest-entry-suggestions span {
  font-weight: 400;
}

.protest-rule-picker {
  position: relative;
  grid-column: span 2;
}

.protest-rule-picker > small {
  display: block;
  margin-top: 7px;
  color: #758198;
  font-size: 11.5px;
}

.protest-rule-suggestions {
  position: absolute;
  z-index: 13;
  top: 67px;
  right: 0;
  left: 0;
  overflow: hidden;
  border: 1px solid #d7e0ed;
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(20, 38, 73, 0.14);
}

.protest-rule-suggestions button {
  display: grid;
  width: 100%;
  grid-template-columns: 64px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 0;
  border-bottom: 1px solid #e8edf5;
  color: #243451;
  background: #fff;
  text-align: left;
  cursor: pointer;
}

.protest-rule-suggestions button:last-child {
  border-bottom: 0;
}

.protest-rule-suggestions button:hover,
.protest-rule-suggestions button:focus {
  background: #f5f2ff;
}

.protest-rule-suggestions strong {
  color: #6840d5;
  font-weight: 650;
}

.protest-rule-suggestions span {
  font-weight: 400;
}

.protest-rule-suggestions small {
  color: #8490a4;
  font-size: 10.5px;
}

.protest-selected-rules {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 9px;
}

.protest-selected-rule {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  gap: 7px;
  padding: 5px 7px 5px 10px;
  border: 1px solid #d9cdfb;
  border-radius: 999px;
  color: #432a88;
  background: #f5f2ff;
  font-size: 12px;
}

.protest-selected-rule button {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #6840d5;
  background: transparent;
  cursor: pointer;
}

.protest-selected-rule button:hover {
  background: #e7defd;
}

.protest-check-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.protest-check-grid label,
.protest-inline-check {
  display: flex;
  min-height: 42px;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid #e0e7f2;
  border-radius: 7px;
  color: #31405e;
  background: #fbfcfe;
}

.protest-check-grid input,
.protest-inline-check input {
  width: 17px;
  min-height: 17px;
  flex: 0 0 auto;
  accent-color: #7248e8;
}

.protest-inline-check {
  width: fit-content;
  margin-top: 16px;
}

.protest-upload-field {
  margin-top: 18px;
  padding: 18px;
  border: 1px dashed #aa9ae4;
  border-radius: 8px;
  background: #faf9ff;
}

.protest-additional-party {
  margin-bottom: 14px;
  padding: 16px;
  border: 1px solid #e0e7f2;
  border-radius: 8px;
  background: #fafbfe;
}

.protest-additional-party-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.protest-additional-party-heading button {
  width: 28px;
  height: 28px;
  border: 1px solid #efc6c6;
  border-radius: 6px;
  color: #b83b3b;
  background: #fff;
  cursor: pointer;
}

.protest-upload-field small {
  color: #7a8498;
}

.protest-form-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 24px 30px;
}

.protest-form-actions .primary-button {
  min-width: 170px;
}

.protest-honeypot {
  position: absolute !important;
  left: -10000px !important;
}

.public-form-alert {
  margin-bottom: 16px;
  padding: 13px 16px;
  border: 1px solid #efb3b3;
  border-radius: 7px;
  color: #8e2929;
  background: #fff2f2;
}

.protest-success-card {
  display: grid;
  max-width: 720px;
  place-items: center;
  gap: 12px;
  margin: 70px auto;
  padding: 52px;
  text-align: center;
}

.protest-success-card h1 {
  margin: 0;
  color: #132746;
}

.protest-success-card p {
  margin: 0;
  color: #64718a;
}

.protest-success-icon {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #31a668;
  font-size: 28px;
}

.protest-success-actions {
  display: flex;
  gap: 12px;
  margin-top: 18px;
}

.event-noticeboard-card {
  display: grid;
  gap: 14px;
}

.event-noticeboard-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.public-hearing-list {
  display: grid;
  gap: 10px;
}

.public-hearing-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 13px 0;
  border-top: 1px solid var(--line);
}

.public-hearing-item > span {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 7px;
  color: #7248e8;
  background: #f0ebff;
  font-weight: 600;
}

.public-hearing-item div {
  display: grid;
  gap: 3px;
}

.public-hearing-item small {
  color: #748098;
}

@media (max-width: 900px) {
  .protest-form-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .protest-grid-3,
  .protest-grid-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .protest-public-shell {
    width: min(100% - 24px, 1240px);
  }

  .protest-grid-2,
  .protest-grid-3,
  .protest-grid-4,
  .protest-check-grid {
    grid-template-columns: 1fr;
  }

  .protest-form-section {
    padding: 22px 18px;
  }

  .protest-form-actions,
  .protest-success-actions {
    align-items: stretch;
    flex-direction: column;
  }
}


.protest-public-page {
  min-height: 100vh;
  background: #f5f8fd;
}

/* Final public event information/detail page override. Keep this at EOF. */
main.detail-page {
  background: #f4f8ff;
}

main.detail-page .breadcrumb-nav,
main.detail-page .event-hero-panel,
main.detail-page .event-status-strip,
main.detail-page .detail-content,
main.detail-page .event-cta-panel {
  width: min(1180px, calc(100% - 48px));
  max-width: 1180px;
}

main.detail-page .breadcrumb-nav {
  margin: 0 auto;
  padding: 20px 0 14px;
}

main.detail-page .event-hero-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 26px;
  align-items: end;
  margin: 0 auto;
  border: 1px solid #dce7f6;
  border-radius: 18px;
  padding: clamp(28px, 4vw, 46px);
  overflow: hidden;
  color: var(--navy);
  background:
    linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.9) 45%, rgba(255,255,255,.25) 100%),
    url("images/hero.jpg") center right / cover no-repeat;
  box-shadow: 0 18px 46px rgba(6, 23, 68, .08);
}

main.detail-page .event-hero-content {
  max-width: 760px;
}

main.detail-page .event-hero-panel h1 {
  max-width: 760px;
  margin: 10px 0 14px;
  color: var(--navy);
  font-size: clamp(32px, 4.1vw, 56px);
  line-height: 1.04;
}

main.detail-page .event-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  color: #33435e;
}

main.detail-page .hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}

main.detail-page .organiser-card {
  align-self: stretch;
  border: 1px solid #dfeafa;
  border-radius: 14px;
  padding: 22px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 16px 36px rgba(6, 23, 68, .08);
}

main.detail-page .organiser-stats {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

main.detail-page .event-status-strip {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin: 18px auto 24px;
  border-radius: 14px;
}

main.detail-page .event-status-strip article {
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 10px;
  min-height: 82px;
  padding: 14px;
}

main.detail-page .event-status-strip article > div > span,
main.detail-page .event-status-strip article > div > small {
  font-size: 11px;
}

main.detail-page .event-status-strip article > div > strong {
  overflow-wrap: anywhere;
  font-size: 14px;
}

main.detail-page .detail-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 26px;
  margin: 0 auto;
  padding: 0 0 32px;
}

main.detail-page .detail-main,
main.detail-page .detail-aside {
  display: grid;
  align-content: start;
  gap: 22px;
  min-width: 0;
}

main.detail-page .event-overview-grid,
main.detail-page .event-lower-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(290px, 360px);
  gap: 22px;
  align-items: stretch;
}

main.detail-page .detail-section,
main.detail-page .detail-side-card,
main.detail-page .event-action-panel {
  border: 1px solid #dfeafa;
  border-radius: 14px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 14px 34px rgba(6, 23, 68, .055);
}

main.detail-page .detail-section {
  padding: 24px;
}

main.detail-page .detail-section h2,
main.detail-page .detail-side-card h2 {
  margin: 0 0 16px;
  color: var(--navy);
  font-size: 22px;
  line-height: 1.2;
}

main.detail-page .event-summary-section p {
  margin: 0 0 14px;
  color: #364862;
  font-size: 15px;
  line-height: 1.72;
}

main.detail-page .event-resource-card {
  padding: 0 !important;
  overflow: hidden;
}

main.detail-page .event-resource-card article {
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 12px;
  padding: 20px 22px;
}

main.detail-page .event-resource-card a,
main.detail-page .event-resource-card span,
main.detail-page .key-info-card dd,
main.detail-page .contact-lines dd {
  overflow-wrap: anywhere;
}

main.detail-page .schedule-table div {
  grid-template-columns: 130px minmax(0, 1fr);
  gap: 16px;
  min-height: 38px;
  padding: 7px 0;
}

main.detail-page .event-location-card {
  display: flex;
  flex-direction: column;
}

main.detail-page .event-location-card .compact-map {
  height: 245px;
  margin: 6px 0 18px;
  border-radius: 10px;
}

main.detail-page .detail-aside {
  position: sticky;
  top: 18px;
  align-self: start;
}

main.detail-page .detail-side-card {
  padding: 22px;
}

main.detail-page .key-info-card {
  color: #fff;
  background: linear-gradient(145deg, #061744 0%, #09264e 100%);
}

main.detail-page .key-info-card h2 {
  color: #fff;
}

main.detail-page .key-info-card dl div,
main.detail-page .contact-lines div {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1fr);
  gap: 12px;
  padding: 10px 0;
}

main.detail-page .download-card {
  display: grid;
}

main.detail-page .event-action-panel {
  display: grid;
  gap: 10px;
  padding: 14px;
}

main.detail-page .event-action-button {
  min-height: 54px;
  border-radius: 10px;
}

main.detail-page .event-cta-panel {
  margin: 4px auto 44px;
  border-radius: 16px;
}

@media (max-width: 1120px) {
  main.detail-page .event-hero-panel,
  main.detail-page .detail-content {
    grid-template-columns: 1fr;
  }

  main.detail-page .detail-aside {
    position: static;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  main.detail-page .event-action-panel {
    grid-column: 1 / -1;
  }

  main.detail-page .event-status-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  main.detail-page .breadcrumb-nav,
  main.detail-page .event-hero-panel,
  main.detail-page .event-status-strip,
  main.detail-page .detail-content,
  main.detail-page .event-cta-panel {
    width: calc(100% - 28px);
  }

  main.detail-page .event-overview-grid,
  main.detail-page .event-lower-grid,
  main.detail-page .detail-aside {
    grid-template-columns: 1fr;
  }

  main.detail-page .event-status-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  main.detail-page .event-hero-panel {
    padding: 24px 20px;
  }

  main.detail-page .event-status-strip {
    grid-template-columns: 1fr;
  }

  main.detail-page .event-status-strip article {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  main.detail-page .event-status-strip article:last-child {
    border-bottom: 0;
  }

  main.detail-page .detail-section,
  main.detail-page .detail-side-card {
    padding: 20px;
  }

  main.detail-page .schedule-table div,
  main.detail-page .key-info-card dl div,
  main.detail-page .contact-lines div {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  main.detail-page .contact-lines dd,
  main.detail-page .key-info-card dd {
    text-align: left;
  }

  main.detail-page .event-cta-panel,
  main.detail-page .event-cta-panel > div,
  main.detail-page .event-cta-panel nav {
    align-items: stretch;
    flex-direction: column;
  }
}

/* Shared public-site visual system. */
body:has(.app-header) {
  color: #14213d;
  background: #f5f8fc;
}

body:has(.app-header) .app-header {
  position: sticky;
  z-index: 40;
  top: 0;
  display: grid;
  width: 100%;
  min-height: 68px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 24px;
  padding: 10px max(24px, calc((100% - 1380px) / 2));
  border-bottom: 1px solid #e5ebf3;
  background: rgba(255,255,255,.96);
  box-shadow: 0 4px 18px rgba(12,31,69,.04);
  backdrop-filter: blur(14px);
}

body:has(.app-header) .app-header .brand-logo { width: 205px; max-width: none; height: auto; }
body:has(.app-header) .app-header .main-nav { justify-self: end; gap: 5px; }
body:has(.app-header) .app-header .main-nav a {
  padding: 9px 11px;
  border-radius: 6px;
  color: #46536b;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}
body:has(.app-header) .app-header .main-nav a::after { display: none; }
body:has(.app-header) .app-header .main-nav a:hover,
body:has(.app-header) .app-header .main-nav a.active { color: #0758c9; background: #edf5ff; }
body:has(.app-header) .app-header .header-actions { gap: 8px; }
body:has(.app-header) .app-header .outline-button { min-height: 38px; padding: 8px 14px; border-radius: 6px; }
body:has(.app-header) .app-header .icon-button { width: 38px; min-height: 38px; border-radius: 6px; }

.listing-page,
.ranking-page,
.results-page,
.entry-layout,
.protest-public-shell,
.privacy-page main {
  background: #f5f8fc;
}

.listing-page,
.ranking-page { padding-bottom: 44px; }

.listing-hero,
.results-list-hero,
.ranking-hero,
.entry-hero,
.privacy-hero {
  width: min(1180px, calc(100% - 40px));
  min-height: 0;
  margin: 18px auto 0;
  padding: 30px 34px;
  border: 0;
  border-radius: 8px;
  color: #fff;
  background: #071735;
  box-shadow: none;
}
.listing-hero::before,
.listing-hero::after { display: none; }
.listing-hero .eyebrow,
.results-list-hero .eyebrow,
.ranking-hero .eyebrow,
.entry-hero .eyebrow,
.privacy-hero .eyebrow { color: #77b9ff; }
.listing-hero h1,
.results-list-hero h1,
.ranking-hero h1,
.entry-hero h1,
.privacy-hero h1 { max-width: 760px; margin: 4px 0 8px; color: #fff; font-size: clamp(28px, 3.5vw, 44px); letter-spacing: 0; }
.listing-hero > p:last-child,
.results-list-hero > p:last-child,
.ranking-hero > p:last-child,
.entry-hero > p:last-child,
.privacy-hero > p { max-width: 720px; margin-bottom: 0; color: #c9d6e8; }

.event-directory,
.results-listing-board,
.ranking-board,
.privacy-layout,
.entry-layout > :not(.entry-hero),
.protest-public-shell {
  width: min(1180px, calc(100% - 40px));
  margin-right: auto;
  margin-left: auto;
}

.event-directory,
.results-listing-board,
.ranking-board { margin-top: 14px; padding: 20px; border: 1px solid #e1e8f1; border-radius: 8px; background: #fff; box-shadow: 0 5px 18px rgba(15,40,78,.045); }

.event-tabs,
.results-listing-header { min-height: 58px; padding: 0 0 14px; border-bottom: 1px solid #e8edf4; }
.event-tabs button,
.public-class-filters button,
.public-filter-buttons button,
.results-search-row button,
.event-pagination button { border-radius: 5px; }
.public-class-filters { gap: 7px; padding: 14px 0; }
.public-class-filters button { min-height: 35px; padding: 7px 13px; border: 1px solid #dce5f0; color: #3a4962; background: #fff; }
.public-class-filters button.active,
.public-class-filters button.is-active { border-color: #1769d2; color: #fff; background: #1769d2; }

.event-list-detailed { gap: 10px; }
.event-detail-card {
  min-height: 128px;
  border: 1px solid #e3eaf3;
  border-radius: 7px;
  background: #fff;
  box-shadow: none;
}
.event-detail-card:hover { border-color: #b8cce7; box-shadow: 0 8px 22px rgba(13,40,81,.07); transform: translateY(-1px); }
.event-date { border-radius: 6px; background: #091c43; }
.event-detail-card .event-copy h2 { color: #11284b; font-size: 17px; letter-spacing: 0; }
.event-tags span { border-radius: 4px; }
.event-actions a { border-radius: 5px; }

.results-filter-panel,
.results-side-card,
.ranking-sidebar,
.ranking-table-card,
.entry-card,
.protest-form-card,
.privacy-nav,
.privacy-content {
  border: 1px solid #e1e8f1;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(15,40,78,.04);
}
.results-filter-panel select,
.results-search-row input,
.entry-card input,
.entry-card select,
.entry-card textarea { border-color: #d8e3ef; border-radius: 6px; background: #fff; }

.results-page .breadcrumb-nav,
.results-page .results-hero,
.results-page .results-layout { width: min(1180px, calc(100% - 40px)); }
.results-page .results-hero { margin-top: 0; border-radius: 8px; background: #071735; box-shadow: none; }
.results-page .results-layout { grid-template-columns: 1fr; gap: 14px; }
.results-page .results-side-nav { display: none; }
.results-page .results-board { border: 1px solid #e1e8f1; border-radius: 8px; box-shadow: 0 5px 18px rgba(15,40,78,.04); }

.detail-page { background: #f5f8fc; }
.detail-page .breadcrumb-nav { color: #607089; }
.detail-page .event-hero-panel,
.detail-page .event-status-strip,
.detail-page .detail-section,
.detail-page .detail-side-card,
.detail-page .event-action-panel,
.detail-page .event-cta-panel { border-radius: 8px; box-shadow: 0 5px 18px rgba(15,40,78,.04); }

.privacy-layout { margin-top: 14px; }
.privacy-nav { top: 86px; }
.privacy-content section { scroll-margin-top: 90px; }

@media (max-width: 940px) {
  body:has(.app-header) .app-header { gap: 12px; padding-inline: 16px; }
  body:has(.app-header) .app-header .brand-logo { width: 175px; }
  body:has(.app-header) .app-header .main-nav { overflow-x: auto; justify-self: stretch; scrollbar-width: none; }
  body:has(.app-header) .app-header .main-nav::-webkit-scrollbar { display: none; }
  body:has(.app-header) .app-header .main-nav a { flex: 0 0 auto; padding-inline: 8px; font-size: 11px; }
  body:has(.app-header) .app-header .icon-button { display: none; }
}

@media (max-width: 700px) {
  body:has(.app-header) .app-header { position: relative; grid-template-columns: 1fr auto; min-height: 58px; }
  body:has(.app-header) .app-header .main-nav { grid-column: 1 / -1; justify-self: stretch; padding-top: 5px; border-top: 1px solid #edf1f6; }
  body:has(.app-header) .app-header .header-actions { grid-column: 2; grid-row: 1; }
  body:has(.app-header) .app-header .outline-button { padding: 7px 10px; font-size: 11px; }
  .listing-hero,
  .results-list-hero,
  .ranking-hero,
  .entry-hero,
  .privacy-hero,
  .event-directory,
  .results-listing-board,
  .ranking-board,
  .privacy-layout,
  .entry-layout > :not(.entry-hero),
  .protest-public-shell,
  .results-page .breadcrumb-nav,
  .results-page .results-hero,
  .results-page .results-layout { width: calc(100% - 20px); }
  .listing-hero,
  .results-list-hero,
  .ranking-hero,
  .entry-hero,
  .privacy-hero { margin-top: 10px; padding: 23px 19px; }
  .event-directory,
  .results-listing-board,
  .ranking-board { padding: 12px; }
  .event-detail-card { border-radius: 7px; }
  .privacy-layout { grid-template-columns: 1fr; }
  .privacy-nav { position: static; }
}

/* App-aligned public event details. */
main.detail-page .breadcrumb-nav,
main.detail-page .event-hero-panel,
main.detail-page .event-status-strip,
main.detail-page .detail-content,
main.detail-page .event-cta-panel {
  width: min(1040px, calc(100% - 32px));
}

main.detail-page .event-hero-panel {
  grid-template-columns: minmax(0, 1fr) 250px;
  min-height: 230px;
  gap: 20px;
  align-items: center;
  border: 0;
  border-radius: 8px;
  padding: 30px 34px;
  color: #fff;
  background: #07142e;
  box-shadow: none;
}

main.detail-page .event-hero-panel h1 {
  margin: 8px 0 10px;
  color: #fff;
  font-size: clamp(30px, 4vw, 46px);
  letter-spacing: 0;
}

main.detail-page .event-hero-meta { color: #c8d5e8; }
main.detail-page .hero-badge { color: #bfe69b; background: rgba(101,169,39,.18); border-color: rgba(151,204,102,.35); }

main.detail-page .organiser-card {
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 8px;
  padding: 18px;
  color: #fff;
  background: rgba(255,255,255,.08);
  box-shadow: none;
}

main.detail-page .organiser-card > span,
main.detail-page .organiser-stats span { color: #bdcbe0; }
main.detail-page .organiser-logo-line strong,
main.detail-page .organiser-stats strong { color: #fff; }

main.detail-page .event-status-strip {
  margin: 12px auto;
  border: 1px solid #dfe7f1;
  border-radius: 8px;
  box-shadow: none;
}

main.detail-page .event-status-strip article {
  grid-template-columns: 32px minmax(0,1fr);
  min-height: 68px;
  padding: 10px 12px;
}

main.detail-page .status-icon { width: 32px; height: 32px; border-radius: 8px; }

main.detail-page .detail-content {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  padding-bottom: 20px;
}

main.detail-page .detail-main { gap: 12px; }
main.detail-page .event-overview-grid,
main.detail-page .event-lower-grid { gap: 12px; }

main.detail-page .detail-section,
main.detail-page .detail-side-card,
main.detail-page .event-action-panel {
  border: 1px solid #dfe7f1;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(7,20,46,.045);
}

main.detail-page .detail-section,
main.detail-page .detail-side-card { padding: 18px; }

main.detail-page .detail-section h2,
main.detail-page .detail-side-card h2 {
  margin-bottom: 13px;
  font-size: 18px;
  letter-spacing: 0;
}

main.detail-page .event-summary-section { min-height: 140px; }
main.detail-page .event-summary-section p { font-size: 14px; line-height: 1.58; }

main.detail-page .event-resource-card article { padding: 14px 16px; }
main.detail-page .event-location-card .compact-map { height: 220px; margin-bottom: 14px; border-radius: 8px; }

main.detail-page .detail-aside {
  position: static;
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 12px;
}

main.detail-page .key-info-card {
  color: var(--navy);
  background: #fff;
}

main.detail-page .key-info-card h2 { color: var(--navy); }
main.detail-page .key-info-card dl div,
main.detail-page .contact-lines div { padding: 8px 0; }
main.detail-page .key-info-card dt { color: #65758c; }
main.detail-page .key-info-card dd { color: var(--navy); }

main.detail-page .event-action-panel { padding: 12px; }
main.detail-page .event-action-button { min-height: 46px; border-radius: 8px; }
main.detail-page .event-cta-panel { margin: 0 auto 32px; border-radius: 8px; }

@media (max-width: 900px) {
  main.detail-page .event-hero-panel { grid-template-columns: 1fr; }
  main.detail-page .detail-aside { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  main.detail-page .breadcrumb-nav,
  main.detail-page .event-hero-panel,
  main.detail-page .event-status-strip,
  main.detail-page .detail-content,
  main.detail-page .event-cta-panel { width: calc(100% - 20px); }
  main.detail-page .event-hero-panel { min-height: 0; padding: 22px 18px; }
  main.detail-page .organiser-card { padding: 14px; }
  main.detail-page .event-status-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  main.detail-page .event-status-strip article { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  main.detail-page .event-status-strip article:nth-child(2n) { border-right: 0; }
  main.detail-page .event-overview-grid,
  main.detail-page .event-lower-grid { grid-template-columns: 1fr; }
  main.detail-page .detail-section,
  main.detail-page .detail-side-card { padding: 16px; }
  main.detail-page .schedule-table div { grid-template-columns: 112px minmax(0,1fr); gap: 10px; }
}

/* 2026 public homepage: compact, data-led layout. */
body:has(.home-page) {
  color: #14213d;
  background: #f5f8fc;
}

body:has(.home-page) .site-header {
  position: sticky;
  z-index: 40;
  top: 0;
  width: 100%;
  min-height: 68px;
  padding: 10px max(24px, calc((100% - 1380px) / 2));
  border-bottom: 1px solid #e5ebf3;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 4px 18px rgba(12, 31, 69, .04);
  backdrop-filter: blur(14px);
}

body:has(.home-page) .brand-logo { width: 205px; height: auto; }
body:has(.home-page) .main-nav { gap: 5px; margin-left: auto; }
body:has(.home-page) .main-nav a {
  padding: 9px 11px;
  border-radius: 6px;
  color: #46536b;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}
body:has(.home-page) .main-nav a:hover,
body:has(.home-page) .main-nav a.active { color: #0758c9; background: #edf5ff; }
body:has(.home-page) .header-actions { margin-left: 12px; }

.home-menu-button { display: none; width: 40px; height: 40px; padding: 9px; border: 0; background: transparent; }
.home-menu-button span { display: block; width: 22px; height: 2px; margin: 4px 0; background: #102448; }

.home-page {
  width: min(1380px, calc(100% - 40px));
  margin: 0 auto;
  padding: 18px 0 42px;
}

.home-command { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(360px, .9fr); gap: 14px; }
.home-featured-event {
  position: relative;
  display: flex;
  min-height: 430px;
  align-items: flex-end;
  overflow: hidden;
  border-radius: 8px;
  color: #fff;
  background:
    linear-gradient(90deg, rgba(4, 21, 57, .93) 0%, rgba(4, 29, 70, .68) 52%, rgba(4, 22, 57, .2) 100%),
    var(--event-image, url('assets/hero-radio-sailing.png')) center / cover no-repeat;
}
.home-featured-event::after { position: absolute; inset: auto 0 0; height: 5px; content: ''; background: #20b66f; }
.home-featured-content { position: relative; z-index: 1; width: min(650px, 82%); padding: 38px; }
.home-featured-content > p { margin: 14px 0 5px; color: #d8e6fa; font-size: 13px; font-weight: 700; text-transform: uppercase; }
.home-featured-content h1 { margin: 0; color: #fff; font-size: clamp(32px, 4vw, 56px); line-height: 1.03; letter-spacing: 0; }
.live-pill { display: inline-flex; padding: 7px 10px; border-radius: 5px; color: #062e20; background: #6ee7a8; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.home-featured-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 18px 0 22px; color: #e2eaf7; font-size: 14px; }
.home-featured-meta span + span::before { margin-right: 18px; content: '\2022'; color: #6ee7a8; }
.home-featured-button { display: inline-flex; align-items: center; gap: 12px; padding: 11px 15px; border-radius: 6px; color: #fff; background: #0a62d7; font-size: 13px; font-weight: 750; }
.home-featured-button:hover { background: #0874f7; }

.home-command .dashboard-card,
.latest-results-card,
.home-utility-grid > article,
.home-quick-actions { border: 1px solid #e1e8f1; border-radius: 8px; background: #fff; box-shadow: 0 5px 18px rgba(15, 40, 78, .045); }
.home-command .dashboard-card { padding: 20px; }
.dashboard-card-header { padding-bottom: 13px; border-bottom: 1px solid #edf1f6; }
.dashboard-card-header h2 { font-size: 18px; letter-spacing: 0; }
.dashboard-card-header a { color: #1769d2; font-size: 12px; }
.home-command .upcoming-list { display: grid; }
.home-command .upcoming-list article { position: relative; grid-template-columns: 50px minmax(0, 1fr) auto 18px; gap: 12px; min-height: 76px; padding: 12px 0; border-bottom: 1px solid #edf1f6; }
.home-command .upcoming-list article:last-child { border-bottom: 0; }
.home-command .upcoming-list time { display: grid; width: 48px; height: 50px; place-content: center; border-radius: 6px; color: #fff; background: #091c43; text-align: center; line-height: 1; }
.home-command .upcoming-list time strong { font-size: 18px; }
.home-command .upcoming-list time span { margin-top: 4px; font-size: 9px; font-weight: 800; }
.home-command .upcoming-list h3 { margin-bottom: 5px; font-size: 13px; line-height: 1.25; }
.home-command .upcoming-list small { color: #778399; font-size: 11px; }
.entry-open { padding: 5px 7px; border-radius: 4px; color: #a02d5c; background: #fdeaf2; font-size: 9px; font-weight: 800; text-transform: uppercase; white-space: nowrap; }
.home-command .event-row-link { display: grid; width: 18px; height: 30px; place-items: center; padding: 0; color: #738198; background: transparent; font-size: 24px; }

.latest-results-card { margin-top: 14px; padding: 20px; }
.home-result-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.latest-result-list .home-result-card { grid-template-columns: auto minmax(0, 1fr); gap: 11px; min-height: 105px; align-content: center; padding: 16px; border: 1px solid #e6ecf4; border-radius: 7px; background: #fff; }
.home-result-card .class-badge { grid-row: span 2; align-self: start; }
.home-result-card small { grid-column: 2; color: #718096; text-align: left; }
.home-result-card h3 { font-size: 14px; }

.home-utility-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 14px; margin-top: 14px; }
.home-welcome-panel { padding: 28px; background: #eaf4ff !important; }
.home-welcome-panel h2 { max-width: 520px; margin: 5px 0 10px; color: #0c2b58; font-size: 25px; letter-spacing: 0; }
.home-welcome-panel > p:last-child { max-width: 580px; margin: 0; color: #53647d; line-height: 1.6; }
.home-quick-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; }
.home-quick-actions a { display: grid; gap: 4px; padding: 20px; border-right: 1px solid #e8edf4; border-bottom: 1px solid #e8edf4; color: #12284a; }
.home-quick-actions a:nth-child(2n) { border-right: 0; }
.home-quick-actions a:nth-last-child(-n+2) { border-bottom: 0; }
.home-quick-actions a:hover { background: #f6f9fd; }
.home-quick-actions strong { font-size: 14px; }
.home-quick-actions span { color: #7b8799; font-size: 11px; }

body:has(.home-page) .service-ribbon { margin-top: 14px; }
body:has(.home-page) .service-ribbon,
body:has(.home-page) .integration-ribbon { border-color: #e1e8f1; box-shadow: none; }
body:has(.home-page) .sailrc-group-section { border-radius: 8px; background: #071735; }
body:has(.home-page) .benefit-ribbon { border-radius: 0 0 8px 8px; }
body:has(.home-page) .platform-section { display: none; }
body:has(.home-page) .club-strip { border-radius: 8px; }

@media (max-width: 1060px) {
  body:has(.home-page) .main-nav a { padding-inline: 7px; font-size: 11px; }
  .home-command { grid-template-columns: 1fr; }
  .home-featured-event { min-height: 390px; }
  .home-command .upcoming-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 18px; }
}

@media (max-width: 780px) {
  body:has(.home-page) .site-header { min-height: 62px; padding: 9px 16px; }
  body:has(.home-page) .brand-logo { width: 175px; }
  .home-menu-button { display: block; order: 3; margin-left: 4px; cursor: pointer; }
  body:has(.home-page) .main-nav { position: absolute; top: 61px; right: 12px; left: 12px; display: none; margin: 0; padding: 8px; border: 1px solid #dfe7f1; border-radius: 8px; background: #fff; box-shadow: 0 14px 35px rgba(8, 28, 61, .15); }
  body:has(.home-page) .main-nav.is-open { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body:has(.home-page) .main-nav a { padding: 12px; }
  body:has(.home-page) .icon-button { display: none; }
  .home-page { width: calc(100% - 24px); padding-top: 12px; }
  .home-featured-event { min-height: 360px; }
  .home-featured-content { width: 100%; padding: 26px; }
  .home-result-grid { grid-template-columns: 1fr; }
  .home-utility-grid { grid-template-columns: 1fr; }
  body:has(.home-page) .service-ribbon { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  body:has(.home-page) .header-actions .outline-button { display: none; }
  .home-featured-event { min-height: 390px; background-position: 62% center; }
  .home-featured-content h1 { font-size: 33px; }
  .home-featured-meta { display: grid; gap: 5px; }
  .home-featured-meta span + span::before { display: none; }
  .home-command .dashboard-card,
  .latest-results-card { padding: 16px; }
  .home-command .upcoming-list { grid-template-columns: 1fr; }
  .home-command .upcoming-list article { grid-template-columns: 46px minmax(0, 1fr) 16px; }
  .entry-open { display: none; }
  .home-quick-actions { grid-template-columns: 1fr; }
  .home-quick-actions a,
  .home-quick-actions a:nth-child(2n),
  .home-quick-actions a:nth-last-child(-n+2) { border-right: 0; border-bottom: 1px solid #e8edf4; }
  .home-quick-actions a:last-child { border-bottom: 0; }
  body:has(.home-page) .service-ribbon { grid-template-columns: 1fr; }
}

.home-activity-panel { padding: 22px !important; background: #fff !important; }
.home-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 13px; border-bottom: 1px solid #e8edf4; }
.home-section-heading .eyebrow { margin: 0 0 2px; color: #6f7d92; font-size: 10px; }
.home-section-heading h2 { margin: 0; color: #10284d; font-size: 18px; letter-spacing: 0; }
.activity-live-dot { display: inline-flex; align-items: center; gap: 6px; color: #168553; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.activity-live-dot::before { width: 7px; height: 7px; border-radius: 50%; content: ''; background: #20b66f; box-shadow: 0 0 0 4px rgba(32,182,111,.12); }
.home-activity-list { display: grid; }
.home-activity-list a { display: grid; min-height: 59px; grid-template-columns: 30px minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 9px 0; border-bottom: 1px solid #edf1f6; color: #14284a; }
.home-activity-list a:last-child { border-bottom: 0; }
.home-activity-list a:hover strong { color: #1769d2; }
.home-activity-list a > span:nth-child(2) { display: grid; gap: 2px; min-width: 0; }
.home-activity-list strong { overflow: hidden; font-size: 12px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.home-activity-list small { overflow: hidden; color: #79869a; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.home-activity-list time { color: #8793a5; font-size: 10px; white-space: nowrap; }
.activity-icon { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 6px; background: #eaf2fd; }
.activity-icon::after { color: #1769d2; content: '+'; font-size: 16px; font-weight: 700; }
.activity-entry .activity-icon { background: #e9f8f1; }
.activity-entry .activity-icon::after { color: #168553; content: '\2713'; }
.activity-result .activity-icon { background: #f0ebff; }
.activity-result .activity-icon::after { color: #6945c7; content: '\2191'; }
.activity-closing .activity-icon { background: #fff1df; }
.activity-closing .activity-icon::after { color: #b76500; content: '!'; }
.home-activity-empty { margin: 20px 0 4px; color: #778399; font-size: 12px; }

@media (max-width: 560px) {
  .home-activity-list strong,
  .home-activity-list small { white-space: normal; }
  .home-activity-list a { grid-template-columns: 30px minmax(0,1fr); }
  .home-activity-list time { grid-column: 2; }
}

.home-featured-event { display: block; background: #071735; }
.home-featured-slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  visibility: hidden;
  opacity: 0;
  background:
    linear-gradient(90deg, rgba(4,21,57,.94) 0%, rgba(4,29,70,.7) 54%, rgba(4,22,57,.2) 100%),
    var(--event-image, url('assets/hero-radio-sailing.png')) center / cover no-repeat;
  transition: opacity .55s ease, visibility .55s ease;
}
.home-featured-slide.is-active { visibility: visible; opacity: 1; }
.home-featured-event.has-live-results::after { background: #20b66f; }
.home-featured-event.has-live-results .live-pill { position: relative; padding-left: 23px; color: #073521; background: #71e6a9; }
.home-featured-event.has-live-results .live-pill::before { position: absolute; left: 9px; width: 7px; height: 7px; border-radius: 50%; content: ''; background: #087744; animation: msr-live-pulse 1.8s infinite; }
.home-featured-dots { position: absolute; z-index: 3; right: 20px; bottom: 18px; display: flex; gap: 6px; }
.home-featured-dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.45); cursor: pointer; }
.home-featured-dots button.is-active { width: 22px; border-radius: 5px; background: #fff; }
@keyframes msr-live-pulse { 0%,100% { box-shadow: 0 0 0 0 rgba(8,119,68,.35); } 50% { box-shadow: 0 0 0 5px rgba(8,119,68,0); } }
@media (prefers-reduced-motion: reduce) {
  .home-featured-slide { transition: none; }
  .home-featured-event.has-live-results .live-pill::before { animation: none; }
}

.home-featured-event.has-live-results { min-height: 500px; }
.home-featured-event.has-live-results .home-featured-slide { display: grid; grid-template-columns: minmax(0,1fr) 330px; gap: 22px; align-items: center; padding: 28px; }
.home-featured-event.has-live-results .home-featured-content { width: auto; padding: 10px; }
.home-featured-event.has-live-results .home-featured-content h1 { font-size: clamp(30px, 3.2vw, 48px); }
.home-live-leaderboard { position: relative; z-index: 2; overflow: hidden; border: 1px solid rgba(255,255,255,.22); border-radius: 7px; color: #fff; background: rgba(5,20,49,.9); box-shadow: 0 12px 34px rgba(0,0,0,.2); backdrop-filter: blur(10px); }
.home-live-leaderboard-heading { display: flex; align-items: center; justify-content: space-between; min-height: 42px; padding: 9px 12px; border-bottom: 1px solid rgba(255,255,255,.14); }
.home-live-leaderboard-heading strong { font-size: 13px; }
.home-live-leaderboard-heading span { color: #8fd6ff; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.home-live-leaderboard-table { min-height: 270px; }
.home-live-leaderboard-table > p { margin: 0; padding: 22px 14px; color: #c7d5e7; font-size: 11px; line-height: 1.5; }
.home-leader-row { display: grid; min-height: 27px; grid-template-columns: 30px 62px minmax(0,1fr) 42px; gap: 7px; align-items: center; padding: 4px 10px; border-bottom: 1px solid rgba(255,255,255,.08); font-size: 10px; }
.home-leader-row:last-child { border-bottom: 0; }
.home-leader-row > span:nth-child(3) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-leader-row > strong:last-child { color: #78e4ad; text-align: right; }
.home-leader-head { min-height: 24px; color: #8fa1b9; background: rgba(255,255,255,.05); font-size: 8px; font-weight: 800; text-transform: uppercase; }
.home-leader-head > span:last-child { text-align: right; }

@media (max-width: 900px) {
  .home-featured-event.has-live-results { min-height: 780px; }
  .home-featured-event.has-live-results .home-featured-slide { grid-template-columns: 1fr; align-content: center; }
  .home-live-leaderboard { width: 100%; }
}

@media (max-width: 560px) {
  .home-featured-event.has-live-results { min-height: 760px; }
  .home-featured-event.has-live-results .home-featured-slide { gap: 14px; padding: 16px; }
  .home-featured-event.has-live-results .home-featured-content { padding: 5px; }
  .home-featured-event.has-live-results .home-featured-content h1 { font-size: 28px; }
  .home-featured-event.has-live-results .home-featured-meta { margin: 10px 0 13px; }
  .home-leader-row { grid-template-columns: 27px 58px minmax(0,1fr) 38px; padding-inline: 8px; }
  .home-featured-dots { right: 13px; bottom: 8px; }
}

/* Homepage energy pass: imagery, contrast and differentiated actions. */
body:has(.home-page) { background: #eef4fb; }
.home-page { position: relative; }
.home-page::before { position: absolute; z-index: -1; top: 0; right: -50vw; left: -50vw; height: 290px; content: ''; background: #dcecff; }
.home-command { position: relative; }
.home-featured-event { border: 1px solid rgba(4,26,65,.25); box-shadow: 0 18px 42px rgba(8,33,73,.18); }
.home-featured-slide { background-position: center; }
.home-featured-slide::before { position: absolute; inset: 0; content: ''; background: linear-gradient(180deg, rgba(0,0,0,0) 48%, rgba(2,13,36,.3)); pointer-events: none; }
.home-featured-content,
.home-live-leaderboard { position: relative; z-index: 2; }
.home-featured-button { box-shadow: 0 8px 22px rgba(0,77,178,.3); transition: transform .18s ease, background .18s ease; }
.home-featured-button:hover { transform: translateY(-2px); }
.home-command .upcoming-card { border-top: 4px solid #1670de; }
.home-command .upcoming-list article { transition: padding .18s ease, background .18s ease; }
.home-command .upcoming-list article:hover { margin-inline: -8px; padding-inline: 8px; background: #f3f8ff; }
.home-command .upcoming-list article:nth-child(4n+2) time { background: #126e70; }
.home-command .upcoming-list article:nth-child(4n+3) time { background: #7450b8; }
.home-command .upcoming-list article:nth-child(4n+4) time { background: #a04b3f; }

.latest-results-card { border-top: 4px solid #20a96b; }
.latest-results-card .dashboard-card-header { align-items: end; }
.latest-results-card .dashboard-card-header .eyebrow { margin: 0 0 2px; color: #168553; font-size: 9px; }
.home-result-grid { align-items: stretch; }
.latest-result-list .home-result-card { display: grid; min-height: 0; grid-template-columns: 1fr; gap: 0; align-content: start; padding: 0; overflow: hidden; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.latest-result-list .home-result-card:hover { border-color: #aec9e9; box-shadow: 0 12px 26px rgba(13,42,83,.12); transform: translateY(-4px); }
.home-result-cover { position: relative; display: block; height: 112px; overflow: hidden; background: #dfe9f5; }
.home-result-cover::after { position: absolute; inset: 0; content: ''; background: linear-gradient(180deg, transparent 42%, rgba(4,20,49,.56)); }
.home-result-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.home-result-card:hover .home-result-cover img { transform: scale(1.04); }
.home-result-cover span { position: absolute; z-index: 2; right: 10px; bottom: 9px; padding: 5px 8px; border-radius: 4px; color: #082245; background: #8ee9bb; font-size: 9px; font-weight: 850; }
.home-result-card > div { padding: 14px 15px 5px; }
.home-result-card h3 { margin-bottom: 5px; font-size: 15px; }
.home-result-card p { color: #6e7c91; font-size: 11px; }
.home-result-card > small { grid-column: auto; padding: 0 15px 15px; color: #168553; font-weight: 750; }

.home-utility-grid { gap: 14px; }
.home-activity-panel { border-top: 4px solid #7450b8 !important; }
.home-quick-actions { border-top: 4px solid #e2a523; }
.home-quick-actions a { position: relative; grid-template-columns: 34px minmax(0,1fr); column-gap: 11px; transition: background .18s ease, color .18s ease; }
.home-quick-actions i { display: grid; width: 30px; height: 30px; grid-row: span 2; place-items: center; border-radius: 6px; color: #0758c9; background: #e6f1ff; font-size: 9px; font-style: normal; font-weight: 850; }
.home-quick-actions strong,
.home-quick-actions span { grid-column: 2; }
.home-quick-actions .quick-results i { color: #168553; background: #e5f7ef; }
.home-quick-actions .quick-upload i { color: #a15d00; background: #fff0d8; }
.home-quick-actions .quick-rankings i { color: #6840b8; background: #efe9fb; }
.home-quick-actions a:hover { color: #0758c9; background: #f0f6fd; }

body:has(.home-page) .service-ribbon { border-top: 4px solid #168553; background: #f8fbff; }
body:has(.home-page) .integration-ribbon { background: #fff; }
body:has(.home-page) .sailrc-group-section { position: relative; overflow: hidden; box-shadow: 0 18px 38px rgba(7,23,53,.14); }
body:has(.home-page) .sailrc-group-section::before { position: absolute; top: 0; bottom: 0; left: 0; width: 6px; content: ''; background: #27b875; }
body:has(.home-page) .club-strip { border: 1px solid #cfe0f3; background: #e7f2ff; }

@media (max-width: 780px) {
  .home-result-cover { height: 145px; }
}

@media (max-width: 560px) {
  .home-page::before { height: 240px; }
  .home-result-cover { height: 125px; }
  .home-quick-actions a { grid-template-columns: 34px minmax(0,1fr) !important; }
}

/* Homepage refinement: one grid, lighter density and compact branding. */
.home-page > section {
  width: 100%;
  box-sizing: border-box;
  margin-right: 0;
  margin-left: 0;
}
.home-command,
.latest-results-card,
.home-utility-grid,
body:has(.home-page) .service-ribbon,
body:has(.home-page) .integration-ribbon,
body:has(.home-page) .sailrc-group-section,
body:has(.home-page) .benefit-ribbon,
body:has(.home-page) .club-strip { width: 100%; margin-right: 0; margin-left: 0; }

.home-featured-event.has-live-results { min-height: 460px; }
.home-featured-event.has-live-results .home-featured-slide { padding: 24px; }
.home-live-leaderboard-table { min-height: 250px; }
.home-leader-row { min-height: 25px; padding-top: 3px; padding-bottom: 3px; }

.home-command,
.home-result-grid { gap: 12px; }
.latest-results-card,
.home-utility-grid { margin-top: 12px; }
.home-utility-grid { display: block; }
.home-activity-panel { width: 100%; padding: 18px 20px !important; }
.home-activity-list { grid-template-columns: repeat(5, minmax(0,1fr)); gap: 0; }
.home-activity-list a {
  min-height: 96px;
  grid-template-columns: 28px minmax(0,1fr);
  align-content: center;
  padding: 12px 15px;
  border-right: 1px solid #e8edf4;
  border-bottom: 0;
}
.home-activity-list a:first-child { padding-left: 0; }
.home-activity-list a:last-child { padding-right: 0; border-right: 0; }
.home-activity-list time { grid-column: 2; }
.home-activity-list strong,
.home-activity-list small { white-space: normal; }

body:has(.home-page) .service-ribbon {
  grid-template-columns: 150px repeat(4,minmax(0,1fr));
  gap: 18px;
  margin-top: 12px;
  padding: 15px 20px;
  border-radius: 8px 8px 0 0;
}
body:has(.home-page) .service-ribbon strong { font-size: 14px; }
body:has(.home-page) .service-ribbon span { font-size: 12px; }
body:has(.home-page) .service-ribbon small { font-size: 10px; }
body:has(.home-page) .integration-ribbon {
  grid-template-columns: 190px repeat(4,1fr) auto;
  gap: 14px;
  margin-top: 0;
  padding: 13px 20px;
  border-top: 0;
  border-radius: 0 0 8px 8px;
}
body:has(.home-page) .integration-ribbon strong { font-size: 12px; }
body:has(.home-page) .integration-ribbon span { font-size: 14px; }

body:has(.home-page) .sailrc-group-section {
  grid-template-columns: 280px minmax(0,1fr);
  gap: 18px;
  margin-top: 12px;
  padding: 20px;
  border: 0;
  border-radius: 8px;
}
body:has(.home-page) .sailrc-group-intro { padding: 4px 10px; }
body:has(.home-page) .sailrc-group-logo { width: 125px; max-height: 30px; margin-bottom: 10px; object-fit: contain; object-position: left center; }
body:has(.home-page) .sailrc-group-intro h2 { margin-bottom: 8px; font-size: 25px; }
body:has(.home-page) .sailrc-group-intro p:not(.eyebrow) { font-size: 12px; line-height: 1.5; }
body:has(.home-page) .sailrc-group-grid { gap: 1px; overflow: hidden; border-radius: 6px; background: rgba(255,255,255,.16); }
body:has(.home-page) .sailrc-group-grid article { min-height: 150px; padding: 16px; border: 0; border-radius: 0; background: #fff; }
body:has(.home-page) .sailrc-linked-product > a { padding: 16px; }
body:has(.home-page) .sailrc-group-grid span { width: auto; min-height: 34px; margin: 0 0 10px; padding: 0; border: 0; background: transparent; }
body:has(.home-page) .sailrc-group-grid span img { width: auto; max-width: 110px; max-height: 28px; object-fit: contain; object-position: left center; }
body:has(.home-page) .sailrc-group-grid h3 { margin-bottom: 6px; font-size: 13px; }
body:has(.home-page) .sailrc-group-grid p { font-size: 10px; line-height: 1.45; }
body:has(.home-page) .benefit-ribbon { margin-top: 0; padding: 12px 20px; border-radius: 0 0 8px 8px; font-size: 10px; }
body:has(.home-page) .club-strip { margin-top: 12px; padding: 24px; }
body:has(.home-page) .club-strip h2 { font-size: 24px; }
body:has(.home-page) footer .footer-logo { width: 175px; max-height: 48px; object-fit: contain; }

@media (max-width: 1050px) {
  .home-activity-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-activity-list a,
  .home-activity-list a:first-child,
  .home-activity-list a:last-child { padding: 12px; border-right: 0; border-bottom: 1px solid #e8edf4; }
  .home-activity-list a:last-child { border-bottom: 0; }
  body:has(.home-page) .service-ribbon { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body:has(.home-page) .service-ribbon > strong { grid-column: 1/-1; }
  body:has(.home-page) .integration-ribbon { grid-template-columns: repeat(3,minmax(0,1fr)); }
  body:has(.home-page) .integration-ribbon > strong { grid-column: 1/-1; }
  body:has(.home-page) .sailrc-group-section { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .home-featured-event.has-live-results { min-height: 720px; }
  .home-activity-list { grid-template-columns: 1fr; }
  body:has(.home-page) .service-ribbon,
  body:has(.home-page) .integration-ribbon { grid-template-columns: 1fr; }
  body:has(.home-page) .integration-ribbon span { text-align: left; }
  body:has(.home-page) .sailrc-group-grid { grid-template-columns: 1fr; gap: 1px; }
  body:has(.home-page) .benefit-ribbon { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
}

/* Editorial sports dashboard layout. */
body:has(.home-page) { background: #f7f9fc; }
.home-page { width: min(1240px, calc(100% - 36px)); padding-top: 14px; }
.home-page::before { height: 230px; background: #edf4fc; }
.home-command { grid-template-columns: minmax(0,1.75fr) minmax(350px,.92fr); gap: 14px; }
.home-featured-event,
.home-command .dashboard-card,
.latest-results-card,
.home-championship-panel,
.home-top-sailors,
.home-activity-panel { border-color: #dde5ef; border-radius: 6px; box-shadow: 0 6px 22px rgba(12,35,70,.055); }
.home-featured-event { box-shadow: 0 14px 36px rgba(7,28,62,.16); }
.home-command .upcoming-card { padding: 16px; border-top: 1px solid #dde5ef; }
.home-command .upcoming-list article { grid-template-columns: 45px minmax(0,1fr) 68px 14px; gap: 10px; min-height: 76px; }
.home-command .upcoming-list time { width: 43px; height: 48px; color: #102748; background: transparent !important; }
.home-command .upcoming-list time strong { font-size: 20px; }
.home-command .upcoming-list time span { color: #75849a; }
.up-next-thumb { width: 68px; height: 48px; border-radius: 4px; object-fit: cover; }
.home-command .entry-open { position: absolute; right: 100px; bottom: 8px; padding: 2px 5px; font-size: 7px; }
.home-command .event-row-link { grid-column: 4; }

.home-lower-grid { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(250px,.8fr) minmax(280px,.9fr); gap: 14px; margin-top: 14px; }
.home-lower-grid > * { min-width: 0; }
.home-lower-grid .latest-results-card { margin: 0; padding: 16px; border-top: 1px solid #dde5ef; }
.home-lower-grid .home-result-grid { grid-template-columns: 1fr; gap: 0; margin-top: 4px; }
.home-lower-grid .latest-result-list .home-result-card { display: grid; grid-template-columns: 74px minmax(0,1fr) auto; min-height: 77px; align-items: center; border: 0; border-bottom: 1px solid #e8edf3; border-radius: 0; }
.home-lower-grid .latest-result-list .home-result-card:last-child { border-bottom: 0; }
.home-lower-grid .latest-result-list .home-result-card:hover { box-shadow: none; transform: none; }
.home-lower-grid .home-result-cover { width: 64px; height: 48px; margin-left: 2px; border-radius: 4px; }
.home-lower-grid .home-result-cover span { right: 4px; bottom: 4px; padding: 2px 4px; font-size: 7px; }
.home-lower-grid .home-result-card > div { padding: 8px 4px; }
.home-lower-grid .home-result-card h3 { margin: 0 0 3px; font-size: 12px; }
.home-lower-grid .home-result-card p { margin: 0; font-size: 9px; }
.home-lower-grid .home-result-card > small { grid-column: 3; padding: 0 6px; font-size: 9px; white-space: nowrap; }
.home-lower-grid .latest-results-card .dashboard-card-header .eyebrow { display: none; }

.home-championship-panel,
.home-top-sailors { overflow: hidden; background: #fff; }
.home-panel-heading { display: flex; min-height: 45px; align-items: center; justify-content: space-between; gap: 10px; padding: 0 14px; border-bottom: 1px solid #e5ebf2; color: #142746; text-transform: uppercase; }
.home-panel-heading strong { font-size: 11px; }
.home-panel-heading a { color: #55708f; font-size: 8px; }
.home-championship-image { display: block; height: 112px; overflow: hidden; }
.home-championship-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.home-championship-panel:hover .home-championship-image img { transform: scale(1.035); }
.home-championship-copy { display: grid; gap: 5px; padding: 14px; }
.home-championship-copy small { color: #667890; font-size: 8px; font-weight: 750; text-transform: uppercase; }
.home-championship-copy h2 { margin: 0; color: #102442; font-size: 18px; line-height: 1.08; letter-spacing: 0; }
.home-championship-copy p { margin: 0; color: #687991; font-size: 10px; }
.home-championship-copy > a { display: inline-flex; width: fit-content; margin-top: 5px; padding: 7px 10px; border-radius: 4px; color: #fff; background: #0b2348; font-size: 8px; font-weight: 800; text-transform: uppercase; }

.home-sailor-list { display: grid; }
.home-sailor-list > a { display: grid; min-height: 55px; grid-template-columns: 28px minmax(0,1fr) auto; gap: 8px; align-items: center; padding: 8px 13px; border-bottom: 1px solid #e8edf3; color: #122746; }
.home-sailor-list > a:last-child { border-bottom: 0; }
.home-sailor-list > a:hover { background: #f5f9fe; }
.home-sailor-list > a > strong { font-size: 17px; font-weight: 500; }
.home-sailor-list span { display: grid; gap: 1px; }
.home-sailor-list span:last-child { justify-items: end; }
.home-sailor-list b { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.home-sailor-list small { color: #718198; font-size: 8px; text-transform: uppercase; }

.home-utility-grid { margin-top: 14px; }
.home-activity-panel { border-top: 1px solid #dde5ef !important; }
.home-value-strip { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); margin-top: 14px !important; padding: 18px 0; border-top: 1px solid #dfe6ef; border-bottom: 1px solid #dfe6ef; background: transparent; }
.home-value-strip article { display: grid; gap: 4px; min-height: 48px; align-content: center; padding: 0 20px; border-right: 1px solid #e0e6ee; }
.home-value-strip article:last-child { border-right: 0; }
.home-value-strip strong { color: #122746; font-size: 9px; text-transform: uppercase; }
.home-value-strip span { color: #6c7c91; font-size: 9px; line-height: 1.35; }

@media (max-width: 1050px) {
  .home-lower-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-top-sailors { grid-column: 1/-1; }
  .home-sailor-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-value-strip { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .home-value-strip article { border-bottom: 1px solid #e0e6ee; }
}

@media (max-width: 780px) {
  .home-command { grid-template-columns: 1fr; }
  .home-lower-grid { grid-template-columns: 1fr; }
  .home-top-sailors { grid-column: auto; }
  .home-sailor-list { grid-template-columns: 1fr; }
  .home-value-strip { grid-template-columns: 1fr; padding: 0; }
  .home-value-strip article { padding: 13px 4px; border-right: 0; }
}

/* Live race masthead inspired by compact broadcast dashboards. */
.home-race-status { display:grid; grid-template-columns:minmax(300px,1.25fr) minmax(330px,.85fr) auto; gap:26px; align-items:center; margin-bottom:14px; padding:22px 24px; border:1px solid #dce5f0; border-left:4px solid #1268d5; border-radius:6px; background:#fff; box-shadow:0 6px 22px rgba(12,35,70,.05); }
.home-race-status-title p { margin:0 0 4px; color:#d84432; font-size:9px; font-weight:850; text-transform:uppercase; }
.home-race-status-title h1 { margin:0; color:#0a2147; font-size:32px; line-height:1; letter-spacing:0; text-transform:uppercase; }
.home-race-status-title > span { display:block; margin-top:7px; color:#667890; font-size:11px; }
.home-race-status-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-right:1px solid #e2e8f0; border-left:1px solid #e2e8f0; }
.home-race-status-metrics a { display:grid; min-height:54px; place-content:center; padding:0 16px; border-right:1px solid #e2e8f0; color:#102748; text-align:center; }
.home-race-status-metrics a:last-child { border-right:0; }
.home-race-status-metrics strong { font-size:20px; line-height:1; }
.home-race-status-metrics span { margin-top:5px; color:#738198; font-size:8px; font-weight:800; text-transform:uppercase; }
.home-race-status-actions { display:grid; gap:8px; justify-items:center; }
.home-race-status-actions a { color:#1769d2; font-size:9px; font-weight:850; text-transform:uppercase; }
.home-race-status-actions .home-status-primary { display:inline-flex; min-height:36px; align-items:center; gap:10px; padding:0 13px; border-radius:4px; color:#fff; background:#1268d5; white-space:nowrap; }
.home-featured-content h2 { margin:0; color:#fff; font-size:clamp(32px,4vw,56px); line-height:1.03; letter-spacing:0; }
.home-featured-event.has-live-results .home-featured-content h2 { font-size:clamp(30px,3.2vw,48px); }

@media (max-width: 1050px) {
  .home-race-status { grid-template-columns:minmax(280px,1fr) minmax(320px,1fr); }
  .home-race-status-actions { grid-column:1/-1; grid-template-columns:auto auto; justify-content:end; align-items:center; }
}

@media (max-width: 780px) {
  .home-race-status { grid-template-columns:1fr; gap:16px; padding:19px 18px; }
  .home-race-status-title h1 { font-size:26px; }
  .home-race-status-metrics { border-right:0; border-left:0; border-top:1px solid #e2e8f0; border-bottom:1px solid #e2e8f0; }
  .home-race-status-metrics a { padding:0 8px; }
  .home-race-status-actions { grid-column:auto; justify-content:start; }
  .home-featured-content h2 { font-size:clamp(28px,9vw,42px); }
}

/* Regatta centre: broadcast energy with real event imagery and operational colour. */
body:has(.home-page) { background:#eef3f6; }
body:has(.home-page) .app-header { border-bottom:3px solid #1268d5; background:#fff; box-shadow:0 8px 24px rgba(6,26,51,.08); }
.home-page { width:min(1320px,calc(100% - 36px)); padding-top:18px; }
.home-page::before { top:0; height:420px; background:#dfeaf1; }
.home-race-status { position:relative; overflow:hidden; grid-template-columns:minmax(360px,1.3fr) minmax(360px,.9fr) auto; min-height:116px; margin-bottom:0; padding:22px 26px; border:0; border-radius:8px 8px 0 0; color:#fff; background:#061a33; box-shadow:0 18px 42px rgba(6,26,51,.18); }
.home-race-status::before { position:absolute; top:0; right:0; left:0; height:5px; content:''; background:linear-gradient(90deg,#13c879 0 28%,#19a8dc 28% 62%,#ffc72c 62% 82%,#ef5d4d 82%); }
.home-race-status-title { position:relative; padding-left:18px; }
.home-race-status-title::before { position:absolute; top:3px; bottom:3px; left:0; width:4px; content:''; background:#19a8dc; }
.home-race-status-title p { color:#70e5aa; font-size:10px; }
.home-race-status-title h1 { color:#fff; font-size:38px; font-weight:900; line-height:.98; }
.home-race-status-title > span { color:#b9c8d9; font-size:12px; }
.home-race-status-metrics { border-color:rgba(255,255,255,.14); }
.home-race-status-metrics a { min-height:66px; border-color:rgba(255,255,255,.14); color:#fff; transition:background .18s ease; }
.home-race-status-metrics a:hover { background:rgba(255,255,255,.07); }
.home-race-status-metrics strong { color:#fff; font-size:27px; }
.home-race-status-metrics a:first-child strong { color:#70e5aa; }
.home-race-status-metrics span { color:#9fb0c4; font-size:9px; }
.home-race-status-actions a { color:#9fd8ff; }
.home-race-status-actions .home-status-primary { min-height:42px; padding:0 17px; color:#061a33; background:#ffc72c; box-shadow:0 9px 22px rgba(255,199,44,.18); }
.home-race-status-actions .home-status-primary:hover { background:#ffd85d; transform:translateY(-1px); }

.home-race-status {
  background:
    linear-gradient(90deg,rgba(4,21,45,.97) 0%,rgba(4,25,54,.91) 48%,rgba(4,26,58,.76) 100%),
    url('images/hero-radio-sailing.png') center 46%/cover no-repeat;
}
.home-race-status::after {
  position:absolute;
  inset:5px 0 0;
  pointer-events:none;
  content:"";
  background:linear-gradient(90deg,transparent 0 58%,rgba(18,104,213,.12));
}
.home-race-status > * { position:relative; z-index:1; }

.home-command { gap:10px; padding:10px; border-radius:0 0 9px 9px; background:#061a33; box-shadow:0 18px 42px rgba(6,26,51,.18); }
.home-featured-event { min-height:540px; border:0; border-radius:6px; box-shadow:none; }
.home-featured-slide { background:linear-gradient(90deg,rgba(3,17,40,.94) 0%,rgba(3,24,58,.7) 46%,rgba(3,20,49,.12) 100%),var(--event-image,url('images/hero-radio-sailing.png')) center/cover no-repeat; }
.home-featured-slide::before { background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(1,12,30,.7)); }
.home-featured-event::after { height:6px; background:#13c879; }
.home-featured-content { width:min(670px,82%); padding:44px; }
.home-featured-content h2 { max-width:660px; font-size:50px; font-weight:900; line-height:.98; text-shadow:0 3px 18px rgba(0,0,0,.32); }
.home-featured-content > p { color:#8ed9ff; font-size:12px; }
.live-pill { padding:8px 12px; border-radius:3px; background:#70e5aa; box-shadow:0 0 0 4px rgba(112,229,170,.16); }
.home-featured-meta { max-width:610px; color:#fff; font-size:13px; }
.home-featured-button { min-height:44px; padding:0 18px; border-radius:4px; background:#1268d5; box-shadow:0 10px 28px rgba(0,74,178,.36); text-transform:uppercase; }

.home-command .upcoming-card { padding:0; overflow:hidden; border:0; border-radius:6px; background:#fff; }
.home-command .upcoming-card .dashboard-card-header { min-height:70px; padding:0 20px; border-bottom:0; color:#fff; background:#0d6d72; }
.home-command .upcoming-card .dashboard-card-header h2 { color:#fff; font-size:20px; text-transform:uppercase; }
.home-command .upcoming-card .dashboard-card-header a { color:#bdf4e2; }
.home-command .upcoming-list { padding:4px 18px 10px; }
.home-command .upcoming-list article { min-height:98px; grid-template-columns:54px minmax(0,1fr) 78px 18px; padding:13px 0; }
.home-command .upcoming-list time { width:50px; height:58px; border:1px solid #cddbe4; border-radius:4px; color:#061a33; background:#edf5f7!important; }
.home-command .upcoming-list time strong { color:#0b6c74; font-size:23px; }
.home-command .upcoming-list h3 { color:#102442; font-size:14px; }
.home-command .upcoming-list small { color:#687991; }
.up-next-thumb { width:78px; height:58px; border-radius:3px; }
.home-command .entry-open { right:110px; color:#075d42; background:#dff8ec; }

.home-lower-grid { gap:12px; margin-top:18px; }
.home-lower-grid > * { border-top:5px solid transparent; }
.home-lower-grid .latest-results-card { border-top-color:#1268d5; }
.home-championship-panel { border-top-color:#ef5d4d; }
.home-top-sailors { border-top-color:#ffc72c; }
.home-panel-heading,.latest-results-card .dashboard-card-header { min-height:54px; }
.home-championship-copy > a { color:#061a33; background:#ffc72c; }
.home-sailor-list > a:nth-child(1) > strong { color:#d99f00; }
.home-sailor-list > a:nth-child(2) > strong { color:#6d7b8c; }
.home-sailor-list > a:nth-child(3) > strong { color:#b76b45; }
.home-activity-panel { overflow:hidden; border-top:5px solid #13a878!important; }
.home-section-heading { margin:-18px -20px 0; padding:14px 20px; color:#fff; background:#082c4c; }
.home-section-heading h2 { color:#fff; }
.home-section-heading .eyebrow { color:#70e5aa; }
.activity-live-dot { color:#062c1d!important; background:#70e5aa!important; }
.home-value-strip { padding:0; overflow:hidden; border:1px solid #d9e2e8; border-radius:7px; background:#fff; box-shadow:0 8px 24px rgba(6,26,51,.06); }
.home-value-strip article { min-height:76px; }
.home-value-strip article:nth-child(1) { border-top:4px solid #1268d5; }
.home-value-strip article:nth-child(2) { border-top:4px solid #13c879; }
.home-value-strip article:nth-child(3) { border-top:4px solid #19a8dc; }
.home-value-strip article:nth-child(4) { border-top:4px solid #ffc72c; }
.home-value-strip article:nth-child(5) { border-top:4px solid #ef5d4d; }

@media (max-width:1050px) {
  .home-race-status { grid-template-columns:minmax(300px,1fr) minmax(340px,1fr); }
  .home-featured-event { min-height:500px; }
  .home-featured-content h2 { font-size:44px; }
}

@media (max-width:780px) {
  body:has(.home-page) .site-header { display:grid; min-height:68px; grid-template-columns:minmax(0,1fr) 40px; gap:10px; padding:10px 18px; }
  body:has(.home-page) .brand { min-width:0; }
  body:has(.home-page) .brand-logo { width:165px; max-width:100%; }
  body:has(.home-page) .home-menu-button { grid-column:2; order:initial; margin:0; }
  body:has(.home-page) .header-actions { display:none; }
  body:has(.home-page) .main-nav { top:67px; }
  .country-choice-strip { width:100%; box-sizing:border-box; overflow:hidden; }
  .country-choice-strip p { width:100%; overflow-wrap:anywhere; white-space:normal; }
  .home-page { width:100%; padding-top:0; }
  .home-race-status,.home-command { width:100%!important; max-width:100%; box-sizing:border-box; }
  .home-race-status { grid-template-columns:minmax(0,1fr); gap:18px; min-height:0; padding:24px 18px 20px; border-radius:0; }
  .home-race-status > * { min-width:0; max-width:100%; }
  .home-race-status-title { padding-left:14px; }
  .home-race-status-title h1 { font-size:31px; }
  .home-race-status-title > span { overflow-wrap:anywhere; }
  .home-race-status-metrics { width:100%; overflow:hidden; border-color:rgba(255,255,255,.14); }
  .home-race-status-metrics a { min-width:0; min-height:60px; padding:0 4px; border-color:rgba(255,255,255,.14); }
  .home-race-status-metrics strong { font-size:23px; }
  .home-race-status-metrics span { font-size:7px; }
  .home-race-status-actions { display:flex; grid-column:auto; justify-content:flex-start; gap:16px; }
  .home-command { padding:8px; border-radius:0; }
  .home-featured-event { min-height:470px; }
  .home-featured-content { width:100%; padding:28px 22px; box-sizing:border-box; }
  .home-featured-content h2 { max-width:100%; font-size:34px; overflow-wrap:anywhere; }
  .home-featured-meta span { width:100%; }
  .home-featured-meta span + span::before { display:none; }
  .home-command .upcoming-list article { grid-template-columns:50px minmax(0,1fr) 64px 14px; min-height:90px; }
  .up-next-thumb { width:64px; height:52px; }
  .home-lower-grid,.home-utility-grid,.home-value-strip { margin-right:12px!important; margin-left:12px!important; }
  .home-section-heading { margin:-18px -20px 0; }
}

/* Public homepage layout based on the supplied Sailing Results Made Simple reference. */
body:has(.simple-sailing-hero) { background:#fff; }
body:has(.simple-sailing-hero) .mock-race-centre,
body:has(.simple-sailing-hero) .home-race-status,
body:has(.simple-sailing-hero) .home-command,
body:has(.simple-sailing-hero) .home-lower-grid,
body:has(.simple-sailing-hero) .home-utility-grid { display:none!important; }
body:has(.simple-sailing-hero) .home-page { width:min(1320px,calc(100% - 40px)); padding-top:0; }
.simple-sailing-hero { position:relative; width:100vw; min-height:475px; margin-left:calc(50% - 50vw); overflow:hidden; background:linear-gradient(90deg,rgba(246,250,255,.96) 0%,rgba(239,247,255,.78) 37%,rgba(7,26,54,.04) 67%),url('images/hero-radio-sailing-enhanced.png') center 51%/cover no-repeat; }
.simple-sailing-hero::after { position:absolute; right:0; bottom:0; left:0; height:90px; content:""; background:linear-gradient(180deg,transparent,rgba(2,19,43,.18)); }
.simple-hero-copy { position:relative; z-index:1; width:min(1320px,calc(100% - 40px)); margin:0 auto; padding-top:70px; }
.simple-hero-copy > p { margin:0 0 14px; color:var(--msr-blue); font-size:10px; font-weight:900; text-transform:uppercase; }
.simple-hero-copy h1 { max-width:610px; margin:0; color:#071a36; font-size:64px; font-weight:900; line-height:.94; letter-spacing:0; text-transform:uppercase; }
.simple-hero-copy h1 strong { color:var(--msr-blue); font-weight:900; }
.simple-hero-copy > span { display:block; max-width:400px; margin-top:22px; color:#31445f; font-size:14px; line-height:1.55; }
.simple-hero-copy > div { display:flex; gap:10px; margin-top:24px; }
.simple-hero-copy a { display:inline-flex; min-width:126px; min-height:42px; align-items:center; justify-content:center; border:1px solid #18304f; border-radius:4px; color:#18304f; background:rgba(255,255,255,.82); font-size:9px; font-weight:900; text-transform:uppercase; }
.simple-hero-copy a:first-child { color:#fff; border-color:var(--msr-blue); background:var(--msr-blue); }
.simple-event-search { position:relative; z-index:3; display:grid; min-height:92px; grid-template-columns:230px minmax(270px,1fr) 170px 170px 110px; gap:8px; align-items:center; margin:-46px 10px 24px; padding:14px; border-radius:6px; color:#fff; background:#071f45; box-shadow:0 16px 34px rgba(7,31,69,.2); }
.simple-event-search > div { display:grid; grid-template-columns:40px 1fr; align-items:center; }
.simple-event-search > div > span { grid-row:1/3; color:#39b8f2; font-size:28px; }
.simple-event-search > div strong { font-size:11px; text-transform:uppercase; }
.simple-event-search > div small { color:#b6c6da; font-size:8px; }
.simple-event-search label { position:relative; }
.simple-event-search label > span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.simple-event-search input,.simple-event-search select { width:100%; min-height:50px; padding:0 14px; border:0!important; color:#243750; background:#fff; font-size:11px; }
.simple-event-search button { min-height:50px; border:0; border-radius:4px; color:#fff; background:var(--msr-blue); font-size:9px; font-weight:900; text-transform:uppercase; }
.simple-data-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0 10px 20px; overflow:hidden; border:1px solid var(--msr-line); border-radius:6px; background:#fff; box-shadow:0 8px 26px rgba(9,35,73,.055); }
.simple-data-panel { position:relative; min-width:0; min-height:300px; padding:18px; border-right:1px solid var(--msr-line); }
.simple-data-panel:last-child { border-right:0; }
.simple-data-panel > header { display:grid; min-height:48px; align-content:start; gap:7px; padding-bottom:10px; border-bottom:1px solid #e7edf4; text-transform:uppercase; }
.simple-data-panel > header > div { display:flex; align-items:center; gap:8px; }
.simple-data-panel > header strong { font-size:12px; }
.simple-data-panel > header span { padding:4px 7px; border-radius:3px; color:#fff; background:#ef3f3f; font-size:8px; font-weight:900; }
.simple-data-panel > header small { overflow:hidden; color:#617188; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.simple-data-panel > a:last-child { position:absolute; right:18px; bottom:15px; left:18px; color:var(--msr-blue); font-size:8px; font-weight:900; text-transform:uppercase; }
.simple-live-panel .home-live-leaderboard { position:static; width:auto; padding:0; border:0; color:#102442; background:#fff; backdrop-filter:none; }
.simple-live-panel .home-leader-row { min-height:31px; grid-template-columns:32px 72px minmax(0,1fr) 45px; padding:0; border-bottom:1px solid #edf1f5; color:#102442; background:#fff; }
.simple-live-panel .home-leader-row > strong:first-child { color:var(--msr-blue); }
.simple-result-rows,.simple-event-rows { display:grid; }
.simple-result-rows > a,.simple-event-rows > a { display:grid; min-height:65px; align-items:center; gap:11px; border-bottom:1px solid #edf1f5; color:#102442; }
.simple-result-rows > a { grid-template-columns:45px minmax(0,1fr) auto; }
.simple-result-rows img { width:42px; height:42px; border-radius:3px; object-fit:contain; background:#f2f6fa; }
.simple-result-rows span,.simple-event-rows > a > span { display:grid; min-width:0; gap:3px; }
.simple-result-rows strong,.simple-event-rows strong { overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.simple-result-rows small,.simple-event-rows small { overflow:hidden; color:#65758b; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.simple-result-rows em { padding:3px 5px; border-radius:3px; color:var(--msr-blue); background:#edf4ff; font-size:7px; font-style:normal; font-weight:900; }
.simple-event-rows > a { grid-template-columns:47px minmax(0,1fr) 10px; }
.simple-event-rows time { display:grid; width:43px; height:45px; place-content:center; border-radius:3px; color:#fff; background:var(--msr-blue); text-align:center; }
.simple-event-rows time strong { font-size:16px; line-height:1; }
.simple-event-rows time span { font-size:7px; font-weight:800; }
.simple-event-rows b { color:#728096; font-size:18px; }
body:has(.simple-sailing-hero) .home-platform-suite { margin:20px 10px 0; }
body:has(.simple-sailing-hero) .home-value-strip { margin:22px 10px!important; }
body:has(.simple-sailing-hero) footer { width:100%; max-width:none; margin-top:0; padding:38px max(24px,calc((100vw - 1320px)/2)); box-sizing:border-box; color:#fff; border:0; background:#071f45; }
body:has(.simple-sailing-hero) footer .footer-links a { color:#d7e3f2; }

@media(max-width:1050px){
  .simple-event-search { grid-template-columns:200px 1fr 145px 145px 95px; }
  .simple-hero-copy h1 { font-size:54px; }
}
@media(max-width:780px){
  body:has(.simple-sailing-hero) .home-page { width:100%; }
  .simple-sailing-hero { min-height:500px; background-position:62% center; }
  .simple-sailing-hero::before { position:absolute; inset:0; content:""; background:rgba(242,248,255,.66); }
  .simple-hero-copy { width:100%; box-sizing:border-box; padding:56px 20px 0; }
  .simple-hero-copy h1 { font-size:44px; }
  .simple-event-search { grid-template-columns:1fr; margin:-50px 12px 18px; padding:16px; }
  .simple-event-search > div { min-height:54px; }
  .simple-data-grid { grid-template-columns:1fr; margin:0 12px; }
  .simple-data-panel { min-height:300px; border-right:0; border-bottom:1px solid var(--msr-line); }
  .simple-data-panel:last-child { border-bottom:0; }
  body:has(.simple-sailing-hero) .home-platform-suite { margin:18px 12px 0; }
}

.simple-live-slider { position:relative; min-height:215px; }
.simple-live-slide { display:none; }
.simple-live-slide.is-active { display:block; animation:simpleLiveIn .35s ease; }
.simple-live-event-title { display:grid; gap:2px; min-height:42px; align-content:center; padding-right:60px; border-bottom:1px solid #edf1f5; }
.simple-live-event-title strong { overflow:hidden; color:#102442; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.simple-live-event-title small { overflow:hidden; color:#6b7a8e; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.simple-live-slide > a { display:flex; min-height:34px; align-items:center; color:var(--msr-blue); font-size:8px; font-weight:900; text-transform:uppercase; }
.simple-live-dots { position:absolute; top:14px; right:0; display:flex; gap:5px; z-index:2; }
.simple-live-dots button { width:7px; height:7px; padding:0; border:0; border-radius:50%; background:#c8d3df; cursor:pointer; }
.simple-live-dots button.is-active { background:var(--msr-blue); box-shadow:0 0 0 3px rgba(7,95,216,.12); }
@keyframes simpleLiveIn { from { opacity:0; transform:translateX(8px); } to { opacity:1; transform:translateX(0); } }
@media(max-width:780px){
  .home-app-primary > div:first-child { width:58%; }
  .home-app-screens { right:2px; width:145px; }
  .home-app-screens img { width:94px; height:220px; }
  .home-app-panel .home-scoring-screen { right:-28px; width:185px; height:126px; }
}

/* Public live centre and cross-platform app promotion. */
.home-app-downloads { display:flex; flex-wrap:wrap; gap:9px; align-items:center; }
.home-app-downloads > a { display:inline-flex!important; min-height:40px; align-items:center; justify-content:center; padding:0 15px!important; border:1px solid rgba(255,255,255,.45)!important; border-radius:5px; color:#fff!important; background:rgba(0,20,62,.28)!important; font-size:9px!important; font-weight:900; text-transform:uppercase; }
.home-app-downloads > a:hover { background:rgba(255,255,255,.16)!important; }
.store-link { gap:9px!important; text-transform:none!important; }
.store-icon { display:block; width:23px; height:23px; flex:0 0 23px; }
.store-icon-apple { fill:currentColor; }
.store-link-copy { display:grid; gap:1px; line-height:1; text-align:left; }
.store-link-copy small { color:inherit; font-size:7px; font-weight:650; letter-spacing:.02em; text-transform:none; }
.store-link-copy strong { color:inherit; font-size:12px; font-weight:850; letter-spacing:0; text-transform:none; }
.live-listing-hero > strong { display:inline-flex; width:max-content; margin-top:18px; padding:9px 13px; border:1px solid rgba(255,255,255,.28); border-radius:5px; color:#fff; background:rgba(255,255,255,.1); font-size:12px; }
.live-event-board { padding-bottom:20px; }
.live-event-board .results-listing-header { border-bottom:1px solid #e4eaf2; }
.live-event-board .results-listing-header .outline-button { min-width:108px; }
.live-event-state { display:flex; align-items:center; gap:7px; margin:0 0 5px!important; color:#d93025!important; font-size:9px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.live-event-state span { width:8px; height:8px; border-radius:50%; background:#ef3f3f; box-shadow:0 0 0 4px rgba(239,63,63,.12); }
.live-empty-state { display:grid; justify-items:center; gap:10px; padding:60px 20px; text-align:center; }
.live-empty-state h2,.live-empty-state p { margin:0; }
.live-empty-state p { color:#66778d; }
.live-empty-state > div { display:flex; gap:10px; margin-top:8px; }
.public-app-callout { display:flex; align-items:center; justify-content:space-between; gap:30px; margin-top:20px; padding:28px 32px; border-radius:7px; color:#fff; background:linear-gradient(120deg,#061d48,#075fd8); box-shadow:0 14px 34px rgba(7,31,69,.14); }
.public-app-callout h2,.public-app-callout p { margin:0; }
.public-app-callout h2 { margin:4px 0 7px; color:#fff!important; font-size:27px; font-weight:900; }
.public-app-callout > div:first-child > p:last-child { color:#eef6ff!important; font-size:13px; line-height:1.55; }
.public-app-callout .eyebrow { display:inline-flex; width:max-content; padding:5px 8px; border:1px solid rgba(255,255,255,.3); border-radius:6px; color:#fff!important; background:rgba(255,255,255,.13); font-size:9px; font-weight:850; }
.public-app-callout .home-app-downloads { flex-shrink:0; }
.public-app-callout .home-app-downloads > a { min-width:145px; color:#071a36!important; border-color:#fff!important; background:#fff!important; box-shadow:0 8px 20px rgba(0,0,0,.16); }
.public-app-callout .home-app-downloads > a:hover { background:#eef6ff!important; transform:translateY(-2px); }

/* Keep every Live Centre section on one shared page grid. */
.live-centre-page > .listing-hero,
.live-centre-page > .live-event-board,
.live-centre-page > .public-app-callout {
  width:100%!important;
  box-sizing:border-box;
  margin-right:0!important;
  margin-left:0!important;
}
@media(min-width:761px){
  body:is(:has(.live-centre-page),:has(.public-association-events)) .site-header.app-header {
    width:100%;
    margin-right:0;
    margin-left:0;
    padding-right:max(24px,calc((100vw - 1320px)/2));
    padding-left:max(24px,calc((100vw - 1320px)/2));
  }
  body:has(.live-centre-page) .live-centre-page {
    width:min(1320px,calc(100% - 40px));
    padding-right:0;
    padding-left:0;
  }
}

/* Events page header matches the home page desktop header. */
@media(min-width:761px){
  body:has(.public-association-events) .site-header.app-header {
    width:100%!important;
    min-height:77px!important;
    margin-right:0!important;
    margin-left:0!important;
    grid-template-columns:auto minmax(0,1fr) auto!important;
    gap:24px!important;
    padding:10px max(24px,calc((100% - 1380px)/2))!important;
    border-bottom:1px solid #e5ebf3!important;
    background:#fff!important;
    box-shadow:0 4px 18px rgba(12,31,69,.04)!important;
  }
  body:has(.public-association-events) .site-header.app-header .brand-logo {
    width:205px!important;
    max-width:none!important;
    height:auto!important;
  }
  body:has(.public-association-events) .site-header.app-header .main-nav {
    justify-self:end!important;
    gap:5px!important;
  }
  body:has(.public-association-events) .site-header.app-header .main-nav a {
    min-height:0!important;
    padding:9px 11px!important;
    border-radius:6px!important;
    color:#46536b!important;
    background:transparent!important;
    font-size:12px!important;
    font-weight:700!important;
    text-transform:uppercase!important;
  }
  body:has(.public-association-events) .site-header.app-header .main-nav a:hover,
  body:has(.public-association-events) .site-header.app-header .main-nav a.active {
    color:#0758c9!important;
    background:#edf5ff!important;
  }
  body:has(.public-association-events) .site-header.app-header .header-actions {
    margin-left:12px!important;
  }
}

@media(max-width:700px){
  .home-app-downloads { align-items:stretch; }
  .home-app-downloads > a { flex:1 1 130px; }
  .live-event-board .results-listing-header { align-items:flex-start; }
  .live-event-card .event-thumb { display:none; }
  .public-app-callout { align-items:stretch; flex-direction:column; margin-top:12px; padding:24px 20px; }
  .public-app-callout h2 { font-size:24px; }
}

.public-app-bottom-nav { display:none; }
.event-detail-card { content-visibility:auto; contain-intrinsic-size:145px; }

@media(max-width:760px){
  body:has(.public-app-bottom-nav) { padding-bottom:82px; background:#f4f7fb; }
  body:has(.public-app-bottom-nav) .site-header.app-header { position:relative; min-height:132px; justify-content:flex-start; padding:22px 20px; border-bottom:1px solid #dbe5f1; background:linear-gradient(145deg,#f8fbff,#eef5ff); box-shadow:none; }
  body:has(.public-app-bottom-nav) .brand-logo { width:260px; max-width:72vw; height:auto; }
  body:has(.public-app-bottom-nav) .site-header .main-nav,
  body:has(.public-app-bottom-nav) .site-header .header-actions,
  body:has(.public-app-bottom-nav) .home-menu-button { display:none!important; }

  .public-app-bottom-nav { position:fixed; z-index:1000; right:0; bottom:0; left:0; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); min-height:76px; padding:7px 7px max(7px,env(safe-area-inset-bottom)); border-top:1px solid #dbe4ef; background:rgba(255,255,255,.97); box-shadow:0 -8px 24px rgba(7,31,69,.08); backdrop-filter:blur(14px); }
  .public-app-bottom-nav a { display:flex; min-width:0; align-items:center; justify-content:center; flex-direction:column; gap:4px; border-radius:9px; color:#697589; text-decoration:none; }
  .public-app-bottom-nav a span { font-size:17px; line-height:1; }
  .public-app-bottom-nav a strong { overflow:hidden; max-width:100%; font-size:10px; font-weight:850; text-overflow:ellipsis; white-space:nowrap; }
  .public-app-bottom-nav a.is-active { color:#0665df; background:#eef7ff; }

  body:has(.public-app-bottom-nav) .listing-page,
  body:has(.public-app-bottom-nav) .ranking-page { width:100%; padding:16px 12px 24px!important; box-sizing:border-box; }
  body:has(.public-app-bottom-nav) .listing-hero,
  body:has(.public-app-bottom-nav) .ranking-hero { min-height:330px!important; margin:0 8px 18px!important; padding:32px 28px!important; border-radius:12px!important; background:linear-gradient(145deg,#061c49 0%,#082c78 58%,#0873ee 100%)!important; box-shadow:0 16px 36px rgba(8,44,120,.16)!important; }
  body:has(.public-app-bottom-nav) .listing-hero::before,
  body:has(.public-app-bottom-nav) .ranking-hero::before { position:absolute; right:-45px; bottom:-65px; width:210px; height:210px; border-radius:50%; content:""; background:rgba(255,255,255,.045); }
  body:has(.public-app-bottom-nav) .listing-hero h1,
  body:has(.public-app-bottom-nav) .ranking-hero h1 { max-width:440px; margin:10px 0 16px!important; color:#fff!important; font-size:clamp(38px,10vw,52px)!important; line-height:1.02!important; letter-spacing:-.035em!important; text-transform:none!important; }
  body:has(.public-app-bottom-nav) .listing-hero > p:last-child { color:#cbd8eb!important; font-size:17px!important; line-height:1.55; }
  body:has(.public-app-bottom-nav) .listing-hero .eyebrow { color:#b8c8df!important; font-size:11px!important; letter-spacing:.12em; }

  .event-directory.public-association-events,
  .results-listing-board,
  .ranking-board { width:auto!important; margin:0 8px 18px!important; border:1px solid #dce5ef!important; border-radius:12px!important; box-shadow:0 10px 28px rgba(9,35,73,.055); }
  .event-directory.public-association-events { display:flex!important; flex-direction:column; padding:0!important; }
  .association-events-sidebar { order:-1; padding:14px!important; border:0!important; background:#fff!important; }
  .association-events-sidebar .find-panel { margin:0!important; padding:0!important; border:0!important; box-shadow:none!important; }
  .association-events-sidebar .find-panel h2 { display:none; }
  .association-events-sidebar .find-panel > label:first-of-type { display:block; }
  .association-events-sidebar .find-panel > label:first-of-type input,
  .results-search-row input { min-height:58px!important; padding:0 18px!important; border:1px solid #d4deea!important; border-radius:10px!important; background:#f7faff!important; font-size:17px!important; }
  .association-events-sidebar .find-panel > label:not(:first-of-type),
  .association-events-sidebar .public-filter-group,
  .association-events-sidebar #applyFilters,
  .association-events-sidebar #resetFilters { display:none; }
  .public-class-filters { display:flex!important; gap:7px!important; overflow-x:auto; padding:13px 12px!important; scrollbar-width:none; }
  .public-class-filters::-webkit-scrollbar { display:none; }
  .public-class-filters button { flex:0 0 auto; min-width:46px!important; min-height:44px!important; padding:0 13px!important; border-radius:22px!important; font-size:12px!important; }
  .event-tabs { min-height:54px!important; padding:0 12px!important; }
  .event-tabs button { min-height:54px!important; font-size:11px!important; }
  .event-tabs span { display:none; }
  .event-list-detailed { gap:14px!important; padding:14px!important; background:#f9fbfd; }
  .event-detail-card { display:grid!important; min-height:220px!important; grid-template-columns:70px minmax(0,1fr)!important; gap:14px!important; padding:0!important; overflow:hidden; border:1px solid #d8e2ee!important; border-radius:11px!important; background:#fff!important; box-shadow:0 5px 16px rgba(9,35,73,.045)!important; }
  .event-detail-card { contain-intrinsic-size:220px; }
  .event-detail-card .event-date { display:flex!important; width:auto!important; height:100%!important; min-height:220px; align-items:center; justify-content:center; flex-direction:column; align-self:stretch; margin:0!important; border:0!important; border-radius:0!important; color:#fff!important; background:linear-gradient(180deg,#061d4b,#0872ed)!important; }
  .event-detail-card .event-date strong { color:#fff!important; font-size:29px!important; }
  .event-detail-card .event-date span,.event-detail-card .event-date small { color:#fff!important; font-size:11px!important; font-weight:850; text-transform:uppercase; }
  .event-detail-card .event-thumb { display:none!important; }
  .event-detail-card .event-copy { align-self:start; padding:16px 13px 0 0; }
  .event-detail-card .event-copy h2 { margin:0 0 12px!important; color:#0b1e3a!important; font-size:19px!important; line-height:1.22; }
  .event-detail-card .event-copy > p { margin:5px 0!important; font-size:13px!important; }
  .event-tags { gap:6px!important; margin-top:11px!important; }
  .event-tags span { padding:6px 10px!important; border-radius:16px!important; font-size:10px!important; }
  .event-detail-card .event-side { grid-column:2!important; align-self:end!important; justify-content:flex-start!important; padding:0 13px 16px 0!important; }
  .event-detail-card .event-actions { display:flex!important; flex-wrap:wrap; justify-content:flex-start; gap:7px!important; }
  .event-detail-card .event-actions a { width:auto!important; min-height:42px!important; padding:0 14px!important; border-radius:7px!important; font-size:11px!important; }
  .event-detail-card .results-button,.event-detail-card .details-button { color:#fff!important; border-color:#0870e8!important; background:#0870e8!important; }
  .event-pagination { padding:12px 14px 18px!important; background:#fff; }

  .results-listing-header { display:grid!important; gap:14px; padding:18px!important; }
  .results-listing-header h2 { font-size:22px!important; }
  .results-search-row { width:100%; }
  .association-results-sidebar { display:none!important; }
  .public-association-results-layout { display:block!important; }
  .public-results-event-list { padding:14px!important; }
  .live-event-board .event-list-detailed { padding-top:14px!important; }
  .live-event-board .results-listing-header .outline-button { min-height:44px; }
}

/* Unified public page system. */
body:not(:has(.admin-shell)):not(:has(.member-main)):not(:has(.member-register-main)) { color:#0b1f3d; background:#f4f7fb; }
body:not(:has(.home-page)) .site-header.app-header { border-bottom:1px solid #dce5ef; box-shadow:0 5px 20px rgba(9,35,73,.055); }
body:not(:has(.home-page)) .listing-page,
body:not(:has(.home-page)) .ranking-page,
body:not(:has(.home-page)) .detail-page,
body:not(:has(.home-page)) .results-page { padding-bottom:46px; }
body:not(:has(.home-page)) .listing-hero,
body:not(:has(.home-page)) .detail-hero,
body:not(:has(.home-page)) .results-hero { min-height:230px; box-sizing:border-box; align-content:center; margin-top:20px; padding:42px 38px; overflow:hidden; border:0; border-radius:7px; color:#fff; background:linear-gradient(90deg,rgba(5,25,57,.97),rgba(6,56,133,.78)),url('images/hero-radio-sailing-enhanced.png') center 55%/cover no-repeat; box-shadow:0 14px 34px rgba(7,31,69,.15); }
body:not(:has(.home-page)) .listing-hero::after,
body:not(:has(.home-page)) .detail-hero::after,
body:not(:has(.home-page)) .results-hero::after { display:none; }
body:not(:has(.home-page)) .listing-hero .eyebrow,
body:not(:has(.home-page)) .detail-hero .eyebrow,
body:not(:has(.home-page)) .results-hero .eyebrow { color:#75ccff; }
body:not(:has(.home-page)) .listing-hero h1,
body:not(:has(.home-page)) .detail-hero h1,
body:not(:has(.home-page)) .results-hero h1 { max-width:850px; color:#fff; font-size:clamp(34px,4vw,56px); font-weight:900; text-transform:uppercase; }
body:not(:has(.home-page)) .listing-hero > p:last-child,
body:not(:has(.home-page)) .detail-hero > div > p:last-child { color:#d8e4f3; font-size:14px; }
.event-directory,.results-listing-board,.ranking-board { margin-top:16px; overflow:hidden; border:1px solid #dce5ef!important; border-radius:7px!important; background:#fff; }
.event-tabs { min-height:66px; padding:0 22px; }
.event-tabs button { min-height:66px; color:#63738a; font-size:11px; font-weight:850; text-transform:uppercase; }
.event-tabs button.active { color:#075fd8; border-bottom:3px solid #075fd8; }
.public-class-filters { padding:14px 22px!important; border-bottom:1px solid #e4eaf2; background:#f8fafc; }
.public-class-filters button { min-width:48px; min-height:36px; border:1px solid #d2dce8!important; color:#17304f; background:#fff!important; font-size:10px; font-weight:850; }
.event-list-detailed { padding:0 20px; }
.event-detail-card { min-height:145px!important; padding:18px 4px!important; }
.event-detail-card .event-thumb { width:116px; height:88px; }
.event-copy h2 { margin-bottom:6px!important; font-size:19px!important; }
.event-copy > p { color:#687890!important; line-height:1.45; }
.event-side { padding-right:8px; }
.results-listing-header { min-height:86px; padding:18px 22px!important; }
.results-listing-header h2 { font-size:23px!important; }
.results-search-row input { min-height:44px; background:#f8fafc; }
.results-search-row button { min-height:44px; border-radius:4px; font-weight:800; }
.association-results-sidebar,.results-side-nav { background:#f8fafc; }
.results-filter-panel { padding:20px!important; background:#fff!important; }
.results-filter-panel h2 { margin-top:0; font-size:16px; }
.results-filter-selects label { color:#53657d; font-size:9px; font-weight:850; text-transform:uppercase; }
.results-filter-selects select { min-height:42px; margin-top:6px; }
.ranking-table-wrap,.race-table-wrap { border:1px solid #dce5ef; border-radius:6px; background:#fff; }
.ranking-table thead th,.race-table thead th { color:#fff!important; background:#082b5c!important; border-color:rgba(255,255,255,.12)!important; font-size:9px; text-transform:uppercase; }
.ranking-table tbody tr:nth-child(even),.race-table tbody tr:nth-child(even) { background:#f7f9fc; }
.ranking-table tbody tr:hover,.race-table tbody tr:hover { background:#edf5ff; }
.detail-content { margin-top:16px; padding:0!important; overflow:hidden; }
.detail-main { padding:22px; }
.detail-section { margin-bottom:16px; padding:22px!important; background:#fff; }
.detail-section h2 { margin-top:0; color:#0b2345; font-size:22px; }
.detail-sidebar { padding:20px; background:#f7f9fc; }
.results-layout { margin-top:16px; overflow:hidden; }
.results-side-nav { padding:18px!important; }
.results-side-nav > a { min-height:42px; align-items:center; padding:0 12px!important; border-radius:4px; font-size:10px; font-weight:800; }
.results-side-nav > a.active { color:#fff!important; background:#075fd8!important; }
.results-board { padding:22px!important; border:0!important; }
.entry-layout,.protest-public-shell,.privacy-layout,.public-document-shell { width:min(1180px,calc(100% - 40px)); margin-right:auto; margin-left:auto; }
.entry-layout { padding-top:22px; }
.entry-form-card,.protest-form-card,.privacy-content,.public-document-shell { border:1px solid #dce5ef!important; border-radius:7px!important; background:#fff!important; box-shadow:0 10px 30px rgba(9,35,73,.07)!important; }
.entry-form-header,.protest-form-heading { color:#fff; background:linear-gradient(120deg,#071f45,#075fd8)!important; }
.entry-form-header h1,.entry-form-header h2,.protest-form-heading h1 { color:#fff!important; }
.entry-auth-card .entry-form-header .eyebrow { color:#a9d5ff!important; }
.entry-auth-card .entry-form-header p:not(.eyebrow) { color:rgba(255,255,255,.94)!important; }
.entry-auth-card > .entry-form-header,
.entry-form > .entry-form-header { color:#102342!important; background:#fff!important; }
.entry-auth-card > .entry-form-header h2,
.entry-form > .entry-form-header h2 { color:#102342!important; }
.entry-auth-card > .entry-form-header .eyebrow,
.entry-form > .entry-form-header .eyebrow { color:#006bff!important; }
.entry-auth-card > .entry-form-header p:not(.eyebrow),
.entry-form > .entry-form-header p:not(.eyebrow) { color:#48566f!important; }

@media (max-width:760px) {
  .entry-form > .entry-form-header { gap:14px; padding-bottom:18px; }
  .entry-form > .entry-form-header h2 { font-size:24px; line-height:1.2; }
  .entry-form > .entry-form-header p:not(.eyebrow) { font-size:15px; line-height:1.55; }
  .entry-form > .entry-form-header > span { align-self:flex-start; }
  .entry-form input,
  .entry-form select,
  .entry-form textarea { font-size:16px; min-height:50px; }
}
.entry-form-section,.protest-form-section { border-color:#e0e7f0!important; border-radius:6px!important; }
.entry-form-section > header,.protest-form-section > header { background:#f4f8fd!important; }
.entry-form-section > header span,.protest-form-section > header span { color:#fff!important; background:#075fd8!important; }
.privacy-hero { color:#fff; background:linear-gradient(90deg,rgba(5,25,57,.96),rgba(7,95,216,.72)),url('images/hero-radio-sailing-enhanced.png') center/cover no-repeat!important; }
.privacy-nav { border:1px solid #dce5ef; border-radius:6px; background:#fff; }
.privacy-content section { scroll-margin-top:90px; }

@media(max-width:900px){
  .event-detail-card { grid-template-columns:70px 92px minmax(0,1fr)!important; }
  .event-side { grid-column:2/-1; display:flex!important; align-items:center; justify-content:flex-end; }
  .event-detail-card .event-thumb { width:88px; height:72px; }
}
@media(max-width:780px){
  body:not(:has(.home-page)) .listing-page,body:not(:has(.home-page)) .ranking-page,body:not(:has(.home-page)) .detail-page,body:not(:has(.home-page)) .results-page { width:100%; }
  body:not(:has(.home-page)) .listing-hero,body:not(:has(.home-page)) .detail-hero,body:not(:has(.home-page)) .results-hero { min-height:250px; margin:0; padding:32px 20px; border-radius:0; background-position:62% center; }
  body:not(:has(.home-page)) .listing-hero h1,body:not(:has(.home-page)) .detail-hero h1,body:not(:has(.home-page)) .results-hero h1 { font-size:36px; overflow-wrap:anywhere; }
  .event-directory,.results-listing-board,.ranking-board { margin-top:10px; border-right:0!important; border-left:0!important; border-radius:0!important; }
  .event-tabs { padding:0 12px; overflow-x:auto; }
  .public-class-filters { display:flex!important; padding:12px!important; overflow-x:auto; flex-wrap:nowrap!important; }
  .public-class-filters button { flex:0 0 auto; }
  .event-list-detailed { padding:0 12px; }
  .event-detail-card { grid-template-columns:58px minmax(0,1fr)!important; gap:10px!important; }
  .event-detail-card .event-thumb { display:none; }
  .event-copy { grid-column:2; }
  .event-side { grid-column:1/-1; justify-content:stretch; }
  .event-actions { width:100%; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .event-actions a { min-width:0; }
  .detail-main,.results-board { padding:12px!important; }
  .detail-section { padding:17px!important; }
  .entry-layout,.protest-public-shell,.privacy-layout,.public-document-shell { width:100%; }
  .entry-form-card,.protest-form-card,.privacy-content,.public-document-shell { border-right:0!important; border-left:0!important; border-radius:0!important; box-shadow:none!important; }
}

/* Final responsive guards for the adapted public shell. */
.app-page-stat { position:relative; z-index:2; display:grid; width:245px; min-height:112px; align-content:center; gap:3px; margin-top:22px; padding:16px 20px; box-sizing:border-box; border:1px solid rgba(255,255,255,.24); border-radius:9px; color:#fff; background:rgba(255,255,255,.1); backdrop-filter:blur(8px); }
.app-page-stat span,.app-page-stat small { color:#dbe8f8; font-size:10px; font-weight:800; }
.app-page-stat span { text-transform:uppercase; }
.app-page-stat strong { color:#fff; font-size:42px; line-height:1; }
.results-listing-board,.event-directory.public-association-events,.ranking-board { box-shadow:0 12px 30px rgba(9,35,73,.07)!important; }
.results-listing-header { background:linear-gradient(180deg,#fff,#fbfdff); }
.event-actions .results-button,.event-actions .details-button,.results-listing-header .outline-button { border-color:#0870e8; }
html,body { max-width:100%; overflow-x:hidden; }
.listing-page,.ranking-page,.detail-page,.results-page,.home-page { box-sizing:border-box; }
@media (max-width:780px) {
  .app-page-stat { width:100%; max-width:340px; min-height:118px; margin-top:24px; }
  .app-page-stat strong { font-size:47px; }
  body:has(.home-page) { min-width:0!important; }
  .home-race-status,.home-command,.home-featured-event,.home-featured-slide,.home-featured-content { min-width:0!important; max-width:100%!important; }
  .home-race-status-metrics { display:grid!important; width:100%!important; grid-template-columns:repeat(3,minmax(0,1fr))!important; }
  .home-race-status-metrics a { min-width:0!important; width:auto!important; overflow:hidden; }
  .home-race-status-metrics strong,.home-race-status-metrics span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .home-race-status-actions { flex-wrap:wrap; }
  .home-featured-slide { overflow:hidden; }
  .home-featured-content h2 { hyphens:auto; }
  .country-choice-strip { display:grid; gap:6px; padding:7px 12px; }
  .country-choice-strip > div { min-width:0; flex-wrap:wrap; }
  .event-detail-card { box-sizing:border-box; max-width:100%; }
  .event-copy,.event-side { min-width:0; }
}

/* Final native-app layout: keep the website structure identical at every viewport. */
body:has(.public-app-bottom-nav):not(:has(.home-page)) .site-header.app-header { position:sticky; top:0; z-index:30; width:min(1180px,100%); min-height:72px; margin:0 auto; padding:10px 14px; box-sizing:border-box; border-bottom:1px solid rgba(217,226,239,.76); background:rgba(251,253,255,.92); box-shadow:none; backdrop-filter:blur(18px); }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .brand-logo { width:clamp(198px,26vw,292px); }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .main-nav { gap:5px; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .main-nav a { min-height:38px; padding:9px 13px; border-radius:999px; color:#5f6c83; font-size:12px; font-weight:750; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .main-nav a.active,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .main-nav a:hover { color:#fff; background:linear-gradient(135deg,#010f34,#005dff); }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .listing-page,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-page { width:min(1180px,100%); margin:0 auto; padding:0 14px 48px; box-sizing:border-box; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .listing-hero,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-hero { display:grid; min-height:0; grid-template-columns:minmax(0,1fr) 220px; gap:18px; align-items:end; margin:12px 0 0!important; padding:22px!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .listing-hero > .eyebrow,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .listing-hero > h1,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .listing-hero > p,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-hero > .eyebrow,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-hero > h1,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-hero > p { grid-column:1; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .listing-hero .eyebrow,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-hero .eyebrow { margin:0 0 -10px; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .listing-hero h1,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-hero h1 { max-width:11ch; margin:0!important; font-size:38px!important; line-height:.98!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .listing-hero > p,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-hero > p { max-width:620px; margin:0!important; color:rgba(255,255,255,.78)!important; font-size:15px!important; line-height:1.55; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .app-page-stat { grid-column:2; grid-row:1 / 4; width:220px; margin:0; align-self:end; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-directory.public-association-events { display:flex; flex-direction:column; margin:14px 0 0!important; padding:0!important; border:0!important; overflow:visible; background:transparent; box-shadow:none!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar { order:-1; width:auto; padding:14px; border:1px solid rgba(217,226,239,.82); border-radius:12px; background:rgba(255,255,255,.92); box-shadow:0 10px 28px rgba(8,23,51,.08); }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar .find-panel { display:grid; grid-template-columns:minmax(260px,1fr) repeat(4,minmax(130px,.35fr)); gap:10px; margin:0; padding:0; border:0; background:transparent; box-shadow:none; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar .find-panel h2,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar .public-filter-group,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar #applyFilters,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar #resetFilters { display:none; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-main { margin-top:14px; overflow:hidden; border:1px solid rgba(217,226,239,.82); border-radius:12px; background:rgba(255,255,255,.92); box-shadow:0 10px 28px rgba(8,23,51,.08); }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card { grid-template-columns:62px minmax(0,1fr) auto!important; min-height:0!important; gap:14px!important; padding:12px!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-thumb { display:none!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-date { width:62px!important; min-height:76px!important; height:auto!important; align-self:start; border:0!important; border-radius:10px!important; color:#fff!important; background:linear-gradient(155deg,#010f34,#082b72 58%,#005dff)!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-date strong,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-date span,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-date small { color:#fff!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-copy { grid-column:2!important; padding:1px 0 0!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-side { grid-column:3!important; align-self:center!important; padding:0!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-actions { display:grid!important; width:145px!important; gap:7px!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .results-listing-board,
body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-board { margin:14px 0 0!important; }

@media(max-width:760px){
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .site-header.app-header { position:relative; min-height:118px; padding:20px 18px; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .listing-page,
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-page { padding:0 14px 30px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .listing-hero,
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-hero { grid-template-columns:1fr; gap:16px; margin-top:12px!important; padding:22px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .listing-hero h1,
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-hero h1 { font-size:34px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .app-page-stat { grid-column:1; grid-row:auto; width:min(100%,220px); min-height:104px; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar .find-panel { display:block; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar .find-panel > label:not(:first-of-type) { display:none; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card { grid-template-columns:58px minmax(0,1fr)!important; gap:12px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-date { width:58px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-side { grid-column:2!important; justify-content:flex-start!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-actions { display:flex!important; width:auto!important; flex-wrap:wrap; }
}

/* Desktop keeps the wider association layout; visual styling remains app-derived. */
@media(min-width:901px){
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .site-header.app-header,
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .listing-page,
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .ranking-page { width:min(1460px,calc(100% - 32px)); }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-directory.public-association-events { display:grid!important; grid-template-columns:minmax(0,1fr) 310px!important; gap:18px; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-main { grid-column:1; grid-row:1; margin-top:0; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar { grid-column:2; grid-row:1; order:initial; align-self:start; padding:0; border:0; background:transparent; box-shadow:none; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar .find-panel { display:block; padding:20px; border:1px solid #d6e0f0; border-radius:14px; background:#fff; box-shadow:0 10px 28px rgba(8,23,51,.08); }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar .find-panel h2,
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar .public-filter-group,
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar #applyFilters,
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .association-events-sidebar #resetFilters { display:block; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card { grid-template-columns:64px 110px minmax(0,1fr) 160px!important; gap:16px!important; padding:14px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-thumb { display:block!important; width:110px; height:82px; border-radius:12px; object-fit:cover; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-copy { grid-column:3!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-side { grid-column:4!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-actions { width:150px!important; }
  body:has(.public-app-bottom-nav) .public-association-results-layout { display:grid!important; grid-template-columns:minmax(0,1fr) 310px!important; gap:18px; }
  body:has(.public-app-bottom-nav) .association-results-main { grid-column:1; grid-row:1; }
  body:has(.public-app-bottom-nav) .association-results-sidebar { display:block!important; grid-column:2; grid-row:1; order:initial; }
  body:has(.public-app-bottom-nav) .results-filter-panel { display:block; padding:20px!important; }
  body:has(.public-app-bottom-nav) .results-filter-selects { display:grid; grid-template-columns:1fr; gap:10px; }
  body:has(.public-app-bottom-nav) .results-filter-group { margin-top:12px; }
  body:has(.public-app-bottom-nav) .results-reset-button { width:100%; margin-top:12px; }
}

/* Final compact card dimensions must follow the association grid rules above. */
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .club-logo-card { width:52px!important; min-width:52px!important; max-width:52px!important; height:52px!important; min-height:52px!important; max-height:52px!important; margin:0 auto 8px!important; padding:4px!important; border-radius:10px!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .club-logo { width:42px!important; height:42px!important; max-width:42px!important; max-height:42px!important; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-actions a { min-height:32px!important; padding:6px 10px!important; font-size:9px!important; }
@media(min-width:901px){
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card { grid-template-columns:60px 76px minmax(0,1fr) 126px!important; gap:12px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-date { grid-column:1!important; grid-row:1!important; width:60px!important; min-height:78px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-thumb { grid-column:2!important; grid-row:1!important; display:block!important; width:76px!important; height:58px!important; align-self:center!important; border-radius:9px!important; object-fit:contain!important; background:#f5f8fe; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-copy { grid-column:3!important; grid-row:1!important; align-self:center!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-side { grid-column:4!important; grid-row:1!important; align-self:center!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-actions { width:118px!important; }
}

/* Requested final logo placement. */
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-club-mark { display:grid; width:42px; height:42px; place-items:center; justify-self:center; padding:4px; box-sizing:border-box; border:1px solid #d6e0f0; border-radius:9px; background:#fff; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-club-mark img { width:32px; height:32px; object-fit:contain; }
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-side {
  grid-template-columns:minmax(0,1fr)!important;
  min-width:0;
}
body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-side.no-club-logo .event-actions {
  grid-column:1!important;
}
@media(min-width:901px){
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card { grid-template-columns:60px minmax(0,1fr) 118px!important; grid-template-rows:auto auto!important; column-gap:14px!important; row-gap:8px!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-date { grid-column:1!important; grid-row:1!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-club-mark { grid-column:1!important; grid-row:2!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-copy { grid-column:2!important; grid-row:1 / 3!important; align-self:start!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-thumb { grid-column:3!important; grid-row:1!important; width:46px!important; height:36px!important; justify-self:end!important; align-self:start!important; margin:0!important; border-radius:7px!important; object-fit:contain!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-side { grid-column:3!important; grid-row:2!important; align-self:start!important; }
  body:has(.public-app-bottom-nav):not(:has(.home-page)) .event-detail-card .event-actions { width:110px!important; }
}

/* Live page uses the same outer desktop grid as the home page. */
@media(min-width:761px){
  body:is(:has(.live-centre-page),:has(.public-association-events)) .site-header.app-header {
    width:100%!important;
    min-height:77px!important;
    margin-right:0!important;
    margin-left:0!important;
    grid-template-columns:auto minmax(0,1fr) auto!important;
    gap:24px!important;
    padding:10px max(24px,calc((100% - 1380px)/2))!important;
    border-bottom:1px solid #e5ebf3!important;
    background:#fff!important;
    box-shadow:0 4px 18px rgba(12,31,69,.04)!important;
  }
  body:is(:has(.live-centre-page),:has(.public-association-events)) .site-header.app-header .brand-logo {
    width:205px!important;
    max-width:none!important;
    height:auto!important;
  }
  body:is(:has(.live-centre-page),:has(.public-association-events)) .site-header.app-header .main-nav {
    justify-self:end!important;
    gap:5px!important;
  }
  body:is(:has(.live-centre-page),:has(.public-association-events)) .site-header.app-header .header-actions {
    margin-left:12px!important;
  }
  body:is(:has(.live-centre-page),:has(.public-association-events)) .site-header.app-header .main-nav a {
    min-height:0!important;
    padding:9px 11px!important;
    border-radius:6px!important;
    color:#46536b!important;
    background:transparent!important;
    font-size:12px!important;
    font-weight:700!important;
    text-transform:uppercase!important;
  }
  body:is(:has(.live-centre-page),:has(.public-association-events)) .site-header.app-header .main-nav a:hover,
  body:is(:has(.live-centre-page),:has(.public-association-events)) .site-header.app-header .main-nav a.active {
    color:#0758c9!important;
    background:#edf5ff!important;
  }
  body:has(.live-centre-page) .live-centre-page {
    width:min(1320px,calc(100% - 40px))!important;
    padding-right:0!important;
    padding-left:0!important;
  }
}

/* Payment confirmation uses the entry template on public pages and embedded apps. */
.entry-payment-receipt { text-align: center; }
.entry-receipt-mark { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 16px; border-radius: 50%; color: #176b46; background: #e8f5ed; font-size: 28px; font-weight: 700; }
.entry-receipt-event { font-weight: 600; }
.entry-receipt-details { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; padding: 24px; margin: 24px 0; border: 1px solid #d8e3ef; border-radius: 8px; background: #f7f9fc; }
.entry-receipt-details dt { font-size: 13px; color: #52657c; margin-bottom: 8px; }
.entry-receipt-details dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.entry-payment-receipt .entry-actions { justify-content: center; }
.entry-payment-receipt h2:focus { outline: none; }
.entry-content { min-width: 0; }
@media (max-width: 600px) {
  .entry-receipt-details { grid-template-columns: 1fr; gap: 16px; padding: 18px; }
  .entry-payment-receipt .entry-actions .primary-button { width: 100%; }
}
/* Entry validation: retain a visible marker while the competitor corrects it. */
.entry-form .entry-field-invalid { outline: 3px solid #b42318; outline-offset: 2px; background-color: #fff4f2; scroll-margin-block: 100px; }
.entry-form .entry-field-error { display: block; color: #b42318; font-size: .9rem; margin: 4px 0 10px; grid-column: 1 / -1; }
.entry-payment-progress {
  grid-column: 1 / -1;
  width: 100%;
  box-sizing: border-box;
  padding: 20px;
  border: 1px solid #cbdced;
  border-radius: 12px;
  background: #f2f7fc;
  color: #193653;
  text-align: left;
}
.entry-payment-progress[hidden] { display: none; }
.entry-submit-row > .entry-submit-account,
.entry-submit-row > .entry-actions { grid-column: 1 / -1; }
.entry-payment-progress-heading { display: flex; gap: 10px; align-items: center; font-size: 16px; }
.entry-payment-progress-icon { width: 17px; height: 17px; flex: 0 0 17px; border: 3px solid #bdd0e2; border-top-color: #245888; border-radius: 50%; }
.entry-payment-progress[data-state="working"] .entry-payment-progress-icon { animation: entry-payment-spin .9s linear infinite; }
.entry-payment-progress p { margin: 10px 0 0; line-height: 1.5; font-size: 14px; }
.entry-payment-progress-steps { display: flex; gap: 12px; padding: 0; margin: 18px 0 0; list-style: none; }
.entry-payment-progress-steps li { flex: 1; display: flex; gap: 7px; align-items: center; font-size: 13px; color: #526477; }
.entry-payment-progress-steps span { display: inline-grid; place-items: center; width: 24px; height: 24px; flex: 0 0 24px; border: 1px solid #b9cbdc; border-radius: 50%; font-weight: 700; }
.entry-payment-progress-steps .is-current { color: #173f69; font-weight: 700; }
.entry-payment-progress-steps .is-current span { background: #173f69; color: white; border-color: #173f69; }
.entry-payment-progress-steps .is-complete span { background: #e1f2e9; color: #246247; border-color: #7aaf96; }
.entry-payment-progress .entry-payment-progress-note { color: #526477; font-size: 12px; }
.entry-payment-progress[data-state="error"] { border-color: #e3aaa3; background: #fff5f3; color: #8a271e; }
.entry-payment-progress[data-state="error"] .entry-payment-progress-icon { border-color: #b42318; }
.entry-payment-progress #entry-payment-error { margin: 18px 0 0; padding: 18px 20px; border: 1px solid #e3aaa3; border-radius: 8px; background: #fffafa; font-size: 15px; line-height: 1.7; }
.entry-payment-progress [data-entry-error-title]:not([hidden]) { display: block; margin-bottom: 6px; font-size: 16px; }
.entry-payment-progress [data-entry-error-detail] { display: block; }
.entry-payment-progress [data-payment-recovery]:not(:empty) { margin-top: 14px; }
@keyframes entry-payment-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .entry-payment-progress[data-state="working"] .entry-payment-progress-icon { animation: none; } }
@media (max-width: 540px) {
  .entry-payment-progress { padding: 16px; }
  .entry-payment-progress #entry-payment-error { padding: 16px; }
  .entry-payment-progress-steps { flex-direction: column; gap: 8px; }
}

/* Contact details stay collapsed until the visitor chooses Show. */
.event-contact-reveal summary { display: inline-flex; cursor: pointer; list-style: none; padding: 3px 10px; border: 1px solid #cbd5e1; border-radius: 6px; color: #526477; background: transparent; font-size: 12px; font-weight: 500; line-height: 1.5; }
.event-contact-reveal summary::-webkit-details-marker { display: none; }
.event-contact-reveal summary:hover { background: #f1f5f9; color: #173f69; }
.event-contact-reveal summary:focus-visible { outline: 2px solid #3978ab; outline-offset: 3px; }
.event-contact-reveal[open] summary { display: none; }
.event-contact-reveal > a { display: block; margin-top: 8px; overflow-wrap: anywhere; }

/* Event weather is loaded only when WillyWeather has a forecast for the event date. */
.event-weather-card { display: grid; gap: 16px; }
.event-weather-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.event-weather-heading h2 { margin: 2px 0 0; }
.event-weather-heading > div > span { color: #667486; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.event-weather-mark { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 50%; color: #173f69; background: #fff2b6; font-size: 21px; }
.event-weather-content { display: grid; gap: 15px; }
.event-weather-loading,
.event-weather-unavailable { margin: 0; color: #667486; font-size: 13px; line-height: 1.55; }
.event-weather-location { margin: 0; color: #667486; font-size: 12px; }
.event-weather-summary { display: grid; grid-template-columns: auto 1fr; gap: 13px; align-items: center; padding-bottom: 15px; border-bottom: 1px solid #dfe5e8; }
.event-weather-icon { font-size: 32px; line-height: 1; }
.event-weather-summary strong { display: block; color: #173f69; font-size: 16px; }
.event-weather-summary span { display: block; margin-top: 3px; color: #667486; font-size: 12px; }
.event-weather-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 0; }
.event-weather-facts div { min-width: 0; padding-right: 7px; border-right: 1px solid #dfe5e8; }
.event-weather-facts div:last-child { padding-right: 0; border-right: 0; }
.event-weather-facts dt { color: #667486; font-size: 10px; font-weight: 750; text-transform: uppercase; }
.event-weather-facts dd { margin: 4px 0 0; color: #173f69; font-size: 12px; font-weight: 800; overflow-wrap: anywhere; }
.event-weather-synopsis { margin: 0; padding: 13px 14px; border-left: 3px solid #3978ab; border-radius: 0 5px 5px 0; color: #40556c; background: #f4f8fc; font-size: 12px; line-height: 1.55; }
.event-weather-synopsis strong { display: block; margin-bottom: 4px; color: #173f69; font-size: 11px; text-transform: uppercase; }
.event-weather-source { color: #7a8795; font-size: 10px; }

.event-sponsors-section { display: grid; gap: 20px; }
.event-sponsors-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.event-sponsors-heading .eyebrow { margin: 0 0 4px; color: #3978ab; font-size: 10px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.event-sponsors-heading h2 { margin: 0; }
.event-sponsors-heading > span { color: #667486; font-size: 11px; font-weight: 700; }
.event-sponsor-logo-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(145px,1fr)); gap: 12px; }
.event-sponsor-logo { display: grid; min-width: 0; min-height: 116px; padding: 16px; place-items: center; align-content: center; gap: 9px; box-sizing: border-box; border: 1px solid #dfe5e8; border-radius: 6px; color: #40556c; background: #fff; text-align: center; text-decoration: none; }
a.event-sponsor-logo { transition: border-color .16s ease, background .16s ease, transform .16s ease; }
a.event-sponsor-logo:hover { border-color: #9db8d3; background: #f7faff; transform: translateY(-2px); }
.event-sponsor-logo img { display: block; width: 100%; height: 62px; object-fit: contain; }
.event-sponsor-logo span { font-size: 11px; font-weight: 750; line-height: 1.3; }
@media (max-width: 540px) {
  .event-sponsor-logo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .event-sponsor-logo { min-height: 102px; padding: 12px; }
  .event-sponsor-logo img { height: 52px; }
}
