/*
Theme Name: ZAD STACK Open
Theme URI: https://zadstack.com
Description: ZAD STACK adaptation of Open ZAD Theme.
Author: ZAD STACK
Version: 1.0.1
Template: tailwind-alpine-barebones
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: zadstack-open
*/

.zso-hero-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(20rem, .85fr); gap: clamp(2rem, 7vw, 7rem); align-items: center; }
.zso-terminal { position: relative; border: 2px solid rgb(var(--color-text)); background: rgb(var(--color-surface)); padding: clamp(1.5rem, 4vw, 3rem); box-shadow: 1rem 1rem 0 rgb(var(--color-secondary)); }
.zso-terminal::before { content: ""; position: absolute; inset: -1.5rem 1.5rem auto -1.5rem; height: 100%; background: rgb(var(--color-primary)); z-index: -1; }
.zso-ledger { display: grid; grid-template-columns: 4rem minmax(0, 1fr) 9rem; gap: 1.5rem; align-items: start; padding: 2rem 0; border-top: 1px solid rgb(var(--color-border)); }
.zso-ledger:last-child { border-bottom: 1px solid rgb(var(--color-border)); }
.zso-status::before { content: ""; display: inline-block; width: .5rem; height: .5rem; margin-inline-end: .5rem; border-radius: 50%; background: rgb(var(--color-primary)); }
.zso-story-grid { display: grid; grid-template-columns: minmax(17rem, .7fr) minmax(0, 1.3fr); gap: clamp(2rem, 7vw, 7rem); }
.zso-institutions { display: grid; grid-template-columns: 10rem minmax(0, 1fr) 18rem; gap: clamp(2rem, 5vw, 5rem); align-items: end; }
.zso-institutions h2 { max-width: 14ch; font-size: clamp(2.75rem, 5vw, 5.5rem); line-height: 1.05; }
.zso-store ul.products { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(17rem, 100%), 22rem)); gap: 2rem; justify-content: start; padding: 0 !important; margin-top: 3rem !important; }
.zso-store ul.products::before, .zso-store ul.products::after { display: none !important; }
.zso-store ul.products li.product { float: none !important; width: auto !important; margin: 0 !important; padding-top: 1rem !important; border-top: 2px solid rgb(var(--color-text)); }
.zso-store ul.products li.product img { margin-bottom: 1rem !important; }
.zso-store .button, .zso-store button.button, .zso-store .checkout-button { border-radius: 0 !important; background: rgb(var(--color-primary)) !important; color: #fff !important; min-height: 44px; }
.zso-store .onsale { border-radius: 0 !important; background: rgb(var(--color-secondary)) !important; color: rgb(var(--color-text)) !important; }
.zso-store div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .8fr); gap: clamp(2rem, 7vw, 7rem); }
.zso-store div.product .woocommerce-product-gallery, .zso-store div.product .summary { float: none !important; width: auto !important; }
.zso-product-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .36fr); gap: clamp(3rem, 8vw, 8rem); align-items: end; }
.zso-product-facts { border-top: 2px solid rgb(var(--color-text)); }
.zso-product-facts p { display: grid; grid-template-columns: 5rem minmax(0, 1fr); gap: 1rem; padding: 1rem 0; border-bottom: 1px solid rgb(var(--color-border)); }
.zso-product-facts span, .zso-product-facts strong { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .75rem; }
.zso-product-facts span { color: rgb(var(--color-text-muted)); }
.zso-reading-layout { display: grid; grid-template-columns: 10rem minmax(0, 48rem); gap: clamp(3rem, 8vw, 8rem); justify-content: center; }
.zso-reading-label { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; color: rgb(var(--color-primary)); font-size: .75rem; font-weight: 800; }
.zso-reading-label span { display: block; font-size: 2rem; margin-bottom: .75rem; }
.zso-prose { max-width: 48rem; color: rgb(var(--color-text)); font-size: clamp(1.08rem, 1.4vw, 1.25rem); line-height: 2; }
.zso-prose > * + * { margin-top: 1.5rem; }
.zso-prose h2 { margin-top: 3.5rem; padding-top: 1rem; border-top: 2px solid rgb(var(--color-text)); font-size: clamp(1.8rem, 4vw, 3rem); line-height: 1.2; font-weight: 900; }
.zso-prose h3 { margin-top: 2.5rem; font-size: 1.5rem; font-weight: 900; }
.zso-prose ul { padding-inline-start: 1.4rem; list-style: square; }
.zso-prose li + li { margin-top: .75rem; }
.zso-prose a { color: rgb(var(--color-primary)); text-decoration: underline; text-underline-offset: .25rem; }
.zso-button-primary, .zso-button-secondary { display: inline-flex; padding: .9rem 1.35rem; border: 2px solid rgb(var(--color-primary)); font-weight: 900; }
.zso-button-primary { background: rgb(var(--color-primary)); color: white; }
.zso-button-secondary { color: rgb(var(--color-primary)); }
.zso-article-header { display: grid; grid-template-columns: 12rem minmax(0, 55rem); gap: clamp(3rem, 8vw, 8rem); justify-content: center; }
.zso-journal-row { display: grid; grid-template-columns: 4rem minmax(0, 1fr) 6rem; gap: 2rem; align-items: start; padding: 2.25rem 0; border-top: 1px solid rgb(var(--color-border)); }
.zso-journal-row:last-child { border-bottom: 1px solid rgb(var(--color-border)); }
.zso-principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: rgb(var(--color-border)); border: 1px solid rgb(var(--color-border)); }
.zso-principles article { background: rgb(var(--color-surface)); padding: clamp(1.5rem, 4vw, 3rem); }
.zso-principles span { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; color: rgb(var(--color-primary)); font-weight: 900; }
.zso-principles h2 { margin-top: 4rem; font-size: 1.75rem; font-weight: 900; }
.zso-principles p { margin-top: 1rem; color: rgb(var(--color-text-muted)); line-height: 1.8; }
.zso-commerce-page .wc-block-components-sidebar-layout { gap: clamp(2rem, 5vw, 5rem); }
.zso-brand-lockup { display: flex; align-items: center; gap: .7rem; color: rgb(var(--color-text)); }
.zso-brand-lockup img { width: 2rem; height: 2rem; }
.zso-brand-lockup strong, .zso-brand-lockup small { display: block; line-height: 1.15; }
.zso-brand-lockup strong { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .8rem; }
.zso-brand-lockup small { margin-top: .2rem; color: rgb(var(--color-text-muted)); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .52rem; letter-spacing: .08em; }
.zso-corporate-hero { border-bottom: 1px solid rgb(var(--color-border)); background: rgb(var(--color-surface)); }
.zso-corporate-hero h1 { max-width: 13ch; color: rgb(var(--color-text)); font-size: clamp(3.2rem, 7vw, 7.5rem); font-weight: 900; line-height: .98; letter-spacing: -.04em; }
.zso-corporate-hero h1 + p { max-width: 50rem; margin-top: 2rem; color: rgb(var(--color-text-muted)); font-size: clamp(1.15rem, 2vw, 1.55rem); line-height: 1.8; }
.zso-eyebrow { color: rgb(var(--color-primary)); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .72rem; font-weight: 900; letter-spacing: .1em; }
.zso-legal-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid rgb(var(--color-text)); }
.zso-legal-grid p { min-height: 8rem; padding: 1.5rem; border-bottom: 1px solid rgb(var(--color-border)); border-inline-end: 1px solid rgb(var(--color-border)); }
.zso-legal-grid span, .zso-legal-grid strong { display: block; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.zso-legal-grid span { color: rgb(var(--color-text-muted)); font-size: .68rem; }
.zso-legal-grid strong { margin-top: 1.5rem; font-size: .9rem; }
.zso-offer-list { border-top: 2px solid rgb(var(--color-text)); }
.zso-offer-list article { display: grid; grid-template-columns: 4rem minmax(0, 1fr) 10rem; gap: 2rem; padding: 2.25rem 0; border-bottom: 1px solid rgb(var(--color-border)); align-items: start; }
.zso-offer-list article > span { color: rgb(var(--color-primary)); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 900; }
.zso-offer-list h2 { font-size: clamp(1.7rem, 3vw, 2.6rem); font-weight: 900; }
.zso-offer-list p { margin-top: .7rem; color: rgb(var(--color-text-muted)); line-height: 1.8; }
.zso-offer-list a { font-weight: 900; text-decoration: underline; }
.zso-contact-brief { margin-top: 2rem; border-top: 2px solid rgb(var(--color-text)); }
.zso-contact-brief li { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 1rem; padding: 1.25rem 0; border-bottom: 1px solid rgb(var(--color-border)); font-size: 1.1rem; }
.zso-contact-brief span { color: rgb(var(--color-primary)); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 900; }
.zso-company-strip { display: grid; grid-template-columns: 14rem minmax(0, 1fr) 10rem; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.zso-company-strip > :last-child { text-align: end; }

html, body { max-width: 100%; overflow-x: clip; }

@media (max-width: 900px) {
  .zso-hero-grid, .zso-story-grid, .zso-institutions, .zso-product-hero, .zso-reading-layout, .zso-article-header { grid-template-columns: 1fr; }
  .zso-reading-label { display: flex; align-items: baseline; gap: 1rem; }
  .zso-journal-row { grid-template-columns: 2rem minmax(0, 1fr); gap: 1rem; }
  .zso-journal-row > :last-child { grid-column: 2; }
  .zso-principles { grid-template-columns: 1fr; }
  .zso-brand-lockup small { display: none; }
  .zso-corporate-hero h1 { font-size: clamp(3rem, 14vw, 5rem); }
  .zso-legal-grid { grid-template-columns: 1fr; }
  .zso-offer-list article { grid-template-columns: 2rem minmax(0, 1fr); gap: 1rem; }
  .zso-offer-list article > a { grid-column: 2; }
  .zso-company-strip { grid-template-columns: 1fr; }
  .zso-company-strip > :last-child { text-align: start; }
  .zso-institutions h2 { font-size: clamp(2.5rem, 12vw, 4rem); }
  .zso-terminal { box-shadow: .5rem .5rem 0 rgb(var(--color-secondary)); }
  .zso-terminal::before { inset: -.75rem .75rem auto -.75rem; }
  .zso-ledger { grid-template-columns: 2rem minmax(0, 1fr); gap: 1rem; }
  .zso-ledger > :last-child { grid-column: 2; }
  .zso-store div.product { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Dubai Open Product House — visual sprint */
:root {
  --zso-paper: #f3f0e4;
  --zso-paper-deep: #e8e2d2;
  --zso-ink: #10231d;
  --zso-green: #174f3b;
  --zso-blue: #235aaf;
  --zso-red: #c93f32;
  --zso-gold: #d4bd77;
  --zso-line: color-mix(in srgb, var(--zso-ink) 22%, transparent);
  --zso-ease: cubic-bezier(.16, 1, .3, 1);
}

a, button, input { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible {
  outline: 3px solid var(--zso-blue) !important;
  outline-offset: 3px;
}

.zso-home { background: var(--zso-paper); color: var(--zso-ink); }
.zso-home-hero { min-height: calc(100svh - 5rem); border-bottom: 1px solid var(--zso-line); }
.zso-home-hero-inner { display: grid; grid-template-columns: minmax(26rem, .82fr) minmax(0, 1.18fr); min-height: inherit; }
.zso-home-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(4rem, 8vw, 8rem) clamp(1.5rem, 5vw, 6rem); border-inline-end: 1px solid var(--zso-line); }
.zso-kicker { display: flex; align-items: center; gap: .8rem; color: var(--zso-green); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .68rem; font-weight: 800; letter-spacing: .13em; }
.zso-kicker span { width: 2.5rem; height: 1px; background: currentColor; }
.zso-home-copy h1 { max-width: 9ch; margin-top: clamp(2rem, 5vw, 4rem); font-size: clamp(4.3rem, 8.5vw, 9rem); font-weight: 900; letter-spacing: -.06em; line-height: .82; }
.zso-home-copy h1 em { color: var(--zso-blue); font-style: normal; }
.zso-home-lede { max-width: 34rem; margin-top: clamp(2rem, 4vw, 3rem); color: color-mix(in srgb, var(--zso-ink) 68%, transparent); font-size: clamp(1.1rem, 1.55vw, 1.45rem); line-height: 1.85; }
.zso-home-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; margin-top: 2.5rem; }
.zso-home .zso-button-primary { min-height: 3.25rem; align-items: center; background: var(--zso-ink); border-color: var(--zso-ink); color: var(--zso-paper); transition: transform 240ms var(--zso-ease), background 160ms linear; }
.zso-home .zso-button-primary:hover { background: var(--zso-blue); border-color: var(--zso-blue); transform: translateY(-2px); }
.zso-text-link { min-height: 2.75rem; display: inline-flex; align-items: center; border-bottom: 1px solid currentColor; font-weight: 800; }
.zso-home-signals { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: clamp(3rem, 6vw, 6rem); border-top: 1px solid var(--zso-line); }
.zso-home-signals div { padding: 1.2rem 0; border-inline-end: 1px solid var(--zso-line); }
.zso-home-signals div:last-child { border-inline-end: 0; }
.zso-home-signals dt { color: var(--zso-blue); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .7rem; font-weight: 900; }
.zso-home-signals dd { margin-top: .5rem; font-size: .85rem; font-weight: 800; }

.zso-release-window { position: relative; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; min-height: 40rem; overflow: hidden; background: var(--zso-green); color: var(--zso-paper); }
.zso-window-bar { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.25rem; border-bottom: 1px solid rgba(243,240,228,.28); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .65rem; font-weight: 800; letter-spacing: .12em; }
.zso-window-live { display: inline-flex; align-items: center; gap: .5rem; }
.zso-window-live::before { content: ""; width: .45rem; height: .45rem; border-radius: 50%; background: #53dc93; box-shadow: 0 0 0 .25rem rgba(83,220,147,.14); }
.zso-release-window picture { min-height: 0; }
.zso-release-window img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.88) contrast(1.03); transition: transform 900ms var(--zso-ease), filter 400ms linear; }
.zso-release-window:hover img { transform: scale(1.018); filter: saturate(1) contrast(1.03); }
.zso-release-caption { display: flex; justify-content: space-between; align-items: end; gap: 1.5rem; padding: 1.5rem; border-top: 1px solid rgba(243,240,228,.28); }
.zso-release-caption small { display: block; color: rgba(243,240,228,.58); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .65rem; }
.zso-release-caption strong { display: block; margin-top: .3rem; font-size: clamp(1.35rem, 2vw, 2rem); }
.zso-release-caption > span { font-size: .8rem; font-weight: 800; }

.zso-company-band { background: var(--zso-ink); color: var(--zso-paper); border-bottom: 1px solid rgba(243,240,228,.14); }
.zso-company-band > div { display: grid; grid-template-columns: 14rem 12rem minmax(0, 1fr) 10rem; align-items: center; gap: 2rem; max-width: 96rem; margin: 0 auto; padding: 1.25rem clamp(1.25rem, 4vw, 4rem); }
.zso-company-band p { color: #69c798; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .65rem; font-weight: 900; letter-spacing: .1em; }
.zso-company-band strong { font-size: 1.15rem; }
.zso-company-band span { color: rgba(243,240,228,.72); }
.zso-company-band a { text-align: end; font-size: .8rem; font-weight: 900; text-decoration: underline; text-underline-offset: .25rem; }

.zso-featured-product, .zso-product-index, .zso-home-journal { padding: clamp(5rem, 10vw, 10rem) clamp(1.25rem, 5vw, 6rem); }
.zso-section-heading, .zso-index-header { display: grid; grid-template-columns: 12rem minmax(0, 1fr) minmax(14rem, .35fr); gap: clamp(2rem, 5vw, 6rem); align-items: end; max-width: 90rem; margin: 0 auto clamp(3rem, 6vw, 6rem); }
.zso-section-heading > p, .zso-index-header > p, .zso-home-journal header > p, .zso-open-standard > div > p { color: var(--zso-blue); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .68rem; font-weight: 900; letter-spacing: .1em; }
.zso-section-heading h2, .zso-index-header h2, .zso-home-journal h2 { font-size: clamp(3rem, 6vw, 6.8rem); font-weight: 900; letter-spacing: -.055em; line-height: .94; }
.zso-section-heading > span, .zso-index-header > span { color: color-mix(in srgb, var(--zso-ink) 64%, transparent); line-height: 1.8; }
.zso-featured-stage { display: grid; grid-template-columns: minmax(0, 1fr) 18rem; max-width: 90rem; margin: 0 auto; border: 1px solid var(--zso-line); }
.zso-featured-visual { min-width: 0; overflow: hidden; background: var(--zso-green); }
.zso-featured-visual img { display: block; width: 100%; height: 100%; min-height: 32rem; object-fit: cover; }
.zso-featured-notes { display: flex; flex-direction: column; background: var(--zso-ink); color: var(--zso-paper); }
.zso-featured-notes p { padding: 1.3rem; border-bottom: 1px solid rgba(243,240,228,.17); }
.zso-featured-notes span { display: block; color: #69c798; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .62rem; }
.zso-featured-notes strong { display: block; margin-top: .55rem; font-size: .9rem; }
.zso-featured-notes .zso-button-primary { margin: auto 1.25rem 1.25rem; justify-content: center; background: var(--zso-paper); border-color: var(--zso-paper); color: var(--zso-ink); }

.zso-product-index { background: #f8f6ed; border-block: 1px solid var(--zso-line); }
.zso-index-rows { max-width: 90rem; margin: 0 auto; border-top: 2px solid var(--zso-ink); }
.zso-product-row { display: grid; grid-template-columns: 3rem minmax(13rem, .75fr) minmax(18rem, 1.25fr) 7rem 3rem; gap: 1.5rem; align-items: center; min-height: 9rem; padding: 1.5rem 0; border-bottom: 1px solid var(--zso-line); }
.zso-product-row > span { color: var(--zso-blue); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .75rem; font-weight: 900; }
.zso-product-row small { color: color-mix(in srgb, var(--zso-ink) 55%, transparent); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .62rem; }
.zso-product-row h3 { margin-top: .45rem; font-size: clamp(1.7rem, 3vw, 3rem); font-weight: 900; line-height: 1; }
.zso-product-row h3 a { transition: color 160ms linear; }
.zso-product-row h3 a:hover { color: var(--zso-blue); }
.zso-product-row > p { color: color-mix(in srgb, var(--zso-ink) 65%, transparent); line-height: 1.75; }
.zso-product-row > strong { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .65rem; }
.zso-row-arrow { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid var(--zso-line); font-size: 1.1rem; transition: background 160ms linear, color 160ms linear, transform 220ms var(--zso-ease); }
.zso-row-arrow:hover { background: var(--zso-blue); color: white; transform: translate(-2px, -2px); }

.zso-open-standard { position: relative; display: grid; grid-template-columns: minmax(0, .55fr) minmax(0, .45fr); gap: 5rem; overflow: hidden; padding: clamp(6rem, 12vw, 12rem) clamp(1.25rem, 8vw, 9rem); background: var(--zso-green); color: var(--zso-paper); }
.zso-open-mark { position: absolute; inset-inline-start: -2rem; bottom: -9rem; color: rgba(243,240,228,.055); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: clamp(20rem, 45vw, 44rem); font-weight: 900; line-height: .75; }
.zso-open-standard > div:not(.zso-open-mark) { position: relative; z-index: 1; }
.zso-open-standard h2 { max-width: 11ch; margin-top: 2rem; font-size: clamp(3.4rem, 7vw, 7.4rem); font-weight: 900; letter-spacing: -.055em; line-height: .9; }
.zso-open-standard > div:last-child { align-self: end; max-width: 34rem; }
.zso-open-standard > div:last-child p { color: rgba(243,240,228,.78); font-size: clamp(1.2rem, 2vw, 1.6rem); line-height: 1.8; }
.zso-open-standard > div:last-child a { display: inline-block; margin-top: 2rem; border-bottom: 1px solid currentColor; font-weight: 900; }

.zso-home-journal { display: grid; grid-template-columns: minmax(20rem, .42fr) minmax(0, .58fr); gap: clamp(3rem, 8vw, 9rem); }
.zso-home-journal header { align-self: start; }
.zso-home-journal h2 { margin-top: 2rem; }
.zso-home-journal > div { border-top: 2px solid var(--zso-ink); }
.zso-home-journal article { padding: 2rem 0; border-bottom: 1px solid var(--zso-line); }
.zso-home-journal time { color: var(--zso-blue); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .7rem; }
.zso-home-journal h3 { margin-top: 1rem; font-size: clamp(1.7rem, 3vw, 3rem); font-weight: 900; }
.zso-home-journal article p { max-width: 42rem; margin-top: 1rem; color: color-mix(in srgb, var(--zso-ink) 65%, transparent); line-height: 1.8; }
.zso-home-journal article > a { display: inline-block; margin-top: 1.5rem; font-size: .85rem; font-weight: 900; text-decoration: underline; }

.zso-home-cta { padding: clamp(5rem, 10vw, 10rem) clamp(1.25rem, 8vw, 9rem); background: var(--zso-blue); color: white; }
.zso-home-cta p { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .68rem; font-weight: 900; letter-spacing: .1em; }
.zso-home-cta h2 { max-width: 12ch; margin-top: 2rem; font-size: clamp(3.7rem, 8vw, 8rem); font-weight: 900; letter-spacing: -.055em; line-height: .9; }
.zso-home-cta a { display: inline-flex; min-height: 3.25rem; align-items: center; margin-top: 3rem; padding: 0 1.5rem; background: white; color: var(--zso-blue); font-weight: 900; }

/* Reference product */
.zso-open-emirates { --oe-paper: #f2eedf; --oe-green: #123f30; --oe-red: #c83f32; background: var(--oe-paper); }
.zso-product-showcase { padding: clamp(5rem, 10vw, 10rem) clamp(1.25rem, 5vw, 6rem); background: var(--oe-green); color: var(--oe-paper); }
.zso-product-showcase-heading { display: grid; grid-template-columns: 12rem minmax(0, 1fr) 18rem; gap: 3rem; align-items: end; max-width: 90rem; margin: 0 auto 4rem; }
.zso-product-showcase-heading p, .zso-product-gallery header p { color: var(--zso-gold); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .65rem; font-weight: 900; }
.zso-product-showcase-heading h2, .zso-product-gallery h2 { font-size: clamp(3rem, 6vw, 6rem); font-weight: 900; letter-spacing: -.05em; line-height: .95; }
.zso-product-showcase-heading span { color: rgba(242,238,223,.65); }
.zso-product-shot { max-width: 90rem; margin: 0 auto; border: 1px solid rgba(242,238,223,.35); }
.zso-product-shot img { display: block; width: 100%; }
.zso-product-shot figcaption { display: flex; gap: 1rem; padding: 1rem 1.25rem; border-top: 1px solid rgba(242,238,223,.3); font-size: .8rem; }
.zso-product-shot figcaption span { color: var(--zso-gold); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.zso-product-runtime { display: grid; grid-template-columns: repeat(4, 1fr); max-width: 90rem; margin: 0 auto; border-inline: 1px solid rgba(242,238,223,.3); border-bottom: 1px solid rgba(242,238,223,.3); }
.zso-product-runtime p { min-height: 11rem; padding: 1.25rem; border-inline-end: 1px solid rgba(242,238,223,.3); }
.zso-product-runtime p:last-child { border-inline-end: 0; }
.zso-product-runtime span, .zso-product-runtime small { display: block; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .62rem; }
.zso-product-runtime span { color: var(--zso-gold); }
.zso-product-runtime strong { display: block; margin-top: 1.3rem; font-size: clamp(2.8rem, 5vw, 5rem); line-height: 1; }
.zso-product-runtime small { margin-top: 1rem; color: rgba(242,238,223,.62); line-height: 1.5; }
.zso-product-gallery { padding: clamp(5rem, 10vw, 10rem) clamp(1.25rem, 5vw, 6rem); background: #e8e1ce; }
.zso-product-gallery header { display: grid; grid-template-columns: 12rem minmax(0, 1fr); gap: 3rem; max-width: 90rem; margin: 0 auto 4rem; }
.zso-product-gallery figure { max-width: 90rem; margin: 0 auto 4rem; border: 1px solid rgba(16,35,29,.28); background: var(--oe-green); }
.zso-product-gallery figure:nth-of-type(2) { width: min(74rem, 88%); margin-inline-end: 0; }
.zso-product-gallery img { display: block; width: 100%; }
.zso-product-gallery figcaption { padding: 1rem 1.25rem; color: var(--oe-paper); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .72rem; }

/* Header, footer, and consent polish */
.zso-brand-lockup img { width: 2.25rem; height: 2.25rem; }
.zso-brand-lockup strong { letter-spacing: .02em; }
.zso-nav-link { position: relative; }
.zso-nav-link::after { content: ""; position: absolute; inset-inline: .75rem; bottom: .35rem; height: 2px; background: rgb(var(--color-primary)); transform: scaleX(0); transform-origin: right; transition: transform 240ms var(--zso-ease); }
.zso-nav-link:hover::after, .zso-nav-link.is-active::after { transform: scaleX(1); }
.bb-cookie-consent { inset-inline: auto 1rem !important; bottom: max(1rem, env(safe-area-inset-bottom)) !important; width: min(25rem, calc(100vw - 2rem)); max-width: none !important; padding: 1rem !important; border: 1px solid rgb(var(--color-text)) !important; border-radius: 0 !important; box-shadow: .5rem .5rem 0 rgba(16,35,29,.14) !important; }
.bb-cookie-consent h2 { font-size: .9rem !important; }
.bb-cookie-consent p { font-size: .72rem !important; }
.bb-cookie-consent button { min-height: 2.75rem; border-radius: 0 !important; }
.zso-footer-main { display: grid; grid-template-columns: minmax(22rem, 1.25fr) minmax(9rem, .45fr) minmax(10rem, .5fr) minmax(20rem, .8fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.zso-footer-statement h2 { max-width: 14ch; font-size: clamp(2.6rem, 4vw, 4.7rem); font-weight: 900; letter-spacing: -.04em; line-height: .95; }
.zso-footer-statement > p:last-child { max-width: 35rem; margin-top: 1.5rem; color: rgba(255,255,255,.58); line-height: 1.75; }
.zso-footer-main nav { display: flex; flex-direction: column; gap: .85rem; font-size: .86rem; }
.zso-footer-main nav strong { margin-bottom: .75rem; color: rgb(var(--color-primary)); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .66rem; letter-spacing: .1em; }
.zso-footer-main nav a { color: rgba(255,255,255,.7); }
.zso-footer-main nav a:hover { color: white; }
.zso-footer-form label strong, .zso-footer-form label span { display: block; }
.zso-footer-form label strong { font-size: 1.25rem; }
.zso-footer-form label span { margin-top: .5rem; color: rgba(255,255,255,.52); font-size: .78rem; }
.zso-footer-form > div { display: flex; margin-top: 1.5rem; }
.zso-footer-form input { min-width: 0; flex: 1; min-height: 3.25rem; padding: 0 1rem; border: 1px solid rgba(255,255,255,.3); background: transparent; color: white; }
.zso-footer-form input::placeholder { color: rgba(255,255,255,.38); }
.zso-footer-form button { min-height: 3.25rem; padding: 0 1.25rem; background: rgb(var(--color-primary)); font-weight: 900; }

.zso-reveal { animation: zso-rise 700ms var(--zso-ease) both; animation-delay: calc(var(--i, 0) * 90ms); }
@keyframes zso-rise { from { opacity: 0; transform: translateY(1.25rem); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 980px) {
  .zso-home-hero-inner { grid-template-columns: 1fr; }
  .zso-home-copy { min-height: 42rem; border-inline-end: 0; }
  .zso-release-window { min-height: 42rem; border-top: 1px solid var(--zso-line); }
  .zso-company-band > div { grid-template-columns: 1fr 1fr; }
  .zso-company-band a { text-align: start; }
  .zso-section-heading, .zso-index-header, .zso-product-showcase-heading { grid-template-columns: 9rem minmax(0, 1fr); }
  .zso-section-heading > span, .zso-index-header > span, .zso-product-showcase-heading > span { grid-column: 2; }
  .zso-featured-stage { grid-template-columns: 1fr; }
  .zso-featured-notes { display: grid; grid-template-columns: repeat(2, 1fr); }
  .zso-featured-notes .zso-button-primary { grid-column: 1 / -1; margin: 1.25rem; }
  .zso-product-row { grid-template-columns: 2.5rem minmax(12rem, .7fr) minmax(0, 1fr) 3rem; }
  .zso-product-row > strong { grid-column: 2; }
  .zso-row-arrow { grid-column: 4; grid-row: 1 / span 2; }
  .zso-open-standard { grid-template-columns: 1fr; }
  .zso-home-journal { grid-template-columns: 1fr; }
  .zso-product-gallery header { grid-template-columns: 9rem minmax(0, 1fr); }
  .zso-footer-main { grid-template-columns: 1fr 1fr; }
  .zso-footer-statement, .zso-footer-form { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  .zso-home-copy { min-height: auto; padding-block: 4.5rem; }
  .zso-home-copy h1 { font-size: clamp(4rem, 20vw, 5.2rem); line-height: .88; }
  .zso-home-signals { grid-template-columns: 1fr; }
  .zso-home-signals div { display: grid; grid-template-columns: 2rem 1fr; padding: .85rem 0; border-inline-end: 0; border-bottom: 1px solid var(--zso-line); }
  .zso-home-signals dd { margin: 0; }
  .zso-release-window { min-height: 38rem; }
  .zso-release-window img { object-position: top center; }
  .zso-release-caption { align-items: start; flex-direction: column; }
  .zso-company-band > div { grid-template-columns: 1fr; gap: .65rem; }
  .zso-company-band span { font-size: .9rem; }
  .zso-featured-product, .zso-product-index, .zso-home-journal { padding-block: 5rem; }
  .zso-section-heading, .zso-index-header, .zso-product-showcase-heading, .zso-product-gallery header { grid-template-columns: 1fr; gap: 1.25rem; }
  .zso-section-heading > span, .zso-index-header > span, .zso-product-showcase-heading > span { grid-column: auto; }
  .zso-section-heading h2, .zso-index-header h2, .zso-home-journal h2 { font-size: clamp(3.2rem, 16vw, 4.5rem); }
  .zso-featured-visual img { min-height: 18rem; }
  .zso-featured-notes { grid-template-columns: 1fr 1fr; }
  .zso-product-row { grid-template-columns: 2rem minmax(0, 1fr) 2.75rem; gap: .8rem; min-height: 0; padding: 1.5rem 0; }
  .zso-product-row > div { grid-column: 2; }
  .zso-product-row > p { grid-column: 2 / -1; font-size: .92rem; }
  .zso-product-row > strong { grid-column: 2; }
  .zso-row-arrow { grid-column: 3; grid-row: 1 / span 2; }
  .zso-open-standard { gap: 4rem; }
  .zso-open-standard h2 { font-size: clamp(3.6rem, 17vw, 5rem); }
  .zso-open-mark { bottom: -2rem; font-size: 22rem; }
  .zso-home-cta h2 { font-size: clamp(4rem, 19vw, 5.8rem); }
  .zso-product-runtime { grid-template-columns: repeat(2, 1fr); }
  .zso-product-runtime p:nth-child(2) { border-inline-end: 0; }
  .zso-product-runtime p { min-height: 9rem; border-bottom: 1px solid rgba(242,238,223,.3); }
  .zso-product-gallery figure:nth-of-type(2) { width: 100%; }
  .bb-cookie-consent { inset-inline: .6rem !important; width: auto; bottom: max(.6rem, env(safe-area-inset-bottom)) !important; box-shadow: .25rem .25rem 0 rgba(16,35,29,.12) !important; }
  .zso-footer-main { grid-template-columns: 1fr; }
  .zso-footer-statement, .zso-footer-form { grid-column: auto; }
  .zso-footer-form > div { flex-direction: column; }
}

@media (pointer: coarse) {
  .zso-text-link, .zso-row-arrow, .zso-company-band a, .zso-home-journal article > a { min-height: 2.75rem; }
}

@media (prefers-reduced-motion: reduce) {
  .zso-reveal { animation: none; }
  .zso-release-window img, .zso-row-arrow, .zso-home .zso-button-primary { transition: none; }
}
