:root { --ref-muted:#646464; --ref-border:#deded8; --ref-paper:#f5f5f0; }
.eyebrow { text-transform:uppercase; letter-spacing:.13em; font:12px ui-monospace,monospace; color:var(--ref-muted); margin-bottom:14px; }
.shop-heading { margin:22px 0 30px; max-width:760px; }
.shop-heading h1 { font-size:clamp(2.2rem,5vw,3.8rem); font-weight:400; letter-spacing:-.035em; line-height:1.05; margin-bottom:18px; }
.shop-heading>p:last-child { font-size:1.1rem; line-height:1.6; color:#555; max-width:620px; }
.shop-scope { display:flex; flex-wrap:wrap; gap:12px 28px; padding:16px 0; border-top:2px solid #222; border-bottom:1px solid var(--ref-border); margin-bottom:22px; }
.shop-scope span { color:var(--ref-muted); }
.shop-form { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px; align-items:end; padding:22px; background:var(--ref-paper); border:1px solid var(--ref-border); }
.shop-form label { display:flex; flex-direction:column; gap:7px; font:12px/1.4 system-ui,sans-serif; color:#444; }
.shop-form .query-label { grid-column:span 4; }
.shop-form label:nth-child(2) { grid-column:span 2; }
.shop-form label:nth-child(6) { grid-column:span 2; }
.shop-form input,.shop-form select,.shop-form button { width:100%; min-height:43px; border:1px solid #aaa; border-radius:2px; background:white; color:#222; padding:9px 10px; font:14px system-ui,sans-serif; }
.shop-form button { background:#222; color:white; border-color:#222; cursor:pointer; }
.shop-form input:focus,.shop-form select:focus,.shop-form button:focus-visible { outline:2px solid #007cb1; outline-offset:2px; }
.reset-search { color:#555; font:13px system-ui,sans-serif; }
.reference-note { color:var(--ref-muted); font:13px/1.65 system-ui,sans-serif; margin:16px 0; }
.reference-note a,.reference-table a { color:#245c78; text-underline-offset:3px; }
#shop-status { margin:25px 0 12px; font:13px ui-monospace,monospace; }
.table-scroll { overflow-x:auto; }
.reference-table { width:100%; border-collapse:collapse; text-align:left; font-size:14px; }
.reference-table th { font:11px/1.5 system-ui,sans-serif; letter-spacing:.045em; text-transform:uppercase; color:#666; padding:12px 10px; border-bottom:2px solid #222; }
.reference-table .sort-link { display:inline-block; padding:5px 0; color:inherit; text-decoration:none; }
.reference-table .sort-link:hover { color:#245c78; text-decoration:underline; }
.reference-table .sort-link:focus-visible { outline:2px solid #007cb1; outline-offset:3px; }
.reference-table .sort-link span { display:inline-block; min-width:1em; color:#245c78; }
.reference-table th[aria-sort] { color:#222; background:var(--ref-paper); }
.reference-table td { padding:17px 10px; vertical-align:top; border-bottom:1px solid var(--ref-border); line-height:1.45; }
.reference-table td:first-child { min-width:190px; }
.reference-table td:last-child { min-width:155px; }
.reference-table small { display:block; color:var(--ref-muted); font:11px/1.55 system-ui,sans-serif; margin-top:5px; }
.reference-table strong { font-weight:500; }
.reference-table .price-cell { min-width:140px; font-variant-numeric:tabular-nums; }
.elid-reference { display:block; width:fit-content; margin-top:8px; font:11px ui-monospace,monospace; }
.shop-pagination { display:flex; justify-content:space-between; gap:20px; margin:24px 0; }
.shop-pagination a { border:1px solid #bbb; padding:10px 18px; color:#222; text-decoration:none; }
.producer-price { position:relative; flex:0 0 155px; min-width:0; width:155px; max-width:155px; padding:3px 0 3px 6px; margin:0 0 0 14px; line-height:1.3; text-align:right; font-family:inherit; }
.producer-price .rrp-native-link { display:block; color:inherit; text-decoration:none; font-size:.95rem; font-variant-numeric:tabular-nums; }
.producer-price small { display:block; font:inherit; font-size:.7rem; line-height:1.4; color:inherit; }
.producer-price abbr { text-decoration:none; }
.rrp-conversions { display:block; white-space:nowrap; margin:2px 0; font-size:.55rem; font-variant-numeric:tabular-nums; }
.rrp-conversions data { white-space:nowrap; }
.pricing-table .rrp-conversions { font-weight:400; }
.shop-conversions { display:block; white-space:nowrap; margin:2px 0; font:10px/1.5 system-ui,sans-serif; font-variant-numeric:tabular-nums; }
.shop-conversions data { white-space:nowrap; }
.producer-price .rrp-scope { font-size:.64rem; white-space:nowrap; }
.rrp-tooltip { visibility:hidden; position:absolute; top:100%; right:0; width:270px; max-width:calc(100vw - 48px); padding:8px 10px; border:1px solid #777; background:#fff; color:#222; text-align:left; font-size:.75rem; line-height:1.5; z-index:20; box-shadow:0 2px 6px #0002; }
.producer-price:hover .rrp-tooltip,.producer-price:focus-within .rrp-tooltip { visibility:visible; }
.rrp-tooltip a { color:inherit; }
.rrp-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin:16px 0; }
.rrp-card { background:var(--ref-paper); border-top:2px solid #354e3d; padding:16px; }
.rrp-card .rrp-value { display:block; font-size:1.5rem; font-variant-numeric:tabular-nums; margin:7px 0; }
.rrp-card .rrp-label { font:11px ui-monospace,monospace; color:#555; }
.rrp-card small { display:block; color:#666; font:11px/1.6 system-ui,sans-serif; }
.rrp-card a { color:#245c78; }
.fact-sources { font:11px/1.6 'Helvetica Neue',Helvetica,Arial,sans-serif; padding:8px 0; }
.fact-sources a { color:inherit; white-space:nowrap; }
.pricing-box { margin:0 0 28px; color:#000; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; }
.pricing-body { border:2px solid #000; border-top:none; padding:0 4px; background:#fff; }
.pricing-table { width:100%; border-collapse:collapse; text-align:left; font-size:.75rem; line-height:1.3; }
.pricing-table th,.pricing-table td { padding:5px 4px; vertical-align:top; border-bottom:1px solid #000; color:#000; }
.pricing-table thead th { font-weight:700; font-size:.65rem; border-bottom:3px solid #000; }
.pricing-table tbody th { font-weight:700; }
.pricing-table .pricing-amount { text-align:right; font-variant-numeric:tabular-nums; font-weight:700; }
.pricing-table .pricing-source { text-align:right; }
.pricing-box .table-scroll { overflow:visible; }
.pricing-table .pricing-vintage { white-space:nowrap; }
.pricing-table small { display:block; font-family:inherit; font-size:.65rem; font-weight:400; line-height:1.4; color:inherit; }
.pricing-table a,.pricing-note a { color:inherit; text-underline-offset:2px; }
.pricing-table tr:last-child>* { border-bottom:none; }
.pricing-table .rrp-row+.shop-price-row>* { border-top:3px solid #000; }
.pricing-note { margin:0; padding:5px 4px; border-top:1px solid #000; font-size:.7rem; line-height:1.4; }
.wine-actions { margin:8px 0 20px; text-align:right; font:11px/1.6 'Helvetica Neue',Helvetica,Arial,sans-serif; }
.wine-actions a { color:inherit; text-underline-offset:3px; }
.compare-add:focus-visible,#compare-tray a:focus-visible,#compare-tray button:focus-visible { outline:2px solid #007cb1; outline-offset:3px; }
#compare-tray[hidden] { display:none; }
#compare-tray { position:fixed; bottom:0; left:0; right:0; z-index:1500; display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:10px 16px; background:linear-gradient(100deg,#fceee7,#fae9ed 32%,#e9f5ed 68%,#e6f2fa); border-top:0; padding:16px 16px 12px; font:12px/1.4 'Helvetica Neue',Helvetica,Arial,sans-serif; box-shadow:0 -3px 12px #0002; }
#compare-tray::before { content:''; position:absolute; top:0; left:0; right:0; height:4px; background:linear-gradient(90deg,#e06a44,#c92d50 33%,#20985c 66%,#007cb1); }
#compare-tray a { color:#000; }
.compare-slot { display:inline-flex; align-items:center; gap:8px; padding:4px 7px; border:1px solid #0002; background:#ffffffe0; font-family:ui-monospace,monospace; }
#compare-tray button { cursor:pointer; padding:4px 6px; background:white; border:1px solid #888; color:#000; font:inherit; }
#compare-tray .compare-open { background:#000; color:#fff; padding:7px 10px; text-decoration:none; }
body.has-compare-tray { padding-bottom:125px; }
.comparison-help { margin:12px 0; font-size:.85rem; }
@media(max-width:640px) {
 .shop-form { grid-template-columns:repeat(2,minmax(0,1fr)); padding:16px; }
 .shop-form .query-label,.shop-form label:nth-child(2),.shop-form label:nth-child(6) { grid-column:span 2; }
 .shop-form button { grid-column:span 2; }
 .producer-price { margin-left:0; flex:1 1 100%; width:100%; max-width:none; padding:5px 0; }
 .pricing-table th,.pricing-table td { padding:5px 3px; }
 .pricing-table td:last-child { overflow-wrap:anywhere; }
 .pricing-table,.pricing-table tbody { display:block; }
 .pricing-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
 .pricing-table tbody tr { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2px 10px; padding:6px 3px; border-bottom:1px solid #000; }
 .pricing-table tbody tr>* { border:0; padding:0; }
 .pricing-table tbody th { grid-column:1; grid-row:1; }
 .pricing-table tbody td:nth-child(2) { grid-column:1; grid-row:2; }
 .pricing-table tbody .pricing-amount { grid-column:2; grid-row:1 / 3; }
 .pricing-table tbody td:last-child { grid-column:1 / -1; grid-row:3; }
 .pricing-table tbody td:nth-child(2) small,.pricing-table tbody td:last-child small { display:inline; }
 .pricing-table tbody td:nth-child(2) small::before,.pricing-table tbody td:last-child small::before { content:' · '; }
 .pricing-table .rrp-row+.shop-price-row { border-top:2px solid #000; }
 .pricing-table .rrp-row+.shop-price-row>* { border-top:0; }
 .pricing-table tbody tr:last-child { border-bottom:0; }
 .reference-table td { padding:13px 8px; }
}

/* Compact observation dates and shared section navigation. */
.pricing-table .price-observed { display:block; margin-top:2px; color:#666; font-size:9px; font-weight:400; line-height:1.2; white-space:nowrap; font-variant-numeric:tabular-nums; }
footer.site-footer { box-sizing:border-box; max-width:1000px; margin:48px auto 0; padding:24px 20px 28px; border-top:1px solid #ddd; text-align:left; color:#555; font:12px/1.6 system-ui,sans-serif; }
footer.site-footer nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
footer.site-footer h2 { margin:0 0 7px; padding:0; border:0; background:none; color:#333; font:600 12px/1.5 system-ui,sans-serif; text-transform:none; letter-spacing:normal; }
footer.site-footer ul { list-style:none; margin:0; padding:0; }
footer.site-footer li { margin:0; padding:2px 0; }
footer.site-footer a { color:inherit; text-decoration:none; }
footer.site-footer a:hover { text-decoration:underline; }
footer.site-footer a:focus-visible { outline:2px solid #007cb1; outline-offset:3px; }
@media(max-width:600px) {
 footer.site-footer nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

.api-page { margin:0; background:#fefefe; color:#1a1a1a; font:16px/1.65 ui-serif,Georgia,serif; }
.api-container { max-width:960px; margin:auto; padding:24px 20px 50px; }
.api-contact { border:1px solid #d8d8d0; border-left:3px solid #222; background:#f5f5f0; padding:16px 20px; font:14px/1.6 system-ui,sans-serif; }
.api-page a { color:#245c78; text-underline-offset:3px; }
.api-breadcrumb { margin:26px 0; font:13px system-ui,sans-serif; color:#666; }
.api-page .shop-heading { margin:35px 0; }
.api-page .shop-heading h1 { margin:0 0 22px; }
.api-sections { display:flex; flex-wrap:wrap; gap:10px 24px; font:13px system-ui,sans-serif; padding:4px 0 22px; }
.api-page section { padding:24px 0; border-top:1px solid #deded8; scroll-margin-top:20px; }
.api-page h2 { font-size:28px; line-height:1.2; font-weight:400; margin:0 0 20px; }
.api-page h3 { font-size:19px; font-weight:400; margin:24px 0 12px; overflow-wrap:anywhere; }
.api-page p { margin:12px 0; }
.api-page code { font:12px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace; overflow-wrap:anywhere; }
.api-page pre { background:#f5f5f0; border:1px solid #deded8; padding:20px; overflow-x:auto; line-height:1.6; }
.api-page pre code { overflow-wrap:normal; }
.api-method { font:11px ui-monospace,monospace; background:#e9eee8; padding:5px 7px; margin-right:5px; }
.api-field-list { font:12px/2 ui-monospace,monospace; overflow-wrap:anywhere; color:#555; }
.api-field-list code { display:inline-block; margin-right:10px; }
@media(max-width:600px) { .api-container { padding:18px 16px 36px; } .api-page .shop-heading h1 { font-size:2.2rem; } .api-page .reference-table td:first-child { min-width:80px; } .api-contact { padding:13px; } }

.api-caption { color:#646464; font:12px/1.5 system-ui,sans-serif; }
.api-field-group { border-bottom:1px solid #deded8; }
.api-field-group summary { cursor:pointer; padding:15px 0; font:15px/1.5 system-ui,sans-serif; }
.api-field-group summary span { float:right; color:#777; font-size:12px; padding-left:12px; }
.api-field-group summary:focus-visible { outline:2px solid #245c78; outline-offset:3px; }
.api-fields { width:100%; border-collapse:collapse; text-align:left; margin:0 0 16px; }
.api-fields th { color:#666; font:11px/1.5 system-ui,sans-serif; text-transform:uppercase; padding:8px 10px; border-bottom:1px solid #bbb; }
.api-fields td { padding:9px 10px; border-bottom:1px solid #eee; font:12px/1.6 system-ui,sans-serif; vertical-align:top; }
.api-fields td:first-child { width:57%; }
.api-fields td:nth-child(2) { white-space:nowrap; }
.api-page .json-key { color:#235b80; }
.api-page .json-string { color:#376242; }
.api-page .json-literal { color:#875025; }
.api-page .json-number { color:#725088; }
@media(max-width:600px) { .api-fields td,.api-fields th { padding:8px 5px; } .api-fields td:first-child { width:50%; } .api-fields code { font-size:11px; } }
