:root {
  --forest: #183f35;
  --forest-2: #255246;
  --cream: #f6f0e3;
  --paper: #fffdf8;
  --ink: #1f2d28;
  --muted: #65726c;
  --rust: #b95738;
  --gold: #c78a2d;
  --line: #d9d1c2;
  --shadow: 0 18px 50px rgba(35, 48, 41, .12);
  --radius: 18px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.5; }
body, input, textarea, select, button { font-size: 16px; }
img { max-width: 100%; display: block; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #e8a641; outline-offset: 3px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: Georgia, "Times New Roman", serif; line-height: .98; letter-spacing: -.035em; }
address { font-style: normal; }

/* Leaflet's structural CSS is included locally as a resilient fallback. Without
   these positioning rules, map tiles render as ordinary page images. */
.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer { position: absolute; left: 0; top: 0; }
.leaflet-container { overflow: hidden; -webkit-tap-highlight-color: transparent; background: #ddd; outline-offset: 1px; }
.leaflet-container.leaflet-touch-zoom { touch-action: pan-x pan-y; }
.leaflet-container.leaflet-touch-drag { touch-action: none; touch-action: pinch-zoom; }
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { touch-action: none; }
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow { user-select: none; -webkit-user-drag: none; }
.leaflet-tile::selection { background: transparent; }
.leaflet-safari .leaflet-tile { image-rendering: -webkit-optimize-contrast; }
.leaflet-safari .leaflet-tile-container { width: 1600px; height: 1600px; transform-origin: 0 0; }
.leaflet-marker-icon,
.leaflet-marker-shadow { display: block; }
.leaflet-container .leaflet-overlay-pane svg { max-width: none !important; max-height: none !important; }
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile { max-width: none !important; max-height: none !important; width: auto; padding: 0; }
.leaflet-container img.leaflet-tile { mix-blend-mode: normal; }
.leaflet-container.leaflet-touch-zoom { touch-action: pan-x pan-y; }
.leaflet-container.leaflet-touch-drag { touch-action: none; }
.leaflet-tile { filter: inherit; visibility: hidden; }
.leaflet-tile-loaded { visibility: inherit; }
.leaflet-zoom-box { width: 0; height: 0; box-sizing: border-box; z-index: 800; }
.leaflet-overlay-pane svg { user-select: none; }
.leaflet-pane { z-index: 400; }
.leaflet-tile-pane { z-index: 200; }
.leaflet-overlay-pane { z-index: 400; }
.leaflet-shadow-pane { z-index: 500; }
.leaflet-marker-pane { z-index: 600; }
.leaflet-tooltip-pane { z-index: 650; }
.leaflet-popup-pane { z-index: 700; }
.leaflet-map-pane canvas { z-index: 100; }
.leaflet-map-pane svg { z-index: 200; }
.leaflet-vml-shape { width: 1px; height: 1px; }
.lvml { display: inline-block; position: absolute; behavior: url(#default#VML); }
.leaflet-control { position: relative; z-index: 800; pointer-events: auto; }
.leaflet-top,
.leaflet-bottom { position: absolute; z-index: 1000; pointer-events: none; }
.leaflet-top { top: 0; }
.leaflet-right { right: 0; }
.leaflet-bottom { bottom: 0; }
.leaflet-left { left: 0; }
.leaflet-control { float: left; clear: both; }
.leaflet-right .leaflet-control { float: right; }
.leaflet-top .leaflet-control { margin-top: 10px; }
.leaflet-bottom .leaflet-control { margin-bottom: 10px; }
.leaflet-left .leaflet-control { margin-left: 10px; }
.leaflet-right .leaflet-control { margin-right: 10px; }
.leaflet-fade-anim .leaflet-popup { opacity: 0; transition: opacity .2s linear; }
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { opacity: 1; }
.leaflet-zoom-animated { transform-origin: 0 0; }
.leaflet-zoom-anim .leaflet-zoom-animated { transition: transform .25s cubic-bezier(0,0,.25,1); }
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile { transition: none; }
.leaflet-zoom-anim .leaflet-zoom-hide { visibility: hidden; }
.leaflet-interactive { cursor: pointer; }
.leaflet-grab { cursor: grab; }
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive { cursor: crosshair; }
.leaflet-popup-pane,
.leaflet-control { cursor: auto; }
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive { cursor: grabbing; }
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container { pointer-events: none; }
.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive,
svg.leaflet-image-layer.leaflet-interactive path { pointer-events: auto; }
.leaflet-bar { border: 1px solid rgba(0,0,0,.18); border-radius: 6px; box-shadow: 0 4px 14px rgba(31,45,40,.18); }
.leaflet-bar a { display: block; width: 31px; height: 31px; border-bottom: 1px solid #ddd; color: var(--forest); background: var(--paper); line-height: 31px; text-align: center; text-decoration: none; }
.leaflet-bar a:first-child { border-radius: 5px 5px 0 0; }
.leaflet-bar a:last-child { border-bottom: 0; border-radius: 0 0 5px 5px; }
.leaflet-bar a:hover,
.leaflet-bar a:focus { background: #f2ede3; }
.leaflet-bar a.leaflet-disabled { color: #aaa; cursor: default; background: #f4f4f4; }
.leaflet-control-zoom-in,
.leaflet-control-zoom-out { font: bold 18px "Lucida Console", Monaco, monospace; text-indent: 1px; }
.leaflet-control-attribution { margin: 0; padding: 2px 6px; color: #333; background: rgba(255,255,255,.82); font-size: 10px; }
.leaflet-control-attribution a { color: #315d68; }
.leaflet-popup { position: absolute; margin-bottom: 20px; text-align: center; }
.leaflet-popup-content-wrapper { padding: 1px; text-align: left; }
.leaflet-popup-content { margin: 13px 24px 13px 20px; line-height: 1.3; }
.leaflet-popup-tip-container { position: absolute; left: 50%; width: 40px; height: 20px; margin-left: -20px; overflow: hidden; pointer-events: none; }
.leaflet-popup-tip { width: 17px; height: 17px; margin: -10px auto 0; padding: 1px; transform: rotate(45deg); background: white; box-shadow: 3px 3px 15px rgba(0,0,0,.15); }
.leaflet-popup-content-wrapper,
.leaflet-popup-tip { color: #333; background: white; box-shadow: 0 3px 14px rgba(0,0,0,.25); }
.leaflet-container a.leaflet-popup-close-button { position: absolute; z-index: 2; top: 0; right: 0; width: 24px; height: 24px; padding: 4px 4px 0 0; border: 0; color: #757575; background: transparent; font: 20px/24px Tahoma, Verdana, sans-serif; text-align: center; text-decoration: none; }
.leaflet-container a.leaflet-popup-close-button:hover { color: #585858; }
.leaflet-tooltip { position: absolute; padding: 6px; border: 1px solid white; border-radius: 3px; color: #222; background: white; box-shadow: 0 1px 3px rgba(0,0,0,.35); pointer-events: none; user-select: none; white-space: nowrap; }

.skip-link { position: fixed; z-index: 9999; left: 16px; top: -80px; padding: 12px 18px; background: var(--paper); color: var(--forest); border-radius: 6px; }
.skip-link:focus { top: 16px; }
.sr-only { position: absolute!important; width: 1px!important; height: 1px!important; padding: 0!important; margin: -1px!important; overflow: hidden!important; clip: rect(0,0,0,0)!important; white-space: nowrap!important; border: 0!important; }
.eyebrow { display: block; margin-bottom: 16px; color: var(--rust); font-size: .72rem; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 20px; border: 1px solid transparent; border-radius: 999px; text-decoration: none; font-weight: 750; cursor: pointer; transition: transform .18s ease, background .18s ease, color .18s ease; }
.button:hover { transform: translateY(-1px); }
.button-primary { color: #fff; background: var(--rust); }
.button-primary:hover { background: #9f452c; }
.button-outline { color: var(--forest); border-color: var(--forest); background: transparent; }
.button-outline:hover { background: var(--forest); color: white; }
.button-light { background: var(--paper); color: var(--forest); }
.button-block { width: 100%; }
.button-small { min-height: 38px; padding: 8px 14px; font-size: .85rem; }
.text-button { padding: 0; border: 0; color: var(--rust); background: none; font: inherit; font-weight: 750; text-decoration: underline; cursor: pointer; }

.site-header { position: absolute; z-index: 1000; top: 0; left: 0; width: 100%; display: flex; align-items: center; justify-content: space-between; padding: 24px clamp(24px, 5vw, 72px); color: white; }
.brand, .admin-brand { display: inline-flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.brand-mark { position: relative; display: grid; width: 45px; height: 45px; place-items: center; border: 1px solid currentColor; border-radius: 50% 50% 44% 44%; font-family: Georgia, serif; font-size: .78rem; font-weight: 700; }
.brand-mark::before, .brand-mark::after { content: ""; position: absolute; top: -5px; width: 10px; height: 14px; border: 1px solid currentColor; border-bottom: 0; border-radius: 50% 50% 0 0; background: transparent; }
.brand-mark::before { left: 9px; transform: rotate(-20deg); }.brand-mark::after { right: 9px; transform: rotate(20deg); }
.brand > span:last-child, .admin-brand > span:last-child { display: flex; flex-direction: column; line-height: 1.05; }
.brand strong { font-family: Georgia, serif; font-size: 1.1rem; }.brand em { margin-top: 4px; font-size: .6rem; font-style: normal; letter-spacing: .15em; text-transform: uppercase; opacity: .8; }
.brand-logo { display: block; width: 168px; height: auto; filter: drop-shadow(0 2px 5px rgba(0,0,0,.18)); }
.admin-brand .brand-logo { width: 195px; }
.site-header nav { display: flex; gap: 34px; align-items: center; }
.site-header nav a { color: inherit; font-size: .86rem; font-weight: 700; text-decoration: none; }
.site-header nav a:hover { text-decoration: underline; text-underline-offset: 6px; }
.location-detail-page .site-header,
.community-post-page .site-header { position: relative; color: var(--forest); background: var(--cream); border-bottom: 1px solid var(--line); }
.location-detail-page .preview-bar + .site-header,
.community-post-page .preview-bar + .site-header { top: auto; }
.location-detail-page .location-detail,
.community-post-page .community-post-detail { padding-top: 0; }

.hero { position: relative; min-height: 700px; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr); overflow: hidden; background: var(--forest); color: white; }
.hero-copy { position: relative; z-index: 2; align-self: center; padding: 130px 7vw 90px; }
.hero-copy .eyebrow { color: #ddad5c; }
.hero h1 { max-width: 820px; margin-bottom: 28px; font-size: clamp(3.9rem, 7.2vw, 7.3rem); font-weight: 400; }
.hero h1 em { color: #e5b66b; font-style: italic; }
.hero-copy > p { max-width: 560px; margin-bottom: 34px; color: #dce6df; font-size: 1.12rem; line-height: 1.75; }
.hero-cta { display: inline-flex; align-items: center; gap: 42px; padding-bottom: 8px; border-bottom: 1px solid rgba(255,255,255,.48); color: white; text-decoration: none; font-size: .83rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.hero-cta span { color: #e5b66b; font-size: 1.2rem; }
.hero-art { position: relative; min-height: 700px; overflow: hidden; background: #d3a75e; clip-path: polygon(20% 0,100% 0,100% 100%,0 100%); }
.sun { position: absolute; top: 116px; right: 12%; width: 240px; height: 240px; border-radius: 50%; background: #f2d39a; opacity: .7; }
.field-lines { position: absolute; inset: auto 0 0; height: 310px; background: repeating-linear-gradient(100deg, rgba(255,255,255,.14) 0 2px, transparent 2px 34px), linear-gradient(#8c9f68, #526b4f); clip-path: polygon(0 30%,100% 0,100% 100%,0 100%); }
.hero-logo-scene { position: absolute; z-index: 3; top: 49%; left: 51%; width: min(94%, 800px); aspect-ratio: 16 / 9; transform: translate(-50%,-50%); filter: drop-shadow(0 22px 24px rgba(31,45,40,.25)); }
.hero-logo-layer { position: absolute; display: block; max-width: none; height: auto; pointer-events: none; user-select: none; }
.hero-logo-landscape { z-index: 1; top: 12.222%; left: 27.5%; width: 48.75%; }
.hero-logo-flower { z-index: 3; top: 8.889%; left: 4.375%; width: 40.625%; }
.hero-logo-gazebo { z-index: 2; top: 16.667%; left: 51.25%; width: 45%; }
.hero-logo-ribbon { z-index: 4; top: 45.556%; left: 10.625%; width: 86.25%; }
.hero-note { position: absolute; z-index: 5; right: 4vw; bottom: 30px; display: flex; gap: 14px; align-items: center; color: white; }.hero-note strong { font-family: Georgia,serif; font-size: 2.5rem; font-weight: 400; }.hero-note span { padding-left: 14px; border-left: 1px solid rgba(255,255,255,.4); font-size: .68rem; letter-spacing: .08em; line-height: 1.5; text-transform: uppercase; }

.preview-notice { padding: 12px 5vw; color: #573c09; background: #f6dea3; text-align: center; font-size: .86rem; }
.public-form-errors { position: relative; z-index: 900; margin: 100px auto -75px; max-width: 930px; }.public-form-errors ul { margin: 8px 0 0 20px; }
.preview-bar { position: relative; z-index: 1100; display: flex; justify-content: center; gap: 24px; padding: 9px 20px; color: white; background: #812f25; font-size: .85rem; }.preview-bar a { color: white; }
.preview-bar + .site-header { top: 39px; }
.directory-section { padding: 100px clamp(20px, 5vw, 76px) 120px; }
.directory-intro { display: grid; grid-template-columns: 1.1fr .7fr; gap: 60px; align-items: end; max-width: 1320px; margin: 0 auto 48px; }
.directory-intro h2 { margin: 0; color: var(--forest); font-size: clamp(2.7rem, 5vw, 5rem); font-weight: 400; }
.directory-intro > p { max-width: 520px; margin: 0 0 8px; color: var(--muted); line-height: 1.75; }
.directory-tools { max-width: 1320px; margin: 0 auto 28px; }
.search-box { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; max-width: 690px; margin-bottom: 22px; padding: 6px 7px 6px 18px; background: var(--paper); border: 1px solid var(--line); border-radius: 999px; box-shadow: 0 8px 28px rgba(35,48,41,.06); }
.search-box > span { font-size: 1.5rem; transform: rotate(-15deg); }.search-box input { min-width: 0; padding: 10px 0; border: 0; outline: 0; background: transparent; }.search-box button { padding: 10px 22px; border: 0; border-radius: 999px; color: white; background: var(--forest); font-weight: 700; cursor: pointer; }
.filter-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.filter-chip { display: inline-flex; align-items: center; gap: 7px; padding: 9px 14px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,253,248,.55); color: var(--ink); font-size: .78rem; font-weight: 750; text-decoration: none; transition: .18s ease; }
.filter-chip:hover, .filter-chip.is-active { border-color: var(--forest); color: white; background: var(--forest); }.filter-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--category-color); box-shadow: 0 0 0 2px rgba(255,255,255,.4); }
.clear-filters { margin-left: auto; color: var(--rust); font-size: .78rem; font-weight: 750; text-underline-offset: 4px; }
.map-directory-shell { display: grid; grid-template-columns: minmax(360px, .72fr) minmax(500px, 1.28fr); max-width: 1320px; min-height: 700px; margin: 0 auto; overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: var(--paper); box-shadow: var(--shadow); }
.results-panel { min-width: 0; border-right: 1px solid var(--line); }.results-head { display: flex; justify-content: space-between; align-items: center; padding: 20px 22px; border-bottom: 1px solid var(--line); }.results-head p { margin: 0; }.results-head > span { color: var(--muted); font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; }.location-list { max-height: 645px; overflow-y: auto; padding: 12px; scroll-behavior: smooth; }
.location-card { position: relative; display: grid; grid-template-columns: 96px 1fr; gap: 17px; min-height: 132px; margin-bottom: 8px; padding: 10px 42px 10px 10px; border: 1px solid transparent; border-radius: 14px; cursor: pointer; transition: border .18s, background .18s, transform .18s; }.location-card[hidden] { display: none; }.location-card:hover, .location-card.is-selected { border-color: #cfc5b4; background: #f8f2e7; transform: translateX(2px); }
.card-image { position: relative; display: grid; min-height: 110px; overflow: hidden; place-items: center; border-radius: 10px; color: white; background: var(--category-color); }.card-image::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 70% 25%, rgba(255,255,255,.27) 0 11%, transparent 12%), linear-gradient(135deg, transparent 45%, rgba(0,0,0,.12) 46% 55%, transparent 56%); }.card-image.has-image::before { display: none; }.card-image img { width: 100%; height: 100%; object-fit: cover; }.placeholder-monogram { position: relative; font-family: Georgia,serif; font-size: 2.5rem; font-style: italic; }
.card-body { min-width: 0; padding: 4px 0; }.category-label { display: flex; gap: 6px; align-items: center; margin-bottom: 8px; color: var(--muted); font-size: .64rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.category-label span { width: 7px; height: 7px; border-radius: 50%; background: var(--category-color); }.card-body h3 { margin-bottom: 8px; font-size: 1.25rem; line-height: 1.05; }.card-body h3 a { text-decoration: none; }.card-body h3 a:hover { color: var(--rust); text-decoration: underline; text-underline-offset: 3px; }.card-body p { display: -webkit-box; overflow: hidden; margin-bottom: 7px; color: var(--muted); font-size: .78rem; line-height: 1.45; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }.card-body address { color: var(--forest-2); font-size: .7rem; font-weight: 700; }.card-arrow { position: absolute; right: 17px; top: 50%; color: var(--rust); transform: translateY(-50%); }
.map-panel { position: relative; min-height: 700px; }.directory-map, .detail-map, .admin-map { width: 100%; height: 100%; background: #e7e1d3; }.map-caption { position: absolute; z-index: 500; left: 22px; bottom: 22px; display: grid; grid-template-columns: auto auto; gap: 0 8px; align-items: center; padding: 12px 16px; border: 1px solid rgba(255,255,255,.65); border-radius: 10px; background: rgba(255,253,248,.94); box-shadow: 0 10px 30px rgba(31,45,40,.18); backdrop-filter: blur(10px); }.map-caption strong { font-size: .78rem; }.map-caption span:last-child { grid-column: 2; color: var(--muted); font-size: .65rem; }.live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--rust); box-shadow: 0 0 0 4px rgba(185,87,56,.15); }.map-noscript { position: absolute; z-index: 600; inset: 20px; padding: 15px; background: var(--paper); }
.map-marker { position: relative; display: grid; width: 32px!important; height: 39px!important; place-items: center; border: 3px solid white; border-radius: 50% 50% 50% 4px; color: white; background: var(--marker-color); box-shadow: 0 5px 14px rgba(31,45,40,.3); transform: rotate(-45deg); transition: transform .16s; }.map-marker span { font-size: .68rem; font-weight: 850; transform: rotate(45deg); }.map-marker.is-selected { z-index: 1000!important; transform: rotate(-45deg) scale(1.25); box-shadow: 0 7px 22px rgba(31,45,40,.45); }.leaflet-div-icon { border: 0; background: transparent; }.leaflet-popup-content-wrapper { border-radius: 12px; box-shadow: 0 12px 35px rgba(31,45,40,.2); }.leaflet-popup-content { min-width: 190px; margin: 15px 17px; }.map-popup small { color: var(--rust); font-weight: 800; text-transform: uppercase; }.map-popup strong { display: block; margin: 5px 0; font-family: Georgia,serif; font-size: 1.1rem; }.map-popup p { margin: 0 0 10px; color: var(--muted); font-size: .75rem; }.map-popup a { color: var(--forest); font-size: .76rem; font-weight: 800; }
.empty-results { padding: 70px 25px; text-align: center; }.empty-results strong { font-family: Georgia,serif; font-size: 1.5rem; }.empty-results p { color: var(--muted); }

.local-callout { position: relative; display: grid; grid-template-columns: .75fr 1fr auto; gap: 50px; align-items: center; overflow: hidden; padding: 90px clamp(26px, 7vw, 110px); color: white; background: var(--rust); }.local-callout::after { content: ""; position: absolute; right: -7%; bottom: -130px; width: 420px; height: 300px; border: 50px solid rgba(255,255,255,.08); border-radius: 50%; }.local-callout .eyebrow { color: #f1cb89; }.local-callout h2 { margin: 0; font-size: clamp(2.4rem, 4vw, 4.4rem); font-weight: 400; }.local-callout > p { max-width: 380px; margin: 0; line-height: 1.8; opacity: .88; }.local-callout .button { position: relative; z-index: 2; }.local-stamp { position: absolute; left: 3vw; top: 50%; width: 85px; height: 85px; display: grid; place-items: center; transform: translateY(-50%) rotate(-8deg); border: 2px solid rgba(255,255,255,.35); border-radius: 50%; text-align: center; font-size: .62rem; font-weight: 900; letter-spacing: .08em; line-height: 1.2; opacity: .65; }
.site-footer { display: grid; grid-template-columns: 1fr auto auto; gap: 34px; align-items: center; padding: 65px clamp(24px, 6vw, 90px) 32px; color: #dfe8e2; background: #102f28; }.site-footer > div:first-child { display: flex; flex-direction: column; }.footer-kicker { margin-bottom: 10px; color: #d4a65a; font-size: .66rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }.site-footer strong { font-family: Georgia,serif; font-size: 2rem; font-weight: 400; }.footer-sponsor { display: grid; justify-items: center; color: inherit; text-decoration: none; }.footer-sponsor span { margin-bottom: -8px; color: #d4a65a; font-size: .62rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }.footer-sponsor img { display: block; width: 190px; height: 164px; object-fit: contain; }.footer-sponsor:hover span,.footer-sponsor:focus-visible span { color: white; }.footer-links { display: flex; gap: 25px; align-items: center; }.footer-links a { color: inherit; font-size: .76rem; }.site-footer > p { grid-column: 1 / -1; margin: 34px 0 0; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.13); color: #9eb0a8; font-size: .7rem; }

/* Community board */
.public-home .hero { min-height: 850px; }.hero-board-preview { width: min(100%,440px); margin-top: 32px; }.hero-board-heading { display: flex; justify-content: space-between; gap: 18px; color: white; text-decoration: none; }.hero-board-heading span { color: #e5b66b; font-size: .66rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }.hero-board-heading strong { font-family: Georgia,serif; font-size: .82rem; font-weight: 400; }.hero-board-stack { position: relative; height: 126px; margin-top: 12px; }.hero-board-card { position: absolute; z-index: calc(3 - var(--preview-index)); left: calc(var(--preview-index) * 64px); top: calc(var(--preview-index) * 8px); width: 245px; min-height: 105px; padding: 18px; transform: rotate(var(--card-rotation)); border-radius: 2px; color: #27342e; background: #f5e6a7; box-shadow: 0 8px 22px rgba(0,0,0,.22); text-decoration: none; }.hero-board-card:nth-child(2) { background: #f3d5c5; }.hero-board-card:nth-child(3) { background: #d9e5dc; }.hero-board-card span,.hero-board-card strong { display: block; }.hero-board-card span { margin-bottom: 8px; color: #6b5a39; font-size: .55rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }.hero-board-card strong { font-family: Georgia,serif; font-size: 1rem; line-height: 1.12; }.hero-board-card:hover,.hero-board-card:focus-visible { z-index: 5; transform: rotate(0) translateY(-3px); }.hero-board-empty { display: inline-block; margin-top: 14px; color: white; font-size: .75rem; font-weight: 750; }
.board-hero,.submission-hero { padding: 165px clamp(24px,8vw,120px) 90px; color: white; background: var(--forest); }.board-hero .eyebrow,.submission-hero .eyebrow { color: #e5b66b; }.board-hero h1,.submission-hero h1 { max-width: 900px; margin-bottom: 22px; font-size: clamp(3.5rem,7vw,7rem); font-weight: 400; }.board-hero p,.submission-hero p { max-width: 660px; color: #dce6df; font-family: Georgia,serif; font-size: 1.1rem; line-height: 1.7; }.board-hero .button { margin-top: 18px; }
.board-section { padding: 85px clamp(16px,5vw,75px) 110px; }.board-toolbar { display: flex; justify-content: space-between; gap: 35px; align-items: end; max-width: 1320px; margin: 0 auto 38px; }.board-toolbar h2 { color: var(--forest); font-size: clamp(2.6rem,5vw,4.7rem); font-weight: 400; }.board-filters { display: flex; gap: 8px; }.board-filters a { padding: 10px 16px; border: 1px solid var(--line); border-radius: 999px; color: var(--forest); font-size: .75rem; font-weight: 800; text-decoration: none; }.board-filters a.is-active,.board-filters a:hover { color: white; background: var(--forest); }
.cork-board { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 34px 28px; max-width: 1320px; margin: 0 auto; padding: 55px; border: 18px solid #765036; border-radius: 7px; background-color: #b97a4e; background-image: radial-gradient(rgba(75,42,23,.18) 1px,transparent 1.5px),radial-gradient(rgba(255,235,196,.13) 1px,transparent 1.5px),linear-gradient(135deg,rgba(255,255,255,.05),transparent); background-position: 0 0,8px 11px,0 0; background-size: 17px 19px,23px 21px,auto; box-shadow: inset 0 0 34px rgba(62,34,18,.28),0 22px 55px rgba(31,45,40,.17); }.board-card { position: relative; width: var(--card-width,100%); min-width: 0; justify-self: var(--card-alignment,stretch); align-self: start; min-height: 285px; padding: 31px 28px 27px; transform: rotate(var(--card-rotation)); color: #313832; background: var(--card-paper,#f6e7a8); box-shadow: 2px 8px 17px rgba(61,38,24,.3); transition: transform .18s,box-shadow .18s; }.board-card:nth-child(3n+2) { margin-top: 20px; }.board-card:nth-child(4n) { margin-left: 10px; }.board-card:hover,.board-card:focus-within { z-index: 4; transform: rotate(0) translateY(-4px); box-shadow: 3px 13px 25px rgba(61,38,24,.4); }.board-pin { position: absolute; z-index: 3; top: 8px; left: var(--pin-left,50%); width: 15px; height: 15px; transform: translateX(-50%); border: 2px solid rgba(255,255,255,.7); border-radius: 50%; background: var(--rust); box-shadow: 0 4px 5px rgba(44,28,18,.35); }.board-card img { display: block; width: 100%; max-height: 245px; margin-bottom: 19px; object-fit: cover; }.board-card-copy h3 { margin: 7px 0 12px; font-size: 1.7rem; line-height: 1.05; }.board-card-copy h3 a { color: inherit; text-decoration: none; }.board-card-copy h3 a::after { position: absolute; inset: 0; content: ""; }.board-card-copy p { color: #536057; font-size: .82rem; line-height: 1.55; }.board-card-copy time,.board-card-type { font-size: .61rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }.board-card-copy time { display: block; margin-top: 20px; }.board-card-announcement { background: var(--card-paper,#dbe8dc); }.board-card-note { font-family: Georgia,serif; background: var(--card-paper,#f5e5a4); }.board-card-promotion { border: 2px dashed rgba(137,69,38,.38); background: var(--card-paper,#f3bd72); }.board-card-flyer { padding: 20px; background: var(--card-paper,#f4efe4); }.board-card-photo { padding: 18px 18px 34px; background: var(--card-paper,#fffdf8); }.board-card-tone-butter { --card-paper: #f5e5a4; }.board-card-tone-blush { --card-paper: #f1d3c8; }.board-card-tone-sage { --card-paper: #d8e5d6; }.board-card-tone-peach { --card-paper: #f2c998; }.board-card-tone-cream { --card-paper: #f4edda; }.board-card-tone-lavender { --card-paper: #dfd7e8; }.board-card-photo img { max-height: 300px; }.board-card-photo .board-card-copy p,.board-card-flyer .board-card-copy p { display: none; }.board-empty { max-width: 700px; margin: 0 auto; padding: 75px 30px; border: 12px solid #765036; color: #3b2c20; background: #c98e5e; text-align: center; }.board-empty strong { font-family: Georgia,serif; font-size: 2rem; }.board-empty p { margin: 12px 0; }
.submission-wrap { max-width: 980px; margin: 0 auto; padding: 75px 25px 110px; }.submission-success { display: flex; gap: 18px; align-items: center; margin-bottom: 28px; padding: 22px 25px; border: 2px solid #6c9c78; border-radius: 12px; color: #183f35; background: #f3faef; box-shadow: 0 10px 28px rgba(35,48,41,.1); scroll-margin-top: 115px; }.submission-success > span { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: white; background: #2e6a40; font-size: 1.35rem; font-weight: 900; }.submission-success h2 { margin: 0 0 5px; font-size: 1.35rem; }.submission-success p { margin: 0; color: #43604e; }.community-form { display: grid; gap: 22px; }.community-form fieldset { padding: 30px; border: 1px solid var(--line); background: var(--paper); box-shadow: 0 10px 28px rgba(35,48,41,.07); }.community-form legend { padding: 0 8px; color: var(--forest); font-family: Georgia,serif; font-size: 1.5rem; font-weight: 700; }.community-form label { display: grid; gap: 7px; color: #4e5e57; font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }.community-form input,.community-form textarea,.community-form select { width: 100%; padding: 11px 12px; border: 1px solid #cfc7b9; border-radius: 8px; background: white; }.community-form .checkbox-label,.checkbox-label { display: flex; gap: 10px; align-items: center; letter-spacing: 0; text-transform: none; }.community-form .checkbox-label input,.checkbox-label input { width: auto; }.form-note { color: var(--muted); font-size: .76rem; }.required-key { margin: 0; color: var(--muted); font-size: .75rem; text-align: right; }.required-key span { color: #a64229; font-weight: 900; }.submission-actions { display: flex; justify-content: space-between; gap: 20px; align-items: center; }.submission-actions p { color: var(--muted); font-size: .75rem; }.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.submission-type-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-bottom: 25px; }.community-form .submission-type-card { position: relative; display: block; cursor: pointer; }.submission-type-card input { position: absolute; width: 1px; height: 1px; opacity: 0; }.submission-type-card span { display: block; height: 100%; padding: 19px 17px; border: 2px solid #d7cebe; border-radius: 11px; background: #fffdfa; transition: border-color .16s,background .16s,box-shadow .16s,transform .16s; }.submission-type-card strong,.submission-type-card small { display: block; text-transform: none; letter-spacing: 0; }.submission-type-card strong { margin-bottom: 8px; color: var(--forest); font-family: Georgia,serif; font-size: 1.05rem; }.submission-type-card small { color: var(--muted); font-size: .69rem; font-weight: 500; line-height: 1.5; }.submission-type-card input:checked + span { border-color: var(--forest); background: #eef4ef; box-shadow: 0 0 0 3px rgba(24,63,53,.12); transform: translateY(-2px); }.submission-type-card input:focus-visible + span { outline: 3px solid #c78a2d; outline-offset: 3px; }.submission-type-card:hover span { border-color: #789186; }
.location-search-field { display: grid; gap: 7px; }.location-search-field > label { display: block; }.location-search-field > .form-note { margin: 0; }.location-search-field noscript label { margin-top: 10px; }
.submission-terms-link { margin: 0 0 22px; color: var(--muted); font-size: .84rem; text-align: right; }.submission-terms-link button { padding: 0; border: 0; color: var(--rust); background: transparent; font: inherit; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }.submission-terms-modal { width: min(92vw,760px); max-height: min(84vh,820px); padding: 0; overflow: hidden; border: 0; border-radius: 16px; color: var(--ink); background: var(--paper); box-shadow: 0 28px 90px rgba(16,47,40,.38); }.submission-terms-modal::backdrop { background: rgba(16,47,40,.72); backdrop-filter: blur(3px); }.submission-terms-head { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; padding: 25px 28px 21px; color: white; background: var(--forest); }.submission-terms-head h2 { margin: 0; font-size: 1.65rem; line-height: 1.1; }.submission-terms-head button { width: 35px; height: 35px; flex: 0 0 auto; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; color: white; background: transparent; font-size: 1.4rem; line-height: 1; cursor: pointer; }.submission-terms-content { max-height: calc(84vh - 155px); padding: 25px 34px; overflow-y: auto; }.submission-terms-content ul { margin: 0; padding-left: 22px; }.submission-terms-content li { margin-bottom: 13px; color: #485851; line-height: 1.55; }.submission-terms-actions { padding: 16px 28px 22px; border-top: 1px solid var(--line); text-align: right; }
.community-post-detail { padding-top: 95px; }.community-post-header { padding: 90px max(24px,8vw); color: white; background: var(--forest); }.community-post-header h1 { max-width: 1000px; margin: 14px 0 22px; font-size: clamp(3.5rem,7vw,7rem); font-weight: 400; }.community-post-header > p { max-width: 720px; color: #dce6df; font-family: Georgia,serif; font-size: 1.12rem; line-height: 1.7; }.community-post-type { color: #e5b66b; font-size: .7rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }.community-post-grid { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(290px,.55fr); gap: 65px; max-width: 1180px; margin: 0 auto; padding: 90px 25px 120px; }.community-post-story > img { width: 100%; max-height: 680px; margin-bottom: 45px; border: 12px solid white; object-fit: contain; box-shadow: var(--shadow); }.community-post-story .prose { color: #4f5f58; font-family: Georgia,serif; font-size: 1.12rem; line-height: 1.85; }.community-post-location { margin-top: 55px; }.community-post-location h2 { margin: 8px 0 0; color: var(--forest); font-size: clamp(2rem,4vw,3.5rem); font-weight: 400; }.community-post-location .detail-map { margin-top: 28px; }.community-post-facts { position: relative; align-self: start; padding: 38px 30px 30px; transform: rotate(.7deg); background: #f5e5a4; box-shadow: var(--shadow); }.community-post-facts h2 { font-size: 1.7rem; }.community-post-facts dl > div { padding: 16px 0; border-bottom: 1px solid rgba(69,64,45,.18); }.community-post-facts dt { color: #6c644c; font-size: .62rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }.community-post-facts dd { margin: 5px 0 0; line-height: 1.5; }
.moderation-alert { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 22px; padding: 16px 20px; border-left: 5px solid var(--gold); background: #fff2c7; }.status-pending { color: #71571f; background: #f3e5bc; }.status-rejected { color: #7d2d25; background: #f1d8d3; }.board-stat-grid { grid-template-columns: 1fr 1fr 1fr; }.stat-action { display: grid; place-items: center; }.stat-action a { color: var(--rust); font-weight: 800; }
.board-table-tools { flex-wrap: wrap; }.admin-board-filters { display: flex; gap: 10px; align-items: end; }.admin-board-filters label { display: grid; gap: 4px; color: var(--muted); font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.admin-board-filters select { min-width: 115px; padding: 8px 10px; border: 1px solid #d4cdc0; border-radius: 7px; background: white; }

/* Contact */
.contact-hero { padding: 165px max(25px,8vw) 90px; color: white; background: var(--forest); }.contact-hero .eyebrow { color: #e5b66b; }.contact-hero h1 { max-width: 980px; margin: 14px 0 24px; font-size: clamp(3.8rem,7vw,7rem); font-weight: 400; line-height: .98; }.contact-hero > p { max-width: 690px; color: #dce6df; font-family: Georgia,serif; font-size: 1.08rem; line-height: 1.75; }.contact-wrap { max-width: 1180px; margin: 0 auto; padding: 90px 25px 120px; }.contact-grid { display: grid; grid-template-columns: minmax(260px,.72fr) minmax(0,1.28fr); gap: clamp(45px,8vw,110px); align-items: start; }.contact-intro h2 { margin: 12px 0 24px; color: var(--forest); font-size: clamp(2.8rem,5vw,4.8rem); font-weight: 400; line-height: 1; }.contact-intro > p { color: #536159; font-family: Georgia,serif; font-size: 1rem; line-height: 1.75; }.contact-intro .contact-privacy { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--line); color: var(--muted); font-family: inherit; font-size: .76rem; }.contact-form { display: grid; gap: 20px; padding: 35px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); box-shadow: var(--shadow); }.contact-form label { display: grid; gap: 8px; color: #4e5e57; font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }.contact-form input,.contact-form textarea { width: 100%; padding: 12px 13px; border: 1px solid #cfc7b9; border-radius: 8px; color: var(--ink); background: white; outline: 0; font: inherit; text-transform: none; }.contact-form input:focus,.contact-form textarea:focus { border-color: var(--forest); box-shadow: 0 0 0 3px rgba(24,63,53,.12); }.contact-form textarea { resize: vertical; }.contact-form .button { justify-self: start; }.contact-wrap > .submission-success { margin-bottom: 42px; }

/* Staff messages */
.admin-sidebar nav a { position: relative; }.admin-nav-count { display: inline-grid; min-width: 21px; height: 21px; margin-left: 7px; padding: 0 6px; place-items: center; border-radius: 999px; color: var(--forest); background: #e5b66b; font-size: .6rem; font-weight: 900; }.message-stat-grid { margin-top: 18px; }.message-filters { display: flex; gap: 8px; padding: 20px 24px; border-bottom: 1px solid #e5dfd4; }.message-filters a { padding: 8px 13px; border: 1px solid #d4cdc0; border-radius: 999px; color: var(--forest); font-size: .7rem; font-weight: 800; text-decoration: none; }.message-filters a.is-active,.message-filters a:hover { color: white; border-color: var(--forest); background: var(--forest); }.message-filters span { margin-left: 4px; }.message-row { display: grid; grid-template-columns: auto minmax(150px,.55fr) minmax(260px,1.2fr) auto; gap: 16px; align-items: center; padding: 18px 24px; border-bottom: 1px solid #ece7de; color: inherit; text-decoration: none; }.message-row:last-child { border-bottom: 0; }.message-row:hover { background: #faf6ed; }.message-row.is-unread { background: #f4f8f5; }.message-state { width: 9px; height: 9px; border-radius: 50%; background: #aaa39a; }.message-row.is-unread .message-state { background: var(--rust); box-shadow: 0 0 0 3px rgba(185,87,56,.12); }.message-row strong,.message-row small { display: block; }.message-row strong { font-family: Georgia,serif; font-size: 1rem; }.message-row.is-unread strong { color: var(--forest); font-weight: 800; }.message-row small,.message-row time { color: var(--muted); font-size: .66rem; }.message-row p { margin: 0; overflow: hidden; color: #536159; font-size: .76rem; line-height: 1.5; }.message-row time { white-space: nowrap; }.status-unread { color: #7d2d25; background: #f1d8d3; }.status-read { color: #285c38; background: #dcebdc; }.message-page-head h1 { margin-bottom: 8px; }.message-page-head p { color: var(--muted); }.message-page-head p a { color: var(--forest); font-weight: 750; }.message-detail { overflow: hidden; }.message-detail-body { min-height: 250px; padding: 42px; color: #3f5048; font-family: Georgia,serif; font-size: 1.08rem; line-height: 1.85; white-space: normal; }.message-actions { display: flex; gap: 12px; align-items: center; padding: 22px 28px; border-top: 1px solid #e5dfd4; background: #faf7f0; }.message-actions form { margin: 0; }.message-actions .text-button { margin-left: 8px; }

/* Analytics */
.analytics-page-head p { max-width: 680px; line-height: 1.6; }.analytics-ranges { display: flex; gap: 8px; margin-bottom: 18px; }.analytics-ranges a { padding: 9px 15px; border: 1px solid #d4cdc0; border-radius: 999px; color: var(--forest); font-size: .72rem; font-weight: 800; text-decoration: none; }.analytics-ranges a:hover,.analytics-ranges a.is-active { color: white; border-color: var(--forest); background: var(--forest); }.analytics-trend { overflow: hidden; border: 1px solid #ded8cc; border-radius: 14px; background: var(--paper); }.analytics-trend .admin-card-heading { padding: 24px 26px 0; }.analytics-trend h2 { margin: 4px 0 0; color: var(--forest); font-family: Georgia,serif; font-size: 1.7rem; }.analytics-chart { height: 260px; display: flex; gap: clamp(3px, .65vw, 10px); align-items: end; margin: 30px 25px 10px; padding: 20px 8px 36px; border-bottom: 1px solid #cbc3b6; }.analytics-bar { position: relative; flex: 1 1 0; height: max(2px,var(--bar-height)); min-width: 2px; border-radius: 4px 4px 0 0; background: var(--rust); }.analytics-bar i { position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(180deg,rgba(255,255,255,.2),transparent); }.analytics-bar span { position: absolute; top: calc(100% + 9px); left: 50%; display: none; transform: translateX(-50%); color: var(--muted); font-size: .55rem; white-space: nowrap; }.analytics-bar:first-child span,.analytics-bar:last-child span { display: block; }.analytics-bar small { position: absolute; bottom: calc(100% + 5px); left: 50%; opacity: 0; transform: translateX(-50%); color: var(--forest); font-size: .58rem; }.analytics-bar:hover small { opacity: 1; }.analytics-table-wrap { overflow-x: auto; border-top: 1px solid #e5dfd4; }.analytics-table { width: 100%; border-collapse: collapse; font-size: .73rem; }.analytics-table caption { padding: 18px 24px 10px; color: var(--muted); text-align: left; }.analytics-table th,.analytics-table td { padding: 12px 18px; border-top: 1px solid #eee9df; text-align: right; white-space: nowrap; }.analytics-table th:first-child { text-align: left; }.analytics-table thead th { color: var(--muted); background: #faf7f0; font-size: .62rem; letter-spacing: .04em; text-transform: uppercase; }.analytics-dashboard-note { color: var(--muted); font-size: .72rem; }.empty-admin-state { padding: 45px 26px; color: var(--muted); text-align: center; }
.analytics-exclusions { margin-top: 25px; overflow: hidden; border: 1px solid #ded8cc; border-radius: 14px; background: var(--paper); scroll-margin-top: 25px; }.analytics-exclusions .admin-card-heading { padding: 26px; border-bottom: 1px solid #e5dfd4; }.analytics-exclusions h2 { margin: 4px 0 7px; color: var(--forest); font-family: Georgia,serif; font-size: 1.7rem; }.analytics-exclusions .admin-card-heading p,.current-ip-form p,.analytics-exclusion-note { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.6; }.analytics-exclusion-warning { margin: 20px 24px 0; padding: 15px 17px; border-left: 4px solid var(--rust); color: #6d372d; background: #f8e6df; font-size: .75rem; line-height: 1.55; }.analytics-exclusion-warning strong { display: block; margin-bottom: 3px; }.analytics-exclusion-forms { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding: 25px; }.analytics-exclusion-forms form { align-content: start; padding: 23px; border: 1px solid #e1dbd0; border-radius: 11px; background: #faf7f0; }.analytics-exclusion-forms h3,.analytics-exclusion-list h3 { margin: 0; color: var(--forest); font-family: Georgia,serif; font-size: 1.15rem; }.analytics-exclusion-forms .button { justify-self: start; }.current-ip-form code { display: block; padding: 12px 14px; overflow-wrap: anywhere; border-radius: 7px; color: white; background: var(--forest); }.analytics-exclusion-list { border-top: 1px solid #e5dfd4; }.analytics-exclusion-list > h3 { padding: 22px 25px 10px; }.analytics-exclusion-list article { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 16px 25px; border-top: 1px solid #eee9df; }.analytics-exclusion-list article strong,.analytics-exclusion-list article small { display: block; }.analytics-exclusion-list article small { margin-top: 4px; color: var(--muted); font-size: .65rem; }.analytics-exclusion-list .text-button { color: var(--rust); }.analytics-exclusion-list .panel-empty { margin: 0; color: var(--muted); }.analytics-exclusion-note { padding: 18px 25px; border-top: 1px solid #e5dfd4; background: #faf7f0; }

/* Location detail */
.location-detail { padding-top: 95px; }.location-detail .preview-notice { margin: 0; }.detail-hero { display: grid; grid-template-columns: 1fr 1fr; min-height: 565px; background: var(--forest); color: white; }.detail-hero-copy { display: flex; flex-direction: column; justify-content: center; padding: 80px 8vw; }.back-link { display: inline-block; margin-bottom: 35px; color: inherit; font-size: .8rem; font-weight: 750; text-underline-offset: 4px; }.category-pill { align-self: flex-start; display: inline-flex; gap: 8px; align-items: center; margin-bottom: 20px; padding: 7px 11px; border: 1px solid rgba(255,255,255,.35); border-radius: 999px; font-size: .67rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.category-pill i { width: 8px; height: 8px; border-radius: 50%; background: var(--category-color); }.detail-hero h1 { max-width: 720px; margin-bottom: 24px; font-size: clamp(3.4rem, 6vw, 6.5rem); font-weight: 400; }.detail-hero-copy > p { max-width: 580px; margin: 0; color: #d7e1dc; font-size: 1.08rem; line-height: 1.7; }.detail-image { position: relative; display: grid; overflow: hidden; place-items: center; color: white; background: var(--category-color); }.detail-image::before, .detail-image::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; }.detail-image::before { width: 460px; height: 460px; }.detail-image::after { width: 300px; height: 300px; }.detail-image.has-image::before, .detail-image.has-image::after { display: none; }.detail-image img { width: 100%; height: 100%; object-fit: cover; }.detail-image > span { position: relative; z-index: 1; font-family: Georgia,serif; font-size: 10rem; font-style: italic; opacity: .75; }.detail-image > small { position: absolute; bottom: 40px; letter-spacing: .2em; text-transform: uppercase; }.detail-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(310px, .55fr); gap: 70px; max-width: 1180px; margin: 0 auto; padding: 95px 30px 120px; }.detail-story h2 { margin-bottom: 28px; color: var(--forest); font-size: clamp(2.4rem, 4vw, 4rem); font-weight: 400; }.detail-story > p { color: #4f5f58; font-family: Georgia,serif; font-size: 1.16rem; line-height: 1.85; }.detail-map { height: 380px; margin-top: 50px; border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); }.visit-column { display: grid; gap: 24px; align-self: start; }.visit-card { padding: 32px; border-top: 5px solid var(--rust); background: var(--paper); box-shadow: var(--shadow); }.visit-card-label { color: var(--rust); font-size: .68rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }.visit-card dl { margin: 25px 0; }.visit-card dl > div { padding: 17px 0; border-bottom: 1px solid var(--line); }.visit-card dt { margin-bottom: 5px; color: var(--muted); font-size: .66rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }.visit-card dd { margin: 0; font-size: .9rem; line-height: 1.6; }.visit-card .button + .button { margin-top: 10px; }.visit-note { margin: 18px 0 0; color: var(--muted); font-size: .7rem; line-height: 1.5; }.location-posts { padding: 28px; border-top: 5px solid var(--gold); background: #f5e5a4; box-shadow: var(--shadow); }.location-posts h2 { margin: 7px 0 17px; color: var(--forest); font-size: 1.65rem; }.location-post-list { display: grid; }.location-post-list > a { position: relative; display: grid; gap: 5px; padding: 16px 2px; border-top: 1px solid rgba(69,64,45,.18); color: inherit; text-decoration: none; }.location-post-list > a::after { position: absolute; right: 2px; top: 50%; content: "→"; color: var(--rust); transform: translateY(-50%); }.location-post-list span,.location-post-list time { padding-right: 24px; color: #6c644c; font-size: .59rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }.location-post-list strong { padding-right: 24px; font-family: Georgia,serif; font-size: 1.02rem; line-height: 1.2; }.location-post-list > a:hover strong,.location-post-list > a:focus-visible strong { color: var(--rust); text-decoration: underline; text-underline-offset: 3px; }.location-posts-all { display: inline-block; margin-top: 14px; color: var(--forest); font-size: .72rem; font-weight: 800; text-underline-offset: 3px; }
.directions-panel { margin-top: 24px; scroll-margin-top: 24px; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); box-shadow: var(--shadow); }.directions-panel > summary { padding: 21px 24px; color: var(--forest); font-family: Georgia,serif; font-size: 1.25rem; font-weight: 700; cursor: pointer; }.directions-panel[open] > summary { border-bottom: 1px solid var(--line); }.directions-content { padding: 24px; }.travel-modes { display: flex; gap: 8px; margin: 0 0 20px; padding: 0; border: 0; }.travel-modes legend { margin-bottom: 9px; color: var(--muted); font-size: .67rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.travel-modes label { cursor: pointer; }.travel-modes input { position: absolute; opacity: 0; pointer-events: none; }.travel-modes span { display: block; padding: 9px 14px; border: 1px solid #cfc7b9; border-radius: 999px; font-size: .75rem; font-weight: 800; }.travel-modes input:checked + span { border-color: var(--forest); color: white; background: var(--forest); }.travel-modes input:focus-visible + span { outline: 3px solid rgba(24,63,53,.25); outline-offset: 2px; }.directions-origin { display: grid; grid-template-columns: auto auto 1fr; gap: 14px; align-items: end; }.directions-origin > span { align-self: center; color: var(--muted); font-size: .72rem; }.directions-origin form label { display: block; margin-bottom: 6px; color: var(--muted); font-size: .67rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.directions-origin form > div { display: flex; gap: 8px; }.directions-origin input { min-width: 0; width: 100%; padding: 11px 12px; border: 1px solid #cfc7b9; border-radius: 8px; background: white; }.directions-status { min-height: 1.4em; margin: 17px 0 0; color: var(--forest-2); font-size: .78rem; }.directions-status.is-error { color: #8a3025; }.directions-candidates { display: grid; gap: 7px; margin-top: 15px; }.directions-candidates[hidden],.route-results[hidden] { display: none; }.directions-candidates strong { margin-bottom: 3px; font-size: .78rem; }.directions-candidates button { padding: 11px 13px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: white; text-align: left; cursor: pointer; }.directions-candidates button:hover,.directions-candidates button:focus-visible { border-color: var(--forest); background: #f3f7f4; }.route-results { margin-top: 22px; border-top: 1px solid var(--line); }.route-summary { display: flex; justify-content: space-between; gap: 18px; align-items: center; padding: 20px 0; }.route-summary span,.route-summary strong { display: block; }.route-summary span { margin-bottom: 4px; color: var(--muted); font-size: .66rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.route-summary strong { color: var(--forest); font-family: Georgia,serif; font-size: 1.35rem; }.route-steps { margin: 0; padding: 0 0 0 32px; }.route-steps li { padding: 11px 5px 11px 8px; border-bottom: 1px solid #ece7de; }.route-steps li span,.route-steps li small { display: block; }.route-steps li span { font-size: .8rem; line-height: 1.45; }.route-steps li small { margin-top: 4px; color: var(--muted); }.route-attribution { display: block; margin-top: 17px; color: var(--muted); font-size: .6rem; line-height: 1.4; }.directions-privacy { margin: 18px 0 0; color: var(--muted); font-size: .68rem; line-height: 1.5; }
.error-page { min-height: 75vh; display: grid; align-content: center; justify-items: center; padding: 150px 30px 80px; text-align: center; }.error-page h1 { color: var(--forest); font-size: clamp(3rem, 8vw, 7rem); font-weight: 400; }.error-page p { max-width: 550px; color: var(--muted); }

/* About Downtown */
.about-hero { position: relative; min-height: 690px; display: grid; grid-template-columns: 1.05fr .95fr; overflow: hidden; color: white; background: var(--forest); }.about-hero-copy { position: relative; z-index: 3; align-self: center; padding: 145px 7vw 95px; }.about-hero-copy .eyebrow { color: #e5b66b; }.about-hero h1 { max-width: 800px; margin-bottom: 28px; font-size: clamp(4rem, 7vw, 7.1rem); font-weight: 400; }.about-hero h1 em { color: #e5b66b; font-style: italic; }.about-hero-copy > p { max-width: 590px; margin-bottom: 34px; color: #dce6df; font-family: Georgia,serif; font-size: 1.15rem; line-height: 1.75; }.about-hero-art { position: relative; min-height: 690px; overflow: hidden; background: #cf9a47; clip-path: polygon(16% 0,100% 0,100% 100%,0 100%); }.about-sun { position: absolute; top: 100px; right: 12%; width: 230px; height: 230px; border-radius: 50%; background: #f1d59f; opacity: .72; }.about-horizon { position: absolute; inset: 48% 0 0; background: linear-gradient(#6d8063, #345746); clip-path: polygon(0 30%,22% 16%,42% 28%,68% 8%,100% 24%,100% 100%,0 100%); }.about-storefront { position: absolute; z-index: 2; bottom: 98px; display: flex; gap: 7px; align-items: flex-end; justify-content: center; padding: 43px 10px 12px; border-top: 8px solid rgba(255,255,255,.32); background: #b8593b; box-shadow: 0 14px 24px rgba(31,45,40,.18); }.about-storefront::before { content: ""; position: absolute; top: 12px; left: 12%; width: 76%; height: 17px; border-radius: 2px; background: rgba(255,255,255,.65); }.about-storefront i { position: absolute; bottom: 12px; left: 50%; width: 22%; height: 36px; transform: translateX(-50%); background: #4f6358; }.about-storefront b { width: 25px; height: 31px; background: #e4d19f; box-shadow: inset 0 0 0 3px rgba(255,255,255,.28); }.storefront-one { left: 5%; width: 150px; height: 135px; }.storefront-two { left: 34%; width: 190px; height: 165px; background: #8b5169; }.storefront-three { right: 4%; width: 145px; height: 125px; background: #3d675d; }.about-rail { position: absolute; z-index: 3; inset: auto -10% 28px; height: 44px; border-top: 5px solid #3c403a; border-bottom: 5px solid #3c403a; transform: rotate(-3deg); background: repeating-linear-gradient(90deg, transparent 0 22px, #50493f 22px 30px); }.about-hero-stamp { position: absolute; z-index: 4; right: 6vw; bottom: 34px; width: 150px; height: 150px; display: grid; align-content: center; transform: rotate(-7deg); border: 2px solid rgba(255,255,255,.58); border-radius: 50%; text-align: center; }.about-hero-stamp span,.about-hero-stamp small { font-size: .57rem; letter-spacing: .15em; text-transform: uppercase; }.about-hero-stamp strong { font-family: Georgia,serif; font-size: 1.65rem; letter-spacing: .05em; }
.about-intro { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(50px,8vw,130px); max-width: 1240px; margin: 0 auto; padding: 110px 30px; }.about-intro h2 { max-width: 570px; margin: 0; color: var(--forest); font-size: clamp(3rem,5vw,5.2rem); font-weight: 400; }.about-intro-copy { align-self: end; }.about-intro-copy p { color: #4f5f58; font-family: Georgia,serif; font-size: 1.1rem; line-height: 1.85; }.about-intro-copy p:last-child { margin-bottom: 0; }
.history-band { display: grid; grid-template-columns: .75fr 1.25fr; gap: 70px; padding: 100px clamp(28px,7vw,110px); color: white; background: var(--rust); }.history-heading { position: sticky; top: 40px; align-self: start; }.history-heading .eyebrow { color: #f0cd91; }.history-heading h2 { margin: 0; font-size: clamp(2.8rem,4.7vw,5rem); font-weight: 400; }.history-timeline { position: relative; margin: 0; padding: 0; list-style: none; }.history-timeline::before { content: ""; position: absolute; top: 20px; bottom: 20px; left: 51px; width: 1px; background: rgba(255,255,255,.32); }.history-timeline li { position: relative; display: grid; grid-template-columns: 104px 1fr; gap: 28px; padding: 12px 0 42px; }.history-timeline li:last-child { padding-bottom: 0; }.history-timeline li > span { position: relative; z-index: 1; display: grid; width: 104px; height: 48px; place-items: center; border: 1px solid rgba(255,255,255,.5); border-radius: 999px; background: var(--rust); font-family: Georgia,serif; font-size: 1.05rem; }.history-timeline h3 { margin-bottom: 8px; font-size: 1.65rem; font-weight: 400; }.history-timeline p { max-width: 520px; margin: 0; color: #f4ded7; line-height: 1.7; }
.about-character { display: grid; grid-template-columns: .9fr 1.1fr; min-height: 630px; }.character-art { position: relative; display: grid; align-content: center; justify-items: center; overflow: hidden; color: white; background: #c78a2d; }.character-art::before,.character-art::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; }.character-art::before { width: 450px; height: 450px; }.character-art::after { width: 310px; height: 310px; }.character-number { position: relative; z-index: 2; font-family: Georgia,serif; font-size: clamp(8rem,16vw,15rem); font-style: italic; line-height: .8; }.character-art small { position: relative; z-index: 2; margin-top: 24px; font-size: .7rem; font-weight: 800; letter-spacing: .13em; line-height: 1.5; text-align: center; text-transform: uppercase; }.trail-line { position: absolute; inset: 0; background: repeating-radial-gradient(ellipse at 15% 90%, transparent 0 30px, rgba(255,255,255,.1) 31px 32px, transparent 33px 58px); }.character-copy { display: flex; flex-direction: column; justify-content: center; padding: 80px clamp(35px,8vw,120px); background: var(--paper); }.character-copy h2 { margin-bottom: 28px; color: var(--forest); font-size: clamp(3rem,5vw,5rem); font-weight: 400; }.character-copy p { max-width: 650px; color: #536159; font-family: Georgia,serif; font-size: 1.05rem; line-height: 1.8; }.character-copy .button { align-self: flex-start; margin-top: 14px; }
.historical-society { display: grid; grid-template-columns: .82fr 1.18fr; min-height: 650px; background: #f1e8d7; }.society-art { position: relative; display: flex; align-items: flex-start; justify-content: center; overflow: hidden; padding: 85px 35px; color: white; background: var(--forest); }.society-art::before { position: absolute; right: -130px; bottom: -170px; width: 520px; height: 520px; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; content: ""; }.society-seal { position: relative; z-index: 2; display: flex; width: 245px; height: 245px; align-items: center; justify-content: center; flex-direction: column; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; text-align: center; }.society-seal::before,.society-seal::after { position: absolute; width: 8px; height: 8px; border-radius: 50%; background: #e5b66b; content: ""; }.society-seal::before { left: 15px; }.society-seal::after { right: 15px; }.society-seal span,.society-seal small { font-size: .62rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }.society-seal strong { margin: 8px 0; color: #e5b66b; font-family: Georgia,serif; font-size: 4.5rem; font-weight: 400; line-height: 1; }.depot-mark { position: absolute; right: 8%; bottom: 56px; left: 8%; height: 150px; border: 4px solid rgba(255,255,255,.78); border-top: 0; }.depot-mark::before { position: absolute; top: -58px; right: -24px; left: -24px; height: 62px; background: rgba(255,255,255,.78); clip-path: polygon(50% 0,100% 100%,0 100%); content: ""; }.depot-mark::after { position: absolute; right: 45%; bottom: 0; width: 10%; height: 88px; background: rgba(255,255,255,.78); content: ""; }.depot-mark i,.depot-mark b { position: absolute; top: 35px; width: 44px; height: 50px; border: 4px solid rgba(255,255,255,.78); }.depot-mark i { left: 10%; }.depot-mark b:nth-of-type(1) { left: 29%; }.depot-mark b:nth-of-type(2) { right: 29%; }.depot-mark b:nth-of-type(3) { right: 10%; }.society-copy { display: flex; justify-content: center; flex-direction: column; padding: 85px clamp(35px,7vw,105px); }.society-copy h2 { max-width: 760px; margin: 12px 0 24px; color: var(--forest); font-size: clamp(3.1rem,5vw,5.2rem); font-weight: 400; line-height: .98; }.society-copy > p:not(.society-contact):not(.society-note) { max-width: 730px; margin: 0 0 14px; color: #536159; font-family: Georgia,serif; font-size: 1.05rem; line-height: 1.75; }.society-details { display: grid; grid-template-columns: repeat(3,1fr); max-width: 820px; margin: 27px 0 30px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }.society-details div { padding: 22px 24px 22px 0; }.society-details div + div { padding-left: 24px; border-left: 1px solid var(--line); }.society-details dt { margin-bottom: 8px; color: var(--rust); font-size: .65rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }.society-details dd { margin: 0; color: var(--forest); font-size: .85rem; font-weight: 700; line-height: 1.55; }.society-actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }.society-membership { color: var(--rust); font-weight: 800; text-underline-offset: 4px; }.society-contact { display: flex; gap: 9px; margin: 24px 0 0; color: var(--muted); font-size: .82rem; flex-wrap: wrap; }.society-contact a { color: var(--forest); font-weight: 750; }.society-note { margin: 9px 0 0; color: var(--muted); font-size: .72rem; }
.local-values { padding: 110px clamp(28px,7vw,105px); background: var(--cream); }.values-heading { display: grid; grid-template-columns: .5fr 1.2fr; gap: 60px; max-width: 1250px; margin: 0 auto 60px; }.values-heading h2 { max-width: 820px; margin: 0; color: var(--forest); font-size: clamp(3rem,5.5vw,5.5rem); font-weight: 400; }.values-grid { display: grid; grid-template-columns: repeat(3,1fr); max-width: 1250px; margin: 0 auto; border-top: 1px solid var(--line); }.values-grid article { padding: 36px 38px 20px 0; }.values-grid article + article { padding-left: 38px; border-left: 1px solid var(--line); }.values-grid span { color: var(--rust); font-size: .68rem; font-weight: 850; }.values-grid h3 { margin: 22px 0 14px; color: var(--forest); font-size: 1.65rem; }.values-grid p { margin: 0; color: var(--muted); line-height: 1.75; }
.about-sources { display: grid; grid-template-columns: .7fr 1.3fr; gap: 70px; align-items: start; padding: 90px clamp(28px,7vw,105px); color: white; background: var(--forest); }.about-sources h2 { max-width: 470px; font-size: clamp(2.5rem,4vw,4rem); font-weight: 400; }.about-sources .eyebrow { color: #e5b66b; }.source-links { border-top: 1px solid rgba(255,255,255,.25); }.source-links a { display: grid; grid-template-columns: .55fr 1fr auto; gap: 20px; align-items: center; padding: 22px 0; border-bottom: 1px solid rgba(255,255,255,.2); color: white; text-decoration: none; }.source-links a:hover strong { color: #e5b66b; }.source-links span { color: #a9beb5; font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.source-links strong { font-family: Georgia,serif; font-size: 1.25rem; font-weight: 400; transition: color .18s; }.source-links i { color: #e5b66b; font-style: normal; }
.about-cta { display: flex; justify-content: space-between; gap: 55px; align-items: center; padding: 85px clamp(28px,7vw,105px); color: white; background: var(--rust); }.about-cta .eyebrow { color: #f0cd91; }.about-cta h2 { max-width: 880px; margin: 0; font-size: clamp(2.7rem,5vw,5.2rem); font-weight: 400; }.about-cta .button { flex: 0 0 auto; }

/* Admin */
.admin-body { min-height: 100vh; background: #f1eee6; }.admin-sidebar { position: fixed; z-index: 1000; inset: 0 auto 0 0; display: flex; width: 250px; flex-direction: column; padding: 28px 20px; color: white; background: var(--forest); }.admin-brand { color: white; font-family: Georgia,serif; font-size: 1rem; }.admin-brand small { margin-top: 5px; color: #a8beb4; font-family: Inter,sans-serif; font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; }.admin-sidebar nav { display: grid; gap: 5px; margin-top: 58px; }.admin-sidebar nav a { padding: 11px 13px; border-radius: 8px; color: #c7d7d0; font-size: .84rem; font-weight: 700; text-decoration: none; }.admin-sidebar nav a:hover, .admin-sidebar nav a.is-active { color: white; background: rgba(255,255,255,.1); }.admin-sidebar-foot { margin-top: auto; padding: 18px 10px 0; border-top: 1px solid rgba(255,255,255,.13); font-size: .72rem; }.admin-sidebar-foot p { color: #a8beb4; }.admin-sidebar-foot strong { color: white; }.admin-sidebar-foot a, .admin-sidebar-foot .text-button { display: block; margin-top: 10px; color: #d9e5df; }.admin-main { min-height: 100vh; margin-left: 250px; padding: 48px clamp(28px, 5vw, 72px) 90px; }.admin-page-head { display: flex; justify-content: space-between; gap: 30px; align-items: end; margin-bottom: 34px; }.admin-page-head h1 { margin: 0 0 12px; color: var(--forest); font-size: clamp(2.6rem, 4vw, 4.4rem); font-weight: 400; }.admin-page-head p { margin: 0; color: var(--muted); }.admin-page-head .back-link { margin-bottom: 18px; color: var(--forest); }
.flash-stack { position: relative; z-index: 2000; max-width: 1040px; margin: 0 auto 18px; }.site-header + .flash-stack { position: absolute; top: 92px; left: 50%; width: min(92%, 900px); transform: translateX(-50%); }.flash { padding: 13px 17px; border: 1px solid; border-radius: 9px; background: var(--paper); font-size: .85rem; box-shadow: 0 8px 30px rgba(31,45,40,.12); }.flash + .flash { margin-top: 8px; }.flash-success { border-color: #6c9c78; color: #245230; }.flash-error { border-color: #c66a5e; color: #7d2d25; }.flash-warning { border-color: #d3a74e; color: #6b501d; }.flash ul { margin: 8px 0 0; padding-left: 20px; }
.stat-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 15px; margin-bottom: 25px; }.stat-grid article { padding: 24px; border: 1px solid #ded8cc; border-radius: 14px; background: var(--paper); }.stat-grid span, .stat-grid small { display: block; color: var(--muted); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.stat-grid strong { display: block; margin: 8px 0; color: var(--forest); font-family: Georgia,serif; font-size: 2.5rem; font-weight: 400; }.stat-grid small { font-size: .59rem; letter-spacing: .03em; text-transform: none; }
.admin-panel { border: 1px solid #ded8cc; border-radius: 14px; background: var(--paper); box-shadow: 0 8px 30px rgba(31,45,40,.04); }.panel-head { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 24px 26px; border-bottom: 1px solid #e5dfd4; }.panel-head h2, .form-section h2, .publish-card h2 { margin: 0 0 5px; color: var(--forest); font-size: 1.45rem; }.panel-head p { margin: 0; color: var(--muted); font-size: .78rem; }.panel-head a { color: var(--rust); font-size: .75rem; font-weight: 750; }.admin-list-row { display: grid; grid-template-columns: auto 1fr auto auto; gap: 15px; align-items: center; padding: 16px 25px; border-bottom: 1px solid #ece7de; text-decoration: none; }.admin-list-row:last-child { border-bottom: 0; }.admin-list-row:hover { background: #faf6ed; }.row-dot { display: block; width: 11px; height: 11px; border-radius: 50%; background: var(--category-color); }.admin-list-row strong, .admin-list-row small { display: block; }.admin-list-row strong { font-family: Georgia,serif; font-size: .98rem; }.admin-list-row small { margin-top: 3px; color: var(--muted); font-size: .68rem; }.status { display: inline-flex; padding: 5px 9px; border-radius: 999px; font-size: .62rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }.status-published { color: #285c38; background: #dcebdc; }.status-draft { color: #71571f; background: #f3e5bc; }.status-archived { color: #6c6460; background: #e9e5e2; }.panel-empty { padding: 50px; text-align: center; }.panel-empty strong { font-family: Georgia,serif; font-size: 1.3rem; }.panel-empty p { color: var(--muted); }
.table-tools { display: flex; justify-content: space-between; gap: 25px; align-items: end; padding: 20px 24px; border-bottom: 1px solid #e5dfd4; color: var(--muted); font-size: .75rem; }.admin-search { display: grid; gap: 5px; color: var(--muted); font-size: .65rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }.admin-search input { width: min(360px, 60vw); padding: 9px 12px; border: 1px solid #d4cdc0; border-radius: 8px; background: white; text-transform: none; }.responsive-table { overflow-x: auto; }.data-table { width: 100%; border-collapse: collapse; }.data-table th, .data-table td { padding: 15px 20px; border-bottom: 1px solid #ece7de; text-align: left; }.data-table th { color: var(--muted); background: #faf7f0; font-size: .63rem; letter-spacing: .1em; text-transform: uppercase; }.data-table td { font-size: .78rem; }.data-table td strong, .data-table td small { display: block; }.data-table td strong { font-family: Georgia,serif; font-size: .95rem; }.data-table td small { margin-top: 4px; color: var(--muted); }.category-table-label { display: inline-flex; gap: 7px; align-items: center; }.category-table-label i { width: 8px; height: 8px; border-radius: 50%; background: var(--category-color); }.table-actions { white-space: nowrap; }.table-actions a, .table-actions button { margin-right: 10px; border: 0; color: var(--rust); background: none; font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; }.table-actions form { display: inline; }
.editor-grid { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 22px; align-items: start; }.editor-main { display: grid; gap: 20px; }.editor-sidebar { position: sticky; top: 25px; }.form-section { padding: 27px; }.section-heading { display: flex; gap: 14px; align-items: center; margin-bottom: 25px; padding-bottom: 20px; border-bottom: 1px solid #e8e2d8; }.section-heading > span { display: grid; width: 36px; height: 36px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: white; background: var(--forest); font-size: .68rem; font-weight: 850; }.section-heading p { margin: 0; color: var(--muted); font-size: .75rem; }.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }.form-grid .span-2 { grid-column: 1 / -1; }.stack-form { display: grid; gap: 18px; }.form-grid label, .stack-form label, .publish-card label, .compact-form label, .account-actions label { display: grid; gap: 7px; color: #4e5e57; font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }.form-grid input, .form-grid textarea, .form-grid select, .stack-form input, .stack-form select, .publish-card select, .compact-form input, .compact-form select, .account-actions input { width: 100%; padding: 11px 12px; border: 1px solid #cfc7b9; border-radius: 8px; color: var(--ink); background: white; outline: 0; text-transform: none; }.form-grid input:focus, .form-grid textarea:focus, .form-grid select:focus, .stack-form input:focus, .stack-form select:focus { border-color: var(--forest); box-shadow: 0 0 0 3px rgba(24,63,53,.12); }.label-note, .stack-form label > span { color: var(--muted); font-size: .62rem; font-weight: 500; letter-spacing: 0; text-transform: none; }.publish-card { padding: 24px; }.publish-card label { margin: 23px 0; }.publish-card p { margin: 14px 0 0; color: var(--muted); font-size: .68rem; text-align: center; }.upload-field { padding: 20px; border: 1px dashed #aaa090; border-radius: 10px; background: #faf7ef; }.current-cover { width: 240px; max-height: 170px; margin-bottom: 18px; border-radius: 9px; object-fit: cover; }.geocode-row { display: flex; gap: 15px; align-items: center; margin-bottom: 16px; }.geocode-row span { color: var(--muted); font-size: .7rem; }.admin-map { height: 360px; border: 1px solid #cbc4b7; border-radius: 10px; }.coordinate-fields { margin-top: 16px; }.geocode-results { display: grid; gap: 6px; margin-top: 10px; }.geocode-results button { padding: 10px 12px; border: 1px solid #d5cec1; border-radius: 7px; background: white; text-align: left; cursor: pointer; }.geocode-results button:hover { border-color: var(--forest); background: #f3f7f4; }
.admin-marker-wrapper { border: 0; background: transparent; overflow: visible; }.admin-map-marker { position: relative; display: grid; width: 38px; height: 38px; place-items: center; border: 4px solid white; border-radius: 50% 50% 50% 4px; background: var(--rust); box-shadow: 0 5px 16px rgba(31,45,40,.45); transform: rotate(-45deg); }.admin-map-marker::after { width: 14px; height: 14px; border: 3px solid white; border-radius: 50%; content: ""; }.admin-marker-wrapper.leaflet-drag-target .admin-map-marker { box-shadow: 0 8px 22px rgba(31,45,40,.55); transform: rotate(-45deg) scale(1.08); }
.venue-coordinate-editor { display: grid; gap: 14px; margin-top: 4px; padding: 18px; border: 1px solid #d6cebf; border-radius: 11px; background: #faf7ef; }.venue-coordinate-editor[hidden] { display: none; }.venue-coordinate-editor > div:first-child > strong { display: block; margin-bottom: 5px; color: var(--forest); font-family: Georgia,serif; font-size: 1.05rem; }.venue-coordinate-editor .form-note { margin: 0; }.venue-coordinate-map { width: 100%; height: 330px; min-height: 330px; border: 1px solid #c9c1b3; border-radius: 9px; background: #e7e1d3; }.venue-coordinate-status { min-height: 1.3em; margin: 0; color: var(--muted); font-size: .7rem; }.venue-coordinate-editor .coordinate-fields { margin-top: 0; }.venue-verification { margin: 0!important; padding: 12px 14px; border-radius: 8px; color: var(--forest)!important; background: #e5eee6; }.venue-verification input { width: auto!important; }.community-form .venue-coordinate-editor { margin-top: 5px; }.community-form .venue-coordinate-editor .text-button { justify-self: start; }
.admin-two-column { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(280px,.65fr); gap: 22px; align-items: start; }.admin-two-column > .form-section { position: sticky; top: 25px; }.category-editor, .account-card { border-bottom: 1px solid #e9e3d8; }.category-editor:last-child, .account-card:last-child { border-bottom: 0; }.category-editor summary, .account-card summary { display: grid; grid-template-columns: auto 1fr auto auto; gap: 12px; align-items: center; padding: 17px 24px; cursor: pointer; list-style: none; }.category-editor summary::-webkit-details-marker, .account-card summary::-webkit-details-marker { display: none; }.category-editor summary small, .account-card summary small { color: var(--muted); font-size: .68rem; }.compact-form { display: grid; grid-template-columns: 1.1fr 1fr .65fr .8fr .5fr auto; gap: 10px; align-items: end; padding: 20px 24px; background: #faf7f0; }.category-toggle { padding: 0 24px 18px; background: #faf7f0; }.account-avatar { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; color: white; background: var(--forest); font-family: Georgia,serif; }.account-card summary div strong, .account-card summary div small { display: block; }.account-actions { padding: 18px 24px 22px 74px; background: #faf7f0; }.account-actions > p { color: var(--muted); font-size: .7rem; }.account-actions form { display: flex; gap: 12px; align-items: end; margin-top: 14px; }.account-actions label { flex: 1; }.account-actions .text-button { margin-bottom: 8px; }
.login-main { min-height: 100vh; display: grid; place-items: center; padding: 35px; background: radial-gradient(circle at 80% 20%, rgba(199,138,45,.25), transparent 25%), var(--forest); }.login-card { width: min(100%, 480px); padding: 42px; border-radius: 18px; background: var(--paper); box-shadow: 0 30px 90px rgba(0,0,0,.25); }.login-brand { color: var(--forest); margin-bottom: 42px; }.login-copy h1 { margin-bottom: 17px; color: var(--forest); font-size: 3rem; font-weight: 400; }.login-copy p { margin-bottom: 28px; color: var(--muted); }.login-card .back-link { margin: 25px 0 0; color: var(--forest); }
.login-brand .brand-logo { width: 230px; }
.system-summary { align-self: center; padding: 8px 13px; border-radius: 999px; font-size: .7rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }.system-summary.is-current { color: #285c38; background: #dcebdc; }.system-summary.has-pending { color: #71571f; background: #f3e5bc; }.system-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(300px,.65fr); gap: 22px; align-items: start; }.migration-list { padding: 8px 0; }.migration-row { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; padding: 17px 24px; border-bottom: 1px solid #ece7de; }.migration-row:last-child { border-bottom: 0; }.migration-icon { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; font-size: .75rem; font-weight: 900; }.migration-icon.is-applied { color: #285c38; background: #dcebdc; }.migration-icon.is-pending { color: #71571f; background: #f3e5bc; }.migration-row strong, .migration-row code, .migration-state small { display: block; }.migration-row code { margin-top: 4px; color: var(--muted); font-size: .68rem; }.migration-state { text-align: right; }.migration-state small { margin-top: 5px; color: var(--muted); font-size: .62rem; }.migration-action { display: flex; justify-content: space-between; gap: 24px; align-items: center; padding: 22px 24px; border-top: 1px solid #ded8cc; background: #faf7f0; }.migration-action strong { font-family: Georgia,serif; font-size: 1.05rem; }.migration-action p { margin: 4px 0 0; color: var(--muted); font-size: .68rem; }.system-side { display: grid; gap: 22px; }.system-card { padding: 25px; }.system-card h2 { color: var(--forest); font-size: 1.45rem; }.version-list { margin: 20px 0; }.version-list > div { display: flex; justify-content: space-between; gap: 18px; padding: 9px 0; border-bottom: 1px solid #ece7de; }.version-list dt { color: var(--muted); font-size: .7rem; font-weight: 750; }.version-list dd { margin: 0; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .7rem; }.check-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }.check-list li { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: center; }.check-list li > span { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; font-size: .65rem; font-weight: 900; }.check-list .is-passed > span { color: #285c38; background: #dcebdc; }.check-list .is-failed > span { color: #7d2d25; background: #f1d8d3; }.check-list strong, .check-list small { display: block; }.check-list strong { font-size: .7rem; }.check-list small { color: var(--muted); font-size: .62rem; }.install-card > code { display: block; margin: 18px 0; padding: 12px 14px; overflow-x: auto; border-radius: 7px; color: #dfe8e2; background: var(--forest); font-size: .76rem; }.install-card > p { color: var(--muted); font-size: .76rem; line-height: 1.6; }.system-note { margin-bottom: 0; }
.publish-card .checkbox-label { display: flex; gap: 9px; align-items: center; letter-spacing: 0; text-transform: none; }.publish-card .checkbox-label input { width: auto; }

@media (max-width: 1050px) {
  .hero { grid-template-columns: 1fr .7fr; }.hero-art { clip-path: polygon(30% 0,100% 0,100% 100%,0 100%); }.hero h1 { font-size: clamp(3.6rem,8vw,6rem); }
  .map-directory-shell { grid-template-columns: .85fr 1.15fr; }.local-callout { grid-template-columns: 1fr 1fr; }.local-callout .button { grid-column: 2; justify-self: start; }.local-stamp { display: none; }
  .site-footer { grid-template-columns: 1fr auto; }.footer-links { grid-column: 1 / -1; justify-self: end; }
  .cork-board { grid-template-columns: repeat(2,minmax(0,1fr)); }.community-post-grid { gap: 38px; }
  .admin-sidebar { width: 215px; }.admin-main { margin-left: 215px; padding-left: 30px; padding-right: 30px; }.stat-grid { grid-template-columns: 1fr 1fr; }.compact-form { grid-template-columns: 1fr 1fr 1fr; }
}

@media (max-width: 780px) {
  .site-header { position: absolute; padding: 18px 20px; }.site-header nav { gap: 15px; }.site-header nav a { font-size: .72rem; white-space: nowrap; }
  .hero { display: block; min-height: 760px; }.public-home .hero { min-height: 1040px; }.hero-copy { padding: 130px 24px 70px; }.public-home .hero-copy { padding-bottom: 355px; }.hero h1 { font-size: clamp(3.4rem,15vw,5.4rem); }.hero-art { position: absolute; inset: auto 0 0; height: 290px; min-height: 0; clip-path: polygon(0 25%,100% 0,100% 100%,0 100%); }.hero-art .sun { width: 120px; height: 120px; top: 35px; }.hero-art .field-lines { height: 120px; }.hero-logo-scene { top: 58%; left: 50%; width: min(96%, 560px); }.hero-note { display: none; }.hero-board-preview { max-width: 360px; }.hero-board-card { left: calc(var(--preview-index) * 42px); width: 225px; }
  .directory-section { padding: 70px 15px 80px; }.directory-intro { grid-template-columns: 1fr; gap: 20px; padding: 0 9px; }.directory-intro h2 { font-size: 3rem; }.search-box { max-width: none; }.filter-row { flex-wrap: nowrap; margin-right: -15px; overflow-x: auto; padding: 0 15px 9px 0; }.filter-chip { white-space: nowrap; }.clear-filters { margin-left: 5px; white-space: nowrap; }
  .map-directory-shell { display: flex; flex-direction: column; min-height: 0; border-radius: 16px; }.results-panel { order: 2; border-right: 0; }.location-list { max-height: none; overflow: visible; }.map-panel { height: 480px; min-height: 480px; flex: 0 0 480px; order: 1; border-bottom: 1px solid var(--line); }.location-card { grid-template-columns: 82px 1fr; }.card-image { min-height: 100px; }
  .local-callout { grid-template-columns: 1fr; gap: 24px; padding: 70px 26px; }.local-callout .button { grid-column: 1; }.site-footer { grid-template-columns: 1fr; justify-items: start; }.footer-sponsor { justify-items: start; }.footer-sponsor img { width: 180px; height: 155px; }.footer-links { grid-column: 1; justify-self: start; flex-direction: column; align-items: flex-start; }.site-footer > p { grid-column: 1; }
  .board-hero,.submission-hero { padding: 135px 24px 65px; }.board-hero h1,.submission-hero h1 { font-size: 3.5rem; }.board-section { padding: 65px 12px 80px; }.board-toolbar { align-items: flex-start; flex-direction: column; padding: 0 12px; }.board-filters { flex-wrap: wrap; }.cork-board { grid-template-columns: 1fr; gap: 25px; padding: 36px 24px; border-width: 12px; }.board-card,.board-card:nth-child(3n+2),.board-card:nth-child(4n) { width: var(--card-mobile-width,100%); min-height: 0; margin: 0; justify-self: center; }.board-card:nth-child(even) { transform: rotate(1deg); }.submission-wrap { padding: 55px 15px 80px; }.submission-type-cards { grid-template-columns: 1fr; }.community-form fieldset { padding: 23px 18px; }.submission-actions { align-items: flex-start; flex-direction: column; }.community-post-detail { padding-top: 80px; }.community-post-header { padding: 60px 24px; }.community-post-header h1 { font-size: 3.5rem; }.community-post-grid { grid-template-columns: 1fr; gap: 35px; padding: 60px 18px 80px; }.community-post-facts { transform: none; }.board-stat-grid { grid-template-columns: 1fr 1fr; }.stat-action { grid-column: 1 / -1; }
  .contact-hero { padding: 145px 24px 70px; }.contact-hero h1 { font-size: 3.5rem; }.contact-wrap { padding: 65px 18px 85px; }.contact-grid { grid-template-columns: 1fr; gap: 38px; }.contact-form { padding: 25px 20px; }.message-filters { flex-wrap: wrap; }.message-row { grid-template-columns: auto 1fr; gap: 8px 13px; }.message-row p,.message-row time { grid-column: 2; }.message-actions { align-items: stretch; flex-direction: column; }.message-actions .button,.message-actions form,.message-actions form button { width: 100%; }.message-actions .text-button { margin-left: 0; }.message-detail-body { padding: 28px 23px; }.analytics-exclusion-forms { grid-template-columns: 1fr; padding: 18px; }.analytics-exclusion-list article { align-items: flex-start; flex-direction: column; }
  .admin-board-filters { width: 100%; flex-wrap: wrap; }.admin-board-filters label { flex: 1; }.admin-board-filters select { width: 100%; }.moderation-alert { align-items: flex-start; flex-direction: column; }
  .location-detail { padding-top: 80px; }.detail-hero { grid-template-columns: 1fr; }.detail-hero-copy { padding: 65px 25px 50px; }.detail-hero h1 { font-size: 3.6rem; }.detail-image { min-height: 330px; }.detail-grid { grid-template-columns: 1fr; gap: 35px; padding: 65px 20px 80px; }.directions-origin { grid-template-columns: 1fr; align-items: stretch; }.directions-origin > span { text-align: center; }.directions-origin form > div,.route-summary { align-items: stretch; flex-direction: column; }.route-summary .button { width: 100%; }
  .about-hero { display: block; min-height: 760px; }.about-hero-copy { padding: 130px 24px 80px; }.about-hero h1 { font-size: clamp(3.5rem,15vw,5.5rem); }.about-hero-art { position: absolute; inset: auto 0 0; height: 280px; min-height: 0; clip-path: polygon(0 20%,100% 0,100% 100%,0 100%); opacity: .78; }.about-sun { top: 30px; width: 110px; height: 110px; }.about-storefront { bottom: 43px; transform: scale(.72); transform-origin: bottom left; }.storefront-one { left: 0; }.storefront-two { left: 30%; }.storefront-three { right: -3%; transform-origin: bottom right; }.about-hero-stamp { display: none; }.about-intro,.history-band,.about-character,.historical-society,.values-heading,.about-sources { grid-template-columns: 1fr; }.about-intro { gap: 35px; padding: 75px 24px; }.about-intro h2 { font-size: 3.3rem; }.history-band { gap: 45px; padding: 75px 24px; }.history-heading { position: static; }.about-character { min-height: 0; }.character-art { min-height: 430px; }.character-copy { padding: 70px 25px; }.character-copy h2 { font-size: 3.2rem; }.historical-society { min-height: 0; }.society-art { min-height: 480px; padding: 60px 24px; }.society-copy { padding: 70px 24px; }.society-copy h2 { font-size: 3.2rem; }.society-details { grid-template-columns: 1fr; }.society-details div,.society-details div + div { padding: 18px 0; border-left: 0; border-bottom: 1px solid var(--line); }.society-details div:last-child { border-bottom: 0; }.local-values { padding: 75px 24px; }.values-heading { gap: 20px; }.values-heading h2 { font-size: 3.3rem; }.values-grid { grid-template-columns: 1fr; }.values-grid article,.values-grid article + article { padding: 28px 0; border-left: 0; border-bottom: 1px solid var(--line); }.about-sources { gap: 35px; padding: 70px 24px; }.source-links a { grid-template-columns: .6fr 1fr auto; }.about-cta { align-items: flex-start; flex-direction: column; padding: 70px 24px; }
  .admin-sidebar { position: static; width: 100%; padding: 16px 18px; }.admin-sidebar nav { display: flex; gap: 3px; margin: 16px -5px 0; overflow-x: auto; }.admin-sidebar nav a { white-space: nowrap; }.admin-sidebar-foot { display: none; }.admin-main { margin-left: 0; padding: 30px 16px 70px; }.admin-page-head { align-items: flex-start; flex-direction: column; }.stat-grid { gap: 10px; }.stat-grid article { padding: 18px; }.editor-grid, .admin-two-column, .system-grid { grid-template-columns: 1fr; }.editor-sidebar, .admin-two-column > .form-section { position: static; }.form-grid { grid-template-columns: 1fr; }.form-grid .span-2 { grid-column: 1; }.compact-form { grid-template-columns: 1fr 1fr; }.category-editor summary, .account-card summary { grid-template-columns: auto 1fr auto; }.category-editor summary .status, .account-card summary .status { grid-column: 2; justify-self: start; }.account-actions { padding-left: 24px; }.account-actions form { align-items: stretch; flex-direction: column; }.migration-action { align-items: flex-start; flex-direction: column; }.login-card { padding: 30px 23px; }.login-copy h1 { font-size: 2.5rem; }
}

@media (max-width: 480px) {
  .brand-logo { width: 128px; }.site-header nav { flex-direction: column; gap: 7px; align-items: flex-end; }.site-header nav a { font-size: .68rem; }.hero-copy > p { font-size: 1rem; }.hero-logo-scene { width: 108%; }.search-box button { padding-inline: 15px; }.location-card { padding-right: 31px; }.card-body p { -webkit-line-clamp: 1; }.map-panel { height: 420px; min-height: 420px; flex-basis: 420px; }.stat-grid { grid-template-columns: 1fr 1fr; }.stat-grid strong { font-size: 2rem; }.admin-list-row { grid-template-columns: auto 1fr auto; }.admin-list-row .status { display: none; }.compact-form { grid-template-columns: 1fr; }.form-section { padding: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; } *, *::before, *::after { scroll-behavior: auto!important; transition: none!important; animation: none!important; }
}

/* Visitor itinerary */
.itinerary-nav-link { display: inline-flex; gap: 6px; align-items: center; }.itinerary-nav-link [data-itinerary-count] { display: inline-grid; min-width: 20px; height: 20px; padding: 0 5px; place-items: center; border-radius: 999px; color: var(--forest); background: #e5b66b; font-size: .62rem; font-weight: 900; }.itinerary-add-small { position: relative; z-index: 6; padding: 6px 9px; border: 1px solid rgba(24,63,53,.32); border-radius: 999px; color: var(--forest); background: rgba(255,253,248,.92); font: inherit; font-size: .61rem; font-weight: 850; cursor: pointer; }.itinerary-add-small.is-added,[data-itinerary-add].is-added { border-color: #4f795e; color: #285c38; background: #e4efe4; }.location-card > .itinerary-add-small { position: absolute; right: 11px; bottom: 9px; }.board-card > .itinerary-add-small { margin-top: 15px; }.visit-card [data-itinerary-add],.community-post-facts [data-itinerary-add] { margin-top: 10px; }
.floating-itinerary { position: fixed; z-index: 950; right: 22px; bottom: calc(22px + env(safe-area-inset-bottom)); display: flex; min-width: 190px; min-height: 84px; gap: 12px; align-items: center; padding: 9px 17px 9px 10px; border: 1px solid rgba(24,63,53,.24); border-radius: 11px 15px 15px 11px; color: var(--forest); background: #fffaf0; box-shadow: 0 13px 34px rgba(31,45,40,.24),0 3px 7px rgba(31,45,40,.12); text-decoration: none; transform: rotate(-1.2deg); transform-origin: right bottom; transition: transform .18s ease,box-shadow .18s ease; }.floating-itinerary[hidden] { display: none; }.floating-itinerary:hover { transform: rotate(0) translateY(-3px); box-shadow: 0 17px 38px rgba(31,45,40,.28),0 4px 8px rgba(31,45,40,.14); }.floating-itinerary:focus-visible { outline: 4px solid var(--gold); outline-offset: 4px; transform: rotate(0); }.floating-itinerary-clipboard { display: block; width: 51px; height: 61px; flex: 0 0 auto; }.floating-itinerary-clipboard svg { display: block; width: 100%; height: 100%; overflow: visible; }.clipboard-paper { fill: #f7edda; stroke: #183f35; stroke-width: 2.5; }.clipboard-clip { fill: #d5a23e; stroke: #183f35; stroke-width: 2.5; stroke-linejoin: round; }.clipboard-checks { fill: none; stroke: #315e50; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }.floating-itinerary-copy { display: grid; gap: 4px; line-height: 1.05; }.floating-itinerary-copy strong { font-family: Georgia,serif; font-size: 1rem; font-weight: 700; }.floating-itinerary-copy > span { color: var(--rust); font-size: .7rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }.floating-itinerary-copy b { font-size: .88rem; }.floating-itinerary.is-entering { animation: itinerary-clipboard-in .38s cubic-bezier(.2,.8,.3,1.2); }.floating-itinerary.is-counting { animation: itinerary-clipboard-count .3s ease; }@keyframes itinerary-clipboard-in { from { opacity: 0; transform: translateY(18px) rotate(-5deg) scale(.9); } to { opacity: 1; transform: rotate(-1.2deg) scale(1); } }@keyframes itinerary-clipboard-count { 50% { transform: rotate(0) scale(1.055); } }
.itinerary-hero { padding: 165px clamp(24px,8vw,120px) 92px; color: white; background: radial-gradient(circle at 83% 25%,rgba(212,166,90,.2),transparent 22%),var(--forest); }.itinerary-hero .eyebrow { color: #e5b66b; }.itinerary-hero h1 { max-width: 980px; margin: 14px 0 24px; font-size: clamp(3.8rem,7vw,7rem); font-weight: 400; line-height: .98; }.itinerary-hero h1 em { color: #e5b66b; font-weight: 400; }.itinerary-hero p { max-width: 680px; color: #dce6df; font-family: Georgia,serif; font-size: 1.08rem; line-height: 1.75; }.itinerary-builder { max-width: 1180px; margin: 0 auto; padding: 80px 24px 120px; }.itinerary-storage-warning { margin-bottom: 20px; padding: 15px 18px; border-left: 5px solid var(--gold); color: #664c1d; background: #fff1c6; }.itinerary-plan { padding: clamp(22px,4vw,46px); background: var(--paper); box-shadow: var(--shadow); }.itinerary-plan-head,.itinerary-catalog-head { display: flex; justify-content: space-between; gap: 25px; align-items: end; }.itinerary-plan-head h2,.itinerary-catalog-head h2 { margin: 8px 0 0; color: var(--forest); font-size: clamp(2.4rem,5vw,4.2rem); font-weight: 400; }.itinerary-clear { align-self: center; color: var(--rust); }.itinerary-basics { display: grid; grid-template-columns: 1fr minmax(220px,.4fr); gap: 18px; margin: 32px 0 15px; }.itinerary-basics label,.itinerary-item-fields label { display: grid; gap: 7px; color: var(--muted); font-size: .65rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }.itinerary-basics label > span { font-weight: 500; letter-spacing: 0; text-transform: none; }.itinerary-basics input,.itinerary-item-fields input,.itinerary-item-fields textarea,.itinerary-catalog-head input { width: 100%; padding: 11px 12px; border: 1px solid #cfc7b9; border-radius: 8px; color: var(--ink); background: white; }.itinerary-help { margin: 0 0 18px; color: var(--muted); font-size: .72rem; }.itinerary-route-toggle-row { display: flex; gap: 14px; align-items: center; margin-bottom: 24px; }.itinerary-route-toggle-row > span { color: var(--muted); font-size: .68rem; }.itinerary-route-toggle-row button:disabled { opacity: .45; cursor: not-allowed; }.itinerary-workspace { display: grid; grid-template-columns: minmax(0,1fr) minmax(330px,.82fr); gap: 22px; align-items: start; }.itinerary-stops { min-width: 0; }.itinerary-selected { display: grid; gap: 13px; }.itinerary-selected-item { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 17px; align-items: start; padding: 20px; border: 1px solid #ded6c8; border-radius: 12px; background: #fffdf8; cursor: grab; }.itinerary-selected-item.is-unavailable { border-color: #a94435; background: #fae7e2; }.itinerary-item-number { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; color: white; background: var(--forest); font-size: .76rem; font-weight: 900; }.itinerary-item-meta { color: var(--rust); font-size: .59rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }.itinerary-item-body h3 { margin: 4px 0 6px; color: var(--forest); font-size: 1.4rem; }.itinerary-item-schedule,.itinerary-unavailable-message { margin: 0 0 12px; color: var(--muted); font-size: .7rem; }.itinerary-unavailable-message { color: #8a3025; font-weight: 750; }.itinerary-item-fields { display: grid; grid-template-columns: minmax(130px,.35fr) 1fr; gap: 13px; margin-top: 13px; }.itinerary-item-fields textarea { resize: vertical; }.itinerary-item-actions { display: grid; gap: 5px; }.itinerary-item-action { padding: 6px 8px; border: 0; color: var(--rust); background: transparent; font-size: .63rem; font-weight: 800; text-decoration: underline; cursor: pointer; }.itinerary-item-action:disabled { color: #aaa39a; cursor: not-allowed; }.itinerary-empty { padding: 55px 20px; border: 1px dashed #bcb2a1; border-radius: 12px; text-align: center; }.itinerary-empty strong { color: var(--forest); font-family: Georgia,serif; font-size: 1.35rem; }.itinerary-empty p { margin: 8px 0 0; color: var(--muted); }.itinerary-route-panel { position: sticky; top: 105px; min-width: 0; padding: 18px; border: 1px solid #d7cfbf; border-radius: 13px; background: #f7f1e5; box-shadow: 0 10px 26px rgba(31,45,40,.12); }.itinerary-route-panel[hidden] { display: none; }.itinerary-route-head { display: grid; gap: 13px; margin-bottom: 14px; }.itinerary-route-head .eyebrow { margin-bottom: 5px; }.itinerary-route-head h3 { margin: 0; color: var(--forest); font-size: 1.45rem; }.itinerary-route-head .travel-modes { justify-content: start; }.itinerary-route-map { width: 100%; height: 390px; min-height: 390px; border: 1px solid #cfc7b9; border-radius: 9px; background: #e8e3d8; }.itinerary-route-map[hidden] { display: none; }.itinerary-route-status { min-height: 1.3em; margin: 13px 0 5px; color: var(--muted); font-size: .7rem; }.itinerary-route-status.is-error { color: #8a3025; font-weight: 750; }.itinerary-route-summary { display: block; margin-top: 5px; color: var(--forest); font-family: Georgia,serif; font-size: 1.1rem; }.itinerary-route-skipped { margin: 9px 0 0; padding: 9px 11px; border-left: 3px solid var(--gold); color: #664c1d; background: #fff1c6; font-size: .65rem; line-height: 1.45; }.itinerary-route-panel .route-attribution { display: block; margin-top: 8px; color: var(--muted); font-size: .56rem; }.itinerary-route-marker-shell { border: 0; background: transparent; }.itinerary-route-marker { display: grid; width: 36px; height: 36px; padding: 2px; place-items: center; border: 3px solid white; border-radius: 50%; color: white; background: var(--forest); box-shadow: 0 3px 10px rgba(0,0,0,.3); font-size: .66rem; font-weight: 900; line-height: 1; text-align: center; }.itinerary-route-marker-shell:focus { outline: 3px solid var(--gold); outline-offset: 3px; }.itinerary-warnings { display: grid; gap: 8px; margin-top: 16px; }.itinerary-warnings:empty { display: none; }.itinerary-warnings p { margin: 0; padding: 11px 14px; border-left: 4px solid var(--gold); color: #664c1d; background: #fff1c6; font-size: .72rem; }.itinerary-download-row { display: flex; justify-content: space-between; gap: 20px; align-items: center; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }.itinerary-download-row p { max-width: 420px; margin: 0; color: var(--muted); font-size: .68rem; text-align: right; }.itinerary-download-row button:disabled { opacity: .45; cursor: not-allowed; }.itinerary-catalog { margin-top: 65px; }.itinerary-catalog-head { margin-bottom: 25px; }.itinerary-catalog-head label { width: min(100%,350px); }.itinerary-catalog-list { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }.itinerary-catalog-item { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 18px; align-items: center; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }.itinerary-catalog-item > div > span,.itinerary-catalog-item time { color: var(--rust); font-size: .58rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }.itinerary-catalog-item h3 { margin: 5px 0; color: var(--forest); font-size: 1.2rem; }.itinerary-catalog-item p { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.45; }.itinerary-catalog-item time { display: block; margin-top: 8px; color: #65736c; }.itinerary-catalog-empty { padding: 45px 20px; color: var(--muted); text-align: center; }
@media (max-width: 780px) { .itinerary-hero { padding: 145px 24px 70px; }.itinerary-hero h1 { font-size: 3.6rem; }.itinerary-builder { padding: 55px 14px 85px; }.itinerary-plan { padding: 24px 16px; }.itinerary-plan-head,.itinerary-catalog-head,.itinerary-download-row { align-items: flex-start; flex-direction: column; }.itinerary-basics,.itinerary-catalog-list,.itinerary-workspace { grid-template-columns: 1fr; }.itinerary-route-panel { position: static; order: -1; }.itinerary-route-map { height: 360px; min-height: 360px; }.itinerary-selected-item { grid-template-columns: auto minmax(0,1fr); }.itinerary-item-actions { grid-column: 2; grid-template-columns: repeat(3,auto); justify-content: start; }.itinerary-item-fields { grid-template-columns: 1fr; }.itinerary-download-row p { text-align: left; }.itinerary-catalog-head label { width: 100%; }.itinerary-catalog-item { align-items: end; }.location-card > .itinerary-add-small { position: relative; right: auto; bottom: auto; grid-column: 2; justify-self: start; }.location-card { padding-right: 31px; } }
@media (max-width: 480px) { .itinerary-hero h1 { font-size: 3rem; }.itinerary-route-toggle-row { align-items: flex-start; flex-direction: column; }.itinerary-route-panel { padding: 13px; }.itinerary-route-map { height: 310px; min-height: 310px; }.itinerary-selected-item { gap: 11px; padding: 16px 12px; }.itinerary-item-actions { grid-template-columns: 1fr; justify-items: start; }.itinerary-catalog-item { grid-template-columns: 1fr; }.itinerary-catalog-item .button { justify-self: start; } }

@media (max-width: 600px) { .floating-itinerary { right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); min-width: 126px; min-height: 60px; gap: 8px; padding: 6px 11px 6px 7px; border-radius: 9px 12px 12px 9px; }.floating-itinerary-clipboard { width: 39px; height: 47px; }.floating-itinerary-copy strong { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }.floating-itinerary-copy > span { font-size: .66rem; }.floating-itinerary-copy b { font-size: .83rem; } }

.itinerary-workspace:not(.is-route-open) { grid-template-columns: minmax(0,1fr); }

.itinerary-catalog-item[hidden] { display: none; }
.itinerary-catalog-filters { display: flex; gap: 9px; flex-wrap: wrap; margin: 0 0 24px; padding: 0; border: 0; }.itinerary-catalog-filters legend { width: 100%; margin-bottom: 7px; color: var(--muted); font-size: .65rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }.itinerary-catalog-filters label { position: relative; cursor: pointer; }.itinerary-catalog-filters input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }.itinerary-catalog-filters span { display: inline-flex; gap: 7px; align-items: center; min-height: 40px; padding: 8px 14px; border: 1px solid #cfc7b9; border-radius: 999px; color: var(--forest); background: #fffdf8; font-size: .7rem; font-weight: 800; }.itinerary-catalog-filters span::before { width: 8px; height: 8px; border-radius: 50%; background: var(--filter-color,var(--gold)); content: ""; }.itinerary-catalog-filters input:checked + span { border-color: var(--forest); color: white; background: var(--forest); }.itinerary-catalog-filters input:focus-visible + span { outline: 3px solid var(--gold); outline-offset: 2px; }
