/* Phone defaults. Layouts expand at 360, 600, 768 and 1100 pixels. */
:root { font-family: Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color: #203b33; background: #f7f8f4; line-height: 1.55; font-synthesis: none; --ink: #203b33; --green: #285b4b; --line: #dce2d9; --muted: #61716a; --paper: #fff; --accent: #e6d7a7; --gutter: 16px; }
* { box-sizing: border-box; }
body { margin: 0; min-width: 0; }
a { color: inherit; text-underline-offset: 4px; touch-action: manipulation; }
button { font: inherit; touch-action: manipulation; min-height: 46px; cursor: pointer; padding: 11px 18px; border: 1px solid var(--line); border-radius: 8px; background: white; color: var(--ink); }
input { font: inherit; touch-action: manipulation; min-height: 46px; width: 100%; padding: 11px 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); }
select { font: inherit; touch-action: manipulation; min-height: 46px; width: 100%; padding: 11px 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); }
button:disabled { opacity: .5; cursor: wait; }
input:focus-visible { outline: 3px solid #c19334; outline-offset: 3px; }
select:focus-visible { outline: 3px solid #c19334; outline-offset: 3px; }
button:focus-visible { outline: 3px solid #c19334; outline-offset: 3px; }
a:focus-visible { outline: 3px solid #c19334; outline-offset: 3px; }
summary:focus-visible { outline: 3px solid #c19334; outline-offset: 3px; }
input[type=checkbox] { width: 20px; height: 20px; min-height: 20px; accent-color: var(--green); flex-shrink: 0; }
.primary { background: var(--green); color: white; border-color: var(--green); font-weight: 650; }
.secondary { background: #fff; }
.logo { text-decoration: none; font-size: 30px; font-weight: 850; letter-spacing: -2px; line-height: 1; }
.logo span { color: #b48a35; }
.site-header { max-width: 1260px; margin: auto; display: flex; align-items: center; justify-content: space-between; padding: 16px max(var(--gutter),env(safe-area-inset-right)) 16px max(var(--gutter),env(safe-area-inset-left)); border-bottom: 1px solid var(--line); gap: 12px; flex-wrap: wrap; }
.site-header nav { display: flex; gap: 16px; }
.site-header nav a { font-size: 14px; font-weight: 600; text-decoration: none; padding: 10px 0; min-height: 44px; display: inline-flex; align-items: center; }
main { max-width: 1260px; margin: auto; padding: 0 max(var(--gutter),env(safe-area-inset-right)) 40px max(var(--gutter),env(safe-area-inset-left)); }
h1 { line-height: 1.14; letter-spacing: -.035em; overflow-wrap: anywhere; }
h2 { line-height: 1.14; letter-spacing: -.035em; font-size: 26px; margin: 8px 0 16px; overflow-wrap: anywhere; }
h3 { line-height: 1.14; letter-spacing: -.035em; font-size: 20px; overflow-wrap: anywhere; }
p { margin: 0 0 16px; }
.hero { padding: 28px 0 20px; max-width: 800px; }
.eyebrow { font-size: 11px; letter-spacing: .1em; font-weight: 750; color: var(--muted); margin: 0 0 12px; }
.hero h1 { font-size: clamp(32px,8vw,44px); font-weight: 750; margin: 0 0 24px; letter-spacing: -.055em; margin-bottom: 20px; }
.hero h1 span { color: #6b8173; }
.hero>p:last-child { color: var(--muted); font-size: 16px; max-width: 590px; }
.search-bar { display: flex; align-items: center; border: 1px solid var(--line); background: white; border-radius: 12px; padding: 5px; gap: 8px; max-width: 820px; box-shadow: 0 3px 15px #243d3305; }
.search-bar>span { font-size: 25px; padding: 0 12px; padding-left: 8px; display: none; }
.search-bar input { border: 0; background: transparent; min-width: 0; padding-left: 10px; font-size: 16px; }
.search-bar button { padding-inline: 14px; font-size: 16px; flex-shrink: 0; }
.categories { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 18px 0 30px; }
.category-tile { position: relative; display: flex; grid-template-columns: 42px 1fr; align-items: start; gap: 5px; text-decoration: none; padding: 16px 10px; background: #e9eee5; border-radius: 12px; flex-direction: column; min-height: 130px; min-width: 0; overflow-wrap: anywhere; }
.category-tile:nth-child(2) { background: #ece8de; }
.category-tile:nth-child(3) { background: #e7ebea; }
.category-tile>span { grid-row: 1/3; font-size: 24px; color: #527060; }
.category-tile strong { font-size: 20px; letter-spacing: -.025em; }
.category-tile small { font-size: 12px; color: var(--muted); line-height: 1.4; }
.category-tile b { position: absolute; right: 8px; top: 8px; font-size: 15px; font-weight: 400; }
.category-tile:hover { box-shadow: inset 0 0 0 2px #9dad9b; }
.browse-controls { margin: 24px 0; }
.filter-toolbar { display: grid; justify-content: space-between; gap: 10px; align-items: center; grid-template-columns: 1fr; }
.filter-toolbar #filter-toggle { display: block; font-size: 16px; min-width: 80px; }
.filter-toolbar select { max-width: none; margin-left: auto; font-size: 16px; width: 100%; min-width: 0; margin: 0; }
.filter-panel { margin-top: 16px; padding: max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); background: #fff; border: 0; border-radius: 0; display: none; grid-template-columns: 1fr; gap: 20px; position: fixed; z-index: 30; inset: 0; margin: 0; overflow-y: auto; overscroll-behavior: contain; height: 100dvh; align-content: start; }
.filter-panel label { font-size: 15px; font-weight: 600; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.filter-panel label.check { flex-direction: row; align-items: center; font-size: 15px; min-height: 46px; }
.filter-panel .small { grid-column: auto; margin: 0; font-size: 13px; }
.filter-actions { grid-column: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 14px; padding: 16px 0 max(16px,env(safe-area-inset-bottom)); position: sticky; bottom: -16px; background: white; border-top: 1px solid var(--line); z-index: 1; }
.panel-title { display: flex; align-items: center; justify-content: space-between; }
.section-heading { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin: 45px 0 12px; margin-top: 28px; flex-wrap: wrap; }
.section-heading h2 { margin-bottom: 0; font-size: 24px; }
.section-heading>a { font-size: 14px; font-weight: 650; white-space: normal; min-height: 44px; display: inline-flex; align-items: center; }
.product-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.product-card { display: flex; flex-direction: column; position: relative; border: 1px solid var(--line); border-radius: 13px; background: #fff; overflow: hidden; min-width: 0; transition: box-shadow .15s,transform .15s; }
.product-card:hover { box-shadow: 0 8px 24px #263e3310; transform: none; }
.product-image { display: grid; place-items: center; background: #f0f2ec; height: 190px; position: relative; overflow: hidden; }
.product-image img { height: 155px; width: 80%; object-fit: contain; mix-blend-mode: multiply; }
.product-image .placeholder { font-size: 48px; color: #98a699; line-height: 1; }
.product-image .badge { position: absolute; top: 9px; left: 9px; }
.card-body { padding: 13px; display: flex; flex-direction: column; flex: 1; }
.product-card h3 { font-size: 16px; line-height: 1.35; letter-spacing: -.018em; margin: 0 0 8px; min-height: 0; }
.product-card h3 a { text-decoration: none; }
.product-card h3 a:after { content: ""; position: absolute; inset: 0; }
.product-card small { font-size: 12px; }
.product-card .store-line { font-size: 12px; color: var(--muted); margin-top: auto; padding-top: 9px; }
.card-sellers { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 6px; }
.card-seller { position: relative; z-index: 1; display: grid; gap: 3px; min-height: 44px; padding: 9px; border: 1px solid var(--line); border-radius: 8px; text-decoration: none; overflow-wrap: anywhere; }
.card-seller.best { background: #edf3ed; border-color: #b8cebe; }
.card-seller strong { font-size: 14px; }
.card-seller .small { font-size: 12px; line-height: 1.5; }
.card-seller:focus-visible { outline: 3px solid #c19334; outline-offset: 2px; }
.product-card .price { overflow-wrap: anywhere; }
.price { font-size: 25px; line-height: 1.2; font-weight: 750; letter-spacing: -.04em; margin: 6px 0; }
.price small { font-size: 12px; font-weight: 450; letter-spacing: 0; }
.unit-price { font-size: 12px; color: var(--muted); margin-bottom: 12px; }
.pack-label { font-size: 12px; font-weight: 600; margin-bottom: 8px; }
.badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 7px; border-radius: 6px; background: #e7f0e6; color: #305642; font-size: 11px; font-weight: 750; letter-spacing: .02em; max-width: 100%; overflow-wrap: anywhere; }
.badge.warning { background: #f5edda; color: #725521; }
.badge.neutral { background: #edf0ed; color: var(--muted); }
.active-filters { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 18px; }
.chip { display: inline-flex; font-size: 13px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 30px; background: #fff; max-width: 100%; overflow-wrap: anywhere; }
.muted { color: var(--muted); }
.small { font-size: 13px; }
.pagination { display: flex; gap: 12px; justify-content: center; margin-top: 30px; }
.pagination a { padding: 10px 17px; border: 1px solid var(--line); border-radius: 8px; background: white; text-decoration: none; min-height: 46px; }
.store-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
.store-card { border: 1px solid var(--line); border-radius: 12px; background: white; padding: 18px; min-width: 0; overflow-wrap: anywhere; }
.store-card h3 { margin: 0 0 8px; }
.store-card .store-link { display: flex; margin-top: 16px; font-size: 15px; font-weight: 650; min-height: 44px; align-items: center; }
.store-card details { margin-top: 15px; }
.store-card details details { padding-left: 10px; border-left: 2px solid var(--line); }
.how { margin-top: 40px; padding: 22px; background: #e9eee5; border-radius: 15px; }
.how>div { display: grid; grid-template-columns: 1fr; gap: 0; }
.how p { font-size: 16px; color: var(--muted); }
.how strong { color: var(--ink); line-height: 2.5; }
.how h2 { font-size: 24px; }
footer { max-width: 1260px; margin: auto; border-top: 1px solid var(--line); padding: 24px max(var(--gutter),env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(var(--gutter),env(safe-area-inset-left)); display: block; justify-content: space-between; gap: 20px; font-size: 13px; color: var(--muted); }
footer span { max-width: 450px; display: block; margin-top: 8px; }
.back-link { display: inline-block; margin: 16px 0; font-size: 15px; min-height: 44px; padding-block: 10px; }
.product-hero { display: grid; grid-template-columns: 1fr; gap: 24px; align-items: center; margin-bottom: 25px; min-width: 0; }
.detail-image { display: grid; place-items: center; background: #edf0e8; border-radius: 15px; height: 230px; position: relative; }
.detail-image img { height: 195px; max-width: 85%; object-fit: contain; mix-blend-mode: multiply; }
.product-hero h1 { font-size: 30px; margin: 12px 0 20px; }
.product-hero .facts { display: flex; gap: 6px; flex-wrap: wrap; margin: 14px 0; }
.facts span { padding: 5px 8px; border: 1px solid var(--line); border-radius: 6px; font-size: 12px; }
.compare-toolbar { display: flex; gap: 16px; align-items: stretch; margin: 24px 0; flex-wrap: wrap; }
.compare-toolbar label { display: flex; gap: 6px; align-items: stretch; font-size: 14px; width: 100%; justify-content: space-between; flex-direction: column; min-width: 0; }
.compare-toolbar select { width: 100%; max-width: none; font-size: 16px; min-width: 0; }
.compare-toolbar .small { margin-left: auto; max-width: none; margin: 0; font-size: 13px; }
.offer-card { border: 1px solid var(--line); border-radius: 12px; padding: 18px; background: white; margin-bottom: 16px; min-width: 0; overflow-wrap: anywhere; }
.offer-card.best { border-color: #7d9b83; border-left: 4px solid #68886e; }
.offer-head { display: flex; justify-content: space-between; gap: 8px; align-items: start; flex-direction: column; }
.offer-head h3 { font-size: 19px; margin: 0 0 8px; }
.offer-head .price { text-align: left; font-size: 27px; }
.offer-head .badge { margin-bottom: 12px; }
.offer-summary { display: flex; align-items: center; gap: 15px; justify-content: space-between; padding: 18px 0 10px; border-top: 1px solid #edf0eb; margin-top: 14px; flex-wrap: wrap; }
.offer-summary p { margin: 0; font-size: 14px; }
.buy-link { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; padding: 12px 18px; background: var(--green); color: white; border-radius: 8px; font-size: 16px; font-weight: 650; white-space: normal; min-height: 46px; width: 100%; text-align: center; }
.offer-card details { border-top: 1px solid #edf0eb; padding-top: 14px; margin-top: 14px; }
.offer-card details details { padding: 14px; background: #f7f8f4; border: 0; border-radius: 8px; }
summary { cursor: pointer; font-size: 15px; font-weight: 600; min-height: 44px; list-style-position: inside; padding: 10px 0; }
details[open]>summary { margin-bottom: 14px; }
.notice { border-left: 3px solid #b9994d; background: #fbf7eb; padding: 12px 15px; border-radius: 0 6px 6px 0; font-size: 13px; margin: 12px 0; }
.data-list { display: grid; grid-template-columns: 1fr; gap: 4px; font-size: 14px; margin: 15px 0; }
.data-list dt { color: var(--muted); }
.data-list dd { margin: 0; min-width: 0; overflow-wrap: anywhere; margin-bottom: 9px; }
.table { overflow: auto; max-width: 100%; border: 1px solid var(--line); border-radius: 8px; min-width: 0; overscroll-behavior-x: contain; }
table { border-collapse: collapse; width: 100%; font-size: 12px; }
th { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); white-space: nowrap; background: #f1f3ee; }
td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); white-space: nowrap; }
pre { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 11px; color: var(--muted); }
.skeleton { background: linear-gradient(110deg,#ecf0e8 10%,#f6f8f1 40%,#ecf0e8 70%); min-height: 285px; border-radius: 12px; animation: pulse 1.5s ease-in-out infinite; }
#message { font-size: 14px; color: var(--muted); margin-bottom: 18px; }
.empty { grid-column: 1/-1; text-align: center; border: 1px solid var(--line); padding: 60px 20px; border-radius: 12px; background: white; }
.empty h3 { font-size: 25px; }
.empty p { color: var(--muted); }
#connection { border: 1px solid #bda363; border-radius: 10px; background: #fcf5e3; padding: 14px; font-size: 14px; margin: 20px 0; display: block; gap: 20px; align-items: center; justify-content: space-between; }
#connection[hidden] { display: none!important; }
[hidden] { display: none!important; }
#connection button { background: #fff9eb; white-space: nowrap; margin-top: 10px; width: 100%; }
.stale-data .price:after { content: " · vistuð gögn"; font-size: 11px; font-weight: 450; letter-spacing: 0; display: block; color: #725521; }
.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; }
.skip { position: fixed; z-index: 50; top: -70px; left: 10px; background: white; padding: 12px; }
.skip:focus { top: 10px; }
body.browse .hero { padding: 35px 0 18px; }
body.browse .hero h1 { font-size: clamp(30px,7vw,38px); }
body.browse .hero>p:last-child { display: none; }
body.browse .categories { display: none; }
body.home .browse-controls { display: none; }
.desktop-only { display: none; }
dd { overflow-wrap: anywhere; }
.hero h1>span:first-child { color: var(--ink); }
.placeholder { font-size: 60px; color: #9aab9d; }
#stores>.notice { grid-column: 1/-1; }
.image-loading { opacity: 0; position: absolute; }
.detail-image .placeholder { line-height: 1; }
.filter-actions a { min-height: 44px; display: inline-flex; align-items: center; }
.category-tile span { font-size: 24px; }
.filter-panel.open { display: grid; }
.panel-title h2 { margin: 0; font-size: 25px; }
.panel-title button { padding: 8px 15px; }
.product-card .price { font-size: 25px; }
.stores-section { margin-top: 40px; }
.offer-head .price small { font-size: 12px; display: block; }
.product-card:focus-within { outline: 3px solid #c19334; outline-offset: 3px; }
.product-hero>div { min-width: 0; }
.offer-head>div { min-width: 0; max-width: 100%; }

/* Regular and large phones retain two readable product columns. */
@media (min-width: 360px) {
  .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .product-image { height: 162px; }
  .product-image img { height: 132px; }
  .filter-toolbar { grid-template-columns: auto minmax(0,1fr); }
}
/* Wide phones and small tablets gain breathing room, with touch filters. */
@media (min-width: 600px) {
  :root { --gutter: 24px; }
  .hero { padding-top: 40px; }
  .search-bar>span { display: block; }
  .categories { gap: 16px; }
  .category-tile { padding: 20px; }
  .product-grid { gap: 18px; }
  .product-image { height: 210px; }
  .product-image img { height: 175px; }
  .card-body { padding: 18px; }
  .store-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .offer-head { flex-direction: row; justify-content: space-between; }
  .offer-head .price { text-align: right; }
  .compare-toolbar label { flex: 1 1 220px; width: auto; }
  .compare-toolbar .small { flex-basis: 100%; }
  .data-list { grid-template-columns: minmax(140px,1fr) 2fr; gap: 8px 18px; }
  .data-list dd { margin: 0; }
  .filter-panel { padding-inline: max(24px,calc((100vw - 600px)/2)); }
}
/* Tablets: more columns, while filters remain a focused full-screen flow. */
@media (min-width: 768px) {
  .product-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .hero h1 { font-size: 52px; }
  .product-hero { grid-template-columns: 260px minmax(0,1fr); gap: 32px; margin-bottom: 36px; }
  .detail-image { height: 300px; }
  .detail-image img { height: 250px; }
  .product-hero h1 { font-size: 36px; }
  .how>div { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
  .buy-link { width: auto; }
  .offer-summary { flex-wrap: nowrap; }
  .offer-summary p { min-width: 0; }
  .buy-link { flex-shrink: 0; }
  #connection { display: flex; }
  #connection button { width: auto; margin: 0; }
}
/* Desktop enhancements; the phone layout does not depend on these rules. */
@media (min-width: 1100px) {
  :root { --gutter: 32px; }
  main { padding-bottom: 64px; }
  .site-header { padding-block: 27px; }
  .site-header nav { gap: 30px; }
  .logo { font-size: 34px; }
  .desktop-only { display: inline; }
  .hero { padding: 64px 0 30px; }
  .hero h1 { font-size: 64px; }
  .hero>p:last-child { font-size: 17px; }
  .category-tile { display: grid; grid-template-columns: 42px 1fr; align-items: center; gap: 0 12px; padding: 24px; min-height: 0; }
  .category-tile>span { font-size: 35px; }
  .category-tile strong { font-size: 25px; }
  .category-tile b { top: 15px; right: 16px; font-size: 20px; }
  .product-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .product-card h3 { font-size: 17px; }
  .store-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .filter-toolbar { display: flex; justify-content: flex-end; }
  .filter-toolbar #filter-toggle { display: none; }
  .filter-toolbar select { max-width: 300px; }
  .filter-panel { display: grid; position: static; height: auto; padding: 20px; margin-top: 16px; border: 1px solid var(--line); border-radius: 12px; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 16px; overflow: visible; }
  .panel-title { display: none; }
  .filter-panel .small { grid-column: 1/4; }
  .filter-actions { grid-column: 4/6; position: static; border: 0; padding: 0; justify-content: flex-end; }
  .section-heading { margin-top: 45px; }
  .section-heading h2 { font-size: 30px; }
  .product-hero { grid-template-columns: 330px minmax(0,1fr); gap: 52px; margin-bottom: 45px; }
  .detail-image { height: 350px; }
  .detail-image img { height: 280px; }
  .product-hero h1 { font-size: 42px; }
  .offer-card { padding: 24px; }
  footer { display: flex; }
  footer span { margin: 0; }
}
@keyframes pulse { 50% { opacity: .5; } }
@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto!important; animation: none!important; transition: none!important; }
}


.wine-types{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1rem}.wine-types[hidden]{display:none}.wine-types a{padding:.55rem .9rem;border:1px solid currentColor;border-radius:999px;text-decoration:none}.wine-types a[aria-current="page"]{background:#243d32;color:#fff;border-color:#243d32}

/* Store price statistics share the catalogue's typography and palette. */
.site-header nav a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:2px}
.price-section{margin:32px 0 48px}.price-section .section-heading{margin-bottom:12px}.price-section h2{max-width:760px}
.price-controls{display:flex;align-items:end;flex-wrap:wrap;gap:16px;padding:22px;background:#eaf0e9;border:1px solid var(--line);border-radius:12px;margin:28px 0}.price-controls label{display:grid;gap:7px;font-size:14px;font-weight:600;flex:1 1 240px}.price-controls select{margin:0}
.price-table{background:white;border:1px solid var(--line);border-radius:12px}.price-table table{width:100%;border-collapse:collapse}.price-table th,.price-table td{text-align:left;vertical-align:top;padding:16px;white-space:nowrap;border-bottom:1px solid var(--line)}.price-table th{background:#edf1e9;font-size:13px}.price-table th[scope="row"]{position:sticky;left:0;z-index:1;max-width:170px;white-space:normal}.price-table small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.price-table strong{font-size:15px}
.price-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.price-stat{background:white;border:1px solid var(--line);border-radius:12px;padding:22px;min-width:0}.price-stat h3{font-size:16px;margin:0 0 14px}.price-stat p{margin:10px 0}.price-stat .stat-value{font-size:28px;font-weight:750;letter-spacing:-1px;margin:12px 0}.price-stat .stat-empty{font-size:20px;letter-spacing:-.4px}.price-stat a{font-weight:600}.price-method{margin-top:20px}.price-method summary{cursor:pointer;font-weight:600;padding:12px 0}.price-method p{max-width:900px}
.chart-stores{border:0;padding:0;display:flex;flex-wrap:wrap;gap:12px 20px;margin:24px 0 12px}.chart-stores legend{font-size:13px;margin-bottom:10px;color:var(--muted)}.chart-store{display:flex;align-items:center;gap:7px;font-size:14px;cursor:pointer}.chart-color-0{color:#285b4b}.chart-color-1{color:#9c3d30}.chart-color-2{color:#365caa}.chart-color-3{color:#875197}.chart-color-4{color:#986000}.chart-color-5{color:#286d7c}.chart-store input{accent-color:currentColor}.price-chart{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:20px;padding:12px}.price-chart svg{display:block;width:100%;max-height:420px}.price-chart circle:focus{outline:2px solid #c19334}.prices-loading .price-section{opacity:.45;pointer-events:none}.prices-page .hero{padding-bottom:12px}
@media(max-width:767px){.price-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.price-stat{padding:16px}.price-stat .stat-value{font-size:23px}.price-stat .stat-empty{font-size:17px}.price-controls{padding:16px}.price-chart{padding:4px}.price-table th,.price-table td{padding:12px}.price-table th[scope="row"]{max-width:120px;min-width:110px}.price-controls button{width:100%}}
@media(max-width:420px){.price-stat-grid{grid-template-columns:1fr}.prices-page .hero h1{font-size:40px}}

/* Phone layouts are complete without the desktop tables. */
input:not([type=checkbox]),select,.filter-panel select,.price-controls select{font-size:16px}
.logo{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
.site-header nav{flex-wrap:wrap;row-gap:0}
.wine-types a{display:inline-flex;align-items:center;min-height:44px}
.chart-store{min-height:44px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:white}
.price-stat a{display:flex;align-items:center;min-height:44px;padding-block:8px;overflow-wrap:anywhere}
.section-jumps{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.section-jumps a{display:inline-flex;align-items:center;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:white;font-weight:600;text-decoration:none;font-size:14px}
#averages-heading,#price-controls,#alcohol-heading{scroll-margin-top:16px}
.record-table,.average-matrix{display:none}
.record-cards{display:grid;gap:12px}.record-card{margin:0;padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:10px;font-size:14px}
.record-card>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.record-card>div:last-child{border-bottom:0}.record-card dt{color:var(--muted);overflow-wrap:anywhere}.record-card dd{margin:0;text-align:right;font-weight:600;overflow-wrap:anywhere}
.average-mobile>label{display:block;font-weight:600;margin-bottom:8px}.average-mobile>select{margin-bottom:14px}.average-cards{display:grid;gap:10px}.average-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:16px;background:white;border:1px solid var(--line);border-radius:10px}.average-card h3{font-size:16px;margin:0;align-self:center}.average-card .average-value{font-weight:700;font-size:16px;margin:0;text-align:right;max-width:170px;overflow-wrap:anywhere}.average-card .small{grid-column:1/-1;margin:0}
@media(max-width:767px){
 .small,.notice,.product-card small,.product-card .store-line,.price small,.unit-price,.pack-label,.category-tile small,.offer-head .price small,.facts span{font-size:14px}
 .badge,.eyebrow{font-size:12px}
 .hero{padding:20px 0 12px}.hero h1{margin-bottom:14px}body.browse .hero{padding:18px 0 8px}body.browse .hero h1{margin-bottom:8px}
 .browse-controls{margin:16px 0}.filter-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.filter-toolbar #sort{grid-column:1/-1}.filter-toolbar button{padding:10px;font-size:15px}
 .section-heading{margin-top:22px}.product-card .card-body{padding:12px}.product-card .price{font-size:24px}
 .detail-image{height:170px}.detail-image img{height:145px}.product-hero{gap:16px}.product-hero h1{margin:8px 0 14px}.product-hero .facts{margin:12px 0}
 .price-controls{gap:14px}.price-controls label{flex-basis:100%;min-width:0}.prices-page .hero h1{font-size:clamp(32px,9vw,40px)}
 .price-stat-grid{grid-template-columns:1fr}.price-stat{padding:18px}.price-stat .stat-value{font-size:27px}
 .price-chart{overflow:hidden}.chart-stores{gap:8px}.chart-store{font-size:15px}.price-section{margin:24px 0 32px}
}
@media(min-width:768px){.record-table{display:block}.record-cards{display:none}}
@media(min-width:1100px){.average-matrix{display:block}.average-mobile{display:none}}
@media(max-width:359px){.average-card{grid-template-columns:1fr}.average-card .average-value{text-align:left;max-width:none}.record-card>div{grid-template-columns:1fr;gap:3px}.record-card dd{text-align:left}}
.offer-card a,.store-card a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;overflow-wrap:anywhere}
.history-store{border:1px solid var(--line);border-radius:10px;padding:4px 14px;background:white}.history-store-records{display:grid;gap:10px;padding-bottom:10px}.history-store-records .record-card{padding:10px}
@media(max-width:767px){body.browse #result-kicker{display:none}}

/* Price tools keep each result readable without horizontal scrolling. */
.mover-columns{display:grid;gap:24px;grid-template-columns:repeat(2,minmax(0,1fr))}
.mover-columns .price-stat{margin-bottom:12px;overflow-wrap:anywhere}
.basket-results{display:grid;gap:8px;margin-block:12px}
.basket-results button{text-align:left;white-space:normal;min-height:44px}
.basket-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line,#dce2d9)}
.basket-item label{flex:1;min-width:0;overflow-wrap:anywhere}
.basket-item input{display:block;width:90px;min-height:44px;margin-top:8px;font-size:16px}
.basket-item button,#basket-totals summary{min-height:44px}
#basket-search,#movers-store{font-size:16px;min-height:44px;width:100%;max-width:480px}
#basket-totals{margin-top:20px}
#basket-totals li{overflow-wrap:anywhere}
#movers-heading,#basket-heading{scroll-margin-top:90px}
@media(max-width:767px){.mover-columns{grid-template-columns:1fr}.basket-item{flex-wrap:wrap}}

.search-form{position:relative}
.search-suggestions{position:absolute;inset-inline:0;top:58px;max-width:820px;z-index:30;background:white;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px #243d3326;max-height:min(440px,55dvh);overflow-y:auto;overscroll-behavior:contain}
.search-suggestions[hidden]{display:none}
.search-suggestion{display:flex;flex-direction:column;gap:4px;padding:12px 16px;min-height:48px;text-decoration:none;color:inherit;overflow-wrap:anywhere;border-bottom:1px solid var(--line)}
.search-suggestion:last-child{border-bottom:0}
.search-suggestion:hover,.search-suggestion[aria-selected=true]{background:#edf3ed;outline:2px solid #285b4b;outline-offset:-2px}
.search-suggestion strong{font-size:16px}
.suggestion-empty{padding:12px 16px;margin:0}
.beer-best{margin:20px 0;padding:20px;border:1px solid #b8cebe;border-radius:14px;background:#edf3ed}
.beer-best h2{margin-top:0}.beer-best .price{margin-block:8px}
.beer-sellers{display:grid;gap:8px}
.beer-seller{display:grid;grid-template-columns:1fr auto;gap:6px 12px;padding:12px;background:white;border:1px solid var(--line);border-radius:10px;min-height:44px;text-decoration:none;color:inherit}
.beer-seller span{grid-column:1/-1;overflow-wrap:anywhere}
.offer-card{scroll-margin-top:80px}
@media(max-width:359px){.beer-seller{grid-template-columns:1fr}}
.consent{position:fixed;z-index:50;left:max(var(--gutter),env(safe-area-inset-left));right:max(var(--gutter),env(safe-area-inset-right));bottom:max(var(--gutter),env(safe-area-inset-bottom));max-width:560px;margin:0 auto;padding:16px;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 30px rgba(32,59,51,.18);font-size:14px}
.consent p{margin:0 0 12px}
.consent div{display:flex;gap:10px}
.consent button{flex:1}
.link-button{min-height:44px;padding:0;border:0;background:none;color:inherit;font-size:inherit;text-decoration:underline;text-underline-offset:4px}
.footer-links{display:flex;flex-wrap:wrap;align-items:center;gap:4px 20px;margin-top:8px}
.footer-links a{display:inline-flex;align-items:center;min-height:44px}
.consent a{font-weight:650}
.policy section{max-width:760px}
.policy h2{margin-top:40px}
.policy ul{padding-left:22px}
.policy li{margin:6px 0}
.policy dd{margin:0 0 16px}
.consent:focus-visible{outline:3px solid #c19334;outline-offset:3px}
.value-section{margin-top:36px;scroll-margin-top:16px}
.value-section h2{margin:0 0 2px;font-size:26px}
.value-pair{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;margin-top:12px}
.value-panel{min-width:0;padding:4px 14px 6px;background:var(--paper);border:1px solid var(--line);border-radius:14px}
.value-panel h3{margin:12px 0 4px;font-size:15px;color:var(--muted)}
.value-panel[data-basis="by_alcohol"] h3{color:var(--green)}
.value-list{list-style:none;margin:0;padding:0}
.value-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:2px 12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.value-card:first-child{border-top:0}
.value-card.best{margin:0 -8px;padding:12px 8px;background:#eef4ef;border-radius:10px}
.value-card.best+.value-card{border-top:0}
.value-thumb{grid-row:span 2;width:44px;height:58px;display:flex;align-items:center;justify-content:center;background:#f1f3ee;border-radius:8px;overflow:hidden;color:#9aa79f}
.value-card.best .value-thumb{background:#fff}
.value-card.empty .value-thumb{height:32px;background:none}
.value-thumb img{max-width:100%;max-height:100%;object-fit:contain}
.value-info{min-width:0}
.value-info p{margin:0}
.value-store{font-size:13px;font-weight:700;letter-spacing:.02em;color:var(--muted)}
.value-card.best .value-store{color:var(--green)}
.value-name{display:block;font-weight:650;overflow-wrap:anywhere;text-decoration:none;padding:2px 0}
.value-name:hover{text-decoration:underline}
.value-price{display:grid;justify-items:end;text-align:right;grid-row:span 2}
.value-price strong{font-size:19px;white-space:nowrap}
.value-price small{color:var(--muted);font-size:13px;white-space:nowrap}
.value-diff{font-size:13px;font-weight:650;color:#9c3d30;white-space:nowrap}
.value-coverage{padding-left:22px;font-size:14px}
@media(max-width:399px){.value-card{grid-template-columns:44px minmax(0,1fr)}.value-price{grid-column:2;grid-row:auto;justify-items:start;text-align:left}}
@media(min-width:900px){.value-pair{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Product page extras: phone layout first, no wider overrides needed. */
.product-extras{margin:0 0 14px}.product-extras>p{margin:0 0 10px}.product-extras .facts{margin:0 0 8px}
.price-history{margin:28px 0}.price-history h2{margin-bottom:8px}
.history-chart{min-height:230px}.history-chart svg{max-height:340px}.history-chart p{margin:10px 4px}
.history-legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 4px;padding:0;font-size:14px}
.history-legend li{display:flex;align-items:center;gap:7px}.history-legend li::before{content:"";width:12px;height:12px;border-radius:3px;background:currentColor;flex:none}
.history-legend span{color:var(--ink)}
.history-chart details{border-top:1px solid #edf0eb;margin:12px 4px 4px;padding-top:6px}
.footer-links .age-note{margin:0;max-width:none;display:inline-flex;align-items:center;min-height:44px;font-weight:600}

/* Homepage coverage and counts reuse the category cards, with compact mobile rows. */
.catalog-overview { margin: 26px 0 32px; }
.catalog-overview h2 { font-size: 23px; margin: 24px 0 8px; }
.coverage-stores { display: flex; flex-wrap: wrap; gap: 8px; min-height: 200px; align-content: start; }
.coverage-stores a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 9px 12px; border: 1px solid var(--line,#dce2d9); border-radius: 9px; text-decoration: none; background: #fff; }
.coverage-stores a:hover { border-color: #527060; }
.coverage-stores .store-count { font-variant-numeric: tabular-nums; color: var(--muted); }
.coverage-details { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; }
.catalog-overview .categories { grid-template-columns: repeat(2,minmax(0,1fr)); margin: 14px 0 8px; gap: 8px; }
.catalog-overview .category-tile { display: flex; flex-direction: column; justify-content: center; gap: 4px; min-height: 84px; padding: 12px; }
.catalog-overview .category-tile strong { font-size: 17px; }
.catalog-overview .category-count { font-size: 21px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--ink,#173b37); }
#overview-status { min-height: 44px; }
body.browse .catalog-overview,body.stores .catalog-overview { display: none; }
@media (min-width:600px) { .coverage-stores { min-height: 148px; } .catalog-overview .categories { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (min-width:768px) { .coverage-stores { min-height: 104px; } }
@media (min-width:1100px) { .catalog-overview .categories { grid-template-columns: repeat(5,minmax(0,1fr)); } .coverage-stores { min-height: 52px; } }

.catalog-overview .category-unit { font-size: 13px; }

/* Discovery shortcuts and price comparisons share the existing phone-first layout. */
.discovery-links { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; margin:18px 0 28px; }
.discovery-links a { display:flex; flex-direction:column; justify-content:center; min-height:76px; padding:14px; border:1px solid var(--line); border-radius:10px; text-decoration:none; background:#fff; overflow-wrap:anywhere; }
.discovery-links a:hover { border-color:var(--green); background:#edf3ed; }
.discovery-links strong { font-size:16px; }
.discovery-links small { color:var(--muted); margin-top:3px; }
body.browse .discovery-links,body.stores .discovery-links { display:none; }
.comparison-summary { display:flex; flex-direction:column; gap:7px; padding:14px; margin:12px 0; border:1px solid #b8cebe; border-radius:10px; background:#edf3ed; overflow-wrap:anywhere; }
.comparison-summary strong { font-size:16px; }
.product-card .comparison-summary { padding:10px; }
@media (min-width:600px) { .discovery-links { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1100px) { .discovery-links { grid-template-columns:repeat(4,minmax(0,1fr)); } }

.product-grid>.product-card:only-child { grid-column:1/-1; }
@media (min-width:768px) { .product-grid>.product-card:only-child { grid-column:auto; } }


/* One compact product summary; the full seller list is available on demand. */
.comparison-summary.beer-best { padding:16px; gap:6px; }
.comparison-summary.beer-best h2 { font-size:20px; margin:0; }
.comparison-summary.beer-best p { margin:0; }
.comparison-offer-link { display:inline-flex; align-items:center; min-height:44px; }
.comparison-summary .beer-sellers { padding-top:8px; }
.coverage-stores a { flex-wrap:wrap; max-width:100%; }
.coverage-stores a.coverage-unconfirmed { background:#f4f1e7; gap:4px 10px; }
.coverage-unconfirmed .store-count { font-size:12px; color:#665b34; }


/* Visual polish: decorative SVGs retain visible labels and native link behaviour. */
.search-icon { width:22px; height:22px; flex:none; margin-left:8px; }
.discovery-links a { display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:12px; align-content:center; border-radius:14px; }
.shortcut-icon { width:34px; height:34px; grid-row:1/3; align-self:center; }
.discovery-links strong,.discovery-links small { grid-column:2; }
.discovery-links strong { line-height:1.35; }
.discovery-links small { line-height:1.45; }
.coverage-panel { padding:18px; background:#eef2eb; border:1px solid #e0e6dc; border-radius:18px; }
.catalog-overview .coverage-panel h2 { margin-top:0; font-size:21px; }
.coverage-panel>p { max-width:760px; }
.coverage-panel .coverage-details { margin-top:8px; }
.category-panel { margin-top:32px; }
.category-panel>.eyebrow { color:#806322; margin-bottom:8px; }
.category-panel>h2 { margin-top:0; }
.catalog-overview .categories { gap:10px; }
.catalog-overview .category-tile {
 --tile-accent:#285b4b;
 background:#fff; border:1px solid #dce2d9; border-radius:16px;
 align-items:flex-start; justify-content:flex-start; gap:6px; padding:16px 14px; min-height:152px;
 box-shadow:0 2px 5px #203b3303;
}
.catalog-overview .category-tile[data-category-count="beer"],
.catalog-overview .category-tile[data-category-count="spirits"] { --tile-accent:#9b7425; background:#faf6e9; border-color:#e8dec4; }
.catalog-overview .category-tile[data-category-count="red-wine"] { --tile-accent:#985563; background:#f7edef; border-color:#ead8de; }
.catalog-overview .category-tile[data-category-count="white-wine"],
.catalog-overview .category-tile[data-category-count="sparkling-wine"] { --tile-accent:#9b822f; background:#f8f6e9; border-color:#e7e2c8; }
.catalog-overview .category-tile[data-category-count="rose-wine"],
.catalog-overview .category-tile[data-category-count="ready-to-drink"] { --tile-accent:#ad6e63; background:#fbefea; border-color:#eedcd5; }
.catalog-overview .category-tile[data-category-count="cider"] { background:#f1f5e9; }
.catalog-overview .category-tile .category-icon { width:44px; height:44px; margin-bottom:4px; }
.catalog-overview .category-tile strong { font-size:16px; line-height:1.3; letter-spacing:-.02em; }
.catalog-overview .category-tile small { margin-top:auto; }
.catalog-overview .category-count { font-size:18px; }
.catalog-overview .category-tile:hover { border-color:var(--tile-accent); box-shadow:inset 0 0 0 1px var(--tile-accent); }
body.home .section-heading { border-top:1px solid var(--line); padding-top:28px; }
body.home .stores-section { margin-top:48px; }
.product-image { background:#fafbf8; border-bottom:1px solid #edf0e8; height:194px; }
.product-image img { height:150px; width:calc(100% - 32px); object-position:center; }
.product-image .badge { z-index:1; top:12px; left:12px; border:1px solid #cbdcc9; }
.product-card { border-radius:16px; }
.how { background:#e8eee5; border:1px solid #dbe3d6; border-radius:18px; }
@media (min-width:360px) {
 .product-image { height:178px; }
 .product-image img { height:132px; width:calc(100% - 24px); }
}
@media (min-width:600px) {
 .coverage-panel { padding:24px; }
 .catalog-overview .categories { gap:14px; }
 .catalog-overview .category-tile { padding:20px; min-height:164px; }
 .catalog-overview .category-tile .category-icon { width:48px; height:48px; }
 .catalog-overview .category-tile strong { font-size:18px; }
 .product-image { height:222px; }
 .product-image img { height:174px; width:calc(100% - 40px); }
}
@media (min-width:1100px) {
 .category-panel { margin-top:40px; }
 .catalog-overview .category-tile { min-height:174px; }
 .coverage-panel .coverage-stores { min-height:100px; }
 .discovery-links a { padding:16px; }
}


/* Search cards show one chosen offer; the product page owns seller comparisons. */
.compact-card h3 { min-height:44px; margin-bottom:6px; }
.compact-card h3 a { display:block; min-height:44px; }
.compact-card .card-title-text { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.compact-card .card-body { gap:0; }
.compact-card .card-facts { margin:0 0 10px; }
.compact-card .card-vintage { margin:0 0 8px; font-size:12px; }
.compact-card .card-primary-price { margin:0 0 10px; font-size:23px; }
.card-price-amount { display:block; }
.compact-card .card-price-unit { display:block; font-size:13px; line-height:1.4; margin-top:3px; color:var(--muted); }
.card-retailer { font-size:14px; font-weight:650; margin:0 0 3px; overflow-wrap:anywhere; }
.compact-card .card-pack,.compact-card .card-scope { margin:0 0 8px; font-size:13px; line-height:1.45; overflow-wrap:anywhere; }
.card-compare { position:relative; z-index:1; display:flex; flex-direction:column; justify-content:center; gap:2px; min-height:48px; margin-top:auto; padding:10px 0 0; border-top:1px solid var(--line); text-decoration:none; font-size:14px; font-weight:650; }
.card-compare small { font-size:12px; font-weight:450; color:var(--muted); }
.card-compare:hover span { text-decoration:underline; text-underline-offset:4px; }
@media (min-width:600px) { .compact-card .card-primary-price { font-size:26px; } }

/* Discovery pages share the comparison cards and established icon system. */
.drink-discovery { margin-top:24px; }
.drink-discovery .section-heading { margin-top:0; padding-top:0; border-top:0; }
.drink-discovery .discovery-links { margin:12px 0 0; }
.drink-discovery .weekly-link { margin:4px 0; }
body.browse .drink-discovery,body.stores .drink-discovery { display:none; }
.discovery-page .hero { padding-top:20px; }
.discovery-page .hero h1 { font-size:clamp(30px,7vw,48px); }
.guide-group { margin:32px 0; }
.guide-group h2 { font-size:24px; }
.guide-basis { display:flex; align-items:center; gap:14px; padding:16px; background:#edf2e9; border:1px solid var(--line); border-radius:14px; }
.guide-basis img { flex:none; }
.guide-basis p { margin:4px 0 0; font-size:14px; color:var(--muted); }
.guide-help { margin:12px 0 24px; max-width:800px; }
.guide-help li { margin:10px 0; }
.guide-note { margin:24px 0; max-width:760px; }
#discovery-results { scroll-margin-top:16px; min-height:360px; }
@media (min-width:600px) { .discovery-page .discovery-links { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1100px) {
 .drink-discovery .discovery-links,.discovery-page .discovery-links { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .discovery-page .hero { padding-top:28px; }
}
/* Shared Drikk typography and colours; editorial additions are phone-first. */
.editorial-hero { padding-block: 44px 26px; max-width: 920px; }
.editorial-hero h1 { font-size: clamp(38px,7vw,76px); max-width: 900px; }
.editorial-hero > p:last-child { max-width: 620px; }
.editorial-filters { display: flex; flex-wrap: wrap; gap: 6px; border-block: 1px solid var(--line); padding-block: 12px; margin-bottom: 28px; }
.editorial-filters a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 15px; border-radius: 30px; text-decoration: none; font-size: 14px; font-weight: 600; }
.editorial-filters a[aria-current="page"] { background: var(--green); color: white; }
.editorial-filters a:hover { box-shadow: inset 0 0 0 1px var(--green); }
.editorial-layout { display: grid; grid-template-columns: minmax(0,1fr); gap: 32px; }
.editorial-list { display: grid; align-content: start; gap: 22px; min-width: 0; }
.editorial-card { padding: 24px; border: 1px solid var(--line); background: var(--paper); border-radius: 14px; }
.editorial-feature { background: #e9eee5; padding-block: 32px; }
.editorial-card h2 { font-size: clamp(28px,5vw,48px); margin-block: 18px; max-width: 720px; }
.editorial-card h2 a { text-decoration: none; display: inline-block; min-height: 44px; }
.editorial-card h2 a:hover { text-decoration: underline; }
.editorial-card > p { max-width: 600px; }
.editorial-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; font-size: 13px; color: var(--muted); margin: 0; }
.editorial-meta a { display: inline-flex; align-items: center; min-height: 44px; }
.editorial-meta time { margin-left: auto; }
.editorial-read { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 44px; font-size: 15px; font-weight: 650; margin-top: 10px; }
.editorial-author { padding: 28px; border: 1px solid var(--line); border-radius: 14px; align-self: start; background: #f0ece2; }
.editorial-author h2 { margin-top: 16px; }
.editorial-author hr { border: 0; border-top: 1px solid #d8d3c5; margin-block: 24px; }
.editorial-monogram { display: inline-grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; background: #203b33; color: #f0ece2; font: italic 44px Georgia,serif; }
.editorial-preview { background: #efe3c6; color: #574721; padding: 12px 20px; text-align: center; font-size: 13px; }
.editorial-prose { max-width: 720px; margin: 20px auto 64px; font-size: 18px; line-height: 1.8; overflow-wrap: anywhere; }
.editorial-prose h1 { font-size: clamp(36px,7vw,62px); margin-block: 20px; }
.editorial-prose h2 { margin-top: 38px; font-size: 27px; }
.editorial-prose p { margin-bottom: 24px; }
.editorial-prose .editorial-lead { font-size: clamp(20px,3vw,24px); line-height: 1.55; color: var(--muted); margin-bottom: 36px; }
.editorial-prose blockquote { border-left: 3px solid #b48a35; padding: 12px 0 12px 22px; margin: 32px 0; font: italic 27px/1.5 Georgia,serif; }
.editorial-disclosure, .editorial-sources { border-top: 1px solid var(--line); padding-top: 16px; margin-top: 36px; font-size: 15px; }
.editorial-sources a { display: inline-flex; min-height: 44px; align-items: center; }
.editorial-signature { border-top: 1px solid var(--line); padding-top: 24px; margin-top: 40px; font-weight: 700; }
.editorial-signature span { color: var(--muted); font-weight: 400; }
.editorial-empty { padding: 28px; border: 1px dashed var(--line); border-radius: 14px; }
@media (min-width: 768px) { .editorial-layout { grid-template-columns: minmax(0,1fr) 280px; } .editorial-feature { padding: 40px; } .editorial-hero { padding-top: 64px; } }

/* Category names remain readable without colour. */
.editorial-kind { display: inline-flex; align-items: center; padding: 5px 11px; border-radius: 6px; font-size: 12px; font-weight: 750; letter-spacing: .015em; border: 1px solid transparent; }
.editorial-kind-paelingar { color: #654311; background: #f2e1b7; border-color: #dbc48f; }
.editorial-kind-gagnryni { color: #274f40; background: #dcebdd; border-color: #a5c5aa; }
.editorial-kind-frettir { color: #274962; background: #dfeaf3; border-color: #a9c4d8; }
.editorial-legend { margin: 0; }
.editorial-legend dt { margin-top: 18px; }
.editorial-legend dd { margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height: 1.6; }

.editorial-card-with-image { display: grid; grid-template-columns: minmax(0,1fr); gap: 24px; }
.editorial-card-body { min-width: 0; }
.editorial-card-image { display: grid; place-items: center; grid-row: 1; padding: 18px; background: #f7f8f4; border-radius: 10px; }
.editorial-card-image img { height: 220px; width: auto; max-width: 100%; object-fit: contain; mix-blend-mode: multiply; }
.editorial-product-figure { margin: 24px 0 32px; padding: 24px; border: 1px solid var(--line); border-radius: 12px; background: #f0f2ec; text-align: center; }
.editorial-product-figure > a { display: block; }
.editorial-product-figure img { height: 300px; width: auto; max-width: 100%; object-fit: contain; mix-blend-mode: multiply; }
.editorial-product-figure figcaption { font-size: 15px; line-height: 1.6; margin-top: 12px; }
.editorial-product-figure figcaption a { display: inline-block; min-height: 44px; }
.editorial-product-figure figcaption span { font-weight: 650; }
.editorial-prose .editorial-sources, .editorial-signature { clear: both; }
@media (min-width: 768px) { .editorial-card-with-image { grid-template-columns: minmax(0,1fr) 160px; } .editorial-card-image { grid-column: 2; grid-row: 1; align-self: start; } .editorial-product-figure { float: right; width: 220px; margin: 0 0 28px 28px; padding: 20px; } }

/* Keep editorial reading after the comparison so sellers stay first. */
.product-editorial{margin-top:2rem;border-top:1px solid #dce3da;padding-top:1.5rem}
.product-editorial-list{display:grid;gap:1rem}
.product-editorial-card{padding:1rem;border:1px solid #dce3da;border-radius:12px;background:#fff;min-width:0}
.product-editorial-card .editorial-read{display:flex;align-items:center;min-height:44px;overflow-wrap:anywhere;margin-top:.5rem}
.product-editorial-card .badge{margin-left:.5rem}
@media(min-width:768px){.product-editorial-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Private dashboard; shared typography and cards come from style.css. */
.dashboard-login{max-width:520px;margin:20px 0 32px}
.dashboard-login form{display:grid;gap:12px;margin:20px 0}
.dashboard-login label{font-weight:650}
.dashboard-login .small{margin-bottom:0}
.dashboard-page #dashboard-status{min-height:25px;margin:16px 0}
.dashboard-page .price-controls{padding:16px}
.dashboard-page .price-controls p{flex-basis:100%;margin:0}
.dashboard-page .price-stat-grid{grid-template-columns:1fr}
.dashboard-page .price-stat{padding:18px}
.dashboard-page .site-header nav{align-items:center;flex-wrap:wrap}
.dashboard-chart{min-height:240px;padding:12px}
.dashboard-chart svg{width:100%;height:260px;max-height:none;display:block}
.dashboard-chart text{font-size:12px;fill:var(--muted)}
.dashboard-bar{fill:var(--green)}
.dashboard-gridline{stroke:var(--line);stroke-width:1}
.dashboard-records{display:grid;gap:12px;margin-top:16px}
.dashboard-record{background:white;border:1px solid var(--line);border-radius:12px;padding:16px;min-width:0}
.dashboard-record h3{font-size:16px;margin:0 0 12px}
.dashboard-record dl{display:grid;gap:8px;margin:0}
.dashboard-record dl div{display:flex;justify-content:space-between;gap:12px}
.dashboard-record dt{color:var(--muted)}
.dashboard-record dd{margin:0;font-weight:650}
.dashboard-products{list-style:none;padding:0;display:grid;gap:12px}
.dashboard-products li{display:flex;align-items:start;gap:14px;background:white;border:1px solid var(--line);border-radius:12px;padding:16px;min-width:0}
.dashboard-products li>div{min-width:0;flex:1}
.dashboard-products a{display:flex;align-items:center;min-height:44px;overflow-wrap:anywhere;font-weight:650;line-height:1.4}
.dashboard-products p{margin:4px 0 0}
.dashboard-rank{background:#e9eee5;border-radius:50%;min-width:34px;height:34px;display:grid;place-items:center;font-weight:650;margin-top:5px}
@media(min-width:600px){.dashboard-page .price-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-records{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:900px){.dashboard-records{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-products{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-page .price-controls label{flex-basis:240px;flex-grow:0}.dashboard-page .price-controls p{flex:1;max-width:440px}}
