/* September homepage revision. Keep shared layouts and existing colour tokens. */
@font-face{font-family:WF Condensed;src:url('assets/RobotoCondensed-900.ttf') format('truetype');font-weight:900;font-display:swap}
html[lang=ru] .display,html[lang=ru] .page-title,html[lang=ru] .hero-scene-content h2,html[lang=ru] .evening-content h2{font-family:WF Condensed,Oswald,sans-serif;font-weight:900}
.hero-calendar{display:flex;flex-direction:column;justify-content:center;min-width:0}
.hero-calendar .hero-date{aspect-ratio:1/1;flex-shrink:0;padding:30px 22px 22px;justify-content:center}
.hero-calendar .date-number{font:400 clamp(52px,4.7vw,78px)/1 Anton,sans-serif;letter-spacing:-.045em}
.hero-calendar .date-meta{font:400 clamp(15px,1.5vw,24px)/1.2 Anton,sans-serif;margin-top:12px;gap:12px}
html[lang=ru] .hero-calendar .date-meta{font-family:WF Condensed,Oswald,sans-serif;font-weight:900}
.hero-calendar>.free-entry{font:400 clamp(20px,2vw,31px)/1.1 Anton,sans-serif;text-align:center;color:var(--blue);border:0;margin:8px 0 0;padding:0;letter-spacing:0}
html[lang=ru] .hero-calendar>.free-entry{font-family:WF Condensed,Oswald,sans-serif;font-weight:900}
.hero-foot{justify-content:flex-end}
.hero-scene-content h2{max-width:800px}
.festival .section-intro{align-items:end;margin-bottom:32px}
.festival .intro-aside{padding-top:0}
.festival .intro-bottom{margin:0}
.sports-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:24px 44px;align-items:start}
.sports-grid .activity{min-width:0;margin:0}
.sports-grid .activity:nth-child(even){padding-top:42px}
.sports-grid .photo-wrap{aspect-ratio:1.95;margin:0}
.sports-grid .photo-wrap>img{height:100%;width:100%;object-fit:cover}
.activity-caption{display:grid;grid-template-columns:minmax(0,1fr) 94px 24px;gap:12px;align-items:center;margin-top:12px;min-height:82px}
.activity-caption h3{font:800 clamp(19px,1.9vw,28px)/1.18 Manrope,sans-serif;letter-spacing:-.035em}
.activity-figure{width:94px;height:78px;object-fit:contain;transition:transform .25s var(--ease)}
.activity-card-link:hover .activity-figure,.experience-tile a:hover .activity-figure{transform:translateY(-4px) rotate(-3deg)}
.activity-card-link:focus-visible{outline-offset:7px}
.sport-line{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:12px;border:0;padding-top:0;margin-top:30px}
.sport-line .activities-more{font-size:14px;font-weight:400;line-height:1.5;color:var(--muted)}
.market .market-head .display{font-size:clamp(34px,4vw,62px)}
.market-photo-link{display:block;color:var(--paper)}
.market-photo-action{position:absolute;right:22px;bottom:22px;display:flex;align-items:center;gap:18px;padding:14px 20px;background:var(--paper);color:var(--blue);font-size:14px;font-weight:800}
.market .market-bottom{grid-template-columns:minmax(0,1fr) 110px;gap:30px}
.market-bottom>div>a{display:inline-block;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
.market-fire{width:110px;height:110px;object-fit:contain;justify-self:end;transform:rotate(5deg)}
.programme-pending{padding:36px 0;border-bottom:1px solid var(--line)}
.programme-pending p{font-size:clamp(20px,2vw,28px);font-weight:700;line-height:1.4;margin-bottom:12px}
.programme-pending>span{color:var(--muted);font-size:15px}
@media(max-width:760px){.market .market-head .display{font-size:32px}.market .market-bottom{display:grid;grid-template-columns:minmax(0,1fr) 64px;gap:18px}.market-fire{width:64px;height:80px}.market-photo-action{top:16px;right:16px;bottom:auto;padding:11px 14px;font-size:12px;gap:10px}.market-bottom h3{font-size:20px}.programme-pending{padding:28px 0}}
.cup-explainer-title{font:800 clamp(24px,2.4vw,34px)/1.15 Manrope,sans-serif;margin-bottom:20px;letter-spacing:-.04em}
.cup-story .lead{font-size:clamp(16px,1.45vw,21px);line-height:1.65}
.cup-format{display:flex;align-items:center;gap:18px;border-top:1px solid #ffffff40;margin-top:26px;padding-top:20px;font-size:14px;color:var(--ice)}
.cup-format img{width:85px;height:85px;object-fit:contain;filter:brightness(0) invert(1);opacity:.85}
.cup-choices{gap:18px;border:0;margin-top:38px}
.cup-choice{display:flex;flex-direction:column;position:relative;min-width:0;padding:32px 28px 24px;background:var(--paper);color:var(--navy);clip-path:polygon(0 0,calc(100% - 24px) 0,100% 24px,100% 100%,0 100%);transition:background .25s,translate .25s}
.cup-choice:after{content:'';position:absolute;top:0;right:0;width:24px;height:24px;background:var(--ice);clip-path:polygon(0 0,0 100%,100% 100%)}
.cup-choice h3{font:800 clamp(23px,2.25vw,34px)/1.15 Manrope,sans-serif;letter-spacing:-.045em}
.cup-choice-icon{width:100px;height:88px;object-fit:contain;margin-bottom:18px;transition:transform .25s var(--ease)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.cup-choice:hover .cup-choice-icon{transform:rotate(-4deg) translateY(-3px)}}
@media(max-width:760px){.cup-choice-icon{width:78px;height:68px;margin-bottom:14px}}
.cup-choice p{font-size:14px;line-height:1.65;margin:18px 0 28px;color:var(--muted)}
.cup-choice-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:18px;border-top:1px solid var(--line);font-size:12px;font-weight:800;color:var(--blue)}
.cup .cup-choice .brand-arrow{background:var(--blue);transition:transform .25s}
.cup-choice:focus-visible{outline:3px solid var(--paper);outline-offset:5px;clip-path:none}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.cup-choice:hover{translate:0 -6px;background:#fff}.cup-choice:hover .brand-arrow{transform:translate(3px,-3px)}}
@media(max-width:760px){.cup-choices{grid-template-columns:1fr;gap:12px;margin-top:28px}.cup-choice{padding:23px 22px 18px}.cup-choice h3{font-size:26px}.cup-choice p{margin:10px 0 16px}.cup-format{gap:14px;margin-top:20px;padding-top:14px}.cup-format img{width:64px;height:64px}.cup-explainer-title{margin-bottom:14px}}
.all-activities-button{min-height:58px;gap:30px}
.tile-caption{grid-template-columns:minmax(0,1fr) 74px 22px;gap:10px;align-items:center;padding-top:12px}
.tile-caption .activity-figure{width:74px;height:70px}
.tile-caption h2{font-size:24px}
.experiences .tile-warmth .tile-photo img{object-position:center}
.brand-arrow{display:inline-block!important;width:26px!important;height:19px!important;min-width:26px;flex-shrink:0;vertical-align:middle;background:var(--blue);-webkit-mask:url('assets/16-arrow-right.webp') center/contain no-repeat;mask:url('assets/16-arrow-right.webp') center/contain no-repeat;transform:rotate(-35deg)}
.brand-arrow[data-direction=right]{transform:none}.brand-arrow[data-direction=down]{transform:rotate(90deg)}.brand-arrow[data-direction=up]{transform:rotate(-90deg)}
.button .brand-arrow,.cup .brand-arrow,.footer .brand-arrow,.sub-footer .brand-arrow,.hero-explore .brand-arrow,.mobile-menu .brand-arrow,.fold-moving .brand-arrow,.mini-cup .brand-arrow{background:var(--paper)}
.button-light .brand-arrow{background:var(--blue)}
.round-button,.circle-arrow,.footer-up,.footer-top-link{border:0;border-radius:0}
.tile-arrow,.activity-arrow{display:grid;place-items:center}
@media(min-width:1200px){
 .hero-mast{grid-template-columns:minmax(0,1fr) 185px;padding-top:22px;padding-bottom:20px;gap:40px}
 .hero h1{font-size:clamp(100px,12vw,190px);line-height:1.05}
 .hero-location{font-size:22px}
 .hero-calendar .hero-date{padding:25px 15px 18px}
 .hero-calendar .date-number{font-size:60px}
 .hero-calendar .date-meta{font-size:18px;gap:10px}
 .hero-calendar>.free-entry{font-size:25px}
 .hero-scene{height:min(56.28vw,max(300px,calc(100svh - 400px)));background:var(--navy)}
 .hero-photo{object-fit:contain;object-position:center;animation:none}
 .hero-scene-content{bottom:25px;max-width:1450px;margin:auto}
 .hero-scene-content h2{font-size:clamp(34px,3.5vw,60px)}
}
@media(max-width:760px){
 .hero-calendar{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:18px}
 .hero-calendar .hero-date{aspect-ratio:auto;flex-direction:row;justify-content:flex-start;align-items:center;padding:13px 20px 13px 13px;gap:12px}
 .hero-calendar .date-number{font-size:29px}
 .hero-calendar .date-meta{font-size:15px;margin:0;gap:10px}
 .hero-calendar>.free-entry{margin:0;font-size:22px;text-align:right;white-space:nowrap}
 .hero-scene-content h2{font-size:clamp(29px,8.2vw,40px);max-width:310px}
 .hero-scene-content{gap:8px}
 .festival .section-intro{margin-bottom:23px}
 .festival .intro-aside{padding-top:16px}
 .sports-grid{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -22px;padding:0 22px 12px;scroll-padding-left:22px;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--blue) transparent}
 .sports-grid .activity{flex:0 0 81%;scroll-snap-align:start;padding:0!important}
 .sports-grid .activity:nth-child(even){margin-top:22px}
 .sports-grid .photo-wrap{aspect-ratio:1.45}
 .activity-caption{grid-template-columns:minmax(0,1fr) 64px 20px;gap:7px;min-height:70px}
 .activity-caption h3{font-size:19px;line-height:1.2}
 .activity-figure{width:64px;height:64px}
 .all-activities-button{width:100%;justify-content:space-between}
 .sport-line{margin-top:21px}
 .tile-caption h2{font-size:22px}
 .hero-foot a{width:100%}
}
@media(max-width:370px){.hero-calendar{gap:9px}.hero-calendar .date-number{font-size:24px}.hero-calendar .date-meta{font-size:13px;gap:6px}.hero-calendar>.free-entry{font-size:18px}}
@media(prefers-reduced-motion:reduce){.activity-figure{transition:none}.activity-card-link:hover .activity-figure,.experience-tile a:hover .activity-figure{transform:none}}

/* Full-bleed photographic opening, with the title and date over the image. */
.hero{position:relative}
.hero-mast{position:absolute;z-index:2;inset:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) clamp(170px,15vw,270px);align-items:start;gap:48px;padding:36px var(--pad) 0;pointer-events:none}
.hero-location{color:var(--paper);font-size:clamp(19px,2.5vw,38px);line-height:1.2}
.hero-location>span{display:none}
.hero h1{color:var(--frost,#EDF7FF);font-size:clamp(80px,12.8vw,235px);line-height:1.07;letter-spacing:-.025em;margin-top:20px}
.hero-scene{width:100%;height:calc(100svh - 96px);min-height:580px;margin:0;overflow:hidden}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;animation:none}
.hero-shade{background:linear-gradient(180deg,rgba(9,29,54,.32),rgba(9,29,54,.08) 46%,rgba(9,29,54,.68))}
.hero-scene-content{bottom:34px;left:var(--pad);right:var(--pad);max-width:none;margin:0}
.hero-scene-content h2{font-size:clamp(30px,3vw,50px);max-width:700px}
.hero-calendar{display:flex;flex-direction:column;gap:0;align-items:stretch;justify-content:flex-start}
.hero-calendar .hero-date{display:flex;flex-direction:column;align-items:stretch;justify-content:center;aspect-ratio:1/1;padding:24% 14% 21%;gap:0;background:var(--paper);color:var(--navy);clip-path:polygon(0 0,75% 0,100% 25%,100% 100%,0 100%)}
.hero-calendar .hero-date:after{width:25%;height:25%;background:var(--ice)}
.hero-calendar .date-number{display:block;font:400 clamp(48px,4.9vw,88px)/1.05 Anton,sans-serif;text-align:center;letter-spacing:-.035em;white-space:nowrap}
.hero-calendar .date-meta{display:flex;align-items:baseline;justify-content:space-between;width:100%;gap:8px;margin:12px 0 0;font:400 clamp(15px,1.65vw,29px)/1.1 Anton,sans-serif;white-space:nowrap}
html[lang=ru] .hero-calendar .date-meta{font-family:WF Condensed,Oswald,sans-serif;font-weight:900}
.hero-calendar>.free-entry{color:var(--paper);font:400 clamp(24px,2.5vw,42px)/1.15 Anton,sans-serif;text-align:center;white-space:nowrap;margin:8px 0 0;padding:0;border:0}
html[lang=ru] .hero-calendar>.free-entry{font-family:WF Condensed,Oswald,sans-serif;font-weight:900}
@media(max-width:1100px) and (min-width:761px){.hero-mast{gap:25px}.hero h1{font-size:11.5vw}.hero-calendar .date-number{font-size:55px}.hero-calendar .date-meta{font-size:16px}.hero-calendar>.free-entry{font-size:27px}}
@media(max-width:760px){
 .hero-mast{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:20px 12px;padding:26px 22px 0}
 .hero-title{grid-column:1/-1}
 .hero-location{font-size:20px}
 .hero h1{font-size:16vw;margin-top:12px;line-height:1.1}
 .hero-calendar{grid-column:2;width:120px}
 .hero-calendar .hero-date{padding:29px 15px 24px;aspect-ratio:1;gap:0;flex-direction:column;align-items:stretch;justify-content:center}
 .hero-calendar .date-number{font-size:42px;line-height:1.05}
 .hero-calendar .date-meta{font-size:12px;gap:7px;margin-top:9px}
 .hero-calendar>.free-entry{font-size:22px;text-align:center;margin-top:6px}
 .hero-scene{height:calc(100svh - 77px);min-height:600px}
 .hero-photo{object-fit:cover;object-position:61% center}
 .hero-scene-content{bottom:28px;left:22px;right:22px}
 .hero-scene-content h2{font-size:clamp(27px,7vw,37px);max-width:300px}
}

/* Smaller date, responsive tagline and three desktop highlights. */
.hero-calendar{transform:scale(.85);transform-origin:top right}
.header{position:sticky;top:0;transition:transform .24s var(--ease);will-change:transform}
.header.header-hidden{transform:translateY(-102%);pointer-events:none}
.sports-grid .mobile-extra{display:none}
@media(min-width:761px){
 .hero-scene-content h2{font-size:clamp(24px,2.6vw,44px);max-width:none;white-space:nowrap}
 .hero-scene-content h2 br{display:none}
 .sports-grid{grid-template-columns:1.12fr .9fr 1fr;gap:28px;align-items:start}
 .sports-grid .activity:nth-child(n){padding-top:0;margin:0}
 .sports-grid .activity.activity-music{padding-top:64px}
 .sports-grid .activity.activity-warmth{padding-top:24px}
 .sports-grid .activity-skating .photo-wrap{aspect-ratio:1.15}
 .sports-grid .activity-music .photo-wrap{aspect-ratio:1}
 .sports-grid .activity-warmth .photo-wrap{aspect-ratio:1.25}
 .sports-grid .activity-caption{grid-template-columns:minmax(0,1fr) 64px 22px;gap:8px}
 .sports-grid .activity-caption h3{font-size:clamp(18px,1.65vw,25px)}
 .sports-grid .activity-figure{width:64px;height:66px}
 .sports-grid .mobile-extra{display:none}
}
@media(min-width:761px) and (max-width:1100px){.hero-explore>span:first-child{display:none}.sports-grid{gap:20px}.sports-grid .activity-caption{grid-template-columns:minmax(0,1fr) 48px 18px}.sports-grid .activity-figure{width:48px;height:55px}}
@media(max-width:760px){.hero-scene-content h2{font-size:clamp(23px,6.4vw,32px);max-width:none;white-space:nowrap}.hero-scene-content{gap:8px}.hero-explore .circle-arrow{width:32px}.sports-grid .mobile-extra{display:block}}
@media(prefers-reduced-motion:reduce){.header{transition:none}}
@media(min-width:761px) and (hover:hover) and (prefers-reduced-motion:no-preference){
 .sports-grid .activity-card-link{display:block;transition:transform .3s var(--ease)}
 .sports-grid .activity-card-link:hover,.sports-grid .activity-card-link:focus-visible{transform:translateY(-8px)}
}

/* Mobile opening: the approved light masthead above the photograph. */
@media(max-width:760px){
 .hero-mast{position:relative;inset:auto;display:flex;flex-direction:column;align-items:stretch;gap:13px;padding:25px 20px 18px;background:var(--paper)}
 .hero-location{color:var(--blue);font-size:16px;max-width:100%}
 .hero h1{color:var(--blue);font-size:16.4vw;line-height:1.17;letter-spacing:-.02em;margin-top:8px}
 .hero-calendar{width:100%;transform:none;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:18px}
 .hero-calendar .hero-date{aspect-ratio:auto;flex-direction:row;justify-content:flex-start;align-items:center;padding:13px 20px 13px 13px;gap:12px;background:var(--blue);color:var(--paper);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%)}
 .hero-calendar .hero-date:after{width:14px;height:14px;background:#0d278f}
 .hero-calendar .date-number{font-size:29px;line-height:1}
 .hero-calendar .date-meta{width:auto;font-size:15px;margin:0;gap:10px}
 .hero-calendar>.free-entry{color:var(--blue);margin:0;font-size:22px;text-align:right;white-space:nowrap}
 .hero-scene{height:420px;min-height:0}
 .hero-photo{object-position:64% center}
 .hero-scene-content{bottom:42px;left:22px;right:22px;gap:8px}
 .hero-scene-content h2{font-size:clamp(29px,8.2vw,40px);max-width:310px;white-space:normal;margin-top:10px}
 .hero-explore .circle-arrow{width:42px}
}
@media(max-width:370px){
 .hero-calendar{gap:9px}
 .hero-calendar .date-number{font-size:24px}
 .hero-calendar .date-meta{font-size:13px;gap:6px}
 .hero-calendar>.free-entry{font-size:18px}
 .hero-scene{height:380px}
}

/* Transparent organizer artwork, directly from Noorteaeg. */
.organizer > a { background: transparent; padding: 0; }
.organizer img, .sub-organizer img { width: 112px; height: auto; max-height: 112px; object-fit: contain; }

/* Practical information navigation shared by all pages. */
.practical-nav { position: relative; }
.practical-nav summary { display:flex; align-items:center; gap:10px; cursor:pointer; list-style:none; font:inherit; font-weight:700; }
.practical-nav summary::-webkit-details-marker { display:none; }
.practical-nav summary i { width:7px; height:7px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); transition:transform .2s; flex-shrink:0; }
.practical-nav[open] summary i { transform:rotate(225deg); }
.practical-nav summary:focus-visible { outline:2px solid var(--blue); outline-offset:6px; }
.practical-panel { position:absolute; top:calc(100% + 18px); right:0; width:310px; padding:14px; background:var(--paper); color:var(--navy,#102a4c); border:1px solid #cbd1d5; border-top:3px solid var(--blue); box-shadow:0 16px 40px #102a4c20; z-index:100; }
.practical-panel::before { content:''; position:absolute; top:-22px; left:0; right:0; height:22px; }
.desktop-nav .practical-panel a { display:block; padding:10px 12px; font-size:14px; line-height:1.4; }
.practical-panel a:hover,.practical-panel a:focus-visible { background:#173dda0c; color:var(--blue); }
.desktop-nav { gap:clamp(14px,2vw,34px); }
.mobile-menu .practical-nav summary { font-size:clamp(21px,5.5vw,30px); padding:12px 0; }
.mobile-menu .practical-panel { position:static; width:auto; box-shadow:none; border:0; padding:0 0 12px 12px; background:transparent; }
.mobile-menu .practical-panel a { display:block; font-size:17px; line-height:1.4; padding:10px 0; }
.mobile-menu .practical-panel::before { display:none; }
.practical-chapter { min-height:110px; }
.practical-chapter > div { grid-column:2; }
@media(min-width:981px) and (max-width:1200px) { .desktop-nav { gap:14px; font-size:13px; } }
.mobile-menu .practical-panel { color:inherit; }
.mobile-menu .practical-panel a:hover,.mobile-menu .practical-panel a:focus-visible { color:inherit; background:#ffffff14; }

/* Cup overview: short introduction and a direct choice of category. */
.cup-landing { padding-top:42px; padding-bottom:64px; }
.cup-landing .cup-heading { align-items:center; margin-bottom:30px; }
.cup-landing h1 { font:400 clamp(56px,7vw,100px)/1 Anton,sans-serif; margin:0; }
.cup-landing-date { font-size:16px; font-weight:700; margin:0; }
.cup-landing .cup-body { grid-template-columns:1.15fr 1fr; align-items:center; gap:48px; }
.cup-landing .cup-photo { aspect-ratio:2/1; }
.cup-landing .cup-photo img { width:100%; height:100%; object-fit:cover; }
.cup-landing .cup-story { padding:0; }
.cup-landing .cup-choices { margin-top:32px; }
@media(max-width:760px) { .cup-landing { padding-top:28px; padding-bottom:36px; } .cup-landing .cup-heading { display:block; } .cup-landing-date { margin-top:16px; font-size:14px; } .cup-landing .cup-body { display:flex; flex-direction:column-reverse; gap:24px; } .cup-landing .cup-photo { width:100%; } .cup-landing .cup-choice-icon { float:none; } }

/* Compact single-date calendar; preserve the approved mobile masthead. */
@media(min-width:761px){
 .hero-calendar{width:clamp(148px,11vw,190px);justify-self:end;transform:none}
 .hero-calendar .hero-date{aspect-ratio:1;padding:32px 16px 20px;clip-path:polygon(0 0,calc(100% - 28px) 0,100% 28px,100% 100%,0 100%)}
 .hero-calendar .hero-date:after{width:28px;height:28px}
 .hero-calendar .date-number{font-size:clamp(62px,4.6vw,80px);line-height:1;letter-spacing:0}
 .hero-calendar .date-meta{justify-content:center;gap:12px;margin-top:12px;font-size:clamp(16px,1.15vw,20px);line-height:1.2}
 .hero-calendar>.free-entry{font-size:clamp(22px,1.6vw,28px);margin-top:8px;line-height:1.15}
}
