:root {
    --directory-ink: #272e3e;
    --directory-muted: #626a79;
    --directory-paper: #f8f9fb;
    --directory-line: #e0e3e9;
    --directory-accent: #fc6035;
    --directory-accent-ink: #b83c1d;
    --directory-accent-soft: #fff1eb;
    --directory-radius: 18px;
    --directory-shell: var(--site-content-max, 1280px);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 7rem; }
body { margin: 0; color: var(--directory-ink); background: var(--directory-paper); font: 15px/1.65 Inter, ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button, summary { cursor: pointer; }
img { display: block; max-width: 100%; }
svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.15; letter-spacing: -.045em; font-weight: 550; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--directory-accent-ink); outline-offset: 5px; }
.directory-shell { width: min(var(--directory-shell), calc(100% - 2 * var(--site-gutter, 40px))); margin-inline: auto; }
.directory-sr-only, .sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.directory-skip-link { position: absolute; left: 1rem; top: -8rem; z-index: 100; background: white; padding: 1rem; }
.directory-skip-link:focus { top: 1rem; }
.directory-header { position: sticky; top: 0; z-index: 30; background: #fff; border-bottom: 1px solid var(--directory-line); }
.directory-header__inner { min-height: 7rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.directory-brand { display: flex; align-items: center; gap: 1.4rem; flex-shrink: 0; }
.directory-brand__logo { width: 5rem; height: 5rem; object-fit: contain; }
.directory-brand--footer .directory-brand__logo { width: 5rem; height: 5rem; }
.directory-brand__tagline { font-size: .76rem; color: var(--directory-muted); border-left: 1px solid var(--directory-line); padding-left: 1.4rem; }
.directory-nav { display: flex; align-items: center; gap: 2rem; margin-left: auto; font-size: 16px; }
.directory-nav > a:hover { text-decoration: underline; text-underline-offset: 7px; }
.directory-nav-menu { position: relative; }
.directory-nav-menu summary { display: flex; align-items: center; gap: .5rem; list-style: none; padding-block: 1rem; }
.directory-nav-menu summary::-webkit-details-marker { display: none; }
.directory-nav-menu summary svg { width: 14px; height: 14px; }
.directory-nav-menu[open] summary svg { transform: rotate(180deg); }
.directory-nav-menu__panel { position: absolute; top: 100%; left: -2rem; width: 21rem; border: 1px solid var(--directory-line); border-radius: 18px; padding: 1.5rem; background: #fff; }
.directory-nav-menu__panel > a { display: flex; justify-content: space-between; padding: .7rem 0; gap: 1rem; }
.directory-nav-menu__panel > a:hover { color: var(--directory-accent-ink); }
.directory-nav-menu__all { border-top: 1px solid var(--directory-line); margin-top: .5rem; font-weight: 600; }
.directory-mobile-menu { display: none; }
.directory-button { display: inline-flex; justify-content: center; align-items: center; gap: 1.3rem; min-height: 52px; border: 1px solid transparent; border-radius: 18px; padding: .75rem 1.3rem; background: var(--directory-ink); color: white; font-size: .85rem; font-weight: 550; line-height: 1.3; transition: background .2s; }
.directory-button:hover { background: #3a4356; }
.directory-button__arrow { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; border: 1px solid currentColor; flex-shrink: 0; }
.directory-button--small { min-height: 48px; padding: .6rem .75rem .6rem 1.1rem; font-size: .78rem; }
.directory-button--light { color: var(--directory-ink); background: #fff; }
.directory-button--light:hover { background: var(--directory-accent-soft); }
.directory-button--wide { width: 100%; }
.directory-kicker { display: block; margin: 0 0 1.2rem; font-size: .67rem; font-weight: 650; text-transform: uppercase; letter-spacing: .17em; }
.experience-hero { position: relative; isolation: isolate; background: var(--directory-ink); color: #fff; }
.experience-slide { position: relative; isolation: isolate; height: clamp(40rem, 82svh, 48rem); display: flex; align-items: center; padding: 4rem 0 9rem; }
.experience-slide__image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.experience-slide__shade { position: absolute; inset: 0; z-index: -1; background: rgb(14 22 15 / 56%); }
#experience-conferences .experience-slide__shade { background: linear-gradient(90deg, rgb(20 27 39 / 70%) 0%, rgb(20 27 39 / 48%) 42%, rgb(20 27 39 / 20%) 72%, rgb(20 27 39 / 24%) 100%); }
.experience-slide__eyebrow { display: flex; align-items: center; gap: .65rem; font-size: .73rem; letter-spacing: .15em; text-transform: uppercase; margin-bottom: 1.6rem; }
.experience-slide__eyebrow > span { width: 7px; height: 7px; border-radius: 50%; background: var(--directory-accent); }
.experience-slide h2 { font-size: clamp(2.7rem, 4.5vw, 4.4rem); max-width: 18ch; margin-bottom: 1.5rem; font-weight: 500; }
.experience-slide__description { max-width: 29rem; color: #f0f1eb; font-size: .95rem; line-height: 1.8; margin-bottom: 2rem; }
.experience-slide__actions { display: flex; align-items: center; gap: 1.7rem; flex-wrap: wrap; }
.experience-slide__link { font-size: .84rem; border-bottom: 1px solid #ffffff70; padding: .5rem 0; }
.experience-slide__link > span { padding-left: 1rem; }
.experience-hero__bottom { position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%); display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
.experience-hero__caption { font-size: .68rem; letter-spacing: .025em; color: #e7e8e1; }
.experience-hero__controls, .experience-hero__dots { display: flex; align-items: center; gap: .6rem; }
.experience-hero__controls button { color: #fff; background: transparent; border: 0; min-width: 44px; min-height: 44px; padding: .5rem; font-size: .8rem; }
.experience-hero__controls .experience-hero__dot { border-bottom: 1px solid #ffffff50; opacity: .65; }
.experience-hero__controls .experience-hero__dot[aria-pressed=true] { opacity: 1; border-bottom: 2px solid var(--directory-accent); }
.experience-hero__controls .experience-hero__control { border: 1px solid #ffffff60; border-radius: 50%; }
.experience-hero__control:hover { background: #ffffff20; }
.experience-hero__divider { width: 1px; height: 24px; background: #ffffff50; margin-inline: .5rem; }
.directory-intro { padding-block: 2.6rem; border-bottom: 1px solid var(--directory-line); }
.directory-intro__inner { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 4rem; align-items: center; }
.directory-intro__inner > p { font-size: 1.35rem; line-height: 1.45; margin: 0; letter-spacing: -.03em; }
.directory-intro__inner .directory-kicker { margin-bottom: .65rem; letter-spacing: .12em; }
.directory-intro__inner > div { border-left: 1px solid var(--directory-line); padding-left: 2rem; }
.directory-intro__inner > div > span { font-size: .65rem; text-transform: uppercase; letter-spacing: .1em; color: var(--directory-accent-ink); }
.directory-intro__inner > div > p { margin: .5rem 0 0; font-size: .82rem; color: var(--directory-muted); max-width: 27ch; }
.directory-experiences, .directory-explorer { padding-block: 6rem; }
.directory-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 3rem; margin-bottom: 3rem; }
.directory-section-heading h2 { font-size: clamp(2rem, 3vw, 3rem); margin-bottom: 0; max-width: 22ch; }
.directory-section-heading > p { max-width: 26rem; color: var(--directory-muted); font-size: .9rem; margin-bottom: 0; }
.directory-type-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.directory-type-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--directory-line); border-radius: 18px; padding: 2rem; transition: background .2s, border-color .2s; }
.directory-type-card:hover { background: var(--directory-accent-soft); border-color: var(--directory-accent); }
.directory-type-card__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2.3rem; }
.directory-type-card__top svg { width: 28px; height: 28px; }
.directory-type-card__top > span { font-size: .65rem; color: var(--directory-muted); }
.directory-type-card h3 { font-size: 1.25rem; margin-bottom: .8rem; letter-spacing: -.03em; }
.directory-type-card > p { color: var(--directory-muted); font-size: .84rem; line-height: 1.8; }
.directory-type-card__link { display: flex; justify-content: space-between; padding-top: 1rem; margin-top: auto; font-size: .76rem; font-weight: 600; }
.directory-explorer { background: #fff; border-top: 1px solid var(--directory-line); }
.directory-tabs { display: flex; flex-wrap: wrap; gap: .8rem 1.5rem; border-bottom: 1px solid var(--directory-line); margin-bottom: 1.6rem; }
.directory-tabs a { display: flex; align-items: center; gap: .6rem; padding: .8rem 0; font-size: .8rem; border-bottom: 2px solid transparent; }
.directory-tabs a.is-active { border-color: var(--directory-accent); font-weight: 650; }
.directory-tabs a > span { background: #f0f1ea; border-radius: 18px; padding: .05rem .45rem; font-size: .65rem; }
.directory-filters { display: grid; grid-template-columns: 1.6fr repeat(4, 1fr) auto; gap: .8rem; align-items: end; padding: 1.2rem; background: var(--directory-paper); border: 1px solid var(--directory-line); border-radius: 18px; }
.directory-field { min-width: 0; }
.directory-field label { display: block; margin-bottom: .5rem; font-size: .66rem; font-weight: 600; }
.directory-field input, .directory-field select { width: 100%; min-width: 0; height: 46px; border: 1px solid var(--directory-line); background: #fff; border-radius: 18px; padding: .65rem .7rem; color: var(--directory-ink); font-size: .74rem; }
.directory-field--search > span { position: relative; display: block; }
.directory-field--search svg { position: absolute; left: .7rem; top: 14px; width: 18px; height: 18px; }
.directory-field--search input { padding-left: 2.2rem; }
.directory-button--filter { min-height: 46px; }
.directory-filter-reset { grid-column: 1 / -1; font-size: .75rem; text-decoration: underline; }
.directory-results-heading { display: flex; justify-content: space-between; align-items: center; margin: 2.7rem 0 1.5rem; }
.directory-results-heading h2 { font-size: 1.3rem; margin: 0; }
.directory-results-heading > p { color: var(--directory-muted); font-size: .78rem; margin: 0; }
.fair-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.4rem; }
.fair-card { border: 1px solid var(--directory-line); border-radius: 18px; overflow: hidden; background: white; }
.fair-card__media { display: block; position: relative; aspect-ratio: 16/9; overflow: hidden; background: #e9ede3; }
.fair-card__media > img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.fair-card__media:hover > img { transform: scale(1.025); }
.directory-status { display: inline-block; background: #edf2e3; color: #38442e; padding: .3rem .7rem; border-radius: 18px; font-size: .65rem; font-weight: 650; }
.directory-status--live { background: #dce9c9; }
.directory-status--past { color: #666b62; background: #eee; }
.fair-card__media .directory-status { position: absolute; top: 1rem; left: 1rem; }
.fair-card__type { position: absolute; right: 1rem; top: 1rem; font-size: .65rem; background: white; border-radius: 18px; padding: .3rem .7rem; }
.fair-card__placeholder { height: 100%; display: grid; place-items: center; font-size: 5rem; color: #87967b; }
.fair-card__body { padding: 1.6rem; }
.fair-card__eyebrow { display: flex; flex-wrap: wrap; gap: .5rem; font-size: .62rem; text-transform: uppercase; letter-spacing: .08em; color: var(--directory-muted); margin-bottom: .9rem; }
.fair-card h2 { font-size: 1.4rem; margin-bottom: 1.2rem; }
.fair-card__date, .fair-card__location { display: flex; gap: .6rem; align-items: center; font-size: .78rem; margin-bottom: .5rem; }
.fair-card__date svg, .fair-card__location svg { width: 17px; height: 17px; flex-shrink: 0; }
.fair-card__excerpt { margin: 1rem 0; color: var(--directory-muted); font-size: .82rem; }
.fair-card__footer { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--directory-line); padding-top: 1rem; margin-top: 1.4rem; font-size: .72rem; }
.fair-card__organizer { color: var(--directory-muted); }
.fair-card__link { font-weight: 600; white-space: nowrap; }
.fair-card__link > span { margin-left: .5rem; }
.directory-pagination { display: flex; justify-content: space-between; gap: 1rem; padding-top: 2rem; font-size: .8rem; }
.directory-pagination [aria-disabled=true] { opacity: .45; }
.directory-empty { padding: 4rem 1rem; text-align: center; }
.directory-empty > span { font-size: 3rem; }
.directory-empty h2 { font-size: 1.5rem; }
.directory-empty p { color: var(--directory-muted); }
.directory-organizer-cta { background: var(--directory-ink); color: #fff; padding-block: 5rem; }
.directory-organizer-cta__inner { display: flex; justify-content: space-between; align-items: center; gap: 4rem; }
.directory-organizer-cta h2 { font-size: clamp(2rem, 3.5vw, 3.2rem); margin-bottom: 1.3rem; max-width: 22ch; }
.directory-organizer-cta p:not(.directory-kicker) { color: #d4d9e3; max-width: 35rem; font-size: .88rem; margin-bottom: 0; }
.directory-organizer-cta .directory-button { flex-shrink: 0; }
.directory-footer { padding-block: 2.5rem; border-top: 1px solid var(--directory-line); font-size: 14px; }
.directory-footer__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.directory-footer__brand { display: flex; align-items: center; gap: 1.5rem; }
.directory-footer__logo { width: 4.5rem; }
.directory-footer p { font-size: 14px; color: var(--directory-muted); margin: 0; }
.directory-footer a { font-size: 14px; }
.directory-footer__links { display: flex; gap: 1.5rem; }
.directory-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 3rem; }
.directory-footer__grid > div > a:not(.directory-brand) { display: block; padding-block: .3rem; }
.directory-footer__grid h2 { font-size: 14px; letter-spacing: 0; margin-top: 1rem; }
.directory-footer__grid p { max-width: 28rem; margin-top: .7rem; }
.directory-footer__bottom { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2rem; padding-top: 1.4rem; border-top: 1px solid var(--directory-line); font-size: 14px; color: var(--directory-muted); }
.directory-footer__contact { margin-top: 1rem; }
.directory-footer__contact .directory-contact-details { margin-top: 0; gap: 8px; }
.directory-footer__contact .directory-contact-details :is(p, a) { font-size: 14px; }
.directory-contact-details { font-style: normal; display: grid; gap: 14px; margin-top: 20px; }
.directory-contact-details p, .directory-contact-details a { display: flex; gap: 12px; align-items: center; font-size: 16px; line-height: 1.65; margin: 0; }
.directory-contact-details svg { width: 22px; height: 22px; flex-shrink: 0; color: var(--directory-muted); }
.directory-contact-details a { min-height: 44px; }
.directory-contact-details a:hover { text-decoration: underline; }
.directory-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; padding-block: 72px; }
.directory-contact h1 { font-size: clamp(32px, 4vw, 54px); line-height: 1.15; }
.directory-contact__intro > p { color: var(--directory-muted); font-size: 17px; }
.directory-contact__card { padding: 32px; border: 1px solid var(--directory-line); border-radius: 20px; background: white; }
.directory-contact__card h2 { font-size: 24px; }
.directory-contact__card form { display: grid; gap: 20px; }
.directory-contact__card .directory-field label { font-size: 16px; }
.directory-contact__card .directory-field input, .directory-contact__card textarea { width: 100%; min-height: 48px; border: 1px solid #cbd1da; border-radius: 12px; padding: 12px; font: inherit; font-size: 16px; color: var(--directory-ink); background: white; }
.directory-contact__card textarea { resize: vertical; }
.directory-contact__notice { font-size: 14px; color: var(--directory-muted); margin: 0; }
.directory-contact__success { padding: 16px; color: #176348; background: #edf8f1; border-radius: 12px; }
.directory-contact__errors { padding: 16px; color: #9a2518; background: #fff1eb; border-radius: 12px; }
.directory-contact__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.directory-article { padding-block: 2rem 5rem; }
.directory-article__breadcrumb { display: flex; flex-wrap: wrap; gap: .65rem; font-size: .73rem; color: var(--directory-muted); margin-bottom: 2.5rem; }
.directory-article__eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; font-size: .75rem; margin-bottom: 1.5rem; }
.directory-article h1 { font-size: clamp(2.3rem, 4vw, 3.8rem); max-width: 25ch; margin-bottom: 1.5rem; }
.directory-article__lead { max-width: 48rem; font-size: 1.05rem; color: var(--directory-muted); }
.directory-article__cover { margin-block: 2.5rem; }
.directory-article__cover img { width: 100%; max-height: 36rem; object-fit: cover; border-radius: 18px; }
.directory-article__layout { display: grid; grid-template-columns: minmax(0, 1fr) 22rem; gap: 4rem; align-items: start; margin-top: 3rem; }
.directory-rich-text { line-height: 1.9; overflow-wrap: anywhere; }
.directory-rich-text a { text-decoration: underline; }
.directory-rich-text h2 { font-size: 1.6rem; margin-top: 2rem; }
.directory-article__action-card { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.5rem; margin-top: 2.5rem; border: 1px solid var(--directory-line); border-radius: 18px; background: white; }
.directory-article__action-card span { font-size: .75rem; color: var(--directory-muted); }
.directory-article__action-card h2 { font-size: 1.2rem; margin: .5rem 0 0; }
.directory-event-facts { position: sticky; top: 8rem; padding: 2rem; border: 1px solid var(--directory-line); border-radius: 18px; background: #fff; }
.directory-event-facts h2 { font-size: 1.3rem; }
.directory-event-facts dl > div { padding-block: 1rem; border-top: 1px solid var(--directory-line); }
.directory-event-facts dt { font-size: .67rem; text-transform: uppercase; letter-spacing: .07em; color: var(--directory-muted); margin-bottom: .4rem; }
.directory-event-facts dd { margin: 0; font-size: .85rem; }
.directory-event-facts dd span { display: block; }
@media (max-width: 75rem) {
    .directory-brand__tagline { display: none; }
    .directory-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .directory-nav { gap: 1.6rem; }
}
@media (max-width: 60rem) {
    .directory-header__inner { gap: 1rem; }
    .directory-type-grid, .fair-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .directory-intro__inner { gap: 1.5rem; }
    .directory-intro__inner > div { padding-left: 1rem; }
    .directory-section-heading { gap: 2rem; }
    .experience-hero__caption { max-width: 16rem; }
    .directory-organizer-cta__inner { gap: 2rem; }
    .directory-article__layout { grid-template-columns: minmax(0, 1fr) 19rem; gap: 2rem; }
    .directory-article__action-card { align-items: start; flex-direction: column; }
}
@media (max-width: 42rem) {
    html { scroll-padding-top: 6rem; }
    .directory-header__inner { min-height: 5rem; gap: .7rem; }
    .directory-brand__logo { width: 4rem; height: 4rem; }
    .directory-nav { display: none; }
    .directory-mobile-menu { display: block; margin-left: auto; }
    .directory-mobile-menu > summary { display: flex; gap: 8px; align-items: center; min-height: 48px; padding: 8px 4px; font-size: 18px; font-weight: 600; list-style: none; }
    .directory-mobile-menu > summary::-webkit-details-marker { display: none; }
    .directory-mobile-menu > summary::marker { content: ''; }
    .directory-mobile-menu > summary svg { width: 22px; height: 22px; }
    .directory-mobile-menu__panel { position: fixed; top: 5rem; left: 12px; right: 12px; z-index: 40; max-height: calc(100vh - 6rem); max-height: calc(100dvh - 6rem); overflow-y: auto; overscroll-behavior: contain; touch-action: pan-y; -webkit-overflow-scrolling: touch; padding: 16px 20px calc(20px + env(safe-area-inset-bottom)); background: white; border: 1px solid var(--directory-line); border-radius: 18px; box-shadow: 0 18px 40px #17203320; }
    .directory-mobile-menu:not([open]) .directory-mobile-menu__panel { display: none; }
    .directory-mobile-menu__panel > a { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 56px; padding-block: 14px; border-bottom: 1px solid var(--directory-line); font-size: 18px; line-height: 1.5; }
    .directory-mobile-menu__panel > a svg { width: 20px; height: 20px; flex-shrink: 0; }
    .directory-mobile-menu__panel .directory-kicker { display: block; font-size: 13px; margin: 20px 0 4px; }
    .directory-contact { grid-template-columns: 1fr; gap: 32px; padding-block: 40px; }
    .directory-contact__card { padding: 24px 18px; }
    .directory-nav > a { display: none; }
    .directory-button--organize { gap: .5rem; font-size: .65rem; padding: .6rem; min-height: 42px; }
    .directory-button--organize .directory-button__arrow { width: 22px; height: 22px; }
    .directory-nav-menu__panel { position: fixed; top: 5rem; left: 1rem; right: 1rem; width: auto; max-height: calc(100svh - 6rem); overflow: auto; }
    .experience-slide { height: 43rem; padding: 3.5rem 0 10rem; }
    .experience-slide__image { object-position: center center; }
    .experience-slide__shade { background: rgb(14 22 15 / 62%); }
    #experience-conferences .experience-slide__shade { background: rgb(20 27 39 / 62%); }
    .experience-slide h2 { font-size: clamp(2.25rem, 8.8vw, 3.1rem); }
    .experience-slide__description { font-size: .85rem; max-width: 32ch; }
    .experience-slide__eyebrow { font-size: .62rem; letter-spacing: .1em; }
    .experience-slide__actions { gap: 1rem; }
    .experience-slide__actions .directory-button { font-size: .77rem; gap: .8rem; padding-inline: 1rem; }
    .experience-slide__link { font-size: .73rem; }
    .experience-slide__link > span { padding-left: .4rem; }
    .experience-hero__bottom { align-items: start; flex-direction: column; gap: 1.2rem; bottom: 1.5rem; }
    .experience-hero__caption { max-width: none; font-size: .57rem; }
    .experience-hero__controls { gap: .35rem; width: 100%; }
    .experience-hero__dots { margin-right: auto; gap: .25rem; }
    .experience-hero__divider { margin-inline: .25rem; }
    .directory-intro__inner { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
    .directory-intro__inner > p { grid-column: 1 / -1; font-size: 1.4rem; }
    .directory-intro__inner > div { padding-left: 0; border: 0; }
    .directory-experiences, .directory-explorer { padding-block: 3.5rem; }
    .directory-section-heading { display: block; margin-bottom: 2rem; }
    .directory-section-heading h2 { font-size: 2rem; }
    .directory-section-heading > p { margin-top: 1.2rem; font-size: .85rem; }
    .directory-type-grid, .fair-grid, .fair-grid--short { grid-template-columns: 1fr; }
    .directory-type-card { padding: 1.5rem; }
    .directory-type-card__top { margin-bottom: 1.5rem; }
    .directory-tabs { gap: .25rem 1rem; }
    .directory-tabs a { font-size: .73rem; }
    .directory-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 1rem; }
    .directory-field--search { grid-column: 1 / -1; }
    .directory-button--filter { grid-column: 1 / -1; }
    .fair-card__body { padding: 1.3rem; }
    .fair-card__footer { flex-wrap: wrap; }
    .directory-organizer-cta { padding-block: 3.5rem; }
    .directory-organizer-cta__inner { flex-direction: column; align-items: start; }
    .directory-footer__inner, .directory-footer__brand { flex-direction: column; align-items: start; gap: 1rem; }
    .directory-footer__grid { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
    .directory-footer__grid > div:first-child { grid-column: 1 / -1; }
    .directory-article__layout { grid-template-columns: 1fr; gap: 2rem; }
    .directory-event-facts { position: static; }
    .directory-article__cover img { min-height: 14rem; }
    .directory-pagination { flex-wrap: wrap; }
}
@media (max-width: 360px) {
    .experience-hero__controls, .experience-hero__dots { gap: 0; }
    .experience-hero__divider { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition: none !important; animation: none !important; }
}
@media print {
    .directory-header, .directory-footer, .directory-organizer-cta, .experience-hero__controls { display: none; }
    .directory-shell { width: 100%; }
    .directory-event-facts { position: static; }
}
