@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Libre+Caslon+Display&display=swap');
:root{--paper:#f4eedf;--ink:#33382f;--muted:#777767;--wine:#773b3d;--line:#d7ceba;--serif:'Libre Caslon Display',Georgia,serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 'DM Sans',sans-serif}button,select{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--wine)}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #a36545;outline-offset:3px}header{height:100px;padding:20px 36px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:16px;font:30px/1.1 var(--serif)}.monogram{border:1px solid #877856;outline:1px solid #877856;outline-offset:4px;border-radius:50%;width:48px;height:48px;display:grid;place-items:center;font-size:22px}.brand small{display:block;margin-top:8px;font:11px/1.3 'DM Sans',sans-serif;letter-spacing:2px}.edition{font:18px/1.35 var(--serif);text-align:center;color:#737260}.years{font-size:13px;letter-spacing:2px}main{display:grid;grid-template-columns:380px 1fr;height:calc(100dvh - 100px);min-height:580px}.journal{overflow:auto;border-right:1px solid var(--line);scrollbar-width:thin;scrollbar-color:#c9bda5 transparent}.intro{padding:31px 30px 23px}.eyebrow{font-size:12px;letter-spacing:2px;color:var(--wine);margin:0 0 18px}h1{font:48px/.99 var(--serif);letter-spacing:-1px;margin:0 0 20px}.lede{color:#777465;font-size:15px;line-height:1.6;margin:0}.totals{display:flex;gap:22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;margin-top:22px;font-size:13px;color:var(--muted)}.totals b{font:27px var(--serif);color:var(--ink);margin-right:4px}.browse{padding:0 30px 25px}label{font-size:13px;display:block;margin-bottom:7px}select{background:#f9f5eb;border:1px solid var(--line);padding:10px 28px 10px 12px;border-radius:0;max-width:100%;font-size:14px}#region{width:100%}.journal-heading{display:flex;justify-content:space-between;align-items:center;margin-top:25px;gap:12px}.journal-heading h2{font:29px var(--serif);margin:0}.journal-heading select{border:0;background:none;padding:8px 0;font-size:13px}.meta{font-size:12px;color:var(--muted);margin:4px 0 20px}.date-group{margin-bottom:23px}.date-group h3{font-size:12px;font-weight:500;letter-spacing:1px;border-bottom:1px solid var(--line);padding-bottom:9px;color:#827760}.entry{border:0;background:none;display:flex;align-items:center;width:100%;text-align:left;padding:9px 0;gap:12px;line-height:1.35}.entry:hover,.entry.active{color:var(--wine)}.entry .dot{width:7px;height:7px;background:var(--wine);border-radius:50%;flex-shrink:0;box-shadow:0 0 0 4px #773b3d0b}.entry .entry-title{font:20px var(--serif)}.entry small{display:block;font-size:12px;color:var(--muted);margin-top:3px}.entry .arrow{margin-left:auto;color:#a39a83}.journal-foot{padding:22px 30px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.journal-foot button{display:block;margin-top:12px;border:0;border-bottom:1px solid #b8a990;padding:0;background:none;font-size:13px}.atlas{position:relative;overflow:hidden;background:#e9e4d4;isolation:isolate}.atlas:after{content:'';position:absolute;inset:12px;border:1px solid #76684966;pointer-events:none;z-index:500}#map{position:absolute;z-index:0;inset:0;background:#e4e2d0}.leaflet-tile-pane{filter:sepia(.58) saturate(.48) contrast(.94)}.map-title{position:absolute;top:33px;left:36px;z-index:500;pointer-events:none;text-shadow:0 1px 4px #f4eedf,0 0 15px #f4eedf;background:#f4eedfcc;padding:9px 14px;border:1px solid #96866655}.map-title span{font:22px var(--serif);letter-spacing:4px}.map-title small{display:block;font-size:12px;letter-spacing:.6px;text-align:center;margin-top:3px}.reset{position:absolute;right:34px;top:34px;z-index:500;background:var(--paper);border:1px solid #b7ac95;padding:9px 12px;font-size:14px;box-shadow:0 2px 10px #3027190c}.compass{position:absolute;bottom:70px;left:42px;text-align:center;z-index:500;pointer-events:none;color:#5a604b}.compass span{font:13px Georgia}.compass div{font-size:65px;line-height:1}.map-key{position:absolute;left:50%;transform:translateX(-50%);bottom:32px;display:flex;align-items:center;white-space:nowrap;gap:8px;z-index:500;font-size:12px;background:#f4eedfe8;padding:8px 13px;border:1px solid #96866655}.key-dot{background:var(--wine);height:8px;width:8px;border-radius:50%}.key-repeat{margin-left:10px;border:1px solid var(--wine);color:var(--wine);width:18px;height:18px;display:grid;place-items:center;border-radius:50%;font-size:11px}.leaflet-control-zoom{border:1px solid #b7ac95!important;border-radius:0!important;box-shadow:none!important;margin:95px 34px 0 0!important}.leaflet-control-zoom a{background:var(--paper)!important;color:var(--ink)!important;border-radius:0!important}.leaflet-control-attribution{font-size:10px!important;background:#f4eedfcc!important}.leaflet-tooltip{font:14px 'DM Sans',sans-serif;background:var(--paper);border:1px solid #b7ac95;box-shadow:0 3px 10px #332c2220;border-radius:0;color:var(--ink)}.farm-marker{background:var(--wine);border:2px solid #fff6e4;border-radius:50%;box-shadow:0 1px 4px #30261f88;color:#fff6e4;display:grid;place-items:center;font:10px 'DM Sans',sans-serif;transition:box-shadow .2s}.farm-marker.selected{box-shadow:0 0 0 7px #773b3d30,0 1px 5px #30261f88;background:#aa582f}.detail{position:absolute;z-index:600;bottom:35px;right:35px;width:340px;max-height:calc(100% - 125px);overflow:auto;background:#fbf7ec;border:1px solid #bcb098;padding:27px;box-shadow:0 8px 40px #3e33252e}.detail .eyebrow{padding-right:20px;font-size:11px;margin-bottom:12px}.detail h2{font:36px/1 var(--serif);margin:0 0 12px}.detail .location{font-size:14px;color:var(--muted);margin-bottom:20px}.detail h3{font-size:13px;margin:0 0 6px;font-weight:500}.detail .visit{border-top:1px solid var(--line);padding:14px 0}.detail p{font-size:14px;line-height:1.6;margin:7px 0}.detail .stars{letter-spacing:2px;color:#9d773c}.detail a{font-size:13px}.detail .website{display:block;border-top:1px solid var(--line);padding-top:14px;margin-top:7px}.detail .source{display:block;margin-top:12px;color:var(--muted);font-size:11px}.close{position:absolute;top:12px;right:12px;background:none;border:0;font-size:27px;line-height:1;padding:5px}.detail[hidden]{display:none}dialog{border:1px solid #bcb098;background:var(--paper);max-width:540px;padding:36px;color:var(--ink)}dialog::backdrop{background:#20271f75}dialog h2{font:38px var(--serif);margin:10px 0 20px}dialog p{font-size:15px}#map-message{position:absolute;z-index:550;top:110px;left:35px;right:90px;background:var(--paper);padding:14px;font-size:14px;border:1px solid var(--line)}
@media(min-width:1500px){main{grid-template-columns:420px 1fr}.intro,.browse{padding-left:38px;padding-right:38px}h1{font-size:54px}}@media(max-width:900px){header{padding:20px 24px}.edition{display:none}main{grid-template-columns:320px 1fr}.intro,.browse{padding-left:23px;padding-right:23px}h1{font-size:42px}.map-title{left:26px;top:24px}.map-title span{font-size:17px;letter-spacing:2px}.reset{top:100px;right:24px}.leaflet-control-zoom{margin-top:156px!important;margin-right:24px!important}.detail{right:24px;left:24px;width:auto;bottom:60px}.compass{display:none}.map-key{font-size:11px;gap:5px}}
@media(max-width:640px){header{height:85px;padding:18px 20px}.brand{font-size:25px;gap:13px}.brand small{font-size:9px;letter-spacing:1.5px}.monogram{width:37px;height:37px;font-size:18px}.years{display:none}main{display:flex;flex-direction:column;height:auto;min-height:0}.atlas{order:-1;height:58dvh;min-height:380px}.journal{overflow:visible;border:0}.intro{padding-top:27px}h1{font-size:44px}h1 br{display:none}.lede{max-width:400px}.totals{gap:25px;justify-content:flex-start}.map-title{top:24px;left:24px}.reset{top:100px}.reset span{display:none}.map-key{bottom:28px}.detail{max-height:calc(100% - 42px);bottom:21px;top:auto;left:21px;right:21px;padding:23px}.detail h2{font-size:30px}.leaflet-control-zoom{margin-top:155px!important}.journal-heading h2{font-size:32px}.entry{padding:12px 0}.entry .entry-title{font-size:23px}.entry small{font-size:13px}.atlas:after{inset:10px}.journal-foot{padding:22px 23px}.map-key{left:25px;transform:none;right:25px;justify-content:center}dialog{margin:20px;padding:28px}#map-message{left:24px;top:200px;right:24px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Personal journal and small estate portraits */
.lede{font-size:16px}.estate-portrait{display:block;width:64px;height:64px;object-fit:cover;flex:0 0 64px;mix-blend-mode:multiply}.entry-copy{min-width:0}.entry{gap:12px;padding:12px 0}.entry .entry-title{font-size:20px}.entry small{font-size:12px}.entry .arrow{flex-shrink:0}.wine-rating{display:inline-flex;gap:3px;vertical-align:middle;margin-top:5px;color:var(--wine)}.wine-rating svg{width:13px;height:20px;stroke:currentColor;stroke-width:1.35;fill:none;stroke-linecap:round;stroke-linejoin:round}.wine-rating .filled path:not(.stem){fill:#773b3d99}.wine-rating .empty{opacity:.28}.farm-title{display:flex;align-items:center;gap:15px;margin-bottom:12px}.detail .farm-title h2{font-size:31px;margin:0}.portrait-large{width:64px;height:64px}.our-rating{margin:16px 0}.personal-note{font-style:italic}.hours{border-top:1px solid var(--line);padding:15px 0;margin-top:4px}.hours summary{cursor:pointer;font-size:15px;font-weight:500}.hours-schedule h4{font-size:14px;margin:14px 0 5px}.hours-schedule ul{padding:0;list-style:none;margin:7px 0}.hours-schedule li{font-size:14px;line-height:1.7;margin:3px 0}.hours .season-period,.hours .checked{font-size:12px;color:var(--muted)}.hours .source{font-size:12px}.detail .source{font-size:12px}.detail{width:370px}.detail .close{width:34px;height:34px;z-index:2}.brand{white-space:nowrap}.brand small{font-size:12px;letter-spacing:1.6px}.intro .eyebrow{margin-bottom:16px}dialog p{font-size:16px}.journal-foot{font-size:13px}
@media(max-width:900px){.detail{width:auto}.brand{font-size:28px}.brand small{font-size:10px}.entry{gap:10px}.entry .entry-title{font-size:20px}.entry .arrow{display:none}}
@media(max-width:640px){.brand{font-size:27px}.brand small{font-size:10px;letter-spacing:1px}.estate-portrait{width:64px;height:64px;flex-basis:64px}.entry{gap:16px}.entry .entry-title{font-size:23px}.entry small{font-size:13px}.detail .farm-title h2{font-size:28px}.farm-title{padding-right:8px}.intro .lede{max-width:none}h1 br{display:block}}

@media(max-width:640px){.brand{font-size:clamp(22px,6.8vw,27px)}}

/* A personal sign-off at the end of the journal. */
.authors{margin:4px 0;text-align:center}
.authors img{display:block;width:min(100%,260px);height:auto;margin:0 auto 15px;mix-blend-mode:multiply}
.authors figcaption{font-size:13px;line-height:1.6;color:var(--muted)}
.authors figcaption span{display:block}
.authors .authors-names{font:29px/1.2 var(--serif);color:var(--ink);margin-bottom:7px}

/* Scalable grape-bunch identity. */
.brand-mark{display:block;width:56px;height:56px;flex:0 0 56px}
@media(max-width:640px){.brand-mark{width:44px;height:44px;flex-basis:44px}}

/* Compact search and region-first browsing. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.farm-search{border-top:1px solid var(--line);padding-top:18px;margin-top:0}
.farm-search>label{font-weight:500;font-size:14px}
#farm-search{font:inherit;font-size:15px;width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:0;background:#fbf7ec;color:var(--ink)}
#farm-search:focus-visible{outline:2px solid var(--wine);outline-offset:2px}
.filter-pickers{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;align-items:start}
.search-bottom{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:10px;min-height:35px;font-size:11px;color:var(--muted)}
#clear-filters{border:0;background:none;color:var(--wine);padding:4px 0;text-decoration:underline;white-space:nowrap;font-size:12px}
#clear-filters[hidden]{display:none}
.region-group{border-top:1px solid var(--line)}
.region-group:last-child{border-bottom:1px solid var(--line)}
.region-group>summary{list-style:none;display:flex;align-items:center;gap:10px;padding:17px 0;cursor:pointer;font:24px/1.15 var(--serif)}
.region-group>summary::-webkit-details-marker{display:none}
.region-group>summary::before{content:'›';font:23px var(--serif);color:var(--wine);width:10px;flex-shrink:0;transition:transform .15s}
.region-group[open]>summary::before{transform:rotate(90deg)}
.region-group>summary>span{flex:1}.region-group>summary small{font:11px 'DM Sans',sans-serif;color:var(--muted);white-space:nowrap}
.region-farms{padding:0 0 12px 5px}.region-group[open]>summary{padding-bottom:10px}
.empty-state{font-size:14px;color:var(--muted);padding:18px 0}
.farm-wines{border-top:1px solid var(--line);padding:15px 0;margin-top:8px}
.wine-tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.wine-tags span{font-size:12px;border:1px solid var(--line);padding:3px 7px;color:var(--wine)}
.wine-sources summary{cursor:pointer;font-size:12px;color:var(--muted)}
@media(max-width:640px){.region-group>summary{font-size:27px}}

/* Searchable parchment dropdowns, shared by region and wine. */
.filter-pickers{position:relative}.filter-field{min-width:0}.filter-field>label{font-size:12px;margin-bottom:5px}
.filter-field select{width:100%}.filter-field select[hidden]{display:none}
.dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;padding:10px 11px;background:#fbf7ec;border:1px solid #b9ad92;border-radius:3px;text-align:left;font-size:13px}
.dropdown-trigger>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-trigger svg{flex-shrink:0;fill:none;stroke:var(--wine);stroke-width:1.5;transition:transform .15s}
.dropdown-trigger.has-selection{color:var(--wine);border-color:#a78476}.dropdown-trigger:disabled{opacity:.6;cursor:wait}
.is-open .dropdown-trigger{border-color:var(--wine);box-shadow:0 0 0 1px var(--wine)}.is-open .dropdown-trigger svg{transform:rotate(180deg)}
.dropdown-menu{position:absolute;top:calc(100% + 7px);left:0;right:0;z-index:50;background:#fbf7ec;border:1px solid #b9ad92;border-radius:4px;box-shadow:0 8px 25px #3e332529;padding:9px}
.dropdown-menu[hidden]{display:none}.dropdown-search{display:flex;gap:8px;align-items:center;padding:0 10px;border:1px solid var(--line);background:var(--paper);border-radius:2px}
.dropdown-search:focus-within{border-color:var(--wine);outline:1px solid var(--wine)}.dropdown-search svg{flex:0 0 18px;fill:none;stroke:#867660;stroke-width:1.4}
.dropdown-search input{width:100%;min-width:0;height:43px;border:0;outline:0;background:none;font:16px 'DM Sans',sans-serif;color:var(--ink)}
.dropdown-options{position:relative;max-height:240px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c9bda5 transparent;margin-top:7px}
.dropdown-option{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:9px 10px;font-size:14px;line-height:1.4;border-radius:2px;cursor:pointer}
.dropdown-option.is-highlighted,.dropdown-option:hover{background:#ece2cd}.dropdown-option[aria-selected="true"]{color:var(--wine);font-weight:500}.dropdown-tick{visibility:hidden;color:var(--wine)}.dropdown-option[aria-selected="true"] .dropdown-tick{visibility:visible}
.dropdown-group{padding:12px 10px 5px;color:#867660;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:1.2px}
.dropdown-empty{font-size:13px;color:var(--muted);padding:12px 10px;margin:0}
.retry-load{padding:10px 16px;background:#f8f3e8;border:1px solid #8b7355;cursor:pointer}
.farm-practical{border-top:1px solid #d3c7af;margin-top:20px;padding-top:12px}
.farm-practical dl{margin:12px 0;font-size:13px;line-height:1.5}
.farm-practical dl>div{padding:8px 0;border-bottom:1px solid #dfd4be}
.farm-practical dt{font-weight:600;color:#665b48}
.farm-practical dd{margin:3px 0 0}.farm-practical dd small{display:block;margin-top:5px;color:#766c5a}
.farm-practical .unconfirmed{color:#877c68;font-style:italic}
