/*
Theme Name: IKMF Astra Child
Description: Accessible institutional presentation layer for the IKMF federation website.
Author: IKMF
Version: 1.3.0
Template: astra
Text Domain: ikmf-astra-child
Requires at least: 6.8
Requires PHP: 8.2
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

@font-face { font-family: Inter; src: url("assets/fonts/inter-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: Inter; src: url("assets/fonts/inter-600.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: Oswald; src: url("assets/fonts/oswald-600.woff2") format("woff2"); font-weight: 600; font-display: swap; }

:root {
  --ikmf-white: #fff;
  --ikmf-paper: #f5f6f7;
  --ikmf-ink: #17191c;
  --ikmf-muted: #5e646c;
  --ikmf-line: #dfe2e5;
  --ikmf-accent: #a91e2c;
  --ikmf-accent-dark: #801621;
  --ikmf-radius: 12px;
  --ikmf-shadow: 0 12px 36px rgba(23, 25, 28, .09);
}

html { scroll-behavior: smooth; }
body, button, input, select, textarea { font-family: Inter, system-ui, sans-serif; color: var(--ikmf-ink); }
h1, h2, h3, .site-title { font-family: Oswald, Impact, sans-serif; letter-spacing: .015em; }
a { color: var(--ikmf-accent-dark); text-underline-offset: .18em; }
a:hover { color: var(--ikmf-accent); }
:focus-visible { outline: 3px solid var(--ikmf-accent); outline-offset: 3px; }
.screen-reader-text { clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute !important; width: 1px; }

.ast-primary-header-bar { border-bottom: 1px solid var(--ikmf-line); background: rgba(255,255,255,.97); }
.main-header-menu .menu-link { font-weight: 600; }

@media (min-width: 922px) {
  .main-header-menu > .menu-item:not(.ikmf-language-switcher-item) > .menu-link { position: relative; }
  .main-header-menu > .menu-item:not(.ikmf-language-switcher-item) > .menu-link::before {
    background-color: var(--ikmf-accent);
    bottom: 14px;
    content: "";
    height: 2px;
    left: 1em;
    pointer-events: none;
    position: absolute;
    right: 1em;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .3s ease;
  }
  .main-header-menu > .menu-item:not(.ikmf-language-switcher-item) > .menu-link:hover::before,
  .main-header-menu > .menu-item:not(.ikmf-language-switcher-item) > .menu-link:focus-visible::before,
  .main-header-menu > .current-menu-item:not(.ikmf-language-switcher-item) > .menu-link::before,
  .main-header-menu > .current-menu-ancestor:not(.ikmf-language-switcher-item) > .menu-link::before { transform: scaleX(1); }
}

.site-primary-footer-wrap { background: var(--ikmf-ink); color: var(--ikmf-white); }
.site-primary-footer-wrap a { color: var(--ikmf-white); }
.ast-footer-copyright a { color: var(--ikmf-accent-dark); text-decoration: underline; }

.ikmf-language-switcher-item.menu-item { align-self: center; background: transparent; border: 0; flex: 0 0 auto; margin-inline-start: 1rem; padding: 0; }
.ikmf-language-switcher-item .ikmf-language-switcher { align-items: center; background: var(--ikmf-paper); border: 1px solid var(--ikmf-line); border-radius: 999px; display: inline-flex; gap: 2px; padding: 3px; vertical-align: middle; width: fit-content; }
.ikmf-language-switcher-item .ikmf-language-switcher .ikmf-language-link { align-items: center; background: transparent; border: 0; border-radius: 999px; color: var(--ikmf-muted); display: flex; flex: 0 0 auto; font-size: .75rem; font-weight: 600; height: 36px; justify-content: center; letter-spacing: .04em; line-height: 1; margin: 0; min-width: 44px; padding: 0 .75rem; text-decoration: none; transition: background-color .2s ease, color .2s ease; width: auto; }
.ikmf-language-switcher-item .ikmf-language-switcher .ikmf-language-link:hover { background: var(--ikmf-line); color: var(--ikmf-ink); }
.ikmf-language-switcher-item .ikmf-language-switcher .ikmf-language-link[aria-current="page"] { background: var(--ikmf-accent); color: var(--ikmf-white); }
.ikmf-language-switcher-item .ikmf-language-switcher .ikmf-language-link:focus-visible { outline: 2px solid var(--ikmf-accent); outline-offset: 3px; }
.ast-header-break-point .ikmf-language-switcher-item.menu-item { box-sizing: border-box; margin: .75rem 0 1rem; max-width: 100%; padding-inline: 20px; }
.ast-header-break-point .ikmf-language-switcher-item .ikmf-language-switcher .ikmf-language-link { height: 44px; min-width: 48px; }

.elementor-page .site-content > .ast-container { max-width: none; padding: 0; width: 100%; }
.elementor-page #primary, .elementor-page .site-main, .elementor-page .fc-page { margin: 0; max-width: none; padding: 0; width: 100%; }
.elementor-page .entry-content, .elementor-page .fc-page-body, .elementor-page .fc-page-body > .elementor { margin: 0; max-width: none; padding: 0; width: 100%; }

.ikmf-hero, .ikmf-section { padding: clamp(3rem, 7vw, 7rem) max(5vw, calc((100vw - 1200px)/2)); }
.ikmf-hero { background: var(--ikmf-ink) url("assets/images/ikmf-hero-demo.jpg") center/cover no-repeat; color: var(--ikmf-white); isolation: isolate; min-height: min(760px, 78vh); justify-content: center; overflow: hidden; position: relative; }
.ikmf-hero::before { background: linear-gradient(90deg, rgba(15,17,20,.93) 0%, rgba(15,17,20,.76) 42%, rgba(15,17,20,.1) 72%); content: ""; inset: 0; pointer-events: none; position: absolute; z-index: 1; }
.ikmf-hero h1.elementor-heading-title { color: var(--ikmf-white) !important; font-family: Oswald, Impact, sans-serif; font-size: clamp(3rem, 6vw, 5.5rem); line-height: 1.02; max-width: 900px; text-transform: uppercase; }
.ikmf-hero p { color: #f3f3f3; font-size: clamp(1.05rem, 1.8vw, 1.3rem); max-width: 600px; }
.ikmf-hero .elementor-widget { position: relative; z-index: 2; }
.ikmf-hero .elementor-widget-image { inset: 0; position: absolute; z-index: 0; }
.ikmf-hero .elementor-widget-image .elementor-widget-container { height: 100%; }
.ikmf-hero .elementor-widget-image img { height: 100%; object-fit: cover; width: 100%; }
.ikmf-hero .elementor-button, .fc-button { background: var(--ikmf-accent) !important; border: 0; border-radius: 3px; color: var(--ikmf-white) !important; cursor: pointer; display: inline-flex; font-weight: 700; justify-content: center; padding: .9rem 1.25rem; text-decoration: none; }
.ikmf-hero .elementor-button:hover, .fc-button:hover { background: var(--ikmf-accent-dark) !important; color: var(--ikmf-white) !important; }

.ikmf-section:nth-of-type(even) { background: var(--ikmf-paper); }
.ikmf-section h2.elementor-heading-title { color: var(--ikmf-ink) !important; font-size: clamp(2rem, 4vw, 3.8rem); line-height: 1.05; }
.ikmf-section .elementor-widget-text-editor, .ikmf-section .elementor-widget-text-editor p { color: var(--ikmf-muted) !important; }
.ikmf-section a.elementor-button { background: var(--ikmf-accent) !important; color: var(--ikmf-white) !important; }
.ikmf-section a.elementor-button:hover, .ikmf-section a.elementor-button:focus { background: var(--ikmf-accent-dark) !important; }
.ikmf-page-content { padding-inline: clamp(1.25rem, 3vw, 3rem); }
.ikmf-section-split { background: linear-gradient(90deg, var(--ikmf-white) 0 50%, var(--ikmf-paper) 50%); }
.ikmf-affiliation { background: var(--ikmf-ink) !important; color: var(--ikmf-white); }
.ikmf-affiliation h2.elementor-heading-title { color: var(--ikmf-white) !important; }
.ikmf-affiliation .elementor-widget-text-editor, .ikmf-affiliation .elementor-widget-text-editor p { color: var(--ikmf-white) !important; }

.fc-stats { display: grid; gap: 1rem; grid-template-columns: repeat(4, 1fr); margin: 0; }
.fc-stat { border-top: 3px solid var(--ikmf-accent); padding-top: 1rem; }
.fc-stat dt { font-family: Oswald, sans-serif; font-size: clamp(2.5rem, 5vw, 4.5rem); font-weight: 600; line-height: 1; }
.fc-stat dd { color: var(--ikmf-muted); margin: .45rem 0 0; }

.fc-card-grid, .fc-club-results { display: grid; gap: 1.5rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fc-card { background: var(--ikmf-white); border: 1px solid var(--ikmf-line); border-radius: var(--ikmf-radius); box-shadow: var(--ikmf-shadow); overflow: hidden; padding: 1.35rem; transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease; }
.fc-card:hover, .fc-card:focus-within { border-color: rgba(169, 30, 44, .38); box-shadow: 0 16px 40px rgba(23, 25, 28, .14); transform: translateY(-3px); }
.fc-card img { aspect-ratio: 16/9; object-fit: cover; width: 100%; }
.fc-club-card__logo-frame { align-items: center; background: var(--ikmf-paper); border-radius: 6px; display: flex; height: 112px; justify-content: center; margin-bottom: 1rem; padding: 1rem; }
.fc-club-card .fc-club-card__logo { aspect-ratio: auto; height: 100%; object-fit: contain; width: 100%; }
.fc-card h3 { font-size: 1.45rem; margin: .75rem 0 .35rem; }
.ast-single-post .entry-content .fc-card h3 a,
.ast-single-post .entry-content .fc-calendar li a,
.fc-card h3 a,
.fc-calendar li a { color: var(--ikmf-ink); text-decoration: none; }
.fc-card h3 a::after, .fc-calendar li a::after { color: var(--ikmf-accent); content: "\2192"; display: inline-block; font-family: Inter, system-ui, sans-serif; font-size: .85em; margin-inline-start: .4em; transition: transform .2s ease; }
.fc-card h3 a:hover, .fc-card h3 a:focus-visible, .fc-calendar li a:hover, .fc-calendar li a:focus-visible { color: var(--ikmf-accent-dark); }
.fc-card h3 a:hover::after, .fc-card h3 a:focus-visible::after, .fc-calendar li a:hover::after, .fc-calendar li a:focus-visible::after { transform: translateX(4px); }
.fc-card time { color: var(--ikmf-accent-dark); display: block; font-weight: 700; }
.fc-event-card__image, .fc-news-card__image { margin-bottom: 1rem; }

/* EA Gallery uses a 0.1px font on the title link: use a fixed underline offset. */
.eael-filterable-gallery-item-wrap .fg-layout-3-item-content > a { text-decoration-thickness: 1px !important; text-underline-offset: 4px !important; text-decoration-skip-ink: auto; }
.eael-filterable-gallery-item-wrap .fg-layout-3-item-content .fg-item-title { line-height: 1.4 !important; margin-bottom: 8px !important; }

/* Upcoming events share their content with Elementor and the shortcode. */
.ikmf-section:has(.fc-upcoming-events) h2.elementor-heading-title { font-family: Oswald, Impact, sans-serif; font-size: clamp(2.4rem, 4.5vw, 4rem); }
.ikmf-section:has(.fc-upcoming-events) .elementor-widget-shortcode,
.elementor-widget-federation_upcoming_events { width: 100%; }
.fc-upcoming-events { width: 100%; }
.fc-events-intro { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem 2rem; justify-content: space-between; margin-bottom: 2rem; }
.fc-events-intro p { color: var(--ikmf-muted); font-size: clamp(1rem, 1.6vw, 1.2rem); margin: 0; }
.fc-upcoming-events .fc-events-calendar { align-items: center; border: 1px solid var(--ikmf-accent); border-radius: 4px; color: var(--ikmf-accent-dark); display: inline-flex; font-weight: 600; gap: 1.5rem; justify-content: center; min-height: 48px; padding: .8rem 1.3rem; text-decoration: none; transition: background-color .2s ease, color .2s ease; }
.fc-upcoming-events .fc-events-calendar:hover { background: var(--ikmf-accent); color: var(--ikmf-white); }
.fc-card-grid.fc-events { gap: 1.75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fc-event-card { border-radius: 8px; display: flex; flex-direction: column; min-width: 0; padding: 0; }
.fc-event-card__visual { aspect-ratio: 16/9; background: var(--ikmf-ink); overflow: hidden; position: relative; }
.fc-event-card__visual--empty { background: linear-gradient(135deg, #17191c 35%, #3f2429 100%); }
.fc-event-card .fc-event-card__image { display: block; height: 100%; margin: 0; object-fit: cover; width: 100%; }
.fc-event-card .fc-event-card__date { background: var(--ikmf-accent); border-radius: 4px; color: var(--ikmf-white); left: clamp(.75rem, 1.4vw, 1.25rem); line-height: 1; min-width: 68px; padding: .7rem .65rem; position: absolute; text-align: center; top: clamp(.75rem, 1.4vw, 1.25rem); }
.fc-event-card__day { display: block; font-family: Oswald, Impact, sans-serif; font-size: clamp(2rem, 3vw, 2.7rem); }
.fc-event-card__month { display: block; font-family: Oswald, Impact, sans-serif; font-size: 1rem; margin-top: .35rem; text-transform: uppercase; }
.fc-event-card__year { border-top: 1px solid rgba(255,255,255,.4); display: block; font-size: .8rem; font-weight: 400; margin-top: .5rem; padding-top: .5rem; }
.fc-event-card__body { display: flex; flex: 1; flex-direction: column; padding: clamp(1.15rem, 2.2vw, 2rem); }
.fc-event-card .fc-event-card__type { color: var(--ikmf-accent-dark); font-family: Oswald, Impact, sans-serif; font-size: .9rem; font-weight: 600; letter-spacing: .06em; margin: 0 0 .35rem; text-transform: uppercase; }
.fc-event-card h3 { font-family: Oswald, Impact, sans-serif; font-size: clamp(1.6rem, 2.5vw, 2.2rem); line-height: 1.25; margin: 0 0 .8rem; overflow-wrap: anywhere; }
.fc-event-card h3 a::after { content: none; }
.fc-event-card .fc-event-card__venue { align-items: flex-start; color: var(--ikmf-muted); display: flex; gap: .55rem; line-height: 1.5; margin: 0 0 1.3rem; }
.fc-event-card__venue svg { color: var(--ikmf-accent); flex: 0 0 20px; margin-top: .15rem; }
.fc-event-card__venue span { overflow-wrap: anywhere; }
.fc-event-card__footer { border-top: 1px solid var(--ikmf-line); margin-top: auto; padding-top: 1rem; }
.fc-event-card .fc-event-card__button { align-items: center; gap: 2rem; justify-content: space-between; min-height: 48px; min-width: 210px; text-decoration: none; }

.fc-filters { align-items: end; background: var(--ikmf-white); border: 1px solid var(--ikmf-line); border-radius: var(--ikmf-radius); display: grid; gap: 1rem; grid-template-columns: 2fr 1fr 1fr auto; margin-bottom: 1.5rem; padding: 1.25rem; }
.fc-filters label, .fc-federation-form label { display: grid; font-size: .85rem; font-weight: 600; gap: .35rem; }
.fc-filters input, .fc-filters select, .fc-federation-form input:not([type="submit"]), .fc-federation-form textarea { background: var(--ikmf-white); border: 1px solid #abb0b6; border-radius: 4px; min-height: 46px; padding: .65rem .75rem; width: 100%; }
.fc-finder-layout { align-items: start; display: grid; gap: 1.5rem; grid-template-columns: minmax(320px, .9fr) minmax(0, 1.25fr); }
.fc-map { border-radius: var(--ikmf-radius); height: clamp(540px, 68vh, 720px); overflow: hidden; position: sticky; top: 1.5rem; z-index: 1; }
.fc-results-column { min-width: 0; }
.fc-results-toolbar { align-items: center; display: flex; flex-wrap: wrap; gap: .75rem 1rem; justify-content: space-between; margin-bottom: 1rem; scroll-margin-top: 2rem; }
.fc-results-status { color: var(--ikmf-muted); font-size: .9rem; font-weight: 700; margin: 0; }
.fc-club-results { gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fc-club-results .fc-club-card { align-items: center; display: grid; gap: .9rem; grid-template-columns: 84px minmax(0, 1fr); min-height: 108px; padding: .85rem; }
.fc-club-results .fc-club-card__logo-frame { height: 76px; margin: 0; padding: .45rem; width: 84px; }
.fc-club-results .fc-club-card__placeholder { color: var(--ikmf-muted); font-family: Oswald, sans-serif; font-size: 1rem; font-weight: 600; letter-spacing: .08em; }
.fc-club-results .fc-card__body { min-width: 0; }
.fc-club-results .fc-card h3 { font-size: 1.08rem; line-height: 1.2; margin: 0 0 .4rem; overflow-wrap: anywhere; }
.fc-club-results .fc-card p { color: var(--ikmf-muted); font-size: .9rem; line-height: 1.35; margin: 0; }
.fc-club-finder.is-loading { opacity: .68; pointer-events: none; }
.fc-pagination { align-items: center; display: flex; flex-wrap: wrap; gap: .35rem; justify-content: flex-end; }
.fc-pagination[hidden] { display: none; }
.fc-pagination--bottom { margin-top: 1.25rem; }
.fc-pagination__button { background: var(--ikmf-white); border: 1px solid var(--ikmf-line); border-radius: 6px; color: var(--ikmf-ink); font-size: .82rem; font-weight: 700; min-height: 38px; min-width: 38px; padding: .45rem .65rem; }
.fc-pagination__button:hover, .fc-pagination__button:focus-visible { border-color: var(--ikmf-accent); color: var(--ikmf-accent); }
.fc-pagination__button.is-current { background: var(--ikmf-accent); border-color: var(--ikmf-accent); color: var(--ikmf-white); }
.fc-pagination__button:disabled { cursor: not-allowed; opacity: .4; }
.fc-pagination__ellipsis { color: var(--ikmf-muted); padding: 0 .15rem; }

.fc-calendar-nav { align-items: center; border-bottom: 1px solid var(--ikmf-line); display: flex; gap: 2rem; margin-bottom: .75rem; }
.fc-calendar-nav a { color: var(--ikmf-muted); font-weight: 700; padding: .9rem .1rem; position: relative; text-decoration: none; }
.fc-calendar-nav a::after { background: var(--ikmf-accent); bottom: -1px; content: ""; height: 3px; left: 0; position: absolute; transform: scaleX(0); transform-origin: left; transition: transform .2s ease; width: 100%; }
.fc-calendar-nav a:hover, .fc-calendar-nav a:focus-visible, .fc-calendar-nav a.is-current { color: var(--ikmf-ink); }
.fc-calendar-nav a.is-current::after { transform: scaleX(1); }
.fc-calendar-years { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem; padding: 1rem 0 .5rem; }
.fc-calendar-years span { color: var(--ikmf-muted); font-size: .85rem; font-weight: 600; margin-right: .25rem; }
.fc-calendar-years a { background: var(--ikmf-white); border: 1px solid var(--ikmf-line); border-radius: 999px; color: var(--ikmf-ink); font-size: .85rem; font-weight: 700; padding: .45rem .8rem; text-decoration: none; }
.fc-calendar-years a:hover, .fc-calendar-years a:focus-visible { border-color: var(--ikmf-accent); color: var(--ikmf-accent-dark); }
.fc-calendar-years a.is-current { background: var(--ikmf-ink); border-color: var(--ikmf-ink); color: var(--ikmf-white); }
.fc-calendar-empty { background: var(--ikmf-paper); border-left: 3px solid var(--ikmf-accent); margin: 1.5rem 0 0; padding: 1rem 1.25rem; }
.fc-calendar section { border-top: 1px solid var(--ikmf-line); display: grid; gap: 2rem; grid-template-columns: minmax(170px, .35fr) 1fr; padding: 2rem 0; }
.fc-calendar ol { list-style: none; margin: 0; padding: 0; }
.fc-calendar li { align-items: center; border-bottom: 1px solid var(--ikmf-line); display: grid; gap: 1.5rem; grid-template-columns: 100px 1fr; padding: 1.1rem 0; }
.fc-calendar li.has-image { grid-template-columns: 100px 112px minmax(0, 1fr); }
.fc-calendar__image { aspect-ratio: 7/5; border-radius: 4px; height: 80px; object-fit: cover; width: 112px; }
.fc-calendar li time strong { color: var(--ikmf-accent); font-family: Oswald, sans-serif; font-size: 2rem; margin-right: .35rem; }
.fc-calendar li a { display: block; font-size: 1.12rem; font-weight: 700; }
.fc-calendar li span { color: var(--ikmf-muted); display: block; }
.fc-calendar--archive li time strong { color: var(--ikmf-muted); }

.fc-honeypot { left: -10000px !important; position: absolute !important; top: auto !important; }
.fc-federation-form { display: grid; gap: 1rem; max-width: 760px; }
.fc-federation-form input[type="submit"] { background: var(--ikmf-accent); border: 0; color: var(--ikmf-white); cursor: pointer; font-weight: 700; padding: .9rem 1.4rem; }

.page .site-content > .ast-container,
.single-club .site-content > .ast-container,
.single-federation_event .site-content > .ast-container,
.single-post .site-content > .ast-container { max-width: none; padding: 0; }
.page #primary,
.single-club #primary,
.single-federation_event #primary,
.single-post #primary { margin: 0; min-width: 0; padding: 0; width: 100%; }
.fc-page-hero { background: linear-gradient(115deg, var(--ikmf-ink) 0%, var(--ikmf-ink) 72%, #24272c 100%); color: var(--ikmf-white); overflow: hidden; position: relative; width: 100%; }
.fc-page-hero h1, .fc-page-hero h1.elementor-heading-title { color: var(--ikmf-white) !important; line-height: 1.05; margin: 0; max-width: 980px; overflow-wrap: anywhere; }
.fc-page-hero__inner { margin: 0 auto; max-width: 1200px; width: 100%; }
.fc-page-hero__breadcrumb { color: #d7d9dc; margin: 0 0 1.5rem; }
.fc-page-hero__breadcrumb .ast-breadcrumbs-wrapper, .fc-page-hero__breadcrumb .ast-breadcrumbs-inner { background: transparent; margin: 0; padding: 0; }
.fc-page-hero__breadcrumb .ast-breadcrumbs, .fc-page-hero__breadcrumb .trail-items { color: inherit; }
.fc-page-hero__breadcrumb .trail-items li::after { content: "\203A"; }
.fc-page-hero__breadcrumb a { color: var(--ikmf-white); text-decoration: none; }
.fc-page-hero__breadcrumb a:hover, .fc-page-hero__breadcrumb a:focus-visible { color: var(--ikmf-accent); }
.fc-page-hero--detail .fc-page-hero__inner { padding: clamp(3rem, 8vw, 7rem) clamp(1.25rem, 5vw, 3.75rem); }
.fc-page-hero--detail h1 { font-size: clamp(2.8rem, 6vw, 5rem); }
.fc-page-hero__eyebrow { font-size: .875rem; font-weight: 700; letter-spacing: .08em; margin: 0 0 1rem; text-transform: uppercase; }
.fc-page-hero__meta { margin: 1rem 0 0; }
.fc-page-hero--compact { padding: 15px clamp(1.25rem, 3vw, 3rem) clamp(2.75rem, 6vw, 4.75rem); }
.fc-page-hero--compact::after { background: var(--ikmf-accent); bottom: 0; content: ""; height: 4px; left: 0; position: absolute; width: clamp(90px, 12vw, 180px); }
.fc-page-hero--compact .fc-page-hero__inner { position: relative; }
.fc-page-hero--compact .fc-page-hero__breadcrumb { margin-bottom: 1.5rem; }
.fc-page-hero--compact .fc-page-hero__breadcrumb::after { background: var(--ikmf-accent); content: ""; display: block; height: 3px; margin-top: 1.5rem; width: 44px; }
.fc-page-hero--compact .elementor-widget { position: relative; z-index: 1; }
.fc-page-hero--compact .elementor-widget-heading { padding-top: 1.1rem; }
.fc-page-hero--compact .elementor-widget-heading::before { background: var(--ikmf-accent); content: ""; height: 3px; left: 0; position: absolute; top: 0; width: 44px; }
.fc-page-hero--compact h1, .fc-page-hero--compact h1.elementor-heading-title { font-size: clamp(2.4rem, 5vw, 4.25rem); }
.fc-page-hero--compact .fc-page-hero__meta { color: #d7d9dc; font-size: clamp(1rem, 1.5vw, 1.18rem); max-width: 720px; }
.fc-page-hero--compact .elementor-widget-text-editor, .fc-page-hero--compact .elementor-widget-text-editor p { color: #d7d9dc !important; font-size: clamp(1rem, 1.5vw, 1.18rem); margin-bottom: 0; max-width: 720px; }
.fc-club-logo { background: var(--ikmf-white); border-radius: 8px; height: 84px; margin-bottom: 1rem; object-fit: contain; padding: .5rem; width: 84px; }
.single-club .fc-page-hero__inner:has(.fc-club-logo) { align-items: center; column-gap: clamp(1rem, 3vw, 2rem); display: grid; grid-template-columns: auto minmax(0, 1fr); }
.single-club .fc-page-hero__breadcrumb { grid-column: 1 / -1; }
.single-club .fc-page-hero__inner:has(.fc-club-logo) .fc-page-hero__meta { grid-column: 2; }
.single-club .fc-page-hero .fc-club-logo { margin: 0; }
.fc-single-content > article { min-width: 0; }
.fc-club-location { margin-top: 2rem; }
.fc-club-map { border-radius: var(--ikmf-radius); height: clamp(280px, 40vw, 420px); width: 100%; z-index: 0; }
.fc-club-rooms { margin-top: 2.5rem; }
.fc-club-rooms > h2 { margin-bottom: 1.5rem; }
.fc-room-list { display: grid; gap: 1rem; }
.fc-room-card { background: var(--ikmf-white); border: 1px solid #d8dde3; border-radius: var(--ikmf-radius); box-shadow: 0 4px 16px rgba(23, 25, 28, .04); padding: clamp(1.25rem, 3vw, 1.75rem); scroll-margin-top: 2rem; }
.fc-room-card:target { border-color: var(--ikmf-accent); }
.fc-room-card--accordion { overflow: hidden; padding: 0; }
.fc-room-card--accordion summary { align-items: center; cursor: pointer; display: grid; gap: .2rem 1rem; grid-template-columns: minmax(0, 1fr) auto 1.2rem; list-style: none; padding: clamp(1.1rem, 2.5vw, 1.5rem) clamp(1.25rem, 3vw, 1.75rem); }
.fc-room-card--accordion summary::-webkit-details-marker { display: none; }
.fc-room-card--accordion summary::after { color: var(--ikmf-accent); content: "+"; font-size: 1.5rem; font-weight: 400; grid-column: 3; grid-row: 1 / span 2; line-height: 1; text-align: center; }
.fc-room-card--accordion[open] summary { border-bottom: 1px solid var(--ikmf-line); }
.fc-room-card--accordion[open] summary::after { content: "−"; }
.fc-room-card__summary-title { font-family: Oswald, Impact, sans-serif; font-size: clamp(1.35rem, 2.3vw, 1.8rem); font-weight: 600; grid-column: 1 / 3; overflow-wrap: anywhere; }
.fc-room-card__summary-location { color: var(--ikmf-muted); font-size: .92rem; grid-column: 1 / 3; }
.fc-room-card__content { padding: clamp(1.25rem, 3vw, 1.75rem); }
.fc-room-card h3 { margin: 0 0 .5rem; }
.fc-room-card__address { align-items: center; display: flex; font-weight: 600; gap: .55rem; margin-bottom: .75rem; }
.fc-room-card__instructors { margin: 1rem 0 1.25rem; }
.fc-icon-link, .fc-detail-link { align-items: center; display: inline-flex; gap: .45rem; }
.fc-icon-link { color: var(--ikmf-accent); flex: 0 0 auto; }
.fc-icon-link:hover, .fc-icon-link:focus { color: var(--ikmf-accent-dark); }
.fc-icon-link svg { fill: currentColor; height: 1.2rem; width: 1.2rem; }
.fc-detail-link svg { fill: currentColor; flex: 0 0 auto; height: 1.05rem; width: 1.05rem; }
.fc-room-card__description { overflow-wrap: anywhere; }
.fc-room-card__description p:last-child { margin-bottom: 1rem; }
.fc-room-count { display: block; font-size: .8rem; font-weight: 600; margin-top: .4rem; }
.fc-details { align-self: start; }
.fc-club-location__link { font-size: .875rem; margin: .5rem 0 0; }
.fc-event-featured-image { margin: 0 0 2rem; }
.fc-event-featured-image__image { aspect-ratio: 16/9; border-radius: var(--ikmf-radius); display: block; object-fit: cover; width: 100%; }
.fc-single-content { display: grid; gap: 3rem; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .65fr); margin: 0 auto; max-width: 1200px; padding: 4rem 5vw; }
.fc-article-content { margin: 0 auto; max-width: 900px; padding: 4rem 5vw; }
.fc-article-featured-image { margin: 0 0 2.5rem; }
.fc-article-featured-image img { aspect-ratio: 16/9; border-radius: var(--ikmf-radius); display: block; object-fit: cover; width: 100%; }
.page:not(.elementor-page) .fc-page-body { margin: 0 auto; max-width: 1440px; padding: 4rem clamp(1.25rem, 3vw, 3rem); }
.single-post .post-navigation, .single-post .comments-area { margin-left: auto; margin-right: auto; max-width: 900px; padding-left: 5vw; padding-right: 5vw; }
.fc-details { background: var(--ikmf-paper); border-radius: var(--ikmf-radius); padding: 1.5rem; }
.fc-details dt { font-weight: 700; margin-top: 1rem; }
.fc-details dd { margin: .2rem 0 0; }
.fc-details .fc-event-registration { margin: 24px 0 0; }
.fc-socials { list-style: none; margin: .25rem 0 0; padding: 0; }
.fc-socials li + li { margin-top: .3rem; }

@media (max-width: 980px) {
  .fc-stats { grid-template-columns: repeat(2, 1fr); }
  .fc-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fc-filters { grid-template-columns: repeat(2, 1fr); }
  .fc-finder-layout { grid-template-columns: 1fr; }
  .fc-map { height: 440px; position: static; }
  .fc-single-content { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .fc-card-grid.fc-events { grid-template-columns: 1fr; }
  .fc-events-intro { align-items: stretch; flex-direction: column; margin-bottom: 1.5rem; }
  .fc-event-card .fc-event-card__button { width: 100%; }
  .ikmf-hero { background-position: 62% center; min-height: 650px; }
  .fc-page-hero--compact { padding: 15px 1.25rem 2.75rem; }
  .fc-stats, .fc-card-grid, .fc-club-results, .fc-filters { grid-template-columns: 1fr; }
  .fc-results-toolbar { align-items: flex-start; flex-direction: column; }
  .fc-pagination { justify-content: flex-start; }
  .fc-pagination--top { width: 100%; }
  .fc-pagination__button--direction { flex: 1; }
  .fc-map { height: 360px; }
  .fc-room-card--accordion summary { grid-template-columns: minmax(0, 1fr) 1.2rem; }
  .fc-room-card__summary-title, .fc-room-card__summary-location { grid-column: 1; }
  .fc-calendar section { grid-template-columns: 1fr; }
  .fc-calendar li { grid-template-columns: 78px 1fr; }
  .fc-calendar li.has-image { gap: .75rem; grid-template-columns: 78px 84px minmax(0, 1fr); }
  .fc-calendar__image { height: 60px; width: 84px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }
