/* Public template only; Joomla modal structure and administrator controls stay native. */
:root {
    --forest: #1b4d3e;
    --ink: #202b29;
    --text: #202b29;
    --muted: #52605a;
    --border: #dce3df;
    --accent: #edb83f;
    --accent-bright: #edb83f;
    --soft: #f3f6f4;
}
body.site { background: #fff; color: var(--ink); }
body.site:not(.utility-page) { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; }
body.site:not(.utility-page) > :is(.site-header, .top-modules, .bottom-modules, .site-footer) { flex-shrink: 0; }
body.site:not(.utility-page) > .site-main { flex: 1 0 auto; min-height: 0; }
body.site:not(.utility-page) > .site-footer { margin-top: auto; }
@media print {
    body.site:not(.utility-page) { display: block; min-height: 0; }
    body.site:not(.utility-page) > .site-main { flex: none; }
}
.site-header { position: sticky; top: 0; z-index: 100; background: #fff; border-bottom: 1px solid var(--border); box-shadow: none; }
@supports ((backdrop-filter: blur(8px)) or (-webkit-backdrop-filter: blur(8px))) {
    .site-header { background: rgba(255, 255, 255, .95); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
}
.site-header__inner { min-height: 88px; gap: 20px; grid-template-columns: 128px minmax(0, 1fr) auto; }
.site-logo { min-width: 0; }
.site-logo img { width: 98px; height: 76px; object-fit: contain; }
.header-user-logout { justify-self: end; margin: 0; }
.header-member-actions { display: flex; align-items: center; justify-self: end; gap: 8px; }
.header-member-dashboard { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; width: 44px; height: 46px; border: 1px solid #b6c9bc; border-radius: 6px; color: var(--forest); background: #fff; font-size: 1.2rem; }
.header-member-dashboard:is(:hover, :focus-visible) { background: #edf4ef; color: var(--forest); }
.header-member-dashboard:focus-visible { outline: 2px solid var(--forest); outline-offset: 3px; }
.header-member-dashboard .fas::before { font-family: inherit; font-weight: 900; }
.header-user-space { display: inline-flex; align-items: center; justify-content: center; justify-self: end; gap: 10px; min-height: 46px; padding: 10px 14px; border: 1px solid var(--forest); border-radius: 6px; background: var(--forest); color: #fff; font-size: .95rem; font-weight: 600; line-height: 1.4; text-decoration: none; }
button.header-user-space { cursor: pointer; }
.header-user-space:hover { background: #24644f; color: #fff; text-decoration: none; }
.header-user-space .fas::before { font-family: inherit; }
.site-navigation li:has(> a.menu-user-space) { display: none; }
.site-navigation a { color: var(--ink); }
.site-navigation > .mod-menu { flex-wrap: wrap; row-gap: 4px; }
.site-navigation ul ul :is(li.active > a, li.current > a, a[aria-current="page"], a[aria-current="location"])::before { display: none; }
.site-navigation ul ul :is(li.current > a, a[aria-current="page"], a[aria-current="location"]):not(.menu-membership, .menu-swarm) { background: #fff0c7; color: var(--forest); text-decoration: none; }
.site-navigation ul ul :is(li.current > a, a[aria-current="page"], a[aria-current="location"]):not(.menu-membership, .menu-swarm):hover { background: #f8e3a7; }
.site-navigation li > a.menu-membership { margin: 4px; border-color: #ce961d; background: #f4cb68; color: #202b29; }
.site-navigation li > a.menu-swarm { margin: 4px; border-color: #a7352b; background: #a7352b; color: #fff; }
.site-navigation li > a.menu-swarm:hover { background: #892b24; color: #fff; }
.header-swarm { display: none; }
.button { min-height: 48px; border-radius: 6px; box-shadow: none; font-weight: 600; letter-spacing: 0; }
.button:not(.button--outline):not(.button--light) { background: #f4cb68; border-color: #ce961d; color: #202b29; }
.button:not(.button--outline):not(.button--light):hover { background: #edbe4f; color: #202b29; transform: none; }
.button--outline { background: #fff; border-color: #fff; color: #202b29; }
.button--outline:hover { background: #f3f6f4; border-color: #f3f6f4; color: #202b29; }
.site a:focus-visible, .site button:focus-visible { outline: 3px solid #286345; outline-offset: 4px; }
.hero-slider a:focus-visible, .hero-slider button:focus-visible { outline-color: #fff; }
.site .iceq-consent { background: rgba(16, 30, 24, .55); }
.site .iceq-consent__panel { border-color: var(--border); color: var(--ink); }
.site .iceq-consent .modal-header { border-color: var(--border); background: var(--soft); }
.site .iceq-consent .modal-title { color: var(--forest); }
.site .iceq-consent .modal-footer, .site .iceq-consent__choices { border-color: var(--border); }
.site .iceq-consent a { color: var(--forest); text-decoration: underline; text-underline-offset: 3px; }
.site .iceq-consent a:hover { color: #24644f; }
.site .iceq-consent__choices input { accent-color: var(--forest); }
.site .iceq-consent button, .site .iceq-consent-manage { border-color: var(--forest); background: #fff; color: var(--forest); }
.site .iceq-consent button:hover, .site .iceq-consent-manage:hover { background: var(--soft); color: var(--forest); }
.site .iceq-consent button.is-primary { border-color: #8a641d; background: #f4cb68; color: var(--ink); }
.site .iceq-consent button.is-primary:hover { border-color: #785319; background: #edbe4f; color: var(--ink); }
.site .iceq-consent :is(a, button, input):focus-visible, .site .iceq-consent-manage:focus-visible { outline: 3px solid #286345; outline-offset: 2px; }
.back-to-top { position: fixed; z-index: 900; right: max(18px, env(safe-area-inset-right)); bottom: calc(80px + env(safe-area-inset-bottom)); display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 1px solid var(--forest); border-radius: 6px; background: var(--forest); color: #fff; font-size: 20px; line-height: 1; box-shadow: 0 4px 12px rgba(16, 36, 28, .14); cursor: pointer; transition: background-color .18s ease, transform .18s ease; }
.back-to-top[hidden] { display: none; }
.back-to-top .fas::before { font-family: inherit; }
.back-to-top:hover { background: #24644f; transform: translateY(-2px); }
body.menu-is-open .back-to-top, body:has(dialog[open], .modal.show, .iceq-consent:not([hidden])) .back-to-top { visibility: hidden; pointer-events: none; }
@media print { .back-to-top { display: none !important; } }
.is-home .section-container { width: min(calc(100% - 64px), 1200px); }
.is-home .home-intro.section-container { width: 100%; }
.is-home .hero-slider { height: min(580px, 68svh); min-height: 460px; background: #203a2e; }
.is-home .hero-slider::after { background: linear-gradient(90deg, rgba(16, 30, 24, .82), rgba(16, 30, 24, .55) 42%, rgba(16, 30, 24, .05) 78%); }
.hero-slide--fade, .hero-slide--zoom { opacity: 0; transform: none; transition: opacity .7s ease, transform .7s ease, visibility .7s; }
.hero-slide--zoom { transform: scale(1.03); }
.hero-slide--fade.is-active, .hero-slide--zoom.is-active { opacity: 1; transform: none; }
.hero-slide--fade:is(.is-leaving-left, .is-leaving-right) { opacity: 0; transform: none; }
.hero-slide--zoom:is(.is-leaving-left, .is-leaving-right) { opacity: 0; transform: scale(1.03); }
.is-home .hero-copy { left: max(32px, calc((100% - 1200px) / 2)); width: min(550px, 60%); }
.is-home .hero-copy h1 { font-size: 4rem; line-height: 1.08; font-weight: 600; }
.hero-copy__eyebrow { font-size: .82rem; color: #ffe1a0; }
.hero-copy__identity { max-width: 520px; font-size: 1.3rem; line-height: 1.4; margin-top: 18px; }
.is-home .hero-copy__lead { font-size: 1.05rem; line-height: 1.65; margin-top: 16px; }
.hero-copy__actions { gap: 12px; margin-top: 24px; }
.hero-slider .slider-button { z-index: 4; top: auto; bottom: 20px; width: 44px; height: 44px; border-radius: 6px; background: rgba(16, 30, 24, .7); transform: none; }
.slider-button__arrow { display: block; width: 24px; height: 24px; }
.hero-slider .slider-button--previous { left: auto; right: 76px; }
.hero-slider .slider-button--next { right: 24px; }
.hero-slider .slider-button--pause { right: 128px; font-size: 18px; opacity: 1; }
.slider-dots { bottom: 38px; pointer-events: none; }
.slider-dots button { pointer-events: auto; }
/* All captions share one grid row, so changing slides never shifts the page. */
.is-home .hero-slider.hero-slider--configured { --slide-min-height: max(460px, min(580px, 68svh)); height: auto; min-height: var(--slide-min-height); aspect-ratio: auto; }
.is-home .hero-slider--configured::after { display: none; }
.hero-slider--configured .hero-slider__track { position: relative; inset: auto; display: grid; grid-template-columns: minmax(0, 1fr); }
.hero-slider--configured .hero-slide { position: relative; inset: auto; grid-area: 1 / 1; min-width: 0; min-height: var(--slide-min-height); }
.hero-slider--configured .hero-slide__overlay { position: absolute; z-index: 1; inset: 0; pointer-events: none; opacity: var(--slide-overlay-effective, var(--slide-overlay, .65)); background: linear-gradient(var(--slide-direction, 90deg), rgba(var(--slide-shade, 245, 249, 243), .98), rgba(var(--slide-shade, 245, 249, 243), .76) 52%, rgba(var(--slide-shade, 245, 249, 243), .08)); }
.hero-slider--configured [data-text-color="light"] { --slide-overlay-effective: calc(var(--slide-overlay, .65) * .7); --slide-shade: 22, 37, 30; --slide-ink: #fff; --slide-accent: #ffe1a0; }
.hero-slider--configured [data-text-position="right"] { --slide-direction: 270deg; }
.hero-slider--configured [data-text-position="center"] .hero-slide__overlay { background: rgba(var(--slide-shade, 245, 249, 243), .98); }
.is-home .hero-slider--configured .hero-copy { position: relative; inset: auto; transform: none; display: flex; flex-direction: column; justify-content: center; width: min(600px, 60%); height: 100%; min-height: var(--slide-min-height); margin-left: max(32px, calc((100% - 1200px) / 2)); padding-block: 56px 100px; color: var(--slide-ink, #203029); text-align: left; text-shadow: none; }
.is-home .hero-slider--configured [data-text-position="center"] .hero-copy { margin-inline: auto; }
.is-home .hero-slider--configured [data-text-position="right"] .hero-copy { margin-left: auto; margin-right: max(32px, calc((100% - 1200px) / 2)); }
.is-home .hero-slider--configured [data-text-align="center"] .hero-copy { text-align: center; }
.is-home .hero-slider--configured [data-text-align="right"] .hero-copy { text-align: right; }
.is-home .hero-slider--configured .hero-copy h1 { margin: 0; color: inherit; font-size: 3rem; line-height: 1.15; overflow-wrap: anywhere; }
.hero-slider--configured .hero-copy h1 strong, .hero-slider--configured .hero-copy__eyebrow { color: var(--slide-accent, #1b4d3e); }
.hero-slider--configured .hero-copy__eyebrow { margin: 0 0 16px; overflow-wrap: anywhere; }
.is-home .hero-slider--configured .hero-copy__lead { max-width: none; margin: 18px 0 0; color: inherit; white-space: pre-line; overflow-wrap: anywhere; }
.hero-slider--configured [data-text-color="light"] .hero-copy { --copy-outer-gutter: max(32px, calc((100vw - 1200px) / 2)); isolation: isolate; }
.hero-slider--configured [data-text-color="light"] .hero-copy::before { position: absolute; z-index: -1; inset: 0 -64px 0 calc(-1 * var(--copy-outer-gutter)); background: linear-gradient(90deg, #101e18 calc(100% - 64px), transparent); opacity: clamp(0, calc(.7 - var(--slide-overlay, .65) * .315), .65); content: ""; pointer-events: none; }
.hero-slider--configured [data-text-color="light"][data-text-position="right"] .hero-copy::before { inset: 0 calc(-1 * var(--copy-outer-gutter)) 0 -64px; background: linear-gradient(270deg, #101e18 calc(100% - 64px), transparent); }
.hero-slider--configured [data-text-color="light"][data-text-position="center"] .hero-copy::before { inset-inline: -64px; background: linear-gradient(90deg, transparent, #101e18 64px, #101e18 calc(100% - 64px), transparent); }
.hero-slider--configured [data-text-color="light"] .hero-copy :is(h1, .hero-copy__eyebrow, .hero-copy__identity, .hero-copy__lead) { text-shadow: 0 2px 10px rgba(0, 0, 0, .45); }
.hero-slider--configured .hero-copy__actions { min-width: 0; }
.hero-slider--configured [data-text-align="center"] .hero-copy__actions { justify-content: center; }
.hero-slider--configured [data-text-align="right"] .hero-copy__actions { justify-content: flex-end; }
.hero-slider--configured .hero-copy__actions .button { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.hero-slider--configured [data-text-color="dark"] :is(a, button):focus-visible { outline-color: #1b4d3e; }
/* Separate media and caption layers without moving the shared layout row. */
.hero-slider--separate .hero-slide { z-index: auto; visibility: visible; opacity: 1; transform: none; transition: none; pointer-events: none; }
.hero-slider--separate .hero-slide img { animation: none; }
.hero-slider--separate .hero-slide__media { position: absolute; inset: 0; z-index: 0; overflow: hidden; visibility: hidden; opacity: 0; transform: none; transition: opacity .7s ease, transform .7s ease, visibility .7s; }
.hero-slider--separate .hero-slide--slide .hero-slide__media { opacity: 1; transform: translateX(100%); }
.hero-slider--separate .hero-slide--slide.is-entering-right .hero-slide__media { transform: translateX(-100%); }
.hero-slider--separate .hero-slide--zoom .hero-slide__media { transform: scale(1.03); }
.hero-slider--separate .hero-slide:is(.is-active, .is-leaving-left, .is-leaving-right) .hero-slide__media { visibility: visible; }
.hero-slider--separate .hero-slide.is-active .hero-slide__media { opacity: 1; transform: none; }
.hero-slider--separate .hero-slide--slide.is-leaving-left .hero-slide__media { transform: translateX(-100%); }
.hero-slider--separate .hero-slide--slide.is-leaving-right .hero-slide__media { transform: translateX(100%); }
.hero-slider--separate .hero-slide--none .hero-slide__media { transition: none; }
.hero-slider--separate .hero-slide--none:not(.is-active) .hero-slide__media { visibility: hidden; }
.is-home .hero-slider--separate .hero-copy { z-index: 2; visibility: hidden; opacity: 0; transform: none; transition: opacity .45s ease, transform .45s ease, visibility .45s; pointer-events: none; }
.hero-slider--separate .hero-slide__overlay { visibility: hidden; opacity: 0; transition: opacity .45s ease, visibility .45s; }
.hero-slider--separate .hero-slide:is(.is-active, .is-leaving-left, .is-leaving-right) :is(.hero-copy, .hero-slide__overlay) { visibility: visible; }
.hero-slider--separate .hero-slide.is-active .hero-slide__overlay { opacity: var(--slide-overlay-effective, var(--slide-overlay, .65)); }
.is-home .hero-slider--separate .hero-slide.is-active .hero-copy { z-index: 3; opacity: 1; transform: none; pointer-events: auto; }
.is-home .hero-slider--separate[data-content-transition="reveal"] .hero-slide:not(.is-active) .hero-copy { transform: translateY(12px); }
.is-home .hero-slider--separate[data-content-transition="slide"] .hero-slide:not(.is-active) .hero-copy { transform: translateX(100%); }
.is-home .hero-slider--separate[data-content-transition="slide"] .hero-slide:is(.is-entering-right, .is-leaving-left):not(.is-active) .hero-copy { transform: translateX(-100%); }
.is-home .hero-slider--separate[data-content-transition="none"] :is(.hero-copy, .hero-slide__overlay) { transition: none; }
.hero-slider--separate[data-content-transition="none"] .hero-slide:not(.is-active) :is(.hero-copy, .hero-slide__overlay) { visibility: hidden; }
.hero-slider--separate .hero-slide.is-preparing .hero-slide__media,
.is-home .hero-slider--separate .hero-slide.is-preparing .hero-copy { transition: none; }
@media (prefers-reduced-motion: reduce) {
    .hero-slider--separate .hero-slide__media,
    .is-home .hero-slider--separate .hero-copy,
    .hero-slider--separate .hero-slide__overlay { transition: none; }
}
@media (max-width: 899px) {
    .is-home .hero-slider.hero-slider--configured { --slide-min-height: max(430px, min(580px, calc(100svh - 158px))); }
    .is-home .hero-slider--configured .hero-copy,
    .is-home .hero-slider--configured [data-text-position] .hero-copy { width: calc(100% - 48px); margin-inline: 24px; padding-block: 40px 88px; }
    .hero-slider--configured .hero-slide__overlay { background: rgba(var(--slide-shade, 245, 249, 243), .98); }
    .hero-slider--configured [data-text-color="light"][data-text-position] .hero-copy::before { inset-inline: -24px; background: #101e18; }
    .is-home .hero-slider--configured .hero-copy h1 { font-size: 2.5rem; }
}
@media (max-width: 599px) {
    .is-home .hero-slider--configured .hero-copy,
    .is-home .hero-slider--configured [data-text-position] .hero-copy { width: calc(100% - 40px); margin-inline: 20px; padding-block: 32px 80px; }
    .is-home .hero-slider--configured .hero-copy h1 { font-size: 2rem; }
}
.home-highlights { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 20px; padding-block: 24px; border-bottom: 0; }
.home-highlights > .home-highlight { position: relative; display: grid; grid-template-rows: 32px auto 1fr; align-content: start; gap: 12px; padding: 22px 24px; border: 1px solid var(--border); border-radius: 8px; background: #f8faf9; color: var(--ink); text-decoration: none; transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease; }
.home-highlights strong { padding-right: 24px; color: var(--forest); font-size: 1.2rem; line-height: 1.35; overflow-wrap: anywhere; }
.home-highlights .home-highlight__copy { color: var(--muted); font-size: .95rem; line-height: 1.6; }
.home-highlights .home-highlight__icon { width: 32px; height: 32px; color: #8a641d; font-size: 28px; line-height: 32px; }
.home-highlights :is(.fas)::before, .home-testimonial__icon::before, .swarm-callout .fas::before { font-family: inherit; }
.home-highlights .home-highlight__arrow { position: absolute; top: 68px; right: 24px; color: var(--forest); font-size: .85rem; }
.home-highlights > .home-highlight--agenda .home-highlight__icon { color: var(--forest); }
.home-highlights > .home-highlight--swarm { border-color: #ead5cf; background: #fbf0ec; }
.home-highlights > .home-highlight--swarm :is(strong, .home-highlight__icon, .home-highlight__arrow) { color: #a7352b; }
.home-highlights a:hover strong { text-decoration: none; }
.is-home .home-welcome { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: center; padding: 64px 0; text-align: left; }
.home-welcome__photo { margin: 0; width: 100%; }
.home-welcome__photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
.home-welcome__content { width: 100%; }
.section-kicker, .callout-kicker { color: #695015; font-size: .8rem; font-weight: 600; line-height: 1.5; letter-spacing: 0; }
.is-home .home-welcome h2 { color: var(--forest); font-size: 2rem; line-height: 1.18; }
.home-welcome__content > p:not(.section-kicker) { margin: 20px 0; color: var(--muted); font-size: 1.05rem; line-height: 1.75; }
.text-link, .article-card__link { color: #785319; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.home-figures { padding-block: 8px 44px; }
.home-figures dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 24px; margin: 0; }
.home-figures dl > div { display: flex; flex-direction: column-reverse; gap: 6px; min-width: 0; padding-left: 20px; border-left: 1px solid var(--border); }
.home-figures dt { color: var(--muted); font-size: 1rem; line-height: 1.5; overflow-wrap: anywhere; }
.home-figures dd { margin: 0; color: #8a641d; font-size: 2.5rem; font-weight: 700; line-height: 1.15; overflow-wrap: anywhere; }
.home-membership { position: relative; isolation: isolate; background: #f2f6f3; color: var(--ink); border-block: 1px solid var(--border); }
.home-membership::before, .site-footer::before { position: absolute; z-index: 0; inset: 0; background: url("../images/honeycomb.svg") repeat; background-size: 156px 90px; opacity: .12; content: ""; pointer-events: none; }
.home-membership::before { opacity: .14; }
.home-membership__inner { position: relative; z-index: 1; padding-block: 32px; }
.home-membership .section-kicker { color: #695015; }
.home-membership h2 { color: var(--forest); font-size: 1.75rem; }
.home-membership p:last-child { color: var(--muted); }
.home-testimonial { position: relative; isolation: isolate; padding-block: 44px 0; }
.home-testimonial__icon { position: absolute; z-index: 0; top: 28px; right: 12px; color: #8a641d; font-size: 100px; line-height: 1; opacity: .12; pointer-events: none; }
.home-testimonial figure { position: relative; z-index: 1; padding-right: 128px; }
.home-testimonial figure, .home-testimonial blockquote { margin: 0; }
.home-testimonial blockquote p { max-width: 850px; margin: 0; color: var(--forest); font-size: 1.3rem; font-style: italic; line-height: 1.65; overflow-wrap: anywhere; }
.home-testimonial figcaption { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 16px; color: var(--muted); overflow-wrap: anywhere; }
.is-home .home-events { margin-top: 0; padding: 60px 0; background: transparent; box-shadow: none; clip-path: none; }
.home-events::after, .section-title::before, .article-card::before { display: none; }
.is-home .section-title { color: var(--forest); font-size: 2rem; line-height: 1.2; margin-bottom: 28px; }
.section-title::after { height: 1px; background: #cdd8d1; opacity: 1; }
.home-events__heading { margin-bottom: 28px; }
.home-events__heading .section-title { margin-bottom: 0; }
.home-event-card { border-color: var(--border); border-radius: 6px; box-shadow: none; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.home-event-card:hover { box-shadow: none; transform: none; }
.home-event-card__media { aspect-ratio: 16 / 10; height: auto; background: #f3f6f4; }
.home-event-card__media img { object-fit: contain; }
.home-event-card__date { background: #fff; color: var(--forest); border: 1px solid var(--border); box-shadow: none; border-radius: 4px; }
.home-event-card__date strong, .home-event-card__date span, .home-event-card__date small { color: var(--forest); }
.home-event-card__body h3 { font-size: 1.2rem; line-height: 1.35; }
.home-event-card__body > p, .home-event-card__meta { color: var(--muted); }
.home-agenda__layout { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 28px; align-items: start; }
.home-agenda__layout--without-calendar { grid-template-columns: minmax(0, 1fr); }
.home-events .home-agenda__layout.home-mini-calendar--compact { grid-template-columns: 340px minmax(0, 1fr); gap: 24px 28px; margin-bottom: 0; }
.home-agenda__layout.home-mini-calendar--compact > .home-agenda__calendar { grid-column: 1; grid-row: 1; }
.home-agenda__layout.home-mini-calendar--compact > .home-agenda__upcoming { grid-column: 2; grid-row: 1; }
.home-agenda__layout.home-mini-calendar--compact > .home-mini-calendar__selection { grid-column: 1 / -1; grid-row: 2; }
.home-agenda__calendar, .home-agenda__upcoming { min-width: 0; }
.home-agenda__subtitle { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; color: var(--forest); font-size: 1.15rem; font-weight: 600; line-height: 1.4; }
.home-agenda__subtitle > .fas { color: #8a641d; font-size: 1rem; }
.home-agenda__upcoming > .home-agenda__subtitle { margin-bottom: 14px; font-size: 1.15rem; }
.home-events .fas::before { font-family: inherit; }
.home-events .home-agenda__upcoming-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 16px; align-items: stretch; }
.home-events .home-agenda__upcoming-grid[data-event-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.home-events .home-agenda__upcoming-grid[data-event-count="1"] { grid-template-columns: minmax(0, 1fr); }
.home-events .home-event-card { position: relative; display: flex; flex-direction: column; text-align: left; }
.home-events .home-event-card__body { flex: 1; min-width: 0; min-height: 0; padding: 18px; }
.home-events .home-event-card__dateline { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.home-events .home-event-card__date { position: static; flex: 0 0 54px; width: 54px; min-height: 60px; gap: 3px; background: #f8edcf; border-color: #efdeb3; }
.home-events .home-event-card__date strong { font-size: 1.4rem; }
.home-events .home-event-card__date span { font-size: .7rem; }
.home-events .home-event-card__labels { min-width: 0; }
.home-events .home-event-card__category { margin: 0; color: var(--muted); font-size: .7rem; line-height: 1.5; overflow-wrap: anywhere; }
.home-events .home-event-card__category::before { display: none; }
.home-event-card__status { display: inline-block; margin-top: 4px; color: #52605a; font-size: .75rem; line-height: 1.4; }
.home-event-card__status--cancelled { color: #a7352b; }
.home-events .home-event-card h4 { margin: 0 0 10px; color: var(--forest); font-size: 1.05rem; font-weight: 600; line-height: 1.45; }
.home-events .home-event-card h4 a { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; color: inherit; overflow-wrap: anywhere; }
.home-events .home-event-card__intro { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; margin: 0 0 16px; font-size: .9rem; line-height: 1.65; }
.home-events .home-event-card__meta { gap: 8px; padding-top: 12px; font-size: .8rem; line-height: 1.5; }
.home-events .home-event-card__meta > span { display: flex; align-items: baseline; gap: 7px; min-width: 0; overflow-wrap: anywhere; }
.home-events .home-event-card__meta > span:last-child::before { content: none; }
.home-events .home-event-card__meta .fas { flex: 0 0 auto; color: #8a641d; }
.home-event-card__link { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; margin-top: 12px; color: var(--forest); font-size: .85rem; font-weight: 600; }
.home-events .home-agenda__upcoming-grid .home-event-card__media { height: 140px; aspect-ratio: 16 / 9; background: #fff; }
.home-events .home-agenda__upcoming-grid .home-event-card__body { display: grid; grid-template-columns: 50px minmax(0, 1fr); gap: 0 12px; padding: 16px; }
.home-events .home-agenda__upcoming-grid .home-event-card__dateline { grid-column: 1; grid-row: 1 / 3; flex-direction: column; align-items: start; align-self: start; margin-bottom: 0; }
.home-events .home-agenda__upcoming-grid .home-event-card__date { width: 50px; flex-basis: 50px; }
.home-events .home-agenda__upcoming-grid :is(.home-event-card__category, h4, .home-event-card__intro, .home-event-card__meta, .home-event-card__link) { grid-column: 2; }
.home-events .home-agenda__upcoming-grid :is(.home-event-card__meta, .home-event-card__link) { grid-column: 1 / -1; }
.home-events .home-agenda__upcoming-grid .home-event-card__intro { -webkit-line-clamp: 2; margin-bottom: 8px; }
.home-events .home-agenda__upcoming-grid .home-event-card__meta { padding-top: 8px; }
.home-events .home-agenda__upcoming-grid .home-event-card__link { margin-top: 4px; }
.home-events .home-agenda__upcoming-grid .home-event-card__media.card-media--contain picture { padding: 10px; }
.home-events .home-agenda__upcoming-grid .home-event-card__media.card-media--contain img { border: 0; box-shadow: none; }
.home-events .home-agenda__upcoming-grid[data-event-count="1"] .home-event-card { display: grid; grid-template-columns: minmax(160px, 30%) minmax(0, 1fr); min-height: 0; }
.home-events .home-agenda__upcoming-grid[data-event-count="1"] .home-event-card__media { align-self: stretch; min-height: 180px; height: auto; aspect-ratio: auto; background: #fff; }
.home-events .home-agenda__upcoming-grid[data-event-count="1"] .home-event-card__media picture { position: absolute; inset: 0; }
.home-events .home-agenda__upcoming-grid[data-event-count="1"] .home-event-card__body { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 0 14px; padding: 16px; }
.home-events .home-agenda__upcoming-grid[data-event-count="1"] .home-event-card__dateline { grid-column: 1; grid-row: 1 / 6; align-self: start; flex-direction: column; align-items: start; margin-bottom: 0; }
.home-events .home-agenda__upcoming-grid[data-event-count="1"] :is(.home-event-card__category, h4, .home-event-card__intro, .home-event-card__meta, .home-event-card__link) { grid-column: 2; }
.home-events .home-agenda__upcoming-grid[data-event-count="1"] .home-event-card h4 { margin-bottom: 8px; font-size: 1.15rem; }
.home-events .home-agenda__upcoming-grid[data-event-count="1"] .home-event-card__intro { -webkit-line-clamp: 2; margin-bottom: 8px; }
.home-events .home-agenda__upcoming-grid[data-event-count="1"] .home-event-card__meta { padding-top: 8px; }
.home-events .home-agenda__upcoming-grid[data-event-count="1"] .home-event-card__link { margin-top: 4px; }
.home-agenda__past { margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--border); }
.home-agenda__past-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.home-events .home-event-card--past { display: grid; grid-template-columns: 160px minmax(0, 1fr) 20px; align-items: center; gap: 24px; padding: 16px; }
.home-events .home-event-card--past .home-event-card__media { height: 116px; aspect-ratio: auto; border-radius: 4px; }
.home-events .home-event-card--past .home-event-card__media.card-media--contain picture { padding: 8px; }
.home-events .home-event-card--past .home-event-card__body { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 0 20px; padding: 0; }
.home-event-card--past .home-event-card__dateline { grid-column: 1; grid-row: 1 / 5; flex-direction: column; align-items: flex-start; margin-bottom: 0; gap: 4px; }
.home-events .home-event-card--past .home-event-card__date { flex-basis: auto; background: #f3f6f4; border-color: var(--border); }
.home-event-card--past :is(.home-event-card__category, h4, .home-event-card__intro, .home-event-card__meta) { grid-column: 2; }
.home-events .home-event-card--past h4 { margin-bottom: 6px; font-size: 1.05rem; }
.home-events .home-event-card--past .home-event-card__intro { -webkit-line-clamp: 1; margin-bottom: 8px; }
.home-events .home-event-card--past .home-event-card__meta { margin-top: 0; padding-top: 0; border-top: 0; }
.home-event-card__arrow { color: var(--forest); font-size: .85rem; }
@media (min-width: 1100px) {
    .home-agenda__layout.home-mini-calendar--compact .home-agenda__upcoming-grid[data-event-count="3"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-agenda__layout.home-mini-calendar--compact .home-agenda__upcoming-grid[data-event-count="3"] > .home-event-card:last-child { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(160px, 30%) minmax(0, 1fr); min-height: 0; }
    .home-agenda__layout.home-mini-calendar--compact .home-agenda__upcoming-grid[data-event-count="3"] > .home-event-card:last-child .home-event-card__media { align-self: stretch; min-height: 180px; height: auto; aspect-ratio: auto; }
    .home-agenda__layout.home-mini-calendar--compact .home-agenda__upcoming-grid[data-event-count="3"] > .home-event-card:last-child .home-event-card__media picture { position: absolute; inset: 0; }
    .home-agenda__layout.home-mini-calendar--compact .home-agenda__upcoming-grid[data-event-count="3"] > .home-event-card:last-child .home-event-card__dateline { grid-row: 1 / 6; }
    .home-agenda__layout.home-mini-calendar--compact .home-agenda__upcoming-grid[data-event-count="3"] > .home-event-card:last-child :is(.home-event-card__meta, .home-event-card__link) { grid-column: 2; }
}
@media (max-width: 1099px) {
    .home-agenda__layout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .home-events .home-agenda__layout.home-mini-calendar--compact { grid-template-columns: minmax(0, 1fr); }
    .home-agenda__layout.home-mini-calendar--compact > .home-agenda__upcoming { grid-column: 1; grid-row: 2; }
    .home-agenda__layout.home-mini-calendar--compact > .home-mini-calendar__selection { grid-row: 3; }
    .home-agenda__calendar { width: min(100%, 380px); }
}
@media (max-width: 699px) {
    .home-events .home-agenda__upcoming-grid, .home-events .home-agenda__upcoming-grid[data-event-count="2"] { grid-template-columns: minmax(0, 1fr); }
    .home-events .home-agenda__upcoming-grid[data-event-count="1"] .home-event-card { grid-template-columns: 96px minmax(0, 1fr); }
    .home-events .home-agenda__upcoming-grid[data-event-count="1"] .home-event-card__body { grid-template-columns: 40px minmax(0, 1fr); column-gap: 10px; padding: 12px; }
    .home-events .home-agenda__upcoming-grid[data-event-count="1"] .home-event-card__dateline { grid-row: 1 / 3; }
    .home-events .home-agenda__upcoming-grid[data-event-count="1"] .home-event-card__date { width: 40px; flex-basis: 40px; }
    .home-events .home-agenda__upcoming-grid[data-event-count="1"] :is(.home-event-card__intro, .home-event-card__meta, .home-event-card__link) { grid-column: 1 / -1; }
    .home-events .home-agenda__upcoming-grid[data-event-count="1"] .home-event-card h4 { font-size: 1rem; }
    .home-events .home-event-card--past { grid-template-columns: 80px minmax(0, 1fr); align-items: start; gap: 14px; padding: 12px; }
    .home-events .home-event-card--past .home-event-card__media { height: 96px; }
    .home-events .home-event-card--past .home-event-card__body { grid-template-columns: minmax(0, 1fr); }
    .home-events .home-event-card--past .home-event-card__dateline { grid-row: auto; flex-direction: row; flex-wrap: wrap; align-items: baseline; margin-bottom: 6px; }
    .home-events .home-event-card--past .home-event-card__date { display: flex; width: auto; min-height: 0; gap: 5px; padding: 0; border: 0; background: transparent; }
    .home-events .home-event-card--past .home-event-card__date strong { font-size: .85rem; }
    .home-events .home-event-card--past .home-event-card__date :is(span, small) { font-size: .75rem; }
    .home-event-card--past :is(.home-event-card__category, h4, .home-event-card__intro, .home-event-card__meta) { grid-column: 1; }
    .home-event-card--past .home-event-card__intro, .home-events .home-event-card__arrow { display: none; }
    .home-events .home-event-card--past h4 { font-size: .95rem; }
    .home-events .home-event-card--past .home-event-card__meta { font-size: .75rem; }
}
.home-events .home-agenda__layout.home-mini-calendar--compact:has([data-mini-tool][hidden]) { grid-template-columns: minmax(0, 1fr); }
.home-agenda__layout.home-mini-calendar--compact:has([data-mini-tool][hidden]) > .home-agenda__calendar { grid-column: 1; grid-row: 1; width: 100%; }
.home-agenda__layout.home-mini-calendar--compact:has([data-mini-tool][hidden]) > .home-agenda__upcoming { grid-column: 1; grid-row: 2; }
.home-agenda__layout.home-mini-calendar--compact:has([data-mini-tool][hidden]) > .home-mini-calendar__selection { grid-row: 3; }
.is-home .home-news { padding: 0 0 60px; }
.home-news__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 16px 32px; flex-wrap: wrap; margin-bottom: 28px; }
.home-news__heading > div { min-width: 0; max-width: 100%; }
.home-news__heading .section-title { margin-bottom: 0; }
.home-news__heading .section-title::after { display: none; }
.article-grid { gap: 28px; counter-reset: none; }
.article-card { border: 1px solid var(--border); border-radius: 6px; box-shadow: none; counter-increment: none; background: #fff; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.article-card:hover { border-color: #a9bdb1; box-shadow: none; transform: none; }
.article-card__media { aspect-ratio: 16 / 10; background: #f3f6f4; }
.article-card__media img { height: 100%; width: 100%; object-fit: contain; }
.article-card__media picture, .home-event-card__media picture, .home-welcome__photo picture { display: block; width: 100%; height: 100%; }
.article-card__media img.card-image--cover, .home-event-card__media img.card-image--cover { object-fit: cover; }
.card-media--contain { background: #f3f5f4; }
:is(.article-card__media, .home-event-card__media).card-media--contain picture { display: flex; align-items: center; justify-content: center; padding: 16px; }
:is(.article-card__media, .home-event-card__media).card-media--contain img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; border: 1px solid #dde3df; box-shadow: 0 2px 6px rgba(32, 43, 41, .08); }
.article-card--text { border-top: 3px solid #a9bdb1; }
.home-event-card__category::before { display: inline-block; width: 9px; height: 10px; margin-right: 7px; background: #c58b23; clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); content: ""; }
.article-card:hover .article-card__media img { transform: none; }
.home-event-card:hover .home-event-card__media img { transform: none; }
.article-card__media, .home-event-card__media { overflow: hidden; }
:is(.article-card__media, .home-event-card__media) img { transition: transform .35s ease; }
@media (hover: hover) and (pointer: fine) {
    .home-highlight:hover, .article-card:hover, .home-event-card:hover { transform: translateY(-4px); border-color: #8da99a; box-shadow: 0 12px 24px -6px rgba(27, 77, 62, .08); }
    .article-card:hover .article-card__media img.card-image--cover, .home-event-card:hover .home-event-card__media img.card-image--cover { transform: scale(1.03); }
}
.home-highlight:focus-visible, .article-card:focus-within, .home-event-card:focus-within { border-color: #8da99a; }
.article-card__placeholder { background: #e9efeb; }
.article-card__body { display: flex; flex-direction: column; align-items: flex-start; min-height: 226px; padding: 22px; text-align: left; }
.article-card__meta { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; width: 100%; margin-bottom: 14px; }
.article-card__meta:not(:has(.article-card__category)) { justify-content: flex-end; }
.article-card__category { color: var(--forest); background: #edf4ef; padding: 3px 8px; border-radius: 3px; font-size: .75rem; font-weight: 600; overflow-wrap: anywhere; }
.article-card time { color: #52605a; margin: 0; font-size: .78rem; white-space: nowrap; }
.article-card h3 { width: 100%; min-height: 2.8em; margin: 0 0 12px; font-size: 1.25rem; line-height: 1.4; text-wrap: pretty; }
.article-card h3 a, .home-event-card__body h3 a { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; overflow-wrap: anywhere; }
.article-card p { color: var(--muted); font-size: .95rem; line-height: 1.65; }
.article-card__link { margin-top: auto; padding-top: 18px; }
.home-callouts { display: block; padding: 0 0 52px; }
.join-callout { display: none; }
.swarm-callout { min-height: 0; justify-content: flex-start; padding: 40px 0 0; border: 0; border-top: 1px solid var(--border); border-radius: 0; background: transparent; box-shadow: none; }
.swarm-callout::before, .swarm-callout::after { display: none; }
.swarm-callout .callout-content { display: grid; width: 100%; grid-template-columns: minmax(0, 1fr); gap: 12px; align-items: start; }
.swarm-callout .callout-kicker { grid-column: 1; color: #a7352b; margin: 0; }
.swarm-callout .callout-title { grid-column: 1; margin: 0; font-size: 1.75rem; line-height: 1.3; color: var(--forest); }
.swarm-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin: 16px 0 12px; padding: 0; list-style: none; }
.swarm-steps li { display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: start; gap: 14px; min-width: 0; }
.swarm-steps__number { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #fbede7; color: #a7352b; font-size: .95rem; font-weight: 600; }
.swarm-steps h3 { margin: 2px 0 8px; color: var(--forest); font-size: 1.1rem; line-height: 1.4; }
.swarm-steps p { margin: 0; color: var(--muted); font-size: .95rem; line-height: 1.65; }
.swarm-callout .button:not(.button--outline):not(.button--light) { justify-self: start; gap: 12px; max-width: 100%; min-height: 48px; height: auto; margin: 0; padding: 12px 18px; border-color: #a7352b; background: #a7352b; color: #fff; font-size: 1rem; line-height: 1.4; text-align: left; }
.swarm-callout .button .fas { flex-shrink: 0; }
.swarm-callout:hover { transform: none; }
.swarm-callout .button:not(.button--outline):not(.button--light):hover { background: #892b24; color: #fff; }
.site-footer { isolation: isolate; background: #f2f6f3; border-top: 3px solid #1b4d3e; color: var(--ink); }
.site-footer__inner { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; gap: 24px 32px; padding: 32px 0 14px; }
.site-footer__inner > div { min-width: 0; }
.footer-brand { align-items: flex-start; gap: 16px; }
.footer-brand img { display: block; width: 76px; height: 66px; }
.footer-brand__name { display: block; margin: 0 0 6px; color: var(--forest); font-size: 1.1rem; line-height: 1.4; overflow-wrap: anywhere; }
.footer-brand p { color: #394c42; font-size: .9rem; line-height: 1.65; overflow-wrap: anywhere; }
.site-footer h2 { margin: 0 0 12px; color: var(--forest); font-size: 1rem; font-weight: 600; line-height: 1.5; }
.footer-location address { margin: 4px 0 0; color: #394c42; font-size: .9rem; font-style: normal; line-height: 1.65; overflow-wrap: anywhere; }
.site-footer .footer-link, .site-footer .footer-email { display: flex; align-items: baseline; gap: 10px; min-height: 40px; max-width: 100%; color: #28533f; font-size: .9rem; line-height: 1.5; overflow-wrap: anywhere; }
.footer-link { padding-block: 8px; }
.footer-email { padding-top: 8px; }
.footer-email joomla-hidden-mail { min-width: 0; }
.footer-email a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.site-footer .footer-link:hover, .footer-menu a:hover { color: #785319; text-decoration: underline; }
.site-footer :is(.fas, .fab) { flex: 0 0 auto; }
.site-footer :is(.fas, .fab)::before { font-family: inherit; }
.footer-social { justify-self: stretch; margin-top: 0; text-align: left; }
.site-footer .footer-social .button--membership { display: inline-flex; gap: 10px; width: 100%; margin: 0 0 8px; padding: 10px 14px; font-size: .95rem; }
.site-footer .social-link { display: inline-flex; align-items: center; justify-content: flex-start; gap: 10px; width: auto; height: auto; min-height: 44px; margin: 0; padding: 8px 0; border: 0; border-radius: 0; background: transparent; color: var(--forest); font: inherit; font-size: .95rem; box-shadow: none; }
.site-footer .social-link:hover { color: #785319; transform: none; text-decoration: underline; }
.footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 24px; grid-column: 1 / -1; padding-top: 12px; border-top: 0; }
.site-footer .copyright { grid-column: auto; margin: 0; padding: 0; border: 0; color: #52605a; font-size: .82rem; text-align: left; }
.footer-menu .mod-menu { display: flex; flex-wrap: wrap; gap: 0 20px; margin: 0; padding: 0; }
.footer-menu a { display: inline-flex; align-items: center; min-height: 44px; color: #394c42; font-size: .85rem; }
.footer-menu ul { list-style: none; }
@media (max-width: 1359px) {
    .site-footer .iceq-consent-manage { position: static; margin: 8px 0 0; }
}
@media (min-width: 1360px) {
    body:has(.iceq-consent-manage:not([hidden])) .footer-bottom { padding-left: 160px; }
}
@media (min-width: 900px) {
    .site-footer__inner:not(:has(.footer-location)), .site-footer__inner:not(:has(.footer-contact)) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.interior-hero, .page-section-association .interior-hero { min-height: 220px; padding: 40px 230px 40px 0; background: #f3f6f4; box-shadow: 0 0 0 100vmax #f3f6f4; }
.interior-hero__art, .page-section-association .interior-hero__art { width: 220px; height: 160px; right: 0; left: auto; bottom: 0; opacity: .4; background-position: right bottom; }
.interior-hero .page-header h1, .interior-hero .page-header h2 { font-size: 2.5rem; line-height: 1.15; color: var(--forest); overflow-wrap: anywhere; }
.interior-hero .article-info { color: #52605a; }
.page-section-association .item-page img, .page-section-activities .item-page img, .page-section-library .item-page img { box-shadow: none; }
.page-section-library .blog > .page-header::after { display: none; }
.page-section-library .blog > .page-header { background: #f3f6f4; border-radius: 0; border-top: 0; padding: 28px 0; }
@media (min-width: 900px) and (max-width: 1199px) {
    .site-header__inner { width: calc(100% - 32px); grid-template-columns: 84px minmax(0, 1fr) auto; gap: 12px; }
    .site-header .social-link { display: none; }
    .site-logo img { width: 80px; }
    .site-navigation .mod-menu > li > a, .site-navigation .mod-menu > li > .nav-header { padding-inline: 8px; font-size: .88rem; }
    .site-navigation li > a.menu-membership, .site-navigation li > a.menu-swarm { padding-inline: 10px; }
}
@media (max-width: 899px) {
    .site-header__inner { width: calc(100% - 32px); min-height: 76px; grid-template-columns: minmax(0, 1fr) auto 44px 44px; gap: 8px; }
    .site-logo img { width: 76px; max-width: 100%; height: 62px; }
    .header-user-logout { grid-column: 4; grid-row: 1; }
    .header-member-actions { grid-column: 4; grid-row: 1; gap: 4px; }
    .site-header__inner:has(.header-member-actions) { grid-template-columns: minmax(0, 1fr) auto 44px 92px; gap: 4px; }
    .site-header__inner:has(.header-member-actions) .header-swarm { max-width: 100px; padding-inline: 6px; font-size: .8rem; }
    .header-user-space { grid-column: 4; grid-row: 1; width: 44px; height: 44px; min-height: 44px; padding: 0; font-size: 1.15rem; }
    .header-user-space__label { display: none; }
    .header-swarm { display: inline-flex; align-items: center; justify-content: center; max-width: min(170px, calc(100vw - 176px)); min-height: 44px; padding: 8px 14px; border: 1px solid #a7352b; border-radius: 6px; background: #a7352b; color: #fff; font-size: .9rem; font-weight: 600; overflow-wrap: anywhere; white-space: normal; text-align: center; }
    .header-swarm:hover { background: #892b24; color: #fff; text-decoration: none; }
    .menu-toggle { grid-column: 3; width: 44px; height: 44px; }
    .site-navigation { position: absolute; top: 100%; bottom: auto; height: calc(100vh - var(--header-height, 76px)); height: calc(100dvh - var(--header-height, 76px)); background: #fff; overscroll-behavior: contain; }
    .is-home .section-container { width: calc(100% - 40px); }
    .is-home .home-intro.section-container { width: 100%; }
    .is-home .hero-slider { height: min(580px, calc(100svh - 158px)); min-height: 430px; }
    .is-home .hero-slider::after { background: rgba(16, 30, 24, .66); }
    .is-home .hero-copy { left: 24px; right: 24px; width: auto; }
    .is-home .hero-copy h1 { font-size: 3rem; }
    .hero-copy__identity { font-size: 1.1rem; }
    .is-home .hero-copy__lead { font-size: 1rem; }
    .is-home .hero-copy__actions .button { flex: 0 1 auto; width: auto; padding-inline: 16px; }
    .hero-slider .slider-button { bottom: 14px; }
    .slider-dots { bottom: 30px; }
    .home-highlights { grid-template-columns: 1fr; gap: 12px; padding-block: 20px; }
    .home-highlights > .home-highlight { grid-template-columns: 32px minmax(0, 1fr); grid-template-rows: auto auto; gap: 6px 16px; padding: 18px 20px; }
    .home-highlight__icon { grid-row: 1 / 3; }
    .home-highlights .home-highlight__arrow { top: 24px; right: 20px; }
    .home-highlight__copy { grid-column: 2; }
    .home-figures dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-figures dd { font-size: 2rem; }
    .home-testimonial { padding-top: 32px; }
    .home-testimonial__icon { top: 20px; right: 0; font-size: 64px; }
    .home-testimonial figure { padding-right: 0; }
    .home-testimonial blockquote p { font-size: 1.1rem; }
    .is-home .home-welcome { gap: 32px; padding-block: 40px; }
    .is-home .home-welcome h2, .is-home .section-title { font-size: 1.8rem; }
    .home-membership__inner { gap: 22px; }
    .is-home .home-events { padding-block: 40px; }
    .is-home .home-news { padding-bottom: 40px; }
    .swarm-callout .callout-content { grid-template-columns: 1fr; gap: 12px; }
    .swarm-steps { grid-template-columns: 1fr; gap: 24px; margin-block: 12px; }
    .swarm-callout .button:not(.button--outline):not(.button--light) { grid-column: 1; grid-row: auto; justify-self: start; margin-top: 8px; }
    .site-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-top: 28px; gap: 24px; }
    .footer-brand { grid-column: auto; }
    .interior-hero, .page-section-association .interior-hero { min-height: 0; padding: 32px 0; }
    .interior-hero__art, .page-section-association .interior-hero__art { display: none; }
    .interior-hero .page-header h1, .interior-hero .page-header h2 { font-size: 2rem; }
}
@media (max-width: 599px) {
    .is-home .home-welcome { grid-template-columns: 1fr; }
    .home-welcome__photo img { aspect-ratio: 3 / 2; }
    .is-home .hero-copy { left: 20px; right: 20px; }
    .is-home .hero-copy h1 { font-size: 2.75rem; }
    .hero-copy__eyebrow { text-transform: none; font-size: .82rem; }
    .hero-copy__identity { margin-top: 12px; font-size: 1.05rem; }
    .is-home .hero-copy__lead { margin-top: 12px; }
    .is-home .hero-copy__actions { gap: 8px; margin-top: 18px; }
    .is-home .hero-copy__actions .button { width: 100%; min-height: 44px; }
    .hero-slider .slider-button { display: grid; bottom: 8px; opacity: 1; }
    .hero-slider .slider-dots { display: none; }
    .article-card__body { min-height: 220px; padding: 20px; }
    .article-card p { display: -webkit-box; }
    .section-title::after { display: none; }
    .home-membership h2, .swarm-callout .callout-title { font-size: 1.5rem; }
    .home-membership .button { width: 100%; }
    .footer-brand { gap: 16px; }
    .site-footer__inner { grid-template-columns: minmax(0, 1fr); gap: 22px; }
    .footer-brand { align-items: center; }
    .footer-bottom { display: block; }
    .footer-menu { margin-top: 8px; }
    .site-footer .footer-social .button--membership { width: auto; }
}
@media (prefers-reduced-motion: reduce) {
    .home-highlight, .article-card, .home-event-card, .button, .back-to-top, .swarm-callout, :is(.article-card__media, .home-event-card__media) img { transition: none; }
    .back-to-top:hover { transform: none; }
    .home-highlight:hover, .article-card:hover, .home-event-card:hover, .article-card:hover .article-card__media img.card-image--cover, .home-event-card:hover .home-event-card__media img.card-image--cover { transform: none; }
}

/* Joomla 4/6 select their own Font Awesome family on the icon element. */
body.site .gabi-agenda .gabi-agenda__switch [class^="icon-"]::before,
body.site .gabi-agenda__header [class^="icon-"]::before,
body.site .iceq-consent-manage .icon-cog::before { font-family: inherit; font-weight: 900; }

/* Keep all header actions on one row; use the accessible menu before labels wrap. */
.site-header__inner { width: min(calc(100% - 48px), 1800px); }
.site-navigation > .mod-menu { flex-wrap: nowrap; }
.header-member-actions, .header-user-space { flex-shrink: 0; white-space: nowrap; }
@media (min-width: 900px) and (max-width: 1199px) {
    .site-header__inner { width: calc(100% - 32px); min-height: 76px; grid-template-columns: minmax(0, 1fr) auto 44px 44px; gap: 8px; }
    .site-logo img { width: 76px; max-width: 100%; height: 62px; }
    .header-member-actions { grid-column: 4; grid-row: 1; gap: 4px; }
    .site-header__inner:has(.header-member-actions) { grid-template-columns: minmax(0, 1fr) auto 44px 92px; }
    .header-user-space { grid-column: 4; grid-row: 1; width: 44px; height: 44px; min-height: 44px; padding: 0; font-size: 1.15rem; }
    .header-user-space__label { display: none; }
    .header-swarm { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 14px; border: 1px solid #a7352b; border-radius: 6px; background: #a7352b; color: #fff; font-size: .9rem; font-weight: 600; }
    .header-swarm:hover { background: #892b24; color: #fff; text-decoration: none; }
    .menu-toggle { display: block; grid-column: 3; width: 44px; height: 44px; justify-self: end; }
    .site-navigation { position: absolute; z-index: 50; top: 100%; right: 0; bottom: auto; left: 0; display: none; height: calc(100vh - var(--header-height, 76px)); height: calc(100dvh - var(--header-height, 76px)); overflow-y: auto; padding: 18px 22px 40px; background: #fff; overscroll-behavior: contain; }
    .site-navigation.is-open { display: block; }
    .site-navigation .mod-menu { display: block; }
    .site-navigation .mod-menu > li > a, .site-navigation .mod-menu > li > .nav-header,
    .site-navigation a, .site-navigation .nav-header, .site-navigation .separator { min-height: 50px; padding: 0; border-bottom: 1px solid #eee; font-size: 1.05rem; white-space: normal; }
    .site-navigation ul ul { position: static; display: none; min-width: 0; padding: 0 0 0 18px; border: 0; box-shadow: none; }
    .site-navigation ul ul ul { position: static; }
    .site-navigation li:hover > ul, .site-navigation li:focus-within > ul { display: none; }
    .site-navigation li.submenu-is-open > ul { display: block; }
    .site-navigation li.submenu-is-open > :is(a,.nav-header,.separator)::after { transform: rotate(45deg); }
}
@media (max-width: 899px) {
    .site-header__inner { width: calc(100% - 24px); }
}
/* One typographic scale for privacy, cookie controls and footer navigation. */
.site-footer .footer-bottom { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 12px 24px; padding-left: 0; font-family: inherit; font-size: .875rem; line-height: 1.5; }
.site-footer .footer-bottom :is(a, button, .copyright) { position: static; font-family: inherit; font-size: inherit; font-weight: 400; font-style: normal; line-height: 1.5; letter-spacing: normal; text-transform: none; color: #394c42; }
.site-footer .footer-bottom :is(a, button):not(.iceq-consent-manage) { display: inline-flex; align-items: center; min-height: 44px; padding-block: 8px; text-decoration: underline; text-underline-offset: 3px; }
.site-footer .footer-bottom :is(a, button):not(.iceq-consent-manage):hover { color: #1b4d3e; text-decoration-thickness: 2px; }
.site-footer .footer-bottom :is(a, button):not(.iceq-consent-manage):focus-visible { outline: 2px solid #1b4d3e; outline-offset: 3px; border-radius: 2px; }
.site-footer .footer-bottom .copyright { margin: 0; padding: 0; white-space: nowrap; text-align: center; }
.site-footer .footer-bottom .iceq-privacy-links { padding: 0; gap: 0 20px; font: inherit; }
.site-footer .footer-bottom .footer-menu { justify-self: end; margin: 0; }
.site-footer .footer-bottom .footer-menu .mod-menu { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0 20px; }
@media (max-width: 899px) {
    .site-footer .footer-bottom { grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 8px; }
    .site-footer .footer-bottom .iceq-privacy-links, .site-footer .footer-bottom .footer-menu .mod-menu { justify-content: center; }
    .site-footer .footer-bottom .footer-menu { justify-self: center; }
    .site-footer .footer-bottom .copyright { grid-row: 3; }
}
/* Keep the two primary calls to action next to the account controls. */
@media (min-width: 1200px) {
    .site-header .site-navigation { min-width: 0; width: 100%; }
    .site-header .site-navigation > .mod-menu { width: 100%; }
    .site-header .site-navigation > .mod-menu > li:has(> a.menu-membership) { margin-inline-start: auto; }
}

/* Compact desktop navigation for laptop screens, including signed-in members. */
@media (min-width: 1200px) and (max-width: 1599px) {
 .site-header__inner { width: calc(100% - 32px); grid-template-columns: 76px minmax(0, 1fr) auto; gap: 12px; min-height: 80px; }
 .site-logo img { width: 76px; height: 64px; object-fit: contain; }
 .site-navigation > .mod-menu > li > :is(a,.nav-header,.separator) { padding-inline: 9px; font-size: .85rem; }
 .site-navigation > .mod-menu > li > :is(a,.nav-header,.separator)::after { margin-left: 6px; }
 .header-member-actions { gap: 6px; }
 .header-user-space { padding-inline: 10px; font-size: .85rem; }
}
