.public-shell { min-height: var(--header-height); }
.public-shell.is-ready { display: contents; }
.shell-fallback { display: flex; min-height: var(--header-height); align-items: center; padding-inline: max(1rem, env(safe-area-inset-left)); color: var(--color-primary-dark); font-weight: 850; text-decoration: none; }
.public-shell.is-ready .shell-fallback { display: none; }
.site-header { position: sticky; z-index: 100; top: 0; min-height: var(--header-height); padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); border-bottom: 1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.92); box-shadow: 0 5px 24px rgba(6,78,59,.07); backdrop-filter: blur(16px); }
.site-header__inner { display: flex; width: min(calc(100% - 2rem), var(--container)); min-height: var(--header-height); align-items: center; gap: clamp(1rem, 3vw, 2.2rem); margin-inline: auto; }
.brand { display: inline-flex; align-items: center; gap: .7rem; flex: 0 0 auto; color: var(--color-primary-dark); text-decoration: none; }
.brand__mark { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 15px 15px 20px 15px; background: linear-gradient(145deg, var(--color-water), var(--color-primary)); color: #fff; box-shadow: 0 8px 20px rgba(0,121,107,.23); transform: rotate(-2deg); }
.brand__mark svg { width: 34px; fill: rgba(255,255,255,.25); stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.4; }
.brand__text { display: grid; line-height: 1.1; }
.brand__text strong { font-size: 1.08rem; letter-spacing: -.02em; }
.brand__text small { margin-top: .25rem; color: var(--color-muted); font-size: .67rem; font-weight: 600; }
.site-nav { display: flex; align-items: center; gap: .25rem; margin-left: auto; }
.site-nav a { min-height: 44px; padding: .75rem .85rem; border-radius: 999px; color: #40514b; font-size: .9rem; font-weight: 650; text-decoration: none; }
.site-nav a:hover, .site-nav a.is-active { background: var(--color-primary-light); color: var(--color-primary-dark); }
.site-nav a.is-active::after { display: block; width: 5px; height: 5px; margin: .2rem auto -.3rem; border-radius: 50%; background: var(--color-primary); content: ""; }
.button--compact { min-height: 42px; padding: .65rem 1rem; font-size: .85rem; }
.menu-toggle, .icon-button { display: none; width: 46px; height: 46px; align-items: center; justify-content: center; border: 0; border-radius: 14px; background: var(--color-primary-light); color: var(--color-primary-dark); cursor: pointer; }
.menu-toggle { flex-direction: column; gap: 5px; }
.menu-toggle span { width: 21px; height: 2px; border-radius: 2px; background: currentColor; }
.close-glyph { font-size: 1.8rem; line-height: 1; }
.icon-button svg { width: 24px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 2; }

.hero-section { position: relative; display: grid; min-height: clamp(620px, calc(100svh - var(--header-height)), 780px); align-items: center; isolation: isolate; background: #0c655a; }
.hero-section__landscape, .hero-section__overlay { position: absolute; inset: 0; }
.hero-section__landscape { z-index: -3; overflow: hidden; background: linear-gradient(180deg, #7ccce4 0%, #aadccf 42%, #159f9c 43%, #087c7a 100%); }
.hero-section__landscape::before { position: absolute; inset: 0; background: radial-gradient(circle at 70% 15%, rgba(255,245,180,.48), transparent 20%), linear-gradient(90deg, rgba(3,45,40,.55), transparent 68%); content: ""; }
.hero-sun { position: absolute; top: 13%; right: 18%; width: 85px; height: 85px; border-radius: 50%; background: #ffe49b; box-shadow: 0 0 80px 28px rgba(255,226,139,.48); }
.hero-mountain { position: absolute; bottom: 35%; left: 0; width: 100%; max-width: 100%; height: 49%; clip-path: polygon(0 100%, 10% 55%, 20% 76%, 33% 31%, 42% 64%, 53% 22%, 62% 55%, 74% 10%, 83% 53%, 91% 25%, 100% 72%, 100% 100%); }
.hero-mountain--back { background: linear-gradient(160deg, #669a7b, #285f52); filter: saturate(.8); opacity: .88; }
.hero-mountain--front { bottom: 28%; left: 0; height: 42%; background: linear-gradient(150deg, #28725f, #073f38); clip-path: polygon(0 100%, 14% 48%, 26% 75%, 41% 20%, 52% 68%, 68% 32%, 82% 71%, 93% 27%, 100% 51%, 100% 100%); }
.hero-water { position: absolute; inset: 65% 0 0; background: repeating-linear-gradient(173deg, transparent 0 18px, rgba(255,255,255,.09) 19px 21px), linear-gradient(180deg, rgba(17,166,162,.85), #076f70); }
.hero-water::after { position: absolute; top: 20%; left: 51%; width: 260px; height: 9px; border-radius: 50%; background: rgba(255,255,255,.45); box-shadow: 100px 45px 0 rgba(255,255,255,.15), -140px 72px 0 rgba(255,255,255,.14); content: ""; transform: skewX(-25deg); }
.hero-section__overlay { z-index: -2; background: linear-gradient(90deg, rgba(2,36,32,.88) 0%, rgba(3,56,50,.62) 44%, rgba(5,49,44,.08) 76%), linear-gradient(0deg, rgba(3,45,40,.4), transparent 45%); }
.hero-section__content { padding-block: 4.5rem 7rem; color: #fff; }
.hero-section__eyebrow { display: flex; align-items: center; gap: .6rem; margin-bottom: 1.25rem; color: #d8fff4; font-size: .85rem; font-weight: 700; letter-spacing: .02em; }
.hero-section__eyebrow-line { width: 30px; height: 2px; flex: 0 0 auto; background: var(--color-accent); }
.hero-section__eyebrow-text { width: fit-content; max-width: 100%; }
.hero-section h1 { display: grid; max-width: 720px; margin-bottom: 1.25rem; color: #fff; font-size: clamp(3rem, 6vw, 5.7rem); line-height: .98; text-shadow: 0 5px 30px rgba(0,0,0,.2); }
.hero-section h1 em { color: var(--color-accent); font-style: normal; }
.hero-section__description { max-width: 570px; margin-bottom: 1.8rem; color: #e7f9f4; font-size: clamp(1rem, 2vw, 1.18rem); line-height: 1.8; }
.hero-section__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.button--accent { background: linear-gradient(135deg, var(--color-accent), #ff9f22); color: #203e31; box-shadow: 0 13px 28px rgba(249,115,22,.28); }
.button--glass { border-color: rgba(255,255,255,.52); background: rgba(255,255,255,.11); color: #fff; backdrop-filter: blur(10px); }
.hero-section__note { display: flex; align-items: center; gap: .8rem; margin-top: 2rem; }
.hero-section__note > span:last-child { display: grid; gap: .15rem; }
.hero-section__note strong { font-size: .78rem; }.hero-section__note small { color: #c7e7de; font-size: .7rem; }
.hero-section__avatars { display: flex; }.hero-section__avatars i { width: 31px; height: 31px; margin-left: -8px; border: 2px solid rgba(255,255,255,.9); border-radius: 50%; background: linear-gradient(145deg,#fed7aa,#b45309); }.hero-section__avatars i:first-child { margin-left: 0; background: linear-gradient(145deg,#bfdbfe,#1d4ed8); }.hero-section__avatars i:last-child { background: linear-gradient(145deg,#fbcfe8,#be185d); }
.hero-scroll { position: absolute; bottom: 1.5rem; left: 50%; display: grid; width: 30px; height: 48px; place-items: start center; border: 1px solid rgba(255,255,255,.5); border-radius: 20px; transform: translateX(-50%); }
.hero-scroll span { width: 4px; height: 9px; margin-top: 8px; border-radius: 3px; background: #fff; animation: scroll-cue 1.8s infinite; } @keyframes scroll-cue { 50% { transform: translateY(17px); opacity: .35; } }

.section-heading { max-width: 650px; }.section-heading--center { margin-inline: auto; text-align: center; }.section-heading h2 { margin-bottom: .65rem; font-size: clamp(2rem, 4vw, 3.1rem); line-height: 1.15; }.section-heading > p:last-child { color: var(--color-muted); line-height: 1.7; }
.section-heading-row { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2.25rem; }
.text-link { display: inline-flex; min-height: 44px; align-items: center; gap: .45rem; flex: 0 0 auto; font-weight: 750; text-decoration: none; }.text-link:hover { color: var(--color-accent-2); }.text-link svg { transition: transform .2s ease; }.text-link:hover svg { transform: translateX(4px); }
.quick-actions { background: #fff; }.quick-actions__grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; margin-top: 2.3rem; }
.quick-action { display: flex; min-width: 0; min-height: 112px; align-items: center; gap: .85rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fff; box-shadow: 0 8px 24px rgba(31,41,55,.05); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }.quick-action:hover { transform: translateY(-5px); box-shadow: var(--shadow-card); }
.quick-action__icon { display: grid; width: 52px; height: 52px; place-items: center; flex: 0 0 auto; border-radius: 16px; }.quick-action__icon svg { width: 26px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.quick-action--emerald .quick-action__icon { background:#dff6ef;color:#00796b}.quick-action--orange .quick-action__icon{background:#ffeadb;color:#e85d04}.quick-action--blue .quick-action__icon{background:#ddf4fb;color:#087f9c}.quick-action--gold .quick-action__icon{background:#fff1c7;color:#b86b00}
.quick-action > span:nth-child(2) { display:grid;gap:.25rem;min-width:0}.quick-action strong{font-size:.9rem}.quick-action small{color:var(--color-muted);font-size:.72rem}.quick-action__arrow{width:18px;margin-left:auto;fill:none;stroke:var(--color-muted);stroke-width:2}
.place-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}.place-card { overflow:hidden;border:1px solid rgba(223,233,228,.8);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-soft);transition:transform .25s ease,box-shadow .25s ease}.place-card:hover{transform:translateY(-7px);box-shadow:var(--shadow-card)}
.place-card__media { position:relative;min-height:230px;overflow:hidden;background:linear-gradient(155deg,#89d7db,#08796f)}.place-card__media::before,.route-card__media::before{position:absolute;inset:25% -8% 0;clip-path:polygon(0 100%,0 65%,16% 26%,28% 66%,44% 18%,58% 69%,75% 10%,88% 58%,100% 35%,100% 100%);background:linear-gradient(150deg,#5d9770,#124f43);content:""}.place-card__media::after{position:absolute;inset:67% 0 0;background:linear-gradient(180deg,#2ab6b0,#07807d);content:""}.place-card__media--heart{background:linear-gradient(155deg,#ffd58e,#f59e5b)}.place-card__media--heart::before{background:linear-gradient(150deg,#659760,#164d3e)}.place-card__media--heart::after{background:linear-gradient(180deg,#85b662,#3a7c4c)}.place-card__media--dam{background:linear-gradient(155deg,#b9e4ee,#5bb4cb)}.place-card__media--dam::after{background:linear-gradient(180deg,#cbd5cf,#7a9c94);clip-path:polygon(0 45%,100% 0,100% 100%,0 100%)}
.place-card__badge,.route-card__type{position:absolute;z-index:2;top:1rem;left:1rem;padding:.45rem .7rem;border-radius:999px;background:rgba(255,255,255,.9);color:var(--color-primary-dark);font-size:.7rem;font-weight:800;box-shadow:0 5px 15px rgba(0,0,0,.1)}
.place-card__content{padding:1.25rem}.place-card__category{display:flex;align-items:center;gap:.35rem;margin-bottom:.5rem;color:var(--color-primary);font-size:.72rem;font-weight:750}.place-card__category svg{width:15px;fill:none;stroke:currentColor;stroke-width:2}.place-card h3,.route-card h3{margin-bottom:.55rem;font-size:1.25rem}.place-card__content>p:not(.place-card__category),.route-card__content>p{min-height:3.4em;margin-bottom:1rem;color:var(--color-muted);font-size:.86rem;line-height:1.7}
.route-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem}.route-card{display:grid;grid-template-columns:42% 1fr;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-soft)}.route-card__media{position:relative;min-height:260px;overflow:hidden;background:linear-gradient(150deg,#9ddde3,#0e8f88)}.route-card__media::after{position:absolute;inset:65% 0 0;background:#138b88;content:""}.route-card__media--route-heart{background:linear-gradient(150deg,#ffd28c,#ef8b4a)}.route-card__media--route-heart::before{background:linear-gradient(150deg,#7aa56b,#285a45)}.route-card__media--route-heart::after{background:#609265}.route-card__content{display:flex;flex-direction:column;padding:1.35rem}.route-card__meta{display:flex;gap:1rem;margin:auto 0 1rem;color:var(--color-muted);font-size:.76rem}.route-card__meta span{display:flex;align-items:center;gap:.3rem}.route-card__meta svg{width:16px;fill:none;stroke:var(--color-primary);stroke-width:2}.button--outline{align-self:flex-start;border-color:var(--color-primary);background:transparent;color:var(--color-primary);font-size:.82rem}
.inspiration{padding-top:2rem;background:linear-gradient(180deg,var(--color-bg),#fff7e6)}.inspiration__panel{padding:clamp(2rem,5vw,4.5rem);border-radius:var(--radius-xl);background:radial-gradient(circle at 10% 15%,rgba(24,183,181,.12),transparent 25%),radial-gradient(circle at 90% 80%,rgba(253,186,45,.18),transparent 25%),#fff;box-shadow:var(--shadow-card)}.inspiration-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.85rem;margin-top:2.2rem}.inspiration-card{display:grid;min-width:0;min-height:170px;align-content:center;justify-items:center;gap:.65rem;padding:1rem;border-radius:var(--radius-md);text-align:center;text-decoration:none;transition:transform .2s ease}.inspiration-card:hover{transform:translateY(-5px)}.inspiration-card__icon{display:grid;width:54px;height:54px;place-items:center;border-radius:50%;background:rgba(255,255,255,.75)}.inspiration-card__icon svg{width:27px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.inspiration-card>span:nth-child(2){display:grid;gap:.25rem}.inspiration-card small{color:var(--color-muted);font-size:.68rem;line-height:1.4}.inspiration-card__arrow{display:none}.inspiration-card--nature{background:#dff6e9;color:#167a54}.inspiration-card--community{background:#e5efff;color:#3768a5}.inspiration-card--food{background:#fff0d4;color:#b15c00}.inspiration-card--cafe{background:#f4e6dc;color:#7b4d35}.inspiration-card--family{background:#ffe5e9;color:#b34158}
.empty-state{grid-column:1/-1;padding:2rem;border:1px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-muted);text-align:center}
.home-section-state{min-width:0}.home-section-state[hidden]{display:none}.home-section-empty,.home-section-error{min-height:9rem;margin-top:1rem;border:1px dashed var(--color-border);border-radius:var(--radius-lg);background:rgba(255,255,255,.72)}.home-section-empty p{margin:0}.home-section-error{align-content:center}.home-card__media::before,.home-card__media::after{display:none}.home-card__image,.home-card__image-fallback{display:block;width:100%;height:100%;min-height:inherit}.home-card__image{object-fit:cover}.home-card__image-fallback{display:grid;place-items:center;padding:1rem;background:linear-gradient(145deg,#dff6ef,#c9eef0);color:var(--color-primary-dark);font-weight:750;text-align:center}.home-route-meta{flex-wrap:wrap;align-items:center}.home-route-styles{display:flex;flex:1 1 100%;flex-wrap:wrap;gap:.4rem;margin:0;padding:0;overflow-wrap:anywhere;list-style:none}.home-route-styles .chip{max-width:100%;font-size:.68rem}
.home-page .place-card__media,.home-page .event-card__media{aspect-ratio:3 / 2;min-height:0}.home-page .route-card__media{aspect-ratio:16 / 9;min-height:0}
.site-footer{padding:4rem 0 1.5rem;background:#063e36;color:#cde4dd}.site-footer__grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:clamp(2rem,5vw,4rem)}.brand--footer{color:#fff}.brand--footer .brand__text small{color:#b8d7ce}.site-footer__brand>p{max-width:390px;margin-top:1.2rem;color:#a9ccc2;line-height:1.8}.site-footer h2{margin-bottom:1rem;color:#fff;font-size:1rem}.site-footer ul{display:grid;gap:.7rem;margin:0;padding:0;list-style:none}.site-footer a{color:#cde4dd;text-decoration:none}.site-footer a:hover{color:var(--color-accent)}.site-footer address{display:grid;gap:.65rem;font-style:normal;font-size:.85rem;line-height:1.6}.editable-note{display:block;margin-top:.8rem;color:#85aea3;font-size:.65rem}.site-footer__bottom{display:flex;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.12);color:#86aaa1;font-size:.72rem}
.drawer-backdrop,.mobile-drawer,.bottom-nav{display:none}
.language-switcher{display:grid;grid-template-columns:repeat(2,minmax(44px,1fr));gap:.2rem;padding:.2rem;border:1px solid var(--color-border);border-radius:13px;background:var(--color-bg)}.language-switcher__btn{display:grid;min-width:44px;min-height:44px;place-items:center;padding:.35rem;border:0;border-radius:9px;background:transparent;color:var(--color-muted);font:inherit;font-size:.72rem;font-weight:800;cursor:pointer}.language-switcher__btn.is-active{background:var(--color-primary);color:#fff}.language-switcher__btn:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}

/* Shared foundation components. Existing Home selectors above remain unchanged. */
.button--primary { min-height: 46px; background: linear-gradient(135deg, var(--color-accent), var(--color-accent-2)); color: #fff; box-shadow: 0 12px 26px rgba(249, 115, 22, .28); }
.button--secondary { min-height: 46px; border-color: var(--color-border); background: var(--color-surface); color: var(--color-primary-dark); box-shadow: var(--shadow-soft); }
.button--ghost { min-height: 46px; border-color: transparent; background: transparent; color: var(--color-primary-dark); }
.button--danger { min-height: 46px; background: var(--color-error); color: #fff; }
.button--icon { width: 46px; min-width: 46px; min-height: 46px; padding: 0; border-radius: 50%; }
.button--link { min-height: 44px; padding-inline: 0; background: transparent; color: var(--color-primary); text-decoration: underline; text-underline-offset: .2em; }
.button--secondary:hover, .button--ghost:hover, .button--link:hover { color: var(--color-primary-dark); }

.badge { display: inline-flex; min-height: 24px; align-items: center; gap: var(--space-1); padding: var(--space-1) var(--space-2); border: 1px solid transparent; border-radius: var(--radius-pill); background: var(--color-primary-light); color: var(--color-primary-dark); font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); line-height: 1; }
.badge--success { border-color: var(--color-success-border); background: var(--color-success-bg); color: var(--color-success); }
.badge--warning { border-color: var(--color-warning-border); background: var(--color-warning-bg); color: var(--color-warning); }
.badge--danger { border-color: var(--color-error-border); background: var(--color-error-bg); color: var(--color-error); }
.badge--info { border-color: var(--color-info-border); background: var(--color-info-bg); color: var(--color-info); }
.badge--muted { border-color: var(--color-border); background: var(--color-bg); color: var(--color-muted); }

.chip { display: inline-flex; min-height: 44px; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-pill); background: var(--color-surface); color: var(--color-text); font-weight: var(--font-weight-medium); cursor: pointer; }
.chip:hover { border-color: var(--color-primary); }
.chip.is-active { border-color: var(--color-primary); background: var(--color-primary-light); color: var(--color-primary-dark); box-shadow: inset 0 0 0 1px var(--color-primary); }
.chip:disabled, .chip[aria-disabled="true"] { cursor: not-allowed; opacity: .65; }

.card { min-width: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); box-shadow: var(--shadow-soft); }
.card__header, .card__body, .card__footer { padding: var(--space-5); }
.card__header { border-bottom: 1px solid var(--color-divider); }
.card__footer { border-top: 1px solid var(--color-divider); }
.card__header > :last-child, .card__body > :last-child, .card__footer > :last-child { margin-bottom: 0; }

.loading-state, .empty-state, .error-state { display: grid; justify-items: center; gap: var(--space-3); padding: var(--space-8); text-align: center; }
.loading-spinner { width: 32px; height: 32px; border: 3px solid var(--color-border); border-top-color: var(--color-primary); border-radius: 50%; animation: loading-spin .8s linear infinite; }
@keyframes loading-spin { to { transform: rotate(360deg); } }
.skeleton { overflow: hidden; border-radius: var(--radius-sm); background: linear-gradient(90deg, var(--color-border) 25%, #eef4f1 50%, var(--color-border) 75%); background-size: 200% 100%; color: transparent; animation: skeleton-shimmer 1.4s ease-in-out infinite; }
.skeleton-card { display: grid; min-height: 220px; gap: var(--space-4); padding: var(--space-5); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); }
@keyframes skeleton-shimmer { to { background-position-x: -200%; } }
.empty-state__icon, .error-state__icon { display: grid; width: 56px; height: 56px; place-items: center; border-radius: 50%; background: var(--color-primary-light); color: var(--color-primary); }
.error-state__icon { background: var(--color-error-bg); color: var(--color-error); }
.empty-state__title, .error-state__title { margin: 0; font-size: var(--font-size-xl); }
.empty-state__description, .error-state__description { max-width: 36rem; margin: 0; color: var(--color-muted); }
.empty-state__action, .error-state__action { margin-top: var(--space-2); }

.alert { display: flex; align-items: flex-start; gap: var(--space-3); padding: var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); color: var(--color-text); }
.alert--success { border-color: var(--color-success-border); background: var(--color-success-bg); color: var(--color-success); }
.alert--warning { border-color: var(--color-warning-border); background: var(--color-warning-bg); color: var(--color-warning); }
.alert--error { border-color: var(--color-error-border); background: var(--color-error-bg); color: var(--color-error); }
.alert--info { border-color: var(--color-info-border); background: var(--color-info-bg); color: var(--color-info); }

.toast-container { position: fixed; z-index: var(--z-toast); right: var(--space-4); bottom: calc(var(--space-4) + env(safe-area-inset-bottom)); display: grid; width: min(calc(100% - (2 * var(--space-4))), 24rem); gap: var(--space-2); pointer-events: none; }
.toast-message { display: flex; min-height: 48px; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); color: var(--color-text); box-shadow: var(--shadow-floating); pointer-events: auto; }
.toast-message--success { border-color: var(--color-success-border); }
.toast-message--error { border-color: var(--color-error-border); }
.toast-message--warning { border-color: var(--color-warning-border); }
.toast-message--info { border-color: var(--color-info-border); }

@media (min-width: 768px) {
  .toast-container { right: var(--space-6); bottom: var(--space-6); }
}

@media (prefers-reduced-motion: reduce) {
  .loading-spinner, .skeleton { animation: none; }
}

/* Public Places list: scoped to protect Home card behavior. */
.places-page{background:linear-gradient(180deg,var(--color-bg),#edf9f6 48%,var(--color-bg))}
.places-page .page-shell{display:grid;gap:var(--space-8);padding-block:clamp(2rem,5vw,4.5rem)}
.places-header{display:grid;max-width:50rem;gap:var(--space-3)}
.places-header h1{margin:0;font-size:clamp(2.25rem,6vw,4.5rem);line-height:var(--line-height-tight)}
.places-header__description{max-width:44rem;margin:0;color:var(--color-muted);font-size:var(--font-size-lg);line-height:var(--line-height-relaxed)}
.places-demo-notice{width:fit-content;margin:var(--space-2) 0 0;padding:var(--space-3) var(--space-4);border:1px solid #f4c96c;border-radius:var(--radius-md);background:#fff7dd;color:#754b00;font-weight:var(--font-weight-medium)}
.places-controls{display:grid;gap:var(--space-6);padding:clamp(1rem,3vw,2rem);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:rgba(255,255,255,.92);box-shadow:var(--shadow-soft)}
.places-search{display:grid;gap:var(--space-2)}.places-search__label,.places-filter legend{color:var(--color-primary-dark);font-weight:var(--font-weight-bold)}
.places-search__control{position:relative}.places-search__input{width:100%;min-height:52px;padding-right:3.5rem;border-color:var(--color-border);background:#fff}.places-search__clear{position:absolute;top:4px;right:4px;display:grid;width:44px;height:44px;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--color-muted);font:inherit;font-size:1.4rem;cursor:pointer}.places-search__clear:hover{background:var(--color-primary-light);color:var(--color-primary-dark)}
.places-filters{display:grid;gap:var(--space-5)}.places-filter{min-width:0;margin:0;padding:0;border:0}.places-filter legend{margin-bottom:var(--space-2)}.places-filter__chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.places-filter__chips .chip.is-active::before{content:"✓";font-weight:900}.places-filter__chips .chip.is-active{font-weight:var(--font-weight-bold)}
.places-results{display:grid;gap:var(--space-5)}.places-results__header{display:flex;align-items:end;justify-content:space-between;gap:var(--space-4)}.places-results__header h2,.places-results__header p{margin:0}.places-results__header p{color:var(--color-muted)}.places-state{min-height:9rem}.places-state[hidden]{display:none}.places-state>div{min-height:9rem;border:1px dashed var(--color-border);border-radius:var(--radius-lg);background:rgba(255,255,255,.72)}
.places-grid:empty{display:none}.place-card--listing{display:grid;grid-template-rows:auto 1fr}.place-card--listing .place-card__image-wrap{position:relative;min-height:0;aspect-ratio:3 / 2;overflow:hidden;background:linear-gradient(145deg,#dff6ef,#c9eef0)}.place-card--listing .place-card__image{width:100%;height:100%;min-height:220px;object-fit:cover}.place-card--listing .place-card__image-fallback{display:grid;min-height:220px;place-items:center;padding:var(--space-5);background:radial-gradient(circle at 75% 25%,rgba(253,186,45,.65),transparent 18%),linear-gradient(145deg,#b7e3d2,#7ac7c4);color:var(--color-primary-dark);font-weight:var(--font-weight-bold);text-align:center}.place-card--listing .place-card__favorite{position:absolute;z-index:2;top:var(--space-3);right:var(--space-3)}
.favorite-btn{display:grid;width:46px;height:46px;place-items:center;border:1px solid rgba(255,255,255,.8);border-radius:50%;background:rgba(255,255,255,.94);color:var(--color-primary-dark);box-shadow:var(--shadow-soft);font:inherit;font-size:1.45rem;cursor:pointer}.favorite-btn.is-active{background:#fff0d4;color:#b34158}.place-card--listing .place-card__content{display:flex;flex-direction:column}.place-card--listing .place-card__badges{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.place-card--listing .place-card__title{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.place-card--listing .place-card__meta{min-height:auto!important;margin:0 0 var(--space-2)!important;color:var(--color-primary)!important;font-weight:var(--font-weight-bold)}.place-card--listing .place-card__description{display:-webkit-box;min-height:3.4em;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.place-card--listing .place-card__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:auto}.place-card--listing .place-card__actions .button{flex:1 1 8.5rem;padding-inline:var(--space-3)}
.places-load-more{display:flex;min-height:48px;justify-content:center}.places-load-more .button{min-width:min(100%,16rem)}
@media (max-width:599px){.places-page .page-shell{gap:var(--space-6)}.places-results__header{align-items:start;flex-direction:column}.places-filter__chips{flex-wrap:nowrap;margin-inline:calc(var(--space-4) * -1);padding-inline:var(--space-4);overflow-x:auto;scrollbar-width:thin}.places-filter__chips .chip{flex:0 0 auto}.place-card--listing .place-card__actions{display:grid;grid-template-columns:1fr}.place-card--listing .place-card__actions .button{width:100%}}

/* Public Place Detail: every selector is page-scoped to protect Home and Places List. */
.place-detail-page{background:linear-gradient(180deg,#e7f7f3 0,var(--color-bg) 34rem)}
.place-detail-page [hidden]{display:none!important}
.place-detail-page .detail-page-shell{display:grid;gap:var(--space-5);width:min(100%,var(--container-max));margin-inline:auto;padding:var(--space-4) var(--container-padding-mobile) var(--space-12)}
.place-detail-page .detail-demo-notice{margin:0;padding:var(--space-3) var(--space-4);border:1px solid var(--color-warning-border);border-radius:var(--radius-md);background:var(--color-warning-bg);color:#704700;font-weight:var(--font-weight-semibold);text-align:center}
.place-detail-page .detail-state{min-height:22rem;align-content:center;border:1px dashed var(--color-border);border-radius:var(--radius-xl);background:rgba(255,255,255,.8)}
.place-detail-page .detail-content{display:grid;gap:var(--space-6)}
.place-detail-page .detail-hero{position:relative;min-height:clamp(32rem,72svh,48rem);overflow:hidden;border-radius:var(--radius-xl);background:var(--color-primary-dark);box-shadow:var(--shadow-floating);isolation:isolate}
.place-detail-page .detail-hero__media,.place-detail-page .detail-hero__image,.place-detail-page .detail-hero__fallback{position:absolute;inset:0;width:100%;height:100%}
.place-detail-page .detail-hero__image{object-fit:cover}.place-detail-page .detail-hero__fallback{display:grid;place-items:center;padding:var(--space-6);background:radial-gradient(circle at 75% 20%,rgba(253,186,45,.75),transparent 18%),linear-gradient(145deg,#72c5bd,#075b51);color:#fff;font-weight:var(--font-weight-bold);text-align:center}
.place-detail-page .detail-hero::after{position:absolute;z-index:1;inset:20% 0 0;background:linear-gradient(180deg,transparent,rgba(3,39,34,.94));content:"";pointer-events:none}
.place-detail-page .detail-actions{position:absolute;z-index:3;top:var(--space-4);right:var(--space-4);left:var(--space-4);display:flex;justify-content:space-between;gap:var(--space-2)}
.place-detail-page .detail-action{display:grid;width:48px;height:48px;place-items:center;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:rgba(5,47,41,.7);color:#fff;box-shadow:var(--shadow-soft);font:inherit;font-size:1.45rem;cursor:pointer;backdrop-filter:blur(10px)}
.place-detail-page .detail-action:nth-child(2){margin-left:auto}.place-detail-page .detail-action:focus-visible,.place-detail-page .detail-gallery__button:focus-visible,.place-detail-page .detail-lightbox__close:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}
.place-detail-page .detail-action.favorite-btn.is-active{background:#fff0d4;color:#b34158}
.place-detail-page .detail-hero__overlay{position:absolute;z-index:2;right:0;bottom:0;left:0;display:grid;gap:var(--space-3);padding:clamp(1.5rem,5vw,4rem);color:#fff}
.place-detail-page .detail-badges{display:flex;flex-wrap:wrap;gap:var(--space-2)}.place-detail-page .detail-badges .badge{border-color:rgba(255,255,255,.45);background:rgba(255,255,255,.92)}
.place-detail-page .detail-title{max-width:17ch;margin:0;color:#fff;font-size:clamp(2.2rem,7vw,5rem);line-height:1.03}.place-detail-page .detail-lead{max-width:48rem;margin:0;color:#e5f5f1;font-size:clamp(1rem,2.2vw,1.25rem);line-height:1.7}.place-detail-page .detail-review-summary{margin:0;color:#ffe6a0;font-weight:var(--font-weight-bold)}
.place-detail-page .detail-cta{display:flex;flex-wrap:wrap;gap:var(--space-2)}.place-detail-page .detail-cta .button{flex:1 1 10rem}
.place-detail-page .detail-layout{display:grid;gap:var(--space-5)}.place-detail-page .detail-main,.place-detail-page .detail-sidebar{display:grid;align-content:start;gap:var(--space-5)}
.place-detail-page .detail-section{min-width:0;padding:clamp(1.25rem,4vw,2rem);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-soft)}
.place-detail-page .detail-section__title{margin:0 0 var(--space-4);font-size:clamp(1.35rem,3vw,1.8rem)}.place-detail-page .detail-copy,.place-detail-page .detail-highlight{margin:0;white-space:pre-line;line-height:1.85}.place-detail-page .detail-highlight{padding:var(--space-4);border-left:4px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-warning-bg)}.place-detail-page .detail-muted{margin:0;color:var(--color-muted)}
.place-detail-page .detail-activity-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:var(--space-3);margin:0;padding:0;list-style:none}.place-detail-page .detail-activity-list__item{padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-primary-light);font-weight:var(--font-weight-semibold)}
.place-detail-page .detail-visitor-grid{display:grid;grid-template-columns:minmax(7rem,auto) 1fr;gap:var(--space-3) var(--space-4);margin:0}.place-detail-page .detail-visitor-grid__label{color:var(--color-muted);font-weight:var(--font-weight-semibold)}.place-detail-page .detail-visitor-grid__value{margin:0}
.place-detail-page .detail-map-actions{display:grid;gap:var(--space-2)}
.place-detail-page .detail-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.place-detail-page .detail-gallery__button{min-width:0;padding:0;overflow:hidden;border:0;border-radius:var(--radius-md);background:var(--color-primary-light);cursor:zoom-in}.place-detail-page .detail-gallery__media{display:block;aspect-ratio:3 / 2}.place-detail-page .detail-gallery__image,.place-detail-page .detail-gallery__fallback{width:100%;height:100%;object-fit:cover}.place-detail-page .detail-gallery__fallback{display:grid;place-items:center;padding:var(--space-3);color:var(--color-muted)}
.place-detail-page .detail-nearby-grid{display:grid;gap:var(--space-4)}.place-detail-page .detail-nearby-card{display:grid;grid-template-columns:minmax(7rem,35%) 1fr;transform:none}.place-detail-page .detail-nearby-card:hover{transform:none}.place-detail-page .detail-nearby-card__media{min-height:12rem;background:var(--color-primary-light)}.place-detail-page .detail-nearby-card__image{width:100%;height:100%;object-fit:cover}.place-detail-page .detail-nearby-card__content{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-4)}.place-detail-page .detail-nearby-card__title,.place-detail-page .detail-nearby-card__copy{margin:0}.place-detail-page .detail-nearby-card__copy{display:-webkit-box;overflow:hidden;color:var(--color-muted);-webkit-box-orient:vertical;-webkit-line-clamp:2}.place-detail-page .detail-nearby-card .button{margin-top:auto}
.place-detail-page .detail-review-summary-inline{margin:0 0 var(--space-4);color:var(--color-primary-dark);font-weight:var(--font-weight-bold)}.place-detail-page .detail-review-list{display:grid;min-width:0;gap:var(--space-3)}.place-detail-page .detail-review-card{min-width:0;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}.place-detail-page .review-card__header{display:flex;min-width:0;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.place-detail-page .review-card__name,.place-detail-page .review-card__comment,.place-detail-page .review-card__date,.place-detail-page .review-card__reply-title,.place-detail-page .review-card__reply-text{min-width:0;margin:0;overflow-wrap:anywhere}.place-detail-page .review-card__rating{display:inline-flex;flex:0 0 auto;align-items:center;gap:var(--space-2);color:#8a5100;font-weight:var(--font-weight-bold)}.place-detail-page .review-card__stars{letter-spacing:.08em}.place-detail-page .review-card__rating-text{color:var(--color-text)}.place-detail-page .review-card__comment{margin-top:var(--space-3);line-height:1.7;white-space:pre-wrap}.place-detail-page .review-card__reply{display:grid;gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-3);border-left:4px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-primary-light)}.place-detail-page .review-card__reply-title{font-size:var(--font-size-sm)}.place-detail-page .review-card__reply-text{line-height:1.65}.place-detail-page .review-card__date{margin-top:var(--space-2);color:var(--color-muted);font-size:var(--font-size-sm)}.place-detail-page .review-pagination{display:grid;min-width:0;grid-template-columns:minmax(0,auto) minmax(0,1fr) minmax(0,auto);align-items:center;gap:var(--space-3);margin-top:var(--space-5)}.place-detail-page .review-pagination__button{min-width:0;min-height:44px}.place-detail-page .review-pagination__indicator{min-width:0;text-align:center;overflow-wrap:anywhere}.place-detail-page [data-review-retry]{min-height:44px}.place-detail-page [data-detail-reviews] :focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}
.place-detail-page .detail-lightbox{position:fixed;z-index:var(--z-modal);inset:0;display:grid;place-items:center;padding:var(--space-4)}.place-detail-page .detail-lightbox[hidden]{display:none}.place-detail-page .detail-lightbox__backdrop{position:absolute;inset:0;border:0;background:rgba(2,28,25,.88);cursor:zoom-out}.place-detail-page .detail-lightbox__panel{position:relative;z-index:1;width:min(100%,70rem);max-height:calc(100svh - 2rem);padding:var(--space-4);border-radius:var(--radius-lg);background:#071f1c;box-shadow:var(--shadow-floating)}.place-detail-page .detail-lightbox__close{position:absolute;z-index:2;top:var(--space-2);right:var(--space-2);display:grid;width:48px;height:48px;place-items:center;border:1px solid rgba(255,255,255,.6);border-radius:50%;background:rgba(0,0,0,.7);color:#fff;font-size:1.75rem;cursor:pointer}.place-detail-page .detail-lightbox__image{display:block;width:100%;max-height:calc(100svh - 4rem);object-fit:contain}.place-detail-page.has-modal,.place-detail-page .has-modal{overflow:hidden}
@media (min-width:768px){.place-detail-page .detail-page-shell{padding-inline:var(--container-padding-desktop)}.place-detail-page .detail-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.place-detail-page .detail-nearby-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.place-detail-page .detail-nearby-card{grid-template-columns:1fr}.place-detail-page .detail-nearby-card__media{height:14rem}}
@media (min-width:1024px){.place-detail-page .detail-page-shell{padding-inline:var(--container-padding-desktop)}.place-detail-page .detail-layout{grid-template-columns:minmax(0,1.65fr) minmax(18rem,.85fr);align-items:start}.place-detail-page .detail-sidebar{position:sticky;top:calc(var(--header-height) + var(--space-4))}}
@media (max-width:479px){.place-detail-page .detail-hero{min-height:38rem;border-radius:var(--radius-lg)}.place-detail-page .detail-hero__overlay{padding:var(--space-5)}.place-detail-page .detail-cta{display:grid;grid-template-columns:1fr}.place-detail-page .detail-cta .button{width:100%}.place-detail-page .detail-gallery-grid{grid-template-columns:1fr}.place-detail-page .detail-nearby-card{grid-template-columns:1fr}.place-detail-page .detail-nearby-card__media{height:13rem}.place-detail-page .review-card__header{flex-direction:column}}
@media (prefers-reduced-motion:reduce){.place-detail-page .detail-action,.place-detail-page .detail-gallery__button,.place-detail-page .detail-lightbox{scroll-behavior:auto;transition:none!important;animation:none!important}}

/* Public Routes: all selectors stay scoped to the two route page roots. */
.routes-page,.route-detail-page{background:linear-gradient(180deg,#e4f7f3 0,var(--color-bg) 36rem)}
.routes-page [hidden],.route-detail-page [hidden]{display:none!important}
.routes-page .routes-page__main,.route-detail-page .route-detail-page__main{width:min(100%,var(--container-max));margin-inline:auto;padding:var(--space-4) var(--container-padding-mobile) var(--space-12)}
.routes-page .routes-page__hero{position:relative;display:grid;min-height:24rem;align-items:end;overflow:hidden;padding:clamp(1.5rem,6vw,4.5rem);border-radius:var(--radius-xl);background:radial-gradient(circle at 82% 20%,rgba(253,186,45,.95) 0 7%,transparent 7.5%),linear-gradient(135deg,#053d34,#00796b 54%,#18b7b5);color:#fff;box-shadow:var(--shadow-floating);isolation:isolate}
.routes-page .routes-page__hero::after{position:absolute;right:-9%;bottom:-35%;width:min(72vw,38rem);aspect-ratio:1;border:clamp(2rem,8vw,6rem) solid rgba(255,255,255,.12);border-radius:50%;content:""}
.routes-page .routes-page__hero-copy{position:relative;z-index:1;max-width:46rem}.routes-page .routes-page__hero .eyebrow{color:#ffe09a}.routes-page .routes-page__hero h1{max-width:12ch;margin:.35rem 0 1rem;color:#fff;font-size:clamp(2.45rem,9vw,5.5rem);line-height:.98}.routes-page .routes-page__hero p:last-child{max-width:42rem;margin:0;color:#e6fffa;font-size:clamp(1rem,2vw,1.18rem);line-height:1.75}
.routes-page .routes-page__hero-mark{position:absolute;z-index:1;top:var(--space-5);right:var(--space-5);display:flex;gap:var(--space-2)}.routes-page .routes-page__hero-mark span{display:grid;width:2.75rem;height:2.75rem;place-items:center;border:1px solid rgba(255,255,255,.45);border-radius:50%;background:rgba(6,78,59,.35);color:#fff;font-size:.78rem;font-weight:800;backdrop-filter:blur(8px)}
.routes-page .routes-page__demo-notice,.route-detail-page .route-detail-page__demo-notice{margin:var(--space-4) 0 0;padding:var(--space-3) var(--space-4);border:1px solid var(--color-warning-border);border-radius:var(--radius-md);background:var(--color-warning-bg);color:#704700;font-weight:var(--font-weight-semibold);text-align:center}
.routes-page .routes-page__state,.route-detail-page .route-detail-page__state{min-height:22rem;margin-top:var(--space-5);align-content:center;border:1px dashed var(--color-border);border-radius:var(--radius-xl);background:rgba(255,255,255,.86)}
.routes-page .routes-page__featured,.routes-page .routes-page__all{padding-top:clamp(2.5rem,7vw,5rem)}.routes-page .routes-page__section-heading,.route-detail-page .route-detail-page__section-heading{margin-bottom:var(--space-5)}.routes-page .routes-page__section-heading h2,.route-detail-page .route-detail-page__section-heading h2{margin:.25rem 0;font-size:clamp(1.7rem,4vw,2.6rem)}
.routes-page .routes-page__grid{display:grid;gap:var(--space-5)}
.routes-page .route-explorer-card{display:grid;min-width:0;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-soft)}
.routes-page .route-explorer-card--featured{border:0;background:linear-gradient(145deg,#fff,#fff8e8);box-shadow:var(--shadow-card)}
.routes-page .route-explorer-card__media{position:relative;display:block;min-height:0;aspect-ratio:16 / 9;overflow:hidden;background:radial-gradient(circle at 76% 22%,#ffd464 0 10%,transparent 10.5%),linear-gradient(155deg,#87d5cf,#087269);color:#fff}
.routes-page .route-explorer-card__media::before{position:absolute;inset:34% -8% 0;clip-path:polygon(0 100%,0 62%,16% 22%,30% 67%,46% 10%,61% 71%,78% 20%,91% 58%,100% 35%,100% 100%);background:linear-gradient(155deg,#558d68,#0b4d41);content:""}.routes-page .route-explorer-card__media::after{position:absolute;inset:72% 0 0;background:linear-gradient(180deg,#29aaa4,#08726f);content:""}
.routes-page .route-explorer-card__image{position:relative;z-index:1;width:100%;height:100%;min-height:14rem;object-fit:cover}.routes-page .route-explorer-card__image-fallback{position:relative;z-index:1;display:grid;min-height:14rem;place-items:end start;padding:var(--space-5);color:#fff;font-weight:700}.routes-page .route-explorer-card__featured-label{position:absolute;z-index:2;top:var(--space-4);left:var(--space-4);padding:.55rem .8rem;border-radius:var(--radius-pill);background:#fff3ca;color:#6b4500;font-size:.78rem;font-weight:800;box-shadow:var(--shadow-soft)}
.routes-page .route-explorer-card__body{display:flex;min-width:0;flex-direction:column;align-items:flex-start;padding:clamp(1.25rem,4vw,2rem)}.routes-page .route-explorer-card__title{margin:0;font-size:clamp(1.3rem,3vw,2rem);line-height:1.25}.routes-page .route-explorer-card__title a{color:var(--color-primary-dark);text-decoration:none}.routes-page .route-explorer-card__duration{display:flex;gap:var(--space-2);margin:var(--space-3) 0 0;color:var(--color-muted)}.routes-page .route-explorer-card__duration strong{color:var(--color-text)}
.routes-page .route-explorer-card__styles,.route-detail-page .route-detail-page__styles{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-4) 0 0;padding:0;list-style:none}.routes-page .route-explorer-card__styles .chip,.route-detail-page .route-detail-page__styles .chip{min-height:auto;padding:.42rem .7rem;border-color:rgba(0,121,107,.2);background:#e7f7f3;color:var(--color-primary-dark);font-size:.74rem}
.routes-page .route-explorer-card__description{margin:var(--space-4) 0 0;color:var(--color-muted);line-height:1.75}.routes-page .route-explorer-card__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:auto;padding-top:var(--space-5)}.routes-page .route-explorer-card__actions .button{flex:1 1 9rem}
.routes-page .routes-page__planner-cta{display:grid;gap:var(--space-5);margin-top:clamp(3rem,8vw,6rem);padding:clamp(1.5rem,5vw,3.5rem);border-radius:var(--radius-xl);background:linear-gradient(135deg,#063e35,#00796b);color:#fff;box-shadow:var(--shadow-card)}.routes-page .routes-page__planner-cta h2{margin:.2rem 0 .6rem;color:#fff;font-size:clamp(1.65rem,4vw,2.7rem)}.routes-page .routes-page__planner-cta p:last-child{max-width:42rem;margin:0;color:#d8f8f2;line-height:1.7}.routes-page .routes-page__planner-cta .button{align-self:center}
.routes-page .route-explorer-card__media:focus-visible,.routes-page .route-explorer-card__title a:focus-visible,.routes-page .route-explorer-card__actions a:focus-visible,.route-detail-page a:focus-visible,.route-detail-page button:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}

.route-detail-page .route-detail-page__main{display:grid;gap:var(--space-5)}
.route-detail-page .route-detail-page__hero{position:relative;min-height:clamp(32rem,72svh,47rem);overflow:hidden;border-radius:var(--radius-xl);background:var(--color-primary-dark);box-shadow:var(--shadow-floating)}
.route-detail-page .route-detail-page__hero-media,.route-detail-page .route-detail-page__image,.route-detail-page .route-detail-page__image-fallback{position:absolute;inset:0;width:100%;height:100%}.route-detail-page .route-detail-page__image{object-fit:cover}.route-detail-page .route-detail-page__image-fallback{display:grid;place-items:center;padding:var(--space-6);background:radial-gradient(circle at 78% 18%,rgba(253,186,45,.9) 0 7%,transparent 7.5%),linear-gradient(145deg,#65c1b9,#07574e);color:#fff;font-weight:800;text-align:center}
.route-detail-page .route-detail-page__hero::after{position:absolute;z-index:1;inset:20% 0 0;background:linear-gradient(180deg,transparent,rgba(3,38,33,.96));content:""}.route-detail-page .route-detail-page__hero-overlay{position:absolute;z-index:2;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(1.25rem,5vw,4rem);color:#fff}.route-detail-page .route-detail-page__back{align-self:flex-start;padding:.65rem .9rem;border:1px solid rgba(255,255,255,.5);border-radius:var(--radius-pill);background:rgba(6,78,59,.5);color:#fff;text-decoration:none;backdrop-filter:blur(10px)}.route-detail-page .route-detail-page__title{max-width:15ch;margin:0;color:#fff;font-size:clamp(2.2rem,8vw,5rem);line-height:1.02}.route-detail-page .route-detail-page__meta{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-4)}.route-detail-page .route-detail-page__meta p{display:grid;gap:.15rem;margin:0}.route-detail-page .route-detail-page__meta span{color:#c9eee8;font-size:.76rem}.route-detail-page .route-detail-page__meta strong{color:#fff}
.route-detail-page .route-detail-page__layout{display:grid;gap:var(--space-5)}.route-detail-page .route-detail-page__content{display:grid;gap:var(--space-5)}.route-detail-page .route-detail-page__overview,.route-detail-page .route-detail-page__timeline-section,.route-detail-page .route-detail-page__actions{padding:clamp(1.25rem,4vw,2.25rem);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-soft)}.route-detail-page .route-detail-page__overview h2{margin:0 0 var(--space-4)}.route-detail-page .route-detail-page__overview p{margin:0;white-space:pre-line;line-height:1.85}.route-detail-page .route-detail-page__actions{display:grid;align-content:start;gap:var(--space-3)}
.route-detail-page .route-detail-page__timeline{display:grid}.route-detail-page .route-stop{display:grid;grid-template-columns:3.5rem minmax(0,1fr);gap:var(--space-3)}.route-detail-page .route-stop__rail{display:grid;grid-template-rows:3.25rem 1fr;justify-items:center}.route-detail-page .route-stop__number{display:grid;width:3.25rem;height:3.25rem;place-items:center;border:5px solid #d9f4ef;border-radius:50%;background:var(--color-primary);color:#fff;font-size:1.1rem;font-weight:800;box-shadow:0 8px 20px rgba(0,121,107,.25)}.route-detail-page .route-stop__line{width:3px;min-height:var(--space-5);background:linear-gradient(var(--color-primary),#bfe9e2)}.route-detail-page .route-stop:last-child .route-stop__line{background:linear-gradient(var(--color-primary),transparent)}
.route-detail-page .route-stop__card{display:grid;min-width:0;margin-bottom:var(--space-5);overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:linear-gradient(145deg,#fff,#f8fcfb)}.route-detail-page .route-stop__media{min-height:12rem;background:linear-gradient(145deg,#b9e8e2,#0b776d)}.route-detail-page .route-stop__media img,.route-detail-page .route-stop__image-fallback{width:100%;height:100%;min-height:12rem;object-fit:cover}.route-detail-page .route-stop__image-fallback{display:grid;place-items:center;padding:var(--space-4);color:#fff;font-weight:700;text-align:center}.route-detail-page .route-stop__body{display:flex;min-width:0;flex-direction:column;padding:var(--space-5)}.route-detail-page .route-stop__eyebrow{margin:0 0 var(--space-2);color:var(--color-primary);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.route-detail-page .route-stop__title{margin:0;font-size:clamp(1.2rem,3vw,1.7rem)}.route-detail-page .route-stop__description{margin:var(--space-3) 0 0;color:var(--color-muted);line-height:1.7}.route-detail-page .route-stop__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:auto;padding-top:var(--space-5)}.route-detail-page .route-detail-page__no-stops{margin:0;padding:var(--space-6);border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-muted);text-align:center}
@media (min-width:768px){.routes-page .routes-page__main,.route-detail-page .route-detail-page__main{padding-inline:var(--container-padding-desktop)}.routes-page .routes-page__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.routes-page .route-explorer-card--featured{grid-template-columns:minmax(18rem,1.05fr) minmax(0,1fr)}.routes-page .routes-page__planner-cta{grid-template-columns:1fr auto;align-items:center}.route-detail-page .route-stop__card{grid-template-columns:minmax(13rem,34%) minmax(0,1fr)}}
@media (min-width:1024px){.route-detail-page .route-detail-page__layout{grid-template-columns:minmax(0,1.65fr) minmax(17rem,.62fr);align-items:start}.route-detail-page .route-detail-page__actions{position:sticky;top:calc(var(--header-height) + var(--space-4))}.routes-page .routes-page__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:479px){.routes-page .routes-page__hero{min-height:28rem;border-radius:var(--radius-lg)}.routes-page .routes-page__hero-mark span:nth-child(n+3){display:none}.routes-page .route-explorer-card__actions,.route-detail-page .route-stop__actions{display:grid;grid-template-columns:1fr}.routes-page .route-explorer-card__actions .button,.route-detail-page .route-stop__actions .button{width:100%}.route-detail-page .route-detail-page__hero{min-height:38rem;border-radius:var(--radius-lg)}.route-detail-page .route-stop{grid-template-columns:2.75rem minmax(0,1fr);gap:var(--space-2)}.route-detail-page .route-stop__number{width:2.6rem;height:2.6rem;border-width:4px}.route-detail-page .route-stop__rail{grid-template-rows:2.6rem 1fr}.route-detail-page .route-stop__card{grid-template-columns:1fr}.route-detail-page .route-stop__body{padding:var(--space-4)}}
@media (prefers-reduced-motion:reduce){.routes-page .route-explorer-card,.route-detail-page .route-stop__number{transition:none!important;animation:none!important}}
/* Trip Planner */
.trip-planner { width: min(1180px, calc(100% - 32px)); margin: 0 auto; padding: 42px 0 96px; }
.trip-planner__hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 34px; color: white; border-radius: var(--radius-lg); background: linear-gradient(135deg, var(--color-primary-dark), var(--color-primary), var(--color-water)); box-shadow: var(--shadow-card); }
.trip-planner__hero h1 { margin: 4px 0 10px; color: white; font-size: clamp(2rem, 5vw, 3.6rem); }
.trip-planner__hero p { max-width: 650px; margin-bottom: 0; }
.trip-planner__badge { flex: 0 0 auto; padding: 10px 16px; color: var(--color-primary-dark); border-radius: var(--radius-pill); background: var(--color-accent); font-weight: 800; }
.trip-planner__status { min-height: 28px; margin: 16px 4px; color: var(--color-primary-dark); font-weight: 700; }
.trip-planner__status[data-type="error"] { color: #b42318; }
.trip-planner__layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(310px, .75fr); gap: 24px; align-items: start; }
.trip-planner__steps { display: grid; gap: 18px; }
.planner-panel, .planner-plan { border: 1px solid rgba(0, 121, 107, .13); border-radius: 22px; background: white; box-shadow: 0 12px 34px rgba(15, 23, 42, .08); }
.planner-panel { display: grid; grid-template-columns: 42px 1fr; gap: 16px; padding: 24px; }
.planner-panel__step { display: grid; place-items: center; width: 42px; height: 42px; color: white; border-radius: 14px; background: var(--color-primary); font-size: 1.1rem; font-weight: 900; }
.planner-panel h2, .planner-plan h2 { margin: 0 0 4px; }
.planner-panel p { margin: 0 0 16px; color: var(--color-muted); }
.planner-panel fieldset { min-width: 0; padding: 0; border: 0; }
.planner-options, .planner-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.planner-choice { position: relative; cursor: pointer; }
.planner-choice input { position: absolute; opacity: 0; pointer-events: none; }
.planner-choice span, .planner-chip { display: grid; place-items: center; min-height: 46px; padding: 10px 16px; border: 1px solid #cbd5e1; border-radius: var(--radius-pill); background: #fff; color: var(--color-text); font-weight: 750; }
.planner-choice input:focus-visible + span, .planner-chip:focus-visible { outline: 3px solid rgba(24, 183, 181, .35); outline-offset: 2px; }
.planner-choice.is-selected span, .planner-chip.is-selected { color: white; border-color: var(--color-primary); background: var(--color-primary); }
.planner-template-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.planner-template { display: flex; flex-direction: column; align-items: flex-start; padding: 18px; border-radius: 16px; background: var(--color-sand); }
.planner-template h3 { margin: 0 0 6px; }
.planner-template p { flex: 1; }
.planner-plan { position: sticky; top: 94px; overflow: hidden; }
.planner-plan__heading { display: flex; justify-content: space-between; gap: 12px; padding: 22px; border-bottom: 1px solid #e5e7eb; }
.planner-stop-list { display: grid; gap: 1px; background: #e5e7eb; }
.planner-stop { display: grid; grid-template-columns: 34px 1fr; gap: 12px; padding: 18px 22px; background: white; }
.planner-stop__number { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #dff7f3; color: var(--color-primary-dark); font-weight: 900; }
.planner-stop__content h3 { margin: 2px 0 4px; font-size: 1rem; }
.planner-stop__content p { margin: 0; color: var(--color-muted); font-size: .9rem; }
.planner-stop__actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.planner-stop__actions .button { min-height: 40px; padding: 7px 10px; font-size: .82rem; }
.planner-message { margin: 0; padding: 18px; border-radius: 14px; background: #f1f5f4; color: var(--color-muted); }
.planner-message--error { color: #b42318; background: #fef3f2; }
.planner-plan__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 18px 22px; background: #f8faf8; }
@media (max-width: 900px) { .trip-planner__layout { grid-template-columns: 1fr; } .planner-plan { position: static; } }
@media (max-width: 620px) { .trip-planner { width: min(100% - 20px, 1180px); padding-top: 18px; } .trip-planner__hero { align-items: flex-start; flex-direction: column; padding: 24px 20px; } .planner-panel { grid-template-columns: 34px 1fr; gap: 10px; padding: 18px 14px; } .planner-panel__step { width: 34px; height: 34px; } .planner-template-grid { grid-template-columns: 1fr; } .planner-plan__heading { align-items: flex-start; } .planner-plan__actions { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .trip-planner * { scroll-behavior: auto; transition-duration: .01ms; } }

/* Community products */
.products-page [hidden] { display: none !important; }
.product-detail-page [hidden] { display: none !important; }
.products-page .products-page__main,
.product-detail-page .product-detail-page__main { width: min(1180px, calc(100% - 2rem)); margin-inline: auto; padding-block: clamp(1.25rem, 5vw, 4rem) 7rem; }
.products-page .products-page__hero { position: relative; display: grid; min-height: 28rem; align-items: end; overflow: hidden; padding: clamp(1.5rem, 6vw, 4.5rem); border-radius: var(--radius-xl); background: linear-gradient(135deg, #053e36 0%, #00796b 56%, #18b7b5 100%); box-shadow: var(--shadow-floating); color: #fff; isolation: isolate; }
.products-page .products-page__hero::before { position: absolute; z-index: -1; inset: auto -10% -45% 36%; height: 130%; border-radius: 50%; background: radial-gradient(circle, rgba(253,186,45,.72), rgba(249,115,22,.08) 50%, transparent 70%); content: ""; }
.products-page .products-page__hero-copy { max-width: 45rem; }
.products-page .products-page__hero .eyebrow { color: #fff1bd; }
.products-page .products-page__hero h1 { max-width: 12ch; margin: .3rem 0 1rem; color: #fff; font-size: clamp(2.5rem, 7vw, 5.25rem); line-height: .98; }
.products-page .products-page__hero p:last-child { max-width: 42rem; margin: 0; color: #d9f8f3; font-size: clamp(1rem, 2vw, 1.2rem); line-height: 1.75; }
.products-page .products-page__hero-art { position: absolute; z-index: -1; top: 12%; right: 7%; display: grid; width: min(31vw, 20rem); aspect-ratio: 1; place-items: center; }
.products-page .products-page__hero-art span { position: absolute; border: 2px solid rgba(255,255,255,.4); border-radius: 44% 56% 62% 38%; }
.products-page .products-page__hero-art span:nth-child(1) { inset: 0; transform: rotate(18deg); }
.products-page .products-page__hero-art span:nth-child(2) { inset: 18%; border-color: rgba(253,186,45,.8); transform: rotate(-12deg); }
.products-page .products-page__hero-art span:nth-child(3) { inset: 37%; background: var(--color-accent); border: 0; box-shadow: 0 0 0 14px rgba(253,186,45,.14); }
.products-page .products-page__demo-notice,
.products-page .products-page__invalid-filter,
.product-detail-page .product-detail-page__demo-notice { margin: 1rem 0 0; padding: .8rem 1rem; border: 1px solid #f1c66a; border-radius: var(--radius-md); background: #fff8e7; color: #704800; font-weight: 700; }
.products-page .products-page__filters { margin-top: clamp(1.25rem, 4vw, 2.5rem); padding: clamp(1.25rem, 4vw, 2.25rem); border: 1px solid rgba(0,121,107,.14); border-radius: var(--radius-lg); background: rgba(255,255,255,.94); box-shadow: var(--shadow-soft); }
.products-page .products-page__filters-heading,
.products-page .products-page__section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.products-page .products-page__filters-heading h2,
.products-page .products-page__section-heading h2 { margin: .2rem 0 0; }
.products-page .products-filter-form { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)) auto; gap: .8rem; align-items: end; margin-top: 1.25rem; }
.products-page .products-filter-field { display: grid; min-width: 0; gap: .45rem; color: var(--color-primary-dark); font-size: .82rem; font-weight: 800; }
.products-page .products-filter-field select,
.products-page .products-filter-field input { width: 100%; min-height: 48px; padding: .7rem .8rem; border: 1px solid #bfd7d2; border-radius: 14px; background: #fff; color: var(--color-text); font: inherit; }
.products-page .products-filter-field select:focus-visible,
.products-page .products-filter-field input:focus-visible { outline: 3px solid rgba(24,183,181,.28); outline-offset: 2px; border-color: var(--color-primary); }
.products-page .products-page__state,
.product-detail-page .product-detail-page__state { margin-top: 2rem; }
.products-page .products-page__featured,
.products-page .products-page__all { margin-top: clamp(2.5rem, 7vw, 5rem); }
.products-page .products-page__section-heading > p { margin: 0; color: var(--color-muted); }
.products-page .products-page__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(1rem, 2.5vw, 1.5rem); margin-top: 1.25rem; }
.products-page .products-page__grid--featured { grid-template-columns: repeat(2,minmax(0,1fr)); }
.products-page .product-card { display: flex; min-width: 0; overflow: hidden; flex-direction: column; border: 1px solid rgba(0,121,107,.14); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-soft); transition: transform .2s ease, box-shadow .2s ease; }
.products-page .product-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-card); }
.products-page .product-card__media { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; background: linear-gradient(145deg,#ffe7a9,#e97932); }
.products-page .product-card__image,
.products-page .product-card__image-fallback { width: 100%; height: 100%; object-fit: cover; }
.products-page .product-card__image-fallback { display: grid; place-items: center; padding: 1.5rem; color: #fff; font-weight: 800; text-align: center; }
.products-page .product-card__featured { position: absolute; top: .8rem; left: .8rem; padding: .45rem .7rem; border-radius: var(--radius-pill); background: var(--color-accent); color: #563400; font-size: .72rem; font-weight: 900; box-shadow: var(--shadow-soft); }
.products-page .product-card__content { display: flex; min-width: 0; flex: 1; flex-direction: column; padding: 1.25rem; }
.products-page .product-card__meta { display: flex; min-width: 0; flex-wrap: wrap; gap: .45rem; }
.products-page .product-card__badge,
.products-page .product-card__district,
.product-detail-page .product-detail-page__badge { padding: .35rem .6rem; border-radius: var(--radius-pill); background: #e1f6f1; color: var(--color-primary-dark); font-size: .7rem; font-weight: 800; }
.products-page .product-card__district { background: var(--color-sand); color: #76500c; }
.products-page .product-card__title { margin: .85rem 0 .35rem; overflow-wrap: anywhere; font-size: clamp(1.2rem,2vw,1.55rem); line-height: 1.25; }
.products-page .product-card__title a { color: inherit; text-decoration: none; }
.products-page .product-card__producer { margin: 0; color: var(--color-primary); font-size: .86rem; font-weight: 750; }
.products-page .product-card__description { display: -webkit-box; overflow: hidden; margin: .8rem 0 0; color: var(--color-muted); line-height: 1.65; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.products-page .product-card__price { margin: auto 0 0; padding-top: 1rem; color: var(--color-primary-dark); font-size: 1.12rem; font-weight: 900; }
.products-page .product-card__price--contact { color: #9a5d00; }
.products-page .product-card__actions { display: flex; flex-wrap: wrap; gap: .55rem; padding-top: 1rem; }
.products-page .product-card__actions .button { flex: 1 1 auto; min-height: 44px; padding-inline: .9rem; }
.products-page .product-card__media:focus-visible,
.products-page .product-card__title a:focus-visible,
.products-page .product-card__actions a:focus-visible,
.product-detail-page a:focus-visible,
.product-detail-page button:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 3px; }

.product-detail-page .product-detail-page__back { display: inline-flex; margin-bottom: 1rem; color: var(--color-primary-dark); font-weight: 800; text-decoration: none; }
.product-detail-page .product-detail-page__hero { display: grid; min-height: 34rem; overflow: hidden; grid-template-columns: minmax(0,1.15fr) minmax(20rem,.85fr); border-radius: var(--radius-xl); background: #fff; box-shadow: var(--shadow-floating); }
.product-detail-page .product-detail-page__media { min-height: 28rem; background: linear-gradient(145deg,#ffe7a9,#e97932); }
.product-detail-page .product-detail-page__image,
.product-detail-page .product-detail-page__image-fallback { width: 100%; height: 100%; object-fit: cover; }
.product-detail-page .product-detail-page__image-fallback { display: grid; min-height: 28rem; place-items: center; padding: 2rem; color: #fff; font-size: 1.2rem; font-weight: 850; text-align: center; }
.product-detail-page .product-detail-page__summary { display: flex; min-width: 0; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(1.5rem,5vw,4rem); background: linear-gradient(155deg,#fff,#fffaf0); }
.product-detail-page .product-detail-page__title { max-width: 12ch; margin: 1rem 0 .8rem; overflow-wrap: anywhere; font-size: clamp(2.2rem,5vw,4.25rem); line-height: 1.04; }
.product-detail-page .product-detail-page__producer { margin: 0; color: var(--color-primary); font-weight: 800; }
.product-detail-page .product-detail-page__price { margin: 1.4rem 0 0; color: var(--color-primary-dark); font-size: clamp(1.35rem,3vw,2rem); font-weight: 900; }
.product-detail-page .product-detail-page__price--contact { color: #9a5d00; }
.product-detail-page .product-detail-page__layout { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(18rem,.65fr); gap: 1.5rem; align-items: start; margin-top: 1.5rem; }
.product-detail-page .product-detail-page__content { display: grid; gap: 1.5rem; }
.product-detail-page .product-detail-page__section,
.product-detail-page .product-detail-page__contact { padding: clamp(1.25rem,4vw,2.25rem); border: 1px solid rgba(0,121,107,.13); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-soft); }
.product-detail-page .product-detail-page__section h2,
.product-detail-page .product-detail-page__contact h2 { margin: 0 0 .8rem; }
.product-detail-page .product-detail-page__section p { margin: 0 0 1rem; white-space: pre-line; line-height: 1.85; }
.product-detail-page .product-detail-page__contact { position: sticky; top: calc(var(--header-height) + 1rem); background: linear-gradient(160deg,#063f37,#00796b); color: #fff; }
.product-detail-page .product-detail-page__contact .eyebrow { color: #ffe59b; }
.product-detail-page .product-detail-page__contact h2 { color: #fff; }
.product-detail-page .product-detail-page__contact-actions { display: grid; gap: .7rem; }
.product-detail-page .product-detail-page__contact-actions .button { width: 100%; border-color: rgba(255,255,255,.35); }
.product-detail-page .product-detail-page__no-contact { margin: 0; color: #d7f4ef; line-height: 1.65; }

@media (max-width: 900px) {
  .products-page .products-filter-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .products-page .products-page__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .product-detail-page .product-detail-page__hero { grid-template-columns: 1fr; }
  .product-detail-page .product-detail-page__layout { grid-template-columns: 1fr; }
  .product-detail-page .product-detail-page__contact { position: static; }
}
@media (max-width: 620px) {
  .products-page .products-page__main,
  .product-detail-page .product-detail-page__main { width: min(100% - 1.25rem,1180px); padding-top: 1rem; }
  .products-page .products-page__hero { min-height: 31rem; border-radius: var(--radius-lg); }
  .products-page .products-page__hero-art { top: 8%; right: -6%; width: 12rem; opacity: .7; }
  .products-page .products-page__filters-heading,
  .products-page .products-page__section-heading { align-items: flex-start; flex-direction: column; }
  .products-page .products-filter-form,
  .products-page .products-page__grid,
  .products-page .products-page__grid--featured { grid-template-columns: 1fr; }
  .products-page .products-filter-form__submit,
  .products-page .products-page__filters-heading .button { width: 100%; }
  .product-detail-page .product-detail-page__hero { border-radius: var(--radius-lg); }
  .product-detail-page .product-detail-page__media,
  .product-detail-page .product-detail-page__image-fallback { min-height: 20rem; }
}
@media (prefers-reduced-motion: reduce) {
  .products-page .product-card { transition: none; }
}

/* Public events calendar */
.events-page [hidden] { display: none !important; }
.event-detail-page [hidden] { display: none !important; }
.events-page .events-page__main,
.event-detail-page .event-detail-page__main { width: min(1180px, calc(100% - 1.25rem)); max-width: 100%; margin-inline: auto; padding-block: 1rem 7rem; box-sizing: border-box; }
.events-page .events-page__hero { position: relative; display: grid; min-width: 0; min-height: 27rem; align-items: end; overflow: hidden; padding: clamp(1.5rem,6vw,4.5rem); border-radius: var(--radius-lg); background: linear-gradient(145deg,#073f3a 0%,#087f72 58%,#ff825c 145%); color: #fff; box-shadow: var(--shadow-floating); isolation: isolate; }
.events-page .events-page__hero::before { position: absolute; z-index: -1; inset: auto -20% -55% 28%; height: 120%; border-radius: 50%; background: radial-gradient(circle,rgba(255,196,94,.86),rgba(255,126,87,.24) 48%,transparent 70%); content: ""; }
.events-page .events-page__hero-copy { max-width: 46rem; }
.events-page .events-page__hero .eyebrow { color: #ffe5a3; }
.events-page .events-page__hero h1 { max-width: 12ch; margin: .3rem 0 1rem; overflow-wrap: anywhere; color: #fff; font-size: clamp(2.5rem,8vw,5.3rem); line-height: .98; }
.events-page .events-page__hero p:last-child { max-width: 42rem; margin: 0; color: #dcfaf4; font-size: clamp(1rem,2vw,1.2rem); line-height: 1.75; }
.events-page .events-page__calendar-art { position: absolute; z-index: -1; top: 2rem; right: clamp(1rem,6vw,5rem); display: grid; width: clamp(7rem,22vw,13rem); aspect-ratio: 1; place-items: center; border: 2px solid rgba(255,255,255,.42); border-radius: 2rem; background: rgba(255,255,255,.12); box-shadow: inset 0 1rem 0 rgba(255,255,255,.16); transform: rotate(5deg); }
.events-page .events-page__calendar-art span { color: #fff; font-size: clamp(2.8rem,8vw,5.5rem); font-weight: 950; text-shadow: 0 5px 20px rgba(0,0,0,.18); }
.events-page .events-page__demo-notice,
.event-detail-page .event-detail-page__demo-notice { margin: 1rem 0 0; padding: .8rem 1rem; border: 1px solid #f1c66a; border-radius: var(--radius-md); background: #fff8e7; color: #704800; font-weight: 700; }
.events-page .events-page__filters { margin-top: 1.25rem; padding: 1.25rem; border: 1px solid rgba(0,121,107,.14); border-radius: var(--radius-lg); background: rgba(255,255,255,.96); box-shadow: var(--shadow-soft); }
.events-page .events-page__filters-heading,
.events-page .events-page__section-heading { display: flex; min-width: 0; align-items: flex-start; flex-direction: column; gap: .8rem; }
.events-page .events-page__filters-heading h2,
.events-page .events-page__section-heading h2 { margin: 0; }
.events-page .events-filter-form { display: grid; min-width: 0; gap: .8rem; margin-top: 1.1rem; }
.events-page .events-filter-field { display: grid; min-width: 0; gap: .45rem; color: var(--color-primary-dark); font-size: .84rem; font-weight: 850; }
.events-page .events-filter-field select,
.events-page .events-filter-field input { width: 100%; min-width: 0; min-height: 48px; padding: .7rem .8rem; border: 1px solid #bfd7d2; border-radius: 14px; background: #fff; color: var(--color-text); font: inherit; box-sizing: border-box; }
.events-page .events-filter-field select:focus-visible,
.events-page .events-filter-field input:focus-visible { outline: 3px solid rgba(24,183,181,.3); outline-offset: 2px; border-color: var(--color-primary); }
.events-page .events-filter-form__submit,
.events-page .events-page__filters-heading .button { width: 100%; min-height: 48px; }
.events-page .events-page__state,
.event-detail-page .event-detail-page__state { margin-top: 2rem; }
.events-page .events-page__featured,
.events-page .events-page__all { margin-top: clamp(2.5rem,7vw,5rem); }
.events-page .events-page__section-heading > p { margin: 0; color: var(--color-muted); }
.events-page .events-page__grid { display: grid; min-width: 0; grid-template-columns: minmax(0,1fr); gap: 1rem; margin-top: 1.25rem; }
.events-page .event-card { display: flex; min-width: 0; overflow: hidden; flex-direction: column; border: 1px solid rgba(0,121,107,.14); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-soft); transition: transform .2s ease,box-shadow .2s ease; }
.events-page .event-card__media { position: relative; display: block; aspect-ratio: 3 / 2; overflow: hidden; background: linear-gradient(145deg,#ffbf70,#f56c55); }
.events-page .event-card__image,
.events-page .event-card__image-fallback { width: 100%; height: 100%; object-fit: cover; }
.events-page .event-card__image-fallback { display: grid; place-items: center; padding: 1.5rem; color: #fff; font-weight: 850; text-align: center; box-sizing: border-box; }
.events-page .event-card__status { position: absolute; top: .8rem; left: .8rem; padding: .45rem .7rem; border-radius: var(--radius-pill); background: #fff; color: var(--color-primary-dark); font-size: .72rem; font-weight: 900; box-shadow: var(--shadow-soft); }
.events-page .event-card__status--current { background: var(--color-accent); color: #593700; }
.events-page .event-card__status--past { color: #5f6c68; }
.events-page .event-card__content { display: flex; min-width: 0; flex: 1; flex-direction: column; padding: 1.25rem; }
.events-page .event-card__badges,
.event-detail-page .event-detail-page__badges { display: flex; min-width: 0; flex-wrap: wrap; gap: .45rem; }
.events-page .event-card__type,
.events-page .event-card__featured,
.event-detail-page .event-detail-page__badge,
.event-detail-page .event-detail-page__status { padding: .35rem .62rem; border-radius: var(--radius-pill); background: #e1f6f1; color: var(--color-primary-dark); font-size: .72rem; font-weight: 850; }
.events-page .event-card__featured { background: #fff0c9; color: #7c4b00; }
.events-page .event-card__title { margin: .85rem 0 .45rem; overflow-wrap: anywhere; font-size: clamp(1.25rem,3vw,1.6rem); line-height: 1.24; }
.events-page .event-card__title a { color: inherit; text-decoration: none; }
.events-page .event-card__date,
.events-page .event-card__time,
.events-page .event-card__venue { margin: .25rem 0 0; overflow-wrap: anywhere; line-height: 1.55; }
.events-page .event-card__date { color: #9b441f; font-weight: 800; }
.events-page .event-card__venue { color: var(--color-primary-dark); }
.events-page .event-card__description { display: -webkit-box; overflow: hidden; margin: .8rem 0 0; color: var(--color-muted); line-height: 1.65; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.events-page .event-card__actions { display: flex; margin-top: auto; padding-top: 1rem; }
.events-page .event-card__actions .button { width: 100%; min-height: 44px; }
.events-page .event-card__media:focus-visible,
.events-page .event-card__title a:focus-visible,
.events-page .event-card__actions a:focus-visible,
.event-detail-page a:focus-visible,
.event-detail-page button:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 3px; }

.event-detail-page .event-detail-page__back { display: inline-flex; margin-bottom: 1rem; color: var(--color-primary-dark); font-weight: 850; text-decoration: none; }
.event-detail-page .event-detail-page__hero { display: grid; min-width: 0; overflow: hidden; border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-floating); }
.event-detail-page .event-detail-page__media { min-height: 20rem; background: linear-gradient(145deg,#ffbf70,#f56c55); }
.event-detail-page .event-detail-page__image,
.event-detail-page .event-detail-page__image-fallback { width: 100%; height: 100%; object-fit: cover; }
.event-detail-page .event-detail-page__image-fallback { display: grid; min-height: 20rem; place-items: center; padding: 2rem; color: #fff; font-size: 1.2rem; font-weight: 850; text-align: center; box-sizing: border-box; }
.event-detail-page .event-detail-page__summary { display: flex; min-width: 0; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(1.5rem,5vw,4rem); background: linear-gradient(155deg,#fff,#fff8ed); }
.event-detail-page .event-detail-page__title { max-width: 14ch; margin: 1rem 0 .8rem; overflow-wrap: anywhere; font-size: clamp(2.15rem,6vw,4.25rem); line-height: 1.04; }
.event-detail-page .event-detail-page__date,
.event-detail-page .event-detail-page__time,
.event-detail-page .event-detail-page__venue,
.event-detail-page .event-detail-page__organizer { margin: .35rem 0 0; overflow-wrap: anywhere; line-height: 1.6; }
.event-detail-page .event-detail-page__date { color: #9b441f; font-weight: 850; }
.event-detail-page .event-detail-page__layout { display: grid; min-width: 0; gap: 1.5rem; align-items: start; margin-top: 1.5rem; }
.event-detail-page .event-detail-page__content { display: grid; min-width: 0; gap: 1.5rem; }
.event-detail-page .event-detail-page__section,
.event-detail-page .event-detail-page__actions { min-width: 0; padding: clamp(1.25rem,4vw,2.25rem); border: 1px solid rgba(0,121,107,.13); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-soft); box-sizing: border-box; }
.event-detail-page .event-detail-page__section h2,
.event-detail-page .event-detail-page__actions h2 { margin: 0 0 .8rem; }
.event-detail-page .event-detail-page__section p { margin: 0; overflow-wrap: anywhere; white-space: pre-line; line-height: 1.85; }
.event-detail-page .event-detail-page__actions { background: linear-gradient(160deg,#063f37,#00796b); color: #fff; }
.event-detail-page .event-detail-page__actions h2 { color: #fff; }
.event-detail-page .event-detail-page__action-list { display: grid; gap: .7rem; }
.event-detail-page .event-detail-page__action-list .button { width: 100%; min-height: 46px; border-color: rgba(255,255,255,.35); box-sizing: border-box; }
.event-detail-page .event-detail-page__no-contact,
.event-detail-page .event-detail-page__no-registration { margin: .8rem 0 0; color: #d7f4ef; line-height: 1.65; }

@media (min-width: 640px) {
  .events-page .events-page__main,
  .event-detail-page .event-detail-page__main { width: min(1180px,calc(100% - 2rem)); padding-top: clamp(1.25rem,5vw,4rem); }
  .events-page .events-page__filters-heading,
  .events-page .events-page__section-heading { align-items: end; justify-content: space-between; flex-direction: row; }
  .events-page .events-page__filters-heading .button { width: auto; }
  .events-page .events-filter-form { grid-template-columns: repeat(2,minmax(0,1fr)) auto; align-items: end; }
  .events-page .events-filter-form__submit { width: auto; }
  .events-page .events-page__grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; }
}
@media (min-width: 960px) {
  .events-page .events-page__hero { border-radius: var(--radius-xl); }
  .events-page .events-page__filters { margin-top: 2.5rem; padding: 2.25rem; }
  .events-page .events-page__grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; }
  .events-page .events-page__grid--featured { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .events-page .event-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-card); }
  .event-detail-page .event-detail-page__hero { min-height: 34rem; grid-template-columns: minmax(0,1.15fr) minmax(20rem,.85fr); border-radius: var(--radius-xl); }
  .event-detail-page .event-detail-page__media,
  .event-detail-page .event-detail-page__image-fallback { min-height: 30rem; }
  .event-detail-page .event-detail-page__layout { grid-template-columns: minmax(0,1.55fr) minmax(18rem,.65fr); }
  .event-detail-page .event-detail-page__actions { position: sticky; top: calc(var(--header-height) + 1rem); }
}
@media (prefers-reduced-motion: reduce) {
  .events-page .event-card { transition: none; }
}

/* Public Gallery and Favorites: selectors stay page-scoped. */
.gallery-page [hidden],.favorites-page [hidden]{display:none!important}
.gallery-page .gallery-page__main,.favorites-page .favorites-page__main{display:grid;width:min(100%,var(--container-max));margin-inline:auto;padding:var(--space-4) var(--container-padding-mobile) var(--space-12);gap:var(--space-6)}
.gallery-page .gallery-page__hero,.favorites-page .favorites-page__hero{position:relative;display:grid;min-width:0;overflow:hidden;padding:clamp(1.5rem,6vw,4rem);border-radius:var(--radius-xl);background:linear-gradient(135deg,#064e3b,#00796b 55%,#18b7b5);color:#fff;box-shadow:var(--shadow-floating)}
.gallery-page .gallery-page__hero{min-height:22rem;align-content:end;background:radial-gradient(circle at 82% 18%,rgba(253,186,45,.9) 0 6%,transparent 6.5%),linear-gradient(135deg,#053d34,#00796b 52%,#18b7b5)}
.gallery-page .gallery-page__hero h1,.favorites-page .favorites-page__hero h1{max-width:18ch;margin:.25rem 0;color:#fff;font-size:clamp(2rem,7vw,4.5rem);line-height:1.05}
.gallery-page .gallery-page__hero p,.favorites-page .favorites-page__hero p{max-width:46rem;margin:.5rem 0 0;color:#e5f8f3;line-height:1.7}
.gallery-page .gallery-page__filters{display:grid;grid-template-columns:1fr;gap:var(--space-4);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-soft)}
.gallery-page .gallery-page__filters label{display:grid;min-width:0;gap:var(--space-2);color:var(--color-primary-dark);font-weight:var(--font-weight-bold)}
.gallery-page .gallery-page__filters select,.gallery-page .gallery-page__filters input{width:100%;min-height:48px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-text);font:inherit}
.gallery-page .gallery-page__summary{min-height:1.5rem;color:var(--color-muted);font-weight:var(--font-weight-semibold)}
.gallery-page .gallery-state,.favorites-page .favorites-state{min-height:15rem;align-content:center;padding:var(--space-6);border:1px dashed var(--color-border);border-radius:var(--radius-lg);background:rgba(255,255,255,.8);text-align:center}
.gallery-page .gallery-state[data-gallery-state="ready"],.favorites-page .favorites-state--results{min-height:0;padding:0;border:0;background:transparent;text-align:left}
.gallery-page .gallery-page__grid{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
.gallery-page .gallery-card{display:grid;min-width:0;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-card)}
.gallery-page .gallery-card__media{position:relative;display:block;min-height:15rem;overflow:hidden;background:linear-gradient(145deg,#dff6ef,#b7dfe6)}
.gallery-page .gallery-card__image{display:block;width:100%;height:100%;min-height:15rem;aspect-ratio:3 / 2;object-fit:cover}
.gallery-page .gallery-card__fallback{display:grid;min-height:15rem;place-items:center;padding:var(--space-5);color:var(--color-primary-dark);font-weight:var(--font-weight-bold);text-align:center}
.gallery-page .gallery-card__badge{position:absolute;top:var(--space-3);left:var(--space-3);padding:.4rem .75rem;border-radius:var(--radius-pill);background:rgba(6,78,59,.9);color:#fff;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}
.gallery-page .gallery-card__content{display:grid;gap:var(--space-3);padding:var(--space-5)}
.gallery-page .gallery-card__content h2,.gallery-page .gallery-card__content p{margin:0;overflow-wrap:anywhere}.gallery-page .gallery-card__content p{color:var(--color-muted)}
.gallery-page .gallery-card__meta{display:flex;flex-wrap:wrap;gap:var(--space-2);font-size:var(--font-size-sm)}
.gallery-page .gallery-card__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.gallery-page .gallery-card__actions .button{flex:1 1 9rem}
.gallery-page .gallery-viewer{position:fixed;z-index:var(--z-modal);inset:0;display:grid;place-items:center;padding:var(--space-4)}
.gallery-page .gallery-viewer__backdrop{position:absolute;inset:0;border:0;background:rgba(2,28,25,.9)}
.gallery-page .gallery-viewer__panel{position:relative;z-index:1;display:grid;width:min(100%,72rem);max-height:calc(100svh - 2rem);overflow:auto;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:#071f1c;color:#fff;box-shadow:var(--shadow-floating)}
.gallery-page .gallery-viewer__heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.gallery-page .gallery-viewer__heading h2{margin:0;color:#fff}
.gallery-page .gallery-viewer__close{display:grid;flex:0 0 48px;width:48px;height:48px;place-items:center;border:1px solid rgba(255,255,255,.6);border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font:inherit;font-size:1.6rem;cursor:pointer}
.gallery-page .gallery-viewer__media{display:grid;min-height:12rem;place-items:center}.gallery-page .gallery-viewer__media img,.gallery-page .gallery-viewer__media video{display:block;max-width:100%;max-height:68svh;object-fit:contain}.gallery-page .gallery-viewer__media video{width:100%;background:#000}
.gallery-page .gallery-viewer__caption{margin:0;color:#d9eeea}.gallery-page .gallery-viewer__nav{display:flex;justify-content:space-between;gap:var(--space-3)}
.gallery-page.has-modal{overflow:hidden}.gallery-page .gallery-viewer :focus-visible,.gallery-page .gallery-card :focus-visible,.favorites-page .favorite-place-card :focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}
.favorites-page .favorites-page__hero{grid-template-columns:1fr;gap:var(--space-5);align-items:end;min-height:20rem;background:radial-gradient(circle at 88% 20%,rgba(249,115,22,.72),transparent 24%),linear-gradient(135deg,#064e3b,#00796b 62%,#18b7b5)}
.favorites-page .favorites-page__count{justify-self:start;padding:.65rem 1rem;border:1px solid rgba(255,255,255,.45);border-radius:var(--radius-pill);background:rgba(255,255,255,.14);font-weight:var(--font-weight-bold)}
.favorites-page .favorites-page__grid{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
.favorites-page .favorite-place-card{display:grid;grid-template-rows:auto 1fr;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-card)}
.favorites-page .favorite-place-card__media{min-height:13rem;background:linear-gradient(145deg,#dff6ef,#b7dfe6)}.favorites-page .favorite-place-card__image{display:block;width:100%;height:100%;min-height:13rem;aspect-ratio:16/10;object-fit:cover}.favorites-page .favorite-place-card__fallback{display:grid;min-height:13rem;place-items:center;padding:var(--space-5);color:var(--color-primary-dark);font-weight:var(--font-weight-bold)}
.favorites-page .favorite-place-card__content{display:flex;min-width:0;flex-direction:column;gap:var(--space-3);padding:var(--space-5)}.favorites-page .favorite-place-card__content h2,.favorites-page .favorite-place-card__content p{margin:0;overflow-wrap:anywhere}.favorites-page .favorite-place-card__description{color:var(--color-muted)}
.favorites-page .favorite-place-card__actions{display:grid;grid-template-columns:1fr;gap:var(--space-2);margin-top:auto}.favorites-page .favorite-place-card__remove{justify-self:start;border-color:transparent;background:transparent;color:var(--color-muted)}
@media (min-width:640px){.gallery-page .gallery-page__grid,.favorites-page .favorites-page__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-page .gallery-page__filters{grid-template-columns:repeat(2,minmax(0,1fr))}.favorites-page .favorite-place-card__actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:768px){.gallery-page .gallery-page__main,.favorites-page .favorites-page__main{padding-inline:var(--container-padding-desktop)}.favorites-page .favorites-page__hero{grid-template-columns:minmax(0,1fr) auto}.favorites-page .favorites-page__count{justify-self:end}.gallery-page .gallery-page__filters{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end}}
@media (min-width:1080px){.gallery-page .gallery-page__grid{grid-template-columns:repeat(3,minmax(0,1fr))}.favorites-page .favorites-page__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (prefers-reduced-motion:reduce){.gallery-page *,.favorites-page *{scroll-behavior:auto;transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* About and public 404 */
.about-page [hidden],.not-found-page [hidden]{display:none!important}
.about-page,.not-found-page{overflow-x:hidden;background:linear-gradient(180deg,#eefaf6 0,#f8faf8 34rem,#fff7e6 100%)}
.about-page__main,.not-found-page__main{width:min(100%,90rem);margin-inline:auto;padding:clamp(1rem,3vw,2rem) var(--container-padding-mobile) calc(7rem + env(safe-area-inset-bottom))}
.about-page__states{width:min(100%,54rem);margin-inline:auto}
.about-page__status{display:grid;min-height:24rem;place-items:center;align-content:center;gap:var(--space-4);padding:clamp(2rem,7vw,4rem);border:1px solid rgba(0,121,107,.14);border-radius:var(--radius-xl);background:rgba(255,255,255,.94);text-align:center;box-shadow:var(--shadow-card)}
.about-page__status h1,.about-page__status p{margin:0}.about-page__status p{max-width:36rem;color:var(--color-muted)}
.about-page__status-icon{display:grid;width:4rem;height:4rem;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--color-accent),var(--color-accent-2));color:var(--color-primary-dark);font-size:2rem;font-weight:var(--font-weight-bold);box-shadow:0 16px 34px rgba(249,115,22,.24)}
.about-page__content{display:grid;gap:clamp(3rem,8vw,6.5rem)}
.about-page__hero{position:relative;display:grid;min-height:clamp(32rem,76vh,48rem);overflow:hidden;align-items:end;border-radius:clamp(1.5rem,4vw,3rem);background:linear-gradient(135deg,#064e3b,#00796b 58%,#18b7b5);box-shadow:var(--shadow-floating);isolation:isolate}
.about-page__hero-media,.about-page__hero-overlay{position:absolute;inset:0}.about-page__hero-image{width:100%;height:100%;object-fit:cover}
.about-page__hero-overlay{z-index:1;background:linear-gradient(180deg,rgba(6,78,59,.08),rgba(6,78,59,.9) 84%)}
.about-page__hero-fallback{position:absolute;inset:0;overflow:hidden;background:radial-gradient(circle at 82% 18%,rgba(253,186,45,.88) 0 7%,transparent 7.4%),linear-gradient(152deg,transparent 0 46%,rgba(6,78,59,.8) 46.2% 67%,#063d35 67.2%),linear-gradient(135deg,#18b7b5,#00796b 55%,#064e3b)}
.about-page__hero-fallback span{position:absolute;right:-8%;bottom:-15%;width:70%;height:43%;border-radius:50% 50% 0 0;background:rgba(255,255,255,.09);transform:rotate(-8deg)}
.about-page__hero-fallback span:nth-child(2){right:37%;bottom:-22%;width:78%;height:50%;background:rgba(0,41,35,.28);transform:rotate(9deg)}
.about-page__hero-fallback span:nth-child(3){right:-12%;bottom:4%;width:57%;height:8%;border-radius:50%;background:rgba(224,247,250,.32);transform:rotate(-5deg)}
.about-page__hero-content{position:relative;z-index:2;display:grid;max-width:52rem;gap:var(--space-4);padding:clamp(1.5rem,6vw,4rem);color:#fff}
.about-page__hero-content .eyebrow{color:#d8fff6}.about-page__hero h1{max-width:12ch;margin:0;font-size:clamp(2.75rem,9vw,6.5rem);line-height:.96;letter-spacing:-.045em;overflow-wrap:anywhere}.about-page__slogan{max-width:38rem;margin:0;color:rgba(255,255,255,.88);font-size:clamp(1.05rem,2.2vw,1.35rem)}
.about-page__brand-mark{width:4.5rem;height:4.5rem;overflow:hidden;border:1px solid rgba(255,255,255,.55);border-radius:1.35rem;background:#fff;box-shadow:var(--shadow-soft)}.about-page__brand-mark img{width:100%;height:100%;object-fit:contain}
.about-page__mock-notice{justify-self:start;margin:0;padding:.45rem .75rem;border:1px solid rgba(255,255,255,.36);border-radius:var(--radius-pill);background:rgba(6,78,59,.42);font-size:.82rem}
.about-page__hero-actions,.about-page__cta-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}
.about-page .button--ghost-light{border-color:rgba(255,255,255,.52);background:rgba(255,255,255,.1);color:#fff;box-shadow:none;backdrop-filter:blur(8px)}
.about-page__section{width:min(100%,72rem);margin-inline:auto}.about-page__section-heading{display:grid;gap:var(--space-2);margin-bottom:var(--space-5)}.about-page__section-heading h2,.about-page__purpose h2,.about-page__contact h2,.about-page__cta h2{margin:0;font-size:clamp(2rem,5vw,3.7rem);line-height:1.08;letter-spacing:-.035em}.about-page__lead{max-width:62rem;margin:0;color:var(--color-primary-dark);font-size:clamp(1.25rem,3vw,2rem);line-height:1.55}
.about-page__purpose-card{display:grid;gap:var(--space-4);padding:clamp(1.5rem,5vw,3.5rem);border:1px solid rgba(24,183,181,.2);border-radius:var(--radius-xl);background:linear-gradient(135deg,rgba(224,247,250,.9),rgba(255,247,230,.95));box-shadow:var(--shadow-card)}.about-page__purpose-card p{max-width:50rem;margin-bottom:0;color:var(--color-muted);font-size:1.08rem}.about-page__purpose-number{color:var(--color-primary);font-size:clamp(2.5rem,8vw,5rem);font-weight:var(--font-weight-bold);line-height:1}
.about-page__highlights{display:grid;grid-template-columns:1fr;gap:var(--space-4)}
.about-page__highlight{display:grid;min-width:0;gap:var(--space-3);padding:clamp(1.35rem,4vw,2rem);border:1px solid rgba(6,78,59,.1);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-card)}.about-page__highlight>span{display:grid;width:3.25rem;height:3.25rem;place-items:center;border-radius:1rem;background:var(--color-sand);color:var(--color-primary-dark);font-weight:var(--font-weight-bold)}.about-page__highlight h3,.about-page__highlight p{margin:0}.about-page__highlight p{color:var(--color-muted)}.about-page__highlight--community>span{background:#e0f7fa}.about-page__highlight--products>span{background:#fff0cf}.about-page__highlight--routes>span{background:#e1f5ec}
.about-page__contact{display:grid;gap:var(--space-5);padding:clamp(1.5rem,5vw,3.5rem);border-radius:var(--radius-xl);background:var(--color-primary-dark);color:#fff;box-shadow:var(--shadow-floating)}.about-page__contact-copy p{max-width:38rem;color:rgba(255,255,255,.72)}.about-page__contact-list{display:grid;grid-template-columns:1fr;gap:var(--space-3);font-style:normal}.about-page__contact-list a{display:grid;min-width:0;min-height:4.75rem;align-content:center;gap:.2rem;padding:1rem 1.15rem;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-md);background:rgba(255,255,255,.09);color:#fff;text-decoration:none}.about-page__contact-list span{color:rgba(255,255,255,.68);font-size:.84rem}.about-page__contact-list strong{overflow-wrap:anywhere}
.about-page__cta{display:grid;gap:var(--space-5);padding:clamp(1.5rem,5vw,3.5rem);border-radius:var(--radius-xl);background:radial-gradient(circle at 90% 10%,rgba(253,186,45,.34),transparent 28%),linear-gradient(135deg,#00796b,#18b7b5);color:#fff;box-shadow:var(--shadow-card)}
.not-found-page__main{display:grid;min-height:calc(100vh - 9rem);place-items:center}
.not-found-page__card{display:grid;width:min(100%,68rem);overflow:hidden;border:1px solid rgba(0,121,107,.15);border-radius:var(--radius-xl);background:rgba(255,255,255,.96);box-shadow:var(--shadow-floating)}
.not-found-page__visual{position:relative;min-height:17rem;overflow:hidden;background:linear-gradient(180deg,#b9eef0,#e8fbf7 58%,#d9f2e4)}.not-found-page__sun{position:absolute;top:12%;right:14%;width:4.5rem;height:4.5rem;border-radius:50%;background:var(--color-accent);box-shadow:0 0 0 1.25rem rgba(253,186,45,.16)}.not-found-page__mountain{position:absolute;bottom:-10%;left:-15%;width:80%;height:65%;border-radius:50% 50% 0 0;background:#348f72;transform:rotate(9deg)}.not-found-page__mountain--front{left:34%;bottom:-18%;width:90%;height:74%;background:#075d49;transform:rotate(-8deg)}.not-found-page__route{position:absolute;right:22%;bottom:-5%;width:12%;height:65%;border-left:.7rem solid rgba(255,247,230,.92);border-radius:50%;transform:rotate(18deg)}
.not-found-page__copy{display:grid;gap:var(--space-4);padding:clamp(1.5rem,6vw,4rem)}.not-found-page__copy h1,.not-found-page__copy p{margin:0}.not-found-page__copy h1{max-width:15ch;font-size:clamp(2.25rem,7vw,4.75rem);line-height:1.03;letter-spacing:-.04em}.not-found-page__copy>p:not(.eyebrow):not(.not-found-page__code){max-width:42rem;color:var(--color-muted);font-size:1.08rem}.not-found-page__code{color:var(--color-primary);font-size:clamp(3.5rem,14vw,7.5rem);font-weight:var(--font-weight-bold);line-height:.75;letter-spacing:-.07em}.not-found-page__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-2)}
@media (min-width:48rem){.about-page__main,.not-found-page__main{padding-inline:var(--container-padding-desktop)}.about-page__purpose-card{grid-template-columns:auto 1fr;align-items:start}.about-page__highlights{grid-template-columns:repeat(2,minmax(0,1fr))}.about-page__contact{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start}.about-page__contact-list{grid-template-columns:repeat(2,minmax(0,1fr))}.about-page__cta{grid-template-columns:minmax(0,1fr) auto;align-items:center}.about-page__cta-actions{justify-content:flex-end}.not-found-page__card{grid-template-columns:minmax(18rem,.8fr) minmax(0,1.2fr)}.not-found-page__visual{min-height:100%}}
@media (min-width:67.5rem){.about-page__highlights{grid-template-columns:repeat(4,minmax(0,1fr))}.about-page__highlight{min-height:17rem;align-content:start}}
@media (prefers-reduced-motion:reduce){.about-page *,.not-found-page *{scroll-behavior:auto;transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* Public search */
.search-page [hidden]{display:none!important}
.search-page__main{width:min(calc(100% - 2rem),var(--container));margin-inline:auto;padding-block:clamp(2.5rem,6vw,5rem)}
.search-page__hero{max-width:760px;margin-bottom:2rem}.search-page__hero h1{margin:0;color:var(--color-primary-dark);font-size:clamp(2.35rem,6vw,4.5rem);line-height:1.05}.search-page__hero p{max-width:650px;color:var(--color-muted);font-size:1.05rem}
.search-page__form{display:grid;gap:.65rem;margin-bottom:2rem;padding:clamp(1rem,3vw,1.5rem);border:1px solid var(--color-border);border-radius:22px;background:#fff;box-shadow:var(--shadow-sm)}.search-page__form>label{color:var(--color-primary-dark);font-weight:800}.search-page__form-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem}.search-page__form input{min-width:0;min-height:48px;padding:.7rem .9rem;border:1px solid var(--color-border);border-radius:13px;font:inherit}.search-page__form button,.search-card__action{min-height:44px}
.search-page__state{min-width:0}.search-page__message,.search-page__results-heading{padding:clamp(1.2rem,3vw,2rem);border-radius:22px;background:var(--color-primary-light)}.search-page__message h2,.search-page__results-heading h2{margin-top:0;color:var(--color-primary-dark)}
.search-page__results{display:grid;gap:2.5rem}.search-page__results[hidden]{display:none}.search-page__results-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem}.search-page__results-heading p{margin:0;color:var(--color-muted);font-weight:700}
.search-page__section{min-width:0}.search-page__section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.search-page__section-heading h2{margin:0;color:var(--color-primary-dark);font-size:clamp(1.4rem,3vw,2rem)}
.search-page__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;min-width:0}.search-page__section-empty{margin:0;padding:1rem;border:1px dashed var(--color-border);border-radius:14px;color:var(--color-muted)}
.search-card{display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid var(--color-border);border-radius:19px;background:#fff;box-shadow:var(--shadow-sm);overflow-wrap:anywhere}.search-card__media{display:block;aspect-ratio:16 / 10;overflow:hidden;background:var(--color-primary-light)}.search-card__image{width:100%;height:100%;object-fit:cover}.search-card__image-fallback{display:grid;width:100%;height:100%;place-items:center;padding:1rem;color:var(--color-muted);text-align:center}.search-card__body{display:flex;min-width:0;flex:1;flex-direction:column;align-items:flex-start;gap:.65rem;padding:1rem}.search-card__title{margin:0;font-size:1.15rem}.search-card__title a{color:var(--color-primary-dark);text-decoration:none}.search-card__description,.search-card__meta{margin:0}.search-card__description{color:var(--color-muted)}.search-card__meta{font-size:.86rem}.search-card__action{margin-top:auto}
.search-page :focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}
