/* Accepted N01–N07 / E01–E06. Real catalogue rows, manual photos and existing actions. */
[data-places-root], .routes-v3-directory .page-main,
.app-shell--merchant-list, .app-shell--stay-directory,
#place-main, #route-main, .app-shell--shop-detail, .app-shell--stay-detail {
  --discovery-paper: color-mix(in srgb, var(--color-surface) 92%, white);
  --discovery-peach: color-mix(in srgb, var(--color-tint-food) 42%, var(--color-canvas));
  --discovery-rule: color-mix(in srgb, var(--color-primary) 16%, var(--color-canvas));
}

/* N01/N02: the controls retain their shared URL-backed result projection. */
[data-places-root] .page-head--places,
.routes-v3-directory .page-head,
.app-shell--merchant-list .page-head,
.app-shell--stay-directory .stay-directory__head {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding-block: 1.1rem .8rem;
}
[data-places-root] .page-head__photo,
.routes-v3-directory .page-head__photo,
.app-shell--merchant-list .page-head__photo { border-radius: 1rem; }
[data-places-root] .page-head h1,
.routes-v3-directory .page-head h1,
.app-shell--merchant-list .page-head h1 { font-size: clamp(1.65rem, 6.9vw, 2.25rem); line-height: 1.45; }
[data-places-root] .page-head__count { font-size: .68em; }
[data-places-root] .search-pill { min-block-size: 3rem; border: 1px solid var(--discovery-rule); box-shadow: 0 2px 8px rgb(90 55 30 / 4%); }
[data-places-root] .places-discovery-modes { display: grid; grid-template-columns: 1fr 1fr 1.35fr; gap: .45rem; padding-block: .55rem; }
[data-places-root] .places-discovery-modes .filter-chip { padding-inline: .3rem; font-size: var(--text-sm); white-space: normal; }
[data-places-root] .filter-chip,
.routes-v3-directory .filter-chip,
.app-shell--merchant-list .filter-chip { border: 1px solid var(--discovery-rule); background: var(--discovery-peach); color: var(--color-ink); box-shadow: none; }
[data-places-root] .filter-chip[aria-pressed="true"],
.routes-v3-directory .filter-chip[aria-pressed="true"],
.app-shell--merchant-list .filter-chip[aria-pressed="true"],
[data-places-root] .view-button[aria-pressed="true"] { background: var(--color-primary); color: var(--color-on-primary); border-color: transparent; }
[data-places-root] .view-switch--compact { width: max-content; max-width: calc(100% - 2 * var(--space-gutter)); margin-inline-start: auto; padding: .2rem; border: 1px solid var(--discovery-rule); }
[data-places-root] .view-switch--compact .view-button { min-inline-size: 6.5rem; padding-inline: .85rem; }
[data-places-root] .place-list { grid-template-columns: minmax(0, 1fr); gap: .65rem; }
[data-places-root] .place-row { content-visibility: visible; }
[data-places-root] .place-row .place-row__link {
  display: grid; grid-template-columns: clamp(7rem, 34vw, 9rem) minmax(0, 1fr);
  gap: .8rem; min-height: 8rem; padding: .45rem; background: var(--discovery-paper);
  border-radius: 1.1rem; box-shadow: 0 3px 12px rgb(90 55 30 / 5%);
}
[data-places-root] .place-row .place-row__photo { position: static; grid-area: auto; width: 100%; height: 100%; min-width: 0; min-height: 7.5rem; aspect-ratio: auto; border-radius: .8rem; }
[data-places-root] .place-row .place-row__body { position: static; grid-area: auto; display: grid; margin: 0; padding: .2rem 2.5rem .2rem 0; background: none; box-shadow: none; border-radius: 0; align-content: center; align-self: stretch; }
[data-places-root] .place-row .place-row__name { font-size: var(--text-base); font-weight: 700; line-height: 1.5; }
[data-places-root] .place-row .place-row__meta { display: flex; flex-wrap: wrap; gap: .3rem; }
[data-places-root] .place-row .save-heart { inset-block-start: .55rem; inset-inline-end: .55rem; translate: none; background: transparent; box-shadow: none; }
[data-places-root] .map-panel { padding-inline: 0; }
[data-places-root] .map-shell { min-height: 29rem; border-radius: 0; box-shadow: none; }
[data-places-root] .map-place-card { inset-inline: .3rem; inset-block-end: .3rem; border-radius: 1.45rem; padding: 1rem .75rem .75rem; background: var(--discovery-paper); box-shadow: 0 -4px 24px rgb(30 62 57 / 12%); }
[data-places-root] .map-place-card__name { font-size: var(--text-base); }
[data-places-root] .map-place-card__photo { width: 4rem; height: 4rem; border-radius: .75rem; }

/* N03/N04 and N06: photo first, then one readable factual card. */
#place-main .place-opening, #route-main .place-opening { padding-block: .6rem 1rem; gap: .7rem; background: none; box-shadow: none; }
#place-main .place-hero, #route-main .place-hero { margin-inline: .6rem; width: calc(100% - 1.2rem); border-radius: 1.2rem; }
#place-main .save-heart--hero, #route-main .save-heart--hero { inset-inline-end: 1.05rem; }
#place-main .place-hero__sticker, #route-main .place-hero__sticker { display: none; }
#place-main .carousel-controls, #route-main .carousel-controls { margin-inline: .6rem; }
#place-main .carousel-thumbnails, #route-main .carousel-thumbnails { gap: .45rem; }
#place-main .carousel-thumbnail, #route-main .carousel-thumbnail { width: clamp(4rem, 21vw, 6.5rem); height: clamp(3rem, 15vw, 4.5rem); border-radius: .7rem; }
.discovery-summary-card { display: grid; gap: .8rem; margin-inline: var(--space-gutter); padding: 1rem; border-radius: 1.25rem; background: var(--discovery-paper); box-shadow: 0 3px 14px rgb(90 55 30 / 5%); }
#place-main .discovery-summary-card .place-title-block,
#route-main .discovery-summary-card .place-title-block { padding: 0; gap: .45rem; }
#place-main .place-kicker { font-size: var(--text-sm); }
#place-main .place-title-block h1, #route-main .place-title-block h1 { font-size: clamp(1.6rem, 6.6vw, 2rem); line-height: 1.5; }
#place-main .place-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-block: 1px solid var(--discovery-rule); padding-block: .85rem; gap: .8rem .65rem; }
#place-main .place-fact--wide { grid-column: 1 / -1; }
#place-main .place-fact { position: relative; padding-inline-start: 2.6rem; align-content: start; }
#place-main .place-fact > .icon { position: absolute; inset: .1rem auto auto 0; width: 2rem; height: 2rem; padding: .35rem; box-sizing: content-box; border-radius: 50%; color: var(--color-primary); background: var(--discovery-peach); }
#place-main .place-fact dt { font-size: var(--text-xs); }
#place-main .place-fact dd { font-size: var(--text-sm); line-height: 1.6; }
#place-main .discovery-summary-card .place-actions, #route-main .discovery-summary-card .place-actions { padding: 0; }
#place-main .discovery-summary-card .place-stamp-note { margin: 0; background: var(--discovery-peach); border-radius: .8rem; }
#place-main .place-story { padding-block: 1.5rem .8rem; }
#place-main .place-story__prose { line-height: 1.95; }
#place-main .season-card { border-radius: 1rem; background: var(--discovery-peach); }
#place-main .setting-list, #route-main .setting-list { border-radius: 1rem; box-shadow: 0 3px 12px rgb(90 55 30 / 5%); }
#place-main .setting-copy { display: grid; gap: .2rem; }
#place-main .setting-mark, #route-main .setting-mark { color: var(--color-primary); background: var(--discovery-peach); }
#place-main .place-map { display: grid; grid-template-columns: minmax(0, 1fr); gap: .6rem; }
#place-main .map-card { border-radius: 1rem; }

/* N05: consistent thumbnail routes grouped by the actual travel lane. */
.routes-v3-directory .route-groups { gap: 1.5rem; }
.routes-v3-directory .route-group__heading { margin-block-end: .55rem; }
.routes-v3-directory .route-group__heading h2 { display: flex; align-items: center; flex-wrap: wrap; gap: .2rem; font-size: var(--text-md); }
.routes-v3-directory .route-group__link { color: var(--color-ink); text-decoration: none; font-size: var(--text-md); }
.routes-v3-directory .route-group__list { grid-template-columns: minmax(0, 1fr); gap: .6rem; }
.routes-v3-directory .route-row { content-visibility: visible; }
.routes-v3-directory .route-row .place-row__link { display: grid; grid-template-columns: clamp(7.2rem, 34vw, 9rem) minmax(0, 1fr); min-height: 7rem; gap: .7rem; padding: .4rem; border-radius: 1rem; background: var(--discovery-paper); }
.routes-v3-directory .route-row .place-row__photo { width: 100%; height: 100%; min-width: 0; aspect-ratio: auto; border-radius: .7rem; min-height: 6.5rem; }
.routes-v3-directory .route-row .place-row__body { padding: .15rem 2.45rem .15rem 0; }
.routes-v3-directory .route-row .place-row__name { font-size: var(--text-base); font-weight: 700; }
.routes-v3-directory .route-row .save-heart { inset-inline-end: .4rem; background: var(--discovery-peach); box-shadow: none; }
.routes-v3-directory .route-row .chip--span { padding: .15rem .5rem; background: var(--discovery-peach); color: var(--color-primary); }
.routes-v3-directory .route-meta { font-size: var(--text-xs); line-height: 1.7; }
#route-main .discovery-summary-card .route-stats { margin: 0; padding: .4rem 0; gap: 1rem .6rem; }
#route-main .route-stat { border: 0; padding: 0; }
#route-main .route-stat dt { font-size: var(--text-xs); }
#route-main .route-stat dd { font-size: var(--text-base); line-height: 1.5; }
#route-main .discovery-summary-card :is(.route-start-note, .route-simulation-status, .route-stats-note, .route-v3-truth) { margin: 0; padding: 0; }
#route-main .route-mode-block { margin: 1rem var(--space-gutter); padding: 1rem; border-radius: 1rem; background: var(--discovery-paper); }
#route-main .route-stop { grid-template-columns: 2.35rem minmax(0, 1fr); gap: .5rem; }
#route-main .route-stop__badge { width: 2.35rem; height: 2.35rem; }
#route-main .route-stop__card { grid-template-columns: 5rem minmax(0, 1fr); padding: .65rem; gap: .5rem .65rem; border-radius: 1rem; }
#route-main .route-stop__photo { grid-column: 1; grid-row: 1 / 3; height: 4.25rem; }
#route-main .route-stop__body { display: contents; }
#route-main .route-stop__name { grid-column: 2; font-size: var(--text-base); line-height: 1.45; min-height: 2.75rem; text-decoration: none; }
#route-main .route-stop__progress { grid-column: 2; margin: 0; padding: 0; background: transparent; }
#route-main .route-stop__body > :is(.chip, .route-stop__line, .route-stop__tip, .route-stop__nav) { grid-column: 1 / -1; }
#route-main .route-stop__line { border-block-start: 1px solid var(--discovery-rule); padding-block-start: .55rem; line-height: 1.75; }
#route-main .route-stop__tip { padding: 0; background: none; font-size: var(--text-sm); }
#route-main .route-stop__nav { width: 100%; justify-content: center; min-height: 2.75rem; border-radius: .6rem; background: var(--color-surface-sunken); }
#route-main .route-leg { grid-column: 2; }
#route-main .route-spine::before { inset-inline-start: calc(var(--space-gutter) + 1.1rem); background: repeating-linear-gradient(to bottom, var(--color-primary) 0 4px, transparent 4px 9px); width: 1px; }
#route-main .route-finish { border-radius: 1rem; background: color-mix(in srgb, var(--color-tint-chill) 55%, var(--color-canvas)); }

/* E01 / E04: comparisons retain every actual result, with a clear detail door. */
.app-shell--merchant-list .merchant-results,
.app-shell--stay-directory .stay-results { background: transparent; }
.app-shell--merchant-list .merchant-list { gap: 0; }
.app-shell--merchant-list .merchant-row { padding-block: .75rem; border: 0; border-block-end: 1px solid var(--discovery-rule); border-radius: 0; background: transparent; box-shadow: none; }
.app-shell--merchant-list .merchant-row__link { grid-template-columns: clamp(7rem, 33vw, 9rem) minmax(0, 1fr); gap: .8rem; min-height: 9.5rem; }
.app-shell--merchant-list .merchant-row__media { border-radius: .8rem; min-height: 9rem; }
.app-shell--merchant-list .merchant-row__copy { padding: .2rem 0; gap: .3rem; }
.app-shell--merchant-list .merchant-row__name { font-size: var(--text-base); line-height: 1.5; }
.app-shell--merchant-list .merchant-row__decision,
.app-shell--merchant-list .merchant-row__hours { font-size: var(--text-sm); }
.app-shell--merchant-list .merchant-row__action { align-self: flex-end; min-height: 2.75rem; padding: .3rem .7rem; border-radius: .6rem; background: var(--color-primary); color: var(--color-on-primary); }
.app-shell--stay-directory .stay-result-list { gap: .9rem; }
.app-shell--stay-directory .stay-result { padding: .6rem; border: 0; border-radius: 1.1rem; background: var(--discovery-paper); box-shadow: 0 3px 14px rgb(90 55 30 / 5%); }
.app-shell--stay-directory .stay-result__link { grid-template-columns: clamp(7.1rem, 33vw, 9rem) minmax(0, 1fr); gap: .85rem; }
.app-shell--stay-directory .stay-result__media { border-radius: .8rem; }
.app-shell--stay-directory .stay-result__copy { padding: .15rem 0; gap: .45rem; }
.app-shell--stay-directory .stay-result__kind { display: none; }
.app-shell--stay-directory .stay-result__name { font-size: var(--text-base); line-height: 1.5; }
.app-shell--stay-directory .stay-result__summary { font-size: var(--text-sm); }
.app-shell--stay-directory .stay-result__facts { gap: .5rem; }
.app-shell--stay-directory .stay-result__fact { font-size: var(--text-xs); }
.app-shell--stay-directory .stay-result__fact:first-child { flex-basis: 100%; font-size: var(--text-base); font-weight: 700; color: var(--color-primary); }
.app-shell--stay-directory .stay-result__action { display: flex; justify-content: center; gap: .5rem; padding: .4rem .55rem; border-radius: .7rem; background: var(--color-primary); color: var(--color-on-primary); }

/* E02/E03: menu values become readable tiles; contact absence stays explicit. */
.app-shell--shop-detail .merchant-title-block,
.app-shell--shop-detail .merchant-facts,
.app-shell--shop-detail .merchant-menu,
.app-shell--shop-detail .merchant-location,
.app-shell--shop-detail .merchant-related { border: 0; padding-block: 1rem; background: transparent; }
.app-shell--shop-detail .merchant-category { display: block; width: fit-content; padding: .3rem .7rem; border-radius: .65rem; background: var(--discovery-peach); }
.app-shell--shop-detail .merchant-fact { grid-template-columns: 2.8rem minmax(0, 1fr); padding: 1rem; border: 1px solid var(--discovery-rule); border-radius: 1rem; background: var(--discovery-paper); }
.app-shell--shop-detail .merchant-fact > .icon { width: 2.4rem; height: 2.4rem; padding: .35rem; border-radius: 50%; background: var(--discovery-peach); }
.app-shell--shop-detail .merchant-facts .merchant-fact { background: var(--discovery-peach); border: 0; }
.app-shell--shop-detail [data-shop-hours] { color: var(--color-ink); font-size: 1.25rem; font-weight: 700; }
.app-shell--shop-detail .merchant-menu__list { display: grid; gap: .65rem; }
.app-shell--shop-detail .merchant-menu__list li { grid-template-columns: 3.6rem minmax(0, 1fr); gap: .2rem .8rem; padding: .8rem; border: 1px solid var(--discovery-rule); border-radius: 1rem; background: var(--discovery-paper); align-items: center; }
.app-shell--shop-detail .merchant-menu__mark { grid-column: 1; grid-row: 1 / 3; display: grid; place-items: center; min-height: 3.6rem; border-radius: .8rem; color: var(--color-primary); background: var(--discovery-peach); }
.app-shell--shop-detail .merchant-menu__mark .icon { width: 2.35rem; height: 2.35rem; }
.app-shell--shop-detail .merchant-menu__name { grid-column: 2; font-weight: 700; line-height: 1.65; }
.app-shell--shop-detail .merchant-menu__price { grid-column: 2; font-size: 1.35rem; color: var(--color-primary); white-space: normal; }
.app-shell--shop-detail .merchant-promotions__list li { border-radius: 1rem; padding: 1rem; border: 1px dashed var(--discovery-rule); background: var(--discovery-peach); }
.app-shell--shop-detail .merchant-related__track { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
.app-shell--shop-detail .merchant-related__link { display: grid; grid-template-columns: 3.8rem minmax(0, 1fr); gap: .75rem; padding: .55rem; border: 1px solid var(--discovery-rule); border-radius: .85rem; background: var(--discovery-paper); box-shadow: none; }
.app-shell--shop-detail .merchant-related__media { width: 3.8rem; aspect-ratio: 1; border-radius: .6rem; }
.app-shell--shop-detail .merchant-related__copy { padding: 0; min-height: 3.8rem; align-self: center; }
.app-shell--shop-detail .merchant-sticky { padding-block: .55rem; border-top: 1px solid var(--discovery-rule); }
.app-shell--shop-detail .merchant-sticky__button { min-height: 3rem; }

/* E05/E06: rate, arrival/departure, decision rows and factual amenity tiles. */
.app-shell--stay-detail .stay-detail__hero { margin: .65rem; width: calc(100% - 1.3rem); border-radius: 1rem; }
.app-shell--stay-detail .stay-detail__title-block,
.app-shell--stay-detail .stay-facts,
.app-shell--stay-detail .stay-related { background: transparent; border: 0; padding-block: 1rem; }
.app-shell--stay-detail .stay-detail__category { width: fit-content; padding: .3rem .7rem; border-radius: .65rem; background: var(--discovery-peach); font-size: var(--text-sm); }
.app-shell--stay-detail .stay-fact-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.app-shell--stay-detail .stay-fact { grid-column: 1 / -1; padding: .8rem 0; border-radius: 0; border-bottom: 1px solid var(--discovery-rule); background: transparent; }
.app-shell--stay-detail .stay-fact[data-stay-fact="price"] { display: grid; grid-template-columns: minmax(0, 1fr); padding: 1rem; border: 0; border-radius: 1rem; background: var(--discovery-peach); }
.app-shell--stay-detail .stay-fact[data-stay-fact="price"] dd { font-size: 1.45rem; }
.app-shell--stay-detail .stay-fact:is([data-stay-fact="check-in"], [data-stay-fact="check-out"]) { grid-column: auto; grid-template-columns: minmax(0, 1fr); padding: .9rem; border-radius: .85rem; background: var(--discovery-paper); border: 1px solid var(--discovery-rule); }
.app-shell--stay-detail .stay-fact:is([data-stay-fact="check-in"], [data-stay-fact="check-out"]) dd { font-size: 1.4rem; font-weight: 700; color: var(--color-ink); }
.app-shell--stay-detail .stay-fact[data-stay-fact="amenities"] { padding-block: 1rem; border: 0; }
.app-shell--stay-detail .stay-fact[data-stay-fact="amenities"] dt { font-size: var(--text-md); }
.app-shell--stay-detail .stay-amenities { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.app-shell--stay-detail .stay-amenity { display: grid; justify-items: center; align-content: start; gap: .6rem; padding: .8rem .4rem; border-radius: .85rem; background: var(--discovery-peach); text-align: center; color: var(--color-ink); font-size: var(--text-sm); line-height: 1.65; }
.app-shell--stay-detail .stay-amenity .icon { width: 2.75rem; height: 2.75rem; }
.app-shell--stay-detail .stay-fact:is([data-stay-fact="parking"], [data-stay-fact="address"], [data-stay-fact="contact"], [data-stay-fact="coordinates"]) { grid-template-columns: minmax(0, 1fr); gap: .35rem; padding: 1rem; border: 0; border-radius: .85rem; background: var(--discovery-peach); }
.app-shell--stay-detail .stay-related__track { grid-template-columns: minmax(0, 1fr); gap: .6rem; }
.app-shell--stay-detail .stay-related__link { display: grid; grid-template-columns: 4rem minmax(0, 1fr); align-items: center; gap: .8rem; padding: .6rem; border-radius: .9rem; background: var(--discovery-paper); box-shadow: none; }
.app-shell--stay-detail .stay-related__media { width: 4rem; aspect-ratio: 1; border-radius: .7rem; }
.app-shell--stay-detail .stay-related__copy { padding: 0; min-height: 4rem; }
.app-shell--stay-detail .stay-detail-actions { padding-block: .55rem; }
.app-shell--stay-detail .stay-detail-actions__buttons button { min-height: 3rem; }

@media (min-width: 700px) {
  [data-places-root] .place-list,
  .routes-v3-directory .route-group__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  [data-places-root] .place-row .place-row__link,
  .routes-v3-directory .route-row .place-row__link { grid-template-columns: minmax(7rem, 36%) minmax(0, 1fr); }
  [data-places-root] .places-discovery-modes { max-width: 38rem; }
  [data-places-root] .map-shell { min-height: 35rem; }
  [data-places-root] .map-place-card { max-width: 30rem; margin-inline: auto; }
  #place-main .discovery-summary-card, #route-main .discovery-summary-card { padding: 1.5rem; }
  #place-main .place-fact { padding-inline-start: 3.3rem; }
  #place-main .setting-copy { grid-template-columns: minmax(7rem, .8fr) minmax(0, 2fr); }
  #route-main .route-stop__card { grid-template-columns: 7rem minmax(0, 1fr); padding: 1rem; }
  #route-main .route-stop__photo { height: 5.5rem; }
  .app-shell--merchant-list .merchant-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.25rem; }
  .app-shell--merchant-list .merchant-row__link { grid-template-columns: minmax(6.5rem, 36%) minmax(0, 1fr); }
  .app-shell--stay-directory .stay-result__link { grid-template-columns: minmax(10rem, 34%) minmax(0, 1fr); }
  .app-shell--stay-directory .stay-result__facts { gap: .75rem 1rem; }
  .app-shell--stay-directory .stay-result__action { max-width: 24rem; }
  .app-shell--shop-detail .merchant-menu__list { grid-template-columns: minmax(0, 1fr); }
  .app-shell--shop-detail .merchant-related__track { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .app-shell--stay-detail .stay-amenities { gap: 1rem; }
}
html[data-easy="on"] .stay-amenities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
html[data-easy="on"] [data-places-root] .places-discovery-modes { grid-template-columns: minmax(0, 1fr); }
html[data-easy="on"] #place-main .place-facts { grid-template-columns: minmax(0, 1fr); }

/* ===== P02 fidelity (2026-09-14): N01 map view and N02 list view of places.html. Per-view header follows each accepted image. ===== */
[data-places-root] { --p02-teal: #0e4747; --p02-ink: #003b41; --p02-muted: #7c858c; --p02-rule: #ece2d5; --p02-paper: #fefcf9; }
[data-places-root] .search-pill { min-block-size: 36px; margin-block: 6px 0; border: 1px solid var(--p02-rule); border-radius: 999px; background: #fffbf5; box-shadow: 0 2px 8px rgb(90 55 30 / 5%); font-size: 1rem; }
[data-places-root] .places-discovery-modes { grid-template-columns: 1fr 1fr 1.3fr; gap: 8px; padding-block: 8px 0; }
[data-places-root] .filter-row:not(.places-discovery-modes) { padding-block: 6px 0; }
[data-places-root] .search-pill .icon { color: #55555a; }
[data-places-root] .screen-stage { background: transparent; box-shadow: none; border-radius: 0; }
[data-places-root] .filter-row .filter-chip { min-height: 31px; padding-inline: 14px; border: 1px solid #e6dccf; border-radius: 999px; background: #fffbf5; color: var(--p02-teal); font-size: .9rem; font-weight: 700; box-shadow: none; white-space: nowrap; }
[data-places-root] .places-discovery-modes .filter-chip { padding-inline: 6px; min-width: 0; font-size: clamp(.78rem, 3.4vw, .9rem); }
[data-places-root] .filter-row .filter-chip[aria-pressed="true"] { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-on-primary); }
[data-places-root] .view-switch--compact { padding: 3px; border: 1px solid var(--p02-rule); border-radius: 999px; background: #fff; box-shadow: 0 3px 10px rgb(60 40 20 / 10%); }
[data-places-root] .view-switch--compact .view-button { min-inline-size: 4.2rem; min-height: 28px; padding-inline: 10px; gap: 5px; border-radius: 999px; font-size: .78rem; font-weight: 700; color: var(--p02-teal); }
[data-places-root] .view-switch--compact .view-button .icon { width: 16px; height: 16px; }
[data-places-root] .view-switch--compact .view-button[aria-pressed="true"] { background: var(--color-primary); color: var(--color-on-primary); }
[data-places-root] .places-result-status { font-size: .9rem; font-weight: 700; color: var(--p02-teal); }

/* --- N01 map view: compact centred header, two pill rows, the map with the switch and count inside it, bottom sheet --- */
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) { --p02-map-h: 504px; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .page-head--places { display: block; height: auto; min-height: 0; overflow: visible; padding: 2px 0 4px; margin-bottom: 0; text-align: center; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .page-head__copy { margin: 0; padding: 0; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .search-pill { margin-top: 0; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .page-head__photo { display: none; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .page-head__copy { display: block; width: 100%; text-align: center; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .page-head h1 { margin-inline: auto; justify-self: center; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .page-head h1 { font-size: 1.4rem; line-height: 1.5; color: var(--p02-ink); }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .page-head__count { display: block; margin: 0; font-size: .85rem; line-height: 1.2; font-weight: 700; color: #0f4b4f; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .view-switch--compact { position: relative; z-index: 20; margin-inline-end: 12px; margin-block-end: -36px; transform: translateY(calc(var(--p02-map-h, 440px) - 56px)); }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .places-result-status { position: relative; z-index: 20; width: max-content; max-width: calc(100% - 24px); margin: 0 12px -22px auto; text-align: right; transform: translateY(calc(var(--p02-map-h, 440px) - 14px)); padding: 0; font-size: .8rem; line-height: 22px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* With the sheet open the switch and count sit just above it instead of under it. */
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]):has(.map-place-card:not([hidden])) .view-switch--compact { transform: translateY(calc(var(--p02-map-h, 440px) - 230px)); }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]):has(.map-place-card:not([hidden])) .places-result-status { transform: translateY(calc(var(--p02-map-h, 440px) - 188px)); }
/* The stage wrapper clips its box; the switch and count are translated down into the map, so let it overflow here. */
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .screen-stage { overflow: visible; z-index: 2; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-panel { position: relative; padding-block: 0; margin-block: -6px 0; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-legend, [data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-note { display: none; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-shell { height: var(--p02-map-h, 440px); min-height: var(--p02-map-h, 440px); overflow: hidden; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .maplibregl-ctrl-bottom-right { right: auto; left: 0; bottom: auto; top: calc(var(--p02-map-h, 440px) - 35px); }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]):has(.map-place-card:not([hidden])) .maplibregl-ctrl-bottom-right { top: calc(var(--p02-map-h, 440px) - 203px); }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .maplibregl-ctrl-attrib { margin: 0 0 6px 8px; padding: 2px 8px; border-radius: 999px; background: rgb(255 255 255 / 72%); font-size: 11px; line-height: 1.4; color: #3e4a4c; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .maplibregl-ctrl-attrib-button { display: none; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .maplibregl-ctrl-attrib-inner { display: inline; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .maplibregl-ctrl-group button { width: 34px; height: 33px; color: #0f4b4f; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .maplibregl-ctrl-top-right { margin: 12px 16px 0 0; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-pin__disc { position: relative; width: 24px; height: 24px; background: #f9edd6; border: 2px solid var(--p02-teal); color: var(--p02-teal); box-shadow: 0 2px 6px rgb(30 62 57 / 18%); }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-pin__disc .icon { width: 13px; height: 13px; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-pin[aria-expanded="true"] .map-pin__disc { width: 32px; height: 32px; background: var(--color-primary); border-color: var(--color-primary); color: var(--color-on-primary); box-shadow: inset 0 0 0 2px #fff, 0 2px 6px rgb(0 0 0 / 18%); }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-pin[aria-expanded="true"] .map-pin__disc .icon { width: 16px; height: 16px; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-pin[aria-expanded="true"] .map-pin__disc::after { content: ""; position: absolute; left: 50%; bottom: -7px; width: 10px; height: 10px; background: var(--color-primary); transform: translateX(-50%) rotate(45deg); border-radius: 0 0 3px 0; z-index: -1; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-pin:not([aria-expanded="true"]) .map-pin__label { display: none; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-pin[aria-expanded="true"] .map-pin__label { display: inline-block; opacity: 1; visibility: visible; position: absolute; left: 100%; top: 50%; margin-left: -4px; transform: translateY(-50%); padding: 5px 10px; border-radius: 999px; background: var(--color-primary); color: var(--color-on-primary); font-size: .75rem; line-height: 1; font-weight: 700; white-space: nowrap; pointer-events: none; box-shadow: 0 3px 10px rgb(60 40 20 / 18%); }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-place-card { display: grid; grid-template-columns: 64px minmax(0,1fr) 36px; grid-template-rows: auto auto; column-gap: 12px; align-items: center; inset-inline: 0; inset-block-end: 0; padding: 20px 16px 14px; border-radius: 24px 24px 0 0; background: var(--p02-paper); box-shadow: 0 -6px 24px rgb(30 62 57 / 14%); }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-place-card[hidden] { display: none; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-place-card::before { content: ""; position: absolute; top: 8px; left: 50%; width: 40px; height: 4px; border-radius: 2px; background: #d9d2c8; translate: -50%; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-place-card__photo { grid-column: 1; grid-row: 1; width: 64px; height: 64px; border-radius: 14px; object-fit: cover; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-place-card__body { grid-column: 2; grid-row: 1; min-width: 0; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-place-card__name { font-size: 1.3rem; font-weight: 700; line-height: 1.25; color: var(--p02-ink); }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-place-card__meta { margin-top: 2px; font-size: .9rem; color: #5a5f63; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-place-card__close { grid-column: 3; grid-row: 1; position: static; width: 36px; height: 36px; justify-self: end; color: var(--p02-teal); }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-place-card__actions { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-place-card__actions > * { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; border-radius: 999px; font-size: 1.05rem; font-weight: 700; text-decoration: none; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-place-card__more { background: var(--color-primary); color: var(--color-on-primary); }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-place-card__nav[aria-disabled="true"] { background: #e9e1d6; color: #a09a92; }
[data-places-root]:has(.view-button[data-view="map"][aria-pressed="true"]) .map-place-card__nav[aria-disabled="true"] .icon { display: none; }

/* --- N02 list view: illustrated header with the wave, mint category pills, count + switch row, thumbnail rows --- */
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .page-head--places { position: relative; display: block; min-height: 0; overflow: visible; padding: 8px 0 0 2px; background: none; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .page-head--places::after { content: ""; position: absolute; right: -16px; top: -2px; width: 200px; height: 104px; background: url("./assets/ornament/places-header.webp") right top / auto 100% no-repeat; filter: sepia(.22) saturate(.85) brightness(1.12); pointer-events: none; z-index: -1; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .page-head__photo { display: none; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .page-head__copy { padding: 0; margin: 0; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .page-head h1 { position: relative; max-width: 205px; margin: 0; padding: 20px 0 0; font-size: 1.55rem; line-height: 1.2; letter-spacing: -.01em; color: var(--p02-ink); }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .places-discovery-modes { grid-template-columns: repeat(3, 1fr); gap: 7px; padding-inline: var(--space-gutter); padding-block: 4px 0; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .search-pill { margin-top: 2px; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .filter-row:not(.places-discovery-modes) { padding-block: 5px 0; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .page-head h1::before { content: ""; position: absolute; left: 2px; top: 0; width: 68px; height: 13px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 58 12' fill='none' stroke='url(%23w)' stroke-width='2.6' stroke-linecap='round'%3E%3Cdefs%3E%3ClinearGradient id='w' x1='0' x2='1' y1='0' y2='0'%3E%3Cstop offset='0' stop-color='%23b56746'/%3E%3Cstop offset='.35' stop-color='%23b56746' stop-opacity='.9'/%3E%3Cstop offset='1' stop-color='%23b56746' stop-opacity='.08'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M2 9C10 2 22 2 30 6 38 10 48 10 56 5'/%3E%3C/svg%3E") left center / contain no-repeat; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .page-head__count { font-size: 1em; font-weight: 700; color: var(--p02-ink); }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .filter-row:not(.places-discovery-modes) .filter-chip { background: #dbeee8; border-color: #dbeee8; color: #0b5359; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .filter-row:not(.places-discovery-modes) .filter-chip[aria-pressed="true"] { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-on-primary); }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .view-switch--compact { margin-block: 3px 0; padding: 2px; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .places-result-status { margin: -34px 200px 0 var(--space-gutter); padding: 0; font-size: .85rem; line-height: 32px; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .place-list { margin-block-start: 4px; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .place-list { gap: 6px; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .place-row .place-row__link { grid-template-columns: 135px minmax(0,1fr); gap: 12px; min-height: 100px; padding: 4px 4px 4px 4px; border-radius: 16px; background: var(--p02-paper); box-shadow: 0 2px 10px rgb(90 55 30 / 8%); }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .place-row .place-row__photo { min-height: 88px; border-radius: 12px; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .place-row .place-row__body { padding: 2px 34px 2px 0; gap: 2px; align-content: center; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .place-row .place-row__name { order: 1; font-size: 1rem; line-height: 1.3; color: var(--p02-ink); }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .place-row .place-meta { order: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 0 5px; font-size: .8rem; color: var(--p02-muted); }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .place-row .place-meta::after { content: ""; order: 4; flex-basis: 100%; height: 0; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .place-row .place-meta .chip { order: 5; margin-top: 4px; padding: 3px 8px; border-radius: 999px; background: #dcefe9; color: #0b5359; font-size: .75rem; font-weight: 700; line-height: 1.3; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .place-row .place-meta .chip--soon, [data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .place-row .place-meta .chip--closed { background: #fde2df; color: #b8250e; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .place-row .place-rating { order: 4; font-size: .85rem; font-weight: 700; color: var(--p02-teal); }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .place-row .place-rating .star { color: var(--color-primary); font-size: 1rem; }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .place-row .save-heart { inset-block-start: 6px; inset-inline-end: 0; width: 44px; height: 44px; color: var(--color-primary); }
[data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .place-row .save-heart .icon, [data-places-root]:has(.view-button[data-view="list"][aria-pressed="true"]) .place-row .save-heart--row .icon { width: 19px; height: 19px; stroke-width: 2; }

/* ===== P03 fidelity (2026-09-14): N03 place overview and N04 story / practical information. ===== */
#place-main .carousel-thumbnails { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; width: 100%; margin-inline: 0; }
#place-main .carousel-thumbnail { width: 100%; height: auto; aspect-ratio: 1.5; border-radius: 12px; overflow: hidden; }
#place-main .carousel-thumbnail[aria-current="true"] { outline: 3px solid var(--color-primary); outline-offset: -3px; }
#place-main .discovery-summary-card { gap: .7rem; padding: 1rem 1rem 1.1rem; border-radius: 1.4rem; }
#place-main .place-kicker { font-size: .95rem; color: #6f7a80; }
#place-main .place-title-block h1 { font-size: 1.9rem; line-height: 1.25; color: #0e3f44; }
#place-main .place-meta--detail { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; font-size: 1rem; color: #4d5c62; }
#place-main .place-meta--detail .chip { padding: 5px 14px; border-radius: 999px; font-size: .95rem; font-weight: 700; }
#place-main .place-meta--detail .chip--open { background: #dcefe9; color: #0b5359; }
#place-main .place-meta--detail .chip:not(.chip--open) { background: var(--color-primary); color: var(--color-on-primary); }
#place-main .place-meta--detail [data-place="hours-today"] { padding-left: 10px; border-left: 1px solid #e3d8ca; }
#place-main .place-meta--detail > span[aria-hidden="true"] { display: none; }
#place-main .place-meta--detail [data-place="distance"] { display: inline-flex; align-items: center; gap: 6px; flex-basis: 100%; color: #0e3f44; }
#place-main .place-meta--detail [data-place="distance"]::before { content: ""; width: 18px; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23b04426'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center / contain no-repeat; }
#place-main .place-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 0; padding-block: 14px; border-block: 1px solid #ece2d5; }
#place-main .place-fact { padding-inline-start: 56px; }
#place-main .place-fact:nth-child(2) { padding-inline-start: 62px; border-left: 1px solid #ece2d5; }
#place-main .place-fact:nth-child(2) > .icon { inset-inline-start: 10px; background: #fbe4d4; color: var(--color-primary); }
#place-main .place-fact > .icon { width: 24px; height: 24px; padding: 10px; border-radius: 50%; background: #dcefe9; color: #0e4747; }
#place-main .place-fact dt { font-size: .95rem; color: #6f7a80; }
#place-main .place-fact dd { font-size: 1.05rem; font-weight: 700; line-height: 1.4; color: #0e3f44; }
#place-main .place-actions { display: grid; grid-template-columns: 1fr 1fr 66px; gap: 10px; align-items: stretch; }
#place-main .place-actions > * { min-height: 52px; border-radius: 14px; font-size: 1.1rem; font-weight: 700; }
#place-main .place-actions .place-nav { background: var(--color-primary); color: var(--color-on-primary); border: 0; }
#place-main .place-actions .place-checkin { background: #fbe9dd; color: var(--color-primary); border: 0; }
#place-main .place-actions .icon-button--ring { width: 66px; height: auto; border: 0; border-radius: 14px; background: #dcefe9; color: #0e4747; }
#place-main .discovery-summary-card .place-stamp-note { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; background: #f6ebdd; font-size: .95rem; color: #4d5c62; }
#place-main .discovery-summary-card .place-stamp-note .icon { color: var(--color-primary); }
/* N04: wave above each section title, sparkle + chip on the annual-event card, label | value rows, visible map heading. */
#place-main .place-story .section-heading, #place-main .setting-list ~ .section-heading, #place-main .section-heading:has(#info-title) { position: relative; padding-top: 16px; margin-inline: 0; }
#place-main .section-heading h2 { position: relative; font-size: 1.85rem; line-height: 1.2; color: #0e3f44; }
#place-main .section-heading h2::before { content: ""; position: absolute; left: 0; top: -14px; width: 58px; height: 12px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 58 12' fill='none' stroke='url(%23w)' stroke-width='2.6' stroke-linecap='round'%3E%3Cdefs%3E%3ClinearGradient id='w' x1='0' x2='1' y1='0' y2='0'%3E%3Cstop offset='0' stop-color='%23b56746'/%3E%3Cstop offset='.35' stop-color='%23b56746' stop-opacity='.9'/%3E%3Cstop offset='1' stop-color='%23b56746' stop-opacity='.08'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M2 9C10 2 22 2 30 6 38 10 48 10 56 5'/%3E%3C/svg%3E") left center / contain no-repeat; }
#place-main .section-swash { display: none; }
#place-main .place-story__prose { font-size: 1.02rem; line-height: 1.65; color: #0e3f44; }
#place-main .season-card { position: relative; overflow: hidden; padding: 20px 16px 18px; border-radius: 20px; background: #fbe9e0; }
#place-main .season-card::after { content: ""; position: absolute; right: 8px; top: 12px; width: 56px; height: 70px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 80' fill='%23e8c7b6'%3E%3Cpath d='M40 6c14 10 16 34 2 46-8-16-8-32-2-46z'/%3E%3Cpath d='M22 26c16 4 26 24 18 40-12-8-20-24-18-40z'/%3E%3Cpath d='M8 52c14-2 26 8 28 22-13 0-24-8-28-22z'/%3E%3C/svg%3E") center / contain no-repeat; opacity: .9; }
#place-main .season-kicker { position: relative; padding-left: 40px; font-size: 1.35rem; font-weight: 700; line-height: 1.3; color: #0e3f44; }
#place-main .season-kicker::before { content: ""; position: absolute; left: 0; top: 2px; width: 28px; height: 28px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c25c3e' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M12 3v5M12 16v5M3 12h5M16 12h5M5.6 5.6l3.5 3.5M14.9 14.9l3.5 3.5M18.4 5.6l-3.5 3.5M9.1 14.9l-3.5 3.5'/%3E%3C/svg%3E") center / contain no-repeat; }
#place-main .season-name { display: inline-block; width: fit-content; margin: 12px 0 8px; padding: 6px 16px; border-radius: 999px; background: var(--color-primary); color: var(--color-on-primary); font-size: 1.15rem; line-height: 1.3; }
#place-main .season-window { font-size: 1rem; font-weight: 700; color: #0e3f44; }
#place-main .season-note { margin-top: 6px; font-size: 1rem; line-height: 1.55; color: #4d5c62; }
#place-main .setting-list { border-radius: 18px; background: #fffdf9; }
#place-main .setting-row { display: grid; grid-template-columns: 44px minmax(0, .95fr) minmax(0, 1.45fr); align-items: center; gap: 14px; padding: 12px 14px; border-bottom: 1px solid #efe6da; }
#place-main .setting-row:last-child { border-bottom: 0; }
#place-main .setting-copy { display: contents; }
#place-main .setting-name { font-size: 1.05rem; font-weight: 700; color: #0e3f44; }
#place-main .setting-sub { font-size: 1rem; color: #0e3f44; }
#place-main .setting-mark { width: 44px; height: 44px; border-radius: 50%; background: #fbe4d4; color: var(--color-primary); }
#place-main .setting-row:nth-child(2) .setting-mark { background: #dcefe9; }
#place-main .setting-row:nth-child(3) .setting-mark { background: #e9e6e0; color: #4d5c62; }
#place-main .setting-row:nth-child(3) .setting-sub { color: #6f7a80; }
#place-main .place-map { display: grid; gap: 10px; padding-inline: var(--space-gutter); }
#place-main .place-map > h2.sr-only { position: relative; inset: auto; width: auto; height: auto; margin: 0; padding-top: 16px; overflow: visible; clip: auto; clip-path: none; white-space: normal; }
#place-main .place-map > h2.sr-only::before { content: ""; position: absolute; left: 0; top: 2px; width: 58px; height: 12px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 58 12' fill='none' stroke='url(%23w)' stroke-width='2.6' stroke-linecap='round'%3E%3Cdefs%3E%3ClinearGradient id='w' x1='0' x2='1' y1='0' y2='0'%3E%3Cstop offset='0' stop-color='%23b56746'/%3E%3Cstop offset='.35' stop-color='%23b56746' stop-opacity='.9'/%3E%3Cstop offset='1' stop-color='%23b56746' stop-opacity='.08'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M2 9C10 2 22 2 30 6 38 10 48 10 56 5'/%3E%3C/svg%3E") left center / contain no-repeat; }
#place-main .place-map > h2.sr-only { font-size: 1.85rem; line-height: 1.2; color: #0e3f44; }
#place-main .place-map .map-card { order: 2; margin-inline: 0; padding-bottom: 64px; border-radius: 18px; background: #fffdf9; box-shadow: 0 3px 12px rgb(90 55 30 / 6%); }
#place-main .place-map .map-open { order: 3; justify-self: start; width: calc(100% - 32px); margin: -58px 16px 16px; min-height: 44px; border: 1.5px solid var(--color-primary); border-radius: 999px; color: var(--color-primary); font-weight: 700; background: transparent; position: relative; z-index: 1; }
#place-main .place-map .map-shell--inline { order: 4; }

/* ===== P04 fidelity (2026-09-14): N05 routes directory — illustrated header, labelled filter groups, lane headings with a mark, thumbnail rows. ===== */
.routes-v3-directory .screen-stage { background: transparent; box-shadow: none; border-radius: 0; }
.routes-v3-directory .page-head--places { position: relative; display: block; overflow: visible; padding: 8px 0 0 2px; min-height: 0; background: none; }
.routes-v3-directory .page-head--places::after { content: ""; position: absolute; right: -16px; top: 2px; width: 210px; height: 72px; background: url("./assets/ornament/places-header.webp") right top / auto 100% no-repeat; opacity: .85; filter: saturate(.78); pointer-events: none; z-index: -1; }
.routes-v3-directory .page-head__photo { display: none; }
.routes-v3-directory .page-head__copy { padding: 0 0 0 4px; margin: 0; }
.routes-v3-directory .page-head h1 { position: relative; max-width: 215px; margin: 0; padding: 16px 0 0; font-size: 1.9rem; line-height: 1.2; letter-spacing: -.01em; color: #0e3f44; }
.routes-v3-directory .page-head h1::before { content: ""; position: absolute; left: 2px; top: 0; width: 58px; height: 12px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 58 12' fill='none' stroke='url(%23w)' stroke-width='2.6' stroke-linecap='round'%3E%3Cdefs%3E%3ClinearGradient id='w' x1='0' x2='1' y1='0' y2='0'%3E%3Cstop offset='0' stop-color='%23b56746'/%3E%3Cstop offset='.35' stop-color='%23b56746' stop-opacity='.9'/%3E%3Cstop offset='1' stop-color='%23b56746' stop-opacity='.08'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M2 9C10 2 22 2 30 6 38 10 48 10 56 5'/%3E%3C/svg%3E") left center / contain no-repeat; }
.routes-v3-directory .page-head__lead { margin: 4px 0 0; max-width: none; font-size: .84rem; line-height: 1.4; color: #6f7a80; }
.routes-v3-directory .routes-v3-filter-group { margin-block: 10px 0; }
.routes-v3-directory .routes-v3-filter-group > p { margin: 0 0 6px; font-size: .95rem; font-weight: 700; color: #0e3f44; }
.routes-v3-directory .places-result-status, .routes-v3-directory [data-routes-status], .routes-v3-directory .routes-result-status { display: flex; align-items: center; color: #63747d; font-weight: 400; font-size: .85rem; }
.routes-v3-directory :is(.places-result-status, [data-routes-status], .routes-result-status)::after { content: ""; flex: 1 1 auto; height: 1px; margin: 0 18px 0 12px; background: #f0e0d2; }
.routes-v3-directory .routes-filter { flex-wrap: nowrap; overflow-x: auto; gap: 8px; padding-bottom: 2px; scrollbar-width: none; }
.routes-v3-directory .routes-filter::-webkit-scrollbar { display: none; }
.routes-v3-directory .filter-row .filter-chip { min-height: 28px; padding: 4px 12px; font-size: .875rem; line-height: 1.4; flex: 0 0 auto; border: 0; border-radius: 999px; background: #fbe7dc; color: #0e3f44; font-size: 1rem; font-weight: 700; box-shadow: none; white-space: nowrap; }
.routes-v3-directory .filter-row .filter-chip[aria-pressed="true"] { background: var(--color-primary); color: var(--color-on-primary); }
.routes-v3-directory .route-groups { gap: 1.4rem; }
.routes-v3-directory .route-group__heading { margin-block-end: .5rem; }
.routes-v3-directory .route-group__heading h2 { position: relative; min-height: 34px; padding-left: 44px; align-items: center; font-size: 1.06rem; color: #0e3f44; }
.routes-v3-directory .route-group__heading h2::before { content: ""; position: absolute; left: 0; top: 0; width: 34px; height: 34px; border-radius: 12px; background-size: 18px; background: #fbe7dc url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b04426' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 2v7a3 3 0 0 0 3 3h2a3 3 0 0 0 3-3V2'/%3E%3Cpath d='M8 2v20'/%3E%3Cpath d='M20 22v-9h-2.4a1.6 1.6 0 0 1-1.6-1.6V8a6 6 0 0 1 4-5.7V22'/%3E%3C/svg%3E") center / 24px no-repeat; }
.routes-v3-directory .route-group[data-route-group="temple"] .route-group__heading h2::before { background: #dcefe9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e5c4a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2l1.5 4h-3zM9 6h6l1 4H8zM7 10h10l1 5H6zM5 15h14l1 4H4z'/%3E%3C/svg%3E") center / 24px no-repeat; }
.routes-v3-directory .route-group[data-route-group="nature"] .route-group__heading h2::before { background: #dcefe9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e5c4a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21V11M12 11c-4 0-7-3-7-8 5 0 7 3 7 8zM12 11c4 0 7-3 7-8-5 0-7 3-7 8z'/%3E%3C/svg%3E") center / 24px no-repeat; }
.routes-v3-directory .route-group[data-route-group="chill"] .route-group__heading h2::before, .routes-v3-directory .route-group[data-route-group="photo"] .route-group__heading h2::before { background: #fbe7dc url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b04426' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l2-3h6l2 3h3v11H4z'/%3E%3Ccircle cx='12' cy='13' r='3.5'/%3E%3C/svg%3E") center / 24px no-repeat; }
.routes-v3-directory .route-group__link { font-size: 1.06rem; font-weight: 700; color: #0e3f44; }
.routes-v3-directory .route-group__heading h2 [data-route-group-count] { margin-left: .3em; font-size: .95rem; font-weight: 600; color: #4d5c62; }
.routes-v3-directory .route-group__list { gap: 6px; }
.routes-v3-directory .route-row .place-row__link { grid-template-columns: 148px minmax(0, 1fr); min-height: 82px; gap: 10px; padding: 4px; border-radius: 16px; background: #fefcf9; box-shadow: 0 2px 10px rgb(90 55 30 / 8%); }
.routes-v3-directory .route-row .place-row__photo { height: 74px; min-height: 74px; border-radius: 12px; }
.routes-v3-directory .route-row .place-row__body { display: grid; align-content: center; gap: 3px; padding: 2px 42px 2px 0; }
.routes-v3-directory .route-row .place-row__name { order: 1; font-size: .88rem; line-height: 1.3; letter-spacing: -.01em; color: #0e3f44; white-space: normal; }
.routes-v3-directory .route-row .route-row__tags { order: 2; }
.routes-v3-directory .route-row .chip--span { display: inline-flex; align-items: center; gap: 4px; min-height: 21px; padding: 2px 10px; border-radius: 999px; background: #fbe7dc; color: var(--color-primary); font-size: .78rem; font-weight: 700; }
.routes-v3-directory .route-row .chip--span::before { content: ""; width: 13px; height: 13px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b04426' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center / contain no-repeat; }
.routes-v3-directory .route-row .route-meta { order: 3; font-size: .78rem; line-height: 1.45; color: #63747d; }
.routes-v3-directory .route-row .save-heart { inset-block: 50% auto; inset-inline-end: 6px; translate: 0 -50%; width: 35px; height: 35px; border-radius: 11px; background: #fbe7dc; color: var(--color-primary); }
.routes-v3-directory .route-row .save-heart .icon { width: 19px; height: 19px; stroke-width: 2; }

/* P03 round 1 (critic 54): one 8px gutter, title + chip + hours on one row, reference-size controls, flush thumbnails. */
#place-main .screen-stage { padding-inline: 8px; }
#place-main .place-opening { gap: 0; }
#place-main .place-hero, #place-main .carousel-controls, #place-main .discovery-summary-card { margin-inline: 0; width: auto; }
#place-main .carousel-controls { margin-block: 6px 5px; padding: 0; }
#place-main .carousel-thumbnails { gap: 4.5px; width: 100%; }
#place-main .carousel-thumbnail { aspect-ratio: 1.47; padding: 0; border: 0; background: transparent; box-shadow: none; border-radius: 10px; }
#place-main .carousel-thumbnail[aria-current="true"] { outline: 1.5px solid var(--color-primary); outline-offset: 0; }
#place-main .carousel-thumbnail__image { border-radius: 10px; }
#place-main .discovery-summary-card { gap: .55rem; padding: .85rem .9rem 1rem; }
#place-main .place-title-block { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 10px; row-gap: 6px; }
#place-main .place-kicker, #place-main .place-official, #place-main .place-facts { flex-basis: 100%; }
#place-main .place-title-block h1 { margin: 0; flex: 0 1 auto; font-size: 1.6rem; line-height: 1.15; }
#place-main .place-meta--detail { display: contents; }
#place-main .place-meta--detail .chip { padding: 3px 9px; font-size: .75rem; }
#place-main .place-meta--detail [data-place="hours-today"] { font-size: .95rem; }
#place-main .place-fact:nth-child(2) { padding-inline-start: 48px; }
#place-main .place-fact:nth-child(2) > .icon { inset-inline-start: 6px; }
#place-main .place-fact { padding-inline-start: 46px; }
#place-main .place-fact > .icon { width: 20px; height: 20px; padding: 8px; }
#place-main .place-fact dt { font-size: .8rem; }
#place-main .place-fact dd { font-size: .9rem; line-height: 1.35; }
#place-main .place-facts { gap: 10px 0; padding-block: 10px; }
#place-main .place-actions { grid-template-columns: 1.37fr 1fr 44px; gap: 9px; }
#place-main .place-actions > * { min-height: 40px; font-size: 1rem; border-radius: 12px; }
#place-main .place-actions .icon-button--ring { width: 44px; }
#place-main .discovery-summary-card .place-stamp-note { padding: 8px 12px; font-size: .9rem; }

/* P03 round 1 for N04 (critic 51): heading scale, info block gutter, compact rows and event card, pin on the map button. */
#place-main .section-heading:has(#info-title) { margin-inline: var(--space-gutter); }
#place-main .section-heading h2, #place-main .place-map > h2.sr-only { font-size: 1.34rem; }
#place-main .section-heading h2::before, #place-main .place-map > h2.sr-only::before { width: 32px; height: 10px; top: -16px; }
#place-main .place-story { padding-block: 1.25rem .35rem; }
#place-main .place-story__prose { font-size: .95rem; line-height: 1.6; }
#place-main .season-card { margin-block-start: 0; padding: 14px; border-radius: 16px; }
#place-main .season-card::after { width: 46px; height: 56px; right: 14px; top: 14px; opacity: .75; }
#place-main .season-kicker { padding-left: 34px; font-size: 1.1rem; }
#place-main .season-kicker::before { width: 24px; height: 24px; top: 1px; }
#place-main .season-name { margin: 8px 0 6px; padding: 5px 14px; font-size: .9rem; }
#place-main .season-window { font-size: .85rem; font-weight: 400; color: #4d5c62; }
#place-main .season-note { font-size: .85rem; }
#place-main .setting-row { grid-template-columns: 32px minmax(0, .85fr) minmax(0, 1.75fr); gap: 10px; padding: 10px 12px; }
#place-main .setting-mark { width: 32px; height: 32px; }
#place-main .setting-mark .icon { width: 16px; height: 16px; }
#place-main .setting-name { font-size: .92rem; }
#place-main .setting-sub { font-size: .82rem; }
#place-main .place-map .map-card { padding-bottom: 60px; }
#place-main .place-map .map-card :is(strong, .map-card__title) { font-size: 1rem; }
#place-main .place-map .map-open { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
#place-main .place-map .map-open::before { content: ""; width: 18px; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23b04426'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center / contain no-repeat; }

/* ===== P05 fidelity (2026-09-14): N06 route overview and N07 ordered stops. ===== */
#route-main .route-sos-link { min-height: 0; margin: 4px var(--space-gutter) 0 auto; padding: 0; border: 0; background: none; font-size: .9rem; font-weight: 700; color: var(--color-primary); text-decoration: underline; text-underline-offset: 3px; }
#route-main .discovery-summary-card { gap: .6rem; padding: .9rem .9rem 1rem; border-radius: 1.4rem; }
#route-main .route-kicker { display: inline-flex; align-items: center; gap: 4px; width: fit-content; margin: 0; padding: 5px 12px 5px 10px; border-radius: 999px; background: #dcefe9; color: #0b5359; font-size: .85rem; font-weight: 700; }
#route-main .route-kicker::before { content: ""; width: 16px; height: 16px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b5359' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 2v7a3 3 0 0 0 3 3h2a3 3 0 0 0 3-3V2'/%3E%3Cpath d='M8 2v20'/%3E%3Cpath d='M20 22v-9h-2.4a1.6 1.6 0 0 1-1.6-1.6V8a6 6 0 0 1 4-5.7V22'/%3E%3C/svg%3E") center / 16px no-repeat; }
#route-main .route-kicker .chip { padding: 0; background: transparent; color: inherit; font-size: inherit; font-weight: inherit; }
#route-main .route-kicker .chip--span::before { content: "· "; }
#route-main .place-title-block h1 { margin: 2px 0 0; font-size: 1.75rem; line-height: 1.2; color: #0e3f44; }
#route-main .route-curator { font-size: .8rem; color: #7c858c; }
#route-main .discovery-summary-card .route-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 0; margin: 0; padding: 12px 0; border-block: 1px solid #ece2d5; }
#route-main .route-stat { position: relative; min-height: 44px; padding: 0 0 0 54px; border: 0; }
#route-main .route-stat:nth-child(2n) { padding-left: 62px; border-left: 1px solid #ece2d5; }
#route-main .route-stat::before { content: ""; position: absolute; left: 0; top: 0; width: 44px; height: 44px; border-radius: 50%; background: #fbe4d4 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b04426' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center / 24px no-repeat; }
#route-main .route-stat:nth-child(2n)::before { left: 8px; }
#route-main .route-stat:nth-child(2)::before { background: #fbe4d4 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b04426' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6.5 7-12a7 7 0 0 0-14 0c0 5.5 7 12 7 12z'/%3E%3Ccircle cx='12' cy='9' r='2.5'/%3E%3C/svg%3E") center / 24px no-repeat; }
#route-main .route-stat:nth-child(3)::before { background: #fbe4d4 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b04426' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21V4M5 4h11l-2 4 2 4H5'/%3E%3C/svg%3E") center / 24px no-repeat; }
#route-main .route-stat:nth-child(4)::before { background: #fbe4d4 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b04426' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 19a3 3 0 1 1 0-6h9a3 3 0 1 0 0-6H9'/%3E%3Ccircle cx='6' cy='16' r='1'/%3E%3Ccircle cx='18' cy='7' r='1'/%3E%3C/svg%3E") center / 24px no-repeat; }
#route-main .route-stat dt { font-size: .9rem; color: #4d5c62; }
#route-main .route-stat dd { font-size: 1.05rem; font-weight: 700; line-height: 1.35; color: #0e3f44; }
#route-main .route-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 0; }
#route-main .route-actions > * { min-height: 46px; border-radius: 14px; font-size: .95rem; font-weight: 700; }
#route-main .route-actions .route-start { background: #e9e1d6; color: #a09a92; border: 0; }
#route-main .route-actions .icon-button--ring { width: auto; height: auto; border: 1.5px solid #e3d8ca; background: #fffdf9; color: var(--color-primary); }
#route-main .route-start-note { font-size: .9rem; font-weight: 700; color: #0e3f44; }
#route-main .discovery-summary-card :is(.route-simulation-status, .route-stats-note, .route-v3-truth) { font-size: .82rem; color: #7c858c; }
#route-main .route-mode-block { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px 10px; padding: 14px 16px; border-radius: 1.2rem; background: #fffdf9; box-shadow: 0 3px 12px rgb(90 55 30 / 6%); }
#route-main .route-mode-block h2 { margin: 0; font-size: 1.3rem; color: #0e3f44; }
#route-main .route-mode { padding: 3px; border: 1px solid #ece2d5; border-radius: 999px; background: #fff; }
#route-main .route-mode .view-button { min-height: 34px; padding-inline: 14px; border-radius: 999px; font-size: .95rem; font-weight: 700; color: #7c858c; }
#route-main .route-mode .view-button[aria-pressed="true"] { background: var(--color-primary); color: var(--color-on-primary); }
#route-main .route-mode-total, #route-main #route-bike-note { grid-column: 1 / -1; }
#route-main .route-mode-total { position: relative; margin: 0; padding-left: 54px; min-height: 44px; font-size: 1rem; font-weight: 700; color: #0e3f44; }
#route-main .route-mode-total::before { content: ""; position: absolute; left: 0; top: 0; width: 44px; height: 44px; border-radius: 50%; background: #fbe4d4 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b04426' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center / 24px no-repeat; }
#route-main #route-bike-note { margin: -6px 0 0 54px; font-size: .85rem; color: #7c858c; }
/* N07 stops */
#route-main .route-stop { grid-template-columns: 44px minmax(0, 1fr); gap: 10px; }
#route-main .route-stop__badge { width: 44px; height: 44px; border-radius: 50%; background: var(--color-primary); color: var(--color-on-primary); font-size: 1.35rem; font-weight: 700; box-shadow: 0 2px 6px rgb(60 40 20 / 18%); }
#route-main .route-spine::before { inset-inline-start: calc(var(--space-gutter) + 21px); width: 0; border-left: 2px dashed #d97a5a; background: none; }
#route-main .route-stop__card { grid-template-columns: 80px minmax(0, 1fr); gap: 4px 12px; padding: 12px 12px 12px; border-radius: 16px; background: #fffdf9; box-shadow: 0 3px 12px rgb(90 55 30 / 7%); }
#route-main .route-stop__photo { grid-row: 1 / 3; width: 80px; height: 80px; border-radius: 12px; overflow: hidden; }
#route-main .route-stop__name { display: flex; align-items: center; justify-content: space-between; min-height: 0; margin-top: 4px; font-size: 1.15rem; font-weight: 700; line-height: 1.3; color: #0e3f44; }
#route-main .route-stop__name .route-stop__go { width: 18px; height: 18px; color: var(--color-primary); }
#route-main .route-stop__progress { font-size: .95rem; color: #7c858c; }
#route-main .route-stop__line { margin-top: 8px; padding-top: 10px; border-top: 1px solid #ece2d5; font-size: .95rem; line-height: 1.5; color: #0e3f44; }
#route-main .route-stop__tip { position: relative; padding-left: 26px; font-size: .95rem; color: #0e3f44; }
#route-main .route-stop__tip::before { content: ""; position: absolute; left: 0; top: 2px; width: 18px; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b04426' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center / 18px no-repeat; }
#route-main .route-stop__nav { min-height: 44px; border-radius: 12px; background: #d9d4cd; color: #6f6a64; font-weight: 700; }
#route-main .route-leg__label { display: inline-flex; align-items: center; gap: 8px; margin: 10px 0 2px 2px; font-size: .95rem; color: #6f7a80; }
#route-main .route-leg__label .icon { width: 18px; height: 18px; color: #4d5c62; }
#route-main .route-finish { display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: center; gap: 4px 14px; padding: 16px; border-radius: 16px; background: #dcefe9; }
#route-main .route-finish::before { content: ""; grid-row: 1 / 3; width: 36px; height: 36px; margin-left: 4px; border: 2.5px solid #0e3f44; border-radius: 50%; }
#route-main .route-finish [data-route-finish] { order: -1; grid-column: 2; justify-self: start; min-height: 0; padding: 0; border: 0; background: none; font-size: 1.2rem; font-weight: 700; color: #0e3f44; text-decoration: none; }
#route-main .route-finish .setting-state { grid-column: 2; font-size: .9rem; color: #4d5c62; }
#route-main .route-finish .fine-note { grid-column: 1 / -1; margin: 6px 0 0; text-align: center; font-size: .8rem; color: #7c858c; }

/* P05 polish before review: stray progress mark, one-line mode heading, spine under the finish card, plain leg label, chevron glyph. */
#route-main .route-stop__progress::before, #route-main .route-stop__progress::after { content: none; display: none; }
#route-main .route-mode-block h2 { font-size: 1.15rem; white-space: nowrap; }
#route-main .route-mode .view-button { min-height: 32px; padding-inline: 12px; font-size: .9rem; }
#route-main .route-finish { position: relative; z-index: 1; }
#route-main .route-leg__label { padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
#route-main .route-stop__name .route-stop__go { display: none; }
#route-main .route-stop__name::after { content: ""; flex: none; width: 9px; height: 15px; margin-left: 8px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 16' fill='none' stroke='%23b04426' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 2l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; }

/* ===== P06 fidelity (2026-09-14): E01 food and merchant directory — terracotta title, one peach pill row, thumbnail rows with an inline detail button. ===== */
.app-shell--merchant-list .screen-stage { background: transparent; box-shadow: none; border-radius: 0; overflow: visible; }
.app-shell--merchant-list .page-head { display: block; min-height: 0; padding: 6px 0 2px; }
.app-shell--merchant-list .page-head__photo { display: none; }
.app-shell--merchant-list .page-head__copy { padding: 0; margin: 0; }
.app-shell--merchant-list .page-head h1 { margin: 0; font-size: 1.55rem; line-height: 1.25; letter-spacing: -.01em; color: #c0512f; }
.app-shell--merchant-list .shop-filter { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 7px; padding: 10px 0 4px; overflow: visible; mask-image: none; }
.app-shell--merchant-list .shop-filter .filter-chip { min-height: 36px; padding-inline: 6px; border: 0; border-radius: 999px; background: #fbe3d5; color: #0e3f44; font-size: .92rem; font-weight: 700; box-shadow: none; white-space: nowrap; }
.app-shell--merchant-list .shop-filter .filter-chip[aria-pressed="true"] { background: #c0512f; color: var(--color-on-primary); }
.app-shell--merchant-list .merchant-results { padding: 0 var(--space-gutter) var(--space-lg); background: transparent; }
.app-shell--merchant-list .merchant-results .section-heading { margin-block: 8px 2px; }
.app-shell--merchant-list .merchant-results .section-heading h2 { font-family: var(--font-body); font-size: .95rem; font-weight: 400; color: #6f7a80; }
.app-shell--merchant-list .merchant-results .section-swash { display: none; }
.app-shell--merchant-list .merchant-truth { margin-block: 2px 4px; font-size: .78rem; color: #8a9297; }
.app-shell--merchant-list .merchant-list { gap: 0; }
.app-shell--merchant-list .merchant-row { padding-block: 9px; border: 0; border-block-end: 1px solid #f0e3d6; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
.app-shell--merchant-list .merchant-row:last-child { border-block-end: 0; }
.app-shell--merchant-list .merchant-row__link { position: relative; grid-template-columns: 133px minmax(0, 1fr); gap: 12px; min-height: 118px; }
.app-shell--merchant-list .merchant-row__media { min-height: 118px; border-radius: 12px; overflow: hidden; }
.app-shell--merchant-list .merchant-row__copy { display: grid; align-content: start; gap: 3px; padding: 2px 0 44px; }
.app-shell--merchant-list .merchant-row__identity { display: none; }
.app-shell--merchant-list .merchant-row__name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-top: 7px; margin-top: -5px; font-size: 1.05rem; line-height: 1.55; color: #0e3f44; }
.app-shell--merchant-list .merchant-row__blurb { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: .86rem; line-height: 1.6; color: #7c858c; }
.app-shell--merchant-list .merchant-row__decision, .app-shell--merchant-list .merchant-row__hours { position: relative; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-left: 25px; font-size: .92rem; line-height: 1.6; color: #37464b; }
.app-shell--merchant-list .merchant-row__decision::before { content: ""; position: absolute; left: 0; top: 1px; width: 18px; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c25a34' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 2v7a3 3 0 0 0 3 3h2a3 3 0 0 0 3-3V2'/%3E%3Cpath d='M8 2v20'/%3E%3Cpath d='M20 22v-9h-2.4a1.6 1.6 0 0 1-1.6-1.6V8a6 6 0 0 1 4-5.7V22'/%3E%3C/svg%3E") center / 18px no-repeat; }
.app-shell--merchant-list .merchant-row__hours::before { content: ""; position: absolute; left: 0; top: 2px; width: 18px; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e5057' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.2v5l3 1.9'/%3E%3C/svg%3E") center / 18px no-repeat; }
.app-shell--merchant-list .merchant-row__action { position: absolute; right: 0; bottom: 2px; justify-content: center; min-height: 38px; margin: 0; padding: 0 16px; border-radius: 12px; background: #c0512f; color: var(--color-on-primary); font-size: .98rem; font-weight: 700; }
.app-shell--merchant-list .merchant-row__action .icon { display: none; }

/* ===== P03 fidelity, round 2 (2026-09-14): hero frame, title scale, heart and fact marks measured against N03. ===== */
#place-main .place-opening { padding-block: 0; }
#place-main .place-hero { aspect-ratio: 8 / 5; }
#place-main .place-hero img { width: 100%; height: 100%; object-fit: cover; }
#place-main .save-heart--hero { width: 38px; height: 38px; inset: 9px 9px auto auto; }
#place-main .save-heart--hero .icon { width: 21px; height: 21px; stroke-width: 2.4; color: #0e4747; }
#place-main .carousel-counter { min-height: 25px; padding: 3px 10px; background: rgb(58 46 38 / 62%); color: #fff; font-size: .78rem; }
#place-main .place-title-block h1 { font-size: 1.28rem; line-height: 1.2; }
#place-main .place-kicker { font-size: .78rem; }
#place-main .place-meta--detail [data-place="hours-today"] { font-size: .78rem; }
#place-main .place-meta--detail .chip { padding: 3px 9px; }
#place-main .place-meta--detail .chip--open { background: #1f7a5c; color: #fff; }
#place-main .place-fact > .icon { width: 24px; height: 24px; padding: 6px; }
#place-main .place-fact dd { font-size: .8rem; }
#place-main .place-fact:nth-child(3) > .icon { background: #dcefe9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e4747' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 16v2.2h3V16M17 16v2.2h3V16'/%3E%3Cpath d='M3.4 16v-3.1l1.7-4.2A2 2 0 0 1 7 7.4h10a2 2 0 0 1 1.9 1.3l1.7 4.2V16z'/%3E%3Cpath d='M5.1 12.7h13.8'/%3E%3Ccircle cx='7.1' cy='14.3' r='.9'/%3E%3Ccircle cx='16.9' cy='14.3' r='.9'/%3E%3C/svg%3E") center / 22px no-repeat; }
#place-main .place-fact:nth-child(3) > .icon > use { display: none; }
#place-main .discovery-summary-card .place-stamp-note { font-size: .8rem; }

/* ===== P03/N04 fidelity, round 2 (2026-09-14): section length, info rows, map card and marks measured against the accepted image. ===== */
#place-main .place-map > .map-open { margin: -58px 16px 16px; }
#place-main .place-map .map-shell--inline { margin-block-start: 58px; }
#place-main .place-map .map-shell--inline .map-open { margin: 8px 0 0; }
#place-main .place-story__prose { gap: .5rem; }
#place-main .place-story__prose p { font-size: .9rem; line-height: 1.5; }
#place-main :is(.place-season, .place-info, .place-map) { padding-block: 0 var(--space-xs); }
#place-main .setting-row { padding: 4px 12px; }
#place-main .setting-name { font-size: .82rem; }
#place-main .setting-sub { font-size: .76rem; }
#place-main .place-map .map-doodle { width: 3rem; flex: none; align-self: center; margin: 12px 0 12px 12px; border-radius: 12px; }
#place-main .place-map .map-card :is(strong, .map-card__title) { font-size: .92rem; }
#place-main .section-heading h2::before, #place-main .place-map > h2.sr-only::before { width: 58px; height: 12px; top: -15px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 58 12' fill='none' stroke='url(%23w)' stroke-width='2.6' stroke-linecap='round'%3E%3Cdefs%3E%3ClinearGradient id='w' x1='0' x2='1' y1='0' y2='0'%3E%3Cstop offset='0' stop-color='%23b56746'/%3E%3Cstop offset='.35' stop-color='%23b56746' stop-opacity='.9'/%3E%3Cstop offset='1' stop-color='%23b56746' stop-opacity='.08'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M2 9C10 2 22 2 30 6 38 10 48 10 56 5'/%3E%3C/svg%3E") left center / 100% 100% no-repeat; }
#place-main .season-card::after { width: 58px; height: 70px; right: 10px; top: 10px; opacity: .9; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 80' fill='%23e8c7b6'%3E%3Cpath d='M34 4c3 10 3 20 0 30-4-10-4-20 0-30z'/%3E%3Cpath d='M33 30c7-6 15-9 24-9-4 9-13 14-24 15z'/%3E%3Cpath d='M33 30c-7-6-15-9-24-9 4 9 13 14 24 15z'/%3E%3Cpath d='M33 48c7-6 15-9 24-9-4 9-13 14-24 15z'/%3E%3Cpath d='M33 48c-7-6-15-9-24-9 4 9 13 14 24 15z'/%3E%3Cpath d='M32 20v56' stroke='%23e8c7b6' stroke-width='2.4'/%3E%3C/svg%3E") center / contain no-repeat; }
#place-main .season-name { padding: 3px 12px; font-size: .82rem; }

/* N04 round 2b: the retry control is a second direct child of the map block — it must not
   inherit the card pull-up, or the two buttons print on top of each other. */
#place-main .place-map > .map-open--retry { order: 5; margin: 8px 16px 16px; }
#place-main .section-heading { padding-top: 20px; }
#place-main .section-heading h2::before, #place-main .place-map > h2.sr-only::before { top: -20px; }
#place-main .place-map > h2.sr-only { padding-top: 20px; }
#place-main .setting-row { grid-template-columns: 32px minmax(0, .78fr) minmax(0, 1.9fr); gap: 10px; }
#place-main .setting-sub { font-size: .74rem; line-height: 1.5; }

/* ===== P04/N05 fidelity, round 2 (2026-09-14): the critic measured the whole Thai type ramp
   at 1.15-1.26x the accepted image, which is what clipped the fifth pill and wrapped the card
   meta. Everything here follows those measured ratios. ===== */
.routes-v3-directory .page-head h1 { font-size: 1.5rem; }
.routes-v3-directory .page-head h1::before { width: 117px; height: 10px; background-size: 117px 10px; }
.routes-v3-directory .page-head__lead { font-size: .82rem; }
.routes-v3-directory .routes-v3-filter-group { margin-block: 0; }
.routes-v3-directory .routes-v3-filter-group > p { margin-block-end: 9px; font-size: .95rem; }
.routes-v3-directory .filter-row.routes-filter { margin-block-end: 11px; padding-inline: 0 16px; scroll-padding-inline-end: 16px; }
.routes-v3-directory .filter-row .filter-chip { min-height: 32px; padding-inline: 14px; font-size: .88rem; font-weight: 400; }
.routes-v3-directory .filter-row .filter-chip[aria-pressed="true"] { font-weight: 700; }
.routes-v3-directory .routes-v3-summary { display: flex; align-items: center; gap: 8px; margin: 15px 0 13px; font-size: .8rem; }
.routes-v3-directory .routes-v3-summary::after { content: ""; flex: 1 1 auto; height: 1.5px; border-radius: 1px; background: #f0e0d2; }
.routes-v3-directory .route-group__heading h2 { min-height: 34px; padding-left: 44px; font-size: 1.1rem; }
.routes-v3-directory .route-group__heading h2::before { width: 34px; height: 34px; border-radius: 50%; background-color: #feddca; background-size: 18px; }
.routes-v3-directory .route-group__link { font-size: 1.1rem; }
.routes-v3-directory .route-group__heading h2 [data-route-group-count] { font-size: .9rem; }
.routes-v3-directory .route-group__list { margin-inline: -3px; gap: 8px; }
.routes-v3-directory .route-row .place-row__link { grid-template-columns: 140px minmax(0, 1fr); min-height: 0; gap: 10px; padding: 4px; align-items: center; }
.routes-v3-directory .route-row .place-row__photo { min-height: 73px; height: 73px; }
.routes-v3-directory .route-row .place-row__body { gap: 5px; padding: 2px 48px 2px 0; }
.routes-v3-directory .route-row .place-row__name { font-size: .84rem; }
.routes-v3-directory .route-row .chip--span { padding: 3px 10px 3px 8px; font-size: .74rem; }
.routes-v3-directory .route-row .chip--span::before { width: 13px; height: 13px; }
/* nowrap on Thai needs a padded clip box, or the stacked tone mark is cut off the top. */
.routes-v3-directory .route-row .route-meta { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-top: 5px; margin-top: -5px; font-size: .74rem; }
.routes-v3-directory .route-row .save-heart { width: 34px; height: 34px; border-radius: 50%; margin-inline-end: 6px; background: #fcf0e8; }
.routes-v3-directory .route-row .save-heart .icon { width: 18px; height: 18px; }
.routes-v3-directory .place-list-panel { padding-block-start: 0; }

/* ===== P05/N06 fidelity, round 1 (2026-09-14): both viewers measured the card chrome one size
   up from the accepted image and found a clipped travel-time heading. ===== */
#route-main .discovery-summary-card { margin-inline: 10px; border-radius: 1.2rem; padding: .8rem 1rem 1rem; }
#route-main .carousel-controls--thumbnails { margin-inline: 10px; padding: 0; background: none; border: 0; }
#route-main .carousel-thumbnails { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 6px; overflow: visible; padding: 0; }
#route-main .carousel-thumbnail { width: 100%; height: auto; aspect-ratio: 1.62; padding: 0; border: 0; border-radius: 10px; overflow: hidden; background: none; box-shadow: none; }
#route-main .carousel-thumbnail[aria-current="true"] { outline: 2px solid var(--color-primary); outline-offset: -2px; }
#route-main .carousel-thumbnail img { width: 100%; height: 100%; object-fit: cover; }
#route-main .route-kicker { min-height: 24px; padding: 2px 10px 2px 8px; font-size: .8rem; }
#route-main .route-kicker::before { width: 14px; height: 14px; }
#route-main .place-title-block h1 { font-size: 1.45rem; }
#route-main .discovery-summary-card .route-stats { border-block: 0; padding-block: 10px; gap: 10px 0; }
#route-main .route-stat { min-height: 34px; padding-left: 44px; }
#route-main .route-stat:nth-child(2n) { padding-left: 52px; }
#route-main .route-stat::before { width: 34px; height: 34px; background-size: 18px; }
#route-main .route-stat:nth-child(4)::before { background-image: none; background: #fbe4d4 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b04426' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 15c2.5-4 5-4 7.5 0s5 4 7.5 0 3-3.4 3-3.4'/%3E%3Cpath d='M3 9.4c2.5-4 5-4 7.5 0s5 4 7.5 0'/%3E%3C/svg%3E") center / 18px no-repeat; }
#route-main .route-stat dt { font-size: .8rem; }
#route-main .route-stat dd { font-size: .92rem; }
#route-main .route-actions > * { display: inline-flex; flex-direction: row; align-items: center; justify-content: center; gap: 8px; min-height: 40px; border-radius: 12px; font-size: .88rem; }
#route-main .route-actions .icon { width: 18px; height: 18px; }
#route-main .route-actions .route-start { background: #e6e6e6; color: #8a8a8a; }
#route-main .route-mode-block { grid-template-columns: minmax(0, 1fr) auto; column-gap: 8px; padding: 12px 14px; }
#route-main .route-mode-block h2 { font-size: 1.05rem; white-space: normal; overflow-wrap: normal; }
#route-main .route-mode .view-button { min-height: 30px; padding-inline: 11px; font-size: .85rem; }
#route-main .route-mode-total { min-height: 34px; padding-left: 44px; font-size: .92rem; }
#route-main .route-mode-total::before { width: 34px; height: 34px; background-size: 18px; }
#route-main #route-bike-note { margin-left: 44px; font-size: .8rem; }

/* ===== P05/N07 fidelity, round 1 (2026-09-14): the stop cards against the accepted image. ===== */
/* The progress line still carried the app's arc artwork, which printed a crescent over the text. */
#route-main .route-stop__progress { background-image: none; border: 0; border-radius: 0; }
#route-main .route-stop__name::after { content: none; }
#route-main .route-stop__card { position: relative; padding-right: 34px; }
#route-main .route-stop__card::after { content: ""; position: absolute; right: 12px; top: 34px; width: 11px; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 16' fill='none' stroke='%23c0512f' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 2l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; }
#route-main .route-stop__name { display: block; margin-top: 2px; font-size: 1.05rem; }
#route-main .route-stop__progress { font-size: .86rem; }
#route-main .route-stop__line { margin-top: 6px; padding-top: 8px; font-size: .86rem; }
#route-main .route-stop__tip { font-size: .86rem; }
#route-main .route-stop__nav { min-height: 38px; font-size: .88rem; }
#route-main .route-leg__label { font-size: .86rem; }
#route-main .route-mode-block h2 { font-size: .98rem; }
#route-main .route-mode-block h2 { white-space: nowrap; font-size: .95rem; }
#route-main .route-mode .view-button { min-height: 28px; padding-inline: 9px; font-size: .8rem; gap: 4px; }
#route-main .route-mode .view-button .icon { width: 15px; height: 15px; }
#route-main .route-stop__progress { font-weight: 400; color: #8b949a; }
#route-main .route-stops .section-swash, #route-main .route-stops-heading .section-swash { display: none; }

/* ===== P07 fidelity (2026-09-14): E02 shop overview, menu and prices. ===== */
.app-shell--shop-detail .merchant-title-block { gap: 6px; padding-block: 12px 6px; }
.app-shell--shop-detail .merchant-category { display: inline-flex; align-items: center; gap: 6px; width: fit-content; padding: 5px 14px 5px 10px; border-radius: 999px; background: #fbe3d5; color: #c0512f; font-size: .9rem; font-weight: 700; }
.app-shell--shop-detail .merchant-category::before { content: ""; width: 16px; height: 16px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c0512f' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 2v7a3 3 0 0 0 3 3h2a3 3 0 0 0 3-3V2'/%3E%3Cpath d='M8 2v20'/%3E%3Cpath d='M20 22v-9h-2.4a1.6 1.6 0 0 1-1.6-1.6V8a6 6 0 0 1 4-5.7V22'/%3E%3C/svg%3E") center / 16px no-repeat; }
.app-shell--shop-detail .merchant-title-block h1 { margin: 0; font-size: 1.45rem; line-height: 1.35; color: #0e3f44; }
.app-shell--shop-detail .merchant-blurb { font-size: .92rem; line-height: 1.5; color: #7c858c; }
.app-shell--shop-detail .merchant-adjacent-truth { font-size: .78rem; color: #99a0a5; }
.app-shell--shop-detail .merchant-facts { padding-block: 4px 10px; }
.app-shell--shop-detail .merchant-facts h2 { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.app-shell--shop-detail .merchant-facts .merchant-fact { display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: center; gap: 12px; padding: 12px 14px; border: 0; border-radius: 16px; background: #fbe3d5; }
.app-shell--shop-detail .merchant-facts .merchant-fact > .icon { width: 44px; height: 44px; padding: 0; border-radius: 50%; background: #fdf1e9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c0512f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.2v5l3 1.9'/%3E%3C/svg%3E") center / 20px no-repeat; color: transparent; }
.app-shell--shop-detail .merchant-fact h3 { margin: 0; font-size: .88rem; font-weight: 400; color: #6f7a80; }
.app-shell--shop-detail .merchant-fact p { margin: 0; font-size: 1.1rem; font-weight: 700; color: #0e3f44; }
.app-shell--shop-detail .merchant-menu h2, .app-shell--shop-detail .merchant-location h2, .app-shell--shop-detail .merchant-related h2 { font-size: 1.35rem; color: #0e3f44; }
.app-shell--shop-detail .merchant-menu__list { gap: 10px; }
.app-shell--shop-detail .merchant-menu__list li { grid-template-columns: 64px minmax(0, 1fr); gap: 2px 14px; padding: 10px 12px; border: 0; border-radius: 16px; background: #fffdf9; box-shadow: 0 2px 10px rgb(90 55 30 / 6%); }
.app-shell--shop-detail .merchant-menu__mark { min-height: 64px; border-radius: 14px; background: #fbe3d5; }
.app-shell--shop-detail .merchant-menu__mark .icon { width: 32px; height: 32px; color: #c0512f; }
.app-shell--shop-detail .merchant-menu__name { align-self: end; font-size: 1.02rem; color: #0e3f44; }
.app-shell--shop-detail .merchant-menu__price { align-self: start; font-size: 1.2rem; font-weight: 700; color: #c0512f; }
.app-shell--shop-detail .merchant-nav[aria-disabled="true"], .app-shell--shop-detail [data-shop-nav][aria-disabled="true"] { width: 100%; min-height: 44px; border-radius: 14px; background: #e6e6e6; color: #8a8a8a; font-size: .98rem; font-weight: 700; }

/* ===== P07 fidelity (2026-09-14): E03 contacts, location and the other shops in the list. ===== */
.app-shell--shop-detail .merchant-location .merchant-fact { display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: center; gap: 14px; padding: 12px 14px; border: 1px solid #f2e6da; border-radius: 16px; background: #fffdf9; }
.app-shell--shop-detail .merchant-location .merchant-fact + .merchant-fact { margin-block-start: 10px; }
.app-shell--shop-detail .merchant-location .merchant-fact > .icon { width: 56px; height: 56px; padding: 14px; border-radius: 50%; background: #fbe3d5; color: #c0512f; }
.app-shell--shop-detail .merchant-location .merchant-fact > div { position: relative; padding-left: 14px; border-left: 1px solid #f0e0d2; }
.app-shell--shop-detail .merchant-location .merchant-fact h3 { margin: 0; font-size: 1rem; font-weight: 700; color: #0e3f44; }
.app-shell--shop-detail .merchant-location .merchant-fact p { margin: 0; font-size: .95rem; line-height: 1.5; color: #37464b; }
.app-shell--shop-detail .merchant-location .merchant-fact p:last-child:not(:nth-child(2)) { color: #8b949a; }
.app-shell--shop-detail .merchant-promotions__list li { position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: center; gap: 14px; padding: 14px 16px; border: 0; border-radius: 18px; background: #fbe3d5; }
.app-shell--shop-detail .merchant-promotions__list li::before { content: ""; position: absolute; left: 78px; top: 12px; bottom: 12px; border-left: 1.5px dashed #e6b79a; }
.app-shell--shop-detail .merchant-related__track { gap: 10px; }
.app-shell--shop-detail .merchant-related__link { position: relative; grid-template-columns: 56px minmax(0, 1fr); align-items: center; gap: 14px; padding: 10px 34px 10px 12px; border: 1px solid #f2e6da; border-radius: 16px; background: #fffdf9; }
.app-shell--shop-detail .merchant-related__link::after { content: ""; position: absolute; right: 14px; top: 50%; width: 11px; height: 18px; margin-top: -9px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 16' fill='none' stroke='%23c0512f' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 2l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; }
.app-shell--shop-detail .merchant-related__media { width: 56px; height: 56px; border-radius: 50%; }
.app-shell--shop-detail .merchant-related__copy { min-height: 0; padding: 0; font-size: 1rem; font-weight: 700; color: #0e3f44; }
.app-shell--shop-detail .merchant-sticky { padding: 8px var(--space-gutter) calc(8px + env(safe-area-inset-bottom)); border-top: 1px solid #f2e6da; background: var(--color-canvas); }
.app-shell--shop-detail .merchant-sticky #shop-navigate-reason { order: 2; margin: 6px 0 0; text-align: center; font-size: .82rem; color: #8b949a; }
.app-shell--shop-detail .merchant-sticky__button[aria-disabled="true"] { min-height: 46px; border-radius: 14px; background: #e6e6e6; color: #8a8a8a; font-size: .98rem; font-weight: 700; }
body[data-design-page="shop"] .merchant-title-block h1#shop-title { font-size: 1.45rem; line-height: 1.35; }
.app-shell--shop-detail .merchant-related__heading > div { display: grid; gap: 2px; }
.app-shell--shop-detail .merchant-related__heading h2 { margin: 0; line-height: 1.4; }
.app-shell--shop-detail .merchant-related__heading p { margin: 0; font-size: .8rem; line-height: 1.35; color: #c0512f; }

/* ===== P08 fidelity (2026-09-14): E04 accommodation comparison rows. ===== */
.app-shell--stay-directory .stay-directory__eyebrow { font-size: .88rem; font-weight: 700; color: #c0512f; }
.app-shell--stay-directory .stay-directory__head h1 { font-size: 1.85rem; line-height: 1.4; color: #0e3f44; }
.app-shell--stay-directory .stay-directory__head > p:last-child { font-size: .95rem; color: #7c858c; }
.app-shell--stay-directory .stay-results .section-heading h2, .app-shell--stay-directory .stay-results h2 { font-size: 1.3rem; color: #0e3f44; }
.app-shell--stay-directory [data-stay-count-label], .app-shell--stay-directory .stay-results__count { font-size: .9rem; font-weight: 400; color: #7c858c; }
.app-shell--stay-directory .stay-result__name { font-size: .95rem; line-height: 1.45; }
.app-shell--stay-directory .stay-result__summary { font-size: .9rem; color: #7c858c; }
.app-shell--stay-directory .stay-result__facts { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.app-shell--stay-directory .stay-result__fact { display: inline-flex; align-items: center; gap: 4px; font-size: .72rem; color: #37464b; }
.app-shell--stay-directory .stay-result__fact::before { content: ""; flex: none; width: 15px; height: 15px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e4747' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='3.6'/%3E%3Cpath d='M5 20.5a7 7 0 0 1 14 0'/%3E%3C/svg%3E") center / 18px no-repeat; }
.app-shell--stay-directory .stay-result__fact:first-child { flex-basis: 100%; font-size: 1.05rem; }
.app-shell--stay-directory .stay-result__fact:first-child::before { content: none; }
.app-shell--stay-directory .stay-result__fact:last-child::before { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e4747' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 13h16'/%3E%3Cpath d='M6 13V7a3 3 0 0 1 6 0'/%3E%3Cpath d='M8 16.5v1M12 16.5v1M16 16.5v1M10 19.5v1M14 19.5v1'/%3E%3C/svg%3E") center / 18px no-repeat; }
.app-shell--stay-directory .stay-result__action { justify-content: center; min-height: 44px; padding: .4rem 1rem; border-radius: 14px; font-size: 1rem; font-weight: 700; }
.app-shell--stay-directory .stay-result__action .icon { display: none; }

/* ===== P09 fidelity (2026-09-14): E05 room overview and the facts that decide a stay. ===== */
.app-shell--stay-detail .stay-detail__category { display: inline-flex; align-items: center; gap: 6px; width: fit-content; padding: 5px 14px 5px 10px; border-radius: 999px; background: #fbe3d5; color: #c0512f; font-size: .9rem; font-weight: 700; }
.app-shell--stay-detail .stay-detail__category::before { content: ""; width: 16px; height: 16px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c0512f' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 18v-7h18v7'/%3E%3Cpath d='M3 14h18'/%3E%3Cpath d='M6 11V8h5v3'/%3E%3Cpath d='M13 11V8h5v3'/%3E%3C/svg%3E") center / 16px no-repeat; }
.app-shell--stay-detail .stay-detail__title-block h1 { font-size: 1.5rem; line-height: 1.4; color: #0e3f44; }
.app-shell--stay-detail .stay-detail__title-block > p { font-size: .95rem; color: #7c858c; }
.app-shell--stay-detail .stay-facts h2 { font-size: 1.3rem; color: #0e3f44; }
.app-shell--stay-detail .stay-fact-list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.app-shell--stay-detail .stay-fact { position: relative; grid-column: 1 / -1; display: grid; grid-template-columns: 34px minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: 10px; padding: 10px 4px; border-bottom: 1px solid #f0e6da; }
.app-shell--stay-detail .stay-fact::before { content: ""; width: 24px; height: 24px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e4747' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 18v-7h18v7'/%3E%3Cpath d='M3 14h18'/%3E%3Cpath d='M6 11V8h5v3'/%3E%3Cpath d='M13 11V8h5v3'/%3E%3C/svg%3E") center / 20px no-repeat; }
.app-shell--stay-detail .stay-fact dt { font-size: .92rem; font-weight: 700; color: #0e3f44; }
.app-shell--stay-detail .stay-fact dd { margin: 0; font-size: .92rem; text-align: right; color: #37464b; }
.app-shell--stay-detail .stay-fact[data-stay-fact="price"] { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 4px 12px; padding: 14px 16px; border: 0; border-radius: 16px; background: #fbe3d5; }
.app-shell--stay-detail .stay-fact[data-stay-fact="price"]::before { grid-row: 1 / 3; width: 52px; height: 52px; border-radius: 50%; background: #fdf1e9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c0512f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12.5V4h8.5L21 13.5 13.5 21z'/%3E%3Ccircle cx='7.5' cy='8' r='1.4'/%3E%3C/svg%3E") center / 22px no-repeat; }
.app-shell--stay-detail .stay-fact[data-stay-fact="price"] dt { align-self: end; font-size: .88rem; font-weight: 400; color: #b05a3a; }
.app-shell--stay-detail .stay-fact[data-stay-fact="price"] dd { align-self: start; font-size: 1.2rem; font-weight: 700; text-align: left; color: #c0512f; }
.app-shell--stay-detail .stay-fact[data-stay-fact="check-in"], .app-shell--stay-detail .stay-fact[data-stay-fact="check-out"] { grid-column: span 1; grid-template-columns: 44px minmax(0, 1fr); gap: 2px 10px; padding: 12px; border: 0; border-radius: 16px; background: #fffdf9; box-shadow: 0 2px 10px rgb(90 55 30 / 6%); }
.app-shell--stay-detail .stay-fact[data-stay-fact="check-in"]::before, .app-shell--stay-detail .stay-fact[data-stay-fact="check-out"]::before { grid-row: 1 / 3; width: 44px; height: 44px; border-radius: 50%; background: #e3efec url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e4747' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.2v5l3 1.9'/%3E%3C/svg%3E") center / 22px no-repeat; }
.app-shell--stay-detail .stay-fact[data-stay-fact="check-in"] dt, .app-shell--stay-detail .stay-fact[data-stay-fact="check-out"] dt { align-self: end; font-size: .84rem; font-weight: 400; color: #6f7a80; }
.app-shell--stay-detail .stay-fact[data-stay-fact="check-in"] dd, .app-shell--stay-detail .stay-fact[data-stay-fact="check-out"] dd { align-self: start; font-size: 1.15rem; font-weight: 700; text-align: left; color: #0e3f44; }
.app-shell--stay-detail .stay-fact[data-stay-fact="capacity"]::before { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e4747' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='3.4'/%3E%3Cpath d='M5.5 20.5a6.5 6.5 0 0 1 13 0'/%3E%3C/svg%3E") center / 20px no-repeat; }
.app-shell--stay-detail .stay-fact[data-stay-fact="bathroom"]::before { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e4747' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 13h16'/%3E%3Cpath d='M6 13V7a3 3 0 0 1 6 0'/%3E%3Cpath d='M8 16.5v1M12 16.5v1M16 16.5v1M10 19.5v1M14 19.5v1'/%3E%3C/svg%3E") center / 20px no-repeat; }
.app-shell--stay-detail .stay-fact[data-stay-fact="parking"]::before { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e4747' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.6 16v-3l1.7-4.1A2 2 0 0 1 7.2 7.6h9.6a2 2 0 0 1 1.9 1.3L20.4 13v3z'/%3E%3Cpath d='M5.2 12.8h13.6'/%3E%3Ccircle cx='7.2' cy='14.4' r='.9'/%3E%3Ccircle cx='16.8' cy='14.4' r='.9'/%3E%3C/svg%3E") center / 20px no-repeat; }
.app-shell--stay-detail .stay-detail__sticky :is(button, a)[aria-disabled="true"] { min-height: 46px; border-radius: 14px; background: #e9e9e9; color: #8a8a8a; font-weight: 700; }

/* P09 round 1b: only the simple facts take the label/value row; the richer ones keep a stack. */
.app-shell--stay-detail .stay-fact { background: transparent; box-shadow: none; }
.app-shell--stay-detail .stay-fact[data-stay-fact="amenities"], .app-shell--stay-detail .stay-fact[data-stay-fact="address"], .app-shell--stay-detail .stay-fact[data-stay-fact="contact"], .app-shell--stay-detail .stay-fact[data-stay-fact="coordinates"] { grid-template-columns: 34px minmax(0, 1fr); align-items: start; row-gap: 6px; padding-block: 12px; }
.app-shell--stay-detail .stay-fact[data-stay-fact="amenities"] dd, .app-shell--stay-detail .stay-fact[data-stay-fact="address"] dd, .app-shell--stay-detail .stay-fact[data-stay-fact="contact"] dd, .app-shell--stay-detail .stay-fact[data-stay-fact="coordinates"] dd { grid-column: 2; text-align: left; }
.app-shell--stay-detail .stay-fact[data-stay-fact="amenities"]::before { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e4747' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.8 2.8M15.2 15.2 18 18M18 6l-2.8 2.8M8.8 15.2 6 18'/%3E%3C/svg%3E") center / 20px no-repeat; }
.app-shell--stay-detail .stay-fact[data-stay-fact="address"]::before { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e4747' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6.4 7-11.6A7 7 0 0 0 5 9.4C5 14.6 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.4' r='2.4'/%3E%3C/svg%3E") center / 20px no-repeat; }
.app-shell--stay-detail .stay-fact[data-stay-fact="contact"]::before { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e4747' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 3.5h3l1.5 4-2 1.5a12 12 0 0 0 6 6l1.5-2 4 1.5v3a2 2 0 0 1-2.2 2A16.5 16.5 0 0 1 4.5 5.7 2 2 0 0 1 6.5 3.5z'/%3E%3C/svg%3E") center / 20px no-repeat; }
.app-shell--stay-detail .stay-fact[data-stay-fact="coordinates"]::before { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e4747' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m15.5 8.5-2 5-5 2 2-5z'/%3E%3C/svg%3E") center / 20px no-repeat; }
.app-shell--stay-detail .stay-amenities { display: flex; flex-wrap: wrap; gap: 8px; }
.app-shell--stay-detail .stay-amenities > * { display: grid; justify-items: center; gap: 4px; width: 92px; padding: 10px 6px; border-radius: 14px; background: #fbe3d5; font-size: .78rem; line-height: 1.35; color: #0e3f44; text-align: center; }
.app-shell--stay-detail .stay-amenities .icon { width: 24px; height: 24px; color: #0e4747; }
.app-shell--stay-detail .stay-fact:last-child { border-bottom: 0; }

/* P09 round 1c: the information facts are peach cards with a mark, a rule and a stacked value,
   exactly as the accepted information image shows them. */
.app-shell--stay-detail .stay-fact[data-stay-fact="parking"], .app-shell--stay-detail .stay-fact[data-stay-fact="address"], .app-shell--stay-detail .stay-fact[data-stay-fact="contact"], .app-shell--stay-detail .stay-fact[data-stay-fact="coordinates"] { grid-template-columns: 64px minmax(0, 1fr); align-items: center; row-gap: 2px; column-gap: 0; padding: 14px 14px 14px 0; border: 0; border-radius: 16px; background: #fbe9de; }
.app-shell--stay-detail .stay-fact[data-stay-fact="parking"]::before, .app-shell--stay-detail .stay-fact[data-stay-fact="address"]::before, .app-shell--stay-detail .stay-fact[data-stay-fact="contact"]::before, .app-shell--stay-detail .stay-fact[data-stay-fact="coordinates"]::before { grid-row: 1 / 3; justify-self: center; width: 30px; height: 30px; }
.app-shell--stay-detail .stay-fact[data-stay-fact="parking"] dt, .app-shell--stay-detail .stay-fact[data-stay-fact="address"] dt, .app-shell--stay-detail .stay-fact[data-stay-fact="contact"] dt, .app-shell--stay-detail .stay-fact[data-stay-fact="coordinates"] dt { align-self: end; padding-left: 16px; border-left: 1px solid #eddbcb; font-size: 1rem; font-weight: 700; color: #0e3f44; }
.app-shell--stay-detail .stay-fact[data-stay-fact="parking"] dd, .app-shell--stay-detail .stay-fact[data-stay-fact="address"] dd, .app-shell--stay-detail .stay-fact[data-stay-fact="contact"] dd, .app-shell--stay-detail .stay-fact[data-stay-fact="coordinates"] dd { align-self: start; padding-left: 16px; border-left: 1px solid #eddbcb; font-size: .92rem; line-height: 1.5; text-align: left; color: #4d5c62; }
.app-shell--stay-detail .stay-fact[data-stay-fact="amenities"] { grid-template-columns: minmax(0, 1fr); padding: 4px 0 10px; }
.app-shell--stay-detail .stay-fact[data-stay-fact="amenities"]::before { content: none; }
.app-shell--stay-detail .stay-fact[data-stay-fact="amenities"] dt { grid-column: 1; font-size: 1.2rem; font-weight: 700; color: #0e3f44; }
.app-shell--stay-detail .stay-fact[data-stay-fact="amenities"] dd { grid-column: 1; margin-top: 8px; }
.app-shell--stay-detail .stay-amenities > * { flex: 1 1 0; width: auto; min-width: 92px; }
.app-shell--stay-detail .stay-fact[data-stay-fact="parking"]::before,
.app-shell--stay-detail .stay-fact[data-stay-fact="address"]::before,
.app-shell--stay-detail .stay-fact[data-stay-fact="contact"]::before,
.app-shell--stay-detail .stay-fact[data-stay-fact="coordinates"]::before { background-size: 30px; }

/* ===== Tap areas (2026-09-14) =====
 * The fidelity pass shrank these controls to the size in the accepted images. A transparent
 * block border restores a 44px target without changing a single painted pixel. */
[data-places-root] .filter-row .filter-chip { box-sizing: border-box; min-block-size: 44px; border-block: 6px solid transparent; background-clip: padding-box; }
[data-places-root] .search-pill { box-sizing: border-box; min-block-size: 44px; border-block: 4px solid transparent; background-clip: padding-box; }
.routes-v3-directory .filter-row .filter-chip { box-sizing: border-box; min-block-size: 44px; border-block: 6px solid transparent; background-clip: padding-box; }
.app-shell--merchant-list .shop-filter .filter-chip { box-sizing: border-box; min-block-size: 44px; border-block: 4px solid transparent; background-clip: padding-box; }
#route-main .route-mode .view-button { box-sizing: border-box; min-block-size: 44px; border-block: 8px solid transparent; background-clip: padding-box; }
#route-main .route-sos-link { box-sizing: border-box; min-block-size: 44px; border-block: 11px solid transparent; background-clip: padding-box; }
#place-main .save-heart--hero { box-sizing: border-box; min-block-size: 44px; border-block: 3px solid transparent; background-clip: padding-box; }
#place-main .place-actions > * { box-sizing: border-box; min-block-size: 44px; border-block: 2px solid transparent; background-clip: padding-box; }

/* ===== Tap areas, second pass (2026-09-14) =====
 * Same transparent-border treatment for the controls the first pass missed. */
.routes-v3-directory .route-row .save-heart { box-sizing: border-box; min-block-size: 44px; border-block: 5px solid transparent; background-clip: padding-box; }
[data-places-root] .view-switch--compact .view-button { box-sizing: border-box; min-block-size: 44px; border-block: 8px solid transparent; background-clip: padding-box; }
#route-main .route-stop__name { box-sizing: border-box; min-block-size: 44px; border-block: 3px solid transparent; background-clip: padding-box; }
#route-main .route-stop__nav { box-sizing: border-box; min-block-size: 44px; border-block: 3px solid transparent; background-clip: padding-box; }
#route-main .route-finish [data-route-finish] { box-sizing: border-box; min-block-size: 44px; min-height: 44px; border-block: 7px solid transparent; background-clip: padding-box; }
#route-main .route-actions > * { box-sizing: border-box; min-block-size: 44px; border-block: 2px solid transparent; background-clip: padding-box; }

/* ===== P09 round 2 (2026-09-14), from the independent review of E05 and E06 =====
 * The reviewer scored the room screen 76 and the information screen 58. Both asked for the
 * accepted order (price and the two times first, then the heading, then the room facts, then
 * amenities before the address block) and for the warmer marks the images use. The list turns
 * into a display:contents grid so the order can follow the image without touching the markup. */
.app-shell--stay-detail .stay-facts { display: grid; gap: 10px; }
.app-shell--stay-detail .stay-fact-list { display: contents; }
.app-shell--stay-detail .stay-facts h2 { order: 4; margin-block: 8px 0; }
.app-shell--stay-detail .stay-fact[data-stay-fact="price"] { order: 1; background: #fbdccb; }
.app-shell--stay-detail .stay-fact[data-stay-fact="check-in"] { order: 2; }
.app-shell--stay-detail .stay-fact[data-stay-fact="check-out"] { order: 3; }
.app-shell--stay-detail .stay-fact[data-stay-fact="room"] { order: 5; }
.app-shell--stay-detail .stay-fact[data-stay-fact="capacity"] { order: 6; }
.app-shell--stay-detail .stay-fact[data-stay-fact="bathroom"] { order: 7; }
.app-shell--stay-detail .stay-fact[data-stay-fact="amenities"] { order: 8; }
.app-shell--stay-detail .stay-fact[data-stay-fact="parking"] { order: 9; }
.app-shell--stay-detail .stay-fact[data-stay-fact="address"] { order: 10; }
.app-shell--stay-detail .stay-fact[data-stay-fact="contact"] { order: 11; }
.app-shell--stay-detail .stay-fact[data-stay-fact="coordinates"] { order: 12; }
.app-shell--stay-detail .stay-fact[data-stay-fact="parking"]::before { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c0512f' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.6 16v-3l1.7-4.1A2 2 0 0 1 7.2 7.6h9.6a2 2 0 0 1 1.9 1.3L20.4 13v3z'/%3E%3Cpath d='M5.2 12.8h13.6'/%3E%3Ccircle cx='7.2' cy='14.4' r='.9'/%3E%3Ccircle cx='16.8' cy='14.4' r='.9'/%3E%3C/svg%3E") center / 30px no-repeat; }
.app-shell--stay-detail .stay-fact[data-stay-fact="contact"]::before { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c0512f' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 3.9h3l1.5 4-2 1.5a12 12 0 0 0 5.6 5.6l1.5-2 4 1.5v3a2 2 0 0 1-2.2 2A16.5 16.5 0 0 1 4.5 6.1 2 2 0 0 1 6.5 3.9z'/%3E%3Cpath d='M3.4 3.4 20.6 20.6'/%3E%3C/svg%3E") center / 30px no-repeat; }
.app-shell--stay-detail .stay-fact[data-stay-fact="coordinates"]::before { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%230e4747'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.4a2.4 2.4 0 1 1 0-4.8 2.4 2.4 0 0 1 0 4.8z'/%3E%3C/svg%3E") center / 30px no-repeat; }
.app-shell--stay-detail .stay-detail__sticky :is(button, a)[aria-disabled="true"] { border: 0; background: #e4e4e4; color: #8a8a8a; }

/* ===== P07 round 2 (2026-09-14), from the independent review of E03 =====
 * The reviewer read the related-shops kicker as a stray line and flagged the category label
 * the mockup rows do not carry. The kicker becomes a small muted caption under its heading and
 * the per-row category label is hidden, leaving photo, name and chevron as the image shows. */
.app-shell--shop-detail .merchant-related__heading > div { display: grid; grid-template-areas: "title" "kicker"; }
.app-shell--shop-detail .merchant-related__heading h2 { grid-area: title; }
.app-shell--shop-detail .merchant-related__heading p { grid-area: kicker; font-size: .74rem; font-weight: 400; color: #8b949a; }
.app-shell--shop-detail .merchant-related__link .merchant-related__category, .app-shell--shop-detail .merchant-related__link .merchant-row__category { display: none; }

/* ===== P03/N04 round 3 (2026-09-14) =====
 * The accepted image puts the two map controls on one row. The card button and the fallback
 * retry now share that row instead of stacking, and the stops heading drops its swash. */
#place-main .place-map { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#place-main .place-map > * { grid-column: 1 / -1; }
#place-main .place-map > .map-open { grid-column: 1 / 2; margin: -58px 0 16px 16px; width: auto; }
#place-main .place-map > .map-open--retry { grid-column: 2 / 3; margin: -58px 16px 16px 8px; width: auto; }
