/* SMC profile 2025-05-19 and the supplied Mälaren Runt implementation. */
@font-face{font-family:'SMC Open Sans';src:url('smc-open-sans.woff') format('woff');font-display:swap}
@font-face{font-family:'SMC DIN';src:url('smc-din.woff') format('woff');font-weight:700;font-display:swap}
:root{--blue:#144e8c;--navy:#142233;--gold:#ffcc32;--ink:#142233;--muted:#46566c;--line:#dfe6ee}
body{font-family:'SMC Open Sans',Arial,sans-serif;background:#eef2f6;color:var(--ink)}
h1,h2,h3,.brand,.footer-brand{font-family:'SMC DIN',Arial,sans-serif;font-weight:700}
body header{background:var(--blue);color:#fff;border-bottom:4px solid var(--gold);box-shadow:0 3px 16px #14223312}
header .brand,header nav a,header .admin-link,header .menu-toggle{color:#fff}
header .brand small{color:#fff}header .brand-divider{background:#ffffff60}
header .admin-link{border:1px solid #ffffff80;border-radius:9px;padding:10px 14px}
header nav a.active,header nav a:hover{color:var(--gold);border-color:var(--gold)}
body header .brand img{width:66px;height:50px;max-width:66px;max-height:50px;object-fit:contain}
.brand small{margin-top:4px;font-family:'SMC Open Sans',Arial,sans-serif}
main{background:transparent;min-height:45vh}.overview-banner{background:var(--blue);border-radius:16px;border-bottom:5px solid var(--gold);color:white;box-shadow:0 5px 20px #14223308}
.overview-banner h1{color:white;font-size:2.4rem}.overview-banner p,.overview-banner .eyebrow{color:#fff}
.overview-banner>div{padding:32px}.page-heading{background:white;border-bottom:1px solid var(--line)}
.quick-link,.event-card,.news-post,.form-panel,.entity-row,.programme-item,.participant-invitation,.event-publish-dialog{background:#fff;border-radius:14px;box-shadow:0 5px 20px #14223305}
.quick-link{border:1px solid var(--line)}.quick-link:hover{border-color:var(--blue);background:#f6f9fc}
.quick-pass{border-top:4px solid var(--gold)}.quick-icon{color:var(--blue);background:#e9f0f8}
.news-preview{border-radius:14px;border-color:#cbd8e5;border-left-color:var(--blue);background:#f6f9fc}
.news-important,.tag{background:#fff5d7;color:#684900}.btn{border-radius:9px;background:var(--blue);color:#fff}
.btn.light,.activity-map-btn,.record-tabs button{background:#e9f0f8;color:var(--blue)}.btn.danger{background:#9c2234;color:#fff}
input,select,textarea{font-family:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #996b00;outline-offset:3px}
header a:focus-visible,header button:focus-visible{outline-color:var(--gold)}
.rider-pass{border-top:5px solid var(--gold);border-radius:16px;background:white}.discount-logo-image{background:var(--blue);border-radius:14px;padding:24px}
.logo-editor img{background:var(--blue);border-radius:12px}.organiser-event-logo{background:white}
footer{background:#142233;color:white;border-top:4px solid var(--gold)}footer a,footer .text-button,footer p,footer small,footer .footer-brand span{color:#fff!important}
.mobile-tabs a.active,.mobile-tabs button.active{box-shadow:inset 0 3px var(--blue);color:var(--blue)}
body .form-panel input:not([type=checkbox]),body .form-panel select,body .form-panel textarea{border-radius:8px}
@media(max-width:900px){header nav{background:var(--blue);border-bottom:3px solid var(--gold)}header nav a{color:white}.overview-banner h1{font-size:2rem}.brand>span:last-child{max-width:190px}.quick-links{gap:12px}}
@media(max-width:580px){body .quick-links{grid-template-columns:1fr}body .quick-link{min-height:112px}body .overview-banner>div{padding:24px}body header .brand img{width:46px;max-width:46px;height:40px;max-height:40px}body .brand>span:last-child{font-size:.95rem}body header{gap:10px}header .admin-link{padding:8px;font-size:.85rem}body .brand small{font-size:.7rem!important}.map-layout .map-sidebar{max-height:260px;overflow:auto}.form-panel h2{font-size:1.5rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Start stays in the header; all other links are always in the hamburger menu. */
body header .header-home{margin-left:auto;color:#fff;font-size:1rem;padding:12px;white-space:nowrap;border-bottom:2px solid transparent}
body header .header-home[aria-current="page"]{color:var(--gold);border-bottom-color:var(--gold)}
body header.menu-collapsed .menu-toggle{display:block;flex-shrink:0;min-width:44px;min-height:44px;margin-left:0;font-size:28px}
body header.menu-collapsed nav{display:none;position:absolute;top:100%;left:0;right:0;width:auto;height:auto;padding:12px 4%;background:var(--blue);border-bottom:3px solid var(--gold);box-shadow:0 12px 20px #0002;max-height:70vh;overflow:auto;white-space:normal}
body header.menu-collapsed nav.open{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:0}
body header.menu-collapsed nav a{width:auto;flex-shrink:0;padding:14px;font-size:1rem;white-space:normal}
body header.menu-collapsed nav .mobile-organiser{display:flex;border-top:1px solid #ffffff60;margin-top:8px}

/* Portal name and operator in the header. */
body header .brand{gap:12px;min-width:0;flex-shrink:1}
body header .brand-copy{display:flex;flex-direction:column;max-width:none;min-width:0;line-height:1.2;letter-spacing:0}
body header .brand-copy strong{font-size:1.2rem;font-weight:700}
body header .brand-copy small{display:block;font-size:.65rem!important;font-weight:400;line-height:1.35;margin-top:4px;white-space:normal}
@media(max-width:580px){body header .brand{gap:8px}body header .brand-divider{display:none}body header .brand-copy strong{font-size:1.05rem}body header .brand-copy small{font-size:.6rem!important;max-width:none;white-space:nowrap}body header .header-home{padding:10px 6px}}
@media(max-width:380px){body header .brand-copy small{white-space:normal;max-width:130px}}

/* Public introduction to the portal. */
body [hidden]{display:none!important}
.portal-front #main{max-width:1160px;margin:0 auto;padding:36px 5% 64px}
.portal-hero{padding:48px;border-radius:20px;background:var(--blue);border-bottom:5px solid var(--gold);color:#fff}
.portal-hero h1{font-size:3.5rem;line-height:1.05;margin:12px 0 20px;color:#fff}
.portal-hero .eyebrow,.portal-hero p{color:#fff}.portal-hero .portal-lead{font-size:1.5rem;font-weight:700}
.portal-hero p{max-width:700px;line-height:1.8;margin-bottom:20px}.portal-hero .btn{display:inline-block;margin-top:8px}
.portal-features{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:28px 0 44px}
.portal-features article{padding:28px;background:#fff;border:1px solid var(--line);border-radius:16px}
.portal-features svg{width:32px;height:32px;color:var(--blue);margin-bottom:16px}
.portal-features h2,.portal-clubs h2{font-size:1.5rem;margin-bottom:14px}.portal-features p,.portal-clubs p{font-size:1rem;line-height:1.8;color:var(--muted)}
.portal-clubs{display:grid;grid-template-columns:1.4fr 1fr;gap:36px;align-items:start}.portal-clubs .eyebrow{color:var(--blue);margin-bottom:12px}.portal-clubs p+p{margin-top:14px}
.portal-invitation{padding:28px;border-left:4px solid var(--gold);border-radius:0 14px 14px 0;background:#fff}.portal-invitation h3{font-size:1.25rem;margin-bottom:12px}
.portal-front footer{padding-bottom:32px}
@media(max-width:700px){.portal-front #main{padding:22px 5% 36px}.portal-hero{padding:28px 24px}.portal-hero h1{font-size:2.5rem}.portal-hero .portal-lead{font-size:1.2rem}.portal-features,.portal-clubs{grid-template-columns:1fr;gap:16px}.portal-features{margin-bottom:32px}.portal-features article{padding:24px}.portal-clubs{gap:24px}}

/* Supplied rally photo: crop in the layout, retaining the original asset. */
.portal-hero{padding:0;overflow:hidden}
.portal-hero-photo{display:block;width:100%;height:310px;object-fit:cover;object-position:50% 43%}
.portal-hero-copy{padding:38px 48px 42px}
@media(max-width:700px){.portal-hero-photo{height:210px;object-position:55% 43%}.portal-hero-copy{padding:28px 24px}}
