/* OCC 4.0.4 — calm hierarchy; existing brand colours and local system fonts. */
:root{
    --occ-wrap:min(1220px,calc(100% - 64px));
    --occ-paper:#f5f6f8;
    --occ-radius:16px;
    --occ-line:#dbe2e9;
}
body{line-height:1.65}
.section{padding-block:clamp(48px,6vw,80px)}
.section h2{font-size:clamp(28px,3.2vw,44px);line-height:1.12;text-wrap:balance}
.section-head{margin-bottom:28px;gap:24px}
.section-head--split>p{max-width:46ch;font-size:14px;line-height:1.75}
.section-kicker{font-size:10px;line-height:1.5;letter-spacing:.14em;color:#3b5d79}
.section-kicker--gold{color:var(--occ-gold)}
.btn,.header-cta{border-radius:10px;min-height:46px;font-size:12px}
.btn--outline-dark{color:var(--occ-ink);border-color:#9aabba}
.history-section .btn--outline-dark,.contact-section .btn--outline-dark{color:#fff;border-color:#8598ac}
.btn--gold{box-shadow:none}.btn:hover{box-shadow:none}
.header-row{min-height:78px;gap:24px}.brand__mark{border-radius:10px}
.primary-nav a{min-height:44px;line-height:1.3}
.primary-nav>ul{gap:18px}.language-switcher a{min-height:36px}
.hero{min-height:530px}
.hero__inner{min-height:530px;padding:58px 0 95px;gap:44px;grid-template-columns:minmax(0,1.6fr) minmax(270px,.75fr)}
.hero h1{font-size:clamp(42px,4.8vw,68px)!important;line-height:1!important;max-inline-size:15ch;margin-block:22px}
.hero h1>span{font-size:.53em;margin-top:14px;letter-spacing:.1em}
.hero__lead{font-size:16px;line-height:1.7;max-width:49ch}
.hero__actions{margin-top:26px;gap:10px}
.hero__event-card{align-self:center;justify-self:end;max-width:330px;width:100%;padding:24px;border-radius:16px}
.hero__ticker{padding:10px 16px;min-height:36px}
.hero__ticker>div{display:flex;flex-wrap:wrap;gap:12px 30px;justify-content:center;min-width:0;animation:none}
.hero__ticker span{margin:0;font-size:9px;white-space:normal}
.hero__ticker span:after{display:none}
.hero__ticker span:nth-child(n+5){display:none}
.pulse-dot{animation:none}
.occ27-partner-strip{background:#fff;border-bottom:1px solid var(--occ-line)}
.occ27-partner-strip__inner{display:flex;align-items:center;gap:24px;min-height:112px;padding-block:18px}
.occ27-partner-strip__label{flex:0 0 164px;border-right:1px solid var(--occ-line);padding-right:20px}
.occ27-partner-strip__label h2{font:750 13px/1.5 var(--occ-body);letter-spacing:0;margin:0 0 4px}
.occ27-partner-strip__label>a{display:inline-flex;align-items:center;gap:8px;min-height:32px;font-size:11px;color:#445f79}
.occ27-partner-strip__viewport{flex:1;display:flex;gap:12px;align-items:center;min-width:0}
.occ27-partner-strip__list{flex:1;display:flex;align-items:center;gap:16px;min-width:0;overflow-x:auto;padding:8px 4px;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#b8c5d1 transparent;overscroll-behavior-x:contain}
.occ27-partner-strip__list:focus-visible{outline-offset:0}
.sponsor-logo--strip{flex:0 0 144px;min-height:64px;padding:8px 14px;border:0;border-radius:6px;scroll-snap-align:start}
.sponsor-logo--strip img{width:auto;height:48px;max-width:128px;object-fit:contain;filter:none;opacity:1}
.sponsor-logo--strip span{font:750 13px/1.3 var(--occ-body);text-align:center;overflow-wrap:anywhere}
.sponsor-logo--strip:hover{background:#f4f6f8}
.occ27-partner-strip__controls{display:flex;gap:6px;flex:0 0 auto}
.occ27-partner-strip__controls button{display:grid;place-items:center;width:40px;height:44px;border:1px solid var(--occ-line);border-radius:9px;background:#fff;cursor:pointer}
.occ27-partner-strip__controls button:disabled{opacity:.35;cursor:default}
.occ27-partner-strip__empty{display:flex;align-items:center;gap:20px;min-height:48px;font-size:13px;color:#355b7c}
.teams-section{background:#f5f6f8}
.occ27-section-intro{font-size:14px;line-height:1.7;max-width:62ch;margin:12px 0 0;color:#536274}
.occ27-team-count{flex-shrink:0;display:inline-flex;padding:9px 13px;background:#e8eef3;border:1px solid #dbe4ec;border-radius:100px;font-size:12px;font-weight:650;color:#284a66}
.occ27-team-card{border-color:#d9e1e8;box-shadow:none;border-radius:14px;display:flex;flex-direction:column}
.occ27-team-card .team-card__main{flex:1;padding:18px 14px 17px}
.occ27-team-card .team-card__social{margin-top:auto}
.occ27-team-card .team-card__crest{width:100px;height:100px;margin:22px auto 14px}
.occ27-team-card h3{font-size:clamp(21px,2vw,27px);min-height:2.25em;line-height:1.14}
.occ27-team-card .occ27-team-cta{margin-top:14px}
.occ27-team-card .team-card__social a{min-height:44px}
.occ27-flag{box-shadow:none}
.occ27-teams-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-top:24px}
.occ27-teams-footer>p{max-width:58ch;margin:0;font-size:12px;line-height:1.7;color:#536274}
.occ27-teams-footer>.btn{flex-shrink:0;background:#fff}
.audience-section{background:#fff;border-block:1px solid var(--occ-line)}
.audience-section .section-head>div{max-width:600px}
.audience-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.audience-grid>.audience-card{grid-column:auto!important;min-width:0;min-height:260px;padding:24px 20px;border-radius:14px;background:#f8fafb;border-color:var(--occ-line);box-shadow:none}
.audience-card__no{font-size:21px;top:24px;right:18px;color:#6f8598}
.audience-card__label{max-width:calc(100% - 36px);width:auto;align-self:flex-start;line-height:1.6;padding:5px 8px;font-size:9px;white-space:normal}
.audience-card h3{max-width:none;font-size:21px;line-height:1.18;margin:28px 0 12px}
.audience-card p{font-size:13px;line-height:1.7;margin-bottom:20px}
.audience-card>a{min-height:44px;color:#315b7d}
.audience-card>a:after{content:"";position:absolute;inset:0;border-radius:14px}
.audience-card:hover,.audience-card:focus-within{background:#fff;transform:translateY(-2px);border-color:#8fa4b5;box-shadow:0 8px 18px #10283f08}
.audience-card:focus-within{outline:3px solid var(--occ-focus);outline-offset:3px}
.news-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.news-grid .news-card--featured{grid-column:auto;grid-row:auto}
.news-grid .news-card__media,.news-grid .news-card--featured .news-card__media{aspect-ratio:16/10}
.news-grid .news-card h3{font-size:23px;line-height:1.18}
.news-card{border:1px solid var(--occ-line);border-radius:14px;box-shadow:none}
.news-card__body{padding:22px}
.press-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.press-card{border-color:var(--occ-line);border-radius:14px}
.visit-card,.edition-card,.contact-form{border-radius:16px}
.visit-card__body p{line-height:1.75}
.section-end{margin-top:28px}
.history-intro,.sponsor-pitch{gap:36px}
.contact-copy h2{font-size:clamp(30px,3.5vw,46px)}
.contact-form .form-status{overflow-wrap:anywhere}
.form-field select{font-size:16px}
.mobile-action-bar>a{min-height:44px}
@media(min-width:1600px){.hero__inner{min-height:580px}.hero{min-height:580px}}
@media(max-width:1100px){
    .audience-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .audience-grid>.audience-card{min-height:235px}
    .hero__inner{gap:28px}
    .header-row{gap:18px}
}
@media(max-width:980px){
    .hero__inner{grid-template-columns:minmax(0,1fr) minmax(250px,.7fr)}
    .hero h1{font-size:clamp(38px,5.3vw,56px)!important}
    .hero__lead{font-size:15px}
    .hero__event-card{padding:20px}
    .primary-nav .sub-menu{opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-left:2px solid var(--occ-line);margin-left:10px;padding:0 0 0 8px}
    .primary-nav li{min-width:0}.primary-nav a{white-space:normal}
}
@media(max-width:760px){
    :root{--occ-wrap:calc(100% - 32px)}
    .header-row{min-height:70px}
    .hero,.hero__inner{min-height:0}
    .hero__inner{grid-template-columns:1fr;padding:42px 0 74px;gap:28px}
    .hero h1{font-size:clamp(36px,8.8vw,52px)!important;max-inline-size:17ch}
    .hero__event-card{max-width:none;justify-self:stretch;align-self:auto}
    .hero__lead{max-width:58ch}
    .hero__event-card .countdown{padding-bottom:16px}
    .event-facts{gap:9px;margin-top:16px}
    .hero__ticker>div{gap:8px 16px}.hero__ticker span:nth-child(n+3){display:none}
    .occ27-partner-strip__inner{display:block;min-height:0;padding-block:16px}
    .occ27-partner-strip__label{border:0;padding:0;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:12px}
    .occ27-partner-strip__label h2{margin:0;font-size:12px}
    .occ27-partner-strip__controls{display:none}
    .occ27-partner-strip__list{gap:10px;padding-bottom:10px}
    .sponsor-logo--strip{flex-basis:126px}
    .section-head{flex-direction:column;align-items:flex-start;gap:16px}
    .occ27-team-count{font-size:11px;padding:7px 11px}
    .occ27-team-card .team-card__main{padding:16px 10px}
    .occ27-team-card .team-card__crest{width:85px;height:85px;margin:18px auto 12px}
    .occ27-team-card h3{font-size:21px}
    .occ27-teams-footer{align-items:flex-start}
    .occ27-teams-footer>.btn{width:100%}
    .audience-grid{gap:12px}
    .audience-grid>.audience-card{padding:20px 16px}
    .audience-card h3{font-size:21px}
    .audience-card__no{top:22px;right:14px;font-size:18px}
    .news-grid,.press-grid{grid-template-columns:1fr}
}
@media(max-width:480px){
    .audience-grid{grid-template-columns:1fr}
    .audience-grid>.audience-card{min-height:0;padding:22px}
    .audience-card h3{margin-top:20px}
    .audience-card__no{top:24px;right:22px}
    .occ27-team-card .team-card__social a{padding-inline:7px;font-size:9px}
    .occ27-country{flex-wrap:wrap;gap:5px}
}
@media(max-width:359px){
    .team-grid{grid-template-columns:1fr}
    .occ27-team-card .team-card__crest{width:100px;height:100px}
    .occ27-team-card h3{min-height:0;font-size:23px}
    .occ27-country{font-size:10px}
    .hero .btn{width:100%}
}
@media(prefers-reduced-motion:reduce){
    *,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
}
@media print{
    .occ27-partner-strip,.occ27-teams-footer,.audience-section,.menu-toggle{display:none!important}
    .hero__inner{min-height:0}
}

@media(max-width:980px){.header-tools{margin-left:auto}}

@media(min-width:360px) and (max-width:760px){
    .team-grid>.team-card:last-child:nth-child(odd):not(:first-child){grid-column:1/-1;width:calc(50% - 6px);justify-self:center}
}

/* 4.0.4: enhancement controls do not replace native content and navigation. */
[hidden]{display:none!important}
[data-schedule-filter]:not([data-occ-ready]),
[data-sponsor-goal]:not([data-occ-ready]),
[data-print-plan]:not([data-occ-ready]){display:none}
.team-card__crest img{object-fit:contain;max-width:100%;max-height:100%}
.occ27-team-card h3,.audience-card h3,.press-card h3{overflow-wrap:anywhere}
.occ27-partner-strip__label>a,.occ27-team-cta,.audience-card>a{color:#234c6c}
.occ27-partner-strip__label>a{min-height:44px}
@media(max-width:980px){
    .site-header:not([data-occ-menu-ready]){position:relative;top:auto}
    .site-header:not([data-occ-menu-ready]) .header-row{flex-wrap:wrap}
    .site-header:not([data-occ-menu-ready]) .primary-nav{
        display:block;position:static;order:3;flex:0 0 100%;width:100%;
        max-height:none;overflow:visible;visibility:visible;opacity:1;
        transform:none;padding:8px 0 16px;border-top:1px solid var(--occ-line)
    }
    .site-header:not([data-occ-menu-ready]) .primary-nav>ul{display:flex;flex-wrap:wrap;gap:4px 18px}
    .site-header:not([data-occ-menu-ready]) .menu-toggle{display:none}
}
