/* Hallmark · genre: editorial · macrostructure: Catalogue · tone: brutal-minimal · anchor hue: heritage-blue
 * pre-emit critique: P5 H5 E4 S5 R5 V4
 */
html,
body { overflow-x: clip; }

body {
  background: var(--color-paper);
  color: var(--color-body);
  font-family: var(--font-body);
}

body > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: var(--space-lg);
  min-height: 112px;
  padding: var(--space-lg) var(--gutter);
  background: var(--color-ink-deep);
  color: var(--color-paper);
  border-block-start: var(--space-xs) solid var(--color-rule);
  border-block-end: var(--rule-strong) solid var(--color-ink-deep);
  box-shadow: none;
}

body > header .brand { min-width: 0; }
body > header .brand-icon { height: 44px; }
body > header .brand-text-logo { height: 25px; max-width: 230px; }
body > header .brand-divider { background: var(--color-rule); opacity: .35; }

body > header .header-meta {
  grid-column: 2;
  text-align: center;
  flex-direction: row;
  justify-content: center;
}

body > header .header-meta .title {
  font-size: var(--text-sm);
  letter-spacing: .28em;
  line-height: 1.2;
}

body > header .header-meta .updated { color: var(--color-accent); }
body > header .header-meta .note { color: var(--color-rule); }
body > header #line-user { justify-self: end; }

#lang-btn,
.filter-btn,
.origin-card,
#search,
#search-mob {
  border-radius: var(--radius-control) !important;
}

#lang-btn:focus-visible,
.filter-btn:focus-visible,
#search:focus-visible,
#search-mob:focus-visible,
.cart-btn:focus-visible {
  outline: var(--rule-strong) solid var(--color-focus);
  outline-offset: 3px;
}

.recovery-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(260px, .7fr);
  align-items: end;
  gap: var(--space-xl);
  max-width: 1600px;
  margin-inline: auto;
  padding: var(--space-2xl) var(--gutter) var(--space-3xl);
  border-block-end: var(--rule-strong) solid var(--color-ink);
  animation: recovery-enter var(--dur-enter) var(--ease-out) both;
}

.recovery-intro h1 {
  min-width: 0;
  margin: 0;
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-display);
  font-style: normal;
  font-weight: 900;
  letter-spacing: -.065em;
  line-height: 1;
  overflow-wrap: anywhere;
}

.recovery-intro h1 span {
  color: var(--color-paper);
  -webkit-text-stroke: 2px var(--color-ink);
}

.recovery-intro-meta {
  max-width: 34ch;
  justify-self: end;
  padding-block-end: var(--space-xs);
  font-size: var(--text-md);
  line-height: 1.55;
}

.recovery-terms {
  margin-block-start: var(--space-lg);
  color: var(--color-muted);
  font-size: var(--text-xs);
  letter-spacing: .06em;
  text-transform: uppercase;
}

.filter-bar {
  position: sticky;
  inset-block-start: 0;
  z-index: 70;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-md) var(--gutter);
  background: var(--color-paper);
  color: var(--color-body);
  border-block-end: var(--rule-strong) solid var(--color-ink);
  box-shadow: none;
}

.search-wrap { flex: 1 1 290px; width: auto; max-width: 420px; }
.search-wrap input,
.filter-mob-search input {
  min-height: 48px;
  padding-inline: var(--space-md);
  border: var(--rule-hairline) solid var(--color-ink);
  background: var(--color-surface);
  color: var(--color-body);
  font-family: var(--font-body);
}

.search-wrap input::placeholder,
.filter-mob-search input::placeholder { color: var(--color-muted); }

.filter-btn {
  min-height: 48px;
  padding: var(--space-sm) var(--space-md);
  border: var(--rule-hairline) solid var(--color-ink);
  background: var(--color-paper);
  color: var(--color-body);
  font-family: var(--font-body);
  white-space: nowrap;
  transition: background-color var(--dur-press) var(--ease-out), color var(--dur-press) var(--ease-out), transform var(--dur-press) var(--ease-out);
}

.filter-btn.active,
.filter-dropdown-trigger.has-active {
  background: var(--color-ink) !important;
  color: var(--color-paper) !important;
  border-color: var(--color-ink) !important;
}

.filter-btn:active { transform: translateY(2px); }
.filter-btn:disabled,
.search-wrap input:disabled,
.filter-mob-search input:disabled,
.cart-btn:disabled { opacity: .55; cursor: not-allowed; }
.filter-btn[data-state="loading"] { opacity: .72; cursor: wait; }
.filter-btn[data-state="error"] { border-color: var(--color-danger); color: var(--color-danger); }
.filter-btn[data-state="success"] { border-color: var(--color-success); color: var(--color-success); }
.filter-sep { background: var(--color-rule); }
.filter-label { color: var(--color-ink); }
.filter-dropdown-panel {
  border-radius: var(--radius-control);
  border-color: var(--color-ink);
  background: var(--color-surface);
  box-shadow: 6px 6px 0 var(--color-shadow);
}

main {
  width: 100%;
  max-width: 1600px;
  margin-inline: auto;
  padding: var(--space-xl) var(--gutter) var(--space-3xl);
}

.newarrival-block,
.recommend-block,
.new-block,
.stock-block { margin-block: 0 var(--space-2xl); }

.newarrival-header,
.recommend-header,
.new-header,
.stock-header {
  margin-block: 0 var(--space-lg);
  padding: 0 0 var(--space-md);
  color: var(--color-ink);
  border-block-end: var(--rule-hairline) solid var(--color-rule);
  background: transparent;
  font-size: var(--text-xs);
  letter-spacing: .22em;
}

.newarrival-badge,
.recommend-badge,
.new-badge,
.stock-badge {
  border-radius: var(--radius-control);
  background: transparent;
  color: var(--color-ink);
  border: var(--rule-hairline) solid var(--color-ink);
}

.tier-header {
  margin-block: var(--space-2xl) var(--space-lg);
  padding: 0 0 var(--space-md) var(--space-md);
  color: var(--color-ink);
  border-inline-start: var(--space-xs) solid var(--color-ink);
  border-block-end: var(--rule-hairline) solid var(--color-rule);
  font-size: var(--text-xs);
  letter-spacing: .22em;
}

.section { margin-block-end: var(--space-xl); }
.section-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-md);
  margin: 0;
  padding: var(--space-lg) var(--space-lg) var(--space-md);
  background: var(--color-surface);
  border: var(--rule-hairline) solid var(--color-rule-soft);
  border-block-end: 0;
  border-radius: var(--radius-card) var(--radius-card) 0 0;
}

.section-title {
  min-width: 0;
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-style: normal;
  font-weight: 900;
  letter-spacing: -.02em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.section-count { color: var(--color-muted); font-size: var(--text-xs); }
.table-wrap {
  overflow: clip;
  border: var(--rule-hairline) solid var(--color-rule-soft);
  border-block-start: var(--rule-strong) solid var(--color-ink);
  border-radius: 0 0 var(--radius-card) var(--radius-card) !important;
  background: var(--color-surface);
  box-shadow: 0 8px 24px var(--color-shadow) !important;
}

table { background: var(--color-surface); }
thead th {
  padding: 14px var(--space-md);
  background: var(--color-surface);
  color: var(--color-muted);
  border-block-end: var(--rule-hairline) solid var(--color-rule-soft);
  font-size: 9px;
  letter-spacing: .18em;
}

tbody tr { background: var(--color-surface); }
tbody td {
  padding: var(--space-md);
  border-block-end: var(--rule-hairline) solid var(--color-rule-soft);
}

td.sku {
  color: var(--color-muted);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .08em;
}

td.product-name { color: var(--color-body); font-size: 14px; font-weight: 700; }
.process-tag { border-color: var(--color-rule-soft); border-radius: var(--radius-control); }
.flavor span { color: var(--color-muted); }
td.price { color: var(--color-ink); font-size: 23px; font-variant-numeric: tabular-nums; }
td.price-bag { color: var(--color-accent); font-size: 21px; font-variant-numeric: tabular-nums; }
.new-tag,
.g1-tag,
.g2-tag,
.section-badge { border-radius: var(--radius-control); }
.cart-btn { border-radius: var(--radius-control) !important; background: var(--color-ink); color: var(--color-paper); }

footer {
  margin: 0 var(--gutter);
  padding: var(--space-lg) 0;
  border-block-start: var(--rule-strong) solid var(--color-ink);
  color: var(--color-muted);
  font-size: 10px;
  letter-spacing: .06em;
}

@media (hover: hover) and (pointer: fine) {
  .filter-btn:hover { background: var(--color-ink); color: var(--color-paper); }
  tbody tr:hover { background: var(--color-paper); box-shadow: inset var(--space-xs) 0 0 var(--color-accent); }
}

@media (max-width: 63.999rem) {
  body > header { grid-template-columns: minmax(0, 1fr) auto; }
  body > header .header-meta { grid-column: auto; justify-self: end; }
  body > header #line-user { grid-column: 1 / -1; justify-self: end; }
  .recovery-intro { grid-template-columns: minmax(0, 1fr); padding-block: var(--space-xl) var(--space-2xl); }
  .recovery-intro-meta { justify-self: start; }
}

@media (max-width: 43.75rem) {
  body > header {
    min-height: 70px;
    grid-template-columns: minmax(0, 1fr) auto auto;
    padding: var(--space-md);
    gap: var(--space-sm);
  }
  body > header .brand-icon { height: 30px; }
  body > header .brand-text-logo { height: 16px; max-width: 145px; }
  body > header .brand-divider { display: none; }
  body > header .header-meta { width: auto; margin: 0; }
  body > header .header-meta-text { display: none; }
  body > header #line-user { grid-column: 3; grid-row: 1; justify-self: end; margin-inline-start: 0; }
  .recovery-intro { padding: var(--space-lg) var(--space-md) var(--space-xl); }
  .recovery-intro h1 { font-size: clamp(42px, 15vw, 66px); line-height: .92; }
  .recovery-intro-meta { font-size: var(--text-sm); }
  .recovery-terms { margin-block-start: var(--space-md); }
  .filter-bar { display: none !important; }
  .filter-mobile {
    display: block;
    position: sticky;
    inset-block-start: 0;
    z-index: 70;
    padding: var(--space-md);
    background: var(--color-paper);
    color: var(--color-body);
    border-block-end: var(--rule-strong) solid var(--color-ink);
  }
  .filter-mob-search { margin-block-end: var(--space-sm); }
  .filter-mob-search input { width: 100%; }
  .origin-grid,
  .filter-mob-pills {
    display: flex;
    gap: var(--space-sm);
    overflow-x: auto;
    padding-block: var(--space-xs);
    scrollbar-width: thin;
  }
  .origin-card { min-width: max-content; }
  main { padding: var(--space-lg) var(--space-md) var(--space-2xl); }
  .tier-header { margin-block-start: var(--space-xl); }
  .section-header {
    grid-template-columns: auto minmax(0, 1fr);
    padding: var(--space-md);
  }
  .section-count { grid-column: 2; margin-inline-start: 0; }
  .section-title { font-size: 18px; }
  .table-wrap { overflow: visible; border: 0; background: transparent; box-shadow: none !important; }
  table,
  thead,
  tbody,
  th,
  td,
  tr { display: block; }
  thead { display: none; }
  tbody { display: grid; gap: var(--space-sm); }
  tbody tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto auto auto;
    gap: var(--space-xs) var(--space-md);
    padding: var(--space-md);
    border: var(--rule-hairline) solid var(--color-rule-soft);
    background: var(--color-surface);
    box-shadow: 0 5px 14px var(--color-shadow);
  }
  tbody td { padding: 0; border: 0; }
  tbody td:nth-child(2) { grid-column: 1 / -1; grid-row: 1; padding-inline-end: 0; font-size: 16px; }
  tbody td:nth-child(1) { grid-column: 1; grid-row: 2; }
  tbody td:nth-child(3) { grid-column: 1; grid-row: 3; padding-block-start: var(--space-xs); }
  tbody td:nth-child(4),
  tbody td:nth-child(5) { display: none; }
  tbody td:nth-child(6) { grid-column: 1 / -1; grid-row: 4; padding-block-start: var(--space-sm); }
  tbody td:nth-child(7) { grid-column: 2; grid-row: 2; font-size: 22px; }
  tbody td:nth-child(7)::before { content: '1 KG'; display: block; color: var(--color-muted); font-size: 9px; letter-spacing: .08em; }
  tbody td:nth-child(8) { grid-column: 2; grid-row: 3; padding-block-start: var(--space-xs); font-size: 18px; }
  tbody td:nth-child(8)::before { content: 'BAG'; display: block; color: var(--color-muted); font-size: 9px; letter-spacing: .08em; }
  td.cart-cell { grid-column: 2; grid-row: 4; align-self: end; }
  td.cart-cell .cart-btn { width: 44px; height: 44px; }
  footer { margin-inline: var(--space-md); }
}

@media (max-width: 23.4375rem) {
  .recovery-intro h1 { font-size: 44px; }
  .section-header { grid-template-columns: minmax(0, 1fr); }
  .section-flag { display: none; }
  .section-count { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@keyframes recovery-enter {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
