/* Generated from scripts/styles/manifest.json. Edit canonical sources, not this immutable file. */
/* Source: pages/store-visit.css */
/* Store + Visit content hierarchy · v96.
   Route-local only. Shared tokens and immutable predecessor styles are unchanged. */
[data-page="store"] > .wrap > .mast--page,
[data-page="visit"] > .wrap > .mast--page {
  padding-block: 40px 32px;
}
/* Native fragment alignment must follow late font reflow, not a stale smooth-scroll target. */
html:has([data-page="store"] #store-selected-brands:target) {
  scroll-behavior: auto;
}
[data-page="store"] #store-selected-brands {
  scroll-margin-top: calc(var(--global-header-height, 72px) + 16px);
}
[data-page="store"] #store-selected-brands-title {
  margin-bottom: 16px;
}
[data-page="store"] .store-category-overview {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: var(--space-stack, 20px);
}
[data-page="store"] .store-category-overview > a {
  min-height: 80px;
  padding: 12px 14px;
  gap: 6px;
  justify-content: flex-start;
  border-bottom: 0;
  border-right: 1px solid var(--color-ink, #101010);
}
[data-page="store"] .store-category-overview > a:last-child {
  border-right: 0;
}
[data-page="store"] .store-category-overview strong {
  font-size: 19px;
  line-height: 1.2;
}
[data-page="store"] .store-category-overview span {
  font-size: 12px;
  line-height: 1.4;
}
[data-page="visit"] .visit-state-grid {
  grid-template-columns: minmax(0, 1fr);
  margin-bottom: 24px;
}
[data-page="visit"] #visit-support {
  margin-top: 0;
}
[data-page="visit"] #visit-support .visit-note {
  margin-inline: 0;
}
[data-page="visit"] .visit-state-card--current {
  min-height: 0;
}
[data-page="visit"] .visit-state-card--current:first-child {
  border: 0;
}
[data-page="visit"] .visit-secondary-spaces .desc a {
  /* VI-03: inline links get a taller hit area without changing the line box. */
  padding-block: 6px;
  text-decoration: underline;
  text-underline-offset: .18em;
}
[data-page="visit"] .visit-map-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
[data-page="visit"] .visit-render-note {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-left: 3px solid var(--color-brick, #71402a);
  background: var(--color-oat, #eae3d4);
  color: var(--color-ink, #101010);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
}
[data-page="visit"] #visit-future-spaces {
  padding-block: 32px 64px;
  border-top: 1px solid var(--color-ink, #101010);
}
[data-page="visit"] .visit-state-card--future {
  min-height: 0;
  margin-bottom: 36px;
  padding: 24px;
}
[data-page="visit"] .visit-state-card--future h2 {
  margin-top: 16px;
  font-size: 30px;
}
[data-page="visit"] .visit-state-card--future .btn {
  margin-top: 20px;
}
[data-page="visit"] .visit-future-space-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
[data-page="visit"] .visit-future-space-grid .space-row {
  display: flex;
  flex-direction: column;
  min-width: 0;
  margin: 0;
  padding: 0 0 20px;
  gap: 0;
  content-visibility: visible;
}
[data-page="visit"] .visit-future-space-grid .space-row .ph {
  width: 100%;
  flex: 0 0 auto;
}
[data-page="visit"] .visit-future-space-grid .space-row .bd {
  padding: 18px 0 0;
}
[data-page="visit"] .visit-future-space-grid .space-row h3 {
  font-size: clamp(20px, 1.8vw, 26px);
  line-height: 1.3;
  margin-block: 8px;
}
[data-page="visit"] .visit-future-space-grid .space-row p {
  font-size: 14px;
  line-height: 1.65;
}
@media (max-width: 919px) {
  [data-page="visit"] .visit-future-space-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  [data-page="visit"] .visit-future-space-grid .space-row {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    align-items: start;
    gap: 18px;
  }
  [data-page="visit"] .visit-future-space-grid .space-row .bd {
    padding: 0;
  }
}
@media (min-width: 561px) and (max-width: 860px) {
  /* Match the inherited 2×2 selectors while this route uses four columns. */
  [data-page="store"] .store-category-overview > a:nth-child(2n) {
    border-right: 1px solid var(--color-ink, #101010);
  }
  [data-page="store"] .store-category-overview > a:nth-child(-n+2) {
    border-bottom: 0;
  }
  [data-page="store"] .store-category-overview > a:last-child {
    border-right: 0;
  }
}
@media (max-width: 560px) {
  [data-page="store"] > .wrap > .mast--page,
  [data-page="visit"] > .wrap > .mast--page {
    padding-block: 30px 26px;
  }
  [data-page="store"] .store-category-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  [data-page="store"] .store-category-overview > a:nth-child(2n) {
    border-right: 0;
  }
  [data-page="store"] .store-category-overview > a:nth-child(-n+2) {
    border-bottom: 1px solid var(--color-ink, #101010);
  }
  [data-page="visit"] .visit-state-card--current {
    padding: 24px 18px;
  }
  [data-page="visit"] .visit-future-space-grid .space-row {
    gap: 14px;
  }
}


/* Store cards link to a brand detail page when one is published (P1-1). */
[data-page="store"] .brand-detail-link {
  margin-left: 12px;
}

/* The Store hero carries a third CTA (brand partnership); keep the first brand card in the first
   mobile screen by tightening only the hero action rows. Touch targets stay at 44px. */
@media (max-width:560px){
  [data-page="store"] .mast .mast-actions{gap:8px}
  [data-page="store"] .mast .mast-actions .btn{min-height:44px;padding-top:9px;padding-bottom:9px}
  [data-page="store"] .mast.mast--page{padding-bottom:16px}
  [data-page="store"] .mast .store-current-location{margin-top:14px}
  /* ST-03 (R2): on phones the two visitor buttons share one row; the partnership CTA stays in
     the hero (#155) as a quieter text link on its own line instead of a third wrapped button. */
  [data-page="store"] .mast .mast-actions .btn[data-cta-id="store:partner"]{flex-basis:100%;justify-content:flex-start;padding-left:0;padding-right:0;border-color:transparent;background:transparent;text-decoration:underline;text-underline-offset:4px}
}
/* ST-01/S-14 (2026-10-01 audit): the brand directory fills by width — about 5 columns at
   1440px and 7 at 1920px — and cards align to their own content, never a neighbour's photo. */
[data-page="store"] .store-brand-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
  gap: 16px;
  align-items: start;
  margin-top: var(--space-stack, 24px);
}
[data-page="store"] .store-brand-grid > .brand-option {
  min-width: 0;
  height: 100%;
}
[data-page="store"] .store-brand-more-title {
  margin: var(--space-block, 48px) 0 0;
  font-size: var(--scale-h3, 20px);
  font-weight: 700;
  line-height: 1.35;
}
[data-page="store"] .store-brand-grid--text {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr));
  align-items: stretch;
}
[data-page="store"] .store-brand-grid--text > .brand-option {
  padding: 16px 18px;
  background: var(--color-paper-warm, #FCF9F5);
}
[data-page="store"] .store-brand-grid--text > .brand-option h3 {
  margin: 6px 0 4px;
  font-size: var(--scale-card, 18px);
}
[data-page="store"] .store-brand-grid--text > .brand-option .desc {
  font-size: 14px;
  line-height: 1.6;
}
[data-page="store"] .store-brand-grid--text > .brand-option .brand-cta {
  padding-top: 10px;
}
@media (max-width: 560px) {
  [data-page="store"] .store-brand-grid:not(.store-brand-grid--text) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  [data-page="store"] .store-brand-grid:not(.store-brand-grid--text) > .brand-option {
    padding: 10px 10px 14px;
  }
  [data-page="store"] .store-brand-grid--text {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  [data-page="store"] .store-brand-grid--text > .brand-option {
    padding: 14px;
  }
}

