/* Page-scoped layout approved in docs/plans/PLAN-deals-preview-ui.md §1.
   Shared offer evidence, product choices and price conditions remain visible.
   A store page (views/stores/detail.ejs) wears .deals-page too: the same bars and cards, its tabs as links. */
.deals-page .deals-heading { margin-bottom:18px; }
.deals-page .deals-heading h1 { margin:0 0 7px; font-size:26px; line-height:1.2; font-weight:800; letter-spacing:-.7px; color:var(--color-text); }
.deals-summary { margin:0; color:#697181; font-size:13px; }
.deals-period-bar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; margin-bottom:18px; }
.deals-period-switch { display:flex; gap:4px; padding:4px; background:#fff; border:1px solid #e9e3da; border-radius:12px; }
.deals-period-switch a { display:flex; align-items:center; justify-content:center; gap:8px; padding:11px 13px; min-height:44px; border-radius:9px; font-size:13px; font-weight:700; white-space:nowrap; }
.deals-period-switch a[aria-current=page] { background:var(--color-accent); color:#fff; }
.deals-period-switch .deals-preview-tab[aria-current=page] { background:#fff1dc; color:#8b4805; }
.deals-available { background:#fff1dc; color:#8b4805; font-size:11px; padding:2px 6px; border-radius:5px; }
.deals-date-controls { display:flex; gap:14px; align-items:center; justify-content:space-between; }
.deals-date-range { font-size:14px; font-weight:700; }
.deals-week-label select { background:transparent; border:0; padding:8px 2px; color:#697181; font-size:12px; max-width:205px; }
.deals-preview-notice { display:flex; align-items:center; gap:12px; background:#fff1dc; color:#864606; padding:13px 16px; border-radius:10px; margin-bottom:18px; font-size:13px; }
.deals-preview-notice>span { font-size:23px; }
.deals-preview-notice strong { display:block; margin-bottom:3px; }
.deals-preview-notice p { margin:0; }
.deals-store-row,.deals-store-options { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.deals-store-row { margin-bottom:18px; }
.deals-store-chip { display:flex; align-items:center; gap:7px; border:1px solid #e6e1d9; background:white; border-radius:9px; padding:8px 10px; font-size:12px; font-weight:600; min-height:40px; }
.deals-store-chip[aria-pressed=true] { border-color:var(--color-accent); color:var(--color-accent); background:color-mix(in srgb, var(--color-accent) 7%, white); }
.deals-monogram { display:inline-flex; justify-content:center; align-items:center; border-radius:5px; min-width:24px; height:23px; padding:3px 5px; font-size:10px; font-weight:800; }
.deals-more-stores { margin-left:auto; display:flex; align-items:center; gap:7px; color:var(--color-accent); font-size:12px; font-weight:700; padding:9px 3px; min-height:40px; }
.deals-store-picker { border:1px solid #e6e1d9; background:white; border-radius:12px; padding:14px; margin:-5px 0 18px; }
.deals-store-search { display:flex; align-items:center; gap:10px; border-bottom:1px solid #eee7df; padding-bottom:10px; margin-bottom:12px; }
.deals-store-search input { width:100%; min-width:0; padding:6px 4px; border:0; font-size:16px; }
.deals-filter-row { border-top:1px solid #e9e3da; padding-top:13px; margin-bottom:16px; }
.deals-category-nav { display:flex; align-items:center; gap:6px; min-width:0; }
.deals-categories { display:flex; align-items:center; gap:7px; overflow-x:auto; min-width:0; flex:1; padding:4px 2px; scrollbar-width:none; }
.deals-categories::-webkit-scrollbar { display:none; }
.deals-categories button,.deals-categories a { display:flex; align-items:center; flex:none; white-space:nowrap; padding:10px 14px; min-height:44px; border:1px solid transparent; background:#efede9; border-radius:8px; font-size:13px; font-weight:500; color:var(--color-text); }
.deals-categories button:hover,.deals-categories a:hover { background:#e5e1db; }
.deals-categories button[aria-pressed=true],.deals-categories a[aria-current] { color:#fff; background:var(--color-accent); border-color:var(--color-accent); }
.deals-category-arrow { display:flex; align-items:center; justify-content:center; flex:0 0 36px; min-height:44px; border:1px solid #e6e1d9; border-radius:8px; background:#fff; color:var(--color-text); font-size:25px; }
.deals-category-arrow:disabled { opacity:.3; cursor:default; }
.deals-category-arrow:not(:disabled):hover { border-color:var(--color-accent); color:var(--color-accent); }
.deals-categories button:focus-visible,.deals-categories a:focus-visible,.deals-category-arrow:focus-visible,.deals-sort select:focus-visible,.deals-origin-filter input:focus-visible { outline:2px solid var(--color-accent); outline-offset:2px; }
.deals-filter-tools { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:4px 18px; margin-top:8px; }
.deals-origin-filter { display:flex; align-items:center; gap:8px; min-height:44px; font-size:12px; color:#697181; cursor:pointer; }
.deals-origin-filter input { width:16px; height:16px; accent-color:var(--color-accent); }
.deals-origin-filter:has(input:checked) { color:var(--color-accent); }
.deals-origin-filter:has(input:disabled) { opacity:.5; cursor:default; }
.deals-sort { display:flex; align-items:center; gap:8px; color:#697181; font-size:12px; margin-left:auto; }
.deals-sort select { max-width:175px; min-height:44px; font-weight:600; border:0; background:transparent; padding:8px 3px; color:var(--color-text); }
.deals-active-filters { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; margin-bottom:15px; font-size:12px; }
.deals-active-filters>span { color:#697181; }
.deals-active-filters button,.deals-active-filters a,.deals-empty-reset { color:var(--color-accent); text-decoration:underline; }
.deals-active-filters a { margin-left:auto; }
.deals-saved-preview { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; padding:12px 14px; background:#fff; border:1px solid #e6e1d9; border-radius:10px; margin-bottom:16px; font-size:13px; }
.deals-saved-preview a { font-weight:700; color:var(--color-accent); }
.deals-load-error { padding:20px; margin-bottom:15px; border:1px solid #e0c1b8; border-radius:10px; background:#fff; }
.deals-load-error button { color:var(--color-accent); text-decoration:underline; padding:10px 0; }
.deals-page .deal-card-grid,.deals-page .deals-fallback-grid { gap:14px; grid-template-columns:repeat(4,minmax(0,1fr)); }
.deals-page .deal-card { border-radius:13px; }
.deals-page .deal-card>.p-3\.5 { padding:12px; }
.deals-page .deal-card .preview-card-image { height:120px; }
.deals-page .deal-card h3 { line-height:1.35; }
.deals-page .preview-card-actions { gap:6px; }
.deals-page .preview-add { background:var(--color-accent); }
.deals-page .preview-watch { font-size:12px; }
.deals-page .deals-empty-reset { display:inline-block; padding:12px 0; margin-top:8px; }
.store-back { display:inline-flex; align-items:center; gap:6px; margin-bottom:12px; font-size:13px; color:#697181; }
.store-back:hover { color:var(--color-accent); }
.store-heading { display:flex; align-items:center; gap:14px; }
.deals-page .store-heading h1 { margin:0; }
.store-h1-rest { display:block; margin-top:5px; font-size:13px; font-weight:400; letter-spacing:0; line-height:1.4; color:#697181; }
.store-summary { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; margin-top:6px; }
.store-scanned { display:inline-flex; align-items:center; gap:4px; padding:2px 8px; border-radius:999px; background:#f0f9ff; border:1px solid #e0f2fe; color:#0369a1; font-size:11px; font-weight:600; white-space:nowrap; }
.deals-active-filters .store-clear-filters { margin-left:0; }
.store-top-note { margin:-6px 0 14px; font-size:12px; line-height:1.45; color:#697181; }
.store-about-area { display:flex; flex-direction:column; gap:14px; margin-top:36px; }
.store-about-area>div.mb-6 { margin-bottom:0; }
.store-about { background:#fff; border:1px solid #ece7df; border-radius:13px; padding:16px 18px; }
.store-about h2 { margin:0 0 6px; font-size:15px; font-weight:800; color:var(--color-text); }
.store-about p { margin:0; font-size:13px; line-height:1.6; color:#4b5260; }
.store-about .store-about-updated { margin-bottom:6px; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#9aa1ad; }
.store-about .store-about-regular { margin-top:8px; font-size:12px; color:#075985; }
.store-about nav { margin:14px 0 0; }
.store-about nav h2 { font-size:13px; }
@media(max-width:767px) {
  .deals-page .deals-heading h1 { font-size:23px; }
  .deals-period-bar { gap:12px; }
  .deals-period-switch { width:100%; }
  .deals-period-switch a { flex:1; padding:11px 7px; gap:6px; }
  .deals-date-controls { width:100%; }
  .deals-week-label select { max-width:180px; }
  .deals-store-row { gap:7px; }
  .deals-store-chip { padding:7px 8px; }
  .deals-more-stores { margin-left:0; }
  .deals-categories button { padding:10px 12px; }
  .deals-category-arrow { flex-basis:30px; }
  .deals-filter-tools { gap:0 12px; }
  .deals-page .deal-card-grid,.deals-page .deals-fallback-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
}
@media(max-width:359px) {
  .deals-page .deal-card-grid,.deals-page .deals-fallback-grid { grid-template-columns:minmax(0,1fr); }
  .deals-period-switch a { font-size:12px; }
  .deals-available { font-size:11px; padding:2px 3px; }
}
@media(pointer:coarse) {
  .deals-store-chip,.deals-more-stores,.deals-categories button,.deals-sort select,.deals-week-label select { min-height:44px; }
}

/* Shared cards: docs/plans/PLAN-deal-card-comparisons-badges-grades-2026-10.md §2. */
.deal-card-grid,.deals-fallback-grid { align-items:stretch; }
.deal-card { align-self:stretch; min-width:0; }
.card-comparison { margin:6px 0 0; font-size:12px; }
.card-comparison-scope { font-size:11px; color:#5d6674; margin:0 0 5px; }
.card-store-row { display:flex; justify-content:space-between; align-items:baseline; gap:4px; min-height:24px; line-height:1.5; position:relative; padding:0; }
.card-store-row>span { min-width:0; overflow-wrap:anywhere; }
.card-store-row>strong { order:2; flex-shrink:0; font-variant-numeric:tabular-nums; }
.card-store-row::after { content:''; order:1; flex:1 1 8px; min-width:8px; border-bottom:1px dotted #aab5ad; align-self:baseline; transform:translateY(-3px); }
.card-store-row[data-lowest=true]>strong { color:#28643b; }
.card-more-stores,.card-comparison summary { display:inline-flex; align-items:center; min-height:24px; font-size:12px; color:#305b43; text-decoration:none; }
.card-attributes button { display:inline-flex; align-items:center; min-height:44px; font-size:12px; color:#305b43; text-decoration:underline; }
/* Dense, full-width targets remain at least 24px; long labels wrap naturally. */
.card-store-link { position:absolute; inset:0; z-index:1; border-radius:3px; }
.card-store-row:has(.card-store-link)>span>span { color:#305b43; }
.card-store-row:has(.card-store-link):hover { background:#f3f7f3; border-radius:3px; }
.card-attributes { display:flex; flex-wrap:wrap; gap:4px 7px; margin:4px 0 8px; font-size:11px; }
.card-attribute { max-width:100%; border:1px solid #d9e0e7; border-radius:9px; background:#f8fafb; }
.card-attribute[data-verified=false] { border-style:dashed; }
.card-attribute summary,.card-grade summary { display:flex; align-items:center; gap:5px; min-height:44px; padding:5px 7px; cursor:pointer; font-weight:700; }
.card-attribute img,.card-grade img { flex-shrink:0; }
.card-attribute p,.card-grade p { margin:0; padding:0 9px 9px; line-height:1.5; font-size:12px; overflow-wrap:anywhere; }
.card-grade { margin:5px 0 9px; border:1px solid #9ba8b4; border-radius:9px; background:#f0f3f6; }
.card-grade[data-tier=gold] { background:#fff5d7; border-color:#ad8423; }
.card-grade[data-tier=platinum] { background:#edf1f9; border-color:#6d7896; }
.card-grade summary { font-size:12px; }
.card-comparison :focus-visible,.card-attributes :focus-visible,.card-grade :focus-visible { outline:2px solid #176b52; outline-offset:2px; }
@media(max-width:599px) {
 .deal-card-grid,.deals-fallback-grid,.deals-page .deal-card-grid,.deals-page .deals-fallback-grid { grid-template-columns:minmax(0,1fr); }
}
@media(min-width:600px) and (max-width:1000px) {
 .deal-card-grid,.deals-fallback-grid,.deals-page .deal-card-grid,.deals-page .deals-fallback-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* A compact Canada flag; the recorded claim remains available on hover/focus/tap. */
.card-attribute[data-attribute=canada] { position:relative; align-self:center; border:0; background:transparent; border-radius:0; }
.card-attribute[data-attribute=canada]>summary { min-height:24px; min-width:24px; padding:0; }
.card-attribute[data-attribute=canada] summary img { width:24px; height:15px; }
.card-canada-label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.card-origin-tooltip,.card-attribute[data-attribute=canada]>p { position:absolute; z-index:30; top:100%; left:0; width:min(200px,calc(100vw - 64px)); padding:7px; border:1px solid #d9e0e7; border-radius:5px; background:#fff; color:#262626; font-size:11px; font-weight:400; line-height:1.4; white-space:normal; overflow-wrap:anywhere; box-shadow:0 3px 12px #0002; }
.card-origin-tooltip { visibility:hidden; opacity:0; pointer-events:none; }
.card-attribute[data-attribute=canada]:not([open]):is(:hover,:focus-within) .card-origin-tooltip { visibility:visible; opacity:1; }

.card-attribute[data-attribute=canada][data-verified=false]>summary::after { content:'?'; position:absolute; top:-3px; right:-5px; width:10px; height:10px; border-radius:50%; background:#fff; color:#5d6674; font-size:9px; line-height:10px; text-align:center; }
