@font-face { font-family:'GalleryLane Editorial'; src:url('/assets/fonts/cormorant-garamond-latin-400.woff2') format('woff2'); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:'GalleryLane Editorial'; src:url('/assets/fonts/cormorant-garamond-latin-500.woff2') format('woff2'); font-style:normal; font-weight:500; font-display:swap; }

:root {
  --surface-page: #f7f3ec;
  --surface-card: #fffdf9;
  --surface-raised: #f2e9dc;
  --surface-muted: #fdf9f2;
  --surface-input: #fffdf9;
  --surface-image-placeholder: #f2ece3;
  --text-primary: #23211e;
  --text-secondary: #514b44;
  --text-muted: #6f665d;
  --text-on-brand: #fff;
  --text-on-image: #fffdf9;
  --border-subtle: rgba(35, 33, 30, 0.08);
  --border-strong: rgba(35, 33, 30, 0.18);
  --overlay-image: linear-gradient(90deg, rgba(21, 18, 15, 0.74), rgba(21, 18, 15, 0.18));
  --hero-glow: rgba(125, 90, 65, 0.14);
  --brand-primary: #7d5a41;
  --brand-accent: #5f3e2b;
  --shadow-soft: 0 18px 40px rgba(35, 33, 30, 0.08);
  --shadow-raised: 0 24px 48px rgba(35, 33, 30, 0.14);
  /* Transitional aliases for shared public component styles. */
  --color-bg: var(--surface-page); --color-surface: var(--surface-card); --color-surface-strong: var(--surface-raised);
  --color-text: var(--text-primary); --color-muted: var(--text-muted); --color-accent: var(--brand-primary); --color-accent-strong: var(--brand-accent); --color-border: var(--border-subtle);
  --radius-lg: 24px;
  --radius-md: 16px;
  --radius-sm: 10px;
  --space-1: 0.5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2rem;
  --space-5: 3rem;
  --font-editorial: 'GalleryLane Editorial', Georgia, 'Times New Roman', serif;
  --font-heading: var(--font-editorial);
  --font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}

:root[data-theme-preset='gallery-warm'] { --surface-page:#f7f3ec; --surface-card:#fffdf9; --surface-raised:#f2e9dc; --surface-muted:#fdf9f2; --surface-input:#fffdf9; --surface-image-placeholder:#f2ece3; --text-primary:#23211e; --text-secondary:#514b44; --text-muted:#6f665d; --border-subtle:rgba(35,33,30,.08); --border-strong:rgba(35,33,30,.18); --overlay-image:linear-gradient(90deg,rgba(21,18,15,.74),rgba(21,18,15,.18)); --hero-glow:rgba(125,90,65,.14); }
:root[data-theme-preset='studio'] { --surface-page:#f7f8fa; --surface-card:#fff; --surface-raised:#eef1f4; --surface-muted:#f2f4f6; --surface-input:#fff; --surface-image-placeholder:#edf0f2; --text-primary:#1c2229; --text-secondary:#4d5965; --text-muted:#6d7782; --border-subtle:#dce1e6; --border-strong:#c6ced6; --overlay-image:linear-gradient(90deg,rgba(18,24,30,.74),rgba(18,24,30,.18)); --hero-glow:rgba(69,87,105,.12); --shadow-soft:0 18px 40px rgba(22,30,38,.08); --shadow-raised:0 24px 48px rgba(22,30,38,.14); }
:root[data-theme-preset='stone'] { --surface-page:#efede8; --surface-card:#faf9f6; --surface-raised:#e3dfd7; --surface-muted:#f4f1eb; --surface-input:#fffdfa; --surface-image-placeholder:#e8e3da; --text-primary:#292724; --text-secondary:#5a5650; --text-muted:#746f66; --border-subtle:#d6d0c6; --border-strong:#bdb5aa; --overlay-image:linear-gradient(90deg,rgba(31,29,26,.76),rgba(31,29,26,.2)); --hero-glow:rgba(97,86,69,.13); --shadow-soft:0 18px 40px rgba(43,38,31,.08); --shadow-raised:0 24px 48px rgba(43,38,31,.14); }
:root[data-theme-preset='sage'] { --surface-page:#f4f5ef; --surface-card:#fcfcf8; --surface-raised:#e6eadf; --surface-muted:#eef1e9; --surface-input:#fff; --surface-image-placeholder:#e1e6db; --text-primary:#26302a; --text-secondary:#4f5d52; --text-muted:#6b766c; --border-subtle:#d5dccf; --border-strong:#bdc8b5; --overlay-image:linear-gradient(90deg,rgba(24,35,28,.76),rgba(24,35,28,.2)); --hero-glow:rgba(91,116,86,.14); --shadow-soft:0 18px 40px rgba(38,53,41,.08); --shadow-raised:0 24px 48px rgba(38,53,41,.14); }
:root[data-theme-preset='canvas'] { --surface-page:#fafaf8; --surface-card:#fff; --surface-raised:#f3f3f0; --surface-muted:#f7f7f5; --surface-input:#fff; --surface-image-placeholder:#f0f0ed; --text-primary:#1a1a1a; --text-secondary:#454545; --text-muted:#6b6b6b; --border-subtle:#e6e6e3; --border-strong:#cececa; --overlay-image:linear-gradient(90deg,rgba(20,20,20,.74),rgba(20,20,20,.16)); --hero-glow:rgba(26,26,26,.06); --shadow-soft:0 18px 40px rgba(26,26,26,.06); --shadow-raised:0 24px 48px rgba(26,26,26,.11); }
:root[data-theme-preset='terracotta'] { --surface-page:#fef0ea; --surface-card:#fff7f3; --surface-raised:#f6e4dc; --surface-muted:#fbe9e1; --surface-input:#fffaf7; --surface-image-placeholder:#f2ddd3; --text-primary:#2a1f18; --text-secondary:#4f3d32; --text-muted:#6d5a4f; --border-subtle:#e8ddd2; --border-strong:#d8c5b8; --overlay-image:linear-gradient(90deg,rgba(42,31,24,.76),rgba(42,31,24,.18)); --hero-glow:rgba(151,87,57,.1); --shadow-soft:0 18px 40px rgba(75,47,34,.08); --shadow-raised:0 24px 48px rgba(75,47,34,.13); }
:root[data-theme-preset='midnight'] { --surface-page:#17191b; --surface-card:#202326; --surface-raised:#2a2e31; --surface-muted:#1d2023; --surface-input:#23272a; --surface-image-placeholder:#2b2e30; --text-primary:#f2f3f1; --text-secondary:#c1c6c5; --text-muted:#929a98; --text-on-image:#fff; --border-subtle:#3b4143; --border-strong:#50585b; --overlay-image:linear-gradient(90deg,rgba(0,0,0,.78),rgba(0,0,0,.26)); --hero-glow:rgba(205,214,208,.08); --shadow-soft:0 18px 40px rgba(0,0,0,.25); --shadow-raised:0 24px 48px rgba(0,0,0,.42); }
:root[data-theme-preset='nocturne'] { --surface-page:#0f141b; --surface-card:#182230; --surface-raised:#202c3b; --surface-muted:#141c26; --surface-input:#1b2634; --surface-image-placeholder:#253141; --text-primary:#e6eaf0; --text-secondary:#c2c9d3; --text-muted:#a0a7b4; --text-on-image:#fff; --border-subtle:#2a3342; --border-strong:#404c5e; --overlay-image:linear-gradient(90deg,rgba(4,8,13,.8),rgba(4,8,13,.26)); --hero-glow:rgba(108,139,181,.1); --shadow-soft:0 18px 40px rgba(0,0,0,.28); --shadow-raised:0 24px 48px rgba(0,0,0,.48); }
:root[data-theme-preset='gallery-warm-dark'] { --surface-page:#1d1b19; --surface-card:#282522; --surface-raised:#39332e; --surface-muted:#24211f; --surface-input:#282522; --surface-image-placeholder:#39332e; --text-primary:#f6efe6; --text-secondary:#ded4ca; --text-muted:#c8bdb1; --text-on-image:#fffdf9; --border-subtle:rgba(255,250,242,.14); --border-strong:rgba(255,250,242,.26); --overlay-image:linear-gradient(90deg,rgba(21,18,15,.74),rgba(21,18,15,.18)); --hero-glow:rgba(125,90,65,.14); --shadow-soft:0 18px 40px rgba(35,33,30,.08); --shadow-raised:0 24px 48px rgba(35,33,30,.14); }
}

:root[data-card-corners='rounded'] { --radius-lg: 32px; --radius-md: 22px; --radius-sm: 14px; }
:root[data-card-corners='square'] { --radius-lg: 0; --radius-md: 0; --radius-sm: 0; }
:root[data-button-style='soft'] .hero__cta,
:root[data-button-style='soft'] .reserve-button { border-radius: var(--radius-sm); }
:root[data-button-style='square'] .hero__cta,
:root[data-button-style='square'] .reserve-button { border-radius: 0; }
:root[data-typography='modern'] { --font-heading: 'Avenir Next', 'Segoe UI', Arial, sans-serif; --font-body: 'Avenir Next', 'Segoe UI', Arial, sans-serif; }
:root[data-typography='minimal'] { --font-heading: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif; --font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif; }

* {
  box-sizing: border-box;
}

input.is-at-limit,
textarea.is-at-limit { border-color: #a03f36; box-shadow: 0 0 0 3px rgba(160, 63, 54, .16); }

body {
  margin: 0;
  font-family: var(--font-body);
  background: linear-gradient(135deg, var(--surface-page) 0%, var(--surface-muted) 100%);
  color: var(--color-text);
  line-height: 1.6;
}

img {
  display: block;
  width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

.container {
  width: min(1120px, calc(100% - 2rem));
  margin: 0 auto;
}

.site-header { display: flex; align-items: center; justify-content: space-between; min-height: 74px; }
.site-brand,
.detail-topbar__brand { display: inline-flex; align-items: center; gap: 0.65rem; font-family: var(--font-heading); font-size: 1.65rem; font-weight: 500; }
.site-brand img,
.detail-topbar__brand img { width: auto; max-width: 150px; max-height: 38px; object-fit: contain; }
.site-header__actions { display: flex; align-items: center; gap: 1.5rem; }
.language-switcher__select { background: var(--surface-input); border: 1px solid var(--border-subtle); border-radius: 4px; padding: .25rem .5rem; color: var(--text-primary); font-family: var(--font-body); font-size: .82rem; font-weight: 500; cursor: pointer; outline: none; }
.language-switcher__select:focus { border-color: var(--brand-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-primary) 28%, transparent); }
.site-header__link { color: var(--color-muted); font-size: 0.82rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; }

.hero {
  padding: 5rem 0 4rem;
  background: radial-gradient(circle at top left, var(--hero-glow), transparent 30%), var(--surface-card);
}

.hero { position: relative; overflow: hidden; }
.hero__image { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero--with-image::after { position: absolute; z-index: 0; inset: 0; background: var(--overlay-image); content: ''; }

.hero__content {
  position: relative;
  z-index: 1;
  max-width: 720px;
}

.eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.24em;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--color-accent);
  margin-bottom: 0.8rem;
}

h1,
h2,
h3 {
  font-family: var(--font-heading);
  font-weight: 500;
  margin: 0;
  color: var(--color-text);
}

h1 {
  font-size: clamp(2.2rem, 4vw, 3.4rem);
  line-height: 1.05;
  margin-bottom: 1rem;
}

h2 {
  font-size: clamp(1.7rem, 2.6vw, 2.2rem);
}

.hero__text,
.section__intro,
.card__meta,
.detail__meta,
.detail__description {
  color: var(--color-muted);
}

.hero__cta {
  display: inline-block;
  margin-top: 1.5rem;
  padding: 0.9rem 1.3rem;
  border-radius: 999px;
  background: var(--color-accent);
  color: var(--text-on-brand);
  box-shadow: var(--shadow-soft);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.hero__cta:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-raised);
}

.section {
  padding: 3rem 0 5rem;
}
.hero__cta:focus-visible,
.reserve-button:focus-visible,
.back-link:focus-visible,
.site-header__link:focus-visible { outline: 3px solid var(--brand-primary); outline-offset: 3px; }

.gallery-about { display: grid; grid-template-columns: minmax(180px, .6fr) minmax(0, 1.4fr); gap: 2rem; padding: 1rem 0 5rem; }
.gallery-about__carousel { min-width: 0; }
.gallery-about__viewport { min-height: 14rem; }
.gallery-about__card { min-height: 14rem; padding: clamp(1.4rem, 3vw, 2.25rem); border: 1px solid var(--color-border); border-radius: var(--card-radius, 18px); background: var(--color-surface); box-shadow: var(--shadow-soft); }
.gallery-about__card:focus { outline: none; }
.gallery-about__card:focus-visible { outline: 3px solid var(--brand-primary); outline-offset: 3px; }
.gallery-about__card-label { margin: 0 0 1rem; color: var(--color-accent); font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.gallery-about__card-copy { max-width: 64ch; margin: 0; color: var(--color-muted); font-size: clamp(1rem, 1.5vw, 1.12rem); line-height: 1.75; white-space: pre-line; }
.gallery-about__navigation { display: flex; align-items: center; justify-content: flex-end; gap: .7rem; margin-top: .85rem; }
.gallery-about__arrow, .gallery-about__dots button { border: 1px solid var(--color-border); background: var(--color-surface); color: var(--color-text); cursor: pointer; }
.gallery-about__arrow { width: 2.45rem; height: 2.45rem; border-radius: 50%; font-size: 1.1rem; }
.gallery-about__arrow:hover, .gallery-about__arrow:focus-visible { border-color: var(--brand-primary); color: var(--brand-primary); outline: none; }
.gallery-about__dots { display: flex; gap: .4rem; }
.gallery-about__dots button { width: .6rem; height: .6rem; padding: 0; border-radius: 50%; }
.gallery-about__dots button[aria-selected="true"] { border-color: var(--brand-primary); background: var(--brand-primary); }
.site-footer { border-top: 1px solid var(--color-border); background: var(--color-surface); }
.site-footer__content { display: grid; grid-template-columns: 1.2fr 1fr 0.7fr; gap: 2rem; padding: 2.5rem 0; }
.site-footer strong { font-family: var(--font-heading); font-size: 1.35rem; }
.site-footer p { margin: 0.45rem 0 0; color: var(--color-muted); }
.site-footer__contact,
.site-footer__socials { display: grid; align-content: start; gap: 0.45rem; color: var(--color-muted); font-size: 0.88rem; }
.site-footer__socials { grid-auto-flow: column; grid-auto-columns: max-content; justify-content: start; gap: 1rem; color: var(--color-accent); font-weight: 700; }
.site-footer__legal { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: .9rem; font-size: .78rem; }
.site-footer__legal a { color: var(--color-muted); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: .2rem; }
.site-footer__legal a:hover { color: var(--color-accent); text-decoration-color: currentColor; }

.section__heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 2rem;
  margin-bottom: 2rem;
}

.section__intro {
  max-width: 420px;
  margin: 0;
}

.artwork-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}

.card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-soft);
  transition: transform 220ms ease, box-shadow 220ms ease;
}

.card__link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-raised);
}

.card__media {
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: linear-gradient(135deg, var(--surface-image-placeholder), var(--surface-raised));
}

.card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 360ms ease;
}

.card__image-placeholder, .artwork-view__placeholder { display: grid; place-items: center; color: var(--text-muted); background: linear-gradient(135deg, var(--surface-image-placeholder), var(--surface-raised)); }
.card__image-placeholder { width: 100%; height: 100%; }
.card__image-placeholder span, .artwork-view__placeholder span { font: 500 clamp(2rem, 7vw, 4rem)/1 var(--font-heading); opacity: .45; }
.artwork-view__placeholder { width: 100%; min-height: min(72vh, 52rem); aspect-ratio: var(--artwork-aspect, .8); }

.hero--with-image h1,
.hero--with-image .hero__text { color: var(--text-on-image); }
.hero--with-image .eyebrow { color: var(--text-on-image); }

.card:hover .card__image {
  transform: scale(1.035);
}

.card__body {
  padding: 1.2rem 1.2rem 1.4rem;
}

.card__title {
  font-size: 1.18rem;
  margin-bottom: 0.35rem;
}

.card__artist {
  color: var(--color-muted);
  font-size: 0.95rem;
  margin-bottom: 0.8rem;
}

.card__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}

.card__price {
  font-weight: 700;
  color: var(--color-accent-strong);
}

.badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 0.38rem 0.7rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.badge--available {
  background: #e5f4ea;
  color: #2d6a3d;
}

.badge--published {
  background: #e5f4ea;
  color: #2d6a3d;
}

.badge--reserved {
  background: #f7e8cc;
  color: #8b5b0d;
}

.badge--sold {
  background: #f0e6e6;
  color: #8a4242;
}

.loading,
.empty-state {
  grid-column: 1 / -1;
  padding: 3rem;
  text-align: center;
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  color: var(--color-muted);
  border: 1px dashed var(--color-border);
}

.artwork-page {
  background: var(--color-surface);
}

.detail-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(1560px, calc(100% - 3rem));
  min-height: 72px;
  margin: 0 auto;
  border-bottom: 1px solid var(--color-border);
}

.detail-topbar__brand {
  color: var(--color-text);
  font-family: var(--font-heading);
  font-size: 1.65rem;
  font-weight: 500;
}

.detail-topbar__actions {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.back-link {
  color: var(--color-accent);
  font-size: 0.9rem;
  font-weight: 700;
}

.detail-page {
  width: min(1560px, calc(100% - 3rem));
  padding: clamp(1.5rem, 3vw, 3.5rem) 0;
  margin: 0 auto;
}

.artwork-view {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(280px, 0.65fr);
  gap: clamp(1.75rem, 5vw, 6rem);
  align-items: start;
}

.artwork-view__media {
  min-width: 0;
}

.artwork-view__media-label {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
  color: var(--color-muted);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.artwork-view__figure {
  width: min(100%, calc((100svh - 8.5rem) * var(--artwork-aspect)));
  aspect-ratio: var(--artwork-aspect);
  display: grid;
  place-items: center;
  margin: 0 auto;
  background: var(--surface-image-placeholder);
}

.artwork-view__image {
  display: block;
  width: 100%;
  height: auto;
  max-height: calc(100svh - 8.5rem);
  object-fit: contain;
  background: var(--surface-image-placeholder);
}

.artwork-view__information {
  display: grid;
  gap: clamp(1.4rem, 3vw, 2.75rem);
  padding: clamp(0.25rem, 1vw, 1.25rem) 0;
}

.artwork-view__status {
  margin-bottom: 0.9rem;
}

.artwork-view__information h1 {
  margin-bottom: 0.45rem;
  font-size: clamp(2.4rem, 4vw, 4.1rem);
}

.artwork-view__artist {
  margin: 0;
  color: var(--color-accent-strong);
  font-size: 1.05rem;
  font-weight: 700;
}

.artwork-view__story > p {
  margin: 0;
  color: var(--color-muted);
  font-size: 1rem;
}

.artwork-view__metadata {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  padding-top: 1.5rem;
  margin: 1.5rem 0 0;
  border-top: 1px solid var(--color-border);
}

.artwork-view__metadata div {
  display: grid;
  gap: 0.2rem;
}

.artwork-view__metadata dt {
  color: var(--color-muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.artwork-view__metadata dd {
  margin: 0;
  font-weight: 600;
}

.artwork-view__acquire {
  display: grid;
  gap: 0.8rem;
  padding-top: 1.35rem;
  border-top: 1px solid var(--color-border);
}

.artwork-view__price {
  margin: 0;
  color: var(--color-accent-strong);
  font-size: 1.3rem;
  font-weight: 800;
}

.reserve-button {
  width: fit-content;
  padding: 0.75rem 1rem;
  border: 1px solid var(--color-accent);
  border-radius: 999px;
  color: var(--color-accent);
  background: transparent;
  font-weight: 800;
}

.reserve-button:disabled {
  cursor: not-allowed;
  opacity: 0.72;
}

.artwork-view__acquire small {
  color: var(--color-muted);
}

@media (max-width: 900px) {
  .artwork-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .artwork-view {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .artwork-view__information {
    max-width: 680px;
    padding-top: 0;
  }

}

@media (max-width: 640px) {
  .hero {
    padding-top: 3rem;
  }

  .section__heading {
    flex-direction: column;
    align-items: start;
  }

  .artwork-grid {
    grid-template-columns: 1fr;
  }

  .detail-topbar,
  .detail-page {
    width: min(100% - 2rem, 1560px);
  }

  .detail-topbar {
    min-height: 62px;
  }

  .detail-page {
    padding-top: 1.25rem;
  }

  .artwork-view {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }

  .artwork-view__figure {
    width: 100%;
    max-height: none;
  }

  .artwork-view__image {
    max-height: none;
  }

  .artwork-view__information {
    gap: 1.5rem;
    padding-top: 0;
  }
}

@media (max-width: 900px) {
  .site-footer__content { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .site-header { min-height: 62px; }
  .biography-section,
  .gallery-about,
  .site-footer__content { grid-template-columns: 1fr; gap: 1rem; }
}
/* Verified reservation lead workflow */
.reservation-page { min-height: 100vh; background: radial-gradient(circle at 12% 8%, var(--hero-glow), transparent 28rem), var(--surface-page); }
.reservation-shell { width: min(1080px, calc(100% - 2rem)); margin: 1.5rem auto 5rem; }
.reservation-progress { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-2); max-width: 720px; padding: 0; margin: 0 auto 1.5rem; list-style: none; color: var(--text-muted); font-size: .82rem; }
.reservation-progress::before { position: absolute; z-index: 0; top: 1rem; left: 16.66%; right: 16.66%; height: 1px; background: var(--border-strong); content: ''; }
.reservation-progress li { position: relative; z-index: 1; display: grid; justify-items: center; gap: .4rem; text-align: center; }
.reservation-progress li span { display: grid; width: 2rem; height: 2rem; place-items: center; border: 1px solid var(--border-strong); border-radius: 50%; color: var(--text-muted); background: var(--surface-page); font-weight: 800; }
.reservation-progress .is-current { color: var(--text-primary); }
.reservation-progress .is-current span { border-color: var(--brand-primary); color: var(--text-on-brand); background: var(--brand-primary); box-shadow: 0 0 0 4px var(--hero-glow); }
.reservation-progress .is-complete span { border-color: var(--brand-accent); color: var(--text-on-brand); background: var(--brand-accent); }
.reservation-stage { display: grid; grid-template-columns: minmax(240px, .72fr) minmax(0, 1.28fr); gap: var(--space-3); align-items: start; }
.reservation-card, .reservation-result, .reservation-artwork { color: var(--text-primary); background: var(--surface-card); border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); }
.reservation-card, .reservation-result { padding: clamp(1.25rem, 4vw, 2.5rem); }
.reservation-card__heading { margin-bottom: 1.5rem; }
.reservation-card__heading h1 { margin: .25rem 0; color: var(--text-primary); font-family: var(--font-body); font-weight: 700; }
.reservation-card__heading p, .reservation-privacy { color: var(--text-muted); }
.reservation-artwork { position: sticky; top: 1.5rem; overflow: hidden; }
.reservation-artwork__image, .reservation-artwork__placeholder { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; background: var(--surface-image-placeholder); }
.reservation-artwork__placeholder { display: grid; place-items: center; color: var(--text-muted); font: 700 clamp(3rem, 12vw, 7rem)/1 var(--font-body); }
.reservation-artwork__copy { display: grid; gap: .25rem; padding: var(--space-3); }
.reservation-artwork__copy h2 { margin: 0; color: var(--text-primary); font-family: var(--font-body); font-size: clamp(1.55rem, 3vw, 2.15rem); font-weight: 700; }
.reservation-artwork__copy p { margin: 0; color: var(--text-muted); }
.reservation-artwork__copy strong { margin-top: .35rem; }
.reservation-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.reservation-fields label { display: grid; gap: .4rem; color: var(--text-secondary); font-weight: 700; }
.reservation-fields label:nth-of-type(4) { grid-column: 1 / -1; }
.reservation-fields input, .reservation-fields textarea { width: 100%; min-height: 3rem; padding: .8rem; border: 1px solid var(--border-strong); border-radius: var(--radius-sm); color: var(--text-primary); background: var(--surface-input); font: inherit; }
.reservation-fields input:focus, .reservation-fields textarea:focus { border-color: var(--brand-primary); outline: 3px solid var(--hero-glow); outline-offset: 1px; }
.reservation-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.reservation-actions { display: flex; justify-content: flex-end; gap: .75rem; margin-top: 1.5rem; }
.reservation-page .button { min-height: 3rem; padding: .75rem 1.15rem; border-radius: 999px; font: 800 .92rem/1 var(--font-body); }
.reservation-page .button--primary { border: 1px solid var(--brand-primary); color: var(--text-on-brand); background: var(--brand-primary); }
.reservation-page .button--secondary { border: 1px solid var(--border-strong); color: var(--text-primary); background: transparent; }
:root[data-button-style='soft'] .reservation-page .button { border-radius: var(--radius-sm); }
:root[data-button-style='square'] .reservation-page .button { border-radius: 0; }
.reservation-legal { display: grid; gap: var(--space-2); }
.reservation-legal section { padding: var(--space-2); border: 1px solid var(--border-subtle); border-left: 3px solid var(--brand-accent); border-radius: var(--radius-sm); background: var(--surface-muted); }
.reservation-legal h2 { margin: 0 0 .4rem; font: 700 1.05rem/1.25 var(--font-body); }
.reservation-legal p { margin: 0; color: var(--text-secondary); }
.reservation-acknowledgement { display: flex; align-items: flex-start; gap: .75rem; min-height: 3rem; margin-top: 1.25rem; padding: var(--space-2); border: 1px solid var(--border-strong); border-radius: var(--radius-sm); font-weight: 700; background: var(--surface-raised); cursor: pointer; }
.reservation-acknowledgement input { width: 1.25rem; height: 1.25rem; flex: none; }
.reservation-review { display: grid; gap: 0; margin: 0; }
.reservation-review div { display: grid; grid-template-columns: minmax(8rem, 1fr) 2fr; gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--border-subtle); }
.reservation-review dt { color: var(--text-muted); font-weight: 700; }.reservation-review dd { margin: 0; overflow-wrap: anywhere; color: var(--text-primary); }
.reservation-link-shell { width: min(620px, calc(100% - 2rem)); margin: 10vh auto; }
.reservation-result > h1 { margin-top: 0; }
.reservation-result__context { margin: 1.75rem 0; padding: 1.25rem; border-left: 3px solid var(--color-accent); background: var(--surface-muted); }
.reservation-result__context h2 { margin: .25rem 0; font: 500 clamp(1.6rem, 5vw, 2.3rem)/1.1 var(--font-heading); }
.reservation-result__context p:last-child { margin: .45rem 0 0; color: var(--text-secondary); }
.reservation-result__next { color: var(--text-secondary); line-height: 1.65; }
.reservation-result__links { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
@media (max-width: 560px) { .reservation-result__links { align-items: stretch; flex-direction: column; } .reservation-result__links .button { justify-content: center; width: 100%; } }
.reserve-button { display: inline-flex; justify-content: center; align-items: center; text-decoration: none; }
.reservation-unavailable { display: block; color: var(--color-muted, #6f6a63); }
@media (max-width: 600px) {
  .reservation-shell { width: min(100% - 1rem, 1080px); margin-top: 1rem; }
  .reservation-progress { font-size: .7rem; gap: .25rem; }
  .reservation-progress li strong { max-width: 7rem; line-height: 1.25; }
  .reservation-stage { grid-template-columns: 1fr; }
  .reservation-artwork { position: static; display: grid; grid-template-columns: 6.25rem minmax(0, 1fr); }
  .reservation-artwork__image, .reservation-artwork__placeholder { height: 100%; min-height: 8rem; aspect-ratio: auto; }
  .reservation-artwork__copy { padding: var(--space-2); }
  .reservation-artwork__copy h2 { font-size: 1.45rem; }
  .reservation-fields { grid-template-columns: 1fr; }
  .reservation-fields label:nth-of-type(4) { grid-column: auto; }
  .reservation-actions { align-items: stretch; flex-direction: column-reverse; }
  .reservation-actions .button { width: 100%; }
  .reservation-review div { grid-template-columns: 1fr; gap: .25rem; }
}

/* Public GalleryLane shell and discovery */
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important; }
.discovery-page, .about-page { min-height: 100vh; background: #f6f0e7; }
.public-header { position: relative; z-index: 20; border-bottom: 1px solid rgba(75, 59, 43, .1); }
.public-header__bar { display: grid; grid-template-columns: 1fr auto 1fr; min-height: 78px; align-items: center; }
.public-header .site-brand { justify-self: start; color: #29251f; font-size: clamp(1.55rem, 2.3vw, 2rem); font-weight: 500; letter-spacing: .045em; font-variant: small-caps; }
.public-header__nav { display: flex; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; color: #433b33; font-size: .74rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.public-header__nav a { position: relative; padding: .75rem .25rem; }
.public-header__nav a:hover { color: var(--brand-primary); }
.public-header__nav a[aria-current='page']::after { position: absolute; right: .25rem; bottom: .4rem; left: .25rem; height: 1px; background: currentColor; content: ''; }
.public-header__nav--mobile { display: none; }
.public-header__actions { display: flex; justify-self: end; align-items: center; gap: .85rem; }
.public-login { display: inline-flex; min-height: 2.35rem; align-items: center; justify-content: center; gap: .4rem; padding: .45rem .65rem; border-radius: 999px; color: #665b50; font-size: .76rem; font-weight: 600; letter-spacing: .035em; text-decoration: none; }
.public-login:hover { color: #352e28; background: rgba(115, 86, 59, .07); }
.public-header a:focus-visible, .public-footer a:focus-visible, .about-faq summary:focus-visible { outline: 3px solid rgba(131,90,52,.38); outline-offset: 3px; }
.discovery-main { padding: 1.25rem clamp(.75rem, 2vw, 2rem) 2rem; }
.discovery-scene { position: relative; isolation: isolate; width: min(1800px, 100%); height: clamp(720px, calc(100svh - 118px), 940px); min-height: 720px; margin: 0 auto; overflow: hidden; border: 1px solid rgba(74, 55, 36, .09); border-radius: clamp(18px, 2vw, 30px); background: #f7f1e8; box-shadow: 0 22px 70px rgba(76, 58, 39, .09); }
.discovery-scene__background { position: absolute; z-index: -3; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; filter: sepia(.06) contrast(.94) brightness(1.035); }
.discovery-scene__veil { position: absolute; z-index: -2; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(250,246,239,.88) 0%, rgba(250,246,239,.38) 20%, rgba(250,246,239,.04) 42%, rgba(250,246,239,.04) 60%, rgba(250,246,239,.31) 82%, rgba(250,246,239,.62) 100%), linear-gradient(180deg, rgba(250,247,242,.35), transparent 24%, transparent 70%, rgba(250,247,242,.75)); }
.discovery-hero { position: absolute; z-index: 12; top: clamp(2.5rem, 7vh, 5.5rem); left: clamp(2rem, 4.2vw, 5rem); width: clamp(230px, 19vw, 370px); color: #302b25; }
.discovery-hero .eyebrow { margin-bottom: .75rem; color: #796b5b; }
.discovery-hero h1 { margin: 0; font: 500 clamp(2.25rem, 3.25vw, 3.7rem)/1.02 var(--font-heading); letter-spacing: -.018em; text-wrap: balance; }
.discovery-hero__rule { display: block; width: 3.5rem; height: 2px; margin: 1.25rem 0; background: #b48b50; }
.discovery-hero > p:last-child { max-width: 17rem; margin: 0; color: #4e463e; font: 500 clamp(.95rem, 1.2vw, 1.12rem)/1.55 var(--font-body); }
.discovery-lane { position: absolute; z-index: 3; inset: 0; opacity: .43; filter: saturate(.58) contrast(.88); transform: scale(.965); transition: opacity 380ms ease, filter 380ms ease, transform 380ms ease; pointer-events: none; }
.discovery-lane.is-active { z-index: 5; opacity: 1; filter: none; transform: scale(1); pointer-events: auto; }
.discovery-lane--latest { transform-origin: 35% 62%; }
.discovery-lane--trending { transform-origin: 65% 62%; }
.discovery-lane__track { position: absolute; inset: 0; }
.discovery-card { --slot-x: 50%; --slot-y: 58%; --slot-scale: .3; --slot-rotate: 0deg; --slot-opacity: 0; position: absolute; left: var(--slot-x); top: var(--slot-y); width: clamp(205px, 16vw, 270px); opacity: var(--slot-opacity); transform: translate(-50%, -50%) scale(var(--slot-scale)) rotate(var(--slot-rotate)); transform-origin: 50% 60%; transition: left 420ms cubic-bezier(.22,.7,.25,1), top 420ms cubic-bezier(.22,.7,.25,1), opacity 320ms ease, transform 420ms cubic-bezier(.22,.7,.25,1); }
.discovery-card[data-slot='hidden'] { visibility: hidden; opacity: 0; pointer-events: none; }
.discovery-lane--latest .discovery-card[data-slot='near'] { --slot-x: 12%; --slot-y: 64%; --slot-scale: 1; --slot-rotate: -1.8deg; --slot-opacity: 1; z-index: 8; }
.discovery-lane--latest .discovery-card[data-slot='mid'] { --slot-x: 29%; --slot-y: 61%; --slot-scale: .72; --slot-rotate: -1.2deg; --slot-opacity: .96; z-index: 6; }
.discovery-lane--latest .discovery-card[data-slot='far'] { --slot-x: 39.5%; --slot-y: 58.5%; --slot-scale: .5; --slot-rotate: -.65deg; --slot-opacity: .9; z-index: 4; }
.discovery-lane--latest .discovery-card[data-slot='vanishing'] { --slot-x: 46%; --slot-y: 57%; --slot-scale: .33; --slot-rotate: -.25deg; --slot-opacity: .76; z-index: 2; }
.discovery-lane--trending .discovery-card[data-slot='near'] { --slot-x: 88%; --slot-y: 64%; --slot-scale: 1; --slot-rotate: 1.8deg; --slot-opacity: 1; z-index: 8; }
.discovery-lane--trending .discovery-card[data-slot='mid'] { --slot-x: 71%; --slot-y: 61%; --slot-scale: .72; --slot-rotate: 1.2deg; --slot-opacity: .96; z-index: 6; }
.discovery-lane--trending .discovery-card[data-slot='far'] { --slot-x: 60.5%; --slot-y: 58.5%; --slot-scale: .5; --slot-rotate: .65deg; --slot-opacity: .9; z-index: 4; }
.discovery-lane--trending .discovery-card[data-slot='vanishing'] { --slot-x: 54%; --slot-y: 57%; --slot-scale: .33; --slot-rotate: .25deg; --slot-opacity: .76; z-index: 2; }
.discovery-controls { position: absolute; z-index: 15; bottom: clamp(1.4rem, 3vh, 2.4rem); left: 50%; display: grid; justify-items: center; width: min(560px, calc(100% - 2rem)); transform: translateX(-50%); }
.discovery-controls__label { margin: 0 0 .45rem; color: #70655b; font-size: .69rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.discovery-controls__row { display: grid; grid-template-columns: 2.7rem minmax(270px, 390px) 2.7rem; gap: .75rem; align-items: center; width: 100%; justify-content: center; }
.discovery-selector { display: grid; grid-template-columns: 1fr 1fr; padding: .25rem; border: 1px solid rgba(91,70,48,.24); border-radius: 999px; background: rgba(255,252,247,.88); box-shadow: 0 7px 22px rgba(73,55,37,.08); backdrop-filter: blur(8px); }
.discovery-selector button { display: inline-flex; min-height: 2.85rem; align-items: center; justify-content: center; gap: .55rem; padding: .7rem 1rem; border: 0; border-radius: 999px; color: #6f6358; background: transparent; font: 700 .76rem/1 var(--font-body); letter-spacing: .045em; text-transform: uppercase; cursor: pointer; transition: color 260ms ease, background-color 260ms ease, box-shadow 260ms ease; }
.discovery-selector button[aria-pressed='true'] { color: #fffdf8; background: linear-gradient(135deg, #8a6848, #6e4e34); box-shadow: 0 5px 13px rgba(77,52,32,.2); }
.discovery-selector button:focus-visible, .discovery-arrow:focus-visible { outline: 3px solid rgba(131,90,52,.38); outline-offset: 3px; }
.discovery-arrow { display: grid; width: 2.7rem; height: 2.7rem; place-items: center; border: 1px solid rgba(91,70,48,.2); border-radius: 50%; color: #443a31; background: rgba(255,253,249,.92); box-shadow: 0 6px 18px rgba(70,52,34,.12); font-size: 1.1rem; cursor: pointer; transition: transform 200ms ease, opacity 200ms ease, background-color 200ms ease; }
.discovery-arrow:not(:disabled):hover { transform: translateY(-2px); background: #fff; }
.discovery-arrow:disabled { opacity: .32; cursor: default; }
.discovery-mode-description { min-height: 1.4em; margin: .55rem 0 0; color: #685e55; font: 500 .93rem/1.35 var(--font-body); text-align: center; }
.discovery-status { position: absolute; z-index: 14; top: 47%; left: 50%; display: grid; width: min(420px, calc(100% - 3rem)); min-height: 2rem; place-items: center; padding: .75rem 1rem; color: #62574d; border-radius: 12px; transform: translate(-50%, -50%); text-align: center; }
.discovery-status:empty { display: none; }
.discovery-status.is-empty { min-height: 7rem; border: 1px solid rgba(91,70,48,.14); background: rgba(255,253,249,.88); box-shadow: 0 12px 34px rgba(70,52,34,.08); backdrop-filter: blur(8px); }
.discovery-status.is-loading::after { display: inline-block; width: .9rem; height: .9rem; margin-top: .55rem; border: 2px solid rgba(91,70,48,.2); border-top-color: #866243; border-radius: 50%; content: ''; animation: discovery-spin .8s linear infinite; }
.public-footer { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-top: 1.25rem; padding-bottom: 2rem; color: #766b60; font-size: .78rem; }
.public-footer__identity { display: flex; align-items: baseline; gap: 1rem; }
.public-footer strong { color: #302b25; font: 500 1.2rem var(--font-heading); }
.public-footer__links { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.public-footer__links a { padding: .35rem 0; color: #665b50; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: .22rem; }
.public-footer__links a:hover { text-decoration-color: currentColor; }

.privacy-settings-trigger { position: fixed; right: 1rem; bottom: 1rem; z-index: 90; border: 1px solid var(--color-border, #d8d0c7); border-radius: 999px; padding: .65rem 1rem; background: var(--color-surface, #fff); color: var(--color-text, #302b25); box-shadow: 0 4px 18px rgba(35,28,22,.12); font: inherit; cursor: pointer; }
.privacy-settings-trigger[hidden] { display: none; }
.privacy-consent { position: fixed; z-index: 100; left: 1rem; right: 1rem; bottom: 1rem; max-width: 64rem; margin: auto; padding: 1.25rem; border: 1px solid var(--color-border, #d8d0c7); border-radius: 1rem; background: var(--color-surface, #fff); color: var(--color-text, #302b25); box-shadow: 0 12px 36px rgba(35,28,22,.2); display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; }
.privacy-consent[hidden] { display: none; }
.privacy-consent__copy { max-width: 44rem; }
.privacy-consent h2 { margin: 0 0 .4rem; font-size: 1.25rem; }
.privacy-consent p { margin: .35rem 0; line-height: 1.5; }
.privacy-consent__status { font-weight: 700; }
.privacy-consent__actions { display: flex; min-width: 12rem; flex-direction: column; gap: .65rem; }
.privacy-consent button { min-height: 2.75rem; border: 1px solid currentColor; border-radius: .5rem; padding: .65rem 1rem; background: transparent; color: inherit; font: inherit; font-weight: 700; cursor: pointer; }
.privacy-consent button[data-consent] { width: 100%; flex: none; }
.privacy-consent button:focus-visible, .privacy-settings-trigger:focus-visible { outline: 3px solid rgba(131,90,52,.45); outline-offset: 3px; }
@media (max-width: 700px) { .privacy-consent { align-items: stretch; flex-direction: column; } .privacy-consent__actions { width: 100%; } }
@keyframes discovery-spin { to { transform: rotate(360deg); } }

@media (max-width: 1100px) {
  .public-header__bar { grid-template-columns: 1fr auto; min-height: 58px; }
  .public-header__nav--desktop { display: none; }
  .public-header__nav--mobile { display: flex; min-height: 32px; justify-content: center; gap: 3rem; border-top: 1px solid rgba(75, 59, 43, .07); }
  .public-header__nav--mobile a { padding: .4rem .5rem; }
  .public-header__nav--mobile a[aria-current='page']::after { right: .5rem; bottom: .18rem; left: .5rem; }
  .discovery-main { padding-top: .5rem; }
  .discovery-scene { height: 760px; min-height: 760px; }
  .discovery-card { width: clamp(190px, 19vw, 225px); }
  .discovery-lane--latest .discovery-card[data-slot='near'] { --slot-x: 12%; }
  .discovery-lane--trending .discovery-card[data-slot='near'] { --slot-x: 88%; }
}

@media (max-width: 900px) {
  .discovery-main { padding: .5rem; }
  .discovery-scene { height: 780px; min-height: 780px; border-radius: 18px; touch-action: pan-y; }
  .discovery-scene__background { object-position: center bottom; }
  .discovery-scene__veil { background: linear-gradient(180deg, rgba(250,246,239,.94) 0%, rgba(250,246,239,.58) 31%, rgba(250,246,239,.14) 56%, rgba(250,246,239,.82) 100%); }
  .discovery-hero { top: 2rem; left: 50%; width: min(350px, calc(100% - 3rem)); transform: translateX(-50%); text-align: center; }
  .discovery-hero .eyebrow { display: none; }
  .discovery-hero h1 { font-size: clamp(2.35rem, 10vw, 3.15rem); }
  .discovery-hero__rule { margin-right: auto; margin-left: auto; }
  .discovery-hero > p:last-child { margin: 0 auto; }
  .discovery-lane:not(.is-active) { visibility: hidden; opacity: 0; }
  .discovery-card { width: min(320px, calc(100vw - 4rem)); visibility: hidden; opacity: 0; pointer-events: none; transform: translate(calc(-50% + var(--swipe-delta, 0px)), -50%) scale(var(--slot-scale)) rotate(var(--slot-rotate)); }
  .discovery-lane.is-active .discovery-card[data-mobile-slot='current'] { --slot-x: 50%; --slot-y: 55%; --slot-scale: 1; --slot-rotate: 0deg; --slot-opacity: 1; z-index: 8; visibility: visible; opacity: 1; pointer-events: auto; }
  .discovery-lane.is-active .discovery-card[data-mobile-slot='previous'] { --slot-x: -3%; --slot-y: 55%; --slot-scale: .84; --slot-rotate: -1.5deg; --slot-opacity: .58; z-index: 4; visibility: visible; opacity: .58; }
  .discovery-lane.is-active .discovery-card[data-mobile-slot='next'] { --slot-x: 103%; --slot-y: 55%; --slot-scale: .84; --slot-rotate: 1.5deg; --slot-opacity: .58; z-index: 4; visibility: visible; opacity: .58; }
  .discovery-controls { bottom: 1.25rem; }
  .discovery-controls__row { grid-template-columns: 3rem minmax(0, 1fr) 3rem; gap: .4rem; }
  .discovery-selector button { min-width: 0; min-height: 3rem; padding-inline: .55rem; font-size: .67rem; }
  .discovery-arrow { width: 3rem; height: 3rem; }
  .discovery-mode-description { font-size: .85rem; }
  .public-footer { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 430px) {
  .public-header .site-brand { font-size: 1.45rem; }
  .public-header__actions { gap: .35rem; }
  .public-login { width: 2.4rem; padding: .45rem; }
  .public-login__label { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .public-footer__identity { align-items: flex-start; flex-direction: column; gap: .35rem; }
  .discovery-lane.is-active .discovery-card[data-mobile-slot='current'], .discovery-lane.is-active .discovery-card[data-mobile-slot='previous'], .discovery-lane.is-active .discovery-card[data-mobile-slot='next'] { --slot-y: 55.5%; }
  .discovery-controls { width: calc(100% - 1rem); }
  .discovery-controls__row { grid-template-columns: 3rem minmax(0, 1fr) 3rem; gap: .25rem; }
  .discovery-selector { padding: .2rem; }
  .discovery-selector button { gap: .3rem; padding-inline: .35rem; font-size: .63rem; }
}

/* About GalleryLane */
.about-main { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; }
.about-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(260px, .65fr); column-gap: clamp(2rem, 8vw, 7rem); padding: clamp(4.5rem, 9vw, 8rem) 0 clamp(5rem, 10vw, 8.5rem); border-bottom: 1px solid rgba(75,59,43,.14); }
.about-hero > .eyebrow { grid-column: 1 / -1; color: #866f58; }
.about-hero h1 { max-width: 8ch; margin: .5rem 0 1.5rem; color: #29251f; font: 400 clamp(3.8rem, 8vw, 7.25rem)/.88 var(--font-heading); letter-spacing: -.025em; }
.about-hero__lead { align-self: end; max-width: 25rem; margin: 0; color: #443a31; font: 500 clamp(1.15rem, 2vw, 1.45rem)/1.5 var(--font-body); }
.about-hero__copy { grid-column: 2; display: grid; gap: 1rem; margin-top: 2rem; color: #665c52; line-height: 1.75; }
.about-hero__copy p { margin: 0; }
.about-section { display: grid; grid-template-columns: minmax(180px, .55fr) minmax(0, 1.15fr); gap: clamp(2rem, 8vw, 7rem); padding: clamp(4.5rem, 8vw, 7rem) 0; border-bottom: 1px solid rgba(75,59,43,.14); }
.about-section__heading { display: grid; align-content: start; gap: .75rem; }
.about-section__number { margin: 0; color: #a48769; font-size: .72rem; font-weight: 700; letter-spacing: .12em; }
.about-section__heading h2 { margin: 0; color: #6b5c4d; font: 600 .8rem/1.4 var(--font-body); letter-spacing: .1em; text-transform: uppercase; }
.about-section__body { max-width: 690px; }
.about-section__body h3, .about-note h2 { margin: 0 0 1.5rem; color: #29251f; font: 500 clamp(2.2rem, 4.4vw, 3.8rem)/1.02 var(--font-heading); letter-spacing: -.015em; }
.about-section__body > p { color: #5b5249; font-size: 1.02rem; line-height: 1.75; }
.about-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem 2.5rem; margin: 2.5rem 0; padding: 0; list-style: none; counter-reset: steps; }
.about-steps li { position: relative; display: grid; gap: .45rem; padding: 0 0 0 2.1rem; counter-increment: steps; }
.about-steps li::before { position: absolute; top: .05rem; left: 0; color: #9a7653; font: 500 1.2rem var(--font-heading); content: counter(steps, decimal-leading-zero); }
.about-steps strong { color: #332d27; font-size: .92rem; }
.about-steps span { color: #72675c; font-size: .88rem; line-height: 1.55; }
.about-principles { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem 2rem; margin: 2rem 0 2.5rem; padding: 0; list-style: none; }
.about-principles li { padding: .8rem 0; border-bottom: 1px solid rgba(75,59,43,.12); color: #443b33; }
.about-pullquote { max-width: 22ch; margin: 3rem 0 0 !important; color: #7d5b3f !important; font: 500 clamp(1.55rem, 3vw, 2.25rem)/1.3 var(--font-heading) !important; }
.about-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: clamp(4.5rem, 8vw, 7rem) 0; overflow: hidden; border: 1px solid rgba(75,59,43,.12); border-radius: 24px; background: rgba(75,59,43,.12); }
.about-note { padding: clamp(2rem, 5vw, 4rem); background: rgba(255,253,249,.72); }
.about-note .eyebrow { color: #866f58; }
.about-note h2 { font-size: clamp(2rem, 3.5vw, 3rem); }
.about-note p:not(.eyebrow) { color: #5f554b; line-height: 1.7; }
.about-contact-note { margin-top: 2rem; padding: 1.25rem 1.5rem; border-left: 2px solid #a77d55; background: rgba(255,253,249,.6); }
.about-contact-note strong { color: #3a322b; }
.about-contact-note p { margin: .45rem 0 0; color: #6f6459; font-size: .9rem; line-height: 1.6; }
.about-faq { padding: clamp(4.5rem, 9vw, 8rem) 0; }
.about-faq > .eyebrow { color: #866f58; }
.about-faq > h2 { max-width: 12ch; margin: .5rem 0 clamp(2.5rem, 5vw, 4.5rem); color: #29251f; font: 400 clamp(3rem, 6vw, 5.5rem)/.94 var(--font-heading); letter-spacing: -.02em; }
.about-faq__list { border-top: 1px solid rgba(75,59,43,.2); }
.about-faq details { border-bottom: 1px solid rgba(75,59,43,.2); }
.about-faq summary { display: flex; min-height: 4.75rem; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 2.5rem 1rem 0; color: #332d27; font: 600 clamp(1.05rem, 2vw, 1.25rem)/1.4 var(--font-body); cursor: pointer; list-style: none; }
.about-faq summary::-webkit-details-marker { display: none; }
.about-faq summary::after { flex: 0 0 auto; color: #8a6748; font: 400 1.6rem/1 var(--font-body); content: '+'; }
.about-faq details[open] summary::after { content: '−'; }
.about-faq details p { max-width: 740px; margin: -.2rem 0 1.5rem; color: #665c52; line-height: 1.7; }

.about-page .about-hero { display: block; }
.about-page .about-hero > div { max-width: 760px; }
.about-page .about-hero h1 { max-width: none; }
.about-page .about-hero__copy { display: block; margin-top: 1rem; }
.about-sections-slider__panel[hidden], .about-sections-slider__navigation[hidden] { display: none; }
.about-sections-slider.is-enhanced .about-sections-slider__viewport { outline: none; }
.about-sections-slider.is-enhanced .about-sections-slider__viewport:focus-visible { border-radius: 4px; box-shadow: 0 0 0 3px rgba(138,103,72,.2); }
.about-step-card { margin: 2rem 0; padding: clamp(1.4rem, 3vw, 2.25rem); border: 1px solid rgba(75,59,43,.16); border-radius: 18px; background: rgba(255,253,249,.65); }
.about-step-card .about-steps { margin: 0; }
.about-sections-slider__navigation { display: flex; align-items: center; justify-content: flex-end; gap: .7rem; margin-top: .85rem; }
.about-sections-slider__navigation > button { width: 2.9rem; height: 2.9rem; border: 1px solid rgba(75,59,43,.2); border-radius: 50%; color: #443a31; background: rgba(255,253,249,.7); cursor: pointer; }
.about-sections-slider__navigation > button:hover, .about-sections-slider__navigation > button:focus-visible { border-color: #8a6748; color: #8a6748; outline: none; }
.about-sections-slider__dots { display: flex; align-items: center; gap: .45rem; }
.about-sections-slider__dots button { width: .65rem; height: .65rem; padding: 0; border: 1px solid rgba(75,59,43,.24); border-radius: 50%; background: rgba(255,253,249,.8); cursor: pointer; }
.about-sections-slider__dots button[aria-selected="true"] { border-color: #8a6748; background: #8a6748; }
.about-sections-slider__dots button:focus-visible { outline: 2px solid #8a6748; outline-offset: 3px; }

@media (max-width: 760px) {
  .about-sections-slider__navigation { justify-content: center; }
}

@media (max-width: 760px) {
  .about-hero { display: block; padding-top: 3.75rem; }
  .about-hero h1 { font-size: clamp(3.7rem, 18vw, 5.5rem); }
  .about-hero__lead { margin-top: 2rem; }
  .about-hero__copy { margin-top: 1.5rem; }
  .about-section { grid-template-columns: 1fr; gap: 1.75rem; }
  .about-section__heading { grid-template-columns: auto 1fr; align-items: baseline; }
  .about-steps, .about-principles, .about-notes { grid-template-columns: 1fr; }
  .about-notes { gap: 1px; border-radius: 18px; }
}

@media (max-width: 430px) {
  .about-main { width: min(100% - 1.5rem, 1120px); }
  .about-steps { grid-template-columns: 1fr; }
  .about-section__body h3, .about-note h2 { font-size: 2.25rem; }
  .about-faq summary { padding-right: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .discovery-lane, .discovery-card, .discovery-card__link, .discovery-card__media img,
  .discovery-selector button, .discovery-arrow { transition: none !important; }
  .discovery-status.is-loading::after { animation: none; }
}

/* Privacy policy */
.privacy-main { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; }
.privacy-hero { padding: clamp(4.5rem, 9vw, 8rem) 0 clamp(3.5rem, 7vw, 6rem); border-bottom: 1px solid rgba(75,59,43,.14); }
.privacy-hero .eyebrow, .privacy-index > span { color: #866f58; }
.privacy-hero h1 { max-width: 12ch; margin: .5rem 0 1.5rem; color: #29251f; font: 400 clamp(3.6rem, 8vw, 7rem)/.9 var(--font-heading); letter-spacing: -.025em; }
.privacy-hero__lead { max-width: 32rem; margin: 0; color: #5b5249; font: 500 clamp(1.15rem, 2vw, 1.45rem)/1.5 var(--font-body); }
.privacy-hero__date { margin: 1.5rem 0 0; color: #8a7c6d; font-size: .8rem; letter-spacing: .04em; }
.privacy-layout { display: grid; grid-template-columns: minmax(170px, .35fr) minmax(0, 1fr); gap: clamp(2.5rem, 8vw, 7rem); padding: clamp(3.5rem, 7vw, 6rem) 0; }
.privacy-index { position: sticky; top: 1.5rem; align-self: start; display: grid; gap: .8rem; padding-top: .25rem; }
.privacy-index > span { margin-bottom: .4rem; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.privacy-index a { color: #76695c; font-size: .82rem; line-height: 1.35; text-decoration: none; }
.privacy-index a:hover, .privacy-index a:focus-visible { color: #7d5b3f; text-decoration: underline; text-underline-offset: .2rem; }
.privacy-copy { max-width: 760px; }
.privacy-section { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); gap: 1rem; padding: 0 0 clamp(3.5rem, 7vw, 6rem); }
.privacy-section__number { margin: .35rem 0 0; color: #a48769; font-size: .72rem; font-weight: 700; letter-spacing: .12em; }
.privacy-section h2 { margin: 0 0 1.5rem; color: #29251f; font: 500 clamp(2rem, 4vw, 3.35rem)/1.02 var(--font-heading); letter-spacing: -.015em; }
.privacy-section h3 { margin: 2rem 0 .6rem; color: #443a31; font: 600 1rem/1.4 var(--font-body); letter-spacing: .06em; text-transform: uppercase; }
.privacy-section p, .privacy-section li { color: #5b5249; font-size: 1rem; line-height: 1.75; }
.privacy-section p { margin: 0 0 1rem; }
.privacy-section address { margin: 1.5rem 0; padding: 1.25rem 1.5rem; border-left: 2px solid #a77d55; color: #5b5249; font-style: normal; line-height: 1.75; background: rgba(255,253,249,.58); }
.privacy-section a { color: #7d5b3f; text-underline-offset: .2rem; }
.privacy-section ul { margin: 1rem 0 1.25rem; padding-left: 1.25rem; }
.privacy-section li { margin: .55rem 0; padding-left: .3rem; }
.privacy-section code { padding: .12rem .3rem; border: 1px solid rgba(75,59,43,.12); border-radius: 4px; color: #6e4e34; background: rgba(255,253,249,.8); font-size: .88em; overflow-wrap: anywhere; }
.privacy-section--last { padding-bottom: 0; }

@media (max-width: 760px) {
  .privacy-hero h1 { font-size: clamp(3.6rem, 18vw, 5.7rem); }
  .privacy-layout { display: block; }
  .privacy-index { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem 1rem; margin-bottom: 4rem; padding: 1.25rem; border: 1px solid rgba(75,59,43,.12); border-radius: 16px; background: rgba(255,253,249,.55); }
  .privacy-index > span { grid-column: 1 / -1; }
  .privacy-section { grid-template-columns: 1.8rem minmax(0, 1fr); }
}
