.guide-page { overflow: clip; }

.guide-hero h1 {
    max-width: 16ch;
    font-size: clamp(2.125rem, 1.5rem + 3vw, 4.5rem);
    overflow-wrap: break-word;
}

.guide-eyebrow {
    margin: 0 0 var(--space-4);
    font-size: var(--text-xs);
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.guide-hero .guide-eyebrow { color: var(--color-highlight); }
.guide-hero .hero__lead { margin-bottom: 0; color: var(--color-paper); }
.guide { padding-block: var(--space-7) var(--space-8); }
.hero--housing + .editorial-guide > .guide,
.hero.hero--referees + .guide { padding-top: var(--space-8); }
.guide [hidden] { display: none !important; }
.guide h2 { font-size: var(--text-xl); line-height: 1.2; }
.guide h3 { font-size: 1.2rem; line-height: 1.35; }
.guide h4 { font-size: 1rem; line-height: 1.35; }
.guide p { max-width: 66ch; }
.guide section[id] { scroll-margin-top: 8rem; }
.guide-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-6);
    margin: 0 0 var(--space-7);
    padding-bottom: var(--space-6);
    border-bottom: 2px solid var(--color-ink);
}
.guide-facts dt { color: var(--color-ink-soft); font-size: var(--text-sm); }
.guide-facts dd { margin: var(--space-2) 0 0; font-weight: 750; font-size: var(--text-lg); line-height: 1.4; }
.guide-layout { display: grid; grid-template-columns: 14rem minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); }
.guide-layout--directory { display: block; }
.guide-layout--single { display: block; }
.guide-sidebar { position: sticky; top: 8rem; align-self: start; }
.guide-sidebar ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--color-border); }
.guide-sidebar li { border-bottom: 1px solid var(--color-border); }
.guide-sidebar nav a { display: block; padding: var(--space-3) 0; font-size: var(--text-sm); text-decoration: none; font-weight: 650; }
.guide-sidebar nav a:hover { text-decoration: underline; }
.guide-contact { display: block; margin-top: var(--space-6); color: var(--color-ink-soft); font-size: var(--text-sm); text-decoration: none; }
.guide-contact span { display: block; color: var(--color-brand); font-weight: 750; text-decoration: underline; text-underline-offset: .2em; }
.guide-main { min-width: 0; }
.guide-notice { margin: 0 0 var(--space-6); padding: var(--space-4) var(--space-5); background: var(--color-surface-tint); border-left: 4px solid var(--color-brand); font-size: var(--text-sm); }
.guide-section { padding-block: var(--space-6); border-bottom: 1px solid var(--color-border); }
.guide-section:first-of-type { padding-top: var(--space-3); }
.guide-section h2 { margin-bottom: var(--space-5); }
.guide-section p { margin: 0 0 var(--space-4); }
.guide-rows { margin: var(--space-5) 0; }
.guide-rows > div { display: grid; grid-template-columns: 6rem 1fr; gap: var(--space-4); padding: var(--space-4) 0; border-bottom: 1px solid var(--color-border); }
.guide-rows dt { font-weight: 800; color: var(--color-brand); }
.guide-rows dd { margin: 0; }
.guide .guide-note { padding: var(--space-4); border-left: 3px solid var(--color-highlight); background: var(--color-paper); font-size: var(--text-sm); }
.guide-links { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); padding: 0; margin: var(--space-5) 0 0; list-style: none; }
.guide-links a { display: inline-block; padding-block: var(--space-2); font-size: var(--text-sm); font-weight: 750; text-underline-offset: .2em; }
.guide-checklist { counter-reset: step; padding: 0; margin: var(--space-5) 0 0; list-style: none; }
.guide-checklist li { counter-increment: step; display: flex; gap: var(--space-4); padding-block: var(--space-5); border-top: 1px solid var(--color-border); }
.guide-checklist li::before { content: counter(step, decimal-leading-zero); align-self: start; font-weight: 850; color: var(--color-brand); background: var(--color-surface-tint); padding: var(--space-2); line-height: 1.5; }
.guide-checklist h3 { margin: 0 0 var(--space-2); }
.guide-checklist a { display: inline-block; padding-block: var(--space-2); font-size: var(--text-sm); font-weight: 750; }
.guide-list { padding-left: var(--space-5); }
.guide-list li + li { margin-top: var(--space-3); }
.guide-next { display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); margin-top: var(--space-8); padding: clamp(1.5rem, 4vw, 3rem); background: var(--color-ink); color: var(--color-paper); }
.guide-next .guide-eyebrow { color: var(--color-highlight); }
.guide-next h2 { margin: 0 0 var(--space-4); }
.guide-next p:last-child { margin: 0; }
.guide-next .button { flex-shrink: 0; background: var(--color-highlight); color: var(--color-ink); border-color: var(--color-highlight); }
.guide-next .button:focus-visible { outline-color: var(--color-paper); }
.guide-deadlines { list-style: none; padding: 0; margin: var(--space-6) 0 0; }
.guide-deadline { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: var(--space-5); padding: var(--space-5) 0; border-top: 1px solid var(--color-border); }
.guide-deadline--next { border-top: 3px solid var(--color-brand); }
.guide-deadline-date { font-weight: 800; color: var(--color-brand); line-height: 1.4; }
.guide-deadline-date time { display: block; }
.guide-badge { display: inline-block; margin-top: var(--space-3); padding: var(--space-1) var(--space-2); font-size: var(--text-xs); color: var(--color-ink); background: var(--color-highlight); }
.guide-date-status { display: block; margin-top: var(--space-3); font-size: var(--text-xs); font-weight: 500; color: var(--color-ink-soft); }
.guide-deadline-content h3 { margin: 0 0 var(--space-4); }
.guide-deadline-content { font-size: var(--text-sm); }
.guide-deadline-content :last-child { margin-bottom: 0; }
.guide-search { display: grid; grid-template-columns: minmax(0, 1fr) 11rem auto; align-items: end; gap: var(--space-3); padding: var(--space-5); background: var(--color-paper); border: 1px solid var(--color-border); }
.guide-search label { display: block; margin-bottom: var(--space-2); font-size: var(--text-sm); font-weight: 750; }
.guide-search input, .guide-search select { width: 100%; min-width: 0; min-height: 3rem; padding: var(--space-3); border: 1px solid var(--color-ink-soft); border-radius: var(--radius-sm); color: var(--color-ink); background: white; font: inherit; }
.guide-search button { min-height: 3rem; }
.guide-search-help { margin-block: var(--space-3) var(--space-4); font-size: var(--text-xs); color: var(--color-ink-soft); }
.guide-search-result { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-4); font-size: var(--text-sm); }
.guide-search-result p { margin: 0; font-weight: 750; }
.guide-search-result a { padding-block: var(--space-3); }
.guide-address-group { margin-top: var(--space-7); }
.guide-address-group > h3 { margin-bottom: var(--space-2); }
.guide-address-group > p { font-size: var(--text-sm); color: var(--color-ink-soft); }
.guide-addresses { list-style: none; padding: 0; margin: 0; border-top: 2px solid var(--color-ink); }
.guide-addresses li { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding-block: var(--space-5); border-bottom: 1px solid var(--color-border); }
.guide-addresses h4 { margin: 0 0 var(--space-1); }
.guide-addresses p { margin: 0; color: var(--color-ink-soft); font-size: var(--text-sm); }
.guide-courts { display: inline-block; margin-top: var(--space-2); font-size: var(--text-xs); font-weight: 750; }
.guide-map-link { flex-shrink: 0; display: inline-flex; gap: var(--space-3); align-items: center; min-height: 2.75rem; padding: var(--space-2) var(--space-3); border: 1px solid var(--color-border); font-size: var(--text-sm); font-weight: 750; text-decoration: none; }
.guide-map-link:hover { background: var(--color-surface-tint); border-color: var(--color-brand); }
.guide-directory > .guide-note:last-child { margin-top: var(--space-6); }
@media (max-width: 60rem) {
    .guide-layout { grid-template-columns: 11rem minmax(0, 1fr); gap: var(--space-6); }
    .guide-search { grid-template-columns: 1fr auto; }
    .guide-search > div:first-child { grid-column: 1 / -1; }
    .guide-deadline { grid-template-columns: 1fr; gap: var(--space-4); }
    .guide-deadline-date { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-3); }
    .guide-badge, .guide-date-status { margin-top: 0; }
}
@media (max-width: 44rem) {
    .guide { padding-top: var(--space-5); }
    .guide-layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
    .guide-sidebar { position: static; }
    .guide-sidebar ul { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); padding-block: var(--space-2); border-bottom: 1px solid var(--color-border); }
    .guide-sidebar li { border: 0; }
    .guide-sidebar nav a { padding-block: var(--space-2); text-decoration: underline; text-underline-offset: .2em; }
    .guide-contact { margin-top: var(--space-4); }
    .guide-contact span { display: inline; margin-left: var(--space-2); }
    .guide-facts { grid-template-columns: 1fr; gap: var(--space-4); margin-bottom: var(--space-6); }
    .guide-facts > div + div { border-top: 1px solid var(--color-border); padding-top: var(--space-4); }
    .guide-next { flex-direction: column; align-items: start; margin-top: var(--space-7); }
    .guide-next .button { white-space: normal; }
    .guide-rows > div { grid-template-columns: 4.5rem minmax(0, 1fr); }
}
@media (max-width: 24rem) {
    .guide-addresses li { align-items: start; flex-direction: column; gap: var(--space-2); }
    .guide-search { padding: var(--space-4); grid-template-columns: minmax(0, 1fr); }
}
.guide-question { border-block-end: 1px solid var(--color-border, #c6d2d4); scroll-margin-top: 8rem; }
.guide-question summary { padding: 1.3rem .4rem; cursor: pointer; font-weight: 750; font-size: 1.1rem; }
.guide-question[open] summary { color: #075b62; }
.guide-question > div { padding: 0 .4rem 1.4rem; }
.guide-question summary:focus-visible { outline: 3px solid #075b62; outline-offset: 3px; }
.guide--with-intro .guide-facts { border-block: 1px solid var(--color-border); }
.guide--with-intro .cup-story h2 { font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.05; }
.guide--with-intro :is(.guide-section h2, .guide-next h2, .guide-facts dd) { font-family: var(--font-profile); font-weight: 700; letter-spacing: 0; }
.guide--with-intro .guide-notice { background: var(--color-highlight); color: var(--color-ink); border: 0; padding: 1.25rem; max-width: none; }
.guide--with-intro .guide-next { background: none; color: var(--color-ink); border-top: 1px solid var(--color-border); padding-inline: 0; }
.guide--with-intro .guide-next .guide-eyebrow { color: var(--color-brand); }

/* FAQ: filters beside the answers, shared disclosure icons with Contact. */
.hero.hero--faq {
    --hero-image: image-set(url("/assets/images/fredrikstad-cup-lag-1200.avif") type("image/avif"), url("/assets/images/fredrikstad-cup-lag-1200.webp") type("image/webp"));
    --hero-position: center 40%;
}
.guide--faq .faq-notice { display: flex; align-items: start; gap: var(--space-4); max-width: none; margin: 0 0 var(--space-7); padding: var(--space-5); background: var(--color-highlight); color: var(--color-ink); }
.faq-notice img { flex: 0 0 1.5rem; margin-top: .15rem; }
.guide--faq .faq-filters { grid-template-columns: minmax(0, 1fr); padding: 0; border: 0; background: transparent; gap: var(--space-5); }
.guide--faq .faq-filter-actions { display: grid; gap: var(--space-2); margin-top: var(--space-2); }
.faq-filter-actions a { justify-self: start; padding: var(--space-2); font-size: var(--text-sm); text-underline-offset: .2em; }
.guide--faq #sporsmal { border-block-end: 0; }
.guide--faq .guide-question summary { position: relative; padding: var(--space-5) 3.5rem var(--space-5) 0; font-weight: 700; list-style: none; }
.guide--faq .guide-question[open] summary { color: var(--color-ink); }
.guide--faq .guide-question summary:focus-visible { outline-color: var(--color-focus); }
.guide--faq .guide-question summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); }
.faq-topic { flex-shrink: 0; color: var(--color-ink-soft); font-size: var(--text-xs); font-weight: 400; }
.faq-question-label { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2) var(--space-3); }
@media (max-width: 44rem) { .faq-topic { display: none; } }

/* Address directory: quiet rows with direct map and directions actions. */
.hero.hero--addresses { --hero-image: url('/assets/images/adresser-drone.jpg'); --hero-position: center; }
.address-map-intro { display: flex; align-items: center; justify-content: space-between; gap: var(--space-7); padding: clamp(1.5rem, 4vw, 2.5rem); background: var(--color-ink); color: var(--color-paper); }
.address-map-intro h2 { margin: 0 0 var(--space-2); color: var(--color-paper); font-family: var(--font-profile); font-size: clamp(1.6rem, 3vw, 2.25rem); font-weight: 800; }
.address-map-intro p { max-width: 42rem; margin: 0; color: rgb(255 255 255 / .82); }
.address-map-intro .button { flex: 0 0 auto; border-color: var(--color-highlight); background: var(--color-highlight); color: var(--color-ink); }
.guide-directory .guide-search { grid-template-columns: minmax(0, 1fr) auto; margin-top: var(--space-6); padding: 0; border: 0; background: transparent; }
.guide-directory .guide-search input { height: 3.25rem; box-sizing: border-box; }
.guide-directory .guide-search > .button { min-height: 3.25rem; margin-top: 0; }
.guide-address-group { margin-top: clamp(3rem, 6vw, 5rem); }
.address-group-heading { display: flex; align-items: end; justify-content: space-between; gap: var(--space-6); margin-bottom: var(--space-4); }
.address-group-heading h3 { margin: 0 0 var(--space-2); font-family: var(--font-profile); font-size: clamp(1.5rem, 2vw, 2rem); font-weight: 800; }
.address-group-heading p { max-width: 42rem; margin: 0; color: var(--color-ink-soft); font-size: var(--text-sm); }
.address-action-legend { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: var(--space-3) var(--space-5); color: var(--color-ink-soft); font-size: var(--text-xs); font-weight: 700; }
.address-action-legend span { display: inline-flex; align-items: center; gap: var(--space-2); }
.address-action-legend .address-action__icon { width: 1rem; height: 1rem; }
.guide-addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2.5rem; border-top: 1px solid var(--color-ink); }
.guide-addresses li { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--space-4); padding-block: var(--space-5); border-bottom: 1px solid var(--color-border); background: transparent; }
.address-place { min-width: 0; }
.address-place__title { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-1); }
.guide-addresses h4 { margin: 0; }
.guide-courts { margin-top: 0; padding: .15rem .4rem; background: var(--color-highlight); color: var(--color-ink); font-size: .7rem; line-height: 1.25; }
.address-actions { display: flex; flex: 0 0 auto; gap: var(--space-1); }
.address-actions a { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; min-height: 2.75rem; padding: var(--space-2); border: 1px solid transparent; color: var(--color-ink); text-decoration: none; }
.address-actions a:hover { border-color: transparent; background: transparent; }
.address-actions a:hover .address-action__icon { color: var(--color-brand); }
.address-actions a:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
.address-action__icon { display: inline-block; flex: 0 0 auto; width: 1.125rem; height: 1.125rem; background: currentColor; -webkit-mask: center / contain no-repeat; mask: center / contain no-repeat; }
.address-action__icon--cup-map { -webkit-mask-image: url('/assets/icons/fontawesome/location-dot.svg'); mask-image: url('/assets/icons/fontawesome/location-dot.svg'); }
.address-action__icon--directions { -webkit-mask-image: url('/assets/icons/fontawesome/location-arrow.svg'); mask-image: url('/assets/icons/fontawesome/location-arrow.svg'); }
.address-action__label { display: none; }
.address-map-dialog { width: min(68rem, calc(100vw - 2rem)); max-width: none; padding: 1.25rem; border: 0; background: var(--color-paper); color: var(--color-ink); }
.address-map-dialog::backdrop { background: rgb(16 21 51 / .7); }
.address-map-dialog header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.address-map-dialog h2 { margin: 0; font-size: 1.5rem; }
.address-map-dialog__actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .75rem; }
.address-map-dialog iframe { display: block; width: 100%; height: min(65dvh, 38rem); border: 0; }
@media (max-width: 47.99rem) {
    .address-map-intro { align-items: start; }
    .address-group-heading { align-items: start; flex-direction: column; gap: var(--space-3); }
    .guide-addresses { grid-template-columns: minmax(0, 1fr); }
    .address-actions a { width: auto; gap: var(--space-2); padding-inline: var(--space-3); border-color: var(--color-border); font-size: var(--text-sm); font-weight: 700; }
    .address-action__label { display: inline; }
}
@media (max-width: 35rem) {
    .address-map-intro { align-items: stretch; flex-direction: column; gap: var(--space-4); }
    .address-map-intro .button { align-self: start; }
    .guide-directory .guide-search { grid-template-columns: minmax(0, 1fr); }
    .guide-directory .guide-search > .button { justify-self: start; }
    .guide-addresses li { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
    .address-map-dialog header { align-items: flex-start; flex-direction: column; }
    .address-map-dialog__actions { width: 100%; justify-content: flex-start; }
}

/* Contact links shared by all guide templates. */
.guide-contact-links {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1.5rem;
    margin: 1.5rem 0 0;
    padding: 0;
    list-style: none;
}
.guide-contact-links a {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-weight: 700;
}
.guide-contact-links .fc-icon {
    width: 1.125rem;
    height: 1.125rem;
}

/* Referee introduction: scoped to /dommere. */
.guide .referee-opening { margin-bottom: var(--space-7); font-weight: 700; }
.guide > .referee-profile { padding-top: 0; padding-bottom: var(--space-8); }
.guide .referee-profile h2 { font-size: clamp(2rem, 3.5vw, 3rem); line-height: 1.08; max-width: 19ch; font-weight: 800; }
.referee-profile__media { min-width: 0; }
.referee-profile__media video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; background: var(--color-ink); }
.referee-profile__media video:focus-visible { outline: 2px solid var(--color-brand); outline-offset: 4px; }
