/* Rhein & Rebe · approved green/gold primary-badge identity. */
:root{--ink:#002d21;--wine:#722432;--paper:#f5efe6;--muted:#56625a;--green:#e5e9dc;--line:#d8d0c2;--olive:#556b2f;--bronze:#876529;--gold:#c9a96b;--stone:#a89f93;--surface:#fffdf8;--font-display:'Montserrat',sans-serif;--font-body:'Source Sans 3',sans-serif}
body{font-family:var(--font-body);font-size:16px;line-height:1.5;background:var(--paper);color:var(--ink)}button,input,select,textarea{font-family:var(--font-body)}h1,h2,h3,h4,.intro h1,.map-heading h2,.card-title h3,.editor-section-title h2,.settings-title h1,.profile-pitch,.v1-popup strong{font-family:var(--font-display);letter-spacing:-.025em;color:var(--ink)}h1{font-weight:500;line-height:1.2}h2,h3,h4{font-weight:600}.intro h1{font-weight:500;line-height:1.2}.intro-copy p{font-family:var(--font-body)}
header,.exploring-map header{height:124px;background:transparent;border-bottom:1px solid #c9a96b44}.brand{line-height:0}.brand-logo,.exploring-map .brand-logo{width:153px;height:104px;object-fit:contain}.header-actions{align-items:center}.header-actions .location-button{background:#fffdf8dc;border:1px solid #d8d0c2}.settings-link{background:var(--surface)!important;border:1px solid var(--line)!important;color:var(--ink)}header nav button{font-size:15px;min-width:70px;color:var(--ink)}header nav button.active{color:var(--ink);border-bottom-color:var(--gold)}#planCount,.bottom-nav [data-plan-count]{background:var(--ink);color:var(--surface)}
.upper-panorama{height:380px;background-image:linear-gradient(0deg,#f5efe6 0%,#f5efe600 70%),linear-gradient(90deg,#f5efe6ed 0%,#f5efe6d9 40%,#f5efe633 100%),url('assets/region-3.jpg')}.upper-panorama>span,.exploring-map .upper-panorama>span{color:#425347;background:#f5efe6eb}.exploring-map .intro h1{font-size:37px;max-width:920px}.search input{background:var(--surface);border-color:var(--line);color:var(--ink)}input::placeholder,textarea::placeholder{color:#69736a;opacity:1}.search input:focus{border-color:var(--olive)}
.chip,.tag-scroll .chip,.more-filter,.view-switch{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.chip.on,.tag-scroll .chip.on,.view-switch button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--surface)}.chip.on .ui-icon{filter:brightness(0) invert(1)}.chip:hover{border-color:var(--olive)}.active-filter-count{background:var(--ink);color:var(--surface)}.more-filter.on .active-filter-count{background:var(--gold);color:var(--ink)}.advanced-filters{border-color:var(--line)}.advanced-filters p,.schedule-note,.data-note,.truth-note{color:var(--muted)}
.cards>.winery-card,.cards>.winery-card:first-child{background:var(--surface);border-color:var(--line);box-shadow:none}.cards>.winery-card:hover{border-color:var(--olive);box-shadow:0 6px 18px #0f3b2e0a}.cards>.winery-card.is-map-selected{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.cards .card-title h3{font-family:var(--font-display);font-size:21px;font-weight:600;line-height:1.25;letter-spacing:-.025em}.winery-media img{filter:saturate(.93) contrast(1.02)}.media-caption,.winery-card .media-caption{background:#0f3b2ee8;color:var(--surface)}.visit-status.published{background:#e5e9dc;color:#354a21}.visit-status.unconfirmed{background:#f0e7d4;color:#5e4924}.card-location,.card-facilities{color:var(--ink)}.card-title .bookmark{background:#f1ece3;color:var(--wine)}.bookmark.is-saved{background:#f0dfe1}.bookmark.is-saved .ui-icon{filter:invert(17%) sepia(29%) saturate(2346%) hue-rotate(312deg) brightness(85%) contrast(92%)}.details-action{color:var(--ink);font-weight:600}.details-action:hover{color:var(--wine)}.winery-card-actions .card-tour{background:var(--surface);color:var(--ink);border:1px solid #a8b19e}.winery-card-actions .card-tour.in-tour{background:var(--ink);border-color:var(--ink);color:var(--surface)}.card-tour.in-tour .ui-icon{filter:brightness(0) invert(1)}
.primary{background:var(--ink);color:var(--surface);border-color:var(--ink);font-weight:600}.primary:hover{background:#0f3b2e;border-color:#0f3b2e}.secondary{color:var(--ink);border-color:var(--line);background:var(--surface)}.secondary:hover{border-color:var(--olive);background:#eeeee2}.text-button,.reset,.point-source,.profile-source-details a{color:var(--ink)}.primary:focus-visible,.secondary:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #876529;outline-offset:3px}::selection{background:#d9c294;color:#0f3b2e}input,textarea{caret-color:var(--ink)}
.v1-pin{background:var(--ink);border-color:var(--surface);box-shadow:0 2px 7px #0f3b2e40}.v1-pin.v1-poi{background:var(--olive)}.v1-pin.v1-selected{outline-color:var(--gold);box-shadow:0 0 0 5px var(--surface)}.v1-tour-check{background:var(--olive);border-color:var(--surface)}.v1-cluster{background:var(--surface);border-color:var(--surface);color:var(--ink);font-family:var(--font-body);font-size:13px}.leaflet-tooltip.v1-name-tag{font-family:var(--font-body);font-size:13px;background:var(--surface);color:var(--ink)}.leaflet-tooltip.v1-name-selected{background:var(--ink);color:var(--surface)}.v1-stop-number{font-family:var(--font-body)}.v1-popup strong{font-size:19px;font-weight:600}.v1-popup>span{font-family:var(--font-body);color:var(--muted)}.v1-key{background:var(--surface)!important;border-color:var(--line);color:var(--ink)}.map-panel,.map-panel.map-expanded{background:var(--paper);border-color:var(--line)}.map-footer{background:var(--surface);color:var(--muted)}.map-footer a{color:var(--ink)}.map-heading .map-region-button,.exploring-map .map-heading .map-region-button{background:var(--surface);color:var(--ink);border-color:var(--line)}.map-tour-count{background:#e5e9dc;color:var(--ink)}.v1-expand,.location-control button{background:var(--surface)}.location-control .has-position{background:#e2eadd}.mobile-map-button{background:var(--ink);border:1px solid #c9a96b77;color:var(--surface)}
dialog#profile{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.bundled-profile h2{font-size:30px;font-weight:500}.profile-pitch{font-family:var(--font-body);font-size:17px;letter-spacing:0}.visit-essentials,.owner-package,.preview-mode{background:#edf0e5}.opening-title h3{font-family:var(--font-display);font-size:19px}.quick-contact a{background:var(--surface);color:var(--ink);border-color:var(--line)}.hours-source,.opening-note{color:var(--muted)}.sticky-profile-actions{background:var(--surface);border-color:var(--line)}.profile-source-details,.local-menu{border-color:var(--line)}.availability-note,.editor-draft-label,.editor-local-label{color:#665126}.dialog-close{background:var(--surface);color:var(--ink)}
.bottom-nav{background:var(--surface);border-color:#c9a96b77}.bottom-nav button{color:var(--muted);font-size:12px}.bottom-nav button.active{color:var(--ink);font-weight:700}.bottom-nav button.active .ui-icon{filter:invert(15%) sepia(18%) saturate(1583%) hue-rotate(111deg) brightness(91%) contrast(93%)}.bottom-nav button.active:before{background:var(--gold)}footer{background:var(--paper);border-color:var(--line);color:var(--muted)}
.plan-row,.planner,.tour-stop,.plan-stop{border-color:var(--line)}.plan-time,.time,.planner time{color:var(--ink);font-variant-numeric:tabular-nums}.plan-options select,.plan-options input{background:var(--surface);border-color:var(--line)}.tour-idea,.plan-note,.plan-disclaimer{background:#ebe9dd;color:#46533d}.tour-stop.checked,.plan-stop.checked{background:#e5e9dc}.empty{background:#eee9de}.empty h3{color:var(--ink)}
.editor-section-title h2{color:var(--ink);font-size:23px}.editor-section-title>span{background:var(--ink);color:var(--gold)}.editor-eyebrow{display:none}.editor-heading p{color:var(--muted)}.editor-field input,.editor-field textarea,.editor-field select,.hours-editor input,.hours-editor select{font-family:var(--font-body);background:var(--surface);border-color:var(--line);color:var(--ink)}input[type=checkbox],input[type=radio]{accent-color:var(--ink)}.editor-tiers label.selected{border-color:var(--ink);background:#edf0e5}.editor-tiers label strong{color:var(--ink)}.editor-savebar{background:var(--paper);border-color:var(--line)}.editor-feature,.editor-detail-offer{background:#f0eadc;color:var(--ink)}.editor-section,.setting-group,.provider-details{border-color:var(--line)}.editor-card-intro,.editor-preview-note,.editor-scope{color:var(--muted)}.editor-field small{color:var(--muted)}.new-winery-page section{border-color:var(--line)}.appearance-choice.selected{border-color:var(--ink);background:#edf0e5}.settings-save{color:var(--muted)}#toast{background:var(--ink);color:var(--surface);border:1px solid #c9a96b66}
@media(min-width:721px){.exploring-map .intro{margin-top:10px}.exploring-map .upper-panorama>span{top:168px}.editing-winery header .brand-logo{width:145px;height:100px}.cards .winery-card .winery-media{height:142px}.exploring-map #wineryMap{height:clamp(520px,calc(100dvh - 365px),820px)}}
@media(max-width:720px){header,.mobile-map-active header{height:110px;min-height:110px;padding:5px 14px;background:var(--paper)}.brand-logo,.mobile-map-active .brand-logo{width:148px;height:100px;object-fit:contain}.header-actions .location-button{background:none;border:0;font-size:12px}.header-actions{gap:10px}.settings-link,.mobile-map-active .settings-link{width:38px;height:38px}.intro h1{font-size:27px;font-weight:500}.cards .card-title h3{font-size:17px}.bundled-profile h2{font-size:25px}.opening-title h3{font-size:18px}.editor-section-title h2{font-size:21px}.mobile-map-active .map-footer{background:var(--paper)}.mobile-map-active .map-heading .map-region-button{background:var(--surface)}.mobile-map-active .chip{font-size:13px}.upper-panorama{height:300px;background-image:linear-gradient(0deg,#f5efe6 0%,#f5efe6b3 80%),url('assets/region-3.jpg')}.mobile-map-active .upper-panorama{display:none}.v1-cluster{font-size:12px}.mobile-map-active .v1-key{font-size:11px}.new-winery-heading h1{font-size:27px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Normalize older per-screen serif rules to the approved brand typeface. */
body h1,body h2,body h3,body h4{font-family:var(--font-display)!important}
body p,body label,body input,body select,body textarea,body button,body small,body td,body th,body dt,body dd,body summary{font-family:var(--font-body)!important}
