:root{--color-sage-50:#f4f6f2;--color-sage-100:#e5e9e1;--color-sage-200:#c8d1c0;--color-sage-300:#a4b399;--color-sage-400:#8b9a7d;--color-sage-500:#6b7a5d;--color-sage-600:#556249;--color-sage-700:#444e3b;--color-sage-800:#383f32;--color-sage-900:#30362c;--color-sky-50:#f0f7fa;--color-sky-100:#dbeef5;--color-sky-200:#bde0ed;--color-sky-300:#8fc9df;--color-sky-400:#5aadca;--color-sky-500:#3d91b2;--color-sky-600:#357696;--color-sky-700:#30617a;--color-sky-800:#2d5165;--color-sky-900:#294455;--color-lavender:#a89cc8;--color-lavender-light:#d4cfe6;--color-yellow-soft:#f5e6a3;--color-yellow-muted:#e8d98f;--color-cream:#fdfcf8;--color-cream-dark:#f7f5ef;--color-stone-50:#f5f4f2;--color-stone-100:#e8e6e1;--color-stone-200:#d4d1c9;--color-stone-300:#b8b4aa;--color-stone-400:#9a9589;--color-stone-500:#7a756b;--color-stone-600:#5e5a52;--color-stone-700:#4a463e;--color-stone-800:#3a3733;--color-stone-900:#2c2924;--color-bg-primary:var(--color-cream);--color-bg-secondary:var(--color-cream-dark);--color-bg-card:#ffffff;--color-bg-dark:var(--color-stone-900);--color-bg-mist:var(--color-sage-50);--color-text-primary:var(--color-stone-900);--color-text-secondary:var(--color-stone-500);--color-text-muted:var(--color-stone-400);--color-text-inverse:var(--color-cream);--color-accent-primary:var(--color-sage-500);--color-accent-hover:var(--color-sage-600);--color-accent-secondary:var(--color-sky-500);--color-border:var(--color-stone-200);--color-border-light:var(--color-stone-100);--font-heading:var(--font-cormorant,"Cormorant Garamond"),Georgia,serif;--font-body:var(--font-dm-sans,"DM Sans"),-apple-system,BlinkMacSystemFont,sans-serif;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--space-4xl:6rem;--max-width:1200px;--max-width-narrow:800px;--header-height:72px;--border-radius:8px;--border-radius-lg:12px;--border-radius-xl:16px;--border-radius-full:100px;--transition-fast:150ms ease;--transition-normal:200ms ease;--shadow-sm:0 1px 2px rgba(44,41,36,0.05);--shadow-md:0 4px 12px rgba(44,41,36,0.08);--shadow-lg:0 8px 24px rgba(44,41,36,0.12);--shadow-card-hover:0 12px 32px rgba(44,41,36,0.15)}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,html{line-height:1.6}body{font-family:var(--font-body);font-size:1rem;color:var(--color-text-primary);background:var(--color-bg-primary)}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}a:hover{color:var(--color-accent-primary)}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:500;color:var(--color-text-primary)}h1{font-size:clamp(2.5rem,6vw,3.157rem);letter-spacing:-.02em;line-height:1.1}h2{font-size:clamp(1.75rem,4vw,2.369rem);line-height:1.2}h3{font-size:1.777rem;line-height:1.25}h4{font-size:1.333rem;line-height:1.3}p{margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:.75rem 1.5rem;border:none;border-radius:var(--border-radius-full);font-family:var(--font-body);font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);text-decoration:none}.btn:hover{transform:scale(1.02);box-shadow:var(--shadow-md)}.btn:active{transform:scale(.98);box-shadow:none}.btn-primary{background:var(--color-sage-600);color:var(--color-cream)}.btn-primary:hover{background:var(--color-sage-700);color:var(--color-cream)}.btn-secondary{background:transparent;color:var(--color-cream);border:1.5px solid var(--color-cream)}.btn-secondary:hover{background:var(--color-cream);color:var(--color-stone-900)}.btn-outline{background:transparent;color:var(--color-stone-900);border:1.5px solid var(--color-stone-900)}.btn-outline:hover{background:var(--color-stone-900);color:var(--color-cream)}.btn-lg{padding:1rem 2rem;font-size:1rem}.site-header{position:fixed;top:0;left:0;right:0;height:var(--header-height);background:var(--color-bg-primary);border-bottom:1px solid var(--color-border-light);z-index:100}.header-container{max-width:var(--max-width);margin:0 auto;height:100%;padding:0 var(--space-xl);display:flex;align-items:center;justify-content:space-between}.logo{font-family:var(--font-heading);font-size:1.75rem;font-weight:500;letter-spacing:-.02em}.logo,.logo:hover{color:var(--color-text-primary)}.logo .accent{color:var(--color-sage-500)}.main-nav{display:flex;align-items:center;gap:var(--space-xl)}.nav-link{font-size:.9rem;font-weight:500;color:var(--color-text-secondary);transition:color var(--transition-fast)}.nav-link.active,.nav-link:hover{color:var(--color-text-primary)}.header-actions{display:flex;align-items:center;gap:var(--space-md)}.language-switcher{display:flex;background:var(--color-stone-100);border-radius:var(--border-radius-full);padding:2px}.lang-btn{padding:.4rem .75rem;border:none;background:transparent;border-radius:var(--border-radius-full);font-family:var(--font-body);font-size:.75rem;font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.lang-btn.active,.lang-btn:hover:not(.active){color:var(--color-text-primary)}.lang-btn.active{background:var(--color-bg-card);box-shadow:var(--shadow-sm)}.mobile-menu-btn{display:none;align-items:center;justify-content:center;width:44px;height:44px;border:none;background:transparent;color:var(--color-text-primary);cursor:pointer}.mobile-menu-overlay{position:fixed;inset:0;background:rgba(44,41,36,.4);z-index:200}.mobile-menu-drawer{position:fixed;top:0;right:0;bottom:0;width:280px;max-width:80vw;background:var(--color-bg-primary);z-index:201;padding:var(--space-xl);display:flex;flex-direction:column;box-shadow:-4px 0 24px rgba(44,41,36,.15)}.mobile-menu-close{align-self:flex-end;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;background:transparent;color:var(--color-text-primary);cursor:pointer;margin-bottom:var(--space-xl)}.mobile-menu-nav{display:flex;flex-direction:column;gap:var(--space-md)}.mobile-menu-nav a{font-size:1.1rem;font-weight:500;padding:var(--space-md) 0;min-height:44px;display:flex;align-items:center;color:var(--color-text-primary)}.mobile-menu-nav a:hover{color:var(--color-accent-primary)}.mobile-menu-nav .btn{margin-top:var(--space-md);text-align:center}.mobile-menu-footer{margin-top:auto}@media (max-width:768px){.main-nav{display:none}.header-container{padding:0 var(--space-lg)}.header-actions{display:none}.mobile-menu-btn{display:flex}}.hero{position:relative;min-height:calc(100vh - var(--header-height));margin-top:var(--header-height);display:flex;align-items:center;padding:var(--space-4xl) var(--space-xl);overflow:hidden}.hero-background{position:absolute;inset:0;z-index:0}.hero-image{width:100%;height:100%;object-fit:cover}.hero-illustration{background:radial-gradient(ellipse 120% 40% at 20% 85%,var(--color-sage-300) 0,transparent 70%),radial-gradient(ellipse 100% 35% at 75% 88%,var(--color-sage-400) 0,transparent 65%),linear-gradient(180deg,transparent 55%,var(--color-sage-200) 56%,var(--color-sage-100) 100%),linear-gradient(180deg,var(--color-sky-200) 0,var(--color-sky-100) 40%,var(--color-cream-dark) 60%)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(253,252,248,.82),rgba(253,252,248,.7) 50%,rgba(253,252,248,.55))}.hero-content{position:relative;z-index:1;max-width:680px}.hero h1{margin-bottom:var(--space-lg)}.hero h1 em{font-style:italic;color:var(--color-sage-500)}.hero-subtitle{font-size:1.2rem;color:var(--color-text-secondary);max-width:60ch;margin-bottom:var(--space-2xl);line-height:1.7}.hero-buttons{display:flex;gap:var(--space-md);flex-wrap:wrap}.hero:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:48px;background:var(--color-bg-mist);mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 48' preserveAspectRatio='none'%3E%3Cpath d='M0 48h1440V22c-120 15-360 26-720 26S120 37 0 22v26z' fill='%23000'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 48' preserveAspectRatio='none'%3E%3Cpath d='M0 48h1440V22c-120 15-360 26-720 26S120 37 0 22v26z' fill='%23000'/%3E%3C/svg%3E");mask-size:100% 100%;-webkit-mask-size:100% 100%;z-index:2}@media (max-width:768px){.hero{padding:var(--space-2xl) var(--space-lg);min-height:80vh}.hero-subtitle{font-size:1.1rem}}.filter-section{position:-webkit-sticky;position:sticky;top:var(--header-height);background:var(--color-bg-mist);padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--color-border-light);z-index:50}.filter-container{max-width:var(--max-width);margin:0 auto;display:flex;flex-wrap:wrap;gap:var(--space-lg);align-items:flex-start}.view-toggle{display:flex;background:var(--color-bg-card);border-radius:var(--border-radius-full);padding:4px;border:1px solid var(--color-border)}.view-btn{padding:.5rem 1rem;border:none;background:transparent;border-radius:var(--border-radius-full);font-family:var(--font-body);font-size:.85rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.view-btn.active{background:var(--color-stone-900);color:var(--color-cream)}.search-input,.view-btn:hover:not(.active){color:var(--color-text-primary)}.search-input{padding:.6rem 1rem;border:1px solid var(--color-border);border-radius:var(--border-radius-full);background:var(--color-bg-card);font-family:var(--font-body);font-size:.85rem;min-width:180px}.search-input:focus{border-color:var(--color-sage-400)}.search-input::placeholder{color:var(--color-text-muted)}.country-select{padding:.6rem 2.5rem .6rem 1rem;border:1px solid var(--color-border);border-radius:var(--border-radius-full);background:var(--color-bg-card);font-family:var(--font-body);font-size:.85rem;color:var(--color-text-primary);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232c2924' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;min-width:160px}.country-select:focus{border-color:var(--color-sage-400)}.filter-tags{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.filter-tag{padding:.5rem 1rem;border:1px solid var(--color-border);border-radius:var(--border-radius-full);background:var(--color-bg-card);font-family:var(--font-body);font-size:.8rem;color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast)}.filter-tag:hover{border-color:var(--color-sage-400);background:var(--color-sage-50)}.filter-tag.active{background:var(--color-stone-900);color:var(--color-cream);border-color:var(--color-stone-900)}.filter-dropdown{position:relative}.filter-dropdown-btn{display:flex;align-items:center;gap:var(--space-sm);padding:.6rem 1rem;border:1px solid var(--color-border);border-radius:var(--border-radius-full);background:var(--color-bg-card);font-family:var(--font-body);font-size:.85rem;color:var(--color-text-primary);cursor:pointer;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.filter-dropdown-btn.has-active,.filter-dropdown-btn:hover{border-color:var(--color-sage-400)}.filter-dropdown-btn.has-active{background:var(--color-sage-100)}.filter-count{font-weight:600;color:var(--color-sage-600)}.dropdown-chevron{transition:transform var(--transition-fast)}.dropdown-chevron.open{transform:rotate(180deg)}.filter-dropdown-panel{position:absolute;top:calc(100% + var(--space-sm));left:0;min-width:280px;max-width:400px;padding:var(--space-md);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);z-index:60}.filter-dropdown-panel .filter-tags{display:flex;flex-wrap:wrap;gap:var(--space-sm)}@media (max-width:768px){.filter-dropdown-panel{left:auto;right:0;min-width:260px}}.active-filters{width:100%;display:flex;align-items:center;gap:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-border-light);flex-wrap:wrap}.active-filters-label{font-size:.8rem;color:var(--color-text-muted)}@keyframes pill-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.active-filter-pill{display:inline-flex;align-items:center;gap:var(--space-xs);padding:.35rem .75rem;background:var(--color-sage-500);color:white;border:none;border-radius:var(--border-radius-full);font-family:var(--font-body);font-size:.75rem;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast);animation:pill-in .2s ease-out}.active-filter-pill:hover{background:var(--color-sage-600)}.pill-remove{font-size:1rem;line-height:1;opacity:.8}.clear-filters-btn{background:none;border:none;color:var(--color-sky-600);font-family:var(--font-body);font-size:.8rem;cursor:pointer;text-decoration:underline;margin-left:auto}.clear-filters-btn:hover{color:var(--color-sky-700)}@media (max-width:768px){.filter-section{padding:var(--space-md) var(--space-lg)}.filter-container{flex-direction:row;flex-wrap:wrap}.search-input{width:100%;min-width:0}.view-btn{min-width:44px}.country-select,.filter-dropdown-btn,.view-btn{min-height:44px}}.campsite-grid-section{padding:var(--space-3xl) var(--space-xl);max-width:var(--max-width);margin:0 auto;background:var(--color-bg-primary)}.section-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-xl)}.section-header h2{margin:0}.results-count{font-size:.9rem;color:var(--color-text-secondary)}.campsite-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));grid-gap:var(--space-lg);gap:var(--space-lg)}.empty-state{grid-column:1/-1;text-align:center;padding:var(--space-4xl) var(--space-xl);color:var(--color-text-secondary)}.empty-state h3{margin-bottom:var(--space-sm);color:var(--color-text-primary)}@media (max-width:768px){.campsite-grid-section{padding:var(--space-xl) var(--space-lg)}.campsite-grid{grid-template-columns:1fr}}.campsite-card{display:block;background:var(--color-bg-card);border-radius:var(--border-radius-xl);overflow:hidden;border:1px solid var(--color-border-light);transition:transform var(--transition-normal),box-shadow var(--transition-normal),border-color var(--transition-normal)}.campsite-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(107,122,93,.15);border-color:var(--color-sage-200);color:inherit}.card-image{position:relative;height:200px;background:radial-gradient(ellipse 80% 60% at 30% 70%,var(--color-sage-200) 0,transparent 70%),radial-gradient(ellipse 60% 50% at 70% 80%,var(--color-sage-300) 0,transparent 60%),linear-gradient(180deg,var(--color-sky-100) 0,var(--color-sky-200) 50%,var(--color-sage-100) 100%)}.card-image img{width:100%;height:100%;object-fit:cover}.card-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:.9rem}.card-country-badge{position:absolute;top:var(--space-md);right:var(--space-md);padding:.35rem .75rem;background:rgba(255,255,255,.95);border-radius:var(--border-radius-full);font-size:.7rem;font-weight:600;color:var(--color-text-primary)}.card-content{padding:var(--space-lg)}.card-location{font-size:.8rem;color:var(--color-text-muted);margin-bottom:var(--space-xs);display:flex;align-items:center;gap:var(--space-xs)}.card-title{font-size:1.35rem;margin-bottom:var(--space-sm)}.card-description{font-size:.9rem;color:var(--color-text-secondary);margin-bottom:var(--space-md);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-tags{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.tag{padding:.3rem .65rem;background:var(--color-bg-mist);border-radius:var(--border-radius-full);font-size:.7rem;color:var(--color-text-secondary)}.tag-diet{background:var(--color-sage-100);color:var(--color-sage-700)}.tag-wellness{background:var(--color-lavender-light);color:#5d4e7a}.tag-environment{background:var(--color-sky-100);color:var(--color-sky-700)}.tag-social{background:var(--color-yellow-soft);color:#7a6b2e}.tag-digital{background:var(--color-stone-100);color:var(--color-stone-600)}.map-section{position:relative;z-index:1;min-height:calc(100vh - var(--header-height) - 150px);background:var(--color-bg-secondary)}.map-layout{display:flex;height:70vh;min-height:500px}.map-sidebar{width:360px;background:var(--color-bg-card);border-right:1px solid var(--color-border-light);overflow-y:auto;padding:var(--space-lg)}.map-sidebar h3{margin-bottom:var(--space-lg);font-size:1.25rem}.map-listing{list-style:none}.map-listing-item{margin-bottom:var(--space-sm)}.map-listing-item a{display:block;padding:var(--space-md);background:var(--color-bg-mist);border-radius:var(--border-radius);transition:background-color var(--transition-fast)}.map-listing-item a:hover{background:var(--color-sage-100);color:inherit}.map-listing-item strong{display:block;font-weight:500;margin-bottom:var(--space-xs)}.map-listing-item span{font-size:.85rem;color:var(--color-text-secondary)}.map-container{flex:1 1}.map-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-secondary)}.leaflet-map{height:100%;width:100%}.leaflet-popup-content-wrapper{border-radius:var(--border-radius-lg);font-family:var(--font-body)}.leaflet-popup-content{margin:var(--space-md)}.map-popup h4{font-family:var(--font-heading);font-size:1.1rem;margin-bottom:var(--space-xs)}.map-popup p{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.map-popup a{color:var(--color-sage-600);font-weight:500;font-size:.85rem}@media (max-width:1024px){.map-sidebar{width:300px}}@media (max-width:768px){.map-layout{flex-direction:column;height:auto}.map-sidebar{width:100%;height:auto;max-height:40vh;border-right:none;border-bottom:1px solid var(--color-border-light)}.map-container{height:50vh;min-height:350px}}.site-footer{margin-top:var(--space-4xl)}.footer-cta{position:relative;background:var(--color-sage-800);color:var(--color-text-inverse);text-align:center;padding:var(--space-4xl) var(--space-xl);overflow:hidden}.footer-cta:before{content:"";position:absolute;inset:0;background-image:repeating-radial-gradient(circle at 20% 50%,transparent 0,transparent 40px,rgba(255,255,255,.03) 41px,transparent 42px),repeating-radial-gradient(circle at 80% 30%,transparent 0,transparent 60px,rgba(255,255,255,.025) 61px,transparent 62px),repeating-radial-gradient(circle at 50% 80%,transparent 0,transparent 80px,rgba(255,255,255,.02) 81px,transparent 82px);pointer-events:none}.footer-cta>*{position:relative;z-index:1}.footer-cta h2{color:var(--color-text-inverse);margin-bottom:var(--space-md)}.footer-cta p{color:rgba(253,252,248,.7);max-width:55ch;margin:0 auto var(--space-xl)}.footer-links{max-width:var(--max-width);margin:0 auto;padding:var(--space-2xl) var(--space-xl);display:grid;grid-template-columns:2fr 1fr 1fr;grid-gap:var(--space-2xl);gap:var(--space-2xl)}.footer-brand .logo-text{font-family:var(--font-heading);font-size:1.5rem;font-weight:500;display:block;margin-bottom:var(--space-sm)}.footer-brand p{font-size:.9rem;color:var(--color-text-secondary)}.footer-nav h4{font-size:.9rem;font-weight:600;margin-bottom:var(--space-md);font-family:var(--font-body)}.footer-nav a{display:block;font-size:.9rem;color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.footer-nav a:hover{color:var(--color-text-primary)}.footer-bottom{border-top:1px solid var(--color-border-light);padding:var(--space-lg) var(--space-xl);text-align:center}.footer-bottom p{font-size:.85rem;color:var(--color-text-muted)}@media (max-width:768px){.footer-links{grid-template-columns:1fr;gap:var(--space-xl)}.footer-cta{padding:var(--space-2xl) var(--space-lg)}}.campsite-detail{padding-top:var(--header-height)}.detail-hero{position:relative;height:50vh;min-height:350px;display:flex;align-items:flex-end}.detail-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.detail-hero-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(44,41,36,.8) 0,transparent 60%)}.detail-hero-content{position:relative;z-index:1;padding:var(--space-2xl);color:var(--color-text-inverse);max-width:var(--max-width);margin:0 auto;width:100%}.detail-country{display:inline-block;padding:.35rem .85rem;background:rgba(255,255,255,.2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--border-radius-full);font-size:.8rem;font-weight:500;margin-bottom:var(--space-md)}.detail-hero-content h1{color:var(--color-text-inverse);margin-bottom:var(--space-sm)}.detail-location{font-size:1.1rem;opacity:.85}.detail-container{max-width:var(--max-width);margin:0 auto;padding:var(--space-2xl);display:grid;grid-template-columns:1fr 340px;grid-gap:var(--space-2xl);gap:var(--space-2xl)}.detail-main{min-width:0}.detail-characteristics{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-xl)}.detail-description{font-size:1.05rem;line-height:1.8;color:var(--color-text-secondary);margin-bottom:var(--space-2xl);max-width:65ch}.detail-gallery{margin-top:var(--space-2xl)}.detail-gallery h2{margin-bottom:var(--space-lg)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:var(--space-md);gap:var(--space-md)}.gallery-grid img{border-radius:var(--border-radius);aspect-ratio:4/3;object-fit:cover;width:100%}.detail-sidebar{position:-webkit-sticky;position:sticky;top:calc(var(--header-height) + var(--space-xl));align-self:start}.contact-card{background:var(--color-bg-mist);border-radius:var(--border-radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg)}.contact-card h3{margin-bottom:var(--space-md);font-size:1.1rem}.contact-card a{display:block;padding:var(--space-sm) 0;color:var(--color-sage-600);font-weight:500;border-bottom:1px solid var(--color-border-light)}.contact-card a:last-child{border-bottom:none}.contact-card a:hover{color:var(--color-sage-700)}.detail-map{height:200px;border-radius:var(--border-radius-lg);overflow:hidden;background:var(--color-bg-mist)}@media (max-width:1024px){.detail-container{grid-template-columns:1fr}.detail-sidebar{position:static}}@media (max-width:768px){.detail-hero{height:40vh;min-height:280px}.detail-container,.detail-hero-content{padding:var(--space-lg)}}.submit-page{max-width:var(--max-width-narrow);margin:0 auto;padding:calc(var(--header-height) + var(--space-2xl)) var(--space-xl) var(--space-2xl)}.submit-page h1{font-family:var(--font-heading);margin-bottom:var(--space-md)}.submit-page>p{color:var(--color-text-secondary);margin-bottom:var(--space-2xl);line-height:1.7}.submit-form fieldset{border:none;padding:0;margin:0 0 var(--space-2xl) 0}.submit-form fieldset legend{font-family:var(--font-heading);font-size:1.5rem;font-weight:500;margin-bottom:var(--space-lg);color:var(--color-text-primary)}.submit-form label{display:block;margin-bottom:var(--space-sm);font-weight:500;font-size:.9rem;color:var(--color-text-primary)}.submit-form input[type=email],.submit-form input[type=number],.submit-form input[type=tel],.submit-form input[type=text],.submit-form input[type=url],.submit-form select,.submit-form textarea{width:100%;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:1rem;margin-bottom:var(--space-lg);font-family:var(--font-body);background:var(--color-bg-card);color:var(--color-text-primary);transition:border-color var(--transition-fast)}.submit-form input:focus,.submit-form select:focus,.submit-form textarea:focus{border-color:var(--color-sage-400)}.submit-form input[aria-invalid=true],.submit-form textarea[aria-invalid=true]{border-color:#c4785a}.submit-form input::placeholder,.submit-form textarea::placeholder{color:var(--color-text-muted)}.submit-form textarea{min-height:120px;resize:vertical}.submit-form .field-description{font-size:.85rem;color:var(--color-text-muted);margin:calc(var(--space-lg) * -1 + var(--space-xs)) 0 var(--space-lg) 0}.submit-form .error{color:#c4785a;font-size:.85rem;margin:calc(var(--space-lg) * -1 + var(--space-xs)) 0 var(--space-md) 0}.submit-form .coordinate-group{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-md);gap:var(--space-md)}@media (max-width:768px){.submit-form .coordinate-group{grid-template-columns:1fr}}.submit-form .characteristics-groups{display:grid;grid-gap:var(--space-lg);gap:var(--space-lg)}.submit-form .characteristics-group h4{font-size:1rem;font-weight:600;margin-bottom:var(--space-sm);text-transform:capitalize;color:var(--color-text-primary);font-family:var(--font-body)}.submit-form .checkbox-label{display:flex;align-items:center;gap:var(--space-sm);font-weight:400;margin-bottom:var(--space-sm);cursor:pointer;color:var(--color-text-primary)}.submit-form .checkbox-label input[type=checkbox]{margin:0;width:auto;cursor:pointer;accent-color:var(--color-sage-500)}.submit-form .checkbox-label:hover{color:var(--color-sage-600)}.submit-form input[type=file]{border:1px dashed var(--color-border);padding:var(--space-md);cursor:pointer;background:var(--color-bg-card);border-radius:var(--border-radius)}.submit-form input[type=file]:focus{border-color:var(--color-sage-400)}.submit-form input[type=file]::-webkit-file-upload-button{background:var(--color-sage-100);color:var(--color-sage-700);border:none;padding:.5rem 1rem;border-radius:var(--border-radius);cursor:pointer;margin-right:var(--space-md);font-family:var(--font-body);-webkit-transition:background-color var(--transition-fast);transition:background-color var(--transition-fast)}.submit-form input[type=file]::file-selector-button{background:var(--color-sage-100);color:var(--color-sage-700);border:none;padding:.5rem 1rem;border-radius:var(--border-radius);cursor:pointer;margin-right:var(--space-md);font-family:var(--font-body);transition:background-color var(--transition-fast)}.submit-form input[type=file]::-webkit-file-upload-button:hover{background:var(--color-sage-200)}.submit-form input[type=file]::file-selector-button:hover{background:var(--color-sage-200)}.submit-form button[type=submit]{background:var(--color-sage-600);color:var(--color-cream);padding:1rem 2rem;border:none;border-radius:var(--border-radius-full);font-size:1rem;cursor:pointer;font-weight:500;font-family:var(--font-body);transition:background-color var(--transition-fast)}.submit-form button[type=submit]:hover{background:var(--color-sage-700)}.submit-form button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.submit-form .success-message{background:var(--color-sage-100);border:1px solid var(--color-sage-400);color:var(--color-sage-700);padding:var(--space-md);border-radius:var(--border-radius);margin-top:var(--space-lg);line-height:1.6}.submit-form .error-message{background:#fef2f0;border:1px solid #c4785a;color:#8b4332;padding:var(--space-md);border-radius:var(--border-radius);margin-top:var(--space-lg)}.submit-form .warning{background:var(--color-yellow-soft);border:1px solid var(--color-yellow-muted);color:#7a6b2e;padding:var(--space-md);border-radius:var(--border-radius);line-height:1.5}.submit-form .geocode-status,.submit-form .warning{margin:calc(var(--space-lg) * -1 + var(--space-xs)) 0 var(--space-lg) 0;font-size:.85rem}.submit-form .geocode-status{color:var(--color-text-muted);font-style:italic}.about-page{max-width:var(--max-width-narrow);margin:0 auto;padding:calc(var(--header-height) + var(--space-2xl)) var(--space-xl) var(--space-2xl)}.about-page h1{margin-bottom:var(--space-lg)}.about-section{margin-bottom:var(--space-2xl)}.about-section:last-child{margin-bottom:0}.about-section h2{margin-bottom:var(--space-md)}.about-section p{max-width:65ch}.about-section p,.criteria-list{color:var(--color-text-secondary);line-height:1.8}.criteria-list{list-style:disc;padding-left:var(--space-xl);margin-top:var(--space-md)}.criteria-list li{margin-bottom:var(--space-sm);padding-left:var(--space-xs)}@media (max-width:768px){.about-page{padding:calc(var(--header-height) + var(--space-xl)) var(--space-lg) var(--space-xl)}}:focus-visible{outline:2px solid var(--color-sage-400);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.preview-gate{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-xl);background:var(--color-bg-primary)}.preview-gate-card{width:100%;max-width:380px;text-align:center}.preview-gate-card h1{font-family:var(--font-heading);font-size:2rem;margin-bottom:var(--space-sm)}.preview-gate-card>p{color:var(--color-text-secondary);font-size:.95rem;margin-bottom:var(--space-xl)}.preview-gate-error{background:#fef2f0;border:1px solid #c4785a;color:#8b4332;padding:var(--space-sm) var(--space-md);border-radius:var(--border-radius);font-size:.85rem;margin-bottom:var(--space-md)}.preview-gate-card form{display:flex;flex-direction:column;gap:var(--space-md)}.preview-gate-card input[type=password]{width:100%;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:var(--border-radius);font-family:var(--font-body);font-size:1rem;background:var(--color-bg-card);color:var(--color-text-primary);text-align:center;transition:border-color var(--transition-fast)}.preview-gate-card input[type=password]:focus-visible{border-color:var(--color-sage-400);outline:2px solid var(--color-sage-400);outline-offset:2px}.preview-gate-card input[type=password]::placeholder{color:var(--color-text-muted)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.error-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:var(--space-2xl) var(--space-lg);text-align:center}.error-page__title{font-family:var(--font-heading);font-size:clamp(2.5rem,6vw,4rem);font-weight:600;color:var(--color-sage-600);line-height:1.1;margin-bottom:var(--space-sm)}.error-page__subtitle{font-family:var(--font-heading);font-size:clamp(1.25rem,3vw,1.75rem);font-weight:400;color:var(--color-stone-500);margin-bottom:var(--space-md)}.error-page__text{font-family:var(--font-body);font-size:1rem;color:var(--color-stone-400);max-width:400px;margin-bottom:var(--space-xl)}.error-page__link{display:inline-block;font-family:var(--font-body);font-size:.9375rem;font-weight:600;color:var(--color-cream);background:var(--color-sage-600);padding:var(--space-sm) var(--space-lg);border-radius:var(--border-radius-full);text-decoration:none;border:none;cursor:pointer;transition:background var(--transition-fast)}.error-page__link:hover{background:var(--color-sage-700)}