:root {
  --app-paper: oklch(.984 .006 262);
  --app-ink: oklch(.236 .062 262);
  --app-accent: oklch(.483 .207 263);
  --app-line: oklch(.878 .025 259);
  --plaza-white: #fff;
  --plaza-muted: oklch(.46 .044 260);
  --plaza-tint: oklch(.945 .026 260);
  --focus: var(--app-accent);
}
body { background: var(--app-paper); color: var(--app-ink); }
:where(h1, h2, h3, p, figure) { margin: 0; }
a { color: inherit; text-underline-offset: .18em; }
::selection { background: var(--app-accent); color: var(--plaza-white); }
.plaza-bar { position: sticky; top: 0; z-index: 10; background: var(--plaza-white); border-bottom: 1px solid var(--app-line); }
.plaza-bar-inner, .plaza-footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.plaza-bar-inner { min-height: 68px; }
.plaza-brand { display: flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 800; text-decoration: none; }
.plaza-brand img { flex: none; }
.plaza-account { display: inline-flex; align-items: center; min-height: 44px; white-space: nowrap; font-size: .9rem; font-weight: 750; text-decoration: none; }
.plaza-footer { padding-block: 18px; border-top: 1px solid var(--app-line); color: var(--plaza-muted); font-size: .85rem; }
.plaza-footer strong { color: var(--app-ink); }
.plaza-footer span { display: block; }
.plaza-footer a { display: inline-flex; align-items: center; min-height: 44px; }
.plaza-market, .plaza-directory, .plaza-detail { padding-block: 24px 48px; }
.plaza-hero {
  display: grid;
  grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr);
  grid-template-areas: "intro image" "actions image" "demo image";
  grid-template-rows: auto auto 1fr;
  align-items: end;
  gap: 12px 36px;
}
.plaza-hero-text { grid-template-columns: 1fr; grid-template-rows: auto; grid-template-areas: "intro" "actions" "demo"; }
.plaza-hero-copy { grid-area: intro; }
.plaza-label, .plaza-card-meta { color: var(--app-accent); font-weight: 800; font-size: .82rem; }
.plaza-label .icon { margin-right: 2px; width: 17px; height: 17px; }
.plaza-hero h1 { margin: 4px 0 10px; font-size: clamp(3rem, 7vw, 6rem); line-height: .97; letter-spacing: -.045em; overflow-wrap: anywhere; }
.plaza-hours { font-weight: 750; }
.plaza-venue { color: var(--plaza-muted); }
.plaza-cover { grid-area: image; align-self: center; min-width: 0; }
.plaza-cover img { width: 100%; height: clamp(220px, 25vw, 325px); object-fit: cover; border-radius: 12px; }
.plaza-cover figcaption { margin-top: 4px; font-size: .75rem; color: var(--plaza-muted); }
.plaza-hero > .plaza-hero-actions { grid-area: actions; align-self: start; }
.plaza-hero-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.plaza-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  min-height: 44px; padding: 8px 14px; border: 1px solid transparent; border-radius: 9px;
  font-size: .91rem; font-weight: 800; line-height: 1.2; text-decoration: none; cursor: pointer;
}
.plaza-primary { background: var(--app-accent); color: var(--plaza-white); }
.plaza-primary:hover { background: var(--app-ink); }
.plaza-secondary { color: var(--app-accent); background: var(--plaza-white); border-color: var(--app-line); }
.plaza-secondary:hover { border-color: var(--app-accent); }
.plaza-demo-note { grid-area: demo; align-self: start; color: var(--plaza-muted); font-size: .78rem; }
.plaza-demo-note strong { color: var(--app-ink); }

body:not(:has(#explorar[data-view="plano"], #plano:target, #plano .map-pin:target)) #plano,
body:not(:has(#explorar[data-view="puestos"], #puestos:target)) .catalogue-screen { display: none; }
body:has(#explorar[data-view="plano"], #plano:target, #plano .map-pin:target) .edition-discovery,
body:has(#explorar[data-view="puestos"], #puestos:target) :is(.plaza-hero, .edition-discovery, .plaza-visit) { display: none; }
.plaza-catalogue { scroll-margin-top: 82px; }
.plaza-discovery { margin-top: 24px; }
.plaza-section-head { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.plaza-section-head h2 { font-size: clamp(1.48rem, 2.3vw, 2.15rem); line-height: 1.12; letter-spacing: -.03em; }
.plaza-section-head > a:not(.plaza-button) { display: inline-flex; align-items: center; min-height: 44px; gap: 3px; color: var(--app-accent); font-weight: 800; white-space: nowrap; }
.plaza-section-head h1, .plaza-directory h1, .plaza-stall-copy h1 { font-size: clamp(2rem, 4vw, 3.7rem); line-height: 1; letter-spacing: -.04em; overflow-wrap: anywhere; }
.plaza-explore-head .plaza-label { margin-bottom: 4px; }
.plaza-filters { margin: 16px 0 14px; }
.market-search {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 7px;
  max-width: 610px; padding: 4px; border: 1px solid var(--app-line); border-radius: 12px; background: var(--plaza-white);
}
.market-search > .icon { margin-left: 6px; color: var(--app-accent); }
.market-search input { width: 100%; min-width: 0; min-height: 44px; padding: 0 4px; border: 0; color: var(--app-ink); background: transparent; }
.market-search input::placeholder { color: var(--plaza-muted); }
.market-refine { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin-top: 8px; }
.market-refine :is(select, label) {
  min-height: 44px; padding: 5px 10px; border: 1px solid var(--app-line); border-radius: 8px;
  background: var(--plaza-white); color: var(--app-ink); font-size: .9rem;
}
.market-refine select { max-width: 100%; }
.market-refine label { display: flex; align-items: center; gap: 5px; cursor: pointer; }
.market-refine input { margin: 0; accent-color: var(--app-accent); }
.market-refine a { display: inline-flex; align-items: center; min-height: 44px; color: var(--app-accent); }
.plaza-total { font-weight: 750; }
.plaza-catalogue-note { color: var(--plaza-muted); font-size: .84rem; }
.plaza-cards, .plaza-directory-list, .plaza-detail .product-list, .plaza-detail .contact-links { list-style: none; margin: 0; padding: 0; }
.plaza-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.plaza-catalogue .plaza-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 14px; }
.plaza-card { display: block; height: 100%; min-width: 0; color: inherit; text-decoration: none; }
.plaza-card-media { border-radius: 12px; overflow: clip; background: var(--plaza-tint); }
.plaza-card-media img { width: 100%; aspect-ratio: 1.48; height: auto; object-fit: cover; }
.plaza-card-copy { display: grid; justify-items: start; gap: 3px; padding: 9px 0 6px; overflow-wrap: anywhere; }
.plaza-card-copy h3 { font-size: clamp(1rem, 1.55vw, 1.35rem); line-height: 1.14; }
.plaza-card:hover h3, .plaza-directory-item:hover h2 { text-decoration: underline; }
.plaza-card-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 3px 6px; line-height: 1.2; }
.plaza-card-number { padding: 3px 5px; border-radius: 4px; background: var(--plaza-tint); color: var(--app-accent); font-weight: 800; font-variant-numeric: tabular-nums; }
.plaza-card-stall { color: var(--plaza-muted); font-size: .87rem; line-height: 1.25; }
.plaza-price, .plaza-lead-product strong, .product-list > li > strong { color: var(--app-accent); font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
.plaza-price { font-size: 1.1rem; }
.plaza-promo { color: var(--plaza-muted); font-size: .75rem; }
.plaza-promo .icon { width: 14px; height: 14px; }
.plaza-empty { padding-block: 24px; }
.plaza-empty p { margin: 8px 0; }
.plaza-empty .plaza-button { margin-top: 8px; }
.pager { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.pager a { display: inline-flex; align-items: center; min-height: 44px; color: var(--app-accent); }
.plaza-visit { display: grid; grid-template-columns: 1.4fr 1fr; gap: 24px; margin-top: 32px; padding: 20px 0 0; border-top: 1px solid var(--app-line); }
.plaza-visit h2, .plaza-visit h3 { font-size: 1.28rem; line-height: 1.15; }
.plaza-visit p { margin-block: 6px 10px; max-width: 66ch; color: var(--plaza-muted); }

.plaza-back { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; margin-bottom: 12px; color: var(--app-accent); font-weight: 750; }
.plaza-stall-head { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); grid-template-areas: "media copy"; gap: clamp(12px, 4vw, 48px); align-items: center; }
.plaza-stall-head-no-photo { grid-template-columns: 1fr; grid-template-areas: "copy"; }
.plaza-stall-media { grid-area: media; }
.plaza-stall-media img, .plaza-extra-photo img { width: 100%; height: auto; max-height: 450px; aspect-ratio: 1.45; object-fit: cover; border-radius: 12px; }
.plaza-stall-copy { grid-area: copy; min-width: 0; }
.plaza-stall-copy h1 { margin: 6px 0 10px; }
.plaza-lead-product { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 3px 12px; margin-block: 12px; font-size: 1.1rem; font-weight: 750; }
.plaza-lead-product strong { font-size: 1.4rem; }
.plaza-stall-text { margin-top: 12px; max-width: 66ch; color: var(--plaza-muted); }
.plaza-detail-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 24px; margin-top: 26px; align-items: start; }
.plaza-detail-section, .plaza-extra-photo { margin-bottom: 22px; }
.plaza-detail h2 { margin-bottom: 8px; font-size: clamp(1.28rem, 2.5vw, 1.65rem); line-height: 1.15; }
.plaza-detail .product-list li { display: flex; justify-content: space-between; gap: 10px; padding-block: 11px; border-top: 1px solid var(--app-line); }
.plaza-detail .product-list h3 { font-size: 1.03rem; }
.plaza-detail .product-list p, .plaza-detail .product-list small { color: var(--plaza-muted); }
.plaza-promotions, .plaza-contact { padding: 16px; background: var(--plaza-tint); border-radius: 12px; }
.plaza-contact { scroll-margin-top: 82px; }
.plaza-contact p, .plaza-contact li { overflow-wrap: anywhere; }
.plaza-contact a, .plaza-video a { display: flex; align-items: center; gap: 5px; min-height: 44px; color: var(--app-accent); }
.plaza-video iframe { display: block; width: 100%; aspect-ratio: 16/9; border: 0; }
.plaza-directory-head { margin-bottom: 18px; }
.plaza-directory-head p { margin-top: 8px; color: var(--plaza-muted); }
.plaza-directory-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.plaza-directory-item { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 14px; height: 100%; padding: 12px; border: 1px solid var(--app-line); border-radius: 12px; background: var(--plaza-white); text-decoration: none; }
.plaza-directory-item-no-photo { grid-template-columns: 1fr; }
.plaza-directory-item img { width: 100%; height: 100%; min-height: 96px; object-fit: cover; border-radius: 7px; }
.plaza-directory-item h2 { font-size: clamp(1.2rem, 2.4vw, 1.8rem); line-height: 1.1; }
.plaza-directory-item p { color: var(--plaza-muted); font-size: .9rem; }
.plaza-card-link { display: flex; align-items: center; gap: 4px; margin-top: 6px; color: var(--app-accent); font-weight: 750; }

@media (max-width: 800px) {
  .plaza-bar-inner { min-height: 60px; }
  .plaza-market, .plaza-detail, .plaza-directory { padding-top: 14px; }
  .plaza-market.shell, .plaza-detail.shell, .plaza-directory.shell { width: calc(100% - 32px); }
  .plaza-hero { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; grid-template-areas: "intro" "image" "actions" "demo"; gap: 10px; }
  .plaza-hero-text { grid-template-areas: "intro" "actions" "demo"; }
  .plaza-hero h1 { font-size: clamp(2.75rem, 12.3vw, 3.8rem); margin-bottom: 6px; }
  .plaza-hours, .plaza-venue { font-size: .88rem; }
  .plaza-cover img { height: clamp(174px, 54vw, 265px); }
  .plaza-hero > .plaza-hero-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .plaza-hero-actions .plaza-button:only-child { grid-column: 1 / -1; }
  .plaza-hero-actions .plaza-button { padding-inline: 8px; }
  .plaza-discovery { margin-top: 14px; }
  .plaza-section-head { align-items: center; margin-bottom: 8px; }
  .plaza-discovery .plaza-cards { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 44%; overflow-x: auto; gap: 10px; padding: 4px; margin: -4px; scroll-snap-type: x proximity; }
  .plaza-discovery li { scroll-snap-align: start; min-width: 0; }
  .plaza-catalogue .plaza-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 10px; }
  .plaza-catalogue, .plaza-contact { scroll-margin-top: 68px; }
  .plaza-stall-head { grid-template-columns: 1fr; grid-template-areas: "media" "copy"; gap: 12px; }
  .plaza-stall-head-no-photo { grid-template-areas: "copy"; }
  .plaza-stall-media img { max-height: 255px; aspect-ratio: 1.53; }
  .plaza-detail-grid, .plaza-visit, .plaza-directory-list { grid-template-columns: 1fr; }
  .plaza-back { margin-bottom: 6px; }
}
@media (max-width: 360px) {
  .plaza-hero-actions .icon, .plaza-explore-head .plaza-button .icon { width: 16px; height: 16px; }
  .market-refine { gap: 6px; }
  .market-refine :is(select, label) { padding-inline: 7px; font-size: .82rem; }
  .plaza-footer-inner { flex-wrap: wrap; gap: 6px; }
}
