/* Public-site polish. Brand colours continue to come from the published CMS theme.
   The existing video, gallery and calendar behaviour stays in its original modules. */

/* Libenest shares the root No.88 linter, but not its square-corner design rules.
   Keep the same compact CSS convention as libenest.css and existing BEM gallery hooks. */
/* stylelint-disable declaration-block-single-line-max-declarations, no-descending-specificity, declaration-property-value-allowed-list, selector-class-pattern */
:root {
  --paper-deep: color-mix(in srgb, var(--ink) 3%, var(--paper));
  --muted: color-mix(in srgb, var(--ink) 74%, var(--paper));
  --line: color-mix(in srgb, var(--ink) 14%, var(--paper));
  --gutter: clamp(20px, 4vw, 64px);
  --max: 1240px;
  --display: var(--body);
}

body { line-height: 1.65; }

/* Favorites keep the same content grid as the platform header and footer. */
.favorites-body .page-shell { display: flex; flex-direction: column; min-height: 100dvh; }
.favorites-body .page-shell > main { flex: 1; }
.favorites-page { padding-block: clamp(32px, 4vw, 56px) 64px; }
.favorites-page h1 { margin-bottom: 12px; font-size: clamp(26px, 3vw, 36px); font-weight: 600; line-height: 1.4; }
.favorites-page > p { max-width: 65ch; color: var(--muted); font-size: 16px; }
.favorites-page [data-favorite-status]:not(:empty) { margin-top: 16px; }
.favorites-page .favorite-list { margin-block: 32px 24px; }
.favorites-page .favorite-list article { align-items: center; flex-wrap: wrap; overflow-wrap: anywhere; }
.favorites-page .favorite-list a { min-width: 0; flex: 1; }
.favorites-page .favorite-list button, .favorites-page > .text-link { min-height: 44px; }

/* Search-first platform pages only. Tenant and old published home stay unchanged. */
.platform-page-body .platform-discover { width: min(var(--max), calc(100% - var(--gutter) * 2)); margin-inline: auto; padding-block: 28px 48px; }
.platform-page-body .platform-discover h1 { margin-block: 8px 20px; font-size: clamp(22px, 2.4vw, 28px); font-weight: 700; line-height: 1.4; }
.platform-page-body .platform-discover > p { max-width: 55em; margin-top: -8px; margin-bottom: 20px; color: var(--muted); font-size: 15px; }

/* One clean search bar; region and type live in the folded filter panel. */
.platform-page-body .platform-search { position: relative; margin-bottom: 16px; }
.platform-page-body .platform-search-bar { display: flex; align-items: center; min-height: 56px; padding-inline: 6px 64px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); box-shadow: 0 1px 3px rgb(0 0 0 / 5%); }
.platform-page-body .platform-search-bar:focus-within { border-color: var(--ink); }
.platform-page-body .platform-search-submit { display: grid; flex: 0 0 auto; width: 44px; height: 44px; place-items: center; padding: 0; border: 0; border-radius: 50%; color: var(--ink); background: transparent; cursor: pointer; }
.platform-page-body .platform-search-submit svg, .platform-page-body .platform-search-filters summary svg { width: 22px; height: 22px; }
.platform-page-body .platform-search-field { flex: 1; min-width: 0; }
.platform-page-body .platform-search-field input { width: 100%; min-height: 48px; padding: 0 8px; border: 0; color: var(--ink); background: transparent; font: inherit; font-size: 16px; outline: none; }
.platform-page-body .platform-search-filters summary { position: absolute; top: 6px; right: 6px; display: grid; width: 52px; height: 44px; place-items: center; border-left: 1px solid var(--line); color: var(--ink); cursor: pointer; list-style: none; }
.platform-page-body .platform-search-filters summary::-webkit-details-marker { display: none; }
.platform-page-body .platform-search-filters summary:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; border-radius: 12px; }
.platform-page-body .platform-search-filter-panel { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: end; margin-top: 12px; padding: 20px; border: 1px solid var(--line); border-radius: 20px; background: var(--paper-deep); }
.platform-page-body .platform-search-filter-panel > label { display: grid; gap: 6px; min-width: min(240px, 100%); font-size: 14px; }
.platform-page-body .platform-search-filter-panel select { min-width: 0; width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: var(--paper); font: inherit; font-size: 16px; }
.platform-page-body .platform-search-filter-panel > button { min-height: 48px; cursor: pointer; }
.platform-page-body .platform-type-filters { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
.platform-page-body .platform-type-filters legend { margin-bottom: 8px; color: var(--muted); font-size: 14px; }
.platform-page-body .platform-type-filters label { display: inline-flex; min-height: 44px; gap: 6px; align-items: center; padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); cursor: pointer; }
.platform-page-body .platform-type-filters label:has(input:checked) { color: var(--paper); border-color: var(--ink); background: var(--ink); }
.platform-page-body .platform-type-filters input { accent-color: var(--ink); }
.platform-page-body .platform-search :is(input, select):focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; }
.platform-page-body .platform-region-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.platform-page-body .platform-region-chips a { display: inline-flex; align-items: center; min-height: 40px; padding: 6px 18px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); font-size: 14px; }
.platform-page-body .platform-region-chips a[aria-current="page"] { border-color: transparent; background: color-mix(in srgb, var(--moss) 14%, var(--paper)); font-weight: 600; }
.platform-page-body .platform-partner-cta { display: flex; align-items: center; justify-content: space-between; gap: 20px; width: min(var(--max), calc(100% - var(--gutter) * 2)); margin: 8px auto 56px; padding: clamp(20px, 3vw, 32px); border-radius: 20px; background: var(--paper-deep); }
.platform-page-body .platform-partner-cta h2 { margin: 0 0 6px; font-size: clamp(19px, 2.2vw, 24px); font-weight: 700; line-height: 1.4; }
.platform-page-body .platform-partner-cta p { margin: 0; color: var(--muted); font-size: 15px; }
.platform-page-body .platform-partner-cta a { display: grid; flex: 0 0 auto; width: 48px; height: 48px; place-items: center; border-radius: 50%; color: var(--ink); background: color-mix(in srgb, var(--moss) 14%, var(--paper)); }
.platform-page-body .platform-partner-cta a svg { width: 22px; height: 22px; }

/* Clean header: thin divider and icon-only menu; navigation stays folded at 1100px and below. */
.platform-page-body .site-header { border-bottom: 1px solid var(--line); }
.platform-page-body .menu-toggle { justify-content: center; min-width: 44px; padding: 8px; border: 0; }
.platform-page-body .menu-toggle span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.platform-page-body .menu-toggle svg { width: 24px; height: 24px; }
.platform-page-body .platform-search-empty { padding: 28px; border: 1px dashed var(--line); border-radius: 16px; background: var(--paper-deep); }
.platform-page-body .platform-search-empty :is(h2, p) { margin-bottom: 8px; }
.platform-page-body .platform-search-empty .text-link { display: inline-flex; margin-right: 24px; }
.platform-page-body .platform-pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 20px; margin-top: 32px; }
.platform-page-body .platform-pagination a { display: grid; min-height: 44px; min-width: 44px; place-items: center; text-decoration: underline; }
.platform-page-body [data-search-result-card] { position: relative; display: block; grid-column: auto; border: 0; border-radius: 0; background: transparent; }
.platform-page-body [data-search-result-card] .listing-card-copy { padding: 12px 2px 0; }
.platform-page-body [data-search-result-card] h3 { font-size: 19px; }
.platform-page-body [data-search-result-card] .listing-card-media { display: block; position: relative; overflow: hidden; aspect-ratio: 4 / 3; border-radius: 14px; }
.platform-page-body [data-search-result-card] .listing-card-media img { width: 100%; height: 100%; object-fit: cover; }
.platform-page-body [data-search-result-card] .listing-card-media::after { position: absolute; inset: 0; content: ""; background: black; opacity: 0; transition: opacity 200ms; pointer-events: none; }
.platform-page-body [data-search-result-card] .listing-card-media:hover::after { opacity: .12; }
.platform-page-body .platform-favorite { position: absolute; top: 12px; right: 12px; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--ink); background: var(--paper); box-shadow: 0 2px 8px rgb(0 0 0 / 12%); }
.platform-page-body .platform-favorite svg { width: 22px; height: 22px; }
.platform-page-body .platform-page-heading { width: min(var(--max), calc(100% - var(--gutter) * 2)); margin: 32px auto; }
.platform-page-body .publisher-hero { display: block; padding-block: 24px 32px; }
.platform-page-body .publisher-hero-copy { max-width: 760px; }
.platform-page-body .publisher-hero-copy h1 { font-size: clamp(28px, 4vw, 44px); line-height: 1.3; margin-block: 16px; }
.platform-page-body .publisher-hero-copy > p { max-width: 45em; font-size: 16px; }
.platform-page-body .publisher-flow { max-width: 850px; padding-bottom: 64px; }
.platform-page-body .publisher-flow-heading { display: block; margin-bottom: 24px; }
.platform-page-body .publisher-flow-heading h2 { font-size: clamp(24px, 3vw, 32px); line-height: 1.4; }
.platform-page-body .publisher-flow-heading p { max-width: 45em; font-size: 16px; }
.platform-page-body .publisher-panel { border-radius: 16px; padding: 24px; }
.platform-page-body .publisher-panel :is(input, textarea) { font-size: 16px; border-radius: 10px; background: var(--paper); }
.platform-page-body .publisher-panel label { font-size: 14px; }
.platform-page-body .platform-footer { flex-flow: row wrap; align-items: center; gap: 8px 24px; min-height: 0; padding-block: 24px 32px; font-size: 13px; }
.platform-page-body .platform-footer-note { margin: 0; color: var(--muted); }
.platform-page-body .platform-footer nav { display: flex; flex-wrap: wrap; gap: 4px 24px; margin-left: auto; }
.platform-page-body .platform-footer nav a { display: inline-flex; align-items: center; min-height: 44px; }

@media (width <= 820px) {
  .platform-page-body .platform-search-bar { min-height: 52px; }
  .platform-page-body .platform-search-filters summary { top: 4px; }
  .platform-page-body .platform-search-filter-panel { padding: 16px; }
  .platform-page-body .platform-region-chips { margin-bottom: 20px; }
  .platform-page-body .platform-footer nav { margin-left: 0; }
  .platform-page-body .platform-discover { padding-top: 16px; }
  .platform-page-body .platform-discover .listing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .platform-page-body .publisher-panel { padding: 20px; }
}

@media (width <= 480px) {
  .platform-page-body .platform-discover .listing-grid { grid-template-columns: minmax(0, 1fr); }
  .platform-page-body .platform-partner-cta { margin-bottom: 40px; }
}

@media (prefers-reduced-motion: reduce) {
  .bottom-nav[data-glass-nav], .bottom-nav[data-glass-nav]::before, .bottom-nav[data-glass-nav] a { transition: none; }
  .bottom-nav[data-glass-nav].is-pressing { transform: none; }
  .platform-page-body *, .platform-page-body *::before, .platform-page-body *::after { scroll-behavior: auto; transition-duration: 0s; animation-duration: 0s; }
}
html.has-reveal-js [data-reveal] { filter: none; transition-duration: .25s; }
html.has-reveal-js .platform-page-body [data-search-result-card] { opacity: 1; transform: none; }

html.has-reveal-js .market-hero[data-reveal],
html.has-reveal-js .market-hero [data-reveal],
html.has-reveal-js .tenant-hero[data-reveal],
html.has-reveal-js .space-detail__media[data-reveal] { opacity: 1; transform: none; filter: none; }
h1, h2, h3 { overflow-wrap: anywhere; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 60; padding: 12px 20px; border-radius: 12px; background: var(--ink); color: var(--paper); transform: translateY(-180%); }
.skip-link:focus { color: var(--paper); transform: none; }
#main-content:focus { outline: none; }
.site-header { height: 80px; gap: 24px; }
.brand { font-size: 15px; letter-spacing: .035em; }

/* Platform-only controls; independent-site logos keep their existing size. */
.marketplace-body .site-header { height: auto; min-height: 80px; padding-block: 16px; }
.marketplace-body [data-platform-brand] { min-width: 0; max-width: 100%; text-transform: none; }
.marketplace-body .site-header [data-platform-brand] { flex: 1; }
.marketplace-body [data-platform-brand] .brand-logo-slot { width: auto; height: var(--logo-desktop-height, 34px); max-width: 160px; }
.marketplace-body [data-platform-brand] .brand-logo { width: auto; height: var(--logo-desktop-height, 34px); max-width: 160px; border-radius: 0; object-fit: contain; }
.marketplace-body .platform-brand-copy { display: grid; min-width: 0; gap: 4px; line-height: 1.4; overflow-wrap: anywhere; }
.marketplace-body .site-header [data-platform-brand] [data-site-brand-name] { font-size: var(--brand-name-desktop-size, 1em); font-weight: var(--brand-name-weight, 400); }
.marketplace-body .platform-brand-copy small { display: block; margin: 0; align-self: auto; font-size: 12px; letter-spacing: .08em; text-transform: none; }
.marketplace-body .menu-toggle { flex: 0 0 auto; }
.marketplace-body .mobile-menu { top: calc(100% - 4px); }

@media (width <= 1100px) {
  .marketplace-body .desktop-nav { display: none; }
}

@media (width <= 820px) {
  .marketplace-body .site-header { min-height: 68px; padding-block: 12px; gap: 12px; }
  .marketplace-body [data-platform-brand] .brand-logo-slot { height: var(--logo-mobile-height, 34px); max-width: 112px; }
  .marketplace-body [data-platform-brand] .brand-logo { height: var(--logo-mobile-height, 34px); max-width: 112px; }
  .marketplace-body .platform-brand-copy small { font-size: 12px; }
  .marketplace-body .site-header [data-platform-brand] [data-site-brand-name] { font-size: var(--brand-name-mobile-size, 1em); }
}
.desktop-nav { gap: 28px; margin-right: 8px; color: var(--ink); font-size: 14px; letter-spacing: 0; }
.desktop-nav a, .brand { min-height: 44px; display: inline-flex; align-items: center; }
.menu-toggle { min-height: 44px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 999px; font-size: 13px; letter-spacing: 0; }
.mobile-menu { top: 72px; padding: 8px; border-radius: 16px; box-shadow: 0 12px 32px rgb(0 0 0 / 10%); }
.mobile-menu a { min-height: 48px; padding: 12px 16px; border-radius: 10px; font-size: 15px; }
.mobile-menu a:hover { background: var(--paper-deep); color: var(--ink); }
.eyebrow { font-size: 12px; letter-spacing: .12em; }
.text-link { min-height: 44px; gap: 12px; font-size: 14px; letter-spacing: 0; }
.button { min-height: 48px; padding: 12px 22px; border-radius: 999px; font-size: 15px; letter-spacing: 0; }
.market-hero { min-height: 0; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(28px, 5vw, 64px); padding-block: 32px 64px; }
.market-hero-copy { padding: 0; }
.market-hero-copy h1 { max-width: 11em; margin: 16px 0 24px; font-size: clamp(34px, 4.2vw, 58px); font-weight: 600; line-height: 1.22; letter-spacing: -.045em; text-wrap: pretty; }
.market-hero-copy > p { max-width: 30em; margin-bottom: 28px; font-size: 16px; line-height: 1.85; }
.market-hero-copy > .eyebrow { margin-bottom: 0; font-size: 11px; }
.market-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
.market-hero-actions .button { background: var(--ink); color: var(--paper); border: 1px solid var(--ink); }
.market-hero-actions .button:hover { opacity: .85; }
.market-hero-actions .text-link { display: inline-flex; }
.market-hero-media { min-height: 0; aspect-ratio: 4 / 3; border-radius: 28px; }
.market-hero-media::after { display: none; }
.discover-section { padding-block: 48px 88px; }
.section-heading { grid-template-columns: minmax(0, 1fr) auto; gap: 20px; margin-bottom: 28px; }
.section-heading h2 { font-size: clamp(26px, 2.5vw, 34px); font-weight: 600; line-height: 1.4; letter-spacing: -.025em; }
.section-heading > p { font-size: 14px; letter-spacing: 0; }
.section-description { margin-top: 10px; color: var(--muted); font-size: 15px; line-height: 1.8; }
.listing-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.listing-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: var(--paper); }
.listing-card-media { aspect-ratio: 4 / 3; }
.listing-card-media img { transition: transform .3s ease-out; }
.listing-card:hover .listing-card-media img { transform: scale(1.025); }
.listing-card-copy { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 22px; }
.card-kicker { margin-bottom: 8px; font-size: 13px; letter-spacing: .01em; }
.listing-card h3 { font-size: 20px; font-weight: 600; line-height: 1.5; letter-spacing: -.015em; }
.listing-card h3 a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.listing-card-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 14px; line-height: 1.7; text-align: left; }
.listing-card-type { justify-self: start; padding: 3px 10px; border-radius: 6px; background: var(--paper-deep); color: var(--muted); font-size: 12px; }
.listing-card-copy .text-link { margin-top: 4px; }
.listing-card-placeholder { display: grid; height: 100%; place-items: center; color: var(--muted); font-size: 15px; }
.listing-card:only-child { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
.listing-card:only-child .listing-card-copy { align-content: center; gap: 16px; padding: clamp(24px, 4vw, 48px); }
.listing-card:only-child h3 { max-width: 26em; font-size: clamp(21px, 2vw, 28px); }
.collection-empty { padding: 40px 24px; border: 1px dashed var(--line); border-radius: 20px; background: var(--paper-deep); text-align: center; }
.collection-empty-icon { display: grid; place-items: center; width: 48px; height: 48px; margin: 0 auto 16px; border-radius: 50%; background: var(--paper); }
.collection-empty-icon svg { width: 24px; height: 24px; }
.collection-empty h3 { margin-bottom: 8px; font-size: 20px; font-weight: 500; }
.empty-state { padding: 24px; color: var(--muted); font-size: 15px; line-height: 1.8; }
.collection-empty .empty-state { padding: 0; }
.editorial-band { grid-template-columns: minmax(0, 1fr); padding-block: 64px; background: var(--sand); }
.editorial-band > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.editorial-band h2 { margin: 0; font-size: clamp(28px, 3vw, 38px); font-weight: 500; line-height: 1.45; }
.editorial-band p { max-width: 42em; color: var(--muted); font-size: 16px; line-height: 1.9; }
.partner-section { align-items: center; gap: 32px; padding-block: 72px; }
.partner-section h2 { margin-top: 12px; font-size: clamp(26px, 2.8vw, 36px); font-weight: 500; line-height: 1.4; }
.partner-description { max-width: 42em; margin-top: 14px; font-size: 15px; }
.site-footer { gap: 24px; padding-block: 32px; min-height: 112px; font-size: 12px; letter-spacing: 0; }
.site-footer .brand { flex-wrap: wrap; }
.tenant-hero:not(.tenant-hero--video) { min-height: 480px; overflow: hidden; border-radius: 24px; }
.tenant-hero:not(.tenant-hero--video) .tenant-hero-image { min-height: 480px; }
.tenant-hero:not(.tenant-hero--video) h1 { font-size: clamp(30px, 3.4vw, 48px); font-weight: 600; line-height: 1.3; }
.tenant-hero:not(.tenant-hero--video) .tenant-hero-copy > p { font-size: 16px; line-height: 1.8; }
.has-video-hero > .site-header .menu-toggle { border-color: rgb(255 255 255 / 45%); }
.has-video-hero > .site-header a:focus-visible, .has-video-hero > .site-header button:focus-visible { outline-color: white; }
.has-video-hero > .site-header .mobile-menu { color: var(--ink); }
.has-video-hero > .site-header .mobile-menu a:focus-visible { outline-color: var(--ink); }
.tenant-hero--video .tenant-hero-copy { width: min(100%, calc(max(var(--gutter), (100vw - var(--max)) / 2) + 720px)); padding-left: max(var(--gutter), calc((100vw - var(--max)) / 2)); padding-right: var(--gutter); }
.tenant-hero--video .tenant-hero-copy h1 { font-size: clamp(32px, 3.3vw, 48px); line-height: 1.35; }
.tenant-hero--video .tenant-hero-copy > p { max-width: 40em; font-size: 15px; line-height: 1.8; }
.tenant-intro { grid-template-columns: clamp(280px, 22vw, 320px) minmax(0, 1fr); gap: 64px; align-items: start; padding-block: 72px; }
.tenant-intro:not(:has(> .intro-mark:not([hidden]))) { grid-template-columns: minmax(0, 1fr); }
.tenant-intro > .intro-mark { max-width: 100%; margin: 0; font-family: var(--body); font-size: 30px; font-weight: 500; line-height: 1.5; letter-spacing: -.015em; white-space: pre-line; overflow-wrap: break-word; text-wrap: balance; }
.tenant-intro-copy { min-width: 0; max-width: 700px; }
.tenant-intro-copy p { margin: 0 0 16px; font-size: clamp(18px, 1.4vw, 20px); font-weight: 400; line-height: 1.75; overflow-wrap: anywhere; }
.tenant-intro-copy p:last-child { margin-bottom: 0; }
.tenant-listings { padding-block: 64px 80px; }
.tenant-note { grid-template-columns: minmax(120px, .5fr) minmax(0, 1.5fr) auto; gap: 32px; align-items: center; padding-block: 64px; background: var(--sand); }
.tenant-note h2 { font-size: clamp(28px, 3vw, 38px); font-weight: 500; line-height: 1.55; letter-spacing: -.025em; }
.tenant-location { padding-bottom: 64px; }
.location-map { overflow: hidden; border-radius: 20px; }
.tenant-location > p { margin-block: 12px 24px; font-size: 15px; }
.tenant-feature-stage { position: relative; }
.tenant-feature-main { position: relative; isolation: isolate; aspect-ratio: 4 / 3; }
.tenant-feature-backdrop { position: absolute; inset: 0; background-position: center; background-size: cover; filter: blur(20px) brightness(.75); transform: scale(1.12); pointer-events: none; }
.tenant-feature-main img { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: contain; }
.page-module-card .tenant-feature-main { width: 100%; overflow: hidden; border-radius: 16px; }

/* Published legacy cards and V1 cards share this photo wrapper. */
.tenant-feature .tenant-feature-main img, .page-module-listings .listing-card-media img { transition: transform 600ms ease; }
.tenant-feature .tenant-feature-main::after, .page-module-listings .listing-card-media::after { position: absolute; z-index: 1; inset: 0; content: ""; background: black; opacity: 0; pointer-events: none; transition: opacity 250ms ease; }
.page-module-listings .listing-card-media { position: relative; isolation: isolate; }
.page-module-listings .listing-card:hover .listing-card-media img { transform: none; }
.page-module-hero { position: relative; overflow: hidden; background: var(--paper-deep); }
.page-module-hero:has(picture) { aspect-ratio: 16 / 9; }
.page-module-hero picture, .page-module-hero img, .page-module-hero video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.page-module-hero video { opacity: 0; pointer-events: none; }
.page-module-hero.is-video-ready video { opacity: 1; }
.page-module-hero-copy { position: relative; z-index: 1; padding: clamp(24px, 5vw, 64px); }
.page-module-hero:has(picture) .page-module-hero-copy { position: absolute; inset: auto 0 0; color: white; background: linear-gradient(transparent, rgb(0 0 0 / 65%)); }
.page-module-hero-copy h1 { font-size: clamp(28px, 4vw, 52px); }
.page-module-hero-copy p { max-width: 45em; }
.page-module-hero [data-module-playback] { position: absolute; z-index: 2; top: 20px; right: 20px; width: 44px; height: 44px; border: 1px solid white; border-radius: 50%; color: white; background: rgb(0 0 0 / 45%); }
.page-module-card { padding-block: 24px; }
.page-module-card.tenant-feature--image-only { grid-template-columns: minmax(0, 1fr); }
.page-module-intro:not(:has(.intro-mark)) { grid-template-columns: minmax(0, 1fr); }
.page-module-card .tenant-feature-copy p, .page-module-contact p, .page-module-footer p { white-space: pre-wrap; }
.page-module-contact .text-link, .page-module-footer .text-link { display: inline-flex; margin-right: 24px; }
.page-module-location, .page-module-listings, .page-module-contact, .page-module-footer { padding-block: 40px; }

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .tenant-feature .tenant-feature-main:hover img, .page-module-listings .listing-card:hover .listing-card-media:hover img { transform: scale(1.025); }
  .tenant-feature .tenant-feature-main:hover::after, .page-module-listings .listing-card-media:hover::after { opacity: .08; }
}

@media (prefers-reduced-motion: reduce) {
  .tenant-feature .tenant-feature-main img, .tenant-feature .tenant-feature-main::after, .page-module-listings .listing-card-media img, .page-module-listings .listing-card-media::after { transition: none; transform: none; }
}

@media (width <= 820px) {
  .page-module-card { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .page-module-intro { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .page-module-note { grid-template-columns: minmax(0, 1fr); }
  .page-module-hero-copy { padding: 20px; }
  .page-module-hero-copy h1 { font-size: 26px; }
}
.tenant-feature-arrow { position: absolute; top: 50%; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid rgb(255 255 255 / 35%); border-radius: 50%; background: rgb(0 0 0 / 45%); color: white; cursor: pointer; transform: translateY(-50%); touch-action: manipulation; }
.tenant-feature-arrow--previous { left: 10px; }
.tenant-feature-arrow--next { right: 10px; }
.tenant-feature-arrow svg { width: 22px; height: 22px; fill: none; stroke: currentcolor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.tenant-feature-arrow:hover { background: rgb(0 0 0 / 60%); }
.tenant-feature-gallery .tenant-feature-arrow:focus-visible { outline: 3px solid white; outline-offset: -5px; background: rgb(0 0 0 / 60%); }
.detail-page { overflow: clip; }
.detail-topline { padding-block: 16px 24px; }
.breadcrumbs { font-size: 13px; line-height: 1.7; }
.detail-body .detail-layout { grid-template-columns: minmax(0, 1.35fr) minmax(340px, .9fr); gap: 48px; margin-top: 36px; padding: 12px 24px 72px; background: transparent; }
.detail-copy h1 { font-size: clamp(28px, 2.5vw, 36px); line-height: 1.45; letter-spacing: -.025em; }
.detail-location { font-size: 15px; }
.facts-row { gap: 10px 0; font-size: 15px; }
.lead-copy { max-width: 40em; font-size: 18px; line-height: 1.85; }
.body-copy { max-width: 46em; font-size: 16px; line-height: 1.9; }
.detail-body .booking-rail { grid-column: 2; grid-row: 1 / span 2; min-width: 0; }
.detail-body .detail-information { grid-column: 1; min-width: 0; }
.detail-body .detail-information .amenity-block ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.detail-body .detail-information .amenity-block li > div { min-width: 0; overflow-wrap: anywhere; }
.detail-body .detail-location-section:has(.location-block) { padding-block: 0 64px; }
.detail-body .detail-location-section:not(:has(.location-block)) { display: none; }
.detail-body .booking-panel { position: static; top: 24px; padding: 28px; border-color: var(--line); border-radius: 24px; background: var(--paper); box-shadow: 0 8px 28px rgb(0 0 0 / 5%); }

@media (width >= 1025px) {
  .detail-body .booking-panel.is-sticky-eligible { position: sticky; }
}
.booking-panel-heading h2 { font-size: 24px; font-weight: 500; line-height: 1.5; letter-spacing: -.025em; }
.booking-panel-heading > p:last-child { font-size: 13px; line-height: 1.8; }
.calendar-header { grid-template-columns: 44px minmax(0, 1fr) 44px; gap: 8px; }
.calendar-header > button { width: 44px; height: 44px; }
.calendar-month-control { height: 44px; }
.calendar-day { min-height: 42px; font-size: 13px; }
.calendar-weekdays { font-size: 12px; }
.calendar-source, .calendar-status, .calendar-legend, .calendar-minimum-stay { font-size: 12px; line-height: 1.7; }
.booking-footnote { font-size: 12px; line-height: 1.8; }
.button-airbnb { width: 100%; min-height: 48px; border: 1px solid var(--line); background: var(--paper-deep); color: var(--ink); font-size: 15px; }
.button-airbnb:hover { background: var(--ink); color: var(--paper); }
.lodging-section { padding-block: 32px; border-color: var(--line); }
.lodging-section h2 { margin-bottom: 24px; font-size: 23px; font-weight: 600; }
.lodging-section p, .lodging-section dd { line-height: 1.85; }
.amenity-icon { color: var(--ink); }
.arrival-operation-icon { color: var(--ink); }
.photo-browser__category { min-height: 44px; }

@media (width <= 1100px) {
  .desktop-nav { gap: 20px; }
  .listing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-body .detail-layout { gap: 40px; padding-inline: 8px; grid-template-columns: minmax(0, 1fr) 340px; }
  .detail-body .booking-panel { padding: 24px 20px; }
}

@media (width <= 1024px) {
  .detail-body .detail-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .detail-body .booking-rail { grid-column: auto; grid-row: auto; width: 100%; }
  .detail-body .detail-information { grid-column: auto; }
}

@media (width <= 820px) {
  .site-header { height: 68px; gap: 16px; }
  .brand { gap: 8px; font-size: 13px; }
  .brand small { display: none; }
  .desktop-nav { display: none; }
  .mobile-menu { top: 64px; }
  .market-hero { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; padding-block: 24px 40px; }
  .market-hero-copy h1 { max-width: 11em; font-size: clamp(32px, 6vw, 42px); margin-block: 12px 20px; }
  .market-hero-copy > p { max-width: 40em; font-size: 15px; margin-bottom: 24px; }
  .market-hero-media { border-radius: 20px; max-height: 380px; }
  .section-heading { grid-template-columns: minmax(0, 1fr); gap: 10px; margin-bottom: 24px; }
  .section-heading > p { justify-self: start; font-size: 13px; }
  .section-heading h2 { font-size: 26px; }
  .discover-section { padding-block: 32px 56px; }
  .listing-grid { gap: 24px; }
  .listing-card:only-child { display: block; }
  .listing-card:only-child .listing-card-copy { padding: 22px; gap: 12px; }
  .listing-card:only-child h3 { font-size: 21px; }
  .editorial-band { padding-block: 48px; }
  .editorial-band > div { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .editorial-band h2, .partner-section h2 { font-size: 28px; }
  .partner-section { align-items: start; padding-block: 48px; }
  .site-footer { align-items: start; gap: 16px; padding-block: 28px; }
  .marketplace-body .page-shell, .tenant-body .page-shell { padding-bottom: calc(84px + env(safe-area-inset-bottom)); }
  .bottom-nav { min-height: 72px; padding-block: 8px calc(8px + env(safe-area-inset-bottom)); border-color: var(--line); background: var(--paper); }
  .bottom-nav a { min-width: 64px; min-height: 48px; gap: 4px; font-size: 12px; color: var(--muted); }
  .bottom-nav-icon { height: 24px; font-size: 22px; }
  .bottom-nav-icon svg { width: 22px; height: 22px; }

  /* Aggregate and tenant sites: liquid glass tab bar. A clear lens travels with the finger and settles into the tinted highlight. */
  /* stylelint-disable-next-line property-no-vendor-prefix -- iOS 17 and earlier only read the prefixed backdrop filter. */
  .bottom-nav[data-glass-nav] { right: 16px; bottom: calc(12px + env(safe-area-inset-bottom)); left: 16px; min-height: 64px; padding: 6px; justify-content: stretch; border: 1px solid rgb(255 255 255 / 34%); border-radius: 999px; background: linear-gradient(180deg, rgb(255 255 255 / 12%), rgb(255 255 255 / 0%) 55%), rgb(20 20 22 / 20%); box-shadow: 0 0 0 .5px rgb(0 0 0 / 22%), 0 12px 32px rgb(0 0 0 / 26%), inset 0 1px 0 rgb(255 255 255 / 45%), inset 0 -1px 0 rgb(255 255 255 / 12%), inset 0 0 20px rgb(255 255 255 / 8%); -webkit-backdrop-filter: blur(2px) brightness(.82) saturate(180%); backdrop-filter: blur(2px) brightness(.82) saturate(180%); transform-origin: 50% 100%; touch-action: none; user-select: none; -webkit-tap-highlight-color: transparent; transition: transform .32s cubic-bezier(.25, 1.25, .4, 1); }
  .bottom-nav[data-glass-nav]::before { position: absolute; top: 6px; bottom: 6px; left: 6px; width: calc((100% - 12px) / var(--tab-count)); content: ""; border-radius: 999px; background: rgb(255 255 255 / 28%); box-shadow: 0 0 0 .5px rgb(0 0 0 / 12%), inset 0 1px 0 rgb(255 255 255 / 50%); transform: translateX(calc(var(--active-index) * 100%)); transition: transform .5s cubic-bezier(.3, 1.35, .5, 1), opacity .2s; }
  .bottom-nav[data-glass-nav][data-active="false"]::before, .bottom-nav[data-glass-nav].is-lensing::before { opacity: 0; }
  .bottom-nav[data-glass-nav] a { position: relative; z-index: 3; flex: 1; min-width: 0; color: #fff; text-shadow: 0 1px 3px rgb(0 0 0 / 65%); transition: transform .25s cubic-bezier(.25, 1.3, .4, 1); }
  .bottom-nav[data-glass-nav] a.is-under-lens { transform: scale(1.3); }
  .bottom-nav[data-glass-nav] a.is-settling { animation: glass-settle .36s ease-out; }
  .bottom-nav[data-glass-nav] a[aria-current="page"] { font-weight: 600; }
  .bottom-nav[data-glass-nav] .bottom-nav-icon { color: inherit; filter: drop-shadow(0 1px 2px rgb(0 0 0 / 60%)); }
  .bottom-nav[data-glass-nav].is-pressing { transform: scale(1.06); }
  /* stylelint-disable-next-line property-no-vendor-prefix -- iOS 17 and earlier only read the prefixed backdrop filter. */
  .bottom-nav[data-glass-nav] .glass-lens { position: absolute; z-index: 2; top: -9px; bottom: -9px; left: -4px; width: calc((100% - 12px) / var(--tab-count) + 20px); border: 1.5px solid rgb(255 255 255 / 92%); border-radius: 999px; background: linear-gradient(180deg, rgb(255 255 255 / 16%), rgb(255 255 255 / 2%) 45%, rgb(255 255 255 / 10%)); box-shadow: 0 0 0 1px rgb(0 0 0 / 14%), 0 12px 28px rgb(0 0 0 / 28%), inset 0 2px 6px rgb(255 255 255 / 45%), inset 0 -4px 10px rgb(255 255 255 / 22%); opacity: 0; pointer-events: none; -webkit-backdrop-filter: blur(.5px) brightness(1.6) saturate(160%); backdrop-filter: blur(.5px) brightness(1.6) saturate(160%); transition: opacity .14s; }
  .bottom-nav[data-glass-nav].is-lensing .glass-lens { opacity: 1; }
  .bottom-nav[data-glass-nav] .glass-filter { position: absolute; width: 0; height: 0; overflow: hidden; }

  /* Over light sections the glass turns light with dark icons, like the native adaptive tab bar. */
  /* stylelint-disable-next-line property-no-vendor-prefix -- iOS 17 and earlier only read the prefixed backdrop filter. */
  .bottom-nav[data-glass-nav][data-tone="light"] { border-color: rgb(255 255 255 / 75%); background: linear-gradient(180deg, rgb(255 255 255 / 40%), rgb(255 255 255 / 10%) 60%), rgb(255 255 255 / 16%); box-shadow: 0 0 0 .5px rgb(0 0 0 / 12%), 0 10px 28px rgb(0 0 0 / 14%), inset 0 1px 0 rgb(255 255 255 / 90%), inset 0 -1px 0 rgb(255 255 255 / 40%); -webkit-backdrop-filter: blur(2px) saturate(180%) brightness(1.06); backdrop-filter: blur(2px) saturate(180%) brightness(1.06); }
  .bottom-nav[data-glass-nav][data-tone="light"][data-refract] { backdrop-filter: url("#libenest-glass-distort") blur(2px) saturate(180%) brightness(1.06); }
  .bottom-nav[data-glass-nav][data-tone="light"] a { color: #1d2420; text-shadow: 0 1px 1px rgb(255 255 255 / 55%); }
  .bottom-nav[data-glass-nav][data-tone="light"] .bottom-nav-icon { filter: none; }
  .bottom-nav[data-glass-nav][data-tone="light"]::before { background: rgb(0 0 0 / 8%); box-shadow: inset 0 1px 0 rgb(255 255 255 / 70%); }
  .bottom-nav[data-glass-nav], .bottom-nav[data-glass-nav] a { transition-property: transform, background, border-color, box-shadow, color; transition-duration: .32s; }

  /* Keep the hero video's pause button clear of the floating bar, beside the LINE button. */
  .tenant-hero--video .tenant-hero-playback { bottom: calc(96px + env(safe-area-inset-bottom)); }

  /* Refraction only where bottom-nav.js confirmed a Chromium engine: WebKit accepts url() in
     backdrop-filter but then drops the whole filter, leaving no blur or dimming at all. */
  .bottom-nav[data-glass-nav][data-refract] { backdrop-filter: url("#libenest-glass-distort") blur(2px) brightness(.82) saturate(180%); }

  .tenant-hero:not(.tenant-hero--video) { min-height: 0; border-radius: 20px; }
  .tenant-hero:not(.tenant-hero--video) .tenant-hero-image { min-height: 320px; }
  .tenant-hero--video .tenant-hero-copy { padding-inline: 24px; }
  .tenant-hero--video .tenant-hero-copy h1 { font-size: clamp(26px, 6vw, 32px); }
  .tenant-hero--video .tenant-hero-copy > p { font-size: 14px; }
  .tenant-hero--video.tenant-hero--landscape .tenant-hero-copy { background: var(--paper); color: var(--ink); }
  .tenant-hero--landscape .tenant-hero-copy .eyebrow, .tenant-hero--landscape .tenant-hero-copy > p { color: var(--muted); }
  .tenant-hero--landscape .tenant-hero-cta { background: var(--ink); color: var(--paper); }
  .tenant-intro { grid-template-columns: minmax(0, 1fr); gap: 20px; padding-block: 48px; }
  .tenant-intro > .intro-mark { max-width: 10em; font-size: 24px; }
  .tenant-intro-copy p { font-size: clamp(16px, 4.25vw, 17px); }
  .tenant-listings { padding-block: 32px 48px; }
  .tenant-note { grid-template-columns: minmax(0, 1fr); gap: 20px; padding-block: 48px; }
  .tenant-note h2 { max-width: 18em; font-size: 28px; }
  .tenant-note .text-link { justify-self: start; }
  .tenant-location { padding-bottom: 40px; }
  .detail-body .detail-layout { display: flex; flex-direction: column; gap: 28px; width: 100%; margin-top: -24px; padding: 28px 24px calc(96px + env(safe-area-inset-bottom)); border-radius: 24px 24px 0 0; background: var(--paper); }
  .detail-copy h1 { font-size: 27px; line-height: 1.45; }
  .facts-row { font-size: 14px; }
  .lead-copy { font-size: 17px; }
  .body-copy { font-size: 15px; }
  .detail-body .booking-panel { width: 100%; padding: 24px 16px; border-radius: 20px; }
  .detail-full-width { min-width: 0; width: 100%; }
  .mobile-booking-bar { gap: 12px; padding: 12px 20px calc(12px + env(safe-area-inset-bottom)); border-color: var(--line); background: var(--paper); }
  .mobile-booking-bar strong { font-size: 13px; }
  .mobile-booking-bar small { font-size: 11px; }
  .mobile-booking-bar .button { min-height: 48px; padding-inline: 16px; white-space: nowrap; font-size: 14px; }
}

@media (width <= 540px) {
  .listing-grid { grid-template-columns: minmax(0, 1fr); }
  .partner-section { flex-direction: column; gap: 20px; }
  .site-footer { flex-direction: column; }
  .collection-empty { padding: 32px 20px; }
  .collection-empty h3 { font-size: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .listing-card-media img { transition: none; }
  .listing-card:hover .listing-card-media img { transform: none; }
}
.tenant-note[data-home-note] > h2 { grid-column: 2; }
.tenant-note[data-home-note] > .text-link { grid-column: 3; }

@media (width <= 820px) {
  .tenant-note[data-home-note] > h2,
  .tenant-note[data-home-note] > .text-link { grid-column: 1; }
}

/* Designed About and Partners pages (platform only). */
.platform-page-body .designed-page { display: grid; gap: clamp(36px, 5vw, 56px); width: min(var(--max), calc(100% - var(--gutter) * 2)); margin: 0 auto; padding-block: clamp(24px, 3vw, 40px) clamp(40px, 5vw, 64px); }
.platform-page-body .designed-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(24px, 4vw, 56px); align-items: center; padding: 0; }
.platform-page-body .designed-hero-copy { max-width: none; }
.platform-page-body .designed-eyebrow { margin: 0 0 16px; color: var(--moss); font-size: 12px; font-weight: 600; letter-spacing: .2em; }
.platform-page-body .designed-hero-copy h1 { margin: 0 0 20px; font-size: clamp(32px, 4.4vw, 52px); font-weight: 700; line-height: 1.3; letter-spacing: .02em; }
.platform-page-body .designed-hero-copy > p { max-width: 32em; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.8; }
.platform-page-body .designed-hero-media { overflow: hidden; aspect-ratio: 16 / 10; border-radius: 16px; background: var(--paper-deep); }
.platform-page-body .designed-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.platform-page-body .designed-hero-media--logo { display: grid; place-content: center; justify-items: center; gap: 8px; background: color-mix(in srgb, var(--moss) 5%, var(--paper)); text-align: center; }
.platform-page-body .designed-hero-media--logo .designed-hero-logo { width: clamp(96px, 14vw, 150px); height: auto; aspect-ratio: 1; object-fit: contain; }
.platform-page-body .designed-hero-media--logo strong { font-size: clamp(20px, 2.4vw, 28px); font-weight: 600; }
.platform-page-body .designed-hero-media--logo small { color: var(--muted); font-size: 13px; letter-spacing: .2em; }
.platform-page-body .designed-logo-fallback { display: grid; place-items: center; border: 1px solid currentcolor; border-radius: 50%; color: var(--moss); font-family: Georgia, serif; font-size: 2rem; font-style: italic; }
.platform-page-body .designed-section { display: grid; gap: 16px; padding-top: clamp(28px, 4vw, 44px); border-top: 1px solid var(--line); }
.platform-page-body .designed-section h2, .platform-page-body .designed-steps h2 { margin: 0; font-size: clamp(21px, 2.4vw, 26px); font-weight: 700; line-height: 1.4; }
.platform-page-body .designed-lead { margin: -8px 0 4px; color: var(--muted); font-size: 16px; }
.platform-page-body .designed-features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.platform-page-body .designed-features--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.platform-page-body .designed-feature { display: flex; gap: 16px; align-items: center; padding: clamp(18px, 2vw, 24px); border: 1px solid var(--line); border-radius: 16px; background: var(--paper); }
.platform-page-body .designed-feature h3 { margin: 0 0 4px; font-size: 17px; font-weight: 700; }
.platform-page-body .designed-feature p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.platform-page-body .designed-feature small { display: block; margin-bottom: 2px; color: var(--muted); font-size: 13px; }
.platform-page-body .designed-icon { display: grid; flex: 0 0 auto; width: 56px; height: 56px; place-items: center; border-radius: 50%; color: var(--moss); background: color-mix(in srgb, var(--moss) 9%, var(--paper)); }
.platform-page-body .designed-icon svg { width: 26px; height: 26px; }
.platform-page-body .designed-story { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
.platform-page-body .designed-story > div:first-child { display: grid; gap: 16px; }
.platform-page-body .designed-story p { margin: 0; color: var(--muted); font-size: 15px; line-height: 2; }
.platform-page-body .designed-story-mark { display: flex; gap: clamp(20px, 4vw, 48px); align-items: center; justify-content: center; }
.platform-page-body .designed-story-logo { width: clamp(110px, 14vw, 160px); height: auto; aspect-ratio: 1; object-fit: contain; }
.platform-page-body .designed-story-mark p { color: var(--moss); font-size: 14px; letter-spacing: .3em; line-height: 2.2; }
.platform-page-body .designed-banner { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 150px; overflow: hidden; padding: 32px clamp(20px, 4vw, 40px) 56px; border-radius: 16px; background: linear-gradient(180deg, #f4eee4, #e9e4d6); }
.platform-page-body .designed-banner p { position: relative; z-index: 1; margin: 0; font-size: clamp(15px, 1.8vw, 18px); letter-spacing: .3em; }
.platform-page-body .designed-banner span { position: relative; z-index: 1; color: var(--muted); font-family: Georgia, serif; font-size: 15px; font-style: italic; line-height: 1.5; text-align: right; }
.platform-page-body .designed-banner svg { position: absolute; inset: auto 0 0; width: 100%; height: 70px; fill: color-mix(in srgb, var(--moss) 22%, #e9e4d6); }
.platform-page-body .designed-banner svg path + path { fill: color-mix(in srgb, var(--moss) 38%, #e9e4d6); }
.platform-page-body .designed-onboarding { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(24px, 4vw, 48px); align-items: start; }
.platform-page-body .designed-steps { display: grid; gap: 28px; }
.platform-page-body .designed-steps ol { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.platform-page-body .designed-steps li { position: relative; display: flex; gap: 16px; padding-bottom: 28px; }
.platform-page-body .designed-steps li:not(:last-child)::before { position: absolute; top: 44px; bottom: 6px; left: 19px; width: 1px; content: ""; background: var(--line); }
.platform-page-body .designed-steps li > span { display: grid; flex: 0 0 auto; width: 40px; height: 40px; place-items: center; border-radius: 50%; background: var(--paper-deep); font-size: 14px; }
.platform-page-body .designed-steps strong { display: block; font-size: 16px; }
.platform-page-body .designed-steps small { color: var(--muted); font-size: 13px; }

.platform-page-body .designed-onboarding [data-partner-step="1"] > span,
.platform-page-body .designed-onboarding:has([data-publisher-onboarding-form]:not([hidden])) [data-partner-step="2"] > span,
.platform-page-body .designed-onboarding:has([data-publisher-workspace]:not([hidden])) [data-partner-step="3"] > span { color: var(--paper); background: var(--moss); }
.platform-page-body .designed-onboarding:has([data-publisher-onboarding-form]:not([hidden]), [data-publisher-workspace]:not([hidden])) [data-partner-step="1"] > span { color: var(--ink); background: var(--paper-deep); }
.platform-page-body .designed-flow { max-width: none; padding: clamp(20px, 3vw, 32px); border: 1px solid var(--line); border-radius: 16px; background: var(--paper); }
.platform-page-body .designed-flow .publisher-flow-heading { margin-bottom: 8px; }
.platform-page-body .designed-flow .publisher-flow-heading h2 { font-size: 22px; font-weight: 700; }
.platform-page-body .designed-flow .publisher-status:empty { min-height: 0; margin: 0; }
.platform-page-body .designed-flow .publisher-panel { padding: 0; border: 0; background: transparent; }
.platform-page-body .designed-flow .publisher-panel-label { font-size: 12px; letter-spacing: .2em; }
.platform-page-body .designed-flow .publisher-panel h3 { font-size: 20px; font-weight: 700; }
.platform-page-body .designed-flow .publisher-panel > p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.7; }
.platform-page-body .designed-flow .publisher-panel .button { justify-content: center; min-height: 48px; border-color: var(--moss); background: var(--moss); color: var(--paper); }
.platform-page-body .designed-flow .publisher-login-note { padding-top: 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; text-align: center; }
.platform-page-body .designed-brand-banner { display: flex; align-items: center; justify-content: center; gap: clamp(16px, 3vw, 32px); padding: 28px 24px; border-radius: 16px; background: var(--paper-deep); }
.platform-page-body .designed-banner-logo { width: 64px; height: 64px; object-fit: contain; }
.platform-page-body .designed-brand-banner > div { padding-left: clamp(16px, 3vw, 32px); border-left: 1px solid var(--line); }
.platform-page-body .designed-brand-banner p { margin: 0 0 4px; font-size: 17px; font-weight: 600; }
.platform-page-body .designed-brand-banner small { color: var(--muted); font-size: 13px; }

@media (width <= 820px) {
  .platform-page-body .designed-hero, .platform-page-body .designed-onboarding, .platform-page-body .designed-story { grid-template-columns: minmax(0, 1fr); }
  .platform-page-body .designed-features, .platform-page-body .designed-features--two { grid-template-columns: minmax(0, 1fr); }
  .platform-page-body .designed-banner { flex-direction: column; align-items: flex-start; }
  .platform-page-body .designed-banner span { text-align: left; }

  /* Phones reach the sign-up form in the first screen: hero copy, form, then steps and benefits. */
  .platform-page-body .designed-partners { gap: 28px; }
  .platform-page-body .designed-partners .designed-hero-media { display: none; }
  .platform-page-body .designed-partners .designed-onboarding { order: -1; grid-row: 2; }
  .platform-page-body .designed-partners .designed-flow { order: -1; }
  .platform-page-body .designed-brand-banner { flex-direction: column; text-align: center; }
  .platform-page-body .designed-brand-banner > div { padding-left: 0; border-left: 0; }
}

/* The newly selected icon refracts briefly as the lens dissolves, then settles. */
@keyframes glass-settle {
  0% { filter: blur(1.4px) drop-shadow(-2px 0 0 rgb(255 80 120 / 45%)) drop-shadow(2px 0 0 rgb(80 180 255 / 45%)); transform: scale(1.18); }
  60% { filter: blur(.3px); transform: scale(.97); }
  100% { filter: none; transform: scale(1); }
}

/* Scroll-linked motion. scroll-motion.js sets --motion-exit / -enter / -read / -through (0–1)
   on each target and adds html.has-scroll-motion only when motion is allowed. Individual
   scale/translate properties compose with the existing hover and reveal transforms. */
@media (prefers-reduced-motion: no-preference) {
  /* Hero media recedes into a rounded card as the page scrolls past it. */
  html.has-scroll-motion .tenant-hero--video { --motion-shrink: .08; }
  html.has-scroll-motion .tenant-hero--video:not([data-hero-pending]) { background: transparent; }

  html.has-scroll-motion .tenant-hero--video .tenant-hero-image {
    clip-path: inset(0 round calc(32px * var(--motion-exit, 0)));
    filter: brightness(calc(1 - .35 * var(--motion-exit, 0)));
    scale: calc(1 - var(--motion-shrink) * var(--motion-exit, 0));
    transform-origin: 50% 100%;
    will-change: scale;
  }

  html.has-scroll-motion .tenant-hero--video .tenant-hero-copy { opacity: calc(1 - 1.6 * var(--motion-exit, 0)); }
  html.has-scroll-motion .tenant-hero:not(.tenant-hero--video) .tenant-hero-image img { scale: calc(1 + .08 * var(--motion-exit, 0)); }
  html.has-scroll-motion .platform-page-body .designed-hero-copy { opacity: calc(1 - .9 * var(--motion-exit, 0)); translate: 0 calc(-48px * var(--motion-exit, 0)); }
  html.has-scroll-motion .platform-page-body .designed-hero-media > img { scale: calc(1 + .1 * var(--motion-exit, 0)); }

  /* Large headings grow from 90% to full size while they come into view. */
  html.has-scroll-motion :is(.tenant-intro .intro-mark, .tenant-listings .section-heading h2, .tenant-location .section-heading h2, .tenant-note h2, .platform-page-body .designed-section > h2, .platform-page-body .designed-story h2, .platform-page-body .designed-steps h2) {
    opacity: calc(.2 + .8 * var(--motion-enter, 1));
    scale: calc(.9 + .1 * var(--motion-enter, 1));
    transform-origin: 0 50%;
  }
  html.has-scroll-motion .platform-page-body .platform-partner-cta { opacity: calc(.3 + .7 * var(--motion-enter, 1)); scale: calc(.94 + .06 * var(--motion-enter, 1)); }

  /* Feature photos settle from a slight zoom as they arrive. */
  html.has-scroll-motion .tenant-feature-main > img { scale: calc(1.08 - .08 * var(--motion-enter, 1)); }

  /* Reading highlight: each paragraph brightens as it reaches the middle of the screen. */
  html.has-scroll-motion :is(.tenant-intro-copy p, .platform-page-body .designed-story p) { opacity: calc(.18 + .82 * var(--motion-read, 1)); }

  /* Banner layers drift at different speeds. */
  html.has-scroll-motion .platform-page-body .designed-banner svg path:first-child { translate: 0 calc((var(--motion-through, .5) - .5) * -56px); }
  html.has-scroll-motion .platform-page-body .designed-banner svg path:last-child { translate: 0 calc((var(--motion-through, .5) - .5) * -24px); }
  html.has-scroll-motion .platform-page-body .designed-banner span { translate: 0 calc((var(--motion-through, .5) - .5) * 32px); }
  html.has-scroll-motion .platform-page-body .designed-brand-banner { scale: calc(.94 + .12 * min(var(--motion-through, .5), .5)); }

  /* Cards and steps rise in one after another. */
  html.has-scroll-motion [data-motion-item] {
    opacity: 0;
    translate: 0 32px;
    transition: opacity .7s ease, translate .9s cubic-bezier(.2, .7, .2, 1);
    transition-delay: calc(var(--motion-i, 0) * 90ms);
  }
  html.has-scroll-motion [data-motion-item].is-motion-in { opacity: 1; translate: none; }
}

/* Wide screens: each feature photo stays pinned while its copy scrolls beside it,
   then cross-fades to the next feature's photo. */
@media (prefers-reduced-motion: no-preference) and (width >= 1024px) and (height >= 700px) {
  html.has-scroll-motion .tenant-features.is-motion-pinned { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 0 clamp(40px, 5vw, 80px); align-items: start; }
  html.has-scroll-motion .tenant-features.is-motion-pinned > .tenant-feature { display: contents; }

  /* overflow: hidden would make the shell a scroll container and stop the photo sticking; clip keeps the same edge. */
  html.has-scroll-motion .page-shell:has(.tenant-features.is-motion-pinned) { overflow: clip; }

  html.has-scroll-motion .tenant-features.is-motion-pinned .tenant-feature-gallery {
    position: sticky;
    top: 12vh;
    grid-column: 1;
    grid-row: 1 / span var(--motion-count, 3);
    align-self: start;
    border: 1px solid var(--line);
    border-radius: 1.25rem;
    background: var(--paper-deep);
    opacity: 0;
    pointer-events: none;
    scale: .96;
    transition: opacity .6s ease, scale .8s cubic-bezier(.2, .7, .2, 1);
  }

  html.has-scroll-motion .tenant-features.is-motion-pinned .is-motion-active > .tenant-feature-gallery { opacity: 1; pointer-events: auto; scale: 1; }

  html.has-scroll-motion .tenant-features.is-motion-pinned .tenant-feature-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    grid-column: 2;
    min-height: 88vh;
    padding-inline: 0;
    opacity: .22;
    transition: opacity .5s ease;
  }
  html.has-scroll-motion .tenant-features.is-motion-pinned .is-motion-active > .tenant-feature-copy { opacity: 1; }
  html.has-scroll-motion .tenant-features.is-motion-pinned .tenant-feature-copy h2 { scale: .94; transform-origin: 0 50%; transition: scale .8s cubic-bezier(.2, .7, .2, 1); }
  html.has-scroll-motion .tenant-features.is-motion-pinned .is-motion-active > .tenant-feature-copy h2 { scale: 1; }
}

@media (prefers-reduced-motion: no-preference) and (width <= 820px) {
  html.has-scroll-motion .tenant-hero--video { --motion-shrink: .05; }
}
