.page-choices { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-block: var(--space-6); }
.page-choices a { flex: 1 1 12rem; padding: var(--space-4) var(--space-5); border: 1px solid var(--color-brand); color: var(--color-brand); font-weight: 800; text-decoration: none; background: var(--color-paper); }
.page-choices a span { display: block; margin-top: .25rem; font-size: var(--text-sm); font-weight: 500; }
.page-choices a:hover, .page-choices a[aria-current] { background: var(--color-brand); color: white; }
.page-choices a:focus-visible { outline: 3px solid var(--color-ink); outline-offset: 4px; }
.rule-group, .program-day, #pakker, #sporsmal, #before-ordering-title { scroll-margin-top: 8rem; }
.regulations { padding-bottom: var(--space-8); }
.regulations [hidden] { display: none !important; }
.rule-group > h2 { margin-block: var(--space-6); }
.program-page { padding-block: var(--space-7) var(--space-8); }
.program-page .guide-notice { margin-bottom: 6rem; }
.page-tournament .program-page .guide-notice { display: flex; align-items: center; gap: 1rem; margin-bottom: 6rem; padding-inline: 1.5rem; }
.page-tournament .program-page .guide-notice::before { position: static; flex: 0 0 auto; }
.program-days { margin: 0 0 var(--space-8); border-block: 1px solid var(--color-border); }
.program-days a { display: block; min-width: 9rem; padding: var(--space-4) var(--space-3); border: 0; border-bottom: 4px solid transparent; background: none; color: var(--color-ink); }
.program-days a:hover { border-color: var(--color-brand); background: none; color: var(--color-brand); }
.program-days a strong { font-family: var(--font-profile); font-size: var(--text-lg); }
.program-days a span { color: var(--color-ink-soft); }
.program-schedule { border-bottom: 1px solid var(--color-border); }
.program-day { display: grid; grid-template-columns: 13rem minmax(0, 1fr); gap: clamp(var(--space-6), 5vw, var(--space-8)); padding-block: var(--space-8); border-top: 1px solid var(--color-border); }
.program-day > header { align-self: start; position: sticky; top: 8rem; padding-top: var(--space-3); border-top: .35rem solid var(--color-brand); }
.program-day > header p { margin: 0; color: var(--color-ink-soft); line-height: 1.45; }
.program-day > header .program-day__date { margin-bottom: var(--space-2); color: var(--color-brand); font-size: var(--text-sm); font-weight: 800; }
.program-day h2 { margin: 0 0 var(--space-2); color: var(--color-ink); font-size: clamp(1.8rem, 3vw, 2.5rem); }
.program-events { margin: 0; padding: 0; list-style: none; }
.program-events li { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: var(--space-5); padding: var(--space-5) 0; border-bottom: 1px solid rgb(16 21 51 / .12); }
.program-events li:first-child { padding-top: 0; }
.program-events li:last-child { border-bottom: 0; }
.program-event__time { margin: 0; color: var(--color-brand); font-size: var(--text-lg); font-weight: 900; font-variant-numeric: tabular-nums; }
.program-event__content h3 { margin: 0; font-size: clamp(1.15rem, 2vw, 1.35rem); }
.program-event__content p { margin: var(--space-2) 0 0; color: var(--color-ink-soft); }
.price-year-label { font-size: var(--text-sm); font-weight: 800; color: var(--color-brand); padding-bottom: var(--space-3); border-bottom: 1px solid var(--color-border); }
@media (min-width: 44.01rem) { .pricing-grid .price-card { display: grid; grid-template-rows: subgrid; grid-row: span 2; row-gap: 0; } }
.pricing-faq { margin-block: var(--space-8); max-width: 58rem; }
.pricing-faq details { border-bottom: 1px solid var(--color-border); padding-block: var(--space-4); }
.pricing-faq summary { font-size: var(--text-lg); font-weight: 750; cursor: pointer; padding-block: var(--space-2); }
.pricing-faq summary:focus-visible { outline: 3px solid var(--color-brand); outline-offset: 3px; }
.pricing-faq details p { max-width: 48rem; }
@media (max-width: 44rem) {
    .program-days { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
    .program-days a { min-width: 0; }
    .program-day { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); padding-block: var(--space-7); }
    .program-day > header { position: static; }
    .program-events li { grid-template-columns: 4.75rem minmax(0, 1fr); gap: var(--space-4); }
}

@media (max-width: 24rem) {
    .program-events li { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
    .program-event__time { margin: 0; }
}

/* Program: one clear day heading alongside its schedule. */
.program-page { padding-block: var(--space-8); }
.program-schedule { border-bottom: 0; }
.program-day { border-top: 0; padding-block: 0; margin-bottom: var(--space-8); }
.program-day:last-child { margin-bottom: 0; }
.program-day > header { overflow: hidden; padding: var(--space-5); border-top: 0; border-radius: 2.25rem .35rem 2.25rem .35rem; background: var(--color-surface-tint); }
.program-day:nth-child(even) > header { border-radius: .35rem 2.25rem .35rem 2.25rem; }
.program-day > header .program-day__date { color: var(--color-ink); }
.program-events { padding: var(--space-6); background: transparent; border-radius: var(--radius-sm); }
.program-event__time { margin-top: -.125rem; color: var(--color-ink); font-size: clamp(1.25rem, 2vw, 1.5rem); line-height: 1.25; }
body:has(.program-page) { --footer-surround-background: var(--color-paper); }
body:has(.program-page) main { background: var(--color-paper); }
@media(max-width:48rem) {
    .program-page { padding-block: var(--space-7); }
    .program-day { gap: var(--space-5); }
    .program-events { padding: var(--space-5); }
}
@media(max-width:44rem) {
    .program-events li { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
    .program-event__time { margin-top: -.125rem; color: var(--color-ink-soft); }
}

/* Current cupband comparison: light brand colours and opposite rounded corners. */
.page-pris .pricing-page .pricing-grid { gap: clamp(1.5rem, 3vw, 2.5rem); }
.page-pris .pricing-page .price-card { border: 0; border-radius: 2.5rem .5rem 2.5rem .5rem; background: color-mix(in srgb, var(--color-highlight) 9%, var(--color-paper)); }
.page-pris .pricing-page .price-card--basic { border-radius: .5rem 2.5rem .5rem 2.5rem; background: var(--color-surface-tint); }
.page-pris .pricing-page .price-card--super .price-card__header { background: var(--color-highlight); }
.page-pris .pricing-page .price-card--basic .price-card__header { background: color-mix(in srgb, var(--color-brand) 20%, var(--color-paper)); }
.page-pris .pricing-page .price-card__header,
.page-pris .pricing-page .price-card__header h2,
.page-pris .pricing-page .price-card__header p:last-child { color: var(--color-ink); }
.page-pris .pricing-page .price-card__label { padding: 0; background: transparent; color: var(--color-ink); }
.page-pris .pricing-page .price-card__price strong { color: var(--color-ink); }
.page-pris .pricing-page .price-card__price,
.page-pris .pricing-page .price-card__prices,
.page-pris .pricing-page .pricing-faq details { border-color: color-mix(in srgb, var(--color-border) 55%, transparent); }
.page-pris .pricing-page .pricing-before-ordering { background: color-mix(in srgb, var(--color-teal) 14%, var(--color-paper)); border-radius: 2rem .4rem 2rem .4rem; padding: clamp(1.5rem, 4vw, 3rem); align-items: center; }
@media (max-width: 44rem) {
    .page-pris .pricing-page .price-card { border-radius: 1.8rem .4rem 1.8rem .4rem; }
    .page-pris .pricing-page .price-card--basic { border-radius: .4rem 1.8rem .4rem 1.8rem; }
}

/* Quiet court-inspired shapes, decorative and isolated from card content. */
.page-pris .pricing-page .price-card__header { position: relative; isolation: isolate; overflow: hidden; }
.page-pris .pricing-page .price-card__header::before,
.page-pris .pricing-page .price-card__header::after { content: ''; position: absolute; z-index: -1; pointer-events: none; }
.page-pris .pricing-page .price-card__header::before { width: 16rem; height: 16rem; top: -7rem; right: -5rem; border: 2rem solid var(--color-brand); border-radius: 50%; opacity: .07; transform: rotate(-20deg); }
.page-pris .pricing-page .price-card__header::after { width: 8rem; height: 12rem; right: 1.5rem; bottom: -7rem; border: 1.2rem solid var(--color-ink); border-radius: 5rem 5rem 0 0; transform: rotate(32deg); opacity: .035; }
.page-pris .pricing-page .price-card--basic .price-card__header::before { top: -6rem; right: -4rem; width: 14rem; height: 14rem; border-width: 1.4rem; opacity: .065; }
.page-pris .pricing-page .price-card--basic .price-card__header::after { transform: rotate(-30deg); right: 2rem; }
@media (max-width: 44rem) {
    .page-pris .pricing-page .price-card__header::before { right: -7rem; }
    .page-pris .pricing-page .price-card--basic .price-card__header::before { right: -6rem; }
    .page-pris .pricing-page .price-card__header::after { right: -.5rem; opacity: .025; }
}

.page-pris .pricing-page { padding-top: clamp(3rem, 6vw, 5rem); }
.page-pris .pricing-intro { margin: 0 0 var(--space-6); font-size: var(--text-lg); color: var(--color-ink); }
.page-pris .pricing-page .pricing-grid { align-items: start; }
.page-pris .pricing-page .price-card { display: block; grid-row: auto; }
.page-pris .pricing-page .price-card__amounts { margin: 0; }
.page-pris .pricing-page .price-card__amounts > div { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-4); padding-block: var(--space-2); }
.page-pris .pricing-page .price-card__amounts dt { font-size: 1rem; line-height: 1.5; }
.page-pris .pricing-page .price-card__amounts dd { margin: 0; flex-shrink: 0; }
.page-pris .pricing-page .price-card__amounts strong { font-size: clamp(1.5rem, 2.5vw, 2rem); line-height: 1.2; white-space: nowrap; }
.page-pris .pricing-page .price-card__amounts strong span { font-family: var(--font-body); font-size: 1rem; font-weight: 500; }
.page-pris .pricing-page .price-card__feature { color: var(--color-ink); }
.page-pris .price-feature-details summary { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-height: 44px; cursor: pointer; list-style: none; color: var(--color-ink); font-size: inherit; font-weight: inherit; }
.page-pris .price-feature-details summary > span:first-child { min-width: 0; }
.page-pris .price-feature-details summary::-webkit-details-marker { display: none; }
.page-pris .price-feature-details__control { display: inline-flex; align-items: center; gap: .5rem; flex-shrink: 0; color: var(--color-brand); font-size: var(--text-sm); font-weight: 600; }
.page-pris .price-feature-details__arrow { width: .45rem; height: .45rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-.15rem) rotate(45deg); }
.page-pris .price-feature-details[open] .price-feature-details__arrow { transform: translateY(.1rem) rotate(225deg); }
.page-pris .price-feature-details summary:hover .price-feature-details__control { text-decoration: underline; text-underline-offset: .2em; }
.page-pris .price-feature-details summary:focus-visible { outline: 2px solid var(--color-brand); outline-offset: 4px; }
.page-pris .price-feature-details p { margin: .5rem 0; font-size: var(--text-sm); line-height: 1.65; color: var(--color-ink-soft); }
.page-pris .price-feature-details a { font-size: var(--text-sm); font-weight: 600; }
.page-pris .price-feature-details[open] { padding-bottom: var(--space-4); }
.page-pris .price-card__feature:has(.price-feature-details)::before { top: .65rem; }
@media (min-width: 60.01rem) {
    /* Share only header/price tracks; each content surface keeps its natural height. */
    .page-pris .pricing-page .pricing-grid { row-gap: 0; }
    .page-pris .pricing-page .price-card { display: grid; grid-template-rows: subgrid; grid-row: span 3; background: transparent; overflow: visible; border-radius: 0; }
    .page-pris .price-card__body { display: contents; }
    .page-pris .price-card__header { border-radius: 2.5rem .5rem 0 0; }
    .page-pris .price-card--basic .price-card__header { border-radius: .5rem 2.5rem 0 0; }
    .page-pris .price-card__price-area,
    .page-pris .price-card__contents { padding-inline: clamp(var(--space-5), 4vw, var(--space-7)); background: color-mix(in srgb, var(--color-highlight) 9%, var(--color-paper)); }
    .page-pris .price-card--basic .price-card__price-area,
    .page-pris .price-card--basic .price-card__contents { background: var(--color-surface-tint); }
    .page-pris .price-card__price-area { display: flex; flex-direction: column; padding-top: clamp(var(--space-5), 4vw, var(--space-7)); }
    .page-pris .price-card__price-area .price-card__prices { flex: 1; }
    .page-pris .price-card__contents { align-self: start; padding-bottom: clamp(var(--space-5), 4vw, var(--space-7)); border-radius: 0 0 2.5rem .5rem; }
    .page-pris .price-card--basic .price-card__contents { border-radius: 0 0 .5rem 2.5rem; }
}
@media (max-width: 60rem) {
    .page-pris .pricing-page .pricing-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Consistent closed rows, with shared package benefits first. */
.page-pris .price-card__contents h3 { margin-bottom: var(--space-6); }
.page-pris .price-card__feature > span { display: flex; align-items: center; min-height: 44px; }
.page-pris .price-card__feature::before { top: .65rem; }
.page-pris .pricing-payment { display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); margin: 0 0 var(--space-8); padding: clamp(1.5rem, 4vw, 3rem); background: color-mix(in srgb, var(--color-teal) 14%, var(--color-paper)); border-radius: 2rem .4rem 2rem .4rem; }
.page-pris .pricing-payment h2 { margin: 0 0 var(--space-3); }
.page-pris .pricing-payment p { margin: 0; }
.page-pris .pricing-payment .button { flex-shrink: 0; background: transparent; border: 2px solid color-mix(in srgb, var(--color-teal) 75%, var(--color-ink)); color: var(--color-ink); }
.page-pris .pricing-payment .button:hover { background: color-mix(in srgb, var(--color-teal) 12%, transparent); }
.page-pris .pricing-payment .button:focus-visible { outline: 3px solid var(--color-ink); outline-offset: 4px; }
.page-pris .pricing-notice { background: color-mix(in srgb, var(--color-coral) 75%, var(--color-ink)); border: 0; color: #fff; }
.page-pris .pricing-notice h2 { font-weight: 900; }
.page-pris .pricing-notice h2,
.page-pris .pricing-notice p { color: #fff; }
.page-pris .pricing-grid + .pricing-deadlines { margin-top: clamp(5.5rem, 8vw, 6rem); }
@media (max-width: 44rem) {
    .page-pris .pricing-payment { flex-direction: column; align-items: flex-start; }
}

/* Editorial opening follows the deadlines page, with a supporting cup-shirt photo. */
.page-pris .pricing-page { max-width: 68rem; padding-block: var(--space-8); }
.page-pris .pricing-top { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: var(--space-7); margin-bottom: var(--space-8); }
.page-pris .pricing-top h1 { font-family: var(--font-profile); font-size: clamp(2.75rem, 5vw, 4rem); font-weight: 900; line-height: 1.15; margin: 0 0 var(--space-4); }
.page-pris .pricing-top p { font-size: clamp(1.2rem, 1.1rem + .4vw, 1.375rem); line-height: 1.6; margin: 0; }
.page-pris .pricing-top__photo { margin: 0; }
.page-pris .pricing-top__photo img { display: block; width: 100%; height: auto; aspect-ratio: 20 / 13; object-fit: cover; object-position: center 70%; border-radius: 2rem .4rem 2rem .4rem; }
.page-pris .pricing-top__photo figcaption { margin-top: var(--space-3); font-size: var(--text-sm); line-height: 1.6; color: var(--color-ink-soft); }
@media (max-width: 44rem) {
    .page-pris .pricing-page { padding-block: var(--space-7) var(--space-8); }
    .page-pris .pricing-top { grid-template-columns: minmax(0, 1fr); }
}

.page-pris .pricing-page .price-card__feature--excluded,
.page-pris .price-card__feature--excluded .price-feature-details summary { color: var(--color-ink-soft); }
.page-pris .price-card__feature--excluded::before { opacity: .55; }

/* A little more breathing room between the price page's main sections. */
.page-pris .pricing-top,
.page-pris .pricing-payment { margin-bottom: clamp(5.5rem, 8vw, 6rem); }
.page-pris .pricing-faq { margin-block: clamp(5.5rem, 8vw, 6rem); }
