/*********** FONTS ***********/

@font-face { font-family: "Acme"; src: url("../fonts/Acme-Regular.ttf") format("truetype"); font-display: swap; font-style: normal; font-weight: 400; }
@font-face { font-family: "Outfit"; src: url("../fonts/Outfit/Outfit-VariableFont_wght.ttf") format("truetype"); font-display: swap; font-style: normal; font-weight: 100 900; }

/*********** ROOT VARIABLES ***********/

:root { --color-parchment: #f1e6ce; --color-forest: #234b3a; --color-rust: #a84b32; --color-gold: #c69c3c; --color-ink: #172820; --color-paper: #f8f3e7; --color-line: rgb(35 75 58 / 20%); --font-display: "Outfit", Arial, sans-serif; --font-body: "Outfit", Arial, sans-serif; --content-width: 1200px; --reading-width: 760px; --radius-sm: 4px; --radius-md: 8px; --shadow-sm: 0 6px 18px rgb(23 40 32 / 7%); --space-1: 0.3rem; --space-2: 0.5rem; --space-3: 0.75rem; --space-4: 1rem; --space-5: 1.5rem; --space-6: 2.1rem; --space-7: 3rem; }

/*********** BASE ELEMENTS ***********/

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--color-parchment); color: var(--color-ink); font-family: var(--font-body); font-size: 1rem; line-height: 1.55; }
img { display: block; height: auto; max-width: 100%; }
a { color: var(--color-rust); text-decoration-thickness: 0.08em; text-underline-offset: 0.18em; }
a:hover, a:focus-visible { color: var(--color-forest); }
h1, h2, h3, h4, h5, h6 { color: var(--color-forest); font-family: var(--font-display); font-weight: 750; letter-spacing: -0.025em; line-height: 1.08; margin-block: 0 0.15em; }
h1 { font-size: clamp(1.85rem, 4.25vw, 2.35rem); }
h2 { font-size: clamp(1rem, 2.5vw, 1.15rem); }

/*********** ACCESSIBILITY ***********/

:focus-visible { outline: 3px solid var(--color-gold); outline-offset: 3px; }
.screen-reader-text { clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; width: 1px; }
.screen-reader-text:focus { clip: auto; clip-path: none; height: auto; left: 1rem; padding: 0.75rem 1rem; top: 1rem; width: auto; z-index: 1000; }

/*********** FORMS & BUTTONS ***********/

.button:hover, .button:focus-visible, button:hover, button:focus-visible { background: var(--color-rust); border-color: var(--color-rust); color: var(--color-paper); }
button, input, select, textarea { font: inherit; }
button, input[type="submit"] { cursor: pointer; }
input[type="text"], input[type="email"], input[type="search"], input[type="url"], select, textarea { background: var(--color-paper); border: 1px solid rgb(23 40 32 / 35%); border-radius: var(--radius-sm); color: var(--color-ink); min-height: 2.65rem; padding: 0.55rem 0.7rem; width: 100%; }
.button, button, input[type="submit"] { align-items: center; background: var(--color-forest); border: 1px solid var(--color-forest); border-radius: var(--radius-sm); color: var(--color-paper); display: inline-flex; font-weight: 750; justify-content: center; min-height: 2.65rem; padding: 0.55rem 1rem; text-decoration: none; }
.button--secondary { background: transparent; color: var(--color-forest); }
.button--light { background: var(--color-paper); border-color: var(--color-paper); color: var(--color-forest); }
.button-group { display: flex; flex-wrap: wrap; gap: var(--space-3); }

/*********** SITE CONTAINER ***********/

.site-container { margin-inline: auto; max-width: var(--content-width); padding-inline: clamp(0.875rem, 2.5vw, 1.5rem); width: 100%; }

/*********** HEADER & BRANDING ***********/

.site-header { background: #f1e6ce; position: relative; z-index: 1100; }
.site-banner { background: #f1e6ce; height: 150px; position: relative; width: 100%; }
.site-banner::before { background: url("../images/banner07.svg") center / auto 100% no-repeat; content: ""; inset: 0; opacity: 0.2; pointer-events: none; position: absolute; }
.site-header__inner { align-items: center; display: grid; gap: clamp(1rem, 3vw, 3rem); grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); inset: 0; margin-inline: auto; max-width: var(--content-width); padding-inline: clamp(0.875rem, 2.5vw, 1.5rem); position: absolute; width: 100%; z-index: 1; }
.site-branding { align-items: center; display: flex; justify-content: flex-start; min-width: 0; }
.site-branding .custom-logo-link { display: block; max-width: 300px; width: min(90%, 25vw); }
.site-branding .custom-logo { height: auto; max-height: none; width: 100%; }
.site-banner__message { color: var(--color-forest); line-height: 1.12; min-width: 0; text-align: center; text-transform: uppercase; }
.site-banner__message p { margin: 0; }
.site-banner__eyebrow { font-size: clamp(0.75rem, 0.9vw, 1.1rem); font-weight: 700; letter-spacing: 0.17em; }
.site-banner__headline { font-size: clamp(1.2rem, 1.8vw, 2.1rem); font-weight: 700; letter-spacing: 0.12em; white-space: nowrap; }
.site-banner__description { font-size: clamp(0.65rem, 0.8vw, 1rem); font-weight: 700; letter-spacing: 0.095em; line-height: 1.18; }
.site-title { color: var(--color-forest); font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3.5rem); line-height: 0.9; text-decoration: none; }

/*********** PRIMARY NAVIGATION ***********/

.primary-menu a:hover, .primary-menu a:focus-visible, .primary-menu .current-menu-item > a { color: var(--color-gold); }
.primary-nav { background: var(--color-forest); border-block: 2px solid var(--color-gold); color: var(--color-paper); position: relative; z-index: 1200; }
.primary-menu, .primary-menu ul, .footer-menu { list-style: none; margin: 0; padding: 0; }
.primary-menu { align-items: center; display: flex; gap: clamp(0.9rem, 2vw, 1.5rem); justify-content: center; min-height: 3rem; width: 100%; }
.primary-menu a { color: var(--color-paper); display: block; font-family: var(--font-display); font-size: 0.8rem; font-weight: 600; letter-spacing: 0.075em; line-height: 1.2; padding-block: 0.72rem; text-decoration: none; text-transform: uppercase; }
.primary-menu .menu-item-has-children { position: relative; }
.primary-menu .sub-menu { background: var(--color-forest); border: 1px solid rgb(198 156 60 / 45%); box-shadow: var(--shadow-sm); display: none; left: -0.75rem; min-width: max-content; padding: 0.25rem 0.8rem; position: absolute; top: 100%; width: max-content; z-index: 20; }
.primary-menu li:hover > .sub-menu, .primary-menu li:focus-within > .sub-menu { display: block; }
.primary-menu .sub-menu a { border-bottom: 1px solid rgb(248 243 231 / 13%); font-size: 0.7rem; letter-spacing: 0.065em; padding: 0.66rem 0.15rem; white-space: nowrap; }
.primary-menu .sub-menu li:last-child > a { border-bottom: 0; }
.nav-toggle { align-items: center; background: transparent; border: 0; border-radius: 0; color: var(--color-paper); display: none; gap: 0.65rem; min-height: 3.5rem; }
.nav-toggle__icon, .nav-toggle__icon::before, .nav-toggle__icon::after { background: currentColor; content: ""; display: block; height: 2px; position: relative; width: 1.25rem; }
.nav-toggle__icon::before { position: absolute; top: -6px; }
.nav-toggle__icon::after { position: absolute; top: 6px; }

/*********** GENERAL PAGE LAYOUT ***********/

.site-main { min-height: 60vh; }
.content-area { padding-block: clamp(1.5rem, 3.5vw, 2.75rem); }
.content-area--narrow { max-width: calc(var(--reading-width) + 4rem); }
.archive-header, .page-header, .entry-header { border-bottom: 1px solid var(--color-line); margin-bottom: var(--space-5); padding-bottom: var(--space-4); }
.entry-list { display: grid; gap: var(--space-4); }
.eyebrow { color: var(--color-rust); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.09em; margin-bottom: var(--space-2); text-transform: uppercase; margin-top: 0; }
.content-tag { align-items: center; color: var(--color-rust); display: inline-flex; font-size: 0.62rem; font-weight: 600; gap: 0.3rem; letter-spacing: 0.055em; line-height: 1.2; text-decoration: none; text-transform: uppercase; }
.content-tag::before { background: currentColor; content: ""; flex: 0 0 auto; height: 0.8rem; -webkit-mask: url("../images/tag-solid.svg") center / contain no-repeat; mask: url("../images/tag-solid.svg") center / contain no-repeat; width: 0.8rem; }
.content-tag--intro { margin: 0 0 var(--space-3); }
.directory-page, .term-index, .map-page, .single-oddity, .single-legend { padding-block: clamp(1.5rem, 3.5vw, 2.75rem); }
.sidebar-page { align-items: start; display: grid; gap: clamp(1.25rem, 2.5vw, 2rem); grid-template-columns: minmax(0, 1fr) minmax(250px, 300px); }
.sidebar-page__content { grid-column: 1; min-width: 0; }
.sidebar-page > .directory-sidebar { grid-column: 2; grid-row: 1; }

/*********** GENERAL CONTENT CARDS ***********/

.entry-card { background: rgb(248 243 231 / 65%); border: 1px solid var(--color-line); border-radius: var(--radius-md); display: grid; gap: var(--space-4); grid-template-columns: minmax(180px, 32%) 1fr; overflow: hidden; }
.entry-card__image img { height: 100%; object-fit: cover; width: 100%; }
.entry-card__content { align-self: center; padding: var(--space-4) var(--space-4) var(--space-4) 0; }
.entry-card__tag { margin-bottom: var(--space-2); }
.entry-card__title { font-size: clamp(1.5rem, 3vw, 2rem); }
.entry-card__title a { color: inherit; text-decoration: none; }
.entry-card__excerpt > :last-child, .entry-content > :last-child { margin-bottom: 0; }
.entry-hero { margin: 0 0 var(--space-5); }
.entry-hero img { border-radius: var(--radius-md); }

/*********** ODDITIES GUIDE ***********/

.guide-page, .guide-single { align-items: start; display: grid; gap: clamp(1.25rem, 2.5vw, 2rem); grid-template-columns: minmax(0, 1fr) minmax(250px, 300px); padding-block: clamp(1.5rem, 3.5vw, 2.75rem); }
.guide-results, .guide-article { grid-column: 1; min-width: 0; }
.guide-page > .directory-sidebar, .guide-single > .directory-sidebar { grid-column: 2; grid-row: 1; }
.guide-list { display: grid; gap: var(--space-4); }
.guide-card { border-bottom: 1px solid var(--color-line); padding-bottom: var(--space-4); }
.guide-card__link { color: inherit; display: grid; gap: clamp(0.875rem, 2vw, 1.25rem); grid-template-columns: minmax(190px, 36%) minmax(0, 1fr); text-decoration: none; }
.guide-card__media { background: rgb(35 75 58 / 8%); border-radius: var(--radius-md); margin: 0; min-height: 175px; overflow: hidden; }
.guide-card__media img, .guide-card__media .directory-entry__placeholder { height: 100%; object-fit: cover; width: 100%; }
.guide-card__body { align-self: center; min-width: 0; }
.guide-card__meta { align-items: center; color: var(--color-rust); display: flex; flex-wrap: wrap; font-size: 0.68rem; font-weight: 800; gap: var(--space-3); letter-spacing: 0.065em; margin-bottom: var(--space-2); text-transform: uppercase; }
.guide-card__title { font-size: clamp(1.4rem, 2.5vw, 1.8rem); margin-bottom: var(--space-2); transition: color 160ms ease; }
.guide-card__excerpt { display: -webkit-box; font-size: 0.9rem; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; margin-bottom: var(--space-2); overflow: hidden; }
.guide-card__action { color: var(--color-rust); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.055em; text-transform: uppercase; }
.guide-card__link:hover .guide-card__title, .guide-card__link:focus-visible .guide-card__title { color: var(--color-rust); }
.guide-article__header { max-width: none; }
.guide-article__hero img { width: 100%; }
.guide-article > .entry-content { margin-inline: 0; }

/*********** PAGINATION, SEARCH & EMPTY STATES ***********/

.page-numbers.current, .page-numbers:hover, .page-numbers:focus-visible { background: var(--color-forest); color: var(--color-paper); }
.navigation.pagination { margin-top: var(--space-6); }
.nav-links { align-items: center; display: flex; flex-wrap: wrap; gap: var(--space-1); justify-content: center; }
.page-numbers { align-items: center; border: 2px solid var(--color-forest); border-radius: var(--radius-sm); color: var(--color-forest); display: inline-flex; justify-content: center; min-height: 2.75rem; min-width: 2.75rem; padding-inline: 0.8rem; text-decoration: none; font-weight: 600; }
.empty-state { background: rgb(248 243 231 / 70%); border: 1px solid var(--color-line); border-radius: var(--radius-md); padding: clamp(2rem, 6vw, 4rem); text-align: center; }
.site-search { display: flex; gap: var(--space-2); justify-content: center; margin-top: var(--space-4); }
.site-search label { flex: 1; max-width: 32rem; }

/*********** DIRECTORY ARCHIVES ***********/

.directory-page { align-items: start; display: grid; gap: 0 clamp(1.25rem, 2.5vw, 2rem); grid-template-columns: minmax(0, 1fr) minmax(250px, 300px); }
.directory-header { border-bottom: 1px solid var(--color-line); margin-bottom: var(--space-1); padding-bottom: var(--space-1); }
.directory-page > .directory-header { border-bottom: 0; }
.term-index .directory-header { border-bottom: 0; }
.directory-header h1 { margin-bottom: var(--space-2); }
.directory-header__description { font-size: clamp(0.95rem, 1.5vw, 1.08rem); max-width: 52rem; }
.directory-header__description > :last-child { margin-bottom: 0; }
.directory-layout { display: contents; }
.directory-results { grid-column: 1; grid-row: 2; min-width: 0; }
.directory-results__summary { align-items: center; background: rgb(248 243 231 / 55%); border: 1px solid var(--color-line); border-radius: var(--radius-sm); display: flex; justify-content: space-between; margin-bottom: var(--space-3); padding: 0.65rem 0.8rem; }
.directory-results__summary strong { display: block; font-size: 0.8rem; font-weight: 700; }
.directory-results__summary div > span { color: rgb(23 40 32 / 68%); display: block; font-size: 0.65rem; font-weight: 650; letter-spacing: 0.045em; text-transform: uppercase; }
.directory-results__map-link { align-items: center; color: var(--color-rust); display: inline-flex; font-size: 0.7rem; font-weight: 750; gap: 0.4rem; letter-spacing: 0.055em; text-decoration: none; text-transform: uppercase; }
.directory-results__links { align-items: center; display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; justify-content: flex-end; }
.directory-results__map-link svg { height: 1rem; width: 1rem; }
.directory-list { display: grid; gap: 0.8rem; }

/*********** DIRECTORY ENTRIES ***********/

.directory-entry__link:hover .directory-entry__title, .directory-entry__link:focus-visible .directory-entry__title { color: var(--color-rust); }
.directory-entry__link:hover .directory-entry__action span, .directory-entry__link:focus-visible .directory-entry__action span { transform: translateX(0.25rem); }
.directory-entry { border-bottom: 1px solid var(--color-line); padding-bottom: var(--space-4); }
.directory-entry__link { color: inherit; display: grid; gap: clamp(0.875rem, 2vw, 1.25rem); grid-template-columns: minmax(190px, 36%) minmax(0, 1fr); text-decoration: none; }
.directory-entry__media { align-self: stretch; background: rgb(35 75 58 / 8%); border-radius: var(--radius-md); margin: 0; min-height: 165px; overflow: hidden; position: relative; }
.directory-entry__media img, .directory-entry__placeholder { height: 100%; object-fit: cover; width: 100%; }
.directory-entry__placeholder { background: linear-gradient(135deg, transparent 49.5%, rgb(35 75 58 / 12%) 50%, transparent 50.5%), var(--color-paper); display: block; }
.directory-entry__body { align-self: center; min-width: 0; }
.directory-entry__meta { align-items: center; display: flex; flex-wrap: wrap; font-size: 0.7rem; font-weight: 800; gap: var(--space-2); justify-content: space-between; letter-spacing: 0.055em; margin-bottom: var(--space-2); text-transform: uppercase; }
.directory-entry__type { color: var(--color-rust); }
.directory-entry__rating { color: var(--color-forest); display: inline-flex; gap: 0.35rem; }
.directory-entry__rating strong { color: var(--color-rust); }
.directory-entry__title { font-size: clamp(1.4rem, 2.5vw, 1.8rem); margin-bottom: 0.15rem; transition: color 160ms ease; }
.directory-entry__location, .directory-entry__subtitle { font-size: 0.86rem; font-weight: 650; margin: 0 0 var(--space-2); }
.directory-entry__teaser { display: -webkit-box; font-size: 0.9rem; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; margin: 0 0 var(--space-2); overflow: hidden; }
.directory-entry__action { color: var(--color-rust); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; }
.directory-entry__action span { display: inline-block; transition: transform 160ms ease; }
.directory-list .directory-entry { background: rgb(248 243 231 / 68%); border: 1px solid var(--color-line); border-radius: var(--radius-md); overflow: hidden; padding: 0; transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease; }
.directory-list .directory-entry:hover { border-color: rgb(168 75 50 / 42%); box-shadow: 0 8px 22px rgb(23 40 32 / 9%); transform: translateY(-2px); }
.directory-list .directory-entry__link { gap: 0; grid-template-columns: minmax(180px, 32%) minmax(0, 1fr); }
.directory-list .directory-entry__media { border-radius: 0; min-height: 175px; position: relative; }
.directory-list .directory-entry__media img { transition: transform 260ms ease; }
.directory-list .directory-entry:hover .directory-entry__media img { transform: scale(1.025); }
.directory-list .directory-entry__body { padding: 0.85rem 1rem; }
.directory-list .directory-entry__meta { justify-content: flex-start; margin-bottom: 0.35rem; }
.directory-entry__rating-badge { align-items: baseline; background: var(--color-forest); border-radius: var(--radius-sm); bottom: 0.65rem; color: var(--color-paper); display: flex; gap: 0.12rem; left: 0.65rem; padding: 0.35rem 0.5rem; position: absolute; }
.directory-entry__rating-badge strong { color: var(--color-gold); font-size: 1rem; line-height: 1; }
.directory-entry__rating-badge small { color: var(--color-paper); font-size: 0.65rem; }
.directory-entry__rating-badge > span { font-size: 0.56rem; font-weight: 700; letter-spacing: 0.055em; margin-left: 0.2rem; text-transform: uppercase; }
.directory-entry__location { align-items: center; display: flex; gap: 0.35rem; }
.directory-entry__location svg { color: var(--color-rust); flex: 0 0 auto; height: 0.9rem; width: 0.9rem; }
.directory-list .directory-entry__teaser { -webkit-line-clamp: 2; line-clamp: 2; }
.directory-list .directory-entry__action { font-size: 0.68rem; font-weight: 700; }

/*********** DIRECTORY FILTER SIDEBAR ***********/

.directory-filter button:hover, .directory-filter button:focus-visible { background: var(--color-rust); border-color: var(--color-rust); color: var(--color-paper); }
.directory-sidebar { grid-column: 2; grid-row: 1 / span 2; position: sticky; top: 1.5rem; }
.directory-sidebar__inner { background: var(--color-forest); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); color: var(--color-paper); padding: clamp(1rem, 2vw, 1.25rem); }
.directory-sidebar .eyebrow { color: var(--color-gold); }
.directory-sidebar h2 { color: var(--color-paper); font-size: clamp(1.4rem, 2.25vw, 1.65rem); }
.directory-sidebar p { font-size: 0.82rem; }
.directory-filter { display: grid; gap: var(--space-2); margin-top: var(--space-3); }
.directory-filter label { font-size: 0.72rem; font-weight: 800; letter-spacing: 0.06em; margin-top: var(--space-1); text-transform: uppercase; }
.directory-filter button { background: var(--color-gold); border-color: var(--color-gold); color: var(--color-ink); margin-top: var(--space-1); width: 100%; }
.directory-filter__clear { color: var(--color-paper); font-size: 0.78rem; justify-self: center; margin-top: var(--space-1); }

/*********** SINGLE ARTICLES ***********/

.article-header { margin-bottom: var(--space-4); width: 100%; }
.article-header__meta { display: flex; flex-wrap: wrap; font-size: 0.75rem; font-weight: 800; gap: var(--space-3); letter-spacing: 0.07em; margin-bottom: var(--space-3); text-transform: uppercase; }
.article-header__meta a { color: var(--color-rust); }
.guide-article .article-header__meta { align-items: center; }
.article-deck { font-size: clamp(1.1rem, 2vw, 1.35rem); max-width: 52rem; }
.article-deck > :last-child, .article-deck:last-child { margin-bottom: 0; }
.article-image-credit { border-top: 1px solid var(--color-line); color: rgb(23 40 32 / 72%); font-size: 0.72rem; line-height: 1.45; margin-top: var(--space-5); padding-top: 0.65rem; }
.article-image-credit p { margin: 0.1rem 0; }
.article-image-credit strong { color: var(--color-forest); font-weight: 650; }
.article-hero { margin: 0 0 var(--space-5); position: relative; }
.article-hero img { border-radius: var(--radius-md); height: auto; width: 100%; }
.curiosity-rating { align-items: baseline; background: var(--color-forest); border-radius: var(--radius-sm) 0 var(--radius-md) 0; bottom: 0; color: var(--color-paper); display: flex; gap: var(--space-2); padding: 0.7rem 1rem; position: absolute; right: 0; text-transform: uppercase; }
.curiosity-rating span { font-size: 0.7rem; font-weight: 800; letter-spacing: 0.06em; }
.curiosity-rating small { color: rgb(248 243 231 / 75%); display: block; font-size: 0.62rem; letter-spacing: 0.025em; margin-top: 0.1rem; text-transform: none; }
.curiosity-rating strong { color: var(--color-gold); font-size: 1.35rem; }
.curiosity-rating--standalone { display: inline-flex; margin-bottom: var(--space-5); position: static; }
.oddity-article { align-items: start; display: grid; gap: 0 clamp(1.5rem, 3vw, 2.5rem); grid-template-columns: minmax(0, 1fr) minmax(260px, 330px); }
.oddity-article > :not(.article-layout), .article-layout { grid-column: 1; }
.article-layout { display: contents; }
.article-layout .article-content { grid-column: 1; }
.article-content { font-size: 1.03rem; min-width: 0; width: 100%; }

/*********** ARTICLE DETAILS ***********/

.visitor-card, .legend-facts { background: var(--color-paper); border-left: 4px solid var(--color-rust); border-radius: 0 var(--radius-md) var(--radius-md) 0; box-shadow: var(--shadow-sm); padding: 0.8rem 1rem; }
.visitor-card { grid-column: 2; grid-row: 1 / span 5; position: sticky; top: 1.5rem; }
.oddity-article > .visitor-card { grid-column: 1; grid-row: auto; margin-bottom: var(--space-4); position: static; }
.visitor-card .eyebrow { margin-bottom: 0.2rem; }
.visitor-card h2 { font-size: 1.35rem; margin-bottom: 0.25rem; }
.visitor-card dl, .visitor-card dd { margin: 0; }
.visitor-card dl > div { border-top: 1px solid var(--color-line); padding-block: 0.5rem; }
.visitor-card dt { font-size: 0.7rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.visitor-card dd { line-height: 1.4; margin-top: 0.1rem; }
.visitor-card__link { align-items: center; display: inline-flex; font-weight: 650; gap: 0.4rem; text-decoration: none; }
.visitor-card__link svg { height: 1em; width: 1em; }
.legend-article { align-items: start; display: grid; gap: 0 clamp(1.5rem, 3vw, 2.5rem); grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); }
.legend-article > :not(.legend-layout), .legend-layout { grid-column: 1; }
.legend-layout { display: contents; }
.legend-facts { grid-column: 2; grid-row: 1 / span 3; position: sticky; top: 1.5rem; }
.legend-layout .legend-main { grid-column: 1; min-width: 0; }
.legend-main .legend-facts { display: flex; gap: clamp(1.5rem, 4vw, 3rem); margin-bottom: var(--space-5); position: static; }
.legend-main .legend-facts p { margin: 0; }
.legend-facts--inline { display: flex; flex-wrap: wrap; gap: clamp(1rem, 3vw, 2rem); margin-bottom: var(--space-5); position: static; }
.legend-facts--inline p { margin: 0; }

/*********** MAPS ***********/

.article-map { border-top: 1px solid var(--color-line); margin-top: var(--space-5); padding-top: var(--space-5); }
.map-canvas { background: rgb(35 75 58 / 10%); border: 1px solid var(--color-line); border-radius: var(--radius-md); height: 420px; isolation: isolate; overflow: hidden; position: relative; z-index: 0; width: 100%; }
.map-canvas--directory { height: min(70vh, 720px); min-height: 520px; }
.map-page__count { font-size: 0.78rem; font-weight: 750; letter-spacing: 0.05em; text-align: right; text-transform: uppercase; }
.map-frame { background: var(--color-paper); border: 1px solid var(--color-line); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); overflow: hidden; }
.map-page .directory-header { border-bottom: 0; }
.map-frame__bar { align-items: center; background: var(--color-forest); color: var(--color-paper); display: flex; gap: var(--space-4); justify-content: space-between; padding: 0.75rem 1rem; }
.map-frame__bar strong { display: block; font-size: 0.95rem; font-weight: 650; }
.map-frame__kicker { color: var(--color-gold); display: block; font-size: 0.65rem; font-weight: 750; letter-spacing: 0.09em; line-height: 1.2; text-transform: uppercase; }
.map-reset { background: transparent; border-color: rgb(248 243 231 / 45%); border-radius: 0; color: var(--color-paper); font-size: 0.68rem; font-weight: 650; letter-spacing: 0.06em; min-height: 2rem; padding: 0.3rem 0.65rem; text-transform: uppercase; }
.map-frame .map-canvas { border: 0; border-radius: 0; }
.map-legend { align-items: center; display: flex; flex-wrap: wrap; font-size: 0.72rem; font-weight: 600; gap: 0.65rem 1.25rem; padding: 0.65rem 1rem; }
.map-legend span { align-items: center; display: inline-flex; gap: 0.4rem; }
.map-legend__pin { background: var(--color-rust); border: 2px solid var(--color-paper); border-radius: 50% 50% 50% 0; box-shadow: 0 1px 3px rgb(23 40 32 / 30%); display: inline-block; height: 0.8rem; transform: rotate(-45deg); width: 0.8rem; }
.map-legend__pin--high, .map-legend__pin--festival { background: var(--color-gold); }
.map-legend__pin--low { background: var(--color-forest); }
.map-pin-wrap { background: transparent; border: 0; }
.map-pin { background: var(--color-rust); border: 3px solid var(--color-paper); border-radius: 50% 50% 50% 0; box-shadow: 0 3px 8px rgb(23 40 32 / 35%); display: block; height: 26px; position: relative; transform: rotate(-45deg); width: 26px; }
.map-pin > span { background: var(--color-paper); border-radius: 50%; height: 7px; left: 50%; position: absolute; top: 50%; transform: translate(-50%, -50%); width: 7px; }
.map-pin--high, .map-pin--festival { background: var(--color-gold); }
.map-pin--low { background: var(--color-forest); }
.map-frame .leaflet-bar { border: 0; border-radius: 0; box-shadow: var(--shadow-sm); }
.map-frame .leaflet-bar a { background: var(--color-paper); border-color: var(--color-line); color: var(--color-forest); font-family: var(--font-body); }
.map-frame .leaflet-bar a:hover { background: var(--color-forest); color: var(--color-paper); }
.oddity-map-popup .leaflet-popup-content-wrapper { border-radius: var(--radius-sm); box-shadow: 0 8px 24px rgb(23 40 32 / 22%); overflow: hidden; padding: 0; }
.oddity-map-popup .leaflet-popup-content { margin: 0; width: auto !important; }
.map-popup-card { color: var(--color-forest); display: block; text-decoration: none; }
.map-popup-card img { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }
.map-popup-card h3 { font-size: 1.05rem; line-height: 1.2; margin: 0; padding: 0.75rem 0.9rem; }
.map-popup-card:hover h3, .map-popup-card:focus-visible h3 { color: var(--color-rust); }

/*********** FESTIVALS CALENDAR ***********/

.festival-calendar__frame { background: var(--color-paper); border: 1px solid var(--color-line); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); overflow: hidden; }
.festival-calendar__bar a { color: var(--color-paper); font-size: 0.72rem; font-weight: 750; letter-spacing: 0.055em; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.festival-calendar__bar a:hover, .festival-calendar__bar a:focus-visible { color: var(--color-gold); }
.festival-calendar__months { background: rgb(35 75 58 / 6%); border-bottom: 1px solid var(--color-line); display: grid; gap: 1px; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.festival-calendar__month-link { align-items: center; background: var(--color-paper); color: var(--color-forest); display: flex; font-size: 0.72rem; font-weight: 700; gap: 0.3rem; justify-content: space-between; min-height: 3.25rem; padding: 0.65rem 0.8rem; text-decoration: none; }
.festival-calendar__month-link strong { color: var(--color-rust); font-size: 0.8rem; }
.festival-calendar__month-link.is-current { background: rgb(198 156 60 / 17%); box-shadow: inset 0 -3px var(--color-gold); }
.festival-calendar__month-link.is-empty { color: rgb(23 40 32 / 55%); }
.festival-calendar__month-link:hover, .festival-calendar__month-link:focus-visible { background: var(--color-forest); color: var(--color-paper); }
.festival-calendar__month-link:hover strong, .festival-calendar__month-link:focus-visible strong { color: var(--color-gold); }
.festival-calendar__list { padding: clamp(1rem, 2.5vw, 2rem); }
.festival-calendar__section { border-bottom: 1px solid var(--color-line); padding-block: clamp(1.25rem, 2.5vw, 2rem); scroll-margin-top: 1rem; }
.festival-calendar__section:first-child { padding-top: 0; }
.festival-calendar__section:last-child { border-bottom: 0; padding-bottom: 0; }
.festival-calendar__section.is-empty { padding-block: 0.8rem; }
.festival-calendar__section-heading, .festival-calendar__section-heading > div { align-items: baseline; display: flex; flex-wrap: wrap; gap: 0.4rem 0.7rem; }
.festival-calendar__section-heading { justify-content: space-between; margin-bottom: 0.8rem; }
.festival-calendar__section-heading h2 { font-size: clamp(1.3rem, 2.2vw, 1.8rem); margin: 0; }
.festival-calendar__index { color: var(--color-gold); font-size: 0.8rem; font-weight: 800; letter-spacing: 0.07em; }
.festival-calendar__now { color: var(--color-rust); font-size: 0.62rem; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; }
.festival-calendar__count { color: rgb(23 40 32 / 65%); font-size: 0.68rem; font-weight: 750; letter-spacing: 0.05em; text-transform: uppercase; }
.festival-calendar__events { display: grid; gap: 0.9rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.festival-calendar__event { background: rgb(248 243 231 / 70%); border: 1px solid var(--color-line); border-radius: var(--radius-md); color: var(--color-forest); display: block; min-width: 0; overflow: hidden; text-decoration: none; transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease; }
.festival-calendar__event:hover, .festival-calendar__event:focus-visible { border-color: var(--color-rust); box-shadow: 0 8px 22px rgb(23 40 32 / 9%); transform: translateY(-2px); }
.festival-calendar__event img, .festival-calendar__placeholder { aspect-ratio: 16 / 9; background: rgb(35 75 58 / 13%); display: block; object-fit: cover; width: 100%; }
.festival-calendar__event-body { display: grid; gap: 0.3rem; padding: 0.85rem 1rem 1rem; }
.festival-calendar__event-body strong { font-family: var(--font-display); font-size: 1.15rem; line-height: 1.25; }
.festival-calendar__event-body small { color: rgb(23 40 32 / 68%); font-size: 0.72rem; }
.festival-calendar__event-body > span { color: var(--color-rust); font-size: 0.66rem; font-weight: 800; letter-spacing: 0.055em; margin-top: 0.3rem; text-transform: uppercase; }
.festival-calendar__empty-note { color: rgb(23 40 32 / 60%); font-size: 0.78rem; margin: 0 0 0 2rem; }
.festival-calendar__footer { align-items: center; background: rgb(35 75 58 / 6%); display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; justify-content: space-between; padding: 0.9rem clamp(1rem, 2.5vw, 2rem); }
.festival-calendar__footer p { color: rgb(23 40 32 / 70%); font-size: 0.72rem; margin: 0; }
.festival-calendar__footer a { color: var(--color-rust); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.055em; text-decoration: none; text-transform: uppercase; }
.festival-calendar__footer a:hover, .festival-calendar__footer a:focus-visible { text-decoration: underline; }

/*********** TAXONOMY INDEXES ***********/

.term-card:hover, .term-card:focus-visible { background: var(--color-paper); border-color: var(--color-rust); }
.term-grid { display: grid; gap: var(--space-3); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.term-card { align-items: center; background: rgb(248 243 231 / 70%); border: 1px solid var(--color-line); border-radius: var(--radius-md); color: var(--color-forest); display: grid; gap: var(--space-3); grid-template-columns: 1fr auto auto; min-height: 6rem; padding: var(--space-4); text-decoration: none; }
.term-card__name { font-family: var(--font-display); font-size: 1.45rem; }
.term-card__count { align-items: center; border: 1px solid var(--color-rust); border-radius: 50%; display: inline-flex; font-size: 0.75rem; height: 2.25rem; justify-content: center; width: 2.25rem; }
.term-card__action { color: var(--color-rust); }
.term-card--state { display: grid; grid-template-areas: "code" "name" "count"; grid-template-columns: 1fr; grid-template-rows: auto 1fr auto; min-height: 8.5rem; overflow: hidden; position: relative; transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease; }
.term-card--state .term-card__code { color: var(--color-forest); font-size: 2.25rem; font-weight: 800; left: 0.8rem; letter-spacing: -0.05em; opacity: 0.11; position: absolute; text-transform: uppercase; top: 0.35rem; transition: color 180ms ease, opacity 180ms ease; z-index: 0; }
.term-card--state .term-card__icon { color: rgb(35 75 58 / 13%); height: 8.5rem; position: absolute; right: -0.75rem; top: 0.35rem; transition: color 180ms ease, transform 180ms ease; width: 62%; }
.term-card--state .term-card__icon svg { fill: currentColor; height: 100%; width: 100%; }
.term-card--state .term-card__name { align-self: end; font-size: 1.35rem; font-weight: 720; grid-area: name; position: relative; z-index: 1; }
.term-card--state .term-card__count { align-items: baseline; border: 0; border-radius: 0; display: flex; font-size: 0.68rem; gap: 0.3rem; grid-area: count; height: auto; justify-content: flex-start; letter-spacing: 0.055em; position: relative; text-transform: uppercase; width: auto; z-index: 1; }
.term-card--state .term-card__count strong { color: var(--color-rust); font-size: 0.9rem; }
.term-card--state:hover, .term-card--state:focus-visible { background: var(--color-forest); border-color: var(--color-forest); color: var(--color-paper); transform: translateY(-0.15rem); }
.term-card--state:hover .term-card__code, .term-card--state:focus-visible .term-card__code { color: var(--color-gold); opacity: 0.16; }
.term-card--state:hover .term-card__count strong, .term-card--state:focus-visible .term-card__count strong { color: var(--color-gold); }
.term-card--state:hover .term-card__icon, .term-card--state:focus-visible .term-card__icon { color: rgb(198 156 60 / 22%); transform: scale(1.06) rotate(-2deg); }
.term-card--type { display: grid; grid-template-areas: "name" "count"; grid-template-columns: 1fr; grid-template-rows: 1fr auto; min-height: 8.5rem; overflow: hidden; position: relative; transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease; }
.term-card--type .term-card__icon { color: rgb(35 75 58 / 13%); height: 8rem; position: absolute; right: -0.5rem; top: 0.2rem; transition: color 180ms ease, transform 180ms ease; width: 48%; }
.term-card--type .term-card__icon svg { fill: currentColor; height: 100%; stroke: none; width: 100%; }
.term-card--type .term-card__name { align-self: end; font-size: 1.35rem; font-weight: 720; grid-area: name; max-width: 82%; position: relative; z-index: 1; }
.term-card--type .term-card__count { align-items: baseline; border: 0; border-radius: 0; display: flex; font-size: 0.68rem; gap: 0.3rem; grid-area: count; height: auto; justify-content: flex-start; letter-spacing: 0.055em; position: relative; text-transform: uppercase; width: auto; z-index: 1; }
.term-card--type .term-card__count strong { color: var(--color-rust); font-size: 0.9rem; }
.term-card--type:hover, .term-card--type:focus-visible { background: var(--color-forest); border-color: var(--color-forest); color: var(--color-paper); transform: translateY(-0.15rem); }
.term-card--type:hover .term-card__count strong, .term-card--type:focus-visible .term-card__count strong { color: var(--color-gold); }
.term-card--type:hover .term-card__icon, .term-card--type:focus-visible .term-card__icon { color: rgb(198 156 60 / 24%); transform: scale(1.06) rotate(-2deg); }

/*********** HOMEPAGE HERO ***********/

.home-hero { background: var(--color-paper); border-bottom: 1px solid var(--color-line); }
.home-hero__inner { align-items: center; display: grid; gap: clamp(1.5rem, 5vw, 4rem); grid-template-columns: minmax(0, 1.6fr) minmax(230px, 0.7fr); min-height: clamp(440px, 56vh, 620px); padding-block: clamp(2.75rem, 6vw, 5rem); }
.home-hero__copy > p:not(.eyebrow) { font-size: clamp(1.1rem, 2vw, 1.35rem); max-width: 48rem; }
.home-hero__index { border-block: 1px solid var(--color-line); display: grid; gap: 0; grid-template-columns: auto 1fr; }
.home-hero__index span, .home-hero__index p { border-bottom: 1px solid var(--color-line); margin: 0; padding-block: var(--space-3); }
.home-hero__index span { color: var(--color-rust); font-size: 0.75rem; font-weight: 800; padding-right: var(--space-4); }

/*********** HOMEPAGE CONTENT ***********/

.home-page__content { overflow: clip; }
.home-page__content > * { margin-inline: auto; max-width: var(--reading-width); width: min(calc(100% - clamp(1.75rem, 5vw, 3rem)), var(--reading-width)); }
.home-page__content > .alignwide { max-width: var(--content-width); width: min(calc(100% - clamp(1.75rem, 5vw, 3rem)), var(--content-width)); }
.home-page__content > .alignfull { max-width: none; width: 100%; }
.home-page__content > .wp-block-shortcode:has(.oddities-showcase) { max-width: var(--content-width); width: min(calc(100% - clamp(1.75rem, 5vw, 3rem)), var(--content-width)); }
.home-page__content > .wp-block-shortcode:has(.guides-feature) { max-width: none; width: 100%; }
.home-page__content > .wp-block-shortcode:has(.legends-showcase) { max-width: none; width: 100%; }
.home-search-bar { background: var(--color-forest); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); margin-block: clamp(1rem, 2.5vw, 1.75rem); padding: var(--space-3); }
.home-search-bar__form { align-items: stretch; display: grid; gap: var(--space-2); grid-template-columns: minmax(12rem, 1.35fr) repeat(3, minmax(9rem, 1fr)) auto; }
.home-search-bar :is(input, select, button) { border: 0; border-radius: var(--radius-sm); font-size: 0.78rem; min-height: 2.65rem; width: 100%; }
.home-search-bar :is(input, select) { background-color: var(--color-paper); color: var(--color-ink); padding-inline: 0.75rem; }
.home-search-bar button { background: var(--color-gold); color: var(--color-ink); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.055em; min-width: 6.5rem; padding-inline: 1.25rem; text-transform: uppercase; }
.home-search-bar button:hover, .home-search-bar button:focus-visible { background: var(--color-rust); color: var(--color-paper); }
.home-section { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.section-heading { margin-bottom: var(--space-5); }
.section-heading--split { align-items: end; display: flex; gap: var(--space-4); justify-content: space-between; }
.section-heading--split h2, .section-heading--split p { margin-bottom: 0; }
.feature-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.feature-grid .directory-entry { background: rgb(248 243 231 / 62%); border: 1px solid var(--color-line); border-radius: var(--radius-md); overflow: hidden; padding: 0; transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease; }
.feature-grid .directory-entry:hover, .feature-grid .directory-entry:focus-within { border-color: rgb(168 75 50 / 42%); box-shadow: 0 8px 22px rgb(23 40 32 / 9%); transform: translateY(-2px); }
.feature-grid .directory-entry__link { display: block; }
.feature-grid .directory-entry__media { border-radius: 0; height: auto; min-height: 0; }
.feature-grid .directory-entry__media img, .feature-grid .directory-entry__placeholder { aspect-ratio: 4 / 3; }
.feature-grid .directory-entry__media img { transition: transform 260ms ease; }
.feature-grid .directory-entry:hover .directory-entry__media img, .feature-grid .directory-entry:focus-within .directory-entry__media img { transform: scale(1.025); }
.feature-grid .directory-entry__body { padding: var(--space-3); }
.feature-grid .directory-entry__title { font-size: clamp(1.35rem, 2vw, 1.65rem); }
.feature-grid .directory-entry__teaser { -webkit-line-clamp: 2; line-clamp: 2; }
.guides-feature { background: transparent; left: 50%; margin-block: 0 clamp(1.5rem, 3vw, 2.5rem); margin-inline: 0; max-width: none; position: relative; transform: translateX(-50%); width: 100vw; }
.guides-feature__inner { margin-inline: auto; max-width: var(--content-width); padding: clamp(1rem, 2vw, 1.5rem) clamp(0.875rem, 2.5vw, 1.5rem); }
.guides-feature__heading { align-items: end; display: flex; gap: 1rem; justify-content: space-between; margin-bottom: 1rem; }
.guides-feature__heading .eyebrow { font-size: 0.68rem; margin-bottom: 0.2rem; }
.guides-feature__heading h2 { font-size: clamp(1.45rem, 2.7vw, 2rem); margin: 0; }
.guides-feature__all { color: var(--color-forest); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.05em; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.guides-feature__all:hover, .guides-feature__all:focus-visible { color: var(--color-rust); }
.guides-feature__grid { display: grid; gap: 0.8rem; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); grid-template-rows: repeat(2, minmax(0, 1fr)); height: clamp(320px, 33vw, 410px); }
.guides-feature__grid:has(> :only-child) { grid-template-columns: 1fr; grid-template-rows: 1fr; }
.guides-feature__grid:has(> :nth-child(2):last-child) { grid-template-rows: 1fr; }
.guides-feature__card { background: var(--color-parchment); border: 1px solid var(--color-line); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); min-width: 0; overflow: hidden; }
.guides-feature__card:not(.guides-feature__card--lead) { background: rgb(248 243 231 / 62%); box-shadow: none; transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease; }
.guides-feature__card:not(.guides-feature__card--lead):hover, .guides-feature__card:not(.guides-feature__card--lead):focus-within { border-color: rgb(168 75 50 / 42%); box-shadow: 0 8px 22px rgb(23 40 32 / 9%); transform: translateY(-2px); }
.guides-feature__card--lead { grid-row: span 2; }
.guides-feature__grid:has(> :only-child) .guides-feature__card--lead { grid-row: auto; }
.guides-feature__grid:has(> :nth-child(2):last-child) .guides-feature__card--lead { grid-row: auto; }
.guides-feature__card-link { color: var(--color-ink); display: grid; grid-template-columns: 42% minmax(0, 1fr); height: 100%; position: relative; text-decoration: none; }
.guides-feature__media { background: rgb(35 75 58 / 10%); margin: 0; min-height: 0; overflow: hidden; }
.guides-feature__media img, .guides-feature__media .directory-entry__placeholder { height: 100%; object-fit: cover; transition: transform 260ms ease; width: 100%; }
.guides-feature__card-body { align-self: center; min-width: 0; padding: clamp(0.85rem, 1.7vw, 1.35rem); position: relative; }
.guides-feature__category { margin-bottom: 0.55rem; }
.guides-feature__card h3 { font-size: clamp(1.1rem, 1.7vw, 1.5rem); line-height: 1.15; margin: 0 0 0.5rem; }
.guides-feature__card p { display: -webkit-box; font-size: 0.82rem; line-height: 1.4; margin: 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; }
.guides-feature__card:hover img, .guides-feature__card:focus-within img { transform: scale(1.035); }
.guides-feature__card:not(.guides-feature__card--lead):hover img, .guides-feature__card:not(.guides-feature__card--lead):focus-within img { transform: scale(1.025); }
.guides-feature__card:hover h3, .guides-feature__card:focus-within h3 { color: var(--color-rust); }
.guides-feature__card--lead .guides-feature__card-link { display: block; }
.guides-feature__card--lead .guides-feature__card-link::after { background: linear-gradient(180deg, transparent 25%, rgb(9 27 20 / 82%) 100%); content: ""; inset: 0; pointer-events: none; position: absolute; }
.guides-feature__card--lead .guides-feature__media { inset: 0; position: absolute; }
.guides-feature__card--lead .guides-feature__card-body { bottom: 0; color: var(--color-paper); left: 0; padding: clamp(1rem, 2.5vw, 2rem); position: absolute; right: 0; z-index: 1; }
.guides-feature__card--lead .guides-feature__category { color: var(--color-gold); }
.guides-feature__card--lead h3 { color: var(--color-paper); font-size: clamp(1.7rem, 3vw, 2.5rem); max-width: 18ch; }
.guides-feature__card--lead p { font-size: clamp(0.85rem, 1.2vw, 1rem); max-width: 47rem; }
.guides-feature__card--lead:hover h3, .guides-feature__card--lead:focus-within h3 { color: var(--color-gold); }
@media (max-width: 900px) {
.guides-feature__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; height: auto; }
.guides-feature__card--lead, .guides-feature__grid:has(> :nth-child(2):last-child) .guides-feature__card--lead { grid-column: 1 / -1; grid-row: auto; min-height: 280px; }
.guides-feature__grid:has(> :nth-child(2):last-child) .guides-feature__card:not(.guides-feature__card--lead) { grid-column: 1 / -1; }
.guides-feature__card:not(.guides-feature__card--lead) .guides-feature__card-link { display: block; }
.guides-feature__card:not(.guides-feature__card--lead) .guides-feature__media { aspect-ratio: 16 / 9; }
.guides-feature__grid:has(> :nth-child(2):last-child) .guides-feature__card:not(.guides-feature__card--lead) .guides-feature__card-link { display: grid; grid-template-columns: 42% minmax(0, 1fr); min-height: 180px; }
.guides-feature__grid:has(> :nth-child(2):last-child) .guides-feature__card:not(.guides-feature__card--lead) .guides-feature__media { aspect-ratio: auto; }
}
@media (max-width: 640px) {
.guides-feature__heading { align-items: start; flex-direction: column; gap: 0.5rem; }
.guides-feature__grid { grid-template-columns: 1fr; }
.guides-feature__card--lead, .guides-feature__grid:has(> :nth-child(2):last-child) .guides-feature__card--lead { min-height: 240px; }
.guides-feature__card:not(.guides-feature__card--lead) .guides-feature__card-link { display: grid; grid-template-columns: 38% minmax(0, 1fr); min-height: 150px; }
.guides-feature__card:not(.guides-feature__card--lead) .guides-feature__media { aspect-ratio: auto; }
.guides-feature__card:not(.guides-feature__card--lead) p { -webkit-line-clamp: 2; line-clamp: 2; }
}
.legends-showcase { color: var(--color-forest); left: 50%; margin-block: clamp(1.5rem, 3vw, 2.5rem); margin-inline: 0; max-width: none; position: relative; transform: translateX(-50%); width: 100vw; }
.legends-showcase__band { background: var(--color-forest); color: var(--color-paper); padding-block: clamp(0.625rem, 1.25vw, 1rem); }
.legends-showcase__inner { margin-inline: auto; max-width: var(--content-width); padding-inline: clamp(0.875rem, 2.5vw, 1.5rem); }
.legends-showcase__heading { align-items: end; display: flex; gap: 1rem; justify-content: space-between; margin: 0 auto -0.3rem; max-width: var(--content-width); padding: 0 clamp(0.875rem, 2.5vw, 1.5rem) 0.75rem; position: relative; z-index: 1; }
.legends-showcase__heading h2 { color: var(--color-forest); font-size: 1.86rem; font-weight: 900; letter-spacing: 0.05em; margin: 0; text-transform: uppercase; margin-bottom:-13px; }
.legends-showcase__all { color: var(--color-forest); font-size: 0.68rem; font-weight: 650; letter-spacing: 0.05em; text-decoration: none; text-transform: uppercase; }
.legends-showcase__all:hover, .legends-showcase__all:focus-visible { color: var(--color-rust); }
.legends-showcase__carousel { position: relative; }
.legends-showcase__arrow { background: var(--color-ink); border: 1px solid var(--color-paper); border-radius: var(--radius-sm); color: var(--color-paper); font-size: 1rem; font-weight: 500; height: 2.25rem; min-height: 2.25rem; opacity: 0.55; padding: 0; position: absolute; top: 50%; transform: translateY(-50%); transition: opacity 180ms ease, background-color 180ms ease; width: 2.25rem; z-index: 2; }
.legends-showcase__arrow[data-legends-scroll="previous"] { left: 0.5rem; }
.legends-showcase__arrow[data-legends-scroll="next"] { right: 0.5rem; }
.legends-showcase__arrow:hover, .legends-showcase__arrow:focus-visible { background: var(--color-gold); border-color: var(--color-gold); color: var(--color-ink); opacity: 1; }
.legends-showcase__arrow:disabled { cursor: default; opacity: 0.25; }
.legends-showcase__track { --legends-gap: 0.75rem; display: grid; gap: var(--legends-gap); grid-auto-columns: calc((100% - 3 * var(--legends-gap)) / 4); grid-auto-flow: column; min-width: 0; overflow-x: auto; overscroll-behavior-inline: contain; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.legends-showcase__track::-webkit-scrollbar { display: none; }
.legends-showcase__card { background: rgb(248 243 231 / 8%); border: 1px solid rgb(248 243 231 / 22%); border-radius: var(--radius-sm); min-width: 0; overflow: hidden; scroll-snap-align: start; }
.legends-showcase__card a { color: var(--color-paper); display: block; height: 100%; text-decoration: none; }
.legends-showcase__image { background: rgb(248 243 231 / 10%); margin: 0; overflow: hidden; }
.legends-showcase__image img, .legends-showcase__image .directory-entry__placeholder { aspect-ratio: 2 / 1; height: auto; object-fit: cover; width: 100%; }
.legends-showcase__image img { transition: transform 220ms ease; }
.legends-showcase__card:hover img, .legends-showcase__card:focus-within img { transform: scale(1.04); }
.legends-showcase__card-body { padding: 0.65rem 0.7rem 0.75rem; }
.legends-showcase__card h3 { color: var(--color-paper); font-size: clamp(0.82rem, 1.1vw, 1rem); font-weight: 650; line-height: 1.2; margin: 0 0 0.5rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.legends-showcase__card:hover h3, .legends-showcase__card:focus-within h3 { color: var(--color-gold); }
.legends-showcase__tag { color: var(--color-gold); max-width: 100%; white-space: nowrap; }
.legends-showcase__tag > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 640px) {
.legends-showcase__track { grid-auto-columns: calc((100% - var(--legends-gap)) / 2); }
.legends-showcase__heading { align-items: start; flex-direction: column; }
.legends-showcase__arrow[data-legends-scroll="previous"] { left: 0.25rem; }
.legends-showcase__arrow[data-legends-scroll="next"] { right: 0.25rem; }
}
.home-page-content { border-top: 1px solid var(--color-line); }

/*********** HOMEPAGE MAP CALLOUT ***********/

.map-callout { background: var(--color-forest); color: var(--color-paper); }
.map-callout__inner { align-items: center; display: grid; gap: clamp(1.25rem, 3vw, 2.5rem); grid-template-columns: 1.2fr 1fr auto; padding-block: clamp(2.25rem, 4vw, 3.5rem); }
.map-callout h2 { color: var(--color-paper); margin: 0; }
.map-callout .eyebrow { color: var(--color-gold); }
.map-callout p { margin: 0; }

/*********** FOOTER ***********/

.site-footer { background: #193d30; border-top: 2px solid var(--color-gold); color: var(--color-paper); }
.site-footer__inner { align-items: start; display: grid; gap: clamp(1.5rem, 3.5vw, 3.25rem); grid-template-columns: 0.85fr 1.15fr 1fr 1.6fr; padding-block: clamp(2.25rem, 5vw, 4rem) var(--space-5); }
.site-footer__brand p { font-size: 0.78rem; line-height: 1.35; margin: var(--space-3) 0 0; max-width: 13rem; }
.site-footer__logo-link { display: inline-block; max-width: 11rem; }
.site-footer__logo { height: auto; opacity: 0.94; width: 100%; }
.site-footer__logo-link:hover .site-footer__logo, .site-footer__logo-link:focus-visible .site-footer__logo { opacity: 1; }
.site-footer__map { border: 1px solid transparent; border-radius: var(--radius-md); display: block; padding: 0.55rem; text-decoration: none; transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease; }
.site-footer__map img { height: auto; margin: auto; max-width: 16rem; width: 100%; }
.site-footer__map:hover, .site-footer__map:focus-visible { background: rgb(248 243 231 / 7%); border-color: rgb(198 156 60 / 60%); transform: translateY(-2px); }
.site-footer__statement { position: relative; }
.site-footer__statement p { font-size: 0.88rem; line-height: 1.4; margin: 1.75rem 0 0; max-width: 17rem; }
.site-footer__quote { color: var(--color-gold); font-family: Georgia, serif; font-size: 4rem; font-weight: 700; left: -0.1rem; line-height: 1; position: absolute; top: -0.5rem; }
.site-footer__heading { color: var(--color-gold); display: block; font-family: var(--font-display); font-size: 1rem; letter-spacing: 0.02em; margin-bottom: 0.65rem; }
.site-footer a { color: var(--color-paper); }
.footer-section-buttons { display: grid; gap: 0.45rem; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.footer-section-buttons a { align-items: center; border: 1px solid rgb(198 156 60 / 55%); border-radius: var(--radius-sm); display: flex; font-size: 0.67rem; font-weight: 800; justify-content: center; letter-spacing: 0.045em; min-height: 2.25rem; padding: 0.4rem 0.55rem; text-align: center; text-decoration: none; text-transform: uppercase; }
.footer-section-buttons a:hover, .footer-section-buttons a:focus-visible { background: var(--color-gold); border-color: var(--color-gold); color: var(--color-ink); }
.site-footer__copyright { border-top: 1px solid rgb(248 243 231 / 22%); font-size: 0.68rem; grid-column: 1 / -1; margin: calc(var(--space-3) * -1) 0 0; padding-top: var(--space-3); }

/*********** RESPONSIVE - MOBILE ***********/

@media (max-width: 760px) {
.site-header__inner { display: flex; justify-content: center; width: 100%; }
.site-branding { justify-content: center; width: 100%; }
.site-branding .custom-logo-link { max-width: 300px; width: calc(100vw - 2rem); }
.site-banner__message { display: none; }
.nav-toggle { display: inline-flex; }
.primary-menu { align-items: stretch; display: none; flex-direction: column; gap: 0; justify-content: flex-start; padding-bottom: var(--space-3); }
.primary-menu.is-open { display: flex; }
.primary-menu a { border-top: 1px solid rgb(248 243 231 / 15%); padding: 0.8rem 0; }
.home-search-bar__form { grid-template-columns: 1fr; }
.home-search-bar button { width: 100%; }
.primary-menu .sub-menu { border: 0; box-shadow: none; display: block; left: auto; min-width: 0; padding: 0 0 0 var(--space-4); position: static; width: 100%; }
.primary-menu .sub-menu a { width: 100%; }
.entry-card { grid-template-columns: 1fr; }
.entry-card__image img { aspect-ratio: 4 / 3; }
.entry-card__content { padding: 0 var(--space-4) var(--space-4); }
.site-footer__inner { gap: var(--space-6); grid-template-columns: 1fr; }
.site-footer__brand p { max-width: 22rem; }
.site-footer__map { max-width: 18rem; text-align: left; }
.site-footer__map svg { margin-inline: 0; }
.site-footer__statement p { max-width: 24rem; }
.site-footer__copyright { grid-column: auto; margin-top: 0; }
.directory-page, .oddity-article, .legend-article, .sidebar-page, .guide-page, .guide-single { display: block; }
.directory-layout, .article-layout, .legend-layout { display: contents; }
.directory-sidebar { margin-bottom: var(--space-5); position: static; }
.directory-entry__link { grid-template-columns: 1fr; }
.directory-list .directory-entry__link { grid-template-columns: 1fr; }
.directory-entry__media { min-height: 0; }
.directory-list .directory-entry__media { min-height: 0; }
.directory-entry__media img, .directory-entry__placeholder { aspect-ratio: 4 / 3; }
.guide-card__link { grid-template-columns: 1fr; }
.guide-card__media { min-height: 0; }
.guide-card__media img, .guide-card__media .directory-entry__placeholder { aspect-ratio: 16 / 9; }
.visitor-card, .legend-facts { margin-bottom: var(--space-5); position: static; }
.term-grid, .feature-grid { grid-template-columns: 1fr; }
.home-hero__inner, .map-callout__inner { grid-template-columns: 1fr; }
.home-hero__inner { min-height: 0; }
.map-canvas--directory { height: 58vh; min-height: 390px; }
.map-frame__bar { padding: 0.65rem 0.75rem; }
.map-legend { padding-inline: 0.75rem; }
.section-heading--split { align-items: flex-start; flex-direction: column; }
}

/*********** RESPONSIVE - TABLET ***********/

@media (min-width: 761px) and (max-width: 980px) {
.site-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.site-footer__copyright { grid-column: 1 / -1; margin-top: 0; }
.directory-page, .oddity-article, .legend-article, .sidebar-page, .guide-page, .guide-single { grid-template-columns: minmax(0, 1fr) minmax(230px, 270px); }
.directory-entry__link { grid-template-columns: 1fr; }
.directory-list .directory-entry__link { grid-template-columns: 1fr; }
.directory-entry__media img, .directory-entry__placeholder { aspect-ratio: 16 / 9; }
.guide-card__link { grid-template-columns: 1fr; }
.guide-card__media img, .guide-card__media .directory-entry__placeholder { aspect-ratio: 16 / 9; }
.term-grid, .feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.map-callout__inner { grid-template-columns: 1fr 1fr; }
.map-callout__inner .button { grid-column: 1 / -1; justify-self: start; }
}

/*********** FESTIVALS CALENDAR RESPONSIVE ***********/

@media (max-width: 980px) {
.festival-calendar__months { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.festival-calendar__events { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
.festival-calendar__bar { align-items: flex-start; flex-direction: column; gap: 0.5rem; }
.festival-calendar__months { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.festival-calendar__events { grid-template-columns: 1fr; }
.festival-calendar__section-heading { align-items: flex-start; }
.festival-calendar__empty-note { margin-left: 0; }
}

/*********** REDUCED MOTION ***********/

@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
.legends-showcase__track { scroll-behavior: auto; }
}
