/* Designer palette: navy and deep blue lead, cyan highlights, white and gold support. */
:root{--znp-bg:#0a264d;--znp-navy:#0a264d;--znp-mid:#03436b;--znp-blue:#29d7ff;--znp-ice:#29d7ff;--znp-white:#ffffff;--znp-gold:#e0b83f;--znp-muted:rgba(255,255,255,.78);--znp-dark:#0a264d;--znp-cream:#ffffff}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body.znp-landing{background:var(--znp-bg);color:var(--znp-white);font-family:var(--znp-font);margin:0;overflow-x:hidden;line-height:1.55}
body.znp-landing *,body.znp-landing *::before,body.znp-landing *::after{box-sizing:border-box}
body.znp-landing a{text-decoration:none}
body.znp-landing img{max-width:100%;-webkit-user-drag:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
body.znp-landing h1,body.znp-landing h2,body.znp-landing h3,body.znp-landing p{margin-top:0}
body.znp-landing button,body.znp-landing a{touch-action:manipulation}
body.znp-landing :focus-visible{outline:3px solid #a7e9ff;outline-offset:4px}
/* Base rules formerly inherited from Blocksy, which is not loaded on ZNP pages. :where() keeps element-level specificity. */
html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
body.znp-landing{overflow-wrap:break-word;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
:where(body.znp-landing) img{height:auto;vertical-align:middle}
:where(body.znp-landing) button{font-size:inherit;line-height:inherit}
:where(body.znp-landing) p{margin-bottom:1.5em}
:where(body.znp-landing) :is(h1,h2,h3,h4,h5,h6){color:#192a3d}
:where(body.znp-landing) :is(h3,h4){line-height:1.5}
:where(body.znp-landing) :is(h4,figcaption){font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}
:where(body.znp-landing) figcaption{line-height:1.65}
.znp-wrap{width:min(1380px,calc(100% - 100px));margin:0 auto}
.znp-skip{position:fixed;left:16px;top:-70px;background:#fff;color:#091729;padding:12px 18px;z-index:9999}.znp-skip:focus{top:15px}
/* Header */
.znp-header{position:fixed;z-index:200;inset:0 0 auto;background:rgba(3,13,27,.61);border-bottom:1px solid rgba(167,221,249,.1);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:background .25s,box-shadow .25s}
.znp-header.is-scrolled{background:rgba(5,18,33,.96);box-shadow:0 10px 32px #030d1c38}
.znp-nav-wrap{min-height:93px;display:flex;align-items:center;gap:30px;justify-content:space-between}
.znp-brand{display:flex;align-items:center;gap:11px;flex:none;color:#fff;line-height:1}
.znp-brand img{width:66px;height:52px;object-fit:contain}
.znp-brand-text strong,.znp-brand-text small{display:block;font-style:italic;font-weight:950;letter-spacing:-.6px}
.znp-brand-text strong{font-size:15px;color:var(--znp-ice)}.znp-brand-text small{font-size:12px;margin-top:4px;color:#fff}.znp-brand-text em{font-style:normal;color:var(--znp-blue)}
.znp-nav{display:flex;align-items:center;gap:clamp(12px,1.3vw,25px)}
:is(.znp-nav>a,.znp-nav-item>a){color:#f3fbff;font-size:13px;font-weight:900;letter-spacing:.04em;white-space:nowrap;transition:color .2s}
:is(.znp-nav>a,.znp-nav-item>a):not(.znp-nav-cta):hover{color:var(--znp-ice)}
.znp-nav .znp-nav-cta{background:var(--znp-blue);color:#061929;border:1px solid var(--znp-blue);padding:15px 18px;border-radius:2px;transition:transform .2s,background .2s}
.znp-nav .znp-nav-cta:hover{transform:translateY(-2px);background:#9ce4ff;color:#041526}
.znp-menu-toggle{display:none;border:0;background:transparent;padding:10px;cursor:pointer}
.znp-menu-toggle span{display:block;width:28px;height:2px;background:white;margin:6px 0}
.znp-header-tools{display:flex;align-items:center;gap:8px;flex:none}
.znp-script-switch{display:flex;align-items:center;padding:2px;border:1px solid #8ddbf738;border-radius:4px;background:#07152580}
.znp-script-flag{display:block;flex:none;width:24px;height:16px;margin:0 5px;object-fit:contain}
.znp-script-switch-en .znp-script-flag{object-fit:cover}
.znp-script-switch a{display:flex;align-items:center;justify-content:center;min-width:36px;min-height:44px;padding:6px 4px;color:#a4bbcf;font-size:10px;font-weight:850;line-height:1;transition:background .2s,color .2s}
.znp-script-switch a:hover{color:#f7fbff;background:#45bde91a}
.znp-script-switch a[aria-current="true"]{color:#8ddbf7;background:#45bde926;border-radius:2px}
/* Hero - high-impact two-column composition */
.znp-hero{position:relative;isolation:isolate;min-height:min(860px,100svh);min-height:max(760px,100svh);overflow:hidden;background:radial-gradient(ellipse at 82% 27%,#235a8a66 0%,#0d2d514d 34%,transparent 70%),var(--znp-bg)}
.znp-hero-inner{position:relative;display:grid;grid-template-columns:minmax(0,1fr);min-height:max(760px,100svh);align-items:center;padding-top:95px;padding-bottom:110px}
.znp-hero-copy{z-index:3;padding:65px 0 48px}
.znp-kicker,.znp-eyebrow{font-size:11px;font-weight:850;letter-spacing:.15em}
.znp-kicker{display:flex;align-items:center;gap:12px;color:#8cdbf9;margin-bottom:26px}
.znp-kicker-line{width:28px;height:2px;background:var(--znp-blue)}
.znp-eyebrow{color:#9bb4c8;margin-bottom:16px}
.znp-hero h1{color:var(--znp-white);font-family:Impact,'Arial Narrow',Montserrat,sans-serif;font-stretch:condensed;font-size:clamp(64px,8.2vw,136px);line-height:.92;letter-spacing:.005em;font-style:italic;transform:skew(-5deg);max-width:790px;margin-bottom:31px;text-shadow:0 2px 18px #8ddbf71a,0 12px 30px #0413255c}
.znp-hero h1>span{display:block}.znp-hero h1 .znp-outlined{color:var(--znp-blue);-webkit-text-stroke:2px #c1efff;text-shadow:4px 5px 0 #032b53}
.znp-dot{color:var(--znp-blue)}
.znp-hero-date{font-size:clamp(21px,3vw,37px);font-weight:950;letter-spacing:-.03em;color:#f6fbff;margin:0 0 10px}
.znp-hero-place{font-weight:800;letter-spacing:.08em;font-size:13px;color:#b8dff3;margin-bottom:38px}
.znp-pin{color:var(--znp-blue);font-size:11px;margin-right:5px}
.znp-hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.znp-btn{min-height:56px;padding:17px 25px;display:inline-flex;align-items:center;justify-content:center;gap:24px;border:1px solid transparent;font-weight:900;font-size:12px;letter-spacing:.07em;transition:transform .2s,background .2s,color .2s;white-space:nowrap}
.znp-btn:hover{transform:translateY(-3px)}.znp-btn span{font-size:19px;line-height:0}
.znp-btn-fill{background:var(--znp-blue);color:#05243e!important}.znp-btn-fill:hover{background:#9ce8ff;color:#041a2c!important}
.znp-btn-outline{color:#fff!important;border-color:#92bcd0;background:#08203855}.znp-btn-outline:hover{background:#ffffff1f}
.znp-btn-dark{background:#0b2d51;color:#fff!important;margin-top:24px}.znp-btn-dark:hover{background:#125083}
.znp-hero-bottom{position:absolute;inset:auto 0 0;border-top:1px solid #9cdbf43d;background:linear-gradient(90deg,#091a30e8,#0e4672bc);z-index:5;backdrop-filter:blur(5px)}
.znp-hero-bar{min-height:100px;display:flex;align-items:center;gap:50px}.znp-hero-bar>div{display:flex;flex-direction:column;gap:2px}.znp-hero-bar strong{font-size:27px;font-family:Impact,Montserrat,sans-serif;letter-spacing:.02em}.znp-hero-bar span{font-size:10px;letter-spacing:.1em;color:#aacbe0;font-weight:750}.znp-scroll-link{margin-left:auto;font-size:11px;font-weight:900;letter-spacing:.1em;color:#fff!important}.znp-scroll-link span{display:inline-block;margin-left:15px;font-size:20px}
/* Reusable type and section */
.znp-section{padding:105px 0}.znp-section-label{display:inline-block;font-size:12px;color:var(--znp-blue);font-weight:900;letter-spacing:.15em;margin-bottom:22px}
.znp-section h2,.znp-final h2{font-size:clamp(39px,5.2vw,80px);line-height:1.02;letter-spacing:-.044em;font-weight:950;margin-bottom:28px}.znp-section h2 span{color:var(--znp-blue)}
.znp-heading-row{display:flex;align-items:end;justify-content:space-between;gap:60px;margin-bottom:47px}.znp-heading-row h2{margin-bottom:0}.znp-heading-row>p{max-width:350px;color:#a9c4d6;font-size:15px;margin-bottom:10px}
.znp-text-link{display:inline-flex;gap:28px;border-bottom:2px solid var(--znp-blue);padding-bottom:9px;color:#0b2646!important;font-weight:900;font-size:12px;letter-spacing:.06em}.znp-gallery .znp-text-link{color:#fff!important}
/* Countdown */
.znp-count-section{background:#dff3fc;color:#06263d}.znp-count-inner{min-height:155px;display:flex;align-items:center;justify-content:space-between;gap:35px}.znp-count-title>span{display:block;color:#287d9f;font-size:11px;font-weight:850;letter-spacing:.17em;margin-bottom:8px}.znp-count-title strong{font-size:20px;font-weight:950;letter-spacing:-.04em}.znp-count-grid{display:flex;gap:42px}.znp-count-grid>div{display:flex;flex-direction:column;align-items:center}.znp-count-grid strong{font-size:clamp(28px,3.5vw,51px);line-height:1.1;font-family:Impact,Arial,sans-serif}.znp-count-grid small{font-weight:900;font-size:9px;letter-spacing:.15em;color:#4b7c98}
/* About */
.znp-about{background:var(--znp-cream);color:#081f39}.znp-about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:start}.znp-about h2{font-size:clamp(40px,5vw,70px)}.znp-about-grid>div:nth-child(2){padding-top:32px;max-width:530px}.znp-about p{font-size:17px;line-height:1.8;color:#375167}.znp-about .znp-text-link{margin-top:12px}.znp-statline{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #0f41672b;margin-top:68px;padding-top:35px;gap:15px}.znp-statline>div{display:flex;flex-direction:column}.znp-statline strong{font-size:51px;line-height:1;font-family:Impact,Arial,sans-serif;color:#0d416b}.znp-statline span{font-size:11px;color:#50748a;font-weight:850;letter-spacing:.11em;margin-top:8px}
/* Races */
.znp-races{background:#081b31}.znp-race-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.znp-race-card{min-height:420px;border:1px solid #60c4ef40;position:relative;overflow:hidden;padding:32px 38px 38px;display:flex;flex-direction:column;justify-content:space-between;isolation:isolate;transition:transform .25s,border-color .25s}.znp-race-card:hover{transform:translateY(-6px);border-color:#7dd9f6}
.znp-race-long{background:linear-gradient(115deg,#163c66,#0d2545 74%)}.znp-race-short{background:linear-gradient(115deg,#1c6593,#124168 74%)}.znp-race-card:before{content:"";position:absolute;inset:auto -30% -65% 22%;border:56px solid #88dfff10;border-radius:50%;width:600px;height:600px;z-index:-1}.znp-race-card:after{content:"";position:absolute;width:420px;height:100px;right:-60px;bottom:15%;transform:rotate(-28deg);background:repeating-linear-gradient(0deg,#55bde731 0 13px,transparent 13px 28px);z-index:-1}
.znp-race-no{align-self:flex-end;font-size:14px;color:#a7d7ed;font-weight:850}.znp-race-caption{font-size:12px;color:#b5d9ea;font-weight:900;letter-spacing:.16em}.znp-race-card h3{font-size:clamp(98px,11vw,170px);font-family:Impact,'Arial Narrow',Arial,sans-serif;letter-spacing:-.06em;line-height:1;color:#fff;margin:6px 0 0}.znp-race-card h3 small{font-size:36px;letter-spacing:0}.znp-race-card p{font-weight:850;font-size:15px;letter-spacing:.07em;color:#e1f7ff;margin:0}.znp-race-card>a{border:1px solid #c3e7f0;align-self:start;padding:13px 21px;color:#fff!important;font-weight:900;font-size:12px;display:flex;gap:28px;transition:background .2s}.znp-race-card>a:hover{background:#ffffff2b}
.znp-race-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;max-width:360px;margin-top:24px}
.znp-race-actions>a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 8px;border:1px solid var(--znp-blue);border-radius:2px;color:var(--znp-white);font-size:10px;font-weight:900;text-align:center;transition:background .2s,color .2s}
.znp-race-actions>a:hover{background:#29d7ff26}
.znp-race-actions .znp-race-register{background:var(--znp-blue);color:var(--znp-navy)}
.znp-race-actions .znp-race-register:hover{background:var(--znp-gold);border-color:var(--znp-gold)}
/* Individual race pages share the landing-page navigation and visual language. */
.znp-race-page-hero{padding:calc(var(--znp-header-height) + 40px) 0 64px}
.znp-race-back{display:inline-flex;align-items:center;gap:12px;margin-bottom:36px;color:var(--znp-blue);font-size:12px;font-weight:900;letter-spacing:.08em}
.znp-race-back:hover{color:var(--znp-gold)}
.znp-race-page-intro{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.65fr);gap:48px;align-items:center}
.znp-race-page-intro h1{margin:0 0 24px;color:var(--znp-white);font-size:clamp(34px,5.6vw,80px);line-height:1.02;font-weight:950;letter-spacing:-.04em}
.znp-race-page-description{max-width:720px;color:var(--znp-muted);font-size:17px;line-height:1.8;white-space:pre-line}
.znp-race-page-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.znp-race-distance{display:flex;align-items:baseline;justify-content:center;gap:10px;min-height:220px;padding:32px 20px;border:1px solid #29d7ff55;border-radius:4px;background:linear-gradient(135deg,#03436bcc,#0a264d99);color:var(--znp-blue)}
.znp-race-distance strong{font-size:clamp(64px,8vw,120px);font-weight:950;line-height:1.2;letter-spacing:-.06em}
.znp-race-distance>span{font-size:22px;font-weight:900;color:var(--znp-gold)}
.znp-race-facts{margin-top:48px}
.znp-race-details{color:var(--znp-navy)}
.znp-race-details h2{color:var(--znp-navy);max-width:900px}
.znp-race-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.znp-race-detail-grid article{padding:clamp(20px,3vw,32px);border:1px solid #03436b26;border-top:3px solid var(--znp-blue);border-radius:3px;background:#ffffffd9}
.znp-race-detail-grid h3{margin:0 0 16px;font-size:18px;line-height:1.35;color:var(--znp-navy)}
.znp-race-detail-grid p,.znp-race-editor-content{margin:0;color:var(--znp-mid);font-size:16px;line-height:1.8}
.znp-race-editor-content{margin-top:36px;overflow-wrap:anywhere}
.znp-race-editor-content :is(h2,h3,h4){color:var(--znp-navy)}
.znp-race-contact{margin:32px 0 0;color:var(--znp-mid);overflow-wrap:anywhere}
.znp-race-contact a{color:var(--znp-navy);text-decoration:underline}
.znp-race-map-pending{padding:clamp(32px,6vw,64px);border:1px dashed #03436b66;border-radius:4px;background:#ffffffb3;text-align:center}
.znp-race-map-pending>span{display:block;margin-bottom:12px;color:var(--znp-mid);font-size:44px;line-height:1}
.znp-race-map-pending p{max-width:600px;margin:0 auto;color:var(--znp-mid);font-size:17px;line-height:1.7}
/* Results stay lightweight: direct official links, rather than third-party embeds. */
.znp-results-hero .znp-race-back,.znp-pricelist-hero .znp-race-back{display:flex;width:fit-content}
.znp-results-hero h1{margin:0 0 20px;color:var(--znp-white);font-size:clamp(40px,7vw,96px);font-weight:950;line-height:1;letter-spacing:-.04em}
.znp-results-date{margin:0 0 20px;color:var(--znp-gold);font-size:14px;font-weight:900;letter-spacing:.06em}
.znp-results-hero .znp-race-page-description{margin-bottom:0}
.znp-results-section{color:var(--znp-navy)}
.znp-results-section h2{color:var(--znp-navy);max-width:1000px}
.znp-results-notice{margin:0 0 32px;padding:18px 22px;border-left:3px solid var(--znp-gold);background:#03436b0d;color:var(--znp-mid);line-height:1.7}
.znp-results-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.znp-results-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}
.znp-results-grid--one{grid-template-columns:minmax(0,calc((100% - 48px) / 3));justify-content:center}
.znp-results-edition{margin-top:40px;scroll-margin-top:16px}
.znp-results-edition+.znp-results-edition{margin-top:clamp(48px,7vw,88px);padding-top:clamp(36px,5vw,64px);border-top:1px solid #03436b33}
.znp-results-edition-header{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:16px 24px;margin-bottom:28px}
.znp-results-edition-badge{display:inline-block;margin-bottom:10px;padding:5px 10px;border:1px solid #03436b26;border-radius:3px;color:var(--znp-mid);font-size:10px;font-weight:900;letter-spacing:.12em}
.znp-results-edition-header h3{margin:0;color:var(--znp-navy);font-size:clamp(30px,4vw,48px);line-height:1.1;font-weight:950;letter-spacing:-.03em}
.znp-results-edition-date{margin:0;color:var(--znp-mid);font-size:12px;font-weight:900;letter-spacing:.04em}
.znp-result-card{display:flex;flex-direction:column;min-width:0;padding:clamp(22px,3vw,36px);border:1px solid #03436b26;border-top:3px solid var(--znp-blue);border-radius:4px;background:#ffffffed;box-shadow:0 8px 28px #0a264d0a}
.znp-result-card h4{margin:0 0 16px;min-height:2.7em;color:var(--znp-navy);font-size:18px;line-height:1.35;font-weight:900}
.znp-result-distance{margin:0 0 28px;color:var(--znp-mid);line-height:1}
.znp-result-distance strong{font-size:clamp(64px,6vw,88px);font-weight:950;letter-spacing:-.06em}
.znp-result-distance>span{font-size:20px;font-weight:900}
.znp-result-actions{display:flex;flex-direction:column;align-items:stretch;gap:20px;margin-top:auto}
.znp-result-actions .znp-btn{padding:15px 12px;gap:10px;font-size:11px}
.znp-result-actions .znp-result-download{font-size:16px}
.znp-results-pending{display:flex;align-items:center;justify-content:center;min-height:50px;padding:12px;border:1px dashed #03436b55;border-radius:3px;color:var(--znp-mid);font-size:12px;font-weight:900;letter-spacing:.04em}
.znp-result-details{display:inline-flex;align-items:center;gap:12px;align-self:center;color:var(--znp-navy);font-size:12px;font-weight:900}
.znp-result-details:hover{color:var(--znp-mid);text-decoration:underline}
@media(max-width:900px){.znp-results-grid,.znp-results-grid--two,.znp-results-grid--one{grid-template-columns:minmax(0,1fr)}.znp-result-card h4{min-height:0}.znp-result-actions{max-width:360px;width:100%}}
@media(max-width:820px){.znp-race-page-intro{grid-template-columns:minmax(0,1fr);gap:28px}.znp-race-distance{justify-content:flex-start;min-height:0;padding:20px 28px}.znp-race-distance strong{font-size:64px}}
@media(max-width:680px){.znp-race-page-hero{padding-top:calc(var(--znp-header-height) + 28px);padding-bottom:40px}.znp-race-back{margin-bottom:28px}.znp-race-page-description{font-size:15px}.znp-race-page-actions .znp-btn{flex:1 1 150px;font-size:11px;padding:15px 12px;gap:10px}.znp-race-facts{margin-top:32px}.znp-race-detail-grid{grid-template-columns:minmax(0,1fr)}}
/* Medal / Pack */
.znp-medal{background:#f4f9fc;color:#0a2039}.znp-medal-grid{display:grid;grid-template-columns:.87fr 1.13fr;gap:8%;align-items:center}.znp-medal-poster{height:565px;background:#0e2843;border:18px solid #0e2843;position:relative;overflow:hidden;box-shadow:21px 24px 0 #c5e6f3}.znp-medal-poster img{width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:saturate(.98)}
.znp-medal p{font-size:17px;color:#466074;line-height:1.7;max-width:560px;margin:0 0 23px}.znp-medal .znp-bundle{border-top:1px solid #b8cfdb;padding:16px 0;display:flex;align-items:center;gap:20px;font-size:14px;font-weight:900}.znp-medal .znp-bundle>span{font-size:12px;color:#278bb5}.znp-medal .znp-bundle em{font-size:11px;color:#6b8c9c;font-style:normal;margin-left:auto;letter-spacing:.06em}
/* Info */
.znp-info{background:#0e2b4b}.znp-info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#8fbeda54;border:1px solid #8fbeda54}.znp-info-grid>div{min-height:170px;background:#0e2b4b;padding:27px 24px;display:flex;flex-direction:column;align-items:start;justify-content:space-between}.znp-info-grid span{font-size:11px;color:#85cbe9;font-weight:900;letter-spacing:.1em}.znp-info-grid strong{font-size:clamp(16px,1.65vw,24px);font-weight:950;line-height:1.2}.znp-info-grid a{font-size:10px;color:#fff!important;border-bottom:1px solid #6cc9ed;padding-bottom:3px;font-weight:900}.znp-schedule{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:35px;align-items:center;padding:48px 0 0}.znp-schedule h3{font-size:28px;font-weight:950;letter-spacing:-.04em;margin:0}.znp-schedule p{color:#bed3df;line-height:1.6;margin:0}.znp-schedule-time{border-left:2px solid #68cbf3;padding-left:26px;display:flex;flex-direction:column}.znp-schedule-time strong{font-size:55px;font-family:Impact,Arial,sans-serif}.znp-schedule-time span{font-size:11px;font-weight:900;color:#91d7f5}
/* Course map */
.znp-route{color:var(--znp-navy)}
.znp-route-intro{max-width:960px;margin-bottom:32px}
.znp-route-intro h2{margin-bottom:24px}
.znp-route-intro p{color:var(--znp-mid);font-size:clamp(15px,1.3vw,18px);line-height:1.75;margin-bottom:14px}
.znp-route-map{overflow:hidden;border:1px solid #03436b33;border-radius:4px;background:var(--znp-navy);box-shadow:0 16px 40px #0a264d14}
.znp-route-map-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 20px;padding:12px 24px;color:var(--znp-white)}
.znp-route-map-bar strong{font-size:12px;letter-spacing:.08em}
.znp-route-switch{display:flex;flex-wrap:wrap;gap:6px}
.znp-route-switch button{min-height:44px;padding:8px 14px;border:1px solid #29d7ff66;border-radius:3px;background:transparent;color:var(--znp-white);font-size:12px;font-weight:700;cursor:pointer}
.znp-route-switch button:hover{background:#29d7ff1a;border-color:var(--znp-blue)}
.znp-route-switch button[aria-pressed="true"]{background:var(--znp-blue);border-color:var(--znp-blue);color:var(--znp-navy)}
.znp-route-map iframe{display:block;width:100%;height:clamp(324px,43.2vw,576px);border:0;background:#e4eaf0}
.znp-route-note{margin:16px 0 0;color:var(--znp-mid);font-size:13px;line-height:1.65;max-width:800px}
/* Gallery */
.znp-gallery{background:#061525}.znp-gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.znp-gallery figure{margin:0;position:relative;overflow:hidden;background:#1b3c5d;height:340px}.znp-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .45s;filter:contrast(1.06)}.znp-gallery figure:hover img{transform:scale(1.06)}.znp-gallery figure:after{content:"";position:absolute;inset:60% 0 0;background:linear-gradient(0deg,#020f20cb,transparent)}.znp-gallery figcaption{position:absolute;bottom:16px;left:21px;font-size:15px;font-weight:950;letter-spacing:.13em;z-index:2}
/* FAQ */
.znp-faq{background:#edf7fb;color:#0c2945}.znp-faq-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:70px}.znp-faq-grid>div:first-child>p{color:#537286}.znp-faq-list details{border-bottom:1px solid #b8d5e3}.znp-faq-list summary{padding:23px 0;cursor:pointer;list-style:none;font-weight:900;display:flex;justify-content:space-between;align-items:center;gap:15px}.znp-faq-list summary::-webkit-details-marker{display:none}.znp-faq-list summary span{font-size:27px;line-height:1;color:#2f88ae}.znp-faq-list details[open] summary span{transform:rotate(45deg)}.znp-faq-list details p{padding:0 0 20px;margin:0;color:#476578;line-height:1.65}
.znp-info h2,.znp-final h2{color:#526879}
/* Sponsors */
.znp-sponsors{background:var(--znp-bg);border-top:1px solid #8ddbf71f}
.znp-sponsors .znp-heading-row{align-items:center}
#znp-sponsors-title,.znp-races h2,.znp-schedule h3{color:#526879}
.znp-general-sponsor{width:min(100%,560px);margin:0 auto clamp(36px,5vw,64px);text-align:center}
.znp-general-sponsor h3{margin:0 0 20px;color:var(--znp-gold);font-size:clamp(14px,1.5vw,18px);font-weight:900;letter-spacing:.14em;line-height:1.4}
.znp-other-sponsors-title{margin:0 0 24px;text-align:center;color:var(--znp-blue);font-size:clamp(13px,1.3vw,16px);font-weight:900;letter-spacing:.14em;line-height:1.4}
.znp-general-sponsor-card{display:flex;align-items:center;justify-content:center;min-height:clamp(240px,28vw,340px);padding:clamp(24px,4vw,40px);border:1px solid #29d7ff66;border-radius:6px;background:linear-gradient(135deg,#ffffff,#edf8ff);box-shadow:0 8px 28px #020f2026;transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}
.znp-general-sponsor-card img{display:block;width:min(100%,320px);height:clamp(192px,22vw,280px);object-fit:contain;transition:transform .35s ease}
@media(hover:hover){
  .znp-general-sponsor-card:hover{transform:translateY(-3px);border-color:var(--znp-blue);box-shadow:0 0 30px #29d7ff55,0 0 65px #e0b83f26,0 14px 36px #020f2038}
  .znp-general-sponsor-card:hover img{transform:scale(1.04)}
}
.znp-sponsor-card{display:flex;align-items:center;justify-content:center;min-height:150px;padding:28px;background:#f0f6fb;border:1px solid #8ddbf72b;border-radius:3px;overflow:hidden}
.znp-sponsor-card img{display:block;width:min(100%,160px);height:auto;aspect-ratio:1;object-fit:contain;transition:transform .3s ease}
.znp-sponsor-card:hover img{transform:scale(1.1)}
.znp-sponsors.znp-section{padding-bottom:0}
/* Snow drifts at the bottom of the sponsors section; the white bottom edge runs into the contact section. */
.znp-snowbank{position:relative;z-index:0;display:block;width:100%;height:max(90px,calc(100vw * 207 / 1653));margin-top:clamp(40px,6vw,88px);margin-bottom:-1px;object-fit:cover;object-position:center bottom;user-select:none}
/* CTA & footer */
.znp-final{padding:115px 0 105px;position:relative;overflow:hidden}.znp-final-inner{position:relative}.znp-final-inner>span{font-size:16px;letter-spacing:.21em;font-weight:900;color:var(--znp-ice)}.znp-final h2{font-family:Impact,'Arial Narrow',Arial,sans-serif;font-style:italic;font-size:clamp(75px,11vw,166px);line-height:.9;letter-spacing:0;margin:26px 0 32px}.znp-final p{font-size:14px;color:#bad2e2;margin:36px 0 0}.znp-final p a{color:#fff!important;border-bottom:1px solid #58c8ed}
.znp-footer{background:#04101d;color:#8aacc3}.znp-footer-inner{min-height:120px;display:flex;align-items:center;justify-content:space-between;gap:30px}.znp-footer-brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:950;font-size:12px;line-height:1.2}.znp-footer-brand img{width:50px;height:40px;object-fit:contain}.znp-footer-inner>span{font-size:11px}.znp-footer-inner>div:last-child{display:flex;gap:20px}.znp-footer a{color:#e9f9ff!important;font-size:11px;font-weight:900}
/* A shared ribbon crosses every section, alternating direction.
   Stretch the normalized SVG to retain its edge anchors on every screen size. */
.znp-flow{position:relative;isolation:isolate;background:var(--znp-bg)}
.znp-flow::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('../img/hero-abstract.svg') center/100% 100% no-repeat;transform:scaleX(1)}
/* Alternate the ribbon direction so each section starts where the previous one ended,
   even when optional sections (e.g. Trasa) are hidden. */
main>.znp-flow:nth-child(even)::before{transform:scaleX(-1)}
.znp-flow-light{background:var(--znp-cream)}
.znp-flow-light::before{background-image:url('../img/hero-abstract-light.svg')}
.znp-sponsors.znp-flow{border-top:0}
/* Shared typography, including display headings and numeric highlights. */
:root{--znp-font:"Helvetica Neue",Helvetica,Arial,sans-serif}body.znp-landing h1,body.znp-landing h2,body.znp-landing h3,.znp-hero-bar strong,.znp-count-grid strong,.znp-statline strong,.znp-schedule-time strong,body.znp-landing button,body.znp-landing input,body.znp-landing select,body.znp-landing textarea{font-family:var(--znp-font)}
body.znp-landing .znp-hero h1{font-family:Impact,'Arial Narrow',Montserrat,sans-serif}.znp-hero-bar strong,.znp-count-grid strong,.znp-statline strong,.znp-schedule-time strong{font-weight:700}
/* Brand colors shared by the landing-page components. */
body.znp-landing :focus-visible{outline-color:var(--znp-gold)}
.znp-skip{background:var(--znp-white);color:var(--znp-navy)}
.znp-header{background:rgba(10,38,77,.8);border-bottom-color:rgba(41,215,255,.16)}
.znp-header.is-scrolled{background:rgba(10,38,77,.96);box-shadow:0 10px 32px #0a264d38}
.znp-brand,.znp-brand-text small,:is(.znp-nav>a,.znp-nav-item>a){color:var(--znp-white)}
.znp-brand-text em{color:var(--znp-gold)}
.znp-nav .znp-nav-cta{color:var(--znp-navy)}
.znp-nav .znp-nav-cta:hover{background:var(--znp-gold);border-color:var(--znp-gold);color:var(--znp-navy)}
.znp-script-switch{border-color:#29d7ff38;background:#0a264d80}
.znp-script-switch a{color:var(--znp-muted)}
.znp-script-switch a:hover{color:var(--znp-white);background:#29d7ff1a}
.znp-script-switch a[aria-current="true"]{color:var(--znp-blue);background:#29d7ff26}
.znp-kicker,.znp-pin{color:var(--znp-blue)}
.znp-kicker-line{background:var(--znp-gold)}
.znp-eyebrow,.znp-hero-place,.znp-hero-bar span,.znp-heading-row>p{color:var(--znp-muted)}
.znp-hero h1{text-shadow:0 2px 18px #29d7ff1a,0 12px 30px #0a264d5c}
.znp-hero h1 .znp-outlined{-webkit-text-stroke-color:var(--znp-white);text-shadow:4px 5px 0 var(--znp-mid)}.znp-hero-date{color:var(--znp-white)}
.znp-btn-fill{color:var(--znp-navy)!important}.znp-btn-fill:hover{background:var(--znp-gold);color:var(--znp-navy)!important}
.znp-btn-outline{border-color:var(--znp-blue);background:#03436b55}
.znp-btn-dark{background:var(--znp-navy)}.znp-btn-dark:hover{background:var(--znp-mid)}
.znp-hero-bottom{border-top-color:#29d7ff3d;background:linear-gradient(90deg,#0a264de8,#03436bbc)}
.znp-text-link{color:var(--znp-navy)!important}
.znp-count-section,.znp-about,.znp-medal,.znp-faq{color:var(--znp-navy)}
.znp-flow-light .znp-section-label,.znp-flow-light h2 span,.znp-count-title>span,.znp-count-grid small,.znp-about p,.znp-statline strong,.znp-statline span,.znp-medal p,.znp-medal .znp-bundle>span,.znp-medal .znp-bundle em,.znp-faq-grid>div:first-child>p,.znp-faq-list details p{color:var(--znp-mid)}
.znp-count-grid strong{color:var(--znp-mid)}
.znp-statline{border-top-color:#03436b2b}
.znp-race-card{border-color:#29d7ff40}.znp-race-card:hover{border-color:var(--znp-blue)}
.znp-race-long{background:linear-gradient(115deg,var(--znp-mid),var(--znp-navy) 74%)}
.znp-race-short{background:linear-gradient(115deg,var(--znp-navy),var(--znp-mid) 74%)}
.znp-race-card:before{border-color:#29d7ff10}.znp-race-card:after{background:repeating-linear-gradient(0deg,#29d7ff31 0 13px,transparent 13px 28px)}
.znp-race-no{color:var(--znp-gold)}.znp-race-caption{color:var(--znp-blue)}
.znp-race-card p{color:var(--znp-white)}.znp-race-card>a{border-color:var(--znp-blue)}
.znp-medal-poster{background:var(--znp-navy);border-color:var(--znp-navy);box-shadow:21px 24px 0 var(--znp-gold)}
.znp-medal .znp-bundle,.znp-faq-list details{border-color:#03436b33}
.znp-info-grid{background:#29d7ff54;border-color:#29d7ff54}.znp-info-grid>div{background:var(--znp-mid)}
.znp-info-grid span{color:var(--znp-blue)}.znp-info-grid a{border-bottom-color:var(--znp-gold)}
.znp-schedule p{color:var(--znp-muted)}.znp-schedule-time{border-left-color:var(--znp-gold)}.znp-schedule-time span{color:var(--znp-blue)}
.znp-gallery figure{background:var(--znp-mid)}.znp-gallery figure:after{background:linear-gradient(0deg,#0a264dcb,transparent)}
.znp-faq-list summary span{color:var(--znp-mid)}
.znp-info h2,.znp-final h2,#znp-sponsors-title,.znp-races h2,.znp-schedule h3{color:var(--znp-white)}
.znp-gallery h2{color:#d5e5ef}
.znp-sponsor-card{background:var(--znp-white);border-color:#29d7ff2b}
.znp-final-inner>span{color:var(--znp-gold)}.znp-final p{color:var(--znp-muted)}.znp-final p a{border-bottom-color:var(--znp-blue)}
.znp-footer{background:var(--znp-mid);color:var(--znp-muted)}.znp-footer a{color:var(--znp-white)!important}
/* Responsive */
/* Keep content fluid; the hero bar participates in layout rather than covering it. */
:root{--znp-header-height:93px}
html{scroll-padding-top:calc(var(--znp-header-height) + 16px)}
.znp-wrap{width:min(1380px,calc(100% - clamp(34px,6vw,100px)))}
.znp-wrap :where(div,article,figure){min-width:0}
.znp-section{padding:clamp(64px,7vw,105px) 0}
.znp-heading-row{gap:clamp(24px,4vw,60px)}
.znp-heading-row>p{flex:0 1 350px}
.znp-hero{min-height:100svh;display:flex;flex-direction:column}
.znp-hero-inner{flex:1;min-height:0;grid-template-columns:minmax(0,1fr);padding-top:calc(var(--znp-header-height) + 24px);padding-bottom:28px}
.znp-hero-copy{padding:clamp(24px,4vh,56px) 0}
.znp-hero h1{font-size:clamp(64px,8.2vw,126px)}
.znp-hero-bottom{position:relative;inset:auto;flex:none}
.znp-kicker-line{flex:none}
.znp-btn{white-space:normal;text-align:center;min-height:48px}
.znp-btn span{flex:none}
.znp-count-grid{gap:clamp(20px,3vw,42px)}
.znp-race-card{padding:clamp(24px,3vw,38px)}
.znp-race-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.znp-race-card h3{font-size:clamp(64px,7vw,108px)}
.znp-race-card h3 small{font-size:26px}
.znp-medal .znp-bundle{flex-wrap:wrap;gap:12px}
.znp-final p a{overflow-wrap:anywhere}
.znp-final h2{font-size:clamp(58px,10.5vw,150px)}
.znp-footer-inner{flex-wrap:wrap;padding-top:24px;padding-bottom:24px}
.znp-footer-inner>span{overflow-wrap:anywhere}

@media(max-width:1210px){
  .znp-brand-text strong{font-size:13px}
  .znp-nav{gap:10px}
  :is(.znp-nav>a,.znp-nav-item>a){font-size:10px}
  .znp-nav .znp-nav-cta{padding:13px}
  .znp-hero-bar{gap:28px}
  .znp-about-grid,.znp-faq-grid{gap:36px}
  .znp-medal-grid{gap:40px}
  .znp-medal-poster{height:480px}
  .znp-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .znp-schedule{grid-template-columns:1fr 1fr}
  .znp-schedule-time{grid-column:1/-1}
}

/* Compact navigation includes landscape tablets. */
@media(max-width:1340px){
  :root{--znp-header-height:80px}
  .znp-nav-wrap{min-height:var(--znp-header-height)}
  .znp-menu-toggle{display:block;z-index:3;min-width:48px;min-height:48px}
  .znp-nav{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;align-items:stretch;padding:16px max(24px,3vw) 28px;background:var(--znp-navy);box-shadow:0 20px 50px #0a264db8;max-height:calc(100svh - var(--znp-header-height));overflow-y:auto;overscroll-behavior:contain;gap:0}
  .znp-nav.is-open{display:flex}
  :is(.znp-nav>a,.znp-nav-item>a){padding:14px 0;font-size:15px;border-bottom:1px solid var(--znp-mid);min-height:48px}
  .znp-nav .znp-nav-cta{margin-top:16px;padding:16px 23px;text-align:center;border-bottom:0}
}

@media(max-width:1100px){
  .znp-race-grid{grid-template-columns:minmax(0,1fr)}
  .znp-hero h1{font-size:clamp(60px,8.5vw,92px)}
  .znp-hero-place{font-size:12px;letter-spacing:.04em}
  .znp-hero-actions{gap:12px}
  .znp-hero-actions .znp-btn{padding:15px 18px;gap:14px;font-size:11px}
  .znp-count-title strong{font-size:18px}
  .znp-gallery figure{height:clamp(230px,28vw,340px)}
}

/* Portrait tablets: give the copy full width and the photo its own row. */
@media(max-width:820px){
  .znp-hero-inner{grid-template-columns:minmax(0,1fr);gap:8px;padding-bottom:0}
  .znp-hero-copy{padding:24px 0 12px}
  .znp-hero h1{font-size:clamp(64px,12vw,98px);margin-bottom:24px}
  .znp-hero-bar{gap:20px;justify-content:space-between;min-height:90px}
  .znp-scroll-link{display:none}
  .znp-count-inner{flex-direction:column;align-items:stretch;padding:30px 0;gap:24px}
  .znp-count-grid{justify-content:space-between}
  .znp-about-grid,.znp-faq-grid,.znp-medal-grid{grid-template-columns:minmax(0,1fr);gap:28px}
  .znp-about-grid>div:nth-child(2){padding-top:0;max-width:none}
  .znp-medal-poster{width:min(420px,calc(100% - 20px));height:auto;aspect-ratio:1;justify-self:center}
  .znp-heading-row{align-items:start;flex-direction:column;gap:18px;margin-bottom:32px}
  .znp-heading-row>p{flex-basis:auto;margin-bottom:0;max-width:520px}
  .znp-sponsors .znp-heading-row{align-items:start}
  .znp-section h2{font-size:clamp(36px,6vw,58px)}
  .znp-race-card{min-height:360px}
  .znp-race-card h3{font-size:clamp(80px,12vw,100px)}
  .znp-race-card h3 small{font-size:26px}
  .znp-race-card p{font-size:12px;letter-spacing:.03em}
}

@media(max-width:680px){
  :root{--znp-header-height:74px}
  .znp-brand img{width:54px;height:42px}
  .znp-brand-text strong{font-size:12px}
  .znp-brand-text small{font-size:10px}
  .znp-nav-wrap{gap:12px}
  .znp-header-tools{gap:4px}
  .znp-script-switch a{min-width:32px;padding:6px 2px}
  .znp-hero-inner{flex:none;grid-template-rows:auto auto;align-items:start;gap:24px;padding-top:var(--znp-header-height)}
  .znp-hero-copy{display:flex;flex-direction:column;align-items:stretch;min-height:calc(100svh - var(--znp-header-height));padding:clamp(20px,5svh,40px) 0 max(20px,env(safe-area-inset-bottom,0px))}
  .znp-kicker{font-size:10px;letter-spacing:.07em;gap:9px;margin-bottom:18px}
  .znp-kicker-line{width:20px}
  .znp-eyebrow{font-size:10px;letter-spacing:.09em;max-width:350px}
  .znp-hero h1{font-size:clamp(48px,min(13.5vw,12svh),88px);flex:none}
  .znp-hero-date{font-size:clamp(23px,5vw,30px);margin-bottom:8px}
  .znp-hero-place{font-size:11px;line-height:1.7;margin-bottom:0}
  .znp-hero-actions{flex:none;margin-top:auto;padding-top:24px}
  .znp-hero-actions .znp-btn{flex:1 1 150px;font-size:11px;padding:15px 12px;gap:10px}
  .znp-hero-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-top:18px;padding-bottom:18px;align-items:start}
  .znp-hero-bar strong{font-size:23px}
  .znp-hero-bar span{font-size:9px;letter-spacing:.03em}
  .znp-count-title strong{font-size:18px}
  .znp-count-grid{gap:12px}
  .znp-count-grid strong{font-size:clamp(32px,9vw,46px)}
  .znp-section-label{font-size:11px;margin-bottom:16px}
  .znp-section h2{font-size:clamp(32px,8.5vw,52px)}
  .znp-about p,.znp-medal p{font-size:15px}
  .znp-statline{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:26px;margin-top:38px}
  .znp-statline strong{font-size:43px}
  .znp-race-grid{grid-template-columns:minmax(0,1fr);gap:16px}
  .znp-race-card{min-height:338px}
  .znp-race-card h3{font-size:clamp(100px,25vw,140px)}
  .znp-medal-poster{border-width:12px;box-shadow:14px 16px 0 var(--znp-gold)}
  .znp-medal .znp-bundle{font-size:12px}
  .znp-medal .znp-bundle em{font-size:10px}
  .znp-info-grid>div{padding:20px 16px;min-height:145px;gap:18px}
  .znp-info-grid strong{font-size:17px;overflow-wrap:anywhere}
  .znp-schedule{grid-template-columns:minmax(0,1fr);padding-top:32px;gap:24px}
  .znp-schedule-time{grid-column:auto}
  .znp-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .znp-gallery figure{height:auto;aspect-ratio:4/5}
  .znp-gallery figure:first-child{grid-column:1/-1;aspect-ratio:4/3}
  .znp-gallery figcaption{font-size:11px;left:12px;letter-spacing:.06em}
  .znp-final{padding:72px 0}
  .znp-final h2{font-size:clamp(52px,13vw,88px)}
  .znp-final-inner>span{font-size:13px;letter-spacing:.14em}
  .znp-sponsor-card{min-height:120px;padding:18px}
  .znp-sponsor-card img{width:min(100%,120px)}
  .znp-footer-inner{gap:20px}
  .znp-footer-inner>span{width:100%;order:3}
}

@media(max-width:380px){
  .znp-hero-actions{flex-direction:column}
  .znp-hero-actions .znp-btn{flex-basis:auto;width:100%}
  .znp-info-grid{grid-template-columns:minmax(0,1fr)}
  .znp-info-grid>div{min-height:125px}
  .znp-footer-inner>div:last-child{flex-wrap:wrap}
}

@media(max-width:420px){.znp-brand-text{display:none}}

/* Short laptop screens retain two columns without oversized vertical spacing. */
@media(min-width:821px) and (max-height:800px){
  .znp-hero-inner{padding-top:calc(var(--znp-header-height) + 16px);padding-bottom:20px}
  .znp-hero-copy{padding:20px 0}
  .znp-hero h1{font-size:clamp(60px,7.2vw,100px);margin-bottom:22px}
  .znp-kicker{margin-bottom:18px}
  .znp-hero-place{margin-bottom:24px}
  .znp-hero-bar{min-height:84px}
}
/* Give registration the spotlight when it is the only hero action. */
.znp-hero-actions.znp-hero-actions--registration .znp-btn{position:relative;isolation:isolate;overflow:hidden;flex:none;width:min(100%,360px);min-height:76px;padding:22px 32px;gap:24px;border-radius:4px;font-size:18px;letter-spacing:.08em;box-shadow:0 10px 28px #29d7ff26;transition:transform .3s ease,background .3s ease,box-shadow .3s ease}
.znp-hero-actions--registration .znp-btn::before{content:"";position:absolute;z-index:-1;inset:-50% auto -50% 0;width:65%;background:linear-gradient(90deg,transparent,#ffffff88,transparent);transform:translateX(-180%) skewX(-20deg);transition:transform .7s ease;pointer-events:none}
.znp-hero-actions--registration .znp-btn span{font-size:24px;transition:transform .3s ease}
.znp-hero-actions.znp-hero-actions--registration .znp-btn:is(:hover,:focus-visible){background:var(--znp-gold);transform:perspective(700px) translateY(-5px) rotateX(var(--znp-tilt-x,0deg)) rotateY(var(--znp-tilt-y,0deg)) scale(1.025);box-shadow:6px 8px 32px #29d7ff66,0 18px 40px #020f2055;transition:transform .12s ease-out,background .3s ease,box-shadow .3s ease}
.znp-hero-actions--registration .znp-btn:is(:hover,:focus-visible)::before{transform:translateX(260%) skewX(-20deg)}
.znp-hero-actions--registration .znp-btn:is(:hover,:focus-visible) span{transform:translate(4px,-2px)}
@media(max-width:680px){.znp-hero-actions.znp-hero-actions--registration .znp-btn{width:100%;min-height:68px;padding:20px 24px;font-size:17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.znp-race-card,.znp-btn,.znp-gallery img,.znp-header,.znp-sponsor-card img,.znp-script-switch a,.znp-general-sponsor-card,.znp-general-sponsor-card img{transition:none}.znp-general-sponsor-card:hover,.znp-general-sponsor-card:hover img{transform:none}.znp-hero-actions.znp-hero-actions--registration .znp-btn,.znp-hero-actions--registration .znp-btn::before,.znp-hero-actions--registration .znp-btn span{transition:none}.znp-hero-actions--registration .znp-btn:is(:hover,:focus-visible) span{transform:none}.znp-hero-actions--registration .znp-btn::before{display:none}}
/* Race pack */
.znp-pack{color:var(--znp-navy)}
.znp-pack .znp-heading-row>p{color:var(--znp-mid);white-space:pre-line}
.znp-pack-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,5vw,72px);align-items:start}
.znp-pack-grid--no-photos{grid-template-columns:minmax(0,760px)}
.znp-pack-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.znp-pack-photos figure{margin:0;aspect-ratio:1/1;overflow:hidden;background:#e6f1f7;border-radius:3px}
.znp-pack-photos figure:first-child:nth-last-child(odd){grid-column:1/-1;aspect-ratio:2/1}
.znp-pack-photos img{width:100%;height:100%;object-fit:cover}
.znp-pack-details h3{margin:0 0 6px;font-size:13px;font-weight:900;letter-spacing:.15em;color:var(--znp-mid)}
.znp-pack-items{list-style:none;margin:0 0 32px;padding:0}
.znp-pack-items li{display:flex;align-items:baseline;gap:20px;padding:16px 0;border-bottom:1px solid #03436b33;font-size:17px;font-weight:800;line-height:1.4}
.znp-pack-items li>span{flex:none;font-size:12px;color:#278bb5;letter-spacing:.06em}
.znp-pack-pending{margin:16px 0 32px;color:var(--znp-mid);font-size:16px}
.znp-pack-price{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;padding:clamp(22px,3vw,32px);background:var(--znp-navy);color:var(--znp-white);border-radius:3px;box-shadow:12px 14px 0 var(--znp-gold)}
.znp-pack-price span{display:block;font-size:11px;font-weight:900;letter-spacing:.15em;color:var(--znp-blue)}
.znp-pack-price strong{display:block;margin:6px 0 4px;font-size:clamp(34px,4vw,52px);font-weight:950;line-height:1;letter-spacing:-.03em}
.znp-pack-price small{display:block;font-size:13px;color:var(--znp-muted)}
@media(max-width:820px){
  .znp-pack-grid{grid-template-columns:minmax(0,1fr)}
  .znp-pack-photos{gap:12px}
  .znp-pack-items li{font-size:15px;gap:14px}
  .znp-pack-price{box-shadow:8px 10px 0 var(--znp-gold)}
}
/* Header dropdowns: hover/focus panels on desktop, always-open indented lists in the mobile drawer */
.znp-nav-item{position:relative}
.znp-subnav{list-style:none;margin:0;padding:0}
.znp-subnav a{display:block;color:#f3fbff;font-weight:900;letter-spacing:.04em;white-space:nowrap;transition:color .2s,background .2s}
.znp-subnav a:hover,.znp-subnav a[aria-current]{color:var(--znp-ice)}
.znp-subnav a:not([href]){color:var(--znp-muted);cursor:default}.znp-subnav a:not([href]) em{font-style:normal;font-size:.8em;color:var(--znp-gold)}
@media(min-width:1341px){
  .znp-nav-item>a::after{content:"";display:inline-block;width:5px;height:5px;margin-left:7px;border:solid currentColor;border-width:0 2px 2px 0;transform:translateY(-3px) rotate(45deg);transition:transform .2s}
  .znp-nav-item:is(:hover,:focus-within)>a::after{transform:translateY(0) rotate(225deg)}
  .znp-subnav{position:absolute;top:calc(100% + 18px);left:-20px;min-width:260px;padding:10px 0;background:var(--znp-navy);border:1px solid #29d7ff33;border-top:3px solid var(--znp-blue);box-shadow:0 22px 44px #0a264db8;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s,transform .18s,visibility .18s}
  .znp-subnav::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:21px}
  .znp-nav-item:is(:hover,:focus-within)>.znp-subnav{opacity:1;visibility:visible;transform:none}
  .znp-subnav a{padding:12px 20px;font-size:13px}
  .znp-subnav a:hover{background:#ffffff0d}
}
@media(max-width:1340px){
  .znp-nav-item>a{display:block}
  .znp-subnav{padding-left:18px}
  .znp-subnav a{padding:12px 0;min-height:44px;font-size:13px;color:var(--znp-muted);border-bottom:1px solid var(--znp-mid)}
}
@media(prefers-reduced-motion:reduce){.znp-subnav,.znp-nav-item>a::after{transition:none}}
/* About page */
.znp-about-link{display:inline-block;margin:16px 20px 0 0;padding-bottom:3px;border-bottom:2px solid var(--znp-blue);color:var(--znp-mid);font-size:12px;font-weight:900;letter-spacing:.08em;transition:color .2s,border-color .2s}
.znp-about-link:hover{color:var(--znp-navy);border-color:var(--znp-gold)}
.znp-about-organizer{margin-top:clamp(40px,6vw,72px);padding-top:32px;border-top:1px solid #03436b33}
.znp-about-organizer p{margin:0 0 12px;color:var(--znp-mid);font-size:16px;line-height:1.7}
.znp-about-organizer strong{color:var(--znp-navy);font-size:clamp(20px,2.4vw,28px);font-weight:950;letter-spacing:-.02em}
/* Gallery: feather the tile edges into the section background instead of hard corners */
.znp-gallery figure{--znp-feather:22px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--znp-feather),#000 calc(100% - var(--znp-feather)),transparent),linear-gradient(180deg,transparent,#000 var(--znp-feather),#000 calc(100% - var(--znp-feather)),transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent,#000 var(--znp-feather),#000 calc(100% - var(--znp-feather)),transparent),linear-gradient(180deg,transparent,#000 var(--znp-feather),#000 calc(100% - var(--znp-feather)),transparent);mask-composite:intersect;background:transparent}
.znp-gallery figcaption{bottom:calc(var(--znp-feather) + 6px);left:calc(var(--znp-feather) + 8px)}
@media(max-width:680px){.znp-gallery figure{--znp-feather:14px}.znp-gallery figcaption{left:calc(var(--znp-feather) + 4px)}}
/* Hero "Prijavi se": one attention pulse 1.5s after load — rainbow ring, gold fill, grow and shake.
   Uses the individual scale/translate/rotate properties so it never fights the hover tilt transform. */
@property --znp-ring{syntax:'<angle>';inherits:false;initial-value:0deg}
.znp-hero-actions .znp-btn-register{--znp-cta-scale:1.3;--znp-cta-origin:left center;position:relative;animation:znp-cta-attention 2.6s ease-in-out 1.5s}
.znp-hero-actions .znp-btn-register::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:3px;background:conic-gradient(from var(--znp-ring),#ff4d6d,#ffb23f,#ffe53f,#5dff8a,#29d7ff,#7a6bff,#ff4dd8,#ff4d6d);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);opacity:0;pointer-events:none;animation:znp-cta-ring 2.6s linear 1.5s}
@keyframes znp-cta-attention{
  0%,100%{transform-origin:var(--znp-cta-origin)}
  15%,62%{scale:var(--znp-cta-scale);background:var(--znp-gold);box-shadow:-8px 0 26px #ff4d6d99,8px 0 26px #29d7ff99,0 8px 26px #ffe53f99,0 -8px 26px #7a6bff99}
  15%{translate:0;rotate:0deg}
  22%{translate:-6px 0;rotate:-2deg}
  30%{translate:6px 0;rotate:2deg}
  38%{translate:-5px 0;rotate:-1.5deg}
  46%{translate:5px 0;rotate:1.5deg}
  54%{translate:-3px 0;rotate:-1deg}
  62%{translate:0;rotate:0deg}
}
@keyframes znp-cta-ring{15%,62%{opacity:1}100%{--znp-ring:720deg}}
@media(max-width:680px){.znp-hero-actions .znp-btn-register{--znp-cta-scale:1.08;--znp-cta-origin:center}}
/* Reduced motion: keep the colour, ring and glow, drop the growing, shaking and spinning. */
@keyframes znp-cta-glow{15%,62%{background:var(--znp-gold);box-shadow:-8px 0 26px #ff4d6d99,8px 0 26px #29d7ff99,0 8px 26px #ffe53f99,0 -8px 26px #7a6bff99}}
@keyframes znp-cta-ring-still{15%,62%{opacity:1}}
@media(prefers-reduced-motion:reduce){.znp-hero-actions .znp-btn-register{animation-name:znp-cta-glow}.znp-hero-actions .znp-btn-register::after{animation-name:znp-cta-ring-still}}
/* Race cards: keep the 6px lift and add the mouse-position 3D tilt (vars set by znp.js). */
.znp-race-card:hover{transform:perspective(1000px) translateY(-6px) rotateX(var(--znp-tilt-x,0deg)) rotateY(var(--znp-tilt-y,0deg));transition:transform .12s ease-out,border-color .25s}
@media(prefers-reduced-motion:reduce){.znp-race-card:hover{transition:none}}
/* Footer: brand left, social links centred, legal line + back-to-top right */
.znp-footer-inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
.znp-footer-brand{justify-self:start}
.znp-footer-social{display:flex;gap:28px;justify-self:center}
.znp-footer-social a{display:inline-flex;align-items:center;gap:8px}
.znp-footer-social svg{flex:none;width:20px;height:20px}
.znp-footer-social a,.znp-footer-legal a{font-size:13px}
.znp-footer-legal{display:flex;align-items:center;gap:20px;justify-self:end;text-align:right}
.znp-footer-legal span{font-size:11px;overflow-wrap:anywhere}
@media(min-width:821px){.znp-footer-legal>*,.znp-footer-social a{white-space:nowrap}}
/* Mid widths: one row cannot fit four social links, so brand + legal share the top row and the links get their own. */
@media(min-width:821px) and (max-width:1299px){
  .znp-footer-inner{grid-template-columns:auto 1fr;grid-template-areas:"brand legal" "social social";row-gap:18px}
  .znp-footer-brand{grid-area:brand}.znp-footer-legal{grid-area:legal}.znp-footer-social{grid-area:social;justify-self:start}
}
@media(max-width:820px){
  .znp-footer-inner{grid-template-columns:minmax(0,1fr);justify-items:start;gap:20px}
  .znp-footer-social,.znp-footer-legal{justify-self:start;flex-wrap:wrap;text-align:left}
  .znp-footer-social{gap:22px}
}
/* Header (desktop): logo hard left, menu + language switches grouped on the right, wider than the content column */
@media(min-width:1341px){
  .znp-header .znp-nav-wrap{width:min(1760px,calc(100% - 64px))}
  .znp-nav{margin-left:auto}
  :is(.znp-nav>a,.znp-nav-item>a),.znp-subnav a{font-size:12px}
}
/* Narrow desktops: tighter spacing so the longest menu (Cyrillic + Trasa) still fits beside the language switches. */
@media(min-width:1341px) and (max-width:1499px){.znp-nav-wrap{gap:22px}.znp-nav{gap:10px}:is(.znp-nav>a,.znp-nav-item>a){font-size:11px}}
@media(max-width:820px){.znp-footer-social{row-gap:14px}}
/* Phones: a single text column, one kicker line, one spacing rhythm, a compact one-line distance bar and a calmer
   background. The copy wrapper is flattened so its children share one grid. */
.znp-hero-bar-short{display:none}
@media(max-width:680px){
  .znp-hero-inner{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"kicker" "title" "date" "place" "actions";grid-template-rows:auto auto auto auto 1fr;column-gap:16px;row-gap:0;align-items:start;padding-top:calc(var(--znp-header-height) + clamp(16px,calc(12svh - 48px),72px));padding-bottom:max(20px,env(safe-area-inset-bottom,0px))}
  .znp-hero-copy{display:contents}
  /* Title, date and place sit this much lower than the kicker (grows with screen height). */
  .znp-hero{--znp-hero-drop:clamp(0px,calc(13.5svh - 72px),80px)}
  .znp-kicker{grid-area:kicker;margin-bottom:clamp(20px,calc(10svh - 40px),52px)}
  .znp-eyebrow{display:none}
  .znp-hero h1{grid-area:title;padding-top:var(--znp-hero-drop);margin-bottom:clamp(14px,calc(5svh - 14px),30px);font-size:clamp(36px,min(11vw,11svh),74px)}
  .znp-hero-date{grid-area:date;font-size:clamp(17px,4.9vw,24px);margin-bottom:clamp(10px,calc(3svh - 7px),20px)}
  .znp-hero-place{grid-area:place;margin-bottom:0}
  .znp-hero-actions{grid-area:actions;align-self:end;margin-top:0;padding-top:24px;padding-bottom:clamp(20px,calc(10svh - 36px),64px)}
  .znp-hero-actions.znp-hero-actions--registration{justify-content:center;align-items:center}
  .znp-hero-actions.znp-hero-actions--registration .znp-btn-register{width:max(55%,196px);min-height:58px;flex:none;padding:16px;gap:12px;font-size:15px;white-space:nowrap}
  .znp-hero-actions .znp-btn-register{--znp-cta-scale:1.3;--znp-cta-origin:center}
  .znp-hero.znp-flow::before{opacity:.5}
  .znp-hero{min-height:100svh}
  .znp-hero-inner{flex:1 0 auto;align-content:stretch}
  .znp-hero-bar{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:4px 10px;min-height:0;padding-top:16px;padding-bottom:16px}
  .znp-hero-bar>div{flex-direction:row;align-items:baseline;gap:5px}
  .znp-hero-bar>div+div::before{content:"·";margin-right:5px;color:var(--znp-blue);font-weight:900}
  .znp-hero-bar strong{font-size:18px}
  .znp-hero-bar span{display:none}
  .znp-hero-bar-short{display:inline;font-style:normal;font-size:10px;font-weight:900;letter-spacing:.08em;color:var(--znp-muted)}
}
@media(max-width:400px){.znp-hero-bar strong{font-size:16px}.znp-hero-bar{column-gap:8px}}
@media(max-width:340px){.znp-hero-bar strong{font-size:14px}.znp-hero-bar{column-gap:6px}.znp-hero-bar-short{font-size:9px}}
@media(max-width:380px){.znp-kicker{letter-spacing:.02em;gap:7px}.znp-kicker-line{width:14px}}
/* Contact form (footer, every ZNP page) */
.znp-contact{color:var(--znp-navy)}
.znp-contact h2{color:var(--znp-navy)}
.znp-contact h2 .znp-dot{color:var(--znp-blue)}
.znp-contact-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(40px,7vw,120px);align-items:start}
.znp-contact-brand{display:flex;align-items:center;gap:clamp(14px,1.6vw,22px);margin-bottom:28px}
.znp-contact-brand p{margin:0;color:var(--znp-navy);font-weight:950;text-transform:uppercase;line-height:1.05}
.znp-contact-brand strong{display:block;font-size:clamp(30px,3vw,42px);letter-spacing:-.03em;color:var(--znp-mid)}
.znp-contact-brand span{display:block;font-size:clamp(15px,1.4vw,19px);letter-spacing:.02em}
.znp-contact-logo{flex:none;display:block;width:clamp(96px,9vw,128px);height:auto}
.znp-contact-info>p{max-width:440px;margin:0 0 36px;font-size:17px;line-height:1.55;color:var(--znp-mid)}
.znp-contact-list{list-style:none;margin:0;padding:0;display:grid;gap:18px}
.znp-contact-list li{display:flex;align-items:center;gap:14px;font-size:16px;font-weight:700}
.znp-contact-list svg{flex:none;color:#278bb5}
.znp-contact-list a{color:var(--znp-navy)!important;border-bottom:1px solid var(--znp-blue);overflow-wrap:anywhere}
.znp-contact-form{display:flex;flex-direction:column}
.znp-contact-form label{margin:22px 0 8px;font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--znp-navy)}
.znp-contact-form label:first-of-type{margin-top:0}
.znp-contact-form abbr{color:#d43d3d;text-decoration:none}
.znp-contact-form input,.znp-contact-form select,.znp-contact-form textarea{width:100%;min-height:52px;padding:13px 16px;border:1px solid #03436b59;border-radius:3px;background:#fff;color:var(--znp-navy);font:inherit;font-size:16px;transition:border-color .2s,box-shadow .2s}
.znp-contact-form textarea{min-height:140px;resize:vertical}
.znp-contact-form :is(input,select,textarea):focus{outline:none;border-color:var(--znp-blue);box-shadow:0 0 0 3px #29d7ff4d}
.znp-contact-form small{margin-top:8px;font-size:13px;color:var(--znp-mid)}
.znp-contact-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.znp-contact-row>div{display:flex;flex-direction:column}
.znp-contact-row label{margin-top:22px!important}
.znp-contact-form .znp-btn{align-self:flex-start;margin-top:32px;cursor:pointer}
.znp-contact-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.znp-contact-notice{margin:0 0 24px;padding:14px 18px;border-left:4px solid #d43d3d;background:#fdeeee;font-weight:700}
.znp-contact-notice--poslato{border-left-color:#1f9d55;background:#e9f7ef}
@media(max-width:820px){.znp-contact-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:560px){.znp-contact-row{grid-template-columns:minmax(0,1fr);gap:0}.znp-contact-form .znp-btn{align-self:stretch}}
/* Race page sponsor (under the distance badge) */
.znp-race-side{display:grid;gap:16px}
.znp-race-sponsor{display:grid;gap:14px;padding:20px;border:1px solid #29d7ff55;border-radius:4px;background:linear-gradient(135deg,#03436bcc,#0a264d99)}
.znp-race-sponsor>span{font-size:15.5px;font-weight:900;letter-spacing:.15em;color:var(--znp-gold)}
.znp-race-sponsor-logo{display:flex;align-items:center;justify-content:center;min-height:110px;padding:16px;background:var(--znp-white);border-radius:3px}
.znp-race-sponsor-logo img{display:block;width:auto;max-width:100%;max-height:120px;object-fit:contain}
.znp-race-sponsor p{margin:0;color:var(--znp-muted);font-size:14px;line-height:1.6;white-space:pre-line;overflow-wrap:anywhere}
/* Title sponsor line above the race name on homepage race cards */
.znp-race-sponsor-name{display:block;margin-bottom:6px;font-size:15px;letter-spacing:.2em;color:var(--znp-white);transition:color .3s ease,text-shadow .3s ease}
.znp-race-card:is(:hover,:focus-within) .znp-race-sponsor-name{color:var(--znp-gold);text-shadow:0 0 14px #e0b83f80}
@media(prefers-reduced-motion:reduce){.znp-race-sponsor-name{transition:none}}
/* Header: logo pushed to the left edge at every width; the right side keeps its usual gutter. */
.znp-header .znp-nav-wrap{width:auto;max-width:none;margin:0;padding:0 clamp(17px,3vw,50px) 0 16px}
@media(min-width:1341px){.znp-header .znp-nav-wrap{padding-right:32px}}
/* Price list page: dual-tone photo, darkened on the text side for legibility */
.znp-pricelist-hero{display:flex;align-items:center;min-height:min(820px,100svh);padding:calc(var(--znp-header-height,93px) + 48px) 0 80px;background:linear-gradient(90deg,var(--znp-navy) 0%,#0a264dd9 38%,#0a264d40 75%,#0a264d1a 100%),url('../img/dualTone.jpg') 70% center/cover no-repeat var(--znp-navy)}
.znp-pricelist-hero h1{margin:0 0 24px;color:var(--znp-white);font-size:clamp(48px,8vw,120px);line-height:1;font-weight:950;letter-spacing:-.04em}
.znp-pricelist-text{max-width:520px;margin:0 0 32px;color:var(--znp-muted);font-size:15px;line-height:1.7}
.znp-pricelist-pending{margin:0;color:var(--znp-gold);font-size:13px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
@media(max-width:680px){.znp-pricelist-hero{background:linear-gradient(180deg,#0a264de6 0%,#0a264db3 55%,#0a264d66 100%),url('../img/dualTone.jpg') 62% center/cover no-repeat var(--znp-navy)}}
/* Medal frame follows the square 2027 medal photo at every width, so nothing is cropped. */
.znp-medal-poster{height:auto;aspect-ratio:1}
/* Sponsor logo marquees (Ostali sponzori, Prijatelji trke): two identical groups slide by -50%.
   Each group is one card wider than the strip and spreads its cards out, so with few logos a logo has left
   before its copy enters: never two of the same on screen (Huawei guidelines forbid using the logo as a pattern). */
.znp-marquee{container-type:inline-size;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.znp-marquee+.znp-other-sponsors-title{margin-top:clamp(40px,5vw,64px)}
.znp-marquee-track{display:flex;width:max-content;animation:znp-marquee-scroll 45s linear infinite}
.znp-marquee:is(:hover,:focus-within) .znp-marquee-track{animation-play-state:paused}
.znp-marquee-group{display:flex;justify-content:space-around;gap:20px;min-width:calc(100cqw + 240px);margin:0;padding:0 20px 0 0;list-style:none;box-sizing:border-box}
.znp-marquee .znp-sponsor-card{flex:none;width:200px;min-height:0;aspect-ratio:1}
@keyframes znp-marquee-scroll{to{transform:translate3d(-50%,0,0)}}
@media(max-width:680px){.znp-marquee .znp-sponsor-card{width:140px;padding:16px}.znp-marquee-group{gap:12px;padding-right:12px;min-width:calc(100cqw + 160px)}}
@media(prefers-reduced-motion:reduce){.znp-marquee{overflow-x:auto}.znp-marquee-track{animation:none}.znp-marquee-group[aria-hidden]{display:none}}
/* PREUZMI menu: grey info-only item; its note opens on hover/focus (desktop) and is always shown in the mobile menu. */
.znp-subnav a.znp-subnav-note{color:#8a9bab;cursor:help}
.znp-subnav-tip{display:block;max-width:260px;font-size:11px;font-weight:700;letter-spacing:.02em;line-height:1.5;white-space:normal;color:var(--znp-gold)}
@media(min-width:1341px){
  .znp-subnav-tip{max-height:0;overflow:hidden;opacity:0;transition:max-height .25s ease,opacity .2s ease,margin .25s ease}
  .znp-subnav-note:is(:hover,:focus-visible) .znp-subnav-tip{max-height:60px;margin-top:6px;opacity:1}
}
@media(max-width:1340px){.znp-subnav-tip{margin-top:4px}}
@media(prefers-reduced-motion:reduce){.znp-subnav-tip{transition:none}}
/* Compact menu accordion (znp.js adds .has-accordion; without JS every list stays open). */
@media(max-width:1340px){
  .znp-nav.has-accordion .znp-nav-item:not(.is-expanded)>.znp-subnav{display:none}
  .znp-nav.has-accordion .znp-nav-item>a{display:flex;align-items:center;justify-content:space-between}
  .znp-nav.has-accordion .znp-nav-item>a::after{content:"";flex:none;width:8px;height:8px;margin-right:4px;border:solid currentColor;border-width:0 2px 2px 0;transform:translateY(-2px) rotate(45deg);transition:transform .2s ease}
  .znp-nav.has-accordion .znp-nav-item.is-expanded>a::after{transform:translateY(2px) rotate(225deg)}
}
@media(max-width:1340px) and (prefers-reduced-motion:reduce){.znp-nav.has-accordion .znp-nav-item>a::after{transition:none}}
/* About page hero: dual-tone photo like the price list page, darkened on the text side; replaces the abstract flow lines. */
/* "Preuzmi ... OVDE" hint: bold underlined link that glows twice the first time it scrolls into view. */
body.znp-landing .znp-downloads-hint{margin:28px 0 0;font-size:clamp(17px,1.6vw,20px);font-weight:700;line-height:1.6}
body.znp-landing .znp-race-detail-grid .znp-downloads-hint{margin-top:14px;font-size:17px}
body.znp-landing .znp-here{font-weight:900;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;color:var(--ink-2);transition:color .2s}
body.znp-landing .znp-here:is(:hover,:focus-visible){color:var(--znp-white)}
/* 23 Rubber-Band: the word squashes and stretches like an elastic band. Tokens can be overridden per context;
   --ink-2 is brand yellow here (navy on the white race cards) and the site font is kept instead of JetBrains Mono. */
.fx-elastic{--ink:currentColor;--ink-2:var(--znp-gold);--ink-3:var(--znp-blue);display:inline-block;margin-left:.55em;letter-spacing:.08em;color:var(--ink-2);animation:fx-elastic 1.6s ease-in-out 3}
@keyframes fx-elastic{0%,100%{transform:scale(1,1)}28%{transform:scale(1.28,.72)}44%{transform:scale(.78,1.24)}60%{transform:scale(1.12,.9)}74%{transform:scale(.96,1.05)}86%{transform:scale(1.02,.98)}}
.znp-race-detail-grid .fx-elastic{--ink-2:var(--znp-navy)}
body.znp-landing .znp-race-detail-grid .znp-here:is(:hover,:focus-visible){color:#0f6b93}
/* The three stretches (and a glow) start when the word first scrolls into view (znp.js adds .is-lit), not on page load. */
.znp-here.fx-elastic:not(.is-lit){animation:none}
.znp-here.is-lit{animation:fx-elastic 1.6s ease-in-out 3,znp-here-glow 1.4s ease-in-out 2}
@keyframes znp-here-glow{50%{text-shadow:0 0 6px #e0b83f,0 0 18px #e0b83fb3}}
@media(prefers-reduced-motion:reduce){.fx-elastic,.znp-here.is-lit{animation:none}}
/* Downloads page: one button per document; missing files show a grey USKORO pill. */
.znp-downloads{display:flex;flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none}
.znp-downloads-pending{color:var(--znp-muted);border-color:#ffffff33;background:#ffffff0d;cursor:default}
.znp-downloads-pending:hover{transform:none}
.znp-downloads-pending em{font-style:normal;font-size:.85em;color:var(--znp-gold)}
body.znp-landing .znp-downloads-note{max-width:560px;margin:28px 0 0;color:var(--znp-muted);font-size:14px;line-height:1.6}
.znp-downloads-note strong{color:var(--znp-white);letter-spacing:.04em}
@media(max-width:560px){.znp-downloads li{flex:1 1 100%}.znp-downloads .znp-btn{width:100%}}
/* Back-to-top arrow: up-arrow.webp used as a mask so it takes the link colour (white, gold on hover). */
.znp-top-arrow{display:inline-block;width:14px;height:14px;margin-left:5px;vertical-align:-2px;background:currentColor;-webkit-mask:url('../img/up-arrow.webp') center/contain no-repeat;mask:url('../img/up-arrow.webp') center/contain no-repeat}
/* Race pack with more than 4 photos: three columns (two on phones) so the photo column stays close to the text. */
.znp-pack-photos--many{grid-template-columns:repeat(3,minmax(0,1fr))}
.znp-pack-photos--many figure:first-child:nth-last-child(odd){grid-column:auto;aspect-ratio:1/1}
@media(max-width:680px){
  .znp-pack-photos--many{grid-template-columns:repeat(2,minmax(0,1fr))}
  .znp-pack-photos--many figure:first-child:nth-last-child(odd){grid-column:1/-1;aspect-ratio:2/1}
}
/* Registration price tiers under the info cards (05 / INFORMACIJE): early = bright brand blue with a corner ribbon, late = dark. */
.znp-prices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px}
.znp-price-tier{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;padding:clamp(24px,3vw,36px);border:1px solid #29d7ff54;border-top:3px solid var(--znp-gold);background:var(--znp-mid);color:var(--znp-white)}
.znp-price-tier--early{background:var(--znp-blue);border-color:var(--znp-blue);border-top-color:var(--znp-white);color:var(--znp-navy)}
.znp-price-tier h3{margin:0 0 6px;padding-right:110px;color:var(--znp-gold);font-size:13px;font-weight:900;letter-spacing:.15em}
.znp-price-tier--early h3{color:var(--znp-navy)}
body.znp-landing .znp-price-period{margin:0;color:inherit;font-size:clamp(17px,1.6vw,20px);font-weight:900}
body.znp-landing .znp-price-amount{margin:18px 0 4px;color:inherit;font-size:clamp(38px,4.4vw,58px);font-weight:950;line-height:1;letter-spacing:-.03em}
body.znp-landing .znp-price-note{margin:0 0 24px;color:inherit;opacity:.8;font-size:12px;font-weight:800;letter-spacing:.06em}
.znp-price-action{align-self:stretch;margin-top:auto}
.znp-price-action .znp-btn{width:100%;border-radius:12px;text-align:center}
.znp-price-action [hidden]{display:none}
.znp-price-tier--early .znp-btn-fill{background:var(--znp-navy);color:var(--znp-white)!important}
.znp-price-tier--early .znp-btn-fill:hover{background:var(--znp-white);color:var(--znp-navy)!important}
.znp-price-soon{background:#ffffff1f;border-color:#ffffff40;color:#ffffffa6;cursor:default}
.znp-price-tier--early .znp-price-soon{background:#0a264d1f;border-color:#0a264d33;color:#0a264d99}
.znp-price-soon:hover{transform:none}
.znp-price-closed{background:transparent;border-color:currentColor;color:inherit;cursor:not-allowed}
.znp-price-closed:is(:hover,:focus-visible){transform:none;animation:znp-closed-shake .45s ease-in-out}
@keyframes znp-closed-shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.znp-price-ribbon{position:absolute;top:46px;right:-50px;width:240px;padding:7px 0;transform:rotate(45deg);background:var(--znp-white);color:var(--znp-navy);font-size:11px;font-weight:950;letter-spacing:.12em;text-align:center;box-shadow:0 4px 14px #0a264d40}
@media(max-width:820px){.znp-prices{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.znp-price-closed:is(:hover,:focus-visible){animation:none}}
/* 06 / AGENDA timeline: centre line with a travelling dot (--agenda-progress set by znp.js), cards alternate sides. */
.znp-agenda-wrap{margin-top:clamp(36px,5vw,64px)}
.znp-agenda{position:relative;margin:0;padding:0;list-style:none}
.znp-agenda::before,.znp-agenda::after{content:"";position:absolute;top:0;left:50%;width:2px;transform:translateX(-50%)}
.znp-agenda::before{bottom:0;background:#29d7ff33}
.znp-agenda::after{height:calc(var(--agenda-progress) * 100%);background:linear-gradient(180deg,var(--znp-blue),var(--znp-gold))}
.znp-agenda-item{position:relative;width:50%;padding:0 44px 28px 0;box-sizing:border-box}
.znp-agenda-item:nth-child(even){margin-left:50%;padding:0 0 28px 44px}
.znp-agenda-item::before{content:"";position:absolute;top:26px;right:-7px;z-index:1;width:12px;height:12px;border:2px solid var(--znp-blue);border-radius:50%;background:var(--znp-bg);transition:background .3s,border-color .3s}
.znp-agenda-item:nth-child(even)::before{right:auto;left:-7px}
.znp-agenda-item.is-passed::before{background:var(--znp-gold);border-color:var(--znp-gold)}
/* White cards stand out from the dark section; the coloured top bar tells the card type apart. */
.znp-agenda-card{position:relative;padding:clamp(24px,2.6vw,34px) clamp(24px,2.8vw,36px);border:1px solid #ffffff;border-top:5px solid var(--znp-blue);border-radius:12px;background:var(--znp-white);color:var(--znp-navy);box-shadow:0 18px 40px #02101f59}
.znp-agenda-item--registration .znp-agenda-card{border-top-color:var(--znp-blue)}
.znp-agenda-item--accent .znp-agenda-card{border:2px solid var(--znp-gold);border-top-width:6px}
.znp-agenda-item--muted .znp-agenda-card{background:#dfe8ef;border:2px dashed #8aa3b8;color:#3c5b74;box-shadow:none}
body.znp-landing .znp-agenda-when{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px;margin:0 0 12px;color:var(--znp-mid);font-size:15px;font-weight:900;letter-spacing:.1em}
.znp-agenda-when strong{color:var(--znp-navy);font-size:clamp(24px,2.4vw,32px);letter-spacing:-.01em}
.znp-agenda-card h4{margin:0;color:inherit;font-size:clamp(19px,1.8vw,24px);font-weight:950;letter-spacing:.03em;line-height:1.3}
.znp-agenda-card h4 span{display:block;margin-top:4px;color:#0f6b93;font-size:clamp(15px,1.4vw,18px)}
body.znp-landing .znp-agenda-location{display:flex;align-items:flex-start;gap:8px;margin:14px 0 0;color:#2f4f69;font-size:17px;line-height:1.5}
.znp-agenda-location svg{flex:none;width:18px;height:18px;margin-top:3px;color:#0f6b93}
.znp-agenda-location span{flex:1;min-width:0}
.znp-agenda-location a{color:var(--znp-navy)!important;font-weight:900;font-size:14px;letter-spacing:.06em;border-bottom:2px solid var(--znp-gold)}
body.znp-landing .znp-agenda-text{margin:12px 0 0;color:#2f4f69;font-size:17px;line-height:1.6}
.znp-agenda-item--muted .znp-agenda-when,.znp-agenda-item--muted .znp-agenda-text{color:#3c5b74}
body.znp-landing .znp-agenda-note{margin:8px 0 0;color:var(--znp-muted);font-size:12px}
/* Travelling dot: the track is exactly as tall as the line, so the same progress drives dot and fill. */
.znp-agenda-track{--agenda-progress:0;position:relative}
.znp-agenda-dot{position:absolute;top:calc(var(--agenda-progress) * 100%);left:50%;z-index:2;width:18px;height:18px;border-radius:50%;background:var(--znp-gold);box-shadow:0 0 0 6px #e0b83f33,0 0 18px #e0b83f;transform:translate(-50%,-50%);pointer-events:none}
/* Cards slide in from their own side (only when znp.js can reveal them). */
.znp-agenda.has-reveal .znp-agenda-card{opacity:0;transform:translateX(-36px);transition:opacity .6s ease,transform .6s cubic-bezier(.16,1,.3,1),background-color .35s ease,border-color .35s ease}
.znp-agenda.has-reveal .znp-agenda-item:nth-child(even) .znp-agenda-card{transform:translateX(36px)}
.znp-agenda.has-reveal .znp-agenda-item.is-visible .znp-agenda-card{opacity:1;transform:none}
@media(max-width:820px){
  .znp-agenda::before,.znp-agenda::after{left:9px}
  .znp-agenda-item,.znp-agenda-item:nth-child(even){width:auto;margin-left:0;padding:0 0 20px 36px}
  .znp-agenda-item::before,.znp-agenda-item:nth-child(even)::before{left:3px;right:auto}
  .znp-agenda-dot{left:10px}
  .znp-agenda.has-reveal .znp-agenda-item:not(.is-visible) .znp-agenda-card{transform:translateY(24px)}
}
@media(prefers-reduced-motion:reduce){.znp-agenda.has-reveal .znp-agenda-card{opacity:1;transform:none;transition:none}}
/* 06 / AGENDA: the label alone heads the timeline, so it is larger than other section labels. */
body.znp-landing .znp-agenda-label{margin:0;font-size:clamp(20px,2.2vw,30px);letter-spacing:.12em}
/* Agenda checkpoint reached: the card turns brand yellow and gives a short shake (class set by znp.js); the closed-day card stays grey and still. */
.znp-agenda-card{transition:background-color .35s ease,border-color .35s ease}
.znp-agenda-item:not(.znp-agenda-item--muted).is-passed .znp-agenda-card{background:var(--znp-gold);border-color:var(--znp-gold);color:var(--znp-navy)}
.znp-agenda-item:not(.znp-agenda-item--muted).is-passed .znp-agenda-card :is(h4 span,.znp-agenda-when,.znp-agenda-location,.znp-agenda-location svg,.znp-agenda-text){color:var(--znp-navy)}
.znp-agenda-item:not(.znp-agenda-item--muted).is-passed .znp-agenda-location a{border-bottom-color:var(--znp-navy)}
.znp-agenda-item:not(.znp-agenda-item--muted).is-shaking .znp-agenda-card{animation:znp-agenda-shake .5s ease-in-out}
@keyframes znp-agenda-shake{20%{transform:rotate(-1.4deg)}40%{transform:rotate(1.4deg)}60%{transform:rotate(-.8deg)}80%{transform:rotate(.4deg)}}
@media(prefers-reduced-motion:reduce){.znp-agenda-item:not(.znp-agenda-item--muted).is-shaking .znp-agenda-card{animation:none}}
/* Agenda on phones: smaller cards, more air between them, and a sideways shake so a card never swings into its neighbour. */
@media(max-width:820px){
  .znp-agenda-item,.znp-agenda-item:nth-child(even){padding-bottom:32px}
  .znp-agenda-card{padding:18px 20px;border-radius:10px}
  body.znp-landing .znp-agenda-when{margin-bottom:8px;font-size:13px}
  .znp-agenda-when strong{font-size:22px}
  .znp-agenda-card h4{font-size:17px}
  .znp-agenda-card h4 span{font-size:14px}
  body.znp-landing .znp-agenda-location,body.znp-landing .znp-agenda-text{margin-top:10px;font-size:15px}
  .znp-agenda-item:not(.znp-agenda-item--muted).is-shaking .znp-agenda-card{animation-name:znp-agenda-shake-sm}
}
@keyframes znp-agenda-shake-sm{20%{transform:translateX(-4px)}40%{transform:translateX(4px)}60%{transform:translateX(-2px)}80%{transform:translateX(2px)}}
/* Results page hero: photo background, darkened on the text side so the white heading stays readable. */
.znp-results-hero{background:linear-gradient(90deg,var(--znp-navy) 0%,#0a264de0 42%,#0a264d8c 75%,#0a264d59 100%),url('../img/rezultati-traka.webp') 60% 55%/cover no-repeat var(--znp-navy)}
.znp-results-hero::before{display:none}
@media(max-width:820px){.znp-results-hero{background:linear-gradient(180deg,#0a264de6 0%,#0a264dcc 55%,#0a264df2 100%),url('../img/rezultati-traka.webp') 55% 50%/cover no-repeat var(--znp-navy)}}
/* Results hero: photo anchored to the top and the grass strip at the bottom cropped (~84% of the photo height shows). */
.znp-results-hero{display:flex;align-items:center;min-height:calc(100vw * .56);box-sizing:border-box;background-position:center,center 58%}
.znp-results-hero>.znp-wrap{width:min(1380px,calc(100% - clamp(34px,6vw,100px)))}
/* Payment instructions inside each price tier: only the panel height animates (spring overshoot via interpolate-size, no JS measuring); the text fades in after it opens. */
.znp-prices{align-items:start}
.znp-pay{align-self:stretch;margin-top:12px}
body.znp-landing .znp-pay-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border:1px solid currentColor;border-radius:12px;background:transparent;color:inherit;font-size:15px;font-weight:900;letter-spacing:.1em;text-align:left;cursor:pointer;opacity:.85}
body.znp-landing .znp-pay-toggle:is(:hover,:focus-visible){opacity:1}
.znp-pay-icon{font-size:18px;line-height:1}
.znp-pay.is-open .znp-pay-icon{transform:rotate(45deg)}
.znp-pay-panel{height:0;overflow:hidden;visibility:hidden;interpolate-size:allow-keywords;transition:height .5s cubic-bezier(0.34,1.56,0.64,1),visibility 0s .5s}
.znp-pay.is-open .znp-pay-panel{height:auto;visibility:visible;transition:height .5s cubic-bezier(0.34,1.56,0.64,1),visibility 0s}
.znp-pay-panel dl{display:grid;gap:12px;margin:0;padding:16px 4px 6px;opacity:0;transition:opacity .2s ease}
.znp-pay.is-open .znp-pay-panel dl{opacity:1;transition:opacity .3s ease .2s}
.znp-pay-panel dt{font-size:12px;font-weight:900;letter-spacing:.12em;opacity:.75}
.znp-pay-panel dd{margin:2px 0 0;font-size:16px;font-weight:700;line-height:1.5;overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){.znp-pay-panel,.znp-pay.is-open .znp-pay-panel,.znp-pay-panel dl,.znp-pay.is-open .znp-pay-panel dl{transition:none}}
/* 04 / Medal: awards and categories listed under the two bundles. */
.znp-awards{margin:0 0 24px;padding:4px 0 0;list-style:none}
.znp-awards li{position:relative;padding:5px 0 5px 20px;color:var(--znp-mid);font-size:15px;line-height:1.55}
.znp-awards li::before{content:"";position:absolute;top:14px;left:2px;width:8px;height:8px;background:var(--znp-gold)}
/* 08 / FAQ: "Prikaži više" under the fourth question (znp.js hides the rest). */
.znp-faq-more{margin-top:28px;border-radius:12px}
.znp-faq-more[hidden],.znp-faq-more span[hidden],.znp-faq-extra[hidden]{display:none}
.znp-faq-more i{display:inline-block;font-style:normal}
.znp-faq-more.is-open i{transform:rotate(180deg)}
/* Hero background: runners and Belgrade on the right (POZADINA 3), darkened on the text side; the emblem is a separate layer. */
.znp-hero{background:linear-gradient(90deg,#0a264df2 0%,#0a264dcc 28%,#0a264d33 55%,#0a264d00 75%),url('../img/pozadina-3.webp') right center/cover no-repeat var(--znp-bg)}
.znp-hero.znp-flow::before{display:none}
/* Narrower screens: the runners sit closer to the title, so the text side is darkened more. */
@media(max-width:1200px){.znp-hero{background:linear-gradient(90deg,#0a264dfa 0%,#0a264de6 40%,#0a264d4d 70%,#0a264d00 90%),url('../img/pozadina-3.webp') right center/cover no-repeat var(--znp-bg)}}
@media(max-width:680px){.znp-hero{background:linear-gradient(180deg,#0a264df2 0%,#0a264dcc 50%,#0a264d80 72%,#0a264de6 100%),url('../img/pozadina-3.webp') right center/cover no-repeat var(--znp-bg)}}
/* Payment instructions can be opened only while the tier is open (disabled before and after). */
body.znp-landing .znp-pay-toggle:disabled{opacity:.4;cursor:not-allowed}
/* Hero intro: the emblem (10 logo + 5KM - 10KM - 21KM) zooms in large in the middle of the hero, holds, then fades
   away; only after that do the title, date and button appear. It is gone for good once the intro ends. */
.znp-hero-emblem{--w:clamp(240px,34vw,560px);position:absolute;z-index:3;top:50%;left:50%;width:var(--w);display:flex;flex-direction:column;align-items:center;gap:calc(var(--w) * .08);pointer-events:none;opacity:0;visibility:hidden;transform:translate(-50%,-50%);filter:drop-shadow(0 6px 24px #030d1c66);animation:znp-emblem-intro 2.3s .2s both}
.znp-hero-emblem img{display:block;width:66%;height:auto}
.znp-hero-emblem-km{color:var(--znp-blue);font-family:var(--znp-font);font-size:calc(var(--w) * .105);font-style:italic;font-weight:950;letter-spacing:.02em;line-height:1;white-space:nowrap}
@keyframes znp-emblem-intro{
  0%{opacity:0;visibility:visible;transform:translate(-50%,-50%) scale(1.35);animation-timing-function:cubic-bezier(.2,.7,.3,1)}
  25%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  70%{opacity:1;transform:translate(-50%,-50%) scale(1);animation-timing-function:ease-in}
  99%{opacity:0;visibility:visible;transform:translate(-50%,-50%) scale(.92)}
  100%{opacity:0;visibility:hidden;transform:translate(-50%,-50%) scale(.92)}
}
/* The hero text appears once the emblem has faded out, so they never cover each other. */
.znp-hero-copy>*{animation:znp-hero-copy-in .7s ease 2.2s both}
@keyframes znp-hero-copy-in{from{opacity:0;transform:translateY(12px)}}
@media(max-width:680px){.znp-hero-emblem{--w:min(72vw,320px);top:46%}}
@media(prefers-reduced-motion:reduce){.znp-hero-emblem{display:none}.znp-hero-copy>*{animation:none}}
/* Logged-in editors: the fixed header sits below the WordPress admin bar instead of under it.
   Below 600px the admin bar scrolls away with the page, so the header stays at the top there. */
.admin-bar .znp-header{top:32px}
@media(max-width:782px){.admin-bar .znp-header{top:46px}}
@media(max-width:600px){.admin-bar .znp-header{top:0}}
/* Author credit: its own faint line at the very bottom of the footer, clearer on hover. */
.znp-footer-credit{display:flex;justify-content:flex-end;padding-bottom:14px}
.znp-credit{display:inline-flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.06em;opacity:.4;transition:opacity .2s}
.znp-footer .znp-credit{color:inherit!important}
.znp-credit:is(:hover,:focus-visible){opacity:.85}
@media(max-width:820px){.znp-footer-credit{justify-content:flex-start}}
.znp-credit img{display:block;width:auto;height:22px}
/* The hero intro moves the emblem and the text with transforms. Chrome must not use them as the reference point
   when it restores the scroll position on reload, or a reload at the top lands ~200px down on phones. */
.znp-hero-emblem,.znp-hero-copy>*{overflow-anchor:none}
/* Payment instructions: a large red note (register on RunTrace first) glows when the panel opens; the bank details
   stay greyed out until the glow ends, so the note is read first. Restarts every time the panel is opened. */
.znp-pay-warning{margin:16px 4px 10px;padding:12px 14px;border:2px solid #e3001b;border-radius:10px;background:#ffffffe6;color:#e3001b;font-size:clamp(17px,1.7vw,21px);font-weight:900;line-height:1.35}
body.znp-landing .znp-pay-panel .znp-pay-warning{margin-top:16px}
.znp-pay-warning strong{display:block;font-size:1.25em;letter-spacing:.06em}
.znp-pay.is-open .znp-pay-warning{animation:znp-pay-warning-glow .8s ease-in-out .35s 3}
@keyframes znp-pay-warning-glow{50%{box-shadow:0 0 0 4px #e3001b40,0 0 26px #ff2d3fcc;text-shadow:0 0 12px #ff5a6a99}}
.znp-pay.is-open .znp-pay-panel dl{animation:znp-pay-details-wait 2.75s ease both}
@keyframes znp-pay-details-wait{0%,85%{filter:grayscale(1);opacity:.35}100%{filter:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.znp-pay.is-open .znp-pay-warning,.znp-pay.is-open .znp-pay-panel dl{animation:none}}
/* Agenda: a location without a map link yet shows USKORO in place of OTVORI MAPU (filled in later in Customize > Agenda). */
.znp-agenda-soon{color:var(--znp-mid);font-style:normal;font-weight:900;font-size:14px;letter-spacing:.06em;opacity:.7}
.znp-agenda-item.is-passed .znp-agenda-soon{color:var(--znp-navy)}
/* Hero bar must sit on the fold: on short desktop/tablet screens the title and spacing shrink with the screen height. */
@media(min-width:821px){.znp-hero h1{font-size:clamp(48px,min(8.2vw,calc(11 * var(--znp-vh))),126px)}}
@media(min-width:681px) and (max-width:820px){.znp-hero h1{font-size:clamp(48px,min(12vw,calc(11 * var(--znp-vh))),98px)}}
@media(min-width:681px){.znp-hero-copy{padding-block:clamp(8px,calc(3 * var(--znp-vh)),56px)}}
@media(min-width:681px) and (max-height:920px){
  .znp-hero-inner{padding-top:calc(var(--znp-header-height) + 8px);padding-bottom:8px}
  .znp-kicker{margin-bottom:12px}.znp-eyebrow{margin-bottom:10px}
  .znp-hero h1{font-size:clamp(40px,min(8.2vw,calc(10 * var(--znp-vh))),126px);margin-bottom:14px}
  .znp-hero-date{font-size:clamp(20px,calc(3.6 * var(--znp-vh)),30px);margin-bottom:6px}
  .znp-hero-place{margin-bottom:16px}
  .znp-hero-copy{padding-block:clamp(6px,calc(2 * var(--znp-vh)),24px)}
}
/* Hero: note for the starred start time, under the "explore" link. */
.znp-hero-note{margin:0;padding-bottom:12px;color:var(--znp-muted);font-size:11px;letter-spacing:.04em;text-align:right}
@media(min-width:821px){.znp-hero-note{position:absolute;left:0;right:0;bottom:10px;padding-bottom:0}}
@media(max-width:820px){.znp-hero-note{margin-top:-6px;text-align:center;font-size:10px}}
@media(min-width:681px) and (max-width:820px){.znp-hero-bar{min-height:72px}}
/* About statline: five items. */
.znp-statline{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:680px){.znp-statline{grid-template-columns:repeat(2,minmax(0,1fr))}.znp-statline>div:last-child{grid-column:1/-1}}
/* About page: label, text and one photo. */
.znp-about-page .znp-race-page-hero h1.znp-section-label{display:block;margin:0 0 32px}
.znp-about-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start}
.znp-about-body--text{grid-template-columns:minmax(0,760px)}
.znp-about-copy p{margin:0 0 18px;color:var(--znp-muted);font-size:17px;line-height:1.8}
.znp-about-photo{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:14px}
@media(max-width:820px){.znp-about-body{grid-template-columns:minmax(0,1fr)}.znp-about-copy p{font-size:15px}}
/* Optional sponsor/friend links (Customizer). */
.znp-sponsor-card>a,.znp-general-sponsor-card>a{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
/* Optional race card photo (Customizer), darkened so the text stays readable. */
.znp-race-card--img{background:linear-gradient(115deg,#0a264de6 0%,#0a264db3 55%,#0a264d66 100%),var(--znp-card-img) center/cover no-repeat var(--znp-navy)}
/* Logged-in admin bar pushes the page down; shorten the hero by its height so the hero bar stays on screen. */
/* Logged-in admin bar pushes the page down: the hero and its height-based sizes use the space left under it. */
:root{--znp-vh:1svh}
.admin-bar{--znp-vh:calc((100svh - 32px) / 100)}
@media(max-width:782px){.admin-bar{--znp-vh:calc((100svh - 46px) / 100)}}
.admin-bar .znp-hero{min-height:calc(100 * var(--znp-vh))}
/* 404: Results hero photo, full screen height. */
.znp-404-hero{min-height:100svh;padding-top:calc(var(--znp-header-height) + 40px)}
.znp-404-hero h1{max-width:900px}
.znp-404-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
@media(max-width:680px){.znp-404-actions .znp-btn{flex:1 1 140px}.znp-404-actions .znp-btn-fill{flex-basis:100%}}
