/* WordPress bridge: scoped to event content, leaving home/header/footer unchanged. */
.cup-page { --hero-content-top: 48px; --ring: currentColor; }
:where(.cup-page,.cup-dialog,.cup-registration-dialog) :is(h1,h2,h3,p) { margin: 0; }
.cup-page a { text-decoration: none; }
:where(.cup-page,.cup-dialog,.cup-registration-dialog) button { font: inherit; color: inherit; background: transparent; border: 0; padding: 0; }
.cup-page .cup-button, .cup-dialog .cup-button, .cup-registration-dialog .btn-yellow { display: inline-flex; align-items: center; justify-content: center; gap: 22px; min-height: 54px; height: auto; padding: 15px 24px; border-radius: 0; font-size: .9375rem; font-weight: 800; line-height: 1.3; text-align: center; transition: background .18s,color .18s; }
.cup-page .cup-button svg, .cup-registration-dialog .btn-yellow svg { width: 19px; height: 19px; }
.cup-page .btn-yellow, .cup-registration-dialog .btn-yellow { background: var(--yellow); color: var(--deep); border: 1px solid var(--yellow); }
.cup-page .btn-yellow:hover, .cup-registration-dialog .btn-yellow:hover { background: #ffe99a; }
.cup-page .btn-outline-dark { background: transparent; color: var(--navy); border: 1px solid #cbd0d8; }
.cup-page .btn-outline-dark:hover { background: #edf0f2; }
.cup-page .text-button, .cup-page .underlined-link { display: inline-flex; gap: 12px; align-items: center; width: fit-content; min-height: 0; padding: 10px 0; font-size: .9375rem; font-weight: 800; background: transparent; color: inherit; border-radius: 0; text-align: left; }
.cup-page .text-button:hover, .cup-page .underlined-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.cup-page .underlined-link svg { width: 18px; height: 18px; }
.cup-page .soft-ink { color: #747b88; }
.cup-page .yellow { color: var(--yellow); }
.cup-hero,.cup-contact { color:#fff; }
.cup-page .cup-hero-intro { margin-top:28px; }
.cup-page .cup-edition { margin-top:12px; }
.cup-page .cup-film-link { padding:12px 0; min-height:0; color:#fff; font-size:var(--type-label); gap:10px; }
.cup-page .cup-save-date { padding:10px 0; color:#e5e9f0; font-size:var(--type-label); gap:10px; }
.cup-page .cup-overview-copy p { margin-bottom: var(--space-sm); }
.cup-page .cup-weekend-list p,.cup-page .cup-next-step p { margin-top:10px; }
.cup-page .cup-price { margin-block:24px; }
.cup-page .cup-player-count { margin-block:16px 26px; }
.cup-page .cup-price-note { margin-top:16px; }
.cup-tab-list [data-slot=tabs-trigger] { display:flex; align-items:center; justify-content:center; text-align:center; text-decoration:none; }
.cup-page .cup-entry-card > button { margin-top:auto; padding-inline:16px; gap:10px; width:100%; }
.cup-page .cup-space-options > button { text-align:left; display:flex; flex-direction:column; gap:18px; padding:20px; background:#e9ecea; border:1px solid transparent; }
.cup-page .cup-space-options > button[aria-pressed=true] { background:var(--navy); color:#fff; }
.cup-page .cup-space-options > button:hover { background:#dfe4e5; color:var(--navy); }
.cup-page .cup-space-options > button[aria-pressed=true]:hover { background:#292e3e; color:#fff; }
.cup-page .cup-village p { margin-top:20px; }
.cup-page .cup-space-detail p { margin-top:12px; }
.cup-page .cup-food-row p { margin-top:10px; }
.cup-page .cup-food-description { font-size:var(--type-body); font-weight:400; line-height:var(--leading-body); color:var(--cup-muted); margin:10px 0 0; }
.cup-page .cup-format-value { font-size:inherit; }
.cup-page .cup-division-switch button { padding:8px 20px; font-weight:800; color:#c3cad6; }
.cup-page .cup-division-switch button[aria-pressed=true] { background:#fff; color:var(--navy); }
.cup-page .cup-competition-format p { margin-top:12px; }
.cup-page .cup-competition-stages p { margin-top:10px; }
.cup-page .cup-competition-updates p,.cup-page .cup-recap-copy p { margin-top:18px; }
.cup-page .cup-upcoming-gallery p { margin-top:16px; }
.cup-page .cup-contact-inner p { margin-bottom:24px; }
.cup-page .cup-film-cover { padding:0; border:0; }
.cup-page .cup-film-caption button { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.cup-faq { margin-top:6px; }
.cup-faq details { border-bottom:1px solid var(--cup-line); }
.cup-faq summary { cursor:pointer; padding:24px 0; font-size:var(--type-item-title); font-weight:800; line-height:1.4; }
.cup-faq details p { color:var(--cup-muted); padding:0 0 24px; }
.cup-edition-control select { padding:10px 12px; border:1px solid #bcc3cd; border-radius:0; color:var(--navy); }
.cup-page :focus-visible { outline:2px solid currentColor; outline-offset:3px; }
:where(.cup-lightbox,.cup-video-dialog,.cup-registration-header) :focus-visible { outline-color:var(--yellow); }
.cup-panels > .cup-panel + .cup-panel { margin-top:32px; }
.cup-ready .cup-panels > .cup-panel + .cup-panel { margin-top:0; }
.cup-ready .cup-space-preview[hidden],.cup-ready .cup-panel[hidden] { display:none; }
html.ifr-cup-modal-open { overflow:hidden; }
.cup-dialog, .cup-page ~ .ifr-dialog { position:fixed; width:min(680px,calc(100% - 32px)); max-width:none; max-height:90svh; margin:auto; padding:38px 32px 32px; overflow-y:auto; color:var(--navy); background:var(--canvas); border:1px solid var(--border); border-radius:0; }
.cup-dialog:not([open]), .cup-page ~ .ifr-dialog:not([open]) { display:none; }
.cup-dialog::backdrop,.cup-page ~ .ifr-dialog::backdrop { background:#0b0d14c9; }
.cup-dialog .dialog-close,.cup-page ~ .ifr-dialog .dialog-close { position:absolute; top:8px; right:8px; display:grid; place-items:center; width:36px; height:36px; padding:8px; color:inherit; background:transparent; border:0; }
.cup-page ~ .ifr-dialog h2 { margin:0 0 12px; font-size:2.5rem; line-height:1.08; }
.cup-page ~ .ifr-dialog .dialog-eyebrow { display:none; }
.cup-dialog.cup-lightbox { width:min(1000px,94vw); max-height:94svh; background:var(--deep); color:#fff; padding:24px; }
.cup-lightbox h2 { font-size:var(--type-subheading); padding-right:28px; }
.cup-lightbox > p { color:#bac4d5; margin-top:8px; }
.cup-lightbox > img { display:block; width:100%; max-height:65svh; object-fit:contain; margin-block:16px; }
.cup-dialog.cup-video-dialog { width:min(1100px,94vw); padding:36px 0 0; background:#08090e; color:#fff; border:0; }
.cup-video-dialog > div { aspect-ratio:16/9; }
.cup-video-dialog iframe { display:block; width:100%; height:100%; border:0; }
.cup-registration-dialog { position:fixed; margin:auto; }
.cup-registration-dialog::backdrop { background:#0b0d14c9; }
.cup-registration-dialog:not([open]) { display:none !important; }
.cup-registration-dialog .cup-registration-preview { padding:12px 30px; margin:0; background:#e9ecef; font-size:13px; color:#535c6b; }
.cup-registration-dialog :is(input,select,textarea) { font:inherit; }
.cup-registration-dialog .cup-registration-close { padding:0; background:#ffffff0c; border:1px solid #ffffff35; color:#fff; }
.cup-registration-dialog .cup-registration-accept input { width:20px; height:20px; }
.cup-registration-dialog [data-slot=dialog-description] { margin-top:7px; }
.cup-registration-dialog a { text-decoration:underline; text-underline-offset:3px; }
@media (max-width:800px) { .cup-page .cup-entry-card > button { width:fit-content; } }
@media (max-width:640px) {
 .cup-page .cup-hero-intro { margin-top:22px; }
 .cup-page .cup-edition { margin-top:8px; }
 .cup-page .cup-entry-card > button { width:100%; }
 .cup-page .cup-space-options > button { padding:16px 14px; gap:14px; }
 .cup-page .cup-food-description { grid-column:1/-1; padding-top:0; margin:0; }
 .cup-faq summary { padding-block:24px; }
 .cup-dialog.cup-lightbox { padding:24px 16px 12px; }
 .cup-page ~ .ifr-dialog { padding:36px 22px 24px; }
 .cup-page ~ .ifr-dialog h2 { font-size:2rem; }
 .cup-registration-dialog .cup-registration-preview { padding:10px 20px; }
}
@media (prefers-reduced-motion:reduce) { .cup-page .cup-button { transition:none; } }

.cup-page .cup-tab-bar { top:var(--cup-sticky-top,88px); }
.cup-page ~ .ifr-dialog input { font-size:16px; }
.cup-registration-dialog .cup-signature { margin-block:24px; }

/* Match the shared mobile FAQ rhythm with native WordPress details elements. */
@media (max-width:640px) {
 .cup-page .cup-practical .cup-faq { margin-top:0; }
 .cup-page .cup-faq summary { padding-block:24px; }
 .cup-page .cup-faq details p { padding-bottom:24px; }
}
