/* A browser storefront, with tenant colors supplied by scoped theme.css. */
:root {
  color-scheme: dark;
  --tenant-background: oklch(18% .012 115);
  --tenant-surface: oklch(23% .012 115);
  --tenant-text: oklch(95% .012 115);
  --tenant-muted: oklch(77% .015 115);
  --tenant-accent: oklch(81% .12 112);
  --tenant-accent-text: oklch(18% .012 115);
  --tenant-accent-foreground: oklch(85% .1 112);
  --tenant-border: color-mix(in oklch, var(--tenant-text) 22%, var(--tenant-background));
  --tenant-radius: 16px;
  --tenant-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --tenant-display-font: var(--tenant-font);
  --page-width: 1320px;
  --space: clamp(20px, 4vw, 64px);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { margin: 0; color: var(--tenant-text); background: var(--tenant-background); font: 16px/1.6 var(--tenant-font); }
[hidden] { display: none !important; }
button, input, select, textarea { font: inherit; }
button, input, select, textarea, summary, a { -webkit-tap-highlight-color: transparent; }
button, a, summary, input, select, textarea { touch-action: manipulation; }
a { color: inherit; text-underline-offset: 4px; }
a:hover { text-decoration-thickness: 2px; }
button { cursor: pointer; }
button:disabled { cursor: wait; opacity: .55; }
:focus-visible { outline: 3px solid var(--tenant-accent); outline-offset: 5px; }
img, video, svg { max-width: 100%; }
img, video { display: block; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.15; overflow-wrap: anywhere; }
h1 { font: 800 clamp(2.1rem, 4.4vw, 3.6rem)/1.08 var(--tenant-display-font); letter-spacing: -.035em; margin-bottom: 18px; }
h2 { font-size: 1.65rem; letter-spacing: -.025em; }
h3 { font-size: 1.15rem; }
p { max-width: 72ch; }
small, .muted, .eyebrow, .empty-note { color: var(--tenant-muted); }
.eyebrow { font-size: .85rem; font-weight: 650; letter-spacing: .04em; margin-bottom: 12px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 12px; left: 16px; padding: 12px 20px; background: var(--tenant-accent); color: var(--tenant-accent-text); z-index: 50; transform: translateY(-200%); }
.skip-link:focus { transform: none; }
.site-header { position: relative; z-index: 10; background: var(--tenant-background); border-bottom: 1px solid var(--tenant-border); }
.header-inner { max-width: var(--page-width); padding: 18px var(--space); margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.brand { display: flex; align-items: center; gap: 14px; text-decoration: none; min-height: 48px; font-weight: 750; line-height: 1.25; }
.brand-logo { display: grid; place-items: center; width: 58px; height: 58px; flex-shrink: 0; }
.brand-logo img { width: 58px; height: 58px; object-fit: contain; }
.brand small, .brand-region { display: block; margin-top: 5px; color: var(--tenant-muted); font-size: .8rem; font-weight: 500; }
.site-nav, .header-nav { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.site-nav a, .header-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 14px; border-radius: 8px; text-decoration: none; font-size: .94rem; font-weight: 600; }
.site-nav a:hover, .header-nav a:hover { background: color-mix(in oklch, var(--tenant-text) 8%, var(--tenant-background)); }
.site-nav a[aria-current], .header-nav a[aria-current] { color: var(--tenant-accent-foreground); background: var(--tenant-background); }
.region-link { color: var(--tenant-muted); }
main, .main-content { max-width: var(--page-width); margin: auto; padding: 40px var(--space) 80px; min-height: 65vh; }
.page-intro, .catalog-hero { padding: 20px 0 30px; }
.page-intro p, .catalog-hero p { color: var(--tenant-muted); margin-bottom: 0; }
.catalog-hero { display: block; position: relative; isolation: isolate; overflow: hidden; padding: 28px 24px; margin-bottom: 16px; border-radius: var(--tenant-radius); }
.catalog-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--tenant-background-image, none); background-position: center; background-size: cover; opacity: var(--tenant-background-opacity, .14); filter: blur(var(--tenant-background-blur, 0px)); }
.catalog-hero .hero-image, .hero-logo { width: clamp(90px, 12vw, 170px); height: clamp(90px, 12vw, 170px); object-fit: contain; }
.category-nav { display: flex; gap: 8px; overflow-x: auto; padding: 4px 4px 14px; margin: 0 -4px 16px; }
.category-nav a { flex-shrink: 0; min-height: 44px; display: inline-flex; align-items: center; padding: 8px 18px; border: 1px solid var(--tenant-border); border-radius: 99px; text-decoration: none; font-size: .88rem; font-weight: 650; }
.category-nav a[aria-current], .category-nav a:hover { background: var(--tenant-accent); color: var(--tenant-accent-text); border-color: var(--tenant-accent); }
#catalog-filters { display: grid; grid-template-columns: minmax(200px, 2fr) repeat(3, minmax(120px, 1fr)) auto; gap: 14px; align-items: end; padding: 20px 0 28px; }
label, .field { display: block; font-size: .88rem; font-weight: 600; }
label input, label select, label textarea, .field input, .field select { margin-top: 7px; }
input:not([type=checkbox]):not([type=radio]), select, textarea { width: 100%; min-height: 48px; padding: 11px 13px; background: var(--tenant-surface); color: var(--tenant-text); border: 1px solid var(--tenant-border); border-radius: 9px; }
input::placeholder, textarea::placeholder { color: var(--tenant-muted); opacity: .8; }
input[type=search] { appearance: none; }
textarea { resize: vertical; min-height: 140px; }
select { text-overflow: ellipsis; }
button, .button, .btn { display: inline-flex; justify-content: center; align-items: center; gap: 9px; min-height: 44px; padding: 10px 18px; border: 1px solid var(--tenant-border); border-radius: 9px; background: var(--tenant-surface); color: var(--tenant-text); font-weight: 650; text-decoration: none; transition: background-color 160ms ease-out, opacity 160ms ease-out, transform 160ms ease-out; }
button:hover, .button:hover, .btn:hover { background: color-mix(in oklch, var(--tenant-text) 12%, var(--tenant-surface)); }
.primary, .button-primary, button[type=submit] { background: var(--tenant-accent); border-color: var(--tenant-accent); color: var(--tenant-accent-text); }
.primary:hover, .button-primary:hover, button[type=submit]:hover { background: color-mix(in oklch, var(--tenant-accent) 85%, var(--tenant-text)); }
.secondary { background: transparent; }
.catalog-meta { display: flex; justify-content: space-between; align-items: baseline; padding: 6px 0 18px; }
#catalog-count { color: var(--tenant-muted); font-size: .9rem; }
.product-grid, #product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; }
.product-card { min-width: 0; position: relative; }
.product-media { display: block; position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--tenant-surface); border-radius: var(--tenant-radius); isolation: isolate; }
.product-media img, .product-media video { width: 100%; height: 100%; object-fit: cover; transition: transform 200ms ease-out; }
.product-media:hover img { transform: scale(1.025); }
.product-card h2 { font-size: 1.12rem; line-height: 1.35; margin: 8px 0 10px; }
.product-card h2 a { text-decoration: none; }
.product-card h2 a { display: flex; align-items: center; min-height: 44px; }
.product-card h2 a:hover { text-decoration: underline; }
.product-card .product-category { margin: 17px 0 4px; font-size: .78rem; color: var(--tenant-muted); }
.product-card .product-description { color: var(--tenant-muted); font-size: .88rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.product-card-body, .product-body { padding: 0 2px; }
.product-tags, .tags { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 12px; }
.tag, .farm, .product-tags span, .tags span { display: inline-flex; padding: 3px 9px; font-size: .75rem; line-height: 1.7; font-weight: 650; border: 1px solid var(--tenant-border); border-radius: 5px; }
.farm { color: var(--tenant-muted); }
.product-card-footer, .product-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 16px; }
.price, .product-price, .offer-price { font-weight: 750; font-size: 1.15rem; letter-spacing: -.025em; }
.price small, .product-price small { font-size: .8rem; font-weight: 500; letter-spacing: 0; }
del { color: var(--tenant-muted); font-size: .9rem; font-weight: 400; margin-right: 7px; }
[data-like] { min-width: 64px; min-height: 44px; padding: 8px 12px; background: transparent; border-radius: 99px; font-size: .85rem; }
[data-like] svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.7; }
[data-like][aria-pressed=true] { color: var(--tenant-accent-foreground); border-color: var(--tenant-accent); }
[data-like][aria-pressed=true] svg { fill: currentColor; }
[data-like][aria-pressed=true] svg path { fill: currentColor; }
.media-fallback { display: grid; place-items: center; height: 100%; min-height: 100px; color: var(--tenant-muted); font-size: .85rem; padding: 20px; text-align: center; }
.brand-logo .media-fallback { min-height: 0; font-size: .55rem; padding: 2px; }
.empty-state, #catalog-empty { margin: 32px 0; padding: 50px 24px; text-align: center; background: var(--tenant-surface); border-radius: var(--tenant-radius); }
.empty-state p, #catalog-empty p { margin: 0 auto 24px; color: var(--tenant-muted); }
.breadcrumb, .back-link { display: inline-flex; align-items: center; min-height: 44px; gap: 8px; color: var(--tenant-muted); margin-bottom: 24px; font-size: .9rem; }
.product-detail, .detail-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 70px); align-items: start; }
.product-detail > * { min-width: 0; }
.product-detail .product-media, .detail-media .product-media { aspect-ratio: 1 / 1; }
.product-detail h1 { font-size: clamp(1.9rem, 3.1vw, 2.8rem); }
.product-detail .product-description, .detail-description { white-space: pre-line; color: var(--tenant-muted); overflow-wrap: anywhere; }
.product-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 16px; }
.gallery-item { margin: 0; background: var(--tenant-surface); overflow: hidden; border-radius: calc(var(--tenant-radius) / 2); }
.gallery-item img, .gallery-item video { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; }
.gallery-item a { display: block; }
.gallery-item figcaption { padding: 8px 12px; font-size: .75rem; color: var(--tenant-muted); }
.detail-heading, .product-heading { display: flex; gap: 16px; justify-content: space-between; align-items: start; }
.detail-heading [data-like] { flex-shrink: 0; }
.type-field { max-width: 400px; margin: 24px 0; }
#product-type { margin-bottom: 24px; }
.offer, .offer-row { padding: 24px 0; border-top: 1px solid var(--tenant-border); }
.offer h3, .offer-row h3 { margin-bottom: 9px; }
.offer p, .offer-row p { font-size: .9rem; color: var(--tenant-muted); margin-bottom: 12px; }
.offer-heading { display: flex; justify-content: space-between; align-items: start; gap: 18px; }
.offer-price { white-space: nowrap; }
.discount, .discount-label { display: inline-block; padding: 2px 8px; color: var(--tenant-accent-foreground); font-size: .8rem; border: 1px solid var(--tenant-border); border-radius: 4px; margin-bottom: 10px; }
.order-choices { margin: 14px 0 0; }
summary { cursor: pointer; min-height: 44px; padding: 10px 0; font-weight: 650; }
.order-choices summary { padding: 10px 16px; border: 1px solid var(--tenant-border); border-radius: 9px; }
.order-choices[open] summary { margin-bottom: 14px; }
.order-choices a, .contact-link { display: flex; align-items: center; min-height: 48px; gap: 8px; padding: 10px 12px; border-radius: 8px; }
.order-choices a:hover, .contact-link:hover { background: var(--tenant-surface); }
.order-note { font-size: .85rem; color: var(--tenant-muted); }
.info-layout, .info-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 60px; }
.info-section { padding: 28px 0; border-top: 1px solid var(--tenant-border); }
.info-section h2 { margin-bottom: 20px; }
dl { margin: 0; }
dt { font-size: .85rem; color: var(--tenant-muted); margin-top: 18px; }
dd { margin: 4px 0 0; white-space: pre-line; overflow-wrap: anywhere; }
dd ul { margin: 0; padding-left: 20px; }
.contact-list { display: grid; gap: 8px; padding: 0; list-style: none; }
.contact-list a { display: flex; flex-direction: column; justify-content: center; min-height: 64px; padding: 14px 18px; border: 1px solid var(--tenant-border); border-radius: 10px; text-decoration: none; }
.contact-list a:hover { background: var(--tenant-surface); }
.contact-list small { overflow-wrap: anywhere; }
.map-section { margin-top: 38px; }
.map-panel { background: var(--tenant-surface); padding: 24px; border-radius: var(--tenant-radius); }
.reviews-layout { display: block; }
#review-summary { color: var(--tenant-muted); font-size: 1.1rem; }
.review { padding: 28px 0; border-top: 1px solid var(--tenant-border); }
.review-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.review-header h3 { margin: 0; font-size: 1rem; }
.review-rating { font-size: .9rem; font-weight: 750; white-space: nowrap; }
.review-comment { margin: 14px 0 12px; white-space: pre-line; overflow-wrap: anywhere; }
.review time { font-size: .8rem; }
input[type=radio], input[type=checkbox] { accent-color: var(--tenant-accent); width: 18px; height: 18px; flex-shrink: 0; margin: 0; }
.checkbox-label, .check-label { display: flex; align-items: center; gap: 12px; min-height: 44px; }
#site-status { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); width: max-content; max-width: min(620px, calc(100% - 32px)); padding: 14px 20px; background: var(--tenant-surface); color: var(--tenant-text); border: 1px solid var(--tenant-border); border-radius: 12px; box-shadow: 0 10px 40px oklch(12% .012 115 / .3); z-index: 30; font-size: .94rem; }
#site-status[data-error=true] { border-color: var(--tenant-text); }
#site-status:empty { display: none; }
.site-footer { max-width: var(--page-width); margin: auto; padding: 28px var(--space) 42px; border-top: 1px solid var(--tenant-border); display: flex; justify-content: space-between; gap: 24px; color: var(--tenant-muted); font-size: .85rem; }
.site-footer a { min-height: 44px; display: inline-flex; align-items: center; }
.error-page, .maintenance-page { max-width: 680px; padding-top: 80px; padding-bottom: 100px; }
.error-page p, .maintenance-page p { color: var(--tenant-muted); }
.root-site, body[data-page=root], body[data-page=selector] { --tenant-accent: oklch(86% .15 111); --tenant-background: oklch(17% .018 116); --tenant-surface: oklch(24% .02 116); --tenant-text: oklch(95% .02 115); --tenant-muted: oklch(77% .025 115); }
.root-header { padding: 24px var(--space); max-width: var(--page-width); margin: auto; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.wordmark { font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-weight: 900; font-size: 1.7rem; letter-spacing: -.015em; text-decoration: none; }
.root-layout, .selector-layout { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(40px, 7vw, 100px); align-items: center; }
.root-intro h1 { font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-size: clamp(3.3rem, 7vw, 6.3rem); font-weight: 900; letter-spacing: -.025em; text-transform: uppercase; max-width: 9ch; }
.root-intro p { color: var(--tenant-muted); font-size: 1.1rem; max-width: 35ch; }
.region-art { max-width: 340px; opacity: .8; margin: 36px 0 0; }
.region-list { list-style: none; padding: 0; margin: 0; }
.region-list a { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 4px; min-height: 90px; border-bottom: 1px solid var(--tenant-border); text-decoration: none; font-size: clamp(1.4rem, 2.7vw, 2.2rem); font-weight: 750; letter-spacing: -.035em; }
.region-list li:first-child a { border-top: 1px solid var(--tenant-border); }
.region-list a:hover { color: var(--tenant-accent); padding-left: 12px; }
.region-list a span:last-child, .region-list .arrow { font-size: 1.8rem; font-weight: 400; }
.root-note { font-size: .85rem; color: var(--tenant-muted); margin-top: 24px; }
body[data-density=compact] .product-grid { gap: 24px 16px; }
body[data-density=compact] .product-card h2 { font-size: 1rem; }
/* The server templates also remain useful with JavaScript disabled. */
.brand-image { object-fit: contain; width: 58px; height: 58px; }
.region-label { display: block; color: var(--tenant-muted); font-size: .8rem; font-weight: 500; margin-top: 4px; }
.region-switch { display: inline-flex; align-items: center; min-height: 44px; font-size: .84rem; gap: 6px; color: var(--tenant-muted); }
.search-field input, .filter-field select, .form-field input, .form-field textarea, .type-form select { margin-top: 7px; }
.filter-reset { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; font-size: .88rem; }
.product-card-media { position: relative; }
.product-card-media .like-button { position: absolute; right: 12px; top: 12px; background: var(--tenant-background); border-color: var(--tenant-border); }
.product-card-media .like-button:hover { background: var(--tenant-surface); }
.product-photo-link { display: block; }
.card-price { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-top: 16px; }
.card-price .detail-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 4px; width: 100%; font-size: .85rem; color: var(--tenant-muted); }
.card-price .discount-label { margin-bottom: 0; }
.media-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; min-height: 170px; gap: 12px; color: var(--tenant-muted); }
.media-placeholder span { font-size: 1.6rem; font-weight: 800; }
.product-gallery { display: block; margin-top: 0; }
.product-cover .product-media { aspect-ratio: 1; }
.gallery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 16px; }
.gallery-item .product-media { aspect-ratio: 1; }
.gallery-item video.media-content { object-fit: contain; }
.type-form { margin-top: 24px; }
.type-form select { margin-bottom: 12px; }
.type-form button { margin-bottom: 24px; }
.page-heading { padding: 18px 0 32px; }
.page-heading p:last-child { color: var(--tenant-muted); }
.review-item { padding: 28px 0; border-top: 1px solid var(--tenant-border); }
.review-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.review-item time { color: var(--tenant-muted); font-size: .8rem; }
.checkbox-field { display: flex; align-items: center; gap: 12px; min-height: 44px; }
.product-contact-note { font-size: .85rem; color: var(--tenant-muted); }
.root-main { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(40px, 7vw, 100px); align-items: center; padding-top: 80px; padding-bottom: 90px; }
.root-brand { display: inline-flex; align-items: center; min-height: 44px; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-weight: 900; font-size: 1.8rem; text-decoration: none; }
.root-header-note { color: var(--tenant-muted); font-size: .85rem; }
.region-number { color: var(--tenant-muted); font-size: .8rem !important; font-weight: 500; letter-spacing: 0; }
.region-name { flex: 1; }
.region-list .region-action { color: var(--tenant-muted); font-size: .85rem; font-weight: 500; letter-spacing: 0; }
.region-list a:first-child { border-top: 1px solid var(--tenant-border); }
.root-footer { max-width: var(--page-width); margin: auto; padding: 28px var(--space); border-top: 1px solid var(--tenant-border); display: flex; justify-content: space-between; gap: 20px; color: var(--tenant-muted); font-size: .85rem; }
@media (min-width: 1500px) { .product-grid, #product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 1000px) {
  #catalog-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #catalog-filters .search-field { grid-column: 1 / -1; }
  .product-grid, #product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .header-inner { flex-wrap: wrap; }
  .info-layout, .info-grid { gap: 32px; }
  .reviews-layout { gap: 32px; }
}
@media (max-width: 700px) {
  :root { --space: 20px; }
  .header-inner { padding-top: 14px; padding-bottom: 12px; gap: 12px; }
  .brand-logo, .brand-logo img { width: 44px; height: 44px; }
  .brand-image { width: 44px; height: 44px; }
  .brand { font-size: .95rem; gap: 10px; }
  .site-nav, .header-nav { width: 100%; justify-content: space-between; gap: 0; }
  .site-nav a, .header-nav a { padding: 10px; font-size: .83rem; }
  main, .main-content { padding-top: 24px; padding-bottom: 54px; }
  .catalog-hero { padding-top: 8px; grid-template-columns: 1fr; }
  .catalog-hero .hero-image, .hero-logo { display: none; }
  #catalog-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  #catalog-filters .search-field { grid-column: 1 / -1; }
  #catalog-filters select { font-size: .88rem; }
  .product-grid, #product-grid { gap: 28px 14px; }
  .product-media { aspect-ratio: 1; border-radius: min(var(--tenant-radius), 14px); }
  .product-card h2 { font-size: .97rem; }
  .product-card .product-description { font-size: .8rem; }
  .product-card .product-category { font-size: .68rem; margin-top: 12px; }
  .product-card-footer, .product-footer { flex-wrap: wrap; gap: 6px; }
  .price, .product-price { font-size: .98rem; }
  .product-tags, .tags { gap: 4px; }
  .tag, .farm, .product-tags span, .tags span { font-size: .68rem; padding: 2px 6px; }
  [data-like] { padding: 8px 10px; min-width: 58px; }
  .product-detail, .detail-layout, .info-layout, .info-grid, .reviews-layout, .root-layout, .selector-layout { grid-template-columns: 1fr; gap: 32px; }
  .product-detail { grid-template-columns: minmax(0, 1fr); }
  .root-main { grid-template-columns: 1fr; gap: 32px; padding-top: 30px; padding-bottom: 60px; }
  .header-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .region-switch { font-size: .74rem; }
  .site-nav { grid-column: 1 / -1; }
  .offer-heading { flex-wrap: wrap; gap: 8px; }
  .site-footer { flex-direction: column; gap: 8px; }
  .site-footer p { margin-bottom: 0; }
  .root-header { padding-top: 20px; padding-bottom: 16px; }
  .root-intro h1 { font-size: 3.6rem; max-width: 12ch; }
  .region-art { max-width: 170px; margin-top: 20px; }
  .region-list a { min-height: 76px; padding-top: 18px; padding-bottom: 18px; }
}
@media (max-width: 350px) {
  :root { --space: 14px; }
  .product-grid, #product-grid { grid-template-columns: 1fr; }
  .site-nav a, .header-nav a { padding: 10px 6px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
body[data-motion=false] *, body[data-motion=false] *::before, body[data-motion=false] *::after { transition: none !important; animation: none !important; }


/* The regional website follows the configured Mini App appearance. */
.leaf-rain {
    position: fixed;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: 0;
}
.leaf-rain .leaf {
    position: absolute;
    top: -10vh;
    will-change: transform, opacity;
    animation-name: leafFall;
    /* Slight ease so leaves aren't falling on perfect rails — real leaves
       decelerate and accelerate as air currents shift. */
    animation-timing-function: cubic-bezier(0.42, 0.1, 0.58, 0.92);
    animation-iteration-count: infinite;
    /* Subtle drop-shadow only — per-leaf blur is applied by JS for parallax
       depth-of-field (smaller/farther leaves look softer). */
    /* drop-shadow removed: will-change:transform + filter creates rectangular composite shadow */
}
/* S-shaped side-to-side drift with multiple waypoints for a natural flutter. */
@keyframes leafFall {
    0%   { transform: translate3d(0,                                           -10vh, 0)
                      rotate(0deg); }
    20%  { transform: translate3d(calc(var(--drift, 0px) *  0.55),              15vh, 0)
                      rotate(calc(var(--spin, 180deg) * 0.18)); }
    40%  { transform: translate3d(calc(var(--drift, 0px) * -0.35),              40vh, 0)
                      rotate(calc(var(--spin, 180deg) * 0.42)); }
    60%  { transform: translate3d(calc(var(--drift, 0px) *  0.7),               65vh, 0)
                      rotate(calc(var(--spin, 180deg) * 0.62)); }
    80%  { transform: translate3d(calc(var(--drift, 0px) * -0.15),              90vh, 0)
                      rotate(calc(var(--spin, 180deg) * 0.82)); }
    100% { transform: translate3d(var(--drift, 0px),                           115vh, 0)
                      rotate(var(--spin, 180deg)); }
}
.leaf-rain .leaf-flight-ltr { animation-name: leafFlyLtr; }
.leaf-rain .leaf-flight-rtl {
    animation-name: leafFlyRtl;
}
.leaf-rain .leaf-flight-flipped { --flight-facing: -1; }
/* Horizontal flight gets explicit paths in both directions. Mirroring lives
   at the end of each transform list, so it flips only the artwork's heading
   and never the translated coordinate system. The uneven bob waypoints,
   slight pitch changes, and per-pass altitude drift mimic powered flight
   without making the aircraft float like leaves. */
@keyframes leafFlyLtr {
    0%   { transform: translate3d(var(--flight-start), 0, 0)
                      rotate(0deg) scaleX(var(--flight-facing)); }
    14%  { transform: translate3d(14vw, calc(var(--bob-soft-neg) + var(--lane-drift-quarter)), 0)
                      rotate(var(--tilt-neg)) scaleX(var(--flight-facing)); }
    29%  { transform: translate3d(29vw, calc(var(--bob-soft) + var(--lane-drift-quarter)), 0)
                      rotate(var(--tilt)) scaleX(var(--flight-facing)); }
    43%  { transform: translate3d(43vw, calc(var(--bob-neg) + var(--lane-drift-half)), 0)
                      rotate(var(--tilt-neg)) scaleX(var(--flight-facing)); }
    57%  { transform: translate3d(57vw, calc(var(--bob-soft) + var(--lane-drift-half)), 0)
                      rotate(var(--tilt)) scaleX(var(--flight-facing)); }
    71%  { transform: translate3d(71vw, calc(var(--bob) + var(--lane-drift-three-quarter)), 0)
                      rotate(var(--tilt)) scaleX(var(--flight-facing)); }
    86%  { transform: translate3d(86vw, calc(var(--bob-soft-neg) + var(--lane-drift-three-quarter)), 0)
                      rotate(var(--tilt-neg)) scaleX(var(--flight-facing)); }
    100% { transform: translate3d(var(--flight-end), var(--lane-drift), 0)
                      rotate(0deg) scaleX(var(--flight-facing)); }
}
@keyframes leafFlyRtl {
    0%   { transform: translate3d(var(--flight-end), 0, 0)
                      rotate(0deg) scaleX(var(--flight-facing)); }
    14%  { transform: translate3d(86vw, calc(var(--bob-soft-neg) + var(--lane-drift-quarter)), 0)
                      rotate(var(--tilt)) scaleX(var(--flight-facing)); }
    29%  { transform: translate3d(71vw, calc(var(--bob-soft) + var(--lane-drift-quarter)), 0)
                      rotate(var(--tilt-neg)) scaleX(var(--flight-facing)); }
    43%  { transform: translate3d(57vw, calc(var(--bob-neg) + var(--lane-drift-half)), 0)
                      rotate(var(--tilt)) scaleX(var(--flight-facing)); }
    57%  { transform: translate3d(43vw, calc(var(--bob-soft) + var(--lane-drift-half)), 0)
                      rotate(var(--tilt-neg)) scaleX(var(--flight-facing)); }
    71%  { transform: translate3d(29vw, calc(var(--bob) + var(--lane-drift-three-quarter)), 0)
                      rotate(var(--tilt-neg)) scaleX(var(--flight-facing)); }
    86%  { transform: translate3d(14vw, calc(var(--bob-soft-neg) + var(--lane-drift-three-quarter)), 0)
                      rotate(var(--tilt)) scaleX(var(--flight-facing)); }
    100% { transform: translate3d(var(--flight-start), var(--lane-drift), 0)
                      rotate(0deg) scaleX(var(--flight-facing)); }
}

.leaf-rain { z-index: 1; }
.leaf-rain[data-paused=true] .leaf { animation-play-state: paused; }
body[data-region] { isolation: isolate; overflow-x: clip; }
.website-background { position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background: var(--tenant-background-image, none) center center / cover no-repeat;
  opacity: var(--tenant-background-opacity, .35); filter: blur(var(--tenant-background-blur, 0px)); }
body[data-region] .site-main, body[data-region] .site-footer { position: relative; z-index: 2; }
body[data-region] h1, body[data-region] h2, body[data-region] h3,
body[data-region] .brand-text, body[data-region] .price {
  font-family: var(--tenant-display-font); font-weight: 700; letter-spacing: .025em;
}
body[data-region] h1 { line-height: 1.15; }
body[data-region] .brand-text { font-size: 1.4rem; }
body[data-region] .region-label { font: 500 .8rem/1.3 var(--tenant-font); letter-spacing: 0; }
body[data-region] .site-header, body[data-region] .site-nav, body[data-region] .product-card,
body[data-region] .offer, body[data-region] .offer-row, body[data-region] .contact-list a,
body[data-region] .review-item, body[data-region] .review, body[data-region] .info-section, body[data-region] .map-section,
body[data-region] .catalog-filters, body[data-region] .empty-state {
  background: var(--glass-bg); border: 1px solid var(--glass-border);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(165%);
  backdrop-filter: blur(var(--glass-blur)) saturate(165%);
  box-shadow: inset 0 1.5px 0 var(--glass-hi), inset 0 0 0 1px rgba(255,255,255,.04),
    inset 0 -14px 26px -14px var(--glass-occ), var(--elev-2);
  border-radius: var(--r-lg, 22px);
}
body[data-region] .site-header { width: min(var(--page-width), calc(100% - 32px)); margin: 16px auto 0; position: relative; z-index: 20; }
body[data-region] .header-inner { padding: 12px 20px; }
body[data-region] .site-nav { position: fixed; z-index: 40; left: 50%; bottom: calc(12px + env(safe-area-inset-bottom));
  transform: translateX(-50%); width: min(430px, calc(100% - 24px)); display: flex; flex-wrap: nowrap;
  gap: 6px; padding: 8px; border-radius: var(--r-xl, 28px); box-shadow: inset 0 1.5px 0 var(--glass-hi), var(--elev-3); }
body[data-region] .site-nav a { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 4px;
  min-height: 58px; border-radius: var(--r-md, 16px); padding: 6px 10px; font-size: .78rem; }
body[data-region] .site-nav svg { fill: none; stroke: currentColor; stroke-width: 2px; stroke-linecap: round; stroke-linejoin: round; }
body[data-region] .site-nav a[aria-current] { background: linear-gradient(90deg,var(--tenant-fade-1),var(--tenant-fade-2),var(--tenant-fade-3),var(--tenant-fade-4));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.22); color: var(--tenant-cta-ink); }
body[data-region] .site-nav a[aria-current] svg { filter: drop-shadow(0 0 8px rgba(var(--tenant-accent-rgb),.45)); }
body[data-region] .site-header::after, body[data-region] .site-nav::after, body[data-region] .offer::after, body[data-region] .offer-row::after,
body[data-region] .contact-list a::after { content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(115deg,transparent 30%,rgba(255,255,255,.16) 47%,rgba(255,255,255,.03) 53%,transparent 67%);
  mix-blend-mode: screen; opacity: .7; }
body[data-region] .site-header > *, body[data-region] .site-nav > * { position: relative; z-index: 1; }
body[data-region] .site-main { padding-top: 28px; padding-bottom: 50px; }
body[data-region] .site-footer { padding-bottom: 130px; border-color: var(--glass-border); }
body[data-region] #site-status { bottom: calc(108px + env(safe-area-inset-bottom)); z-index: 50; }
body[data-region] .catalog-hero { display: flex; align-items: center; justify-content: flex-start; gap: 26px; padding: 18px 8px 30px; }
body[data-region] .catalog-hero > div { min-width: 0; flex: 1; overflow-wrap: anywhere; }
body[data-region] .catalog-hero::before { display: none; }
body[data-region] .hero-logo { display: block; flex: 0 0 auto; width: 150px; height: 150px; object-fit: contain; }
body[data-region] .catalog-hero h1 { font-size: clamp(2.2rem, 4vw, 3.6rem); margin-bottom: 10px; }
body[data-region] .catalog-hero p { text-shadow: 0 1px 3px var(--tenant-ink-shadow); }
body[data-region] .category-nav a { background: var(--glass-bg); border-color: var(--glass-border);
  box-shadow: inset 0 1px 0 var(--glass-hi), var(--elev-1); }
body[data-region] .category-nav a[aria-current], body[data-region] button[type=submit],
body[data-region] .button-primary { background: linear-gradient(90deg,var(--tenant-fade-1),var(--tenant-fade-2),var(--tenant-fade-3),var(--tenant-fade-4));
  border: 0; color: var(--tenant-cta-ink); box-shadow: inset 0 1.5px 0 rgba(255,255,255,.7),
    inset 0 -9px 16px -8px rgba(0,0,0,.4), 0 12px 26px -10px rgba(var(--tenant-accent-rgb),.45); }
body[data-region] .price { font-size: 1.7rem; font-variant-numeric: tabular-nums;
  background-image: linear-gradient(90deg,var(--tenant-fade-1),var(--tenant-fade-2),var(--tenant-fade-3),var(--tenant-fade-4));
  -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.5)); }
body[data-region] .brand-text { background-image: linear-gradient(135deg,var(--tenant-fade-1),var(--tenant-fade-2),var(--tenant-fade-3),var(--tenant-fade-4));
  -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.5)); }
body[data-region] .region-label { color: var(--tenant-muted); -webkit-text-fill-color: var(--tenant-muted); }
body[data-region] #catalog-filters { padding: 20px; margin-bottom: 24px; }
body[data-region] input:not([type=checkbox]):not([type=radio]), body[data-region] select,
body[data-region] textarea { background: color-mix(in srgb,var(--tenant-surface) 82%,transparent); border-color: var(--glass-border);
  border-radius: var(--r-sm,12px); box-shadow: inset 0 2px 5px rgba(0,0,0,.2); }
body[data-region] .product-grid { gap: 22px; }
body[data-region] .product-card { overflow: hidden; padding: 14px; }
body[data-region] .product-media { border-radius: var(--r-md,16px); }
body[data-region] .product-card h2 { font-size: 1.55rem; line-height: 1.25; }
body[data-region] .product-card-body { padding: 2px 3px 0; }
body[data-region] .product-card-media .like-button { background: color-mix(in srgb,var(--tenant-surface) 70%,transparent);
  border-color: var(--glass-border); -webkit-backdrop-filter: blur(var(--glass-blur)); backdrop-filter: blur(var(--glass-blur)); }
body[data-region] .detail-link { justify-content: center; padding: 9px 14px; border-radius: var(--r-sm,12px);
  background: var(--glass-bg); border: 1px solid var(--glass-border); text-decoration: none; }
body[data-region] .tag, body[data-region] .product-tag { background: rgba(var(--tenant-tag-rgb),.14); border-color: rgba(var(--tenant-tag-rgb),.35); color: var(--tenant-text); border-radius: var(--r-xs,10px); }
body[data-region] .farm, body[data-region] .farm-label { background: rgba(var(--tenant-farm-rgb),.14); border-color: rgba(var(--tenant-farm-rgb),.35); border-radius: var(--r-xs,10px); }
body[data-region] .offer, body[data-region] .offer-row { position: relative; padding: 20px; margin-bottom: 16px; }
body[data-region] .offer h3, body[data-region] .offer-row h3 { font-size: 1.65rem; }
body[data-region] .contact-list a { position: relative; overflow: hidden; }
body[data-region] .order-choices { position: relative; z-index: 1; }
body[data-region] .order-choices summary { background: var(--glass-bg); border-color: var(--glass-border); border-radius: var(--r-sm,12px); }
body[data-region] .info-section { padding: 24px; margin-bottom: 20px; }
body[data-region] .review-item, body[data-region] .review { padding: 24px; margin-bottom: 18px; }
body[data-region] .review-heading h3, body[data-region] .review-header h3 { font-family: var(--tenant-font); font-size: 1rem; letter-spacing: 0; }
body[data-region] .map-section { padding: 24px; }
body[data-region][data-density=compact] .product-card { padding: 12px; }
body[data-region][data-density=spacious] .product-card { padding: 22px; }
body[data-region] button, body[data-region] .button { border-radius: var(--r-sm,12px); }
body[data-region] button:active, body[data-region] .button:active { transform: translateY(1px) scale(.98); }
@media (max-width: 700px) {
  body[data-region] { --space: 16px; }
  body[data-region] .site-header { margin-top: 12px; width: calc(100% - 24px); }
  body[data-region] .header-inner { display: flex; flex-wrap: nowrap; padding: 12px 14px; gap: 10px; }
  body[data-region] .brand { min-width: 0; }
  body[data-region] .brand-text { font-size: 1.1rem; }
  body[data-region] .region-switch { flex-shrink: 0; font-size: .65rem; }
  body[data-region] .catalog-hero { align-items: center; gap: 15px; padding: 14px 0 24px; }
  body[data-region] .hero-logo { width: 90px; height: 90px; }
  body[data-region] .catalog-hero h1 { font-size: 2rem; }
  body[data-region] .hero-subtitle { font-size: .85rem; }
  body[data-region] .eyebrow { font-size: .72rem; margin-bottom: 8px; }
  body[data-region] #catalog-filters { padding: 16px; }
  body[data-region] .product-grid { gap: 14px; }
  body[data-region] .product-card { padding: 10px; }
  body[data-region] .product-card h2 { font-size: 1.12rem; }
  body[data-region] .product-card .price { font-size: 1.22rem; }
  body[data-region] .product-card [data-like] { min-width: 44px; padding: 7px; gap: 4px; }
  body[data-region] .product-card-media .like-button { right: 5px; top: 5px; }
  body[data-region] .product-tags span { padding: 3px 5px; }
  body[data-region] .site-footer { padding-bottom: 115px; }
}
@media (prefers-reduced-motion: reduce) { .leaf-rain { display: none !important; } }
body[data-motion=false] .leaf-rain { display: none !important; }

/* The customer Mini App's own icon geometry and channel image assets. */
.miniapp-icon { display: inline-block; flex-shrink: 0; vertical-align: -.2em; }
.miniapp-icon * { stroke-width: 2px; stroke-linecap: round; stroke-linejoin: round; }
body[data-region] [data-like] .miniapp-icon { width: 18px; height: 18px; stroke-width: 2px; }
body[data-region] .site-nav .miniapp-icon { width: 22px; height: 22px; }
body[data-region] .site-nav a[aria-current] .miniapp-icon * { stroke-width: 2.35px; }
.search-input-wrap { position: relative; }
.search-input-wrap > .miniapp-icon { position: absolute; left: 14px; top: calc(50% + 3px);
  transform: translateY(-50%); color: var(--tenant-muted); pointer-events: none; }
body[data-region] .search-input-wrap input[type=search] { padding-left: 44px; }
.product-category, .product-detail-category, .farm-label { display: inline-flex; align-items: center; gap: 6px; }
.product-detail-category { color: var(--tenant-muted); margin: 0 0 12px; }
.product-category .miniapp-icon { width: 14px; height: 14px; }
.farm-label .miniapp-icon { width: 13px; height: 13px; }
.info-section h2, .contacts-section h2 { display: flex; align-items: center; gap: 10px; }
.contact-card-icon { width: 48px; height: 48px; object-fit: contain; flex-shrink: 0; }
.contact-card-body { display: flex; flex-direction: column; gap: 3px; flex: 1; min-width: 0; }
.contact-card-body > * { overflow-wrap: anywhere; }
.contact-card-arrow { display: inline-flex; flex-shrink: 0; }
.contact-list .contact-link { min-height: 80px; padding: 14px; gap: 14px; }
.order-links .contact-link { gap: 10px; }
.order-links .contact-card-icon { width: 32px; height: 32px; }
.review-rating { display: inline-flex; gap: 2px; white-space: nowrap; }
.review-rating > span { color: var(--tenant-muted); opacity: .4; }
.review-rating > .on { color: var(--tenant-accent-foreground); opacity: 1; }

/* Customer Info, Contact and reviews follow the existing Mini App's screens. */
.native-screen { width: min(100%, 680px); margin-inline: auto; }
body[data-region] .native-screen { padding-bottom: 12px; }
body[data-region] .info-hero, body[data-region] .contact-hero {
  text-align: center; padding: 6px 12px 24px;
}
body[data-region] .info-hero-title, body[data-region] .contact-hero-title {
  font: 700 3.25rem/1.05 var(--tenant-display-font); letter-spacing: .5px;
  text-transform: uppercase; color: var(--tenant-text); margin: 0 0 10px;
  text-shadow: 0 2px 0 var(--tenant-ink-shadow), 0 0 18px rgba(var(--tenant-accent-rgb),.25);
}
body[data-region] .contact-hero-title { font-size: 2.875rem; }
body[data-region] .info-section, body[data-region] .reviews-summary {
  background: linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015));
  border: 1px solid var(--glass-border); border-radius: var(--r-lg,22px);
  padding: 18px 18px 14px; margin-bottom: 16px;
  -webkit-backdrop-filter: none; backdrop-filter: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16),var(--elev-1);
}
body[data-region] .info-section-title {
  display: flex; align-items: center; gap: 10px; margin: 0 0 12px;
  font: 700 1.5rem/1.2 var(--tenant-display-font); letter-spacing: .3px;
  color: var(--tenant-accent-foreground); text-transform: uppercase;
}
body[data-region] .info-section-title > .miniapp-icon { width: 24px; height: 24px; }
body[data-region] .info-subtitle {
  display: flex; align-items: center; gap: 8px; margin: 14px 0 8px;
  font: 700 .8125rem/1.4 var(--tenant-display-font); letter-spacing: .3px;
  text-transform: uppercase; color: var(--tenant-muted);
}
.info-subtitle > .miniapp-icon, .info-row-label > .miniapp-icon { color: var(--tenant-accent-foreground); }
.info-rows { display: flex; flex-direction: column; gap: 2px; }
.info-row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 0; border-bottom: 1px dashed rgba(var(--tenant-accent-rgb),.18);
  font-size: .875rem; line-height: 1.5; overflow-wrap: anywhere;
}
.info-row-label { display: inline-flex; align-items: center; gap: 8px; flex: 1; min-width: 0; }
.info-row > strong { flex: 0 1 65%; text-align: right; font-weight: 700; }
.info-row.info-row-solo, .info-rows .info-row:last-child { border-bottom: 0; }
.info-row.info-row-solo { padding: 8px 0 2px; }
.info-flag, .info-chip-flag { line-height: 1; flex-shrink: 0; font-family: var(--tenant-font); }
.info-flag { font-size: 1rem; }
body[data-region] .info-row-price {
  font: 700 1.375rem/1.3 var(--tenant-display-font); letter-spacing: .5px;
  color: var(--tenant-accent-foreground); font-variant-numeric: tabular-nums;
}
.info-note, .ship-note-text { color: var(--tenant-muted); font-size: .8125rem; line-height: 1.55; }
.info-note { margin: 10px 0 4px; white-space: pre-line; }
.info-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 14px; }
.info-chip {
  display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 6px 12px;
  border-radius: 999px; border: 1px solid rgba(var(--tenant-accent-rgb),.65);
  background: color-mix(in srgb,var(--tenant-background) 68%,transparent);
  font: 400 .875rem/1.4 var(--tenant-display-font); letter-spacing: .5px;
  color: var(--tenant-accent-foreground); overflow-wrap: anywhere;
}
.info-chip-flag { font-size: .8125rem; }
.info-badge-ok {
  display: inline-flex; flex-shrink: 0; padding: 4px 10px; border-radius: 999px;
  background: var(--tenant-accent); color: var(--tenant-accent-text);
  font: 700 .75rem/1.4 var(--tenant-font); letter-spacing: .3px;
}
.shift-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 4px 0 10px; }
.shift-card {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 4px; padding: 14px 8px; min-width: 0; text-align: center;
  background: color-mix(in srgb,var(--tenant-background) 68%,transparent);
  border: 1px solid rgba(var(--tenant-accent-rgb),.35); border-radius: var(--r-sm,12px);
}
.shift-card .miniapp-icon { color: var(--tenant-accent-foreground); margin-bottom: 2px; }
.shift-card-label { font: 600 .6875rem/1.5 var(--tenant-font); text-transform: uppercase; letter-spacing: .8px; color: var(--tenant-muted); }
.shift-card-time { font: 400 1.625rem/1.15 var(--tenant-display-font); letter-spacing: .5px; color: var(--tenant-accent-foreground); overflow-wrap: anywhere; }
.info-zips-wrap { margin-top: 4px; }
.info-zips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.info-zip-chip {
  display: inline-flex; align-items: center; padding: 4px 11px; min-height: 28px;
  border-radius: var(--r-xs,8px); background: rgba(var(--tenant-accent-rgb),.1);
  border: 1px solid rgba(var(--tenant-accent-rgb),.28); font-size: .8125rem;
  font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: .3px;
}
.ship-pay-list { display: flex; flex-direction: column; gap: 4px; margin-top: 4px; }
.ship-method-card {
  display: flex; flex-direction: column; gap: 5px; padding: 10px 14px;
  background: color-mix(in srgb,var(--tenant-background) 55%,transparent);
  border: 1px solid var(--glass-border); border-radius: var(--r-sm,12px);
}
.ship-method-head { display: flex; align-items: center; gap: 8px; }
.ship-method-sym { font-size: 1rem; line-height: 1; }
.ship-method-name { font-size: .8125rem; font-weight: 700; color: var(--tenant-accent-foreground); letter-spacing: .3px; }
.ship-method-instruction { margin: 0; padding-left: 24px; color: var(--tenant-muted); font-size: .75rem; line-height: 1.5; }
.info-shipping-note { display: flex; flex-direction: column; margin-top: 10px; }
.ship-note-text { margin: 3px 0; }
.ship-alert { margin: 6px 0; padding: 8px 12px; border: 1px solid rgba(var(--tenant-accent-rgb),.35); border-radius: var(--r-xs,10px); background: rgba(var(--tenant-accent-rgb),.1); font-size: .8125rem; line-height: 1.55; }
.info-row > .support-247 { flex-basis: auto; text-align: left; }
.support-247 { font: 400 1.75rem/1.25 var(--tenant-display-font); color: var(--tenant-accent-foreground); letter-spacing: .5px; padding: 4px 0; }
.info-support-cta, .info-map-cta { display: flex; width: 100%; min-height: 48px; margin-top: 12px; flex-wrap: wrap; text-align: center; }
.info-support-handle { font-size: .75rem; font-weight: 500; overflow-wrap: anywhere; }
.info-map-address { margin: -4px 0 10px; color: var(--tenant-muted); font-size: .8125rem; }
.info-map-frame { position: relative; z-index: 0; isolation: isolate; width: 100%; height: 260px; margin-top: 10px; border-radius: var(--r-md,16px); overflow: hidden; border: 1px solid var(--glass-border); background: var(--tenant-surface); }
/* Keep the native dark map presentation on the public OSM basemap. Labels,
   attribution, markers and service-area overlays remain separate. */
.info-map-frame .leaflet-tile-pane { filter: grayscale(1) invert(1) brightness(.85) contrast(.95); }
.info-map-frame .leaflet-container { width: 100%; height: 100%; font-family: var(--tenant-font); }
.info-map-frame .leaflet-control-zoom a { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; line-height: 44px; }
.info-map-frame .leaflet-control-attribution { color: #252832; background: rgba(244,244,247,.92); font-size: .6875rem; }
.info-map-frame .leaflet-control-attribution a { display: inline-flex; align-items: center; min-height: 44px; color: #252832; }
.info-map-frame .leaflet-control a:focus-visible { outline: 3px solid var(--tenant-accent-foreground); outline-offset: -3px; }
.location-kind { font-size: .875rem; margin-bottom: 8px; }
.info-contact-section { padding: 10px 0 0; }
.all-contacts-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--tenant-muted); font-size: .875rem; margin-top: 8px; }

/* Mask the same uploaded channel artwork, without changing source files. */
.contact-logo { display: block; width: 96px; height: 96px; margin: 0 auto 14px; overflow: hidden; border-radius: 24%; border: 1px solid rgba(var(--tenant-accent-rgb),.25); background: var(--tenant-surface); }
.contact-logo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.contact-cards, .contact-list { display: flex; flex-direction: column; gap: 14px; padding: 4px 0 20px; }
body[data-region] .contact-list .contact-link, body[data-region] .order-links .contact-link {
  position: relative; display: grid; grid-template-columns: 64px minmax(0,1fr) auto;
  flex-direction: initial; align-items: center; justify-content: initial; gap: 16px;
  padding: 16px; min-height: 96px; border-radius: var(--r-md,16px);
  text-decoration: none; overflow: hidden;
  background: var(--glass-bg); border: 1px solid var(--glass-border);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(165%);
  backdrop-filter: blur(var(--glass-blur)) saturate(165%);
  box-shadow: inset 0 1.5px 0 var(--glass-hi),inset 0 -14px 26px -14px var(--glass-occ),var(--elev-2);
  transition: transform .18s ease-out,border-color .2s ease-out,box-shadow .2s ease-out;
}
.contact-icon-mask {
  position: relative; z-index: 1; display: grid; place-items: center; width: 64px; height: 64px;
  border-radius: 24%; overflow: hidden; isolation: isolate; color: var(--tenant-accent-foreground);
  background: var(--tenant-surface); border: 1px solid var(--glass-border); flex-shrink: 0;
}
.contact-icon-mask > .contact-card-icon, .order-links .contact-icon-mask > .contact-card-icon {
  display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%;
}
.contact-card-body, .contact-card-arrow { position: relative; z-index: 1; }
.contact-card-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.contact-card-name { font: 400 1.375rem/1.2 var(--tenant-display-font); letter-spacing: .5px; color: var(--tenant-accent-foreground); }
.contact-card-handle { font: 400 .8125rem/1.5 var(--tenant-font); color: var(--tenant-muted); overflow-wrap: anywhere; }
.contact-card-arrow { display: inline-flex; color: var(--tenant-accent-foreground); }
body[data-region] .contact-list .contact-link:hover, body[data-region] .order-links .contact-link:hover {
  transform: translateY(-2px); border-color: rgba(var(--tenant-accent-rgb),.45);
  box-shadow: inset 0 1.5px 0 var(--glass-hi),0 14px 30px -16px rgba(var(--tenant-accent-rgb),.45);
}
body[data-region] .contact-list .contact-link:active, body[data-region] .order-links .contact-link:active { transform: translateY(1px); }
body[data-region] .contact-cards-compact .contact-link, body[data-region] .order-links .contact-link {
  grid-template-columns: 48px minmax(0,1fr) auto; gap: 12px; min-height: 74px; padding: 12px;
}
.contact-cards-compact .contact-icon-mask, .order-links .contact-icon-mask { width: 48px; height: 48px; }
.contact-cards-compact .contact-card-name, .order-links .contact-card-name { font-size: 1.125rem; }
.order-links { display: flex; flex-direction: column; gap: 10px; }

/* Native read-only review summary and feed. Avatar choices are public safe. */
body[data-region] .reviews-summary { display: grid; grid-template-columns: minmax(120px,160px) minmax(0,1fr); gap: 20px; padding: 20px; }
.reviews-summary-main { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; padding: 6px 16px 6px 0; border-right: 1px solid rgba(var(--tenant-accent-rgb),.25); }
.reviews-summary-main > strong { font: 700 3.375rem/1 ui-monospace,'SF Mono',Menlo,Consolas,monospace; letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: var(--tenant-accent-foreground); }
.reviews-summary-main .review-stars { font-size: 1.25rem; }
.reviews-summary-main > span:last-child, .reviews-summary-main > p { color: var(--tenant-muted); font-size: .75rem; margin: 0; }
.reviews-summary-bars { display: flex; flex-direction: column; gap: 6px; justify-content: center; }
.reviews-bar-row { display: grid; grid-template-columns: 28px minmax(0,1fr) 28px; align-items: center; gap: 8px; font-size: .75rem; line-height: 1.5; font-weight: 600; }
.reviews-bar-row > span:last-child { text-align: right; }
.reviews-bar-track { display: block; width: 100%; height: 8px; appearance: none; -webkit-appearance: none; border: 1px solid rgba(var(--tenant-accent-rgb),.25); border-radius: 999px; overflow: hidden; color: var(--tenant-accent); background: rgba(var(--tenant-accent-rgb),.08); }
.reviews-bar-track::-webkit-progress-bar { background: rgba(var(--tenant-accent-rgb),.08); border-radius: 999px; }
.reviews-bar-track::-webkit-progress-value { background: var(--tenant-accent); border-radius: 999px; }
.reviews-bar-track::-moz-progress-bar { background: var(--tenant-accent); border-radius: 999px; }
.review-guidance { padding: 12px 0 22px; margin-bottom: 12px; border-bottom: 1px solid var(--glass-border); }
.review-guidance p { margin-bottom: 12px; color: var(--tenant-muted); font-size: .875rem; }
.reviews-list-heading { margin: 0 0 12px; }
#review-list, #review-feed { display: flex; flex-direction: column; gap: 12px; }
body[data-region] .review-item {
  display: grid; grid-template-columns: 44px minmax(0,1fr); align-items: start; gap: 12px;
  padding: 14px; margin: 0; border: 1px solid var(--glass-border); border-radius: var(--r-md,16px);
  background: var(--glass-bg); -webkit-backdrop-filter: blur(10px) saturate(150%);
  backdrop-filter: blur(10px) saturate(150%); box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
}
.review-avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; object-position: 50% 50%; border: 2px solid var(--tenant-accent); background: var(--tenant-surface); overflow: hidden; }
.review-anon-avatar { border-color: var(--tenant-border); padding: 6px; background: repeating-linear-gradient(45deg,color-mix(in srgb,var(--tenant-background) 92%,var(--tenant-muted)) 0 6px,color-mix(in srgb,var(--tenant-background) 82%,var(--tenant-muted)) 6px 12px); }
.review-body { min-width: 0; }
.review-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 4px; }
.review-name { flex: 1; min-width: 0; font: 700 .875rem/1.4 var(--tenant-font); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.review-stars { display: inline-flex; gap: 2px; flex-shrink: 0; font: 400 .875rem/1.4 var(--tenant-font); letter-spacing: 1px; white-space: nowrap; }
.review-stars > span { opacity: .35; color: var(--tenant-muted); }
.review-stars > .on { opacity: 1; color: var(--tenant-accent-foreground); }
.review-comment { font: 400 .875rem/1.5 var(--tenant-font); margin: 2px 0 6px; white-space: pre-wrap; overflow-wrap: anywhere; }
body[data-region] .review-date { display: block; font: 400 .6875rem/1.5 var(--tenant-font); color: var(--tenant-muted); }

/* Shared polish uses the configured font, color and glass values per tenant. */
body[data-region] .site-nav { width: min(460px,calc(100% - 24px)); }
body[data-region] .site-nav a { min-width: 0; padding-inline: 6px; }
body[data-region] .site-nav a:hover { border-color: rgba(var(--tenant-accent-rgb),.45); }
body[data-region] .brand-logo { overflow: hidden; flex-shrink: 0; border-radius: 24%; }
body[data-region] .brand-logo .brand-image { object-fit: cover; object-position: 50% 50%; width: 100%; height: 100%; }
body[data-region] .offer-heading { align-items: center; }
body[data-region] .offer-main { min-width: 0; }
body[data-region] .offer-main h3 { overflow-wrap: anywhere; }
body[data-region] .offer-price { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; white-space: normal; }
body[data-region] .offer-price .price, body[data-region] .offer-price .original-price { white-space: nowrap; }
body[data-region] .offer-price .original-price, body[data-region] .offer-price .discount-label { margin: 0; }
body[data-region] .offer-row p { overflow-wrap: anywhere; }
body[data-region] .product-card-body .product-description { line-height: 1.55; }
.order-choices summary { list-style-position: inside; }
.order-choices summary:focus-visible { outline-offset: 3px; }
.order-choices[open] summary { border-color: rgba(var(--tenant-accent-rgb),.45); }
body[data-region] .gallery-grid { gap: 14px; }
body[data-region] :focus-visible { outline-color: var(--tenant-accent-foreground); }

/* The region selector shares native card proportions, with its own neutral shell. */
body[data-page=root] {
  --tenant-background: #111116; --tenant-surface: #202027; --tenant-text: #ecebf2;
  --tenant-muted: #b8b6c4; --tenant-accent: #cfccdf; --tenant-accent-foreground: #dfdbe9;
  --tenant-border: #484650; --tenant-font: 'Manrope',system-ui,sans-serif;
  --tenant-display-font: 'Anton',Impact,sans-serif;
  background: radial-gradient(ellipse at 50% 0%,#282631 0,transparent 65%),var(--tenant-background);
  min-height: 100svh;
}
body[data-page=root] .root-header { width: min(760px,calc(100% - 32px)); margin: 16px auto 0; padding: 14px 20px; border: 1px solid #494751; border-radius: 22px; background: linear-gradient(180deg,rgba(235,232,245,.09),rgba(235,232,245,.025)); box-shadow: inset 0 1px 0 rgba(235,232,245,.18),0 16px 36px -16px rgba(8,7,13,.65); }
body[data-page=root] .root-brand { font: 400 1.625rem/1 var(--tenant-display-font); letter-spacing: .5px; }
body[data-page=root] .root-main { display: block; width: min(100%,680px); margin: auto; padding: 34px 24px 44px; }
body[data-page=root] .root-intro { text-align: center; padding: 6px 0 24px; }
body[data-page=root] .root-intro h1 { max-width: none; font: 400 2.5rem/1.2 var(--tenant-display-font); letter-spacing: .5px; margin: 0 0 12px; text-transform: uppercase; }
body[data-page=root] .root-intro p { max-width: 38ch; margin: auto; font-size: .875rem; line-height: 1.6; }
body[data-page=root] .region-list { display: flex; flex-direction: column; gap: 12px; }
body[data-page=root] .region-list .region-choice { display: grid; grid-template-columns: 48px minmax(0,1fr) 24px; gap: 16px; align-items: center; min-height: 88px; padding: 16px; border: 1px solid #494751; border-radius: 16px; background: linear-gradient(180deg,rgba(235,232,245,.09),rgba(235,232,245,.025)); box-shadow: inset 0 1px 0 rgba(235,232,245,.18),0 16px 36px -16px rgba(8,7,13,.65); text-decoration: none; transition: transform .18s ease-out,border-color .18s ease-out; }
body[data-page=root] .region-choice:hover { transform: translateY(-2px); border-color: #b8b6c4; color: var(--tenant-text); }
body[data-page=root] .region-choice:active { transform: translateY(1px); }
.region-icon { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid #53515c; border-radius: 24%; background: #23212b; }
body[data-page=root] .region-name { font: 400 1.375rem/1.2 var(--tenant-display-font); letter-spacing: .5px; }
body[data-page=root] .region-list .region-name .region-action { display: block; margin-top: 5px; color: var(--tenant-muted); font: 400 .8125rem/1.4 var(--tenant-font); letter-spacing: 0; }
.region-arrow { display: inline-flex; }
body[data-page=root] .root-footer { width: min(760px,calc(100% - 32px)); padding: 20px 8px 28px; font-size: .75rem; }
@media (max-width: 700px) {
  body[data-region] .site-main { padding-top: 22px; }
  body[data-region] .info-hero-title { font-size: 3rem; }
  body[data-region] .contact-hero-title { font-size: 2.625rem; }
  body[data-region] .info-section { padding: 18px 16px 14px; }
  body[data-region] .info-section-title { font-size: 1.5rem; }
  .info-row > strong { max-width: 64%; }
  .info-row > .support-247 { max-width: 100%; }
  .contact-card-name { font-size: 1.25rem; }
  body[data-region] .contact-list .contact-link { grid-template-columns: 56px minmax(0,1fr) auto; gap: 14px; padding: 14px; min-height: 86px; }
  .contact-list .contact-icon-mask { width: 56px; height: 56px; }
  body[data-region] .contact-cards-compact .contact-link, body[data-region] .order-links .contact-link { grid-template-columns: 48px minmax(0,1fr) auto; gap: 12px; padding: 12px; }
  .contact-cards-compact .contact-icon-mask { width: 48px; height: 48px; }
  body[data-region] .reviews-summary { grid-template-columns: 108px minmax(0,1fr); gap: 14px; padding: 18px 14px; }
  .reviews-summary-main { padding-right: 12px; }
  .reviews-summary-main > strong { font-size: 2.75rem; }
  .reviews-summary-main .review-stars { font-size: 1rem; }
  .review-top { flex-wrap: nowrap; gap: 10px; }
  body[data-page=root] .root-header { padding: 12px 16px; }
  body[data-page=root] .root-main { padding: 28px 20px 36px; }
  body[data-page=root] .root-footer { flex-direction: column; gap: 6px; }
}
@media (max-width: 350px) {
  .info-row { flex-wrap: wrap; }
  .info-row > strong { max-width: 100%; flex-basis: auto; }
  body[data-region] .reviews-summary { grid-template-columns: 1fr; }
  .reviews-summary-main { border-right: 0; border-bottom: 1px solid var(--glass-border); padding: 0 0 14px; }
  body[data-region] .site-nav a { font-size: .6875rem; }
  .shift-card-time { font-size: 1.375rem; }
}
