:root{--color-bg:#fafafa;--color-bg-alt:#f5f5f5;--color-text:#1a1a1a;--color-text-muted:#666;--color-text-light:#999;--color-border:#e5e5e5;--color-border-dark:#d0d0d0;--color-accent:#c4673e;--color-accent-hover:#a3522a;--color-wine:#722f37;--color-beer:#c9a227;--color-cider:#5c7c5c;--color-cream:#f5f0e8;--color-warm-white:#fdfcfa;--color-charcoal:#2d2a26;--color-tan:#d4c4b0;--color-warm-gray:#8c837a;--color-burnt-orange:#c4673e;--color-rust:#a3522a;--color-deep-wine:#722f37;--color-success:#5c7c5c;--color-warning:#c9a227;--color-error:#a63d3d;--font-display:var(--font-playfair),"Playfair Display",Georgia,serif;--font-body:var(--font-inter),"Inter",-apple-system,BlinkMacSystemFont,sans-serif;--font-heading:var(--font-inter),"Inter",-apple-system,BlinkMacSystemFont,sans-serif;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--space-2xl:32px;--space-3xl:48px;--space-4xl:64px;--max-width:1200px;--content-width:680px;--shadow-sm:0 1px 2px rgba(0,0,0,.04);--shadow-card:0 2px 8px rgba(0,0,0,.06);--shadow-popup:0 4px 16px rgba(0,0,0,.1);--radius-sm:4px;--radius-md:6px;--radius-lg:8px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;font-family:var(--font-body);font-size:16px;font-weight:300;line-height:1.6;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}body{width:100%;max-width:100vw}#__next{height:100%}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:400;line-height:1.2;color:var(--color-text)}h1{font-size:42px;letter-spacing:-.02em}h2{font-size:32px;letter-spacing:-.01em}h3{font-size:24px}h4{font-size:20px}a{color:var(--color-text);text-decoration:none}a:hover{color:var(--color-accent)}.btn{font-family:var(--font-body);font-size:14px;font-weight:400;padding:12px 24px;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm)}.btn-primary{background:var(--color-text);color:var(--color-bg)}.btn-primary:hover{background:var(--color-accent)}.btn-secondary{background:transparent;color:var(--color-text);border:1px solid var(--color-border-dark)}.btn-secondary:hover{border-color:var(--color-text)}.btn-small{padding:8px 16px;font-size:13px}.btn-icon{padding:8px;min-width:36px;min-height:36px}.input{font-family:var(--font-body);font-size:15px;font-weight:300;padding:12px 16px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);width:100%;transition:border-color .15s ease}.input::placeholder{color:var(--color-text-light)}.input:focus{outline:none;border-color:var(--color-text)}.divider{height:1px;background:var(--color-border);border:none;margin:var(--space-xl) 0}.meta-text{font-family:var(--font-body);font-size:11px;font-weight:400;text-transform:uppercase;letter-spacing:.1em}.meta-text,.text-muted{color:var(--color-text-muted)}.text-light{color:var(--color-text-light)}.text-accent{color:var(--color-accent)}.mapboxgl-popup-content{padding:0!important;border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-popup)!important;border:1px solid var(--color-border)!important;overflow:hidden}.mapboxgl-popup-close-button{font-size:20px;padding:4px 8px;color:var(--color-text-muted)}.mapboxgl-popup-close-button:hover{background:var(--color-bg-alt);color:var(--color-text)}.mapboxgl-ctrl-group{border:1px solid var(--color-border)!important}.mapboxgl-ctrl-group button{background:#fff!important}.mapboxgl-ctrl-group button:hover{background:var(--color-bg-alt)!important}.logo-link,.logo-link:hover{text-decoration:none}.logo-flx{font-family:var(--font-display);font-size:54px;font-weight:700;font-style:italic;letter-spacing:-.02em}.logo-flx,.logo-guide{color:var(--color-text);line-height:1}.logo-guide{font-family:var(--font-body);font-size:27px;font-weight:100;letter-spacing:.02em}.logo-small .logo-flx{font-size:28px}.logo-small .logo-guide{font-size:14px}.site-header{background:var(--color-bg);border-bottom:1px solid var(--color-border)}.header-top{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-xl);padding-bottom:var(--space-lg);max-width:var(--max-width);margin:0 auto;box-sizing:border-box;width:100%}.logo{display:inline-flex;align-items:baseline;gap:0;line-height:1}.header-right{display:flex;align-items:center;gap:var(--space-lg)}.header-search{position:relative}.search-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;color:var(--color-text-muted);transition:color .15s ease;border-radius:var(--radius-sm)}.search-btn:hover{color:var(--color-text)}.search-icon{width:20px;height:20px}.header-nav{background:var(--color-bg);border-top:1px solid var(--color-border)}.header-nav-inner{justify-content:space-between;padding:var(--space-sm) var(--space-xl);max-width:var(--max-width);margin:0 auto}.header-nav-inner,.nav-links{display:flex;align-items:center}.nav-links{justify-content:center;gap:var(--space-3xl);flex:1 1}.nav-link{font-family:var(--font-body);font-size:15px;font-weight:500;color:var(--color-text);text-decoration:none;padding:var(--space-xs) 0;transition:color .15s ease;min-height:40px;display:inline-flex;align-items:center}.nav-link:hover{text-decoration:none}.nav-link.active,.nav-link:hover{color:var(--color-accent)}.nav-search,.nav-search-btn{display:flex;align-items:center}.nav-search-btn{width:40px;height:40px;justify-content:center;background:transparent;border:none;cursor:pointer;color:var(--color-text-muted);transition:color .15s ease}.nav-search-btn:hover{color:var(--color-text)}.nav-search-icon{width:18px;height:18px}.nav-search-form{display:flex;align-items:center;gap:var(--space-xs)}.nav-search-input{width:160px;height:36px;padding:0 var(--space-sm);font-family:var(--font-body);font-size:14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-text);outline:none;transition:border-color .15s ease}.nav-search-input:focus{border-color:var(--color-text-muted)}.nav-search-input::placeholder{color:var(--color-text-light)}.nav-search-go{height:36px;padding:0 var(--space-md);font-family:var(--font-body);font-size:14px;font-weight:500;background:var(--color-text);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color .15s ease}.nav-search-go:hover{background:var(--color-text-muted)}.drawer-search{padding:var(--space-md) var(--space-xl);border-bottom:1px solid var(--color-border)}.nav-search-drawer{width:100%}.nav-search-drawer .nav-search-btn{width:100%;justify-content:flex-start;gap:var(--space-sm);color:var(--color-text-muted);font-family:var(--font-body);font-size:15px}.nav-search-drawer .nav-search-btn:after{content:"Search..."}.nav-search-drawer .nav-search-form{width:100%}.nav-search-drawer .nav-search-input{flex:1 1;width:auto}.mobile-menu-btn{display:none;width:44px;height:44px;padding:0;border:none;background:transparent;cursor:pointer;align-items:center;justify-content:center;color:var(--color-text)}.hamburger-icon{width:20px;height:14px;display:flex;flex-direction:column;justify-content:space-between}.hamburger-icon span{display:block;height:1px;background:currentColor}.minimal-header{position:absolute;top:var(--space-lg);left:var(--space-lg);z-index:50;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-sm) var(--space-md)}.minimal-header-link{display:flex;align-items:center;gap:var(--space-sm);text-decoration:none;min-height:44px;padding:var(--space-xs) 0}.minimal-header-link:hover{text-decoration:none}.minimal-header-back{font-family:var(--font-body);font-size:12px;font-weight:400;color:var(--color-text-muted)}.drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:200;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.drawer-overlay.open{opacity:1;visibility:visible}.drawer{position:fixed;top:0;left:0;bottom:0;width:280px;background:var(--color-bg);z-index:201;transform:translateX(-100%);transition:transform .2s ease-out;display:flex;flex-direction:column}.drawer.open{transform:translateX(0)}.drawer-header{justify-content:space-between;padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--color-border)}.drawer-close,.drawer-header{display:flex;align-items:center}.drawer-close{width:44px;height:44px;justify-content:center;border:none;background:transparent;cursor:pointer;color:var(--color-text-muted);font-size:24px}.drawer-close:hover{color:var(--color-text)}.drawer-nav{flex:1 1;padding:var(--space-lg) 0;overflow-y:auto}.drawer-section{padding:var(--space-md) var(--space-xl)}.drawer-section-title{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-light);margin-bottom:var(--space-md)}.drawer-link,.drawer-section-title{font-family:var(--font-body);font-weight:400}.drawer-link{display:flex;align-items:center;padding:var(--space-md) var(--space-xl);font-size:15px;color:var(--color-text);text-decoration:none;min-height:44px;transition:color .15s ease}.drawer-link:hover{text-decoration:none}.drawer-link.active,.drawer-link:hover{color:var(--color-accent)}.drawer-divider{height:1px;background:var(--color-border);margin:var(--space-md) var(--space-xl)}.site-footer{background:var(--color-bg);border-top:1px solid var(--color-border);padding:var(--space-3xl) var(--space-xl)}.footer-inner{max-width:var(--max-width);margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-lg)}.footer-copyright{font-family:var(--font-body);font-size:13px;font-weight:300;color:var(--color-text-muted)}.footer-links{display:flex;gap:var(--space-xl)}.footer-link{font-family:var(--font-body);font-size:13px;font-weight:400;color:var(--color-text-muted);text-decoration:none;padding:var(--space-sm) 0;min-height:44px;display:inline-flex;align-items:center}.footer-link:hover{color:var(--color-text)}.weather-widget{display:flex;flex-direction:column;align-items:flex-start;font-family:var(--font-body);font-size:12px;font-weight:400;color:var(--color-text-muted);line-height:1.4;gap:2px}.weather-date,.weather-row{white-space:nowrap}.weather-row{display:flex;align-items:center;gap:var(--space-xs);opacity:0;transition:opacity .3s ease}.weather-row.visible{opacity:1}.weather-icon{font-size:14px;line-height:1}.weather-city,.weather-temp{font-weight:400}.weather-sun{display:flex;gap:var(--space-sm);white-space:nowrap}.sun-rise,.sun-set{font-weight:400}.weather-widget-drawer{padding:var(--space-lg) var(--space-xl);border-top:1px solid var(--color-border);font-size:13px;gap:var(--space-xs)}.weather-widget-drawer .weather-row{gap:var(--space-sm)}.weather-widget-drawer .weather-icon{font-size:16px}.weather-widget-drawer .weather-sun{gap:var(--space-md)}@media (max-width:768px){.header-nav{display:none}.mobile-menu-btn{display:flex}.header-right,.nav-search:not(.nav-search-drawer){display:none}.header-top{padding:var(--space-md) var(--space-md)}.footer-inner{flex-direction:column;text-align:center}.footer-links{gap:var(--space-lg)}.minimal-header{top:var(--space-md);left:var(--space-md);padding:var(--space-xs) var(--space-sm)}.logo-flx{font-size:44px}.logo-guide{font-size:22px}}.page-container{min-height:100vh;display:flex;flex-direction:column;max-width:100%;overflow-x:hidden}.page-container main{flex:1 1}.homepage{max-width:var(--max-width);margin:0 auto;padding:var(--space-3xl) var(--space-xl);box-sizing:border-box;width:100%}.homepage-grid{display:grid;grid-template-columns:2fr 1fr;grid-gap:var(--space-3xl);gap:var(--space-3xl);align-items:start}.articles-column{min-width:0}.featured-article{margin-bottom:calc(var(--space-xl) * 1.2)}.featured-article-image{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--color-bg-alt);margin-bottom:var(--space-xl)}.featured-article-meta{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.featured-article-meta .meta-separator{color:var(--color-text-light)}.featured-article-title{font-family:var(--font-display);font-size:36px;font-weight:400;line-height:1.15;margin-bottom:var(--space-md);letter-spacing:-.02em;word-wrap:break-word;overflow-wrap:break-word}.featured-article-title a{color:var(--color-text);text-decoration:none}.featured-article-title a:hover{color:var(--color-accent)}.featured-article-summary{font-size:17px;font-weight:300;line-height:1.6;word-wrap:break-word;overflow-wrap:break-word}.article-category,.featured-article-summary{font-family:var(--font-body);color:var(--color-text-muted)}.article-category{font-size:11px;font-weight:400;text-transform:uppercase;letter-spacing:.1em}.article-category.wine,.category-wine{color:#722f37}.article-category.beer,.category-beer{color:#b8860b}.article-category.cider,.category-cider{color:#8db600}.article-date{font-family:var(--font-body);font-size:13px;font-weight:300}.article-date,.meta-separator{color:var(--color-text-light)}.section-header{margin-bottom:var(--space-xl)}.section-title{font-family:var(--font-body);font-size:11px;font-weight:400;text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-muted);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border);margin-bottom:0}.article-list-item{padding:var(--space-xl) 0;border-bottom:1px solid var(--color-border)}.article-list-meta{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.article-list-title{font-family:var(--font-display);font-size:22px;font-weight:400;line-height:1.25;margin:0}.article-list-title a{color:var(--color-text);text-decoration:none}.article-list-title a:hover{color:var(--color-accent)}.article-list-summary{font-family:var(--font-body);font-size:15px;font-weight:300;line-height:1.5;color:var(--color-text-muted);margin-top:var(--space-sm)}.sidebar-column{position:-webkit-sticky;position:sticky;top:var(--space-xl)}.trip-planner-promo{padding-bottom:var(--space-3xl);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-3xl)}.promo-label{font-family:var(--font-body);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-light)}.promo-label,.promo-title{font-weight:400;margin-bottom:var(--space-md)}.promo-title{font-family:var(--font-display);font-size:24px}.promo-description{font-family:var(--font-body);font-size:15px;font-weight:300;line-height:1.5;color:var(--color-text-muted);margin-bottom:var(--space-xl)}.promo-stats{display:flex;gap:var(--space-xl);margin-bottom:var(--space-xl)}.promo-stat{text-align:left}.promo-stat-number{display:block;font-family:var(--font-display);font-size:28px;font-weight:400;color:var(--color-text);line-height:1}.promo-stat-label{font-size:11px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.promo-link,.promo-stat-label{font-family:var(--font-body);font-weight:400}.promo-link{display:inline-flex;align-items:center;gap:var(--space-sm);font-size:14px;color:var(--color-text);text-decoration:none;padding:12px 24px;border:1px solid var(--color-border-dark);border-radius:var(--radius-sm);transition:all .15s ease}.promo-link:hover{border-color:var(--color-text);text-decoration:none}.promo-link-arrow{transition:transform .15s ease}.promo-link:hover .promo-link-arrow{transform:translateX(3px)}.category-links{padding-top:0}.category-links-title{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-light);margin-bottom:var(--space-lg)}.category-link,.category-links-title{font-family:var(--font-body);font-weight:400}.category-link{display:block;padding:var(--space-md) 0;font-size:15px;color:var(--color-text);text-decoration:none;border-bottom:1px solid var(--color-border);transition:color .15s ease;min-height:44px;display:flex;align-items:center}.category-link:first-of-type{border-top:1px solid var(--color-border)}.category-link:hover{color:var(--color-accent);text-decoration:none}.article-page{max-width:var(--content-width);margin:0 auto;padding:var(--space-xl);padding-top:var(--space-md);box-sizing:border-box;width:100%}.article-header{margin-bottom:var(--space-3xl);text-align:center;max-width:100%}.article-header-meta{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-bottom:var(--space-md)}.article-page-title{font-family:var(--font-display);font-size:56px;font-weight:400;line-height:1.1;letter-spacing:-.02em;margin-bottom:var(--space-xl);-webkit-hyphens:auto;hyphens:auto}.article-page-summary,.article-page-title{word-wrap:break-word;overflow-wrap:break-word}.article-page-summary{font-family:var(--font-body);font-size:20px;font-weight:300;line-height:1.5;color:var(--color-text-muted)}.article-featured-figure{margin:0 0 var(--space-3xl) 0}.article-featured-image{display:block;width:100%;max-height:500px;object-fit:cover;border-radius:var(--radius-sm)}.article-featured-caption{font-size:12px;color:var(--color-text-muted);text-align:right;margin-top:var(--space-sm);font-style:italic}.article-content,.prose{font-family:var(--font-body);font-size:18px;font-weight:300;line-height:1.75;color:var(--color-text)}.article-content p,.prose p{margin-bottom:var(--space-xl)}.article-content h2,.prose h2{font-family:var(--font-display);font-size:37px;font-weight:400;margin-top:var(--space-3xl);margin-bottom:var(--space-lg)}.article-content h3,.prose h3{font-family:var(--font-display);font-size:22px;font-weight:400;margin-top:var(--space-2xl);margin-bottom:var(--space-md)}.article-content ol,.article-content ul,.prose ol,.prose ul{margin-bottom:var(--space-xl);padding-left:var(--space-xl)}.article-content li,.prose li{margin-bottom:var(--space-sm)}.article-content a,.prose a{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}.article-content a:hover,.prose a:hover{color:var(--color-accent-hover)}.article-content blockquote,.prose blockquote{border-left:2px solid var(--color-border);padding-left:var(--space-xl);margin:var(--space-2xl) 0;font-style:italic;color:var(--color-text-muted)}.article-content hr,.prose hr{display:none}.article-content img,.prose img{display:block;max-width:100%;height:auto;max-height:500px;object-fit:cover;margin:var(--space-2xl) auto;border-radius:var(--radius-sm)}.article-content p>img,.prose p>img{margin:var(--space-xl) auto var(--space-sm) auto}.article-content p:has(>img):has(>em),.prose p:has(>img):has(>em){margin-bottom:var(--space-2xl)}.article-content p:has(>img)>em,.prose p:has(>img)>em{display:block;text-align:right;font-size:12px;color:var(--color-text-muted);margin-top:var(--space-sm)}.listing-page{max-width:900px;margin:0 auto;padding:var(--space-3xl) var(--space-xl);box-sizing:border-box;width:100%}.listing-header{margin-bottom:var(--space-3xl);padding-bottom:var(--space-xl);border-bottom:1px solid var(--color-border)}.listing-title{font-family:var(--font-display);font-size:42px;font-weight:400;letter-spacing:-.02em;margin-bottom:var(--space-md)}.listing-description{font-family:var(--font-body);font-size:18px;font-weight:300;color:var(--color-text-muted)}.page-title{font-family:var(--font-display);font-size:42px;font-weight:400;letter-spacing:-.02em;margin-bottom:var(--space-md)}.page-description{font-family:var(--font-body);font-size:18px;font-weight:300;color:var(--color-text-muted)}.category-page{max-width:900px;margin:0 auto;padding:var(--space-3xl) var(--space-xl);box-sizing:border-box;width:100%}.category-header{margin-bottom:var(--space-3xl);padding-bottom:var(--space-xl);border-bottom:1px solid var(--color-border)}.category-title{font-family:var(--font-display);font-size:42px;font-weight:400;letter-spacing:-.02em;margin-bottom:var(--space-md)}.category-description{font-family:var(--font-body);font-size:18px;font-weight:300;color:var(--color-text-muted);line-height:1.5}.category-articles{margin-bottom:var(--space-2xl)}.category-cta{margin-top:var(--space-3xl);padding-top:var(--space-3xl);border-top:1px solid var(--color-border)}.category-cta-title{font-family:var(--font-display);font-size:24px;font-weight:400;margin-bottom:var(--space-md)}.category-cta-text{font-family:var(--font-body);font-size:16px;font-weight:300;color:var(--color-text-muted);margin-bottom:var(--space-xl);max-width:500px}.about-page{max-width:700px;margin:0 auto;padding:var(--space-3xl) var(--space-xl)}.about-title{font-family:var(--font-display);font-size:42px;font-weight:400;letter-spacing:-.02em;margin-bottom:var(--space-3xl)}.about-content{font-family:var(--font-body);font-size:18px;font-weight:300;line-height:1.75;color:var(--color-text)}.about-content p{margin-bottom:var(--space-xl)}.about-content h2{font-family:var(--font-display);font-size:28px;font-weight:400;margin-top:var(--space-3xl);margin-bottom:var(--space-lg)}.about-content strong{font-weight:500}@media (max-width:768px){.about-page{padding:var(--space-xl) var(--space-lg)}.about-title{font-size:32px}.about-content{font-size:17px}.about-content h2{font-size:24px}}.search-page{max-width:900px;margin:0 auto}.search-header{margin-bottom:var(--space-3xl);padding-bottom:var(--space-xl);border-bottom:1px solid var(--color-border)}.search-title{font-family:var(--font-display);font-size:42px;font-weight:400;letter-spacing:-.02em;margin-bottom:var(--space-xl)}.search-page-form{display:flex;gap:var(--space-sm)}.search-page-input{flex:1 1;max-width:400px;height:44px;padding:0 var(--space-md);font-family:var(--font-body);font-size:16px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-text);outline:none;transition:border-color .15s ease}.search-page-input:focus{border-color:var(--color-text-muted)}.search-page-input::placeholder{color:var(--color-text-light)}.search-page-btn{height:44px;padding:0 var(--space-xl);font-family:var(--font-body);font-size:15px;font-weight:500;background:var(--color-text);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color .15s ease}.search-page-btn:hover{background:var(--color-text-muted)}.search-results-count{font-family:var(--font-body);font-size:14px;font-weight:400;color:var(--color-text-muted);margin-bottom:var(--space-lg)}.search-loading,.search-no-results,.search-prompt{font-family:var(--font-body);font-size:16px;font-weight:300;color:var(--color-text-muted);text-align:center;padding:var(--space-3xl) var(--space-xl)}.search-no-results p,.search-prompt p{margin-bottom:var(--space-sm)}.search-excerpt mark{background-color:rgba(196,103,62,.2);color:inherit;padding:0 2px;border-radius:2px}.empty-state{padding:var(--space-4xl) var(--space-xl)}.empty-state,.empty-state-text,.no-articles{text-align:center;color:var(--color-text-muted)}.empty-state-text,.no-articles{font-family:var(--font-body);font-size:16px;font-weight:300;padding:var(--space-2xl)}.back-link{display:inline-flex;align-items:center;gap:var(--space-sm);font-family:var(--font-body);font-size:13px;font-weight:400;color:var(--color-text-muted);text-decoration:none;margin-bottom:var(--space-md)}.back-link:hover{color:var(--color-text);text-decoration:none}@media (max-width:900px){.homepage-grid{grid-template-columns:1fr;gap:var(--space-3xl)}.sidebar-column{position:static;border-top:1px solid var(--color-border);padding-top:var(--space-3xl)}.trip-planner-promo{border-bottom:none;padding-bottom:0;margin-bottom:var(--space-xl)}}@media (max-width:768px){.homepage{padding:var(--space-xl) var(--space-lg)}.featured-article-title{font-size:37px}.featured-article-summary{font-size:16px}.article-list-title{font-size:25px}.promo-stats{flex-wrap:wrap;gap:var(--space-lg)}.promo-stat-number{font-size:24px}.article-page-title,.category-title,.listing-title,.page-title{font-size:56px}.article-content h2,.prose h2{font-size:40px}.article-page{padding:var(--space-lg) var(--space-lg)}.article-content,.prose{font-size:17px}.article-header-meta{flex-direction:column;gap:var(--space-sm)}.category-header{text-align:center}.category-page,.listing-page{padding:var(--space-xl) var(--space-lg)}}@media (max-width:480px){.featured-article-title{font-size:32px}.article-list-title{font-size:24px}.article-page-title,.category-title,.listing-title,.page-title,.search-title{font-size:48px}.article-content h2,.prose h2{font-size:35px}.promo-title{font-size:22px}.promo-stats{gap:var(--space-md)}.promo-stats,.search-page-form{flex-direction:column}.search-page-input{max-width:none}.search-page-btn{width:100%}}.app-layout{display:flex;height:100vh;overflow:hidden}.map-container{flex:1 1;position:relative}.sidebar{width:380px;border-left:1px solid var(--color-tan);display:flex;flex-direction:column;overflow:hidden}.app-header,.sidebar{background:var(--color-cream)}.app-header{padding:var(--space-lg);border-bottom:1px solid var(--color-tan)}.app-title{font-family:var(--font-heading);font-size:22px;font-weight:700;color:var(--color-charcoal);margin-bottom:var(--space-xs)}.app-subtitle{font-family:var(--font-body);font-size:14px;color:var(--color-warm-gray)}.search-section{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-tan);background:var(--color-cream)}.search-box{position:relative}.search-box .input{padding-left:40px;background:var(--color-warm-white)}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--color-warm-gray);pointer-events:none}.category-filters{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-top:var(--space-md)}.category-btn{font-family:var(--font-heading);font-size:12px;font-weight:500;padding:6px 12px;border-radius:20px;border:1px solid var(--color-tan);background:var(--color-warm-white);color:var(--color-warm-gray);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.category-btn:hover{border-color:var(--color-burnt-orange);color:var(--color-burnt-orange)}.category-btn.active{color:var(--color-charcoal);font-weight:600}.mode-toggle{display:flex;background:var(--color-warm-white);border:1px solid var(--color-tan);border-radius:var(--radius-md);padding:3px;box-shadow:var(--shadow-card)}.mode-btn{font-family:var(--font-heading);font-size:13px;font-weight:500;padding:8px 16px;border:none;background:transparent;color:var(--color-warm-gray);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.mode-btn:hover{color:var(--color-charcoal)}.mode-btn.active{background:var(--color-burnt-orange);color:#fff}.places-list{flex:1 1;overflow-y:auto;padding:var(--space-md);background:var(--color-cream)}.places-count{font-family:var(--font-heading);font-size:12px;font-weight:500;color:var(--color-warm-gray);padding:var(--space-sm) var(--space-sm)}.place-card,.places-count{margin-bottom:var(--space-sm)}.place-card{background:var(--color-warm-white);border:1px solid var(--color-tan);border-radius:var(--radius-lg);padding:var(--space-md);cursor:pointer;transition:all .2s ease}.place-card:hover{border-color:var(--color-clay);box-shadow:var(--shadow-card)}.place-card.selected{border-color:var(--color-burnt-orange);box-shadow:0 0 0 2px rgba(196,103,62,.15)}.place-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-xs)}.place-name{font-family:var(--font-heading);font-size:14px;font-weight:600;color:var(--color-charcoal);line-height:1.3}.place-category-icon{font-size:14px;margin-left:var(--space-sm)}.place-location{font-family:var(--font-body);font-size:13px;color:var(--color-warm-gray);margin-bottom:var(--space-sm)}.place-meta{gap:var(--space-md)}.place-meta,.place-rating{display:flex;align-items:center}.place-rating{font-family:var(--font-heading);font-size:13px;font-weight:500;color:var(--color-charcoal);gap:4px}.place-rating .star{color:var(--color-warning)}.place-reviews{font-family:var(--font-body);font-size:12px;color:var(--color-warm-gray)}.place-card-actions{margin-top:var(--space-sm)}.trip-header{padding:var(--space-lg);border-bottom:1px solid var(--color-tan);display:flex;justify-content:space-between;align-items:center;background:var(--color-cream)}.trip-title{font-size:18px;font-weight:600;color:var(--color-charcoal)}.trip-count,.trip-title{font-family:var(--font-heading)}.trip-count{font-size:12px;font-weight:500;color:var(--color-warm-gray);background:var(--color-warm-white);border:1px solid var(--color-tan);padding:4px 10px;border-radius:12px}.trip-stops{flex:1 1;overflow-y:auto;padding:var(--space-md);background:var(--color-cream)}.trip-empty{text-align:center;padding:var(--space-2xl);color:var(--color-warm-gray)}.trip-empty-icon{font-size:40px;margin-bottom:var(--space-md);opacity:.5}.trip-empty-text{font-family:var(--font-body);font-size:14px;line-height:1.5;color:var(--color-warm-gray)}.trip-stop{background:var(--color-warm-white);border:1px solid var(--color-tan);border-radius:var(--radius-lg);margin-bottom:var(--space-sm);display:flex;align-items:stretch;cursor:pointer;transition:all .2s ease;overflow:hidden}.trip-stop:hover{border-color:var(--color-clay)}.trip-stop.dragging{opacity:.5;box-shadow:var(--shadow-popup)}.trip-stop-handle{width:36px;background:var(--handle-color,#722f37);display:flex;flex-direction:column;align-items:center;padding:8px 0;gap:6px;cursor:-webkit-grab;cursor:grab;flex-shrink:0;border-radius:var(--radius-lg) 0 0 var(--radius-lg);margin:-1px 0 -1px -1px}.trip-stop-handle:hover{background:var(--handle-hover-color,#5a252c)}.trip-stop-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.trip-stop-number{color:#fff;font-family:var(--font-heading);font-size:14px;font-weight:600;line-height:1}.trip-stop-drag-icon{color:hsla(0,0%,100%,.6)}.trip-stop-info{flex:1 1;min-width:0;padding:var(--space-sm) var(--space-md);display:flex;flex-direction:column;justify-content:center}.trip-stop-name{font-family:var(--font-heading);font-size:14px;font-weight:500;color:var(--color-charcoal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trip-stop-details{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.trip-stop-address{font-family:var(--font-body);font-size:12px;color:var(--color-warm-gray)}.trip-stop-rating{font-family:var(--font-heading);font-size:12px;font-weight:500;color:var(--color-charcoal);display:flex;align-items:center;gap:2px}.trip-stop-rating .star{color:var(--color-warning);font-size:11px}.trip-stop-rating .review-count{color:var(--color-warm-gray);font-weight:400;margin-left:2px}.trip-stop-link{font-family:var(--font-body);font-size:11px;color:var(--color-burnt-orange);text-decoration:none;transition:color .15s ease}.trip-stop-link:hover{color:var(--color-deep-wine);text-decoration:underline}.trip-stop-remove{padding:6px;margin-right:var(--space-sm);border:none;background:transparent;color:var(--color-warm-gray);cursor:pointer;border-radius:var(--radius-sm);transition:all .2s ease;align-self:center}.trip-stop-remove:hover{background:var(--color-cream);color:var(--color-error)}.trip-leg{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);color:var(--color-warm-gray);font-size:12px}.trip-leg-line{width:2px;height:16px;background:var(--color-tan);margin-left:11px}.trip-leg-info{font-family:var(--font-heading);font-size:11px;color:var(--color-warm-gray)}.trip-footer{padding:var(--space-lg);border-top:1px solid var(--color-tan);background:var(--color-warm-white)}.trip-summary{display:flex;justify-content:space-between;margin-bottom:var(--space-md);font-family:var(--font-heading);font-size:13px}.trip-summary-label{color:var(--color-warm-gray)}.trip-summary-value{font-weight:600;color:var(--color-charcoal)}.trip-actions{display:flex;gap:var(--space-sm)}.trip-actions .btn{flex:1 1}.export-buttons{display:flex;gap:var(--space-sm);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-tan)}.export-btn{flex:1 1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;font-family:var(--font-heading);font-size:12px;font-weight:500;border:1px solid var(--color-tan);border-radius:var(--radius-md);background:var(--color-warm-white);color:var(--color-charcoal);cursor:pointer;transition:all .2s ease}.export-btn:hover{border-color:var(--color-clay);background:var(--color-cream)}.export-btn.apple-maps:hover{border-color:#333;color:#333}.export-btn.google-maps:hover{border-color:#4285f4;color:#4285f4}.export-btn svg{flex-shrink:0;opacity:.7}.export-btn:hover svg{opacity:1}.starting-location-section{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-tan);background:var(--color-warm-white)}.starting-location-input{display:flex;flex-direction:column;gap:var(--space-sm)}.autocomplete-wrapper{position:relative;flex:1 1}.autocomplete-wrapper input{width:100%;padding:10px 12px;font-family:var(--font-body);font-size:13px;border:1px solid var(--color-tan);border-radius:var(--radius-md);background:var(--color-cream);color:var(--color-charcoal);outline:none;transition:border-color .2s ease}.autocomplete-wrapper input::placeholder{color:var(--color-warm-gray)}.autocomplete-wrapper input:focus{border-color:var(--color-burnt-orange)}.autocomplete-wrapper input:disabled{opacity:.6}.autocomplete-loading{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--color-warm-gray)}.autocomplete-loading-inline{font-size:12px;color:var(--color-warm-gray);padding:var(--space-xs) 0}.autocomplete-suggestions{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--color-warm-white);border:1px solid var(--color-tan);border-radius:var(--radius-md);box-shadow:var(--shadow-popup);z-index:100;max-height:240px;overflow-y:auto}.autocomplete-suggestion{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:10px 12px;border:none;background:transparent;text-align:left;cursor:pointer;transition:background-color .15s ease}.autocomplete-suggestion:hover{background:var(--color-cream)}.autocomplete-suggestion:not(:last-child){border-bottom:1px solid var(--color-tan)}.suggestion-name{font-family:var(--font-heading);font-size:13px;font-weight:500;color:var(--color-charcoal)}.suggestion-detail{font-family:var(--font-body);font-size:12px;color:var(--color-warm-gray)}.starting-location-set{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);background:var(--color-cream);border-radius:var(--radius-md)}.starting-location-icon{font-size:18px;flex-shrink:0}.starting-location-info{flex:1 1;min-width:0;display:flex;flex-direction:column}.starting-location-label{font-family:var(--font-heading);font-size:10px;font-weight:500;color:var(--color-warm-gray);text-transform:uppercase;letter-spacing:.5px}.starting-location-address{font-family:var(--font-body);font-size:13px;color:var(--color-charcoal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.starting-location-clear{width:24px;height:24px;padding:0;border:none;background:transparent;color:var(--color-warm-gray);font-size:18px;line-height:1;cursor:pointer;border-radius:var(--radius-sm);transition:all .2s ease;flex-shrink:0}.starting-location-clear:hover{background:var(--color-tan);color:var(--color-error)}.geocode-error{font-family:var(--font-body);font-size:12px;color:var(--color-error);margin-top:var(--space-sm)}.auto-generate-section{padding:var(--space-sm) var(--space-lg);border-bottom:1px solid var(--color-tan);background:var(--color-cream)}.auto-generate-row{display:flex;gap:var(--space-sm);align-items:center}.stops-select{padding:6px 10px;font-family:var(--font-heading);font-size:13px;font-weight:500;border:1px solid var(--color-tan);border-radius:var(--radius-md);background:var(--color-warm-white);color:var(--color-charcoal);cursor:pointer;outline:none;transition:border-color .2s ease}.stops-select:hover{border-color:var(--color-clay)}.stops-select:focus{border-color:var(--color-burnt-orange)}.stops-select:disabled{opacity:.6;cursor:not-allowed}.auto-generate-row .btn{flex:1 1}.category-options{display:flex;gap:var(--space-md);margin-top:var(--space-xs)}.category-option{display:flex;align-items:center;gap:4px;cursor:pointer;font-family:var(--font-heading);font-size:12px;color:var(--color-warm-gray)}.category-option input[type=checkbox]{width:14px;height:14px;margin:0;cursor:pointer;accent-color:var(--color-burnt-orange)}.category-option:hover{color:var(--color-charcoal)}.category-option input:disabled{cursor:not-allowed}.starting-marker{cursor:pointer;transition:transform .15s ease}.starting-marker:hover{transform:scale(1.1)}.marker-wrapper{cursor:pointer}.custom-marker{width:16px;height:16px;background:var(--color-deep-wine);border:1px solid #fff;border-radius:50%;box-shadow:0 1px 3px rgba(45,42,38,.3);display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:9px;font-weight:600;color:#fff;transition:transform .15s ease,box-shadow .15s ease}.custom-marker.hover{transform:scale(1.2);box-shadow:0 3px 8px rgba(45,42,38,.35)}.custom-marker.selected{transform:scale(1.3);box-shadow:0 0 0 3px rgba(114,47,55,.3),0 4px 12px rgba(45,42,38,.3)}.custom-marker.in-trip{width:20px;height:20px;border:1px solid #fff;box-shadow:0 0 0 2px var(--marker-glow,rgba(114,47,55,.3)),0 2px 4px rgba(45,42,38,.25)}.custom-marker.in-trip.selected{transform:scale(1.2);box-shadow:0 0 0 4px var(--marker-glow-selected,rgba(114,47,55,.35)),0 4px 12px rgba(45,42,38,.35)}.custom-marker.multi-category{width:18px;height:18px;border:2px solid #fff}.custom-marker.multi-category.hover{transform:scale(1.25)}.custom-marker.multi-category.selected{transform:scale(1.35);box-shadow:0 0 0 3px rgba(114,47,55,.25),0 0 0 3px rgba(184,134,11,.25),0 4px 12px rgba(45,42,38,.3)}.marker-label{position:absolute;left:24px;top:50%;transform:translateY(-50%);background:hsla(0,0%,100%,.95);padding:3px 8px;border-radius:var(--radius-sm);font-family:var(--font-heading);font-size:11px;font-weight:500;color:var(--color-charcoal);white-space:nowrap;box-shadow:0 1px 3px rgba(0,0,0,.15);pointer-events:none;max-width:150px;overflow:hidden;text-overflow:ellipsis}.marker-tooltip .mapboxgl-popup-content{padding:6px 10px!important;background:var(--color-charcoal)!important;border:none!important;border-radius:var(--radius-sm)!important;box-shadow:0 2px 8px rgba(0,0,0,.2)!important}.marker-tooltip .mapboxgl-popup-tip{border-top-color:var(--color-charcoal)!important}.tooltip-content{font-family:var(--font-heading);font-size:12px;font-weight:500;color:#fff;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}.brand-popup .mapboxgl-popup-content{padding:0!important;border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-popup)!important;border:1px solid var(--color-tan)!important;overflow:hidden;background:var(--color-warm-white)!important}.brand-popup .mapboxgl-popup-close-button{font-size:18px;padding:4px 8px;color:var(--color-warm-gray);right:4px;top:4px}.brand-popup .mapboxgl-popup-close-button:hover{background:var(--color-cream);color:var(--color-charcoal);border-radius:var(--radius-sm)}.popup-content{min-width:240px;max-width:280px}.popup-header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-tan);background:var(--color-warm-white)}.popup-name{font-family:var(--font-heading);font-size:15px;font-weight:600;color:var(--color-charcoal);margin-bottom:var(--space-xs);padding-right:var(--space-xl);line-height:1.3}.popup-address{font-family:var(--font-body);font-size:13px;color:var(--color-warm-gray)}.popup-body{padding:var(--space-md) var(--space-lg);background:var(--color-warm-white)}.popup-meta{gap:var(--space-md);margin-bottom:var(--space-md)}.popup-meta,.popup-rating{display:flex;align-items:center}.popup-rating{font-family:var(--font-heading);font-size:14px;font-weight:500;color:var(--color-charcoal);gap:4px}.popup-rating .star{color:var(--color-warning)}.popup-reviews{font-family:var(--font-body);font-size:12px;color:var(--color-warm-gray)}.popup-links{flex-direction:column;font-size:13px}.popup-link,.popup-links{display:flex;gap:var(--space-sm)}.popup-link{align-items:center;color:var(--color-charcoal);font-family:var(--font-body);transition:color .15s ease}.popup-link:hover{color:var(--color-burnt-orange);text-decoration:none}.popup-link svg{color:var(--color-warm-gray);flex-shrink:0}.popup-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--color-tan);background:var(--color-cream)}.popup-footer .btn{width:100%}.mapboxgl-ctrl-group{border-radius:var(--radius-md)!important;box-shadow:var(--shadow-card)!important;border:1px solid var(--color-tan)!important;overflow:hidden}.mapboxgl-ctrl-group button{background:var(--color-warm-white)!important;border-bottom:1px solid var(--color-tan)!important}.mapboxgl-ctrl-group button:last-child{border-bottom:none!important}.mapboxgl-ctrl-group button:hover{background:var(--color-cream)!important}.mapboxgl-ctrl-group button .mapboxgl-ctrl-icon{filter:none}@media (max-width:768px){.app-layout{flex-direction:column}.sidebar{width:100%;border-left:none;border-top:1px solid var(--color-tan)}.map-container,.sidebar{height:50vh}.popup-content{min-width:220px}}