:root {
  --black: #11122a;
  --ink: #11122a;
  --bone: #e8e2d7;
  --dim: #b0a99f;
  --line: #2b2c47;
  --copper: #cf9843;
  --teal: #1a9bb0;
  --radius: 8px;
  --sans: "Assistant", Arial, sans-serif;
  --serif: "Assistant", Arial, sans-serif;
  --display: "Assistant", Arial, sans-serif;
  --utility-size: clamp(16px, 1.2vw, 18px);

  /* Global type-scale multipliers, CMS-editable (default 1 = unchanged). */
  --scale-nav: 1;
  --scale-heading: 1;
  --scale-subheading: 1;
  --scale-legal: 1;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  overflow-x: clip;
}

body {
  margin: 0;
  overflow-x: clip;
  background: var(--black);
  color: var(--bone);
  font-family: var(--sans);
  font-weight: 400;
  line-height: 1.6;
}

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

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

/* Header */
.site-header {
  height: 82px;
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  z-index: 30;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  margin: 0;
  padding: 0 clamp(22px, 2.8vw, 54px);
  border-bottom: 1px solid rgba(232, 226, 215, 0.12);
  background: #0b0c20;
  direction: ltr;
}

.brand {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 68px;
  justify-self: center;
}

.brand img {
  width: 46px;
  height: 54px;
  object-fit: contain;
}

.main-nav {
  grid-column: 3;
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  justify-self: end;
  gap: clamp(18px, 1.6vw, 30px);
  color: var(--dim);
  font-size: calc(clamp(15px, 1vw, 19px) * var(--scale-nav));
  font-weight: 500;
  white-space: nowrap;
  direction: rtl;
}

.main-nav a {
  position: relative;
  transition: color 0.25s;
}

.main-nav a::after {
  content: "";
  position: absolute;
  right: 0;
  left: 100%;
  bottom: -8px;
  height: 1px;
  background: var(--teal);
  transition: left 0.25s;
}

.main-nav a:hover,
.main-nav a.active {
  color: var(--teal);
}

.main-nav a:hover::after,
.main-nav a.active::after {
  left: 0;
}

.nav-item.has-dropdown {
  position: relative;
}

.nav-dropdown {
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 14px;
  min-width: 190px;
  padding: 10px 0;
  background: var(--black);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity 0.2s, transform 0.2s, visibility 0.2s;
  z-index: 20;
}

.nav-item.has-dropdown:hover .nav-dropdown,
.nav-item.has-dropdown:focus-within .nav-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.nav-dropdown a {
  display: block;
  padding: 10px 20px;
  color: var(--dim);
  white-space: nowrap;
}

.nav-dropdown a::after {
  display: none;
}

.nav-dropdown a:hover,
.nav-dropdown a.active {
  color: var(--teal);
  background: rgba(26, 155, 176, 0.08);
}

.nav-dropdown-toggle {
  display: none;
}

.header-actions {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  display: flex;
  align-items: center;
  gap: 18px;
}

.header-tagline {
  margin-left: 18px;
  color: var(--dim);
  font-size: 14px;
  font-weight: 400;
  white-space: nowrap;
  direction: rtl;
}

.header-search-toggle,
.header-cart {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 32px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--bone);
  cursor: pointer;
  transition: color 0.2s;
}

.header-search-toggle:hover,
.header-cart:hover {
  color: var(--copper);
}

.header-search-toggle svg,
.header-cart svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.header-cart .js-cart-count {
  position: absolute;
  top: -8px;
  left: -10px;
  display: inline-grid;
  place-items: center;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--copper);
  color: var(--black);
  font-size: 11px;
  font-weight: 700;
}

.header-cart .js-cart-count[hidden] {
  display: none;
}

.header-lang-toggle {
  display: inline-flex;
  align-items: center;
  padding: 5px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--dim);
  font: 600 12px/1 var(--sans);
  letter-spacing: 0.02em;
  text-decoration: none;
  white-space: nowrap;
  transition: color 180ms ease, border-color 180ms ease;
}

.header-lang-toggle:hover,
.header-lang-toggle:focus-visible {
  color: var(--copper);
  border-color: var(--copper);
}

.nav-toggle {
  display: none;
}

.nav-toggle:focus,
.header-search-toggle:focus,
.header-search-close:focus,
.header-cart:focus {
  outline: none;
}

.nav-toggle:focus-visible span,
.header-search-toggle:focus-visible,
.header-search-close:focus-visible,
.header-cart:focus-visible {
  color: #fff;
  filter: drop-shadow(0 0 3px rgba(255, 255, 255, 0.42));
}

.header-search-panel {
  position: fixed;
  z-index: 40;
  inset: 82px 0 0;
  padding: clamp(28px, 6vw, 72px) 24px;
  background: rgba(4, 5, 16, 0.78);
}

.header-search-panel[hidden] {
  display: none;
}

.header-search-inner {
  width: min(100%, 760px);
  max-height: calc(100dvh - 150px);
  margin: 0 auto;
  padding: clamp(24px, 4vw, 42px);
  overflow-y: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #0b0c20;
}

.header-search-field {
  display: grid;
  grid-template-columns: 24px 1fr 30px;
  align-items: center;
  gap: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--bone);
  direction: ltr;
}

.header-search-field svg {
  width: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
}

.header-search-field input {
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--bone);
  font: 400 clamp(20px, 3vw, 30px) / 1.3 var(--sans);
  text-align: right;
  direction: rtl;
}

.header-search-field input::placeholder {
  color: var(--dim);
}

.header-search-field input::-webkit-search-cancel-button {
  display: none;
  -webkit-appearance: none;
}

.header-search-close {
  border: 0;
  background: transparent;
  color: var(--bone);
  font: 300 30px/1 var(--sans);
  cursor: pointer;
}

.header-search-hint {
  margin: 18px 0 10px;
  color: var(--dim);
  font-size: 14px;
}

.header-search-results {
  display: grid;
}

.header-search-result {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 13px 0;
  border-bottom: 1px solid var(--line);
}

.header-search-result[hidden] {
  display: none;
}

.header-search-result span {
  color: var(--dim);
  font-size: 13px;
}

.header-search-result strong {
  font-size: 17px;
  font-weight: 500;
}

body.search-open-lock {
  overflow: hidden;
}

body.cart-drawer-lock {
  overflow: hidden;
}

.cart-drawer-overlay {
  position: fixed;
  inset: 0;
  z-index: 89;
  background: rgba(2, 3, 18, 0.72);
  backdrop-filter: blur(2px);
}

.cart-drawer-overlay[hidden] {
  display: none;
}

.cart-drawer {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 90;
  display: grid;
  width: min(92vw, 520px);
  height: 100dvh;
  grid-template-rows: auto minmax(0, 1fr) auto;
  border-left: 1px solid rgba(242, 238, 229, 0.22);
  background: #11132d;
  color: var(--bone);
  transform: translateX(102%);
  transition: transform 0.3s ease;
  box-shadow: -24px 0 60px rgba(0, 0, 0, 0.32);
}

.cart-drawer[aria-hidden="false"] {
  transform: translateX(0);
}

.cart-drawer-header {
  display: flex;
  min-height: 82px;
  align-items: center;
  justify-content: space-between;
  padding: 0 28px;
  border-bottom: 1px solid rgba(242, 238, 229, 0.2);
}

.cart-drawer-header h2 {
  margin: 0;
  font-size: 26px;
  font-weight: 600;
}

.cart-drawer-close {
  width: 44px;
  height: 44px;
  border: 1px solid var(--copper);
  border-radius: 10px;
  background: var(--copper);
  color: var(--black);
  font-size: 34px;
  font-weight: 300;
  cursor: pointer;
}

.cart-drawer-body {
  overflow-y: auto;
  padding: 8px 28px 24px;
}

.cart-drawer-empty {
  margin: 40px 0;
  color: #ddd7cd;
  font-size: 18px;
  text-align: center;
}

.cart-drawer-items {
  margin: 0;
  padding: 0;
  list-style: none;
}

.cart-drawer-line {
  position: relative;
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) 34px;
  gap: 18px;
  padding: 24px 0;
  border-bottom: 1px solid rgba(242, 238, 229, 0.18);
}

.cart-drawer-thumb {
  display: block;
  width: 92px;
  aspect-ratio: 1;
  padding: 8px;
  border-radius: 12px;
  background: #fff;
}

.cart-drawer-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.cart-drawer-info {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 7px;
}

/* Cart/product text is CMS-authored and mixes Hebrew with English product
   names. unicode-bidi: plaintext makes each line take its direction from
   its own first strong character - exactly how the CMS input the text was
   typed into behaves - so what ships matches what was typed, whether the
   name starts in Hebrew or in English. Set here (rather than injected into
   the strings) because cart.js writes these via textContent. */
.cart-drawer-title,
.cart-drawer-meta,
.cart-line-title,
.cart-line-info span {
  unicode-bidi: plaintext;
}

.cart-drawer-title {
  color: var(--bone);
  font-size: 20px;
  font-weight: 600;
  text-decoration: none;
}

.cart-drawer-meta {
  color: #d0c9bf;
  font-size: 15px;
  line-height: 1.45;
}

.cart-drawer-line-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: auto;
}

.cart-drawer-line-price {
  color: var(--bone);
  font-size: 18px;
}

.cart-drawer-remove {
  align-self: start;
  border: 0;
  background: transparent;
  color: #d0c9bf;
  font-size: 26px;
  cursor: pointer;
}

.cart-drawer-footer {
  padding: 22px 28px 26px;
  border-top: 1px solid rgba(242, 238, 229, 0.22);
  background: #151733;
}

.cart-drawer-footer[hidden] {
  display: none;
}

.cart-drawer-summary-row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  font-size: 17px;
}

.cart-drawer-total-row {
  margin: 16px 0 20px;
  padding-top: 16px;
  border-top: 1px solid rgba(242, 238, 229, 0.2);
  font-size: 22px;
}

.cart-drawer-checkout,
.cart-drawer-continue {
  display: flex;
  width: 100%;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 999px;
  font-size: 18px;
  font-weight: 600;
  text-decoration: none;
}

.cart-drawer-checkout {
  border: 1px solid var(--copper);
  background: var(--copper);
  color: var(--black);
}

.cart-drawer-continue {
  margin-top: 10px;
  border: 1px solid rgba(242, 238, 229, 0.34);
  background: transparent;
  color: var(--bone);
  cursor: pointer;
}

.breadcrumbs {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.quick-links-rail {
  position: fixed;
  right: 20px;
  bottom: 24px;
  z-index: 5;
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  transition: opacity 0.2s;
}

.quick-links-rail.is-hidden {
  opacity: 0;
  pointer-events: none;
}

.quick-links-toggle,
.quick-links-rail a {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--black);
  border: 1px solid var(--line);
  color: var(--bone);
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s, transform 0.2s;
}

.quick-links-toggle {
  width: calc(59px * var(--scale-quick-links));
  height: calc(59px * var(--scale-quick-links));
  border-color: var(--copper);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}

.quick-links-rail a:hover {
  transform: translateX(-3px);
}

.quick-links-toggle:hover,
.quick-links-rail.is-open .quick-links-toggle {
  border-color: var(--copper);
  color: var(--copper);
}

.quick-links-toggle svg {
  width: calc(27px * var(--scale-quick-links));
  height: calc(27px * var(--scale-quick-links));
  transition: transform 0.25s;
}

.quick-links-rail.is-open .quick-links-toggle svg {
  transform: rotate(45deg);
}

.quick-links-menu {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  margin-bottom: 0;
  transition: max-height 0.25s ease, opacity 0.2s ease, margin-bottom 0.25s ease;
}

.quick-links-rail.is-open .quick-links-menu {
  max-height: 220px;
  opacity: 1;
  pointer-events: auto;
  margin-bottom: 10px;
}

.quick-links-toggle svg,
.quick-links-rail svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.quick-links-rail a svg {
  width: 19px;
  height: 19px;
}

@media (max-width: 620px) {
  .quick-links-rail {
    right: 12px;
    bottom: 16px;
  }
  .quick-links-rail a {
    width: 36px;
    height: 36px;
  }
  .quick-links-toggle {
    width: calc(50px * var(--scale-quick-links));
    height: calc(50px * var(--scale-quick-links));
  }
  .quick-links-rail a svg {
    width: 16px;
    height: 16px;
  }
  .quick-links-toggle svg {
    width: calc(22px * var(--scale-quick-links));
    height: calc(22px * var(--scale-quick-links));
  }
}

@media (max-width: 1320px) {
  .main-nav {
    display: none;
    position: fixed;
    z-index: 10;
    top: 82px;
    right: 0;
    left: 0;
    bottom: 0;
    height: calc(100dvh - 82px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    flex-direction: column;
    align-items: flex-start;
    /* The desktop rule sets justify-content: flex-end to push the nav to the
       right edge of the header. Once flex-direction becomes column here, that
       same value pushes content to the BOTTOM instead - so when an open
       dropdown makes the list taller than the viewport, the overflow spills
       past the TOP edge, where it is unreachable by scrolling. That is what
       made the menu appear to jump upward. Reset it for the column layout. */
    justify-content: flex-start;
    gap: 26px;
    padding: 34px;
    padding-bottom: max(34px, env(safe-area-inset-bottom));
    background: var(--black);
    font-size: 28px;
  }

  .main-nav.open {
    display: flex;
  }

  body.nav-open-lock {
    overflow: hidden;
  }

  .main-nav a::after {
    display: none;
  }

  .nav-item.has-dropdown {
    display: flex;
    flex-direction: column;
    width: 100%;
  }

  .nav-item-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
  }

  .nav-dropdown-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--dim);
    cursor: pointer;
  }

  .nav-dropdown-toggle svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform 0.2s;
  }

  .nav-dropdown-toggle[aria-expanded="true"] svg {
    transform: rotate(180deg);
  }

  .nav-dropdown {
    display: none;
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    margin: 0;
    padding: 0;
    border: 0;
    border-right: 1px solid var(--line);
    background: transparent;
    flex-direction: column;
    gap: 12px;
  }

  .nav-dropdown.open {
    display: flex;
    margin-top: 16px;
  }

  .nav-dropdown a {
    padding: 0;
    padding-right: 18px;
    font-size: 24px;
    color: var(--dim);
  }

  .nav-toggle {
    grid-column: 1;
    justify-self: start;
    width: 30px;
    height: 22px;
    padding: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    border: 0;
    background: transparent;
    cursor: pointer;
  }

  .nav-toggle span {
    display: block;
    height: 1px;
    background: var(--bone);
    transition: transform 0.25s, opacity 0.25s;
  }

  .nav-toggle[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(10.5px) rotate(45deg);
  }

  .nav-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
  }

  .nav-toggle[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-10.5px) rotate(-45deg);
  }

  .site-header {
    height: 62px;
    padding: 0 20px;
  }

  .brand {
    width: 42px;
    height: 52px;
  }

  .brand img {
    width: 36px;
    height: 43px;
  }

  .main-nav {
    top: 62px;
    width: 100vw;
    height: calc(100dvh - 62px);
    padding: 30px 24px max(30px, env(safe-area-inset-bottom));
    align-items: stretch;
    justify-self: stretch;
    text-align: right;
    direction: rtl;
  }

  .main-nav a {
    width: 100%;
    text-align: right;
  }

  .nav-item-row a {
    width: auto;
    flex: 1;
  }

  .nav-toggle {
    grid-column: 3;
    justify-self: end;
  }

  .header-actions {
    grid-column: 1;
    justify-self: start;
    gap: 12px;
  }

  .header-tagline {
    display: none;
  }

  .header-search-panel {
    inset: 62px 0 0;
    padding: 18px;
  }

  .header-search-inner {
    max-height: calc(100dvh - 98px);
    padding: 22px;
  }
}

/* English (LTR) header/nav mirror — swaps nav to the left and
   icons/cart to the right, and un-reverses everything the RTL rules
   above hardcode, so English reads as a genuine LTR layout instead of
   an RTL layout with re-ordered text. */
html[dir="ltr"] .main-nav {
  grid-column: 1;
  justify-self: start;
  justify-content: flex-start;
  direction: ltr;
}

html[dir="ltr"] .header-actions {
  grid-column: 3;
  justify-self: end;
}

html[dir="ltr"] .main-nav a::after {
  left: 0;
  right: 100%;
  transition: right 0.25s;
}

html[dir="ltr"] .main-nav a:hover::after,
html[dir="ltr"] .main-nav a.active::after {
  left: 0;
  right: 0;
}

html[dir="ltr"] .nav-dropdown {
  right: auto;
  left: 0;
}

html[dir="ltr"] .header-search-field input {
  text-align: left;
  direction: ltr;
}

html[dir="ltr"] .header-cart .js-cart-count {
  left: auto;
  right: -10px;
}

@media (max-width: 1320px) {
  html[dir="ltr"] .main-nav {
    text-align: left;
    direction: ltr;
  }

  html[dir="ltr"] .main-nav a {
    text-align: left;
  }

  html[dir="ltr"] .nav-dropdown {
    border-right: 0;
    border-left: 1px solid var(--line);
  }

  html[dir="ltr"] .nav-dropdown a {
    padding-right: 0;
    padding-left: 18px;
  }

  html[dir="ltr"] .nav-toggle {
    grid-column: 1;
    justify-self: start;
  }

  html[dir="ltr"] .header-actions {
    grid-column: 3;
    justify-self: end;
  }
}

/* English (LTR) product gallery mirror — the thumbnail rail is the first
   DOM child, so under the RTL rule above it lands on the physical right;
   for English it needs to sit on the left, in front of the main image,
   matching left-to-right reading order. */
html[dir="ltr"] .artwork-gallery {
  direction: ltr;
}

/* English (LTR) directional-arrow mirror — "back" links use → and
   "forward/continue" links use ← throughout the site, correct for
   Hebrew's right-to-left reading flow but backwards for English. Every
   such glyph carries this class, so a single mirror fixes all of them
   instead of hand-picking a translated character per occurrence. */
html[dir="ltr"] .dir-arrow {
  display: inline-block;
  transform: scaleX(-1);
}

/* Hero / artist opening */
.artist-opening {
  background: var(--black);
  padding: clamp(64px, 10vh, 96px) max(74px, calc((100vw - 1280px) / 2)) clamp(56px, 10vh, 88px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  text-align: center;
}

.artist-opening-art {
  position: relative;
  width: min(76vw, 800px);
  aspect-ratio: 2 / 1;
  margin: 0;
  overflow: hidden;
  border: 1px solid #595550;
  background: #111;
}

.artist-opening-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 48%;
  filter: saturate(0.9) contrast(1.02);
}

.artist-opening-copy {
  width: min(100%, 820px);
  margin: 28px auto 0;
  padding: 0 24px;
  text-align: center;
}

.artist-opening-copy h1 {
  margin: 0 auto 18px;
  color: #e3ddd5;
  font-family: var(--display);
  font-size: calc(clamp(28px, 8vw, 48px) * var(--scale-heading));
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.015em;
  text-wrap: balance;
}

.artist-opening-lead {
  max-width: 760px;
  margin: 12px auto 0;
  color: #e3ddd5;
  font-family: var(--display);
  font-size: calc(clamp(24px, 2.4vw, 30px) * var(--scale-subheading));
  font-weight: 500;
  line-height: 1.5;
}

.opening-assurance {
  width: min(100%, 720px);
  margin: 18px auto 0;
}

.opening-assurance p {
  margin: 0 auto;
  color: #c5bfb7;
  font-family: var(--display);
  font-size: calc(clamp(19px, 1.9vw, 22px) * var(--scale-subheading));
  font-weight: 600;
  line-height: 1.45;
}

.opening-assurance p + p {
  margin-top: 8px;
}

.artist-opening-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-top: 28px;
}

.artist-opening-about {
  color: var(--bone);
}

/* Home gates */
.home-gates {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  width: min(100% - 48px, 1780px);
  margin: 0 auto;
  padding: 72px 0 82px;
  background: transparent;
}

@media (min-width: 481px) {
  .home-gates {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 921px) {
  .home-gates {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.home-gate-card {
  position: relative;
  display: block;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: var(--radius);
}

@media (min-width: 921px) {
  .home-gate-card {
    aspect-ratio: 1 / 1;
  }
}

.home-gate-image {
  position: absolute;
  inset: 0;
}

.home-gate-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.home-gate-card:hover .home-gate-image img {
  transform: scale(1.05);
}

.home-gate-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(4, 5, 24, 0.38);
}

.home-gate-copy {
  position: absolute;
  inset: 0;
  padding: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-align: center;
}

.home-gate-copy strong {
  color: var(--bone);
  font: 600 clamp(26px, 7.5vw, 46px) / 1.15 var(--display);
}

.home-gate-cta {
  max-width: 100%;
  padding: 16px 20px;
  border-radius: var(--radius);
  background: var(--copper);
  color: #111;
  font: 600 clamp(16px, 4.5vw, 20px)/1.2 var(--sans);
  text-align: center;
  transition: transform 180ms ease, background-color 180ms ease;
}

@media (min-width: 481px) {
  .home-gate-copy {
    padding: 24px;
    gap: 18px;
  }

  .home-gate-cta {
    padding: 13px 22px;
  }
}

.home-gate-card:hover .home-gate-cta,
.home-gate-card:focus-visible .home-gate-cta {
  transform: translateY(-2px);
  background: var(--bone);
}

.home-journeys {
  padding-top: 32px;
  background: var(--black);
}

.home-gallery-heading {
  margin: 0 auto 42px;
  text-align: center;
}

.home-gallery-heading h2 {
  margin: 0;
  color: var(--bone);
  font-size: calc(clamp(30px, 3.6vw, 48px) * var(--scale-heading));
  font-weight: 500;
}

/* Gallery */
.home-gallery {
  background: var(--black);
  padding: 28px 74px 82px;
}

.home-art-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3px;
  align-items: start;
  max-width: 1280px;
  margin: 0 auto;
}

@media (min-width: 921px) {
  .home-art-grid {
    grid-template-columns: repeat(3, minmax(0, 372px));
    justify-content: center;
    gap: 34px;
  }
}

.gallery-item {
  margin: 0;
  min-width: 0;
}

.gallery-link {
  display: block;
}

.gallery-frame {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: var(--black);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  aspect-ratio: 1;
  transition: transform 0.35s, border-color 0.35s;
}

.gallery-link:hover .gallery-frame {
  transform: translateY(-6px);
}

.gallery-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gallery-item figcaption {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  height: 26px;
  padding: 2px 6px 0;
}

.gallery-item figcaption strong {
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  text-align: center;
  direction: ltr;
  color: #968f86;
  font-family: var(--sans);
  line-height: 1;
  font-size: clamp(14px, 4.2vw, 18px);
  font-weight: 500;
}

/* Footer */
footer {
  margin-inline: 34px;
  padding: 40px 0 54px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  grid-template-areas: "contact contact contact" "meta brand socials" "links links links" "legal legal legal";
  align-items: center;
  row-gap: 26px;
  color: #706b63;
  letter-spacing: 0.1em;
  font-size: 13px;
}

.footer-contact {
  grid-area: contact;
  width: 100%;
  max-width: 560px;
  margin: 0 auto 44px;
  padding-bottom: 44px;
  border-bottom: 1px solid var(--line);
  letter-spacing: normal;
}

.footer-contact h2 {
  margin: 0 0 24px;
  color: var(--bone);
  font-size: calc(clamp(24px, 3vw, 30px) * var(--scale-heading));
  font-weight: 500;
  text-align: center;
}

.footer-contact .lead-form {
  grid-template-columns: repeat(2, 1fr);
  padding-top: 0;
  border-top: 0;
}

.footer-contact .lead-submit {
  justify-self: center;
}

.footer-contact .lead-form-success {
  justify-self: center;
  text-align: center;
}

@media (max-width: 560px) {
  .footer-contact .lead-form {
    grid-template-columns: 1fr;
  }
}

.footer-meta {
  grid-area: meta;
  justify-self: start;
}

.footer-brand {
  grid-area: brand;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
}

.footer-brand span {
  color: var(--dim);
  font-family: var(--serif);
  font-size: 16px;
}

.site-socials {
  grid-area: socials;
  justify-self: end;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  direction: ltr;
}

.footer-links {
  grid-area: links;
  justify-self: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 18px;
  max-width: 700px;
  text-align: center;
}

.footer-links a {
  color: var(--bone);
  text-decoration: none;
  letter-spacing: 0.04em;
  font-size: 13px;
  transition: color 0.2s;
}

.footer-links a:hover {
  color: var(--copper);
}

.footer-legal {
  grid-area: legal;
  justify-self: center;
  display: grid;
  row-gap: 8px;
  max-width: 900px;
  margin: 0;
  color: #9a9389;
  letter-spacing: 0.02em;
  font-size: 12px;
  text-align: center;
  text-wrap: balance;
}

.footer-legal p {
  margin: 0;
  line-height: 1.8;
}

.footer-legal-copy {
  color: #8a8378;
}

/* Legal strip for pages built on base-bare.njk (product pages) */
.bare-footer {
  display: grid;
  grid-template-areas: "legal";
  margin-inline: 34px;
  padding: 38px 0 48px;
  border-top: 1px solid var(--line);
  color: #706b63;
  letter-spacing: 0.1em;
  font-size: 13px;
}

@media (max-width: 620px) {
  .bare-footer {
    margin-inline: 20px;
    padding: 28px 0 36px;
  }
}

.footer-legal a {
  color: #b5ada2;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.site-socials a {
  width: 39px;
  height: 39px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--dim);
  transition: border-color 0.2s, color 0.2s, transform 0.2s;
}

.site-socials a:hover {
  border-color: var(--copper);
  color: var(--copper);
  transform: translateY(-2px);
}

.site-socials svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.site-socials a:nth-child(3) svg {
  fill: currentColor;
  stroke: none;
}

@media (max-width: 620px) {
  footer {
    grid-template-columns: 1fr;
    grid-template-areas: "contact" "socials" "brand" "meta" "links" "legal";
    gap: 18px;
    padding: 30px 0;
    text-align: center;
  }
  .footer-meta,
  .site-socials {
    justify-self: center;
  }
}

/* Artwork detail page */
.artwork-detail {
  padding: 30px max(74px, calc(50vw - 640px)) 92px;
  border-bottom: 1px solid var(--line);
}

.artwork-utility {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 34px;
}

.artwork-back {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border: 0;
  background: transparent;
  color: var(--bone);
  font: 600 var(--utility-size) / 1.3 var(--sans);
  cursor: pointer;
}

.artwork-detail-grid {
  display: flex;
  flex-direction: column;
  gap: 48px;
}

.artwork-stage {
  position: relative;
  width: min(100%, 1180px);
  min-height: 360px;
  max-height: 80svh;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--black);
  overflow: hidden;
}

.artwork-stage img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 80svh;
  object-fit: contain;
}

.artwork-gallery {
  width: min(100%, 1180px);
  margin: 0 auto;
  display: flex;
  flex-direction: row;
  direction: rtl;
  align-items: flex-start;
  gap: 14px;
}

.artwork-gallery .artwork-stage {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  min-height: 0;
  max-height: none;
  aspect-ratio: 1;
  margin: 0;
  padding: 0;
  border-radius: 10px;
  background: #fff;
}

.artwork-gallery .artwork-stage img {
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: contain;
  border-radius: 10px;
}

.artwork-gallery .js-product-gallery-main[data-zoom-enabled="false"] {
  object-fit: cover;
}

.artwork-gallery .artwork-zoom-frame {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.artwork-gallery .artwork-zoom-frame img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
}

.artwork-gallery .artwork-zoom-frame .js-product-gallery-main[data-zoom-enabled="false"] {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
}

.artwork-gallery .js-product-gallery-main[data-zoom-enabled="true"] {
  width: auto;
  height: auto;
  max-width: calc(100% - 64px);
  max-height: calc(100% - 64px);
  border-radius: 0;
}

.artwork-gallery.is-lightbox-enabled .artwork-stage {
  cursor: zoom-in;
}

.artwork-thumbnails {
  flex: 0 0 64px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  overflow: visible;
  padding: 0;
  direction: ltr;
}

.artwork-thumbnail {
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
  cursor: pointer;
  transition: opacity 0.2s, box-shadow 0.2s, transform 0.2s;
}

.artwork-thumbnail:hover {
  opacity: 1;
  transform: translateX(-2px);
}

.artwork-thumbnail.is-active {
  opacity: 1;
  box-shadow: none;
}

.artwork-thumbnail:not(.is-active) {
  opacity: 0.78;
}

.artwork-thumbnail img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  border-radius: 8px;
  background: #fff;
}

.artwork-thumbnail:not([data-zoom="true"]) img {
  object-fit: cover;
}

.artwork-thumbnail[data-zoom="true"] {
  padding: 6px;
}

.artwork-thumbnail[data-zoom="true"] img {
  border-radius: 0;
}

.product-lightbox {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: none;
  flex-direction: column;
  background: rgba(9, 10, 38, 0.98);
}

.product-lightbox.is-open {
  display: flex;
}

body.product-lightbox-lock {
  overflow: hidden;
}

.product-lightbox-head {
  position: relative;
  z-index: 2;
  flex: 0 0 92px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  direction: ltr;
}

.product-lightbox-count {
  color: var(--copper);
  font-size: 22px;
}

.product-lightbox-toolbar {
  display: flex;
  gap: 12px;
}

.product-lightbox-stage {
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: auto;
  padding: 0 24px 28px;
}

.product-lightbox-image {
  display: block;
  max-width: 100%;
  max-height: calc(100dvh - 120px);
  object-fit: contain;
  transition: transform 0.25s ease;
}

.product-lightbox.is-open:not(.is-zoomed) .product-lightbox-image {
  animation: product-lightbox-enter 0.25s ease both;
}

.product-lightbox.is-zoomed .product-lightbox-stage {
  align-items: flex-start;
  justify-content: flex-start;
}

.product-lightbox.is-zoomed .product-lightbox-image {
  width: 160vw;
  max-width: none;
  max-height: none;
  margin: auto;
  cursor: zoom-out;
}

@keyframes product-lightbox-enter {
  from {
    opacity: 0;
    transform: scale(0.96);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.product-lightbox-zoom,
.product-lightbox-close {
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--copper);
  color: var(--black);
  cursor: pointer;
}

.product-lightbox-close {
  font: 400 28px/1 var(--sans);
}

.product-lightbox-zoom svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
}

.product-lightbox-zoom[aria-pressed="true"] {
  background: var(--bone);
}

@media (max-width: 620px) {
  .artwork-gallery .artwork-stage {
    cursor: zoom-in;
  }

  .product-lightbox-head {
    flex-basis: 82px;
    padding: 14px 16px;
  }

  .product-lightbox-stage {
    padding: 0 0 24px;
  }

  .product-lightbox-image {
    width: 100%;
    max-height: calc(100dvh - 106px);
  }

  .artwork-gallery {
    flex-direction: column;
    gap: 12px;
  }

  .artwork-gallery .artwork-stage {
    order: 1;
    width: 100%;
  }

  .artwork-thumbnails {
    order: 2;
    width: 100%;
    max-height: none;
    flex: 0 0 auto;
    flex-direction: row;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 6px;
    scrollbar-width: none;
  }

  .artwork-thumbnails::-webkit-scrollbar {
    display: none;
  }

  .artwork-thumbnail:hover {
    transform: translateY(-2px);
  }
}

.artwork-zoom-frame {
  position: relative;
  display: inline-block;
  overflow: hidden;
  line-height: 0;
}

.artwork-zoom-frame img {
  transition: filter 0.15s ease;
}

.artwork-zoom-frame.is-zooming img {
  filter: brightness(1.15);
}

.artwork-zoom-lens {
  position: absolute;
  border-radius: 50%;
  border: 1.5px solid var(--bone);
  background-repeat: no-repeat;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s ease;
  z-index: 5;
}

.artwork-zoom-lens.is-active {
  opacity: 1;
}

.artwork-detail-copy {
  width: min(100%, 860px);
  margin: 48px auto 0;
  text-align: center;
}

.artwork-detail-copy h1 {
  margin: 0;
  font-size: calc(clamp(54px, 7vw, 96px) * var(--scale-heading));
  font-weight: 700;
  line-height: 0.95;
}

/* Apparel names are descriptive labels ("Seed Of Joy" - חולצה רקומה),
   several times longer than an artwork title like "Orin" that the size
   above was set for - at that scale they wrapped across lines and
   dominated the page. */
.artwork-detail-copy h1.product-title-label {
  font-size: calc(clamp(22px, 2.2vw, 28px) * var(--scale-heading));
  line-height: 1.25;
}

.original-price {
  margin: 28px 0 18px;
  color: var(--bone);
  font-size: 26px;
  font-weight: 600;
}

.original-price-sold-out {
  color: var(--dim);
}

.original-purchase-block {
  width: min(100%, 480px);
  margin: 0 auto;
}

.original-purchase-block .cta {
  display: flex;
  width: 100%;
  margin-top: 0;
}

.special-options {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 20px 0;
}

.special-option-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px;
  border: 1px solid var(--copper);
  border-radius: 8px;
  background: rgba(207, 152, 67, 0.08);
  color: var(--copper);
  font-size: 19px;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.2s;
}

.special-option-link:hover {
  background: rgba(207, 152, 67, 0.16);
}

.special-option-link:nth-child(2) {
  border-color: var(--teal);
  background: rgba(26, 155, 176, 0.08);
  color: var(--teal);
}

.special-option-link:nth-child(2):hover {
  background: rgba(26, 155, 176, 0.16);
}

@media (min-width: 921px) {
  .artwork-detail-grid {
    flex-direction: row;
    align-items: flex-start;
    gap: 56px;
  }

  .artwork-detail-grid .artwork-stage {
    flex: 1 1 55%;
    width: auto;
    margin: 0;
  }

  .artwork-detail-grid .artwork-gallery {
    flex: 1 1 58%;
    width: auto;
    margin: 0;
  }

  .artwork-detail-grid .artwork-gallery .artwork-stage {
    width: auto;
  }

  .artwork-detail-grid .artwork-detail-copy {
    flex: 1 1 42%;
    width: auto;
    max-width: none;
    margin: 0;
    text-align: right;
    position: sticky;
    top: 32px;
  }

  .artwork-detail-grid .artwork-detail-copy h1 {
    font-size: calc(clamp(36px, 3.6vw, 60px) * var(--scale-heading));
  }

  .artwork-detail-grid .artwork-detail-copy h1.product-title-label {
    font-size: calc(clamp(22px, 2.2vw, 28px) * var(--scale-heading));
  }

  .artwork-detail-grid .print-order {
    margin: 32px 0 0;
    width: 100%;
    max-width: 480px;
  }

  .artwork-detail-grid .original-purchase-block {
    margin: 28px 0 0;
    width: 100%;
    max-width: 480px;
  }
}

.print-order {
  width: min(100%, 560px);
  margin: 38px auto 0;
  padding: 0;
  border: 0;
  background: none;
  text-align: right;
}

.print-order-startprice {
  margin: 0 0 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
  color: var(--bone);
  font-size: 22px;
  font-weight: 500;
}

.print-order-startprice span {
  color: var(--copper);
  font-weight: 700;
}

.print-order-kicker {
  margin: 0;
  color: var(--teal);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.035em;
}

.print-order-quality-heading {
  margin: 0 0 14px;
  color: var(--bone);
  font-size: 24px;
  font-weight: 600;
}

.print-order-head {
  margin-bottom: 4px;
}

.print-order-heading-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.print-order-heading-row .print-order-quality-heading {
  margin-bottom: 0;
}

.print-order-footrow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
}

.currency-toggle-mini {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.currency-toggle-mini .js-currency-toggle {
  padding: 6px 13px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--dim);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}

.currency-toggle-mini .js-currency-toggle.active {
  background: var(--copper);
  color: var(--black);
  font-weight: 700;
}

.currency-toggle-mini span {
  color: var(--dim);
  font-size: 12px;
}

.print-order-field {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}

.print-order-field-label {
  flex-shrink: 0;
  color: var(--bone);
  font-size: 15px;
  font-weight: 700;
}

.js-size-select {
  flex: 1;
  min-width: 0;
  min-height: 56px;
  padding: 0 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--black);
  color: var(--bone);
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 500;
}

.print-order .js-add-to-cart {
  margin: 16px 0 0;
  min-height: 58px;
  width: 100%;
  border-radius: 10px;
  font-size: 18px;
  font-weight: 700;
}

.print-order .js-add-to-cart:disabled {
  opacity: 0.42;
  cursor: not-allowed;
}

.print-order-price {
  margin: 0;
  color: var(--bone);
  font-size: 18px;
  font-weight: 600;
}

.print-order-price .js-live-price {
  color: var(--copper);
}

.print-order-selects {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  margin-top: 14px;
}

.print-order-selects[hidden] {
  display: none;
}

.print-order-selects .print-order-field {
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  margin-bottom: 0;
}

.print-order-selects .print-order-field-label {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.js-style-select {
  min-height: 56px;
  padding: 0 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--black);
  color: var(--bone);
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 500;
}

.js-size-select:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.print-order-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.option-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--black);
  color: var(--bone);
  text-align: right;
  text-decoration: none;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
}

.option-card:hover {
  border-color: var(--dim);
}

.option-card.is-active {
  border-color: var(--bone);
  background: rgba(232, 226, 215, 0.08);
}

.option-card.is-active::after,
.option-card.is-multi-selected::after {
  content: "✓";
  position: absolute;
  top: 6px;
  left: 6px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--bone);
  color: var(--black);
  font-size: 10px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
}

.print-order-cards.is-multiselect .option-card.is-multi-selected {
  border-color: var(--copper);
  background: rgba(207, 152, 67, 0.12);
}

.print-order-cards.is-multiselect .option-card.is-multi-selected::after {
  background: var(--copper);
}

.option-card-image {
  flex-shrink: 0;
  width: 90px;
  height: 90px;
  border-radius: 6px;
  object-fit: cover;
  background: var(--line);
}

.option-card-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}

.option-card-label {
  display: block;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  overflow-wrap: break-word;
}

.option-card-meta {
  display: block;
  color: var(--dim);
  font-size: 11px;
  line-height: 1.2;
  overflow-wrap: break-word;
}

.option-card-price {
  display: block;
  margin-top: 3px;
  color: var(--copper);
  font-size: 16px;
  font-weight: 700;
}

.print-order-clear {
  display: block;
  flex-shrink: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--bone);
  font-size: 15px;
  font-weight: 400;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.print-order-clear:hover {
  color: var(--copper);
}

.print-order-clear[hidden] {
  display: none;
}

.print-order-multiselect {
  display: block;
  flex-shrink: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--dim);
  font-size: 15px;
  font-weight: 400;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.print-order-multiselect:hover {
  color: var(--copper);
}

.print-order-multiselect.is-active {
  color: var(--copper);
  font-weight: 700;
}

.print-order-multiselect[hidden] {
  display: none;
}

.print-order-multiselect-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(232, 226, 215, 0.05);
}

.print-order-multiselect-summary[hidden] {
  display: none;
}

.print-order-multiselect-count {
  margin: 0;
  color: var(--bone);
  font-size: 15px;
  font-weight: 600;
}

.print-order-multiselect-summary .js-add-all-to-cart {
  margin: 0;
  min-height: 48px;
  padding: 0 20px;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 700;
}

.print-order-multiselect-summary .js-add-all-to-cart:disabled {
  opacity: 0.42;
  cursor: not-allowed;
}

.print-order-qty-field {
  margin-top: 12px;
  justify-content: space-between;
}

.print-order-qty-field .print-order-field-label {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.qty-stepper {
  display: flex;
  align-items: center;
  gap: 4px;
  border: 1px solid var(--line);
  border-radius: 10px;
}

.qty-stepper button {
  width: 40px;
  height: 40px;
  border: 0;
  background: transparent;
  color: var(--bone);
  font-size: 18px;
  cursor: pointer;
  transition: color 0.2s;
}

.qty-stepper button:hover {
  color: var(--copper);
}

.qty-stepper .js-order-qty {
  min-width: 32px;
  text-align: center;
  color: var(--bone);
  font-size: 16px;
  font-weight: 600;
}

.print-order .cta-outline {
  margin: 10px 0 0;
  min-height: 48px;
  width: 100%;
  border-radius: 10px;
  font-size: 15px;
}

.print-order-details {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.print-order-details summary {
  cursor: pointer;
  list-style: none;
  color: var(--bone);
  font-size: 14px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.print-order-details summary::-webkit-details-marker {
  display: none;
}

.print-order-details summary::after {
  content: "+";
  color: var(--copper);
  font-size: 22px;
}

.print-order-details[open] summary::after {
  content: "−";
}

.print-order-details-body {
  padding-top: 14px;
}

.print-order-details-body p {
  margin: 0 0 10px;
  color: var(--bone);
  font-size: 13px;
  line-height: 1.6;
}

.print-order-details-body a {
  color: var(--teal);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.print-quality {
  padding: 78px max(74px, calc(50vw - 640px)) 100px;
  border-top: 1px solid var(--line);
}

.print-quality-block {
  padding: 40px 0;
  border-bottom: 1px solid var(--line);
}

.print-quality-block:first-child {
  padding-top: 0;
}

.print-quality-block:last-child {
  border-bottom: 0;
}

.print-quality-limited {
  position: relative;
}

.print-quality-limited h2 {
  color: var(--copper);
}

.print-quality-block h2 {
  margin: 0 0 14px;
  font-size: calc(clamp(24px, 2.4vw, 32px) * var(--scale-heading));
  font-weight: 500;
}

.print-quality-block p {
  margin: 0 0 18px;
  max-width: 720px;
  color: var(--dim);
  line-height: 1.75;
  white-space: pre-line;
}

.print-quality-block ul {
  margin: 0 0 18px;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
  max-width: 640px;
}

.print-quality-block li {
  position: relative;
  padding-right: 24px;
  color: var(--bone);
  font-size: 15px;
  line-height: 1.5;
}

.print-quality-block li::before {
  content: "◈";
  position: absolute;
  right: 0;
  color: var(--teal);
  font-size: 13px;
}

.print-quality-browse {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--teal);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.print-quality-price {
  margin: 0 0 18px !important;
  color: var(--bone);
  font-size: 20px;
  font-weight: 700;
}

.print-quality-video {
  width: 100%;
  max-width: 640px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--black);
}

.print-quality-video-caption {
  margin: 10px 0 0 !important;
  color: var(--dim);
  font-size: 13px;
}

.print-order-note {
  margin: 16px 0 0;
  color: #c9c2b8;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.6;
}

.artwork-share {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  margin-top: 14px;
  padding: 12px 0;
  border: 0;
  background: transparent;
  color: var(--dim);
  font: 600 var(--utility-size) / 1.3 var(--sans);
  cursor: pointer;
  transition: color 0.2s;
}

.artwork-share:hover {
  color: var(--bone);
}

.js-original-sold-out {
  opacity: 0.6;
}

.sold-out-modal {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(9, 9, 9, 0.72);
}

.sold-out-modal[hidden] {
  display: none;
}

.sold-out-modal-box {
  width: min(100%, 360px);
  padding: 32px 26px;
  background: var(--black);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  text-align: center;
}

.sold-out-modal-title {
  margin: 0 0 10px;
  color: var(--bone);
  font-size: 17px;
  font-weight: 600;
}

.sold-out-modal-text {
  margin: 0 0 22px;
  color: var(--dim);
  font-size: 14px;
  line-height: 1.6;
}

.artwork-purchase-original-note {
  max-width: 480px;
  margin: 0 auto 26px;
  color: var(--bone);
  font-size: 15px;
  line-height: 1.7;
}

.artwork-purchase {
  width: min(100%, 640px);
  margin: 70px auto 0;
  padding-top: 54px;
  border-top: 1px solid var(--line);
  text-align: center;
}

.artwork-purchase .section-label {
  justify-content: center;
  margin-bottom: 20px;
}

.artwork-purchase h2 {
  margin: 0 0 16px;
  font-size: calc(clamp(28px, 3vw, 38px) * var(--scale-heading));
  font-weight: 500;
}

.artwork-purchase-lead {
  margin: 0 0 34px;
  color: var(--dim);
  font-size: 16px;
  line-height: 1.8;
}

.artwork-purchase-features {
  display: grid;
  gap: 8px;
  max-width: 420px;
  margin: -14px auto 34px;
  padding: 0;
  list-style: none;
}

.artwork-purchase-features li {
  color: var(--bone);
  font-size: 14px;
  line-height: 1.5;
}

.artwork-purchase-bank {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 16px;
  margin: 0 0 34px;
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  text-align: right;
}

.artwork-purchase-bank dt {
  margin: 0 0 4px;
  color: var(--dim);
  font-size: 13px;
}

.artwork-purchase-bank dd {
  margin: 0;
  color: var(--bone);
  font-size: 17px;
  font-weight: 500;
}

.artwork-purchase-note {
  max-width: 480px;
  margin: 18px auto 0;
  color: #6f6a63;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.7;
}

@media (max-width: 560px) {
  .artwork-purchase-bank {
    grid-template-columns: 1fr;
    text-align: center;
  }
}

/* Artwork "more" section */
.artwork-more {
  padding: 78px max(74px, calc(50vw - 640px)) 100px;
  background: var(--black);
}

.artwork-more-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 34px;
}

.artwork-more-head > a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  color: var(--bone);
  font: 600 var(--utility-size) / 1.3 var(--sans);
}

.artwork-more-label {
  color: var(--dim);
  font: 600 14px/1.3 var(--sans);
}

.artwork-sequence {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #6f6961;
}

.artwork-sequence a {
  color: var(--bone);
  font: 600 var(--utility-size) / 1.3 var(--sans);
}

.artwork-more-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

@media (min-width: 921px) {
  .artwork-more-grid {
    grid-template-columns: repeat(3, minmax(0, 372px));
    justify-content: center;
    gap: 18px;
  }
}

.more-artwork-card {
  min-width: 0;
}

.more-artwork-image {
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--black);
  transition: border-color 0.25s, transform 0.3s;
}

.more-artwork-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.more-artwork-card:hover .more-artwork-image {
  transform: translateY(-4px);
}

.more-artwork-caption {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 12px;
  padding: 12px 2px 0;
  direction: ltr;
  color: var(--bone);
}

.more-artwork-caption strong {
  font-size: 18px;
  font-weight: 500;
}

.more-artwork-caption small {
  font-size: 12px;
  font-weight: 500;
  color: #837c72;
}

.more-artwork-caption i {
  font-style: normal;
  color: var(--copper);
}

/* Shared inner-page section */
.section {
  padding: 120px max(74px, calc(50vw - 640px));
  border-bottom: 1px solid var(--line);
}

.thank-you {
  width: 100%;
  min-height: calc(100svh - 80px);
  padding-block: clamp(96px, 12vw, 160px);
  display: grid;
  place-items: center;
  text-align: center;
  border-bottom: 0;
}

.thank-you-inner {
  width: min(100%, 760px);
  margin: 0 auto;
}

.notfound-lang-divider {
  margin-top: 48px;
  padding-top: 40px;
  border-top: 1px solid var(--line);
}

.notfound-lang-divider h2 {
  font: 600 clamp(20px, 3vw, 26px)/1.3 var(--display);
  color: var(--bone);
  margin-bottom: 10px;
}

.thank-you-mark {
  width: 72px;
  height: 72px;
  margin: 0 auto 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--copper);
  border-radius: 50%;
  color: var(--copper);
}

.thank-you-mark svg {
  width: 34px;
  height: 34px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.thank-you h1 {
  margin: 0 0 24px;
  color: var(--bone);
  font-size: calc(clamp(44px, 6vw, 72px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1.08;
  text-wrap: balance;
}

.thank-you-lead {
  max-width: 650px;
  margin: 0 auto 16px;
  color: var(--bone);
  font-size: calc(clamp(18px, 2vw, 22px) * var(--scale-subheading));
  line-height: 1.65;
  text-wrap: pretty;
}

.thank-you-note {
  max-width: 580px;
  margin: 0 auto;
  color: var(--dim);
  font-size: 16px;
  line-height: 1.65;
  text-wrap: pretty;
}

.thank-you-actions {
  margin-top: 42px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
}

.thank-you-actions .cta {
  min-width: 250px;
  margin-top: 0;
}

@media (max-width: 600px) {
  .thank-you {
    min-height: calc(100svh - 64px);
    padding-block: 88px;
  }

  .thank-you-inner {
    width: 100%;
  }

  .thank-you-mark {
    width: 64px;
    height: 64px;
    margin-bottom: 24px;
  }

  .thank-you h1 {
    margin-bottom: 20px;
    font-size: 42px;
  }

  .thank-you-lead {
    font-size: 18px;
  }

  .thank-you-note {
    font-size: 15px;
  }

  .thank-you-actions {
    margin-top: 34px;
    flex-direction: column;
    align-items: stretch;
  }

  .thank-you-actions .cta {
    width: 100%;
    min-width: 0;
  }
}

.hero-eyebrow {
  margin: 0;
  color: var(--copper);
  font-size: 19px;
  font-weight: 600;
  letter-spacing: 0.035em;
}

.cta {
  margin-top: 34px;
  min-width: 230px;
  min-height: 64px;
  width: fit-content;
  padding: 0 28px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  border: 1px solid var(--copper);
  border-radius: 999px;
  background: var(--copper);
  color: var(--black);
  font-weight: 500;
  font-size: 17px;
  transition: background 0.25s, color 0.25s, transform 0.25s;
}

.cta:hover {
  background: var(--bone);
  border-color: var(--bone);
  transform: translateY(-2px);
}

/* Workshops: main listing page */
.workshop-visual-hero {
  position: relative;
  min-height: 0;
  padding: 132px max(74px, calc(50vw - 640px)) 54px;
  border-bottom: 1px solid var(--line);
  overflow: hidden;
}

.workshop-visual-hero .hero-eyebrow {
  display: block;
  margin-bottom: 24px;
}

.workshop-visual-hero h1 {
  margin: 0 0 20px;
  font-size: calc(clamp(44px, 5vw, 72px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1.08;
}

.workshop-intro-text {
  max-width: 620px;
  margin: 0;
  color: var(--dim);
  font-size: 18px;
  line-height: 1.7;
}

/* Full-bleed looping background video behind the hero text */
.workshop-visual-hero.has-media {
  min-height: var(--hero-video-height, 550px);
  display: flex;
  align-items: flex-end;
  border-bottom: none;
}

.workshop-visual-hero.has-media:not(:has(.workshop-hero-content)) {
  padding-top: 0;
  padding-bottom: 0;
}

.workshop-hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.workshop-hero-media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--hero-video-position, center);
  display: block;
}

.hero-video-toggle {
  position: absolute;
  bottom: 20px;
  inset-inline-end: 20px;
  z-index: 2;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.55);
  color: #fff;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
}

.hero-video-toggle:hover {
  border-color: var(--copper);
  background: rgba(0, 0, 0, 0.55);
}

.hero-video-toggle svg {
  width: 16px;
  height: 16px;
  fill: currentColor;
}

@media (max-width: 768px) {
  .hero-video-toggle {
    display: none;
  }
}

.workshop-hero-media.has-overlay::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(4, 5, 24, 0.18) 0%, rgba(4, 5, 24, 0.82) 100%);
}

.workshop-hero-content {
  position: relative;
  z-index: 1;
  max-width: 720px;
}

.workshop-visual-hero.has-media .hero-eyebrow {
  color: var(--copper);
}

.workshop-visual-hero.has-media h1 {
  color: var(--bone);
}

.workshop-visual-hero.has-media .workshop-intro-text {
  color: rgba(232, 226, 215, 0.82);
}

/* Workshop cards */
.workshop-cards.section {
  padding-top: 20px;
  padding-bottom: 48px;
}

.workshop-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.workshop-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  transition: border-color 0.25s;
}

.workshop-card:hover {
  border-color: var(--copper);
}

.workshop-card-link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.workshop-card-image {
  height: var(--card-image-height, 140px);
  overflow: hidden;
  background: var(--line);
}

.workshop-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  transition: transform 0.3s;
}

.workshop-card:hover .workshop-card-image img {
  transform: scale(1.04);
}

.workshop-card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--card-text-gap, 3px);
  padding: 12px 16px;
}

.workshop-card-label {
  color: var(--copper);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.workshop-card-body h2 {
  margin: 0;
  font-size: calc(clamp(19px, 1.9vw, 23px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1.15;
}

.workshop-card-persona {
  margin: 0;
  color: var(--dim);
  font-size: 14px;
  line-height: 1.5;
}

.workshop-card-cta {
  margin-top: auto;
  min-height: 42px;
  min-width: 0;
  width: 100%;
  padding: 0 20px;
  justify-content: center;
  gap: 10px;
  font-size: 14px;
}

/* Comparison table */
.workshop-compare-title {
  margin-bottom: 36px;
}

.workshop-compare-title h2 {
  margin: 0 0 12px;
  font-size: calc(clamp(32px, 3.6vw, 46px) * var(--scale-heading));
  font-weight: 500;
}

.workshop-compare-title p {
  margin: 0;
  max-width: 620px;
  color: var(--dim);
  font-size: 17px;
  line-height: 1.7;
}

.workshop-compare-table {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.workshop-compare-row {
  display: grid;
  grid-template-columns: 1.1fr 1.3fr 1fr 1fr 24px;
  gap: 18px;
  align-items: center;
  padding: 18px 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: var(--dim);
  font-size: 15px;
  text-decoration: none;
  transition: border-color 0.2s, background 0.2s;
}

.workshop-compare-head {
  border-color: transparent;
  padding: 0 22px;
  color: var(--copper);
  font-size: 17px;
  font-weight: 600;
}

a.workshop-compare-row:hover {
  border-color: var(--copper);
  background: rgba(207, 152, 67, 0.05);
}

.workshop-compare-name {
  color: var(--bone);
  font-size: 17px;
  font-weight: 600;
}

.workshop-compare-arrow {
  color: var(--copper);
  font-size: 22px;
  transition: transform 0.2s;
}

a.workshop-compare-row:hover .workshop-compare-arrow {
  transform: translateX(-4px);
}

/* Testimonials */
.workshop-testimonials h2 {
  margin: 0 0 32px;
  font-size: calc(clamp(28px, 3vw, 38px) * var(--scale-heading));
  font-weight: 500;
}

.workshop-testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.workshop-testimonial {
  display: block;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: inherit;
  text-decoration: none;
  transition: border-color 0.2s;
}

.workshop-testimonial:hover {
  border-color: var(--copper);
}

.workshop-testimonial blockquote {
  margin: 0 0 14px;
  color: var(--bone);
  font-size: 16px;
  line-height: 1.6;
  font-style: italic;
}

.workshop-testimonial span {
  color: var(--dim);
  font-size: 13px;
}

.workshop-overview-contact.section {
  padding-top: 64px;
  padding-bottom: 64px;
}

.workshop-overview-contact {
  min-height: 0;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 80px;
  align-items: end;
}

.workshop-overview-contact-copy h2 {
  margin: 0;
  font-size: calc(clamp(40px, 4vw, 58px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1.1;
}

.workshop-overview-contact-copy p {
  max-width: 520px;
  margin: 16px 0 0;
  color: var(--dim);
  font-size: 17px;
}

@media (max-width: 920px) {
  .workshop-cards-grid,
  .workshop-testimonials-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  /* On touch devices the hover-only copper border never shows, so cards
     read as one connected block. Give them a visible resting border and a
     faint fill instead of relying on :hover for separation. */
  .workshop-card {
    border-color: rgba(232, 226, 215, 0.2);
    background: rgba(232, 226, 215, 0.03);
  }

  .workshop-card-body {
    padding: 16px 18px;
  }

  .workshop-card-label {
    font-size: 20px;
  }

  .workshop-card-body h2 {
    font-size: 28px;
    line-height: 1.2;
  }

  .workshop-card-persona {
    font-size: 18px;
    line-height: 1.6;
  }

  .workshop-card-cta {
    font-size: 18px;
    min-height: 50px;
  }

  .workshop-compare-row {
    grid-template-columns: 1fr;
    gap: 6px;
    text-align: right;
  }

  .workshop-compare-head {
    display: none;
  }

  .workshop-compare-row span:not(.workshop-compare-name):not(:empty)::before {
    content: attr(data-label);
    display: inline-block;
    margin-left: 6px;
    color: var(--copper);
    font-size: 16px;
    font-weight: 600;
  }

  .workshop-compare-arrow {
    display: none;
  }

  .workshop-overview-contact {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}

/* Reviews */
.reviews-section {
  background: #111110;
}

.reviews-heading {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 70px;
  align-items: end;
  margin-bottom: 48px;
}

.reviews-heading h2 {
  margin: 18px 0 0;
  font-size: calc(clamp(48px, 5.7vw, 78px) * var(--scale-heading));
  line-height: 1.08;
  font-weight: 500;
}

.review-summary {
  min-width: 190px;
  padding: 0 0 8px;
  text-align: left;
  direction: ltr;
  color: var(--bone);
}

.review-summary strong {
  font-size: 40px;
  font-weight: 500;
}

.review-summary span {
  display: block;
  color: var(--teal);
  font-size: 20px;
  letter-spacing: 0.07em;
}

.review-summary small {
  display: block;
  margin-top: 4px;
  color: var(--dim);
  font-size: 13px;
}

.reviews-empty-copy {
  max-width: 360px;
  margin: 0;
  color: var(--dim);
  font-size: 15px;
}

.review-card {
  padding: 34px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--black);
  cursor: pointer;
}

.review-card summary {
  list-style: none;
  cursor: pointer;
}

.review-card summary::-webkit-details-marker {
  display: none;
}

.review-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 30px;
}

.review-card-top strong {
  color: var(--bone);
  font-weight: 500;
}

.review-card-top time {
  display: block;
  margin-top: 4px;
  color: var(--dim);
  font-size: 13px;
}

.review-stars {
  color: var(--teal);
  font-size: 21px;
  letter-spacing: 0.07em;
  direction: ltr;
  white-space: nowrap;
}

.review-excerpt {
  display: block;
  max-width: 900px;
  margin-top: 18px;
  color: #c9c2b8;
  font-size: 17px;
  line-height: 1.65;
}

.review-read-more {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 14px;
  color: var(--copper);
  font-size: 17px;
}

.review-card[open] .review-read-more b {
  transform: rotate(45deg);
  display: inline-block;
}

.review-card blockquote {
  max-width: 980px;
  margin: 28px 0 0;
  padding: 0;
  color: #c9c2b8;
  font-family: var(--sans);
  font-size: 18px;
  font-style: normal;
  line-height: 1.9;
}

.review-write-panel {
  margin-top: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #0c0c0b;
}

.review-write-panel summary {
  list-style: none;
  padding: 24px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--bone);
  font-weight: 600;
  font-size: var(--utility-size);
  cursor: pointer;
}

.review-write-panel summary::-webkit-details-marker {
  display: none;
}

.review-write-panel[open] summary span {
  transform: rotate(45deg);
}

.review-write-panel summary span {
  color: var(--copper);
  font-size: 24px;
  transition: transform 0.2s;
}

.review-form-wrap {
  display: grid;
  grid-template-columns: 0.7fr 1.3fr;
  gap: clamp(60px, 9vw, 130px);
  margin: 0 28px 34px;
  padding-top: 34px;
  border-top: 1px solid var(--line);
}

.review-form-intro h2 {
  margin: 18px 0 0;
  font-size: calc(clamp(32px, 3.4vw, 46px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1.1;
}

.review-form-intro p {
  margin-top: 14px;
  color: var(--dim);
  font-size: 15px;
  line-height: 1.6;
}

.review-form {
  display: grid;
  gap: 22px;
}

.review-form label,
.review-rating-field {
  display: flex;
  flex-direction: column;
  gap: 10px;
  color: var(--copper);
  font-size: 19px;
  font-weight: 600;
}

.review-rating-buttons {
  display: flex;
  gap: 5px;
  direction: ltr;
}

.review-rating-buttons button {
  padding: 0;
  border: 0;
  background: transparent;
  color: #4e4943;
  font: 400 34px/1 var(--sans);
  cursor: pointer;
  transition: color 0.2s, transform 0.2s;
}

.review-rating-buttons button.is-active,
.review-rating-buttons button:hover {
  color: var(--copper);
}

.review-form input[type="text"],
.review-form textarea {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid #4a4640;
  border-radius: 0;
  background: var(--black);
  color: var(--bone);
  font: 400 17px/1.6 var(--sans);
  resize: vertical;
}

.review-submit {
  border: 0;
  cursor: pointer;
  font-family: var(--sans);
}

.review-form-status {
  min-height: 26px;
  margin: 0;
  color: var(--copper);
  font-size: 18px;
}

@media (max-width: 780px) {
  .reviews-heading {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .review-form-wrap {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}

/* Single workshop page */
.section-label {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 70px;
  color: var(--copper);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.14em;
}

.daily-workshop-hero {
  padding: 84px max(74px, calc(50vw - 640px)) 70px;
  display: grid;
  grid-template-columns: minmax(360px, 0.82fr) minmax(480px, 1.18fr);
  gap: clamp(48px, 7vw, 100px);
  align-items: start;
  border-bottom: 1px solid var(--line);
}

.daily-workshop-hero.has-energetic-halo {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.daily-workshop-hero.has-energetic-halo .daily-workshop-copy,
.daily-workshop-hero.has-energetic-halo .daily-workshop-hero-image {
  position: relative;
  z-index: 1;
}

.energetic-halo {
  position: absolute;
  inset: -25%;
  background-size: cover;
  background-position: center;
  filter: blur(90px) saturate(1.4);
  opacity: 0.32;
  z-index: 0;
  pointer-events: none;
}

.daily-workshop-hero.has-energetic-halo .daily-workshop-hero-image img {
  object-fit: contain;
  object-position: center;
}

.daily-workshop-copy {
  max-width: 660px;
}

.editorial-link {
  display: flex;
  width: fit-content;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  color: var(--bone);
  font-weight: 600;
  font-size: var(--utility-size);
}

.daily-workshop-copy h1 {
  margin: 24px 0 28px;
  font-size: calc(clamp(38px, 4vw, 56px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1.08;
}

.daily-workshop-lead {
  margin: 0;
  color: var(--dim);
  font-size: 19px;
  line-height: 1.7;
}

.workshop-quick-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 30px;
  border-block: 1px solid var(--line);
}

.workshop-quick-meta span {
  padding: 16px 0;
}

.workshop-quick-meta small,
.workshop-quick-meta strong {
  display: block;
}

.workshop-quick-meta small {
  color: var(--copper);
  font-size: 17px;
  font-weight: 600;
}

.workshop-quick-meta strong {
  margin-top: 5px;
  color: var(--bone);
  font-size: 19px;
  font-weight: 500;
}

.workshop-single-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 28px;
  margin-top: 34px;
}

.workshop-share {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 0;
  border: 0;
  background: transparent;
  color: var(--bone);
  font: 600 var(--utility-size) / 1.3 var(--sans);
  cursor: pointer;
}

.hero-review-peek {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 18px;
  margin-top: 24px;
  padding: 16px 0;
  border-top: 1px solid var(--line);
  color: var(--bone);
}

.hero-review-score {
  min-width: 88px;
  direction: ltr;
  text-align: center;
}

.hero-review-score b {
  display: block;
  font-size: 20px;
  font-weight: 600;
}

.hero-review-score i {
  display: block;
  margin-top: 2px;
  color: var(--teal);
  font-style: normal;
  font-size: 14px;
}

.hero-review-peek small {
  display: block;
  margin-top: 4px;
  color: var(--copper);
  font-size: 17px;
}

.daily-workshop-hero-image {
  height: 610px;
  margin: 0;
  overflow: hidden;
}

.daily-workshop-hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
}

.daily-workshop-story-grid,
.daily-video-grid,
.pricing-layout {
  display: grid;
  grid-template-columns: 0.78fr 1.22fr;
  gap: clamp(55px, 8vw, 120px);
  align-items: start;
}

.daily-workshop-story-grid h2,
.daily-video-grid h2,
.daily-workshop-pricing h2 {
  margin: 0;
  font-size: calc(clamp(42px, 5vw, 64px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1.08;
}

.daily-workshop-body {
  max-width: 700px;
  color: var(--dim);
  font-size: 18px;
  line-height: 1.7;
}

.daily-workshop-body .lead {
  margin: 0 0 20px;
  color: var(--bone);
  font-size: 23px;
  line-height: 1.65;
}

.daily-workshop-body p + p {
  margin-top: 16px;
}

.daily-video-grid video {
  width: 100%;
  background: var(--black);
}

.daily-workshop-video-media {
  aspect-ratio: 16 / 10;
}

.daily-video-grid p {
  margin-top: 16px;
  color: var(--dim);
  font-size: 17px;
  line-height: 1.7;
}

.included-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
}

.included-grid article {
  min-height: 260px;
  padding: 30px 28px;
  border-left: 1px solid var(--line);
}

.included-grid span {
  color: var(--copper);
  font-size: 19px;
  font-weight: 600;
}

.included-grid h3 {
  margin: 40px 0 14px;
  color: var(--bone);
  font-size: 22px;
  font-weight: 500;
  line-height: 1.35;
}

.included-grid p {
  color: var(--dim);
  font-size: 16px;
  line-height: 1.7;
}

.price-cards {
  border-top: 1px solid var(--line);
}

.price-cards article {
  min-height: 92px;
  padding: 20px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  border-bottom: 1px solid var(--line);
}

.price-cards article span {
  color: var(--dim);
  font-size: 17px;
}

.price-cards article strong {
  color: var(--bone);
  font-size: 28px;
  font-weight: 500;
}

/* Booking calendar page */
.booking-hero {
  padding: 40px max(74px, calc(50vw - 640px)) 0;
}

.booking-hero .hero-eyebrow {
  display: block;
  margin: 16px 0 8px;
}

.booking-hero h1 {
  margin: 0;
  max-width: 700px;
  font-size: calc(clamp(28px, 3vw, 38px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1.12;
}

.booking-note {
  margin: 16px 0 0;
  max-width: 640px;
  color: var(--dim);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.7;
}

.booking-note a {
  color: var(--copper);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.booking-summary-meta {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

.booking-flow-section {
  padding: 28px max(74px, calc(50vw - 640px)) 64px;
}

.booking-flow {
  display: flex;
  align-items: stretch;
  border: 2px solid rgba(242, 238, 229, 0.28);
  border-radius: var(--radius);
}

.booking-col {
  flex: 1;
  min-width: 0;
  padding: 20px;
}

.booking-col + .booking-col {
  border-inline-start: 2px solid rgba(242, 238, 229, 0.28);
}

.booking-col-times {
  flex: 0.8;
}

@media (max-width: 820px) {
  .booking-flow {
    flex-direction: column;
  }

  .booking-col + .booking-col {
    border-inline-start: none;
    border-top: 2px solid rgba(242, 238, 229, 0.28);
  }
}

/* On-site booking calendar */
.calendar-timezone {
  margin: 0 0 14px;
  color: var(--dim);
  font-size: 13px;
  font-weight: 500;
}

.calendar-group-size {
  margin-bottom: 14px;
}

.calendar-group-size label {
  display: block;
  margin-bottom: 6px;
  color: var(--copper);
  font-size: 15px;
  font-weight: 600;
}

.calendar-group-size select {
  width: 100%;
  min-height: 42px;
  padding: 8px 14px;
  border: 1px solid #4a4640;
  border-radius: var(--radius);
  background: #151514;
  color: var(--bone);
  font: 400 14px/1.4 var(--sans);
  direction: rtl;
}

.calendar-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.calendar-nav strong {
  color: var(--bone);
  font-size: 16px;
  font-weight: 500;
}

.calendar-nav-btn {
  width: 28px;
  height: 28px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: transparent;
  color: var(--bone);
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
  transition: border-color 0.25s, color 0.25s;
}

.calendar-nav-btn:hover {
  border-color: var(--copper);
  color: var(--copper);
}

.calendar-next-available {
  margin-bottom: 12px;
  padding: 6px 14px;
  border: 1px solid var(--copper);
  border-radius: 999px;
  background: transparent;
  color: var(--copper);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.25s, color 0.25s;
}

.calendar-next-available:hover {
  background: var(--copper);
  color: var(--black);
}

.calendar-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  margin-bottom: 4px;
}

.calendar-weekdays span {
  text-align: center;
  color: var(--dim);
  font-size: 11px;
  font-weight: 500;
}

.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}

.calendar-day {
  position: relative;
  height: 28px;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--dim);
  font-size: 13px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  cursor: default;
}

.calendar-day-empty {
  border: none;
}

.calendar-day.is-disabled {
  color: var(--dim);
  opacity: 0.55;
}

.calendar-day.is-available {
  color: var(--bone);
  font-weight: 700;
  cursor: pointer;
  transition: background 0.25s, color 0.25s;
}

.calendar-day.is-available::after {
  content: "";
  position: absolute;
  bottom: 3px;
  left: 50%;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--copper);
  transform: translateX(-50%);
}

.calendar-day.is-available:hover {
  background: rgba(207, 152, 67, 0.16);
}

.calendar-day.is-selected {
  background: var(--copper);
  color: var(--black);
}

.calendar-day.is-selected::after {
  background: var(--black);
}

.calendar-times-label {
  margin: 0 0 12px;
  color: var(--bone);
  font-size: 14px;
  font-weight: 500;
}

.calendar-times-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}

.calendar-times-show-more {
  display: block;
  margin: 12px 0 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--copper);
  font-size: 14px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.calendar-times-show-more[hidden] {
  display: none;
}

.calendar-time-btn {
  padding: 8px 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: transparent;
  color: var(--bone);
  font-size: 14px;
  font-weight: 500;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.25s, background 0.25s, color 0.25s;
}

.calendar-time-btn:hover {
  border-color: var(--copper);
  color: var(--copper);
}

.calendar-time-btn.is-selected {
  background: var(--copper);
  border-color: var(--copper);
  color: var(--black);
}

.booking-service-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.booking-service-head h2 {
  margin: 0;
  font-size: 17px;
  font-weight: 500;
}

.booking-reset {
  padding: 0;
  border: none;
  background: none;
  color: var(--copper);
  font-size: 13px;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.booking-summary-details {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

.booking-summary-details summary {
  color: var(--copper);
  font-size: 13px;
  cursor: pointer;
}

.booking-summary-list {
  margin: 12px 0 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 6px 12px;
}

.booking-summary-list dt {
  color: var(--dim);
  font-size: 13px;
  font-weight: 500;
}

.booking-summary-list dd {
  margin: 0;
  color: var(--bone);
  font-size: 13px;
  font-weight: 500;
}

.booking-cta {
  margin-top: 16px;
  min-width: 0;
  width: 100%;
  min-height: 48px;
  padding: 0 20px;
  border: none;
  font-family: inherit;
  font-size: 15px;
  cursor: pointer;
}

.booking-cta:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.booking-confirm {
  padding: 40px max(74px, calc(50vw - 640px)) 64px;
}

.booking-confirm h1 {
  margin: 20px 0 32px;
  font-size: calc(clamp(28px, 3vw, 38px) * var(--scale-heading));
  font-weight: 500;
}

.booking-confirm-grid {
  display: flex;
  align-items: stretch;
  max-width: 900px;
  border: 2px solid rgba(242, 238, 229, 0.28);
  border-radius: var(--radius);
}

.booking-confirm-summary,
.booking-confirm-action {
  flex: 1;
  min-width: 0;
  padding: 28px;
}

.booking-confirm-summary {
  border-inline-start: 2px solid rgba(242, 238, 229, 0.28);
}

.booking-confirm-summary h2 {
  margin: 0 0 16px;
  font-size: 17px;
  font-weight: 500;
}

.booking-confirm-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
  font-size: 16px;
}

.booking-confirm-total strong {
  color: var(--copper);
  font-size: 22px;
}

.booking-confirm-action p {
  margin: 0 0 20px;
  color: var(--dim);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.7;
}

.booking-confirm-cta {
  margin-top: 0;
  min-width: 0;
  width: 100%;
  min-height: 52px;
}

.booking-confirm-cta:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.booking-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
  color: var(--bone);
  font-size: 14px;
  font-weight: 600;
}

.booking-field input {
  min-height: 46px;
  padding: 10px 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #151514;
  color: var(--bone);
  font: 400 15px/1.4 var(--sans);
  direction: rtl;
}

.booking-confirm-error {
  margin: 0 0 16px;
  color: #d97757;
  font-size: 14px;
  font-weight: 600;
}

.booking-confirm-error[hidden] {
  display: none;
}

.booking-success {
  width: 100%;
  min-height: calc(100svh - 80px);
  padding-block: clamp(96px, 12vw, 160px);
  padding-inline: max(74px, calc(50vw - 640px));
  display: grid;
  place-items: center;
  text-align: center;
}

.booking-success h1 {
  font-size: calc(clamp(28px, 3vw, 38px) * var(--scale-heading));
  font-weight: 500;
  margin: 0 0 14px;
}

.booking-success p {
  color: var(--dim);
  font-size: 16px;
  line-height: 1.7;
  margin: 0 0 18px;
}

.booking-success .cta {
  margin-top: 10px;
}

@media (max-width: 700px) {
  .booking-confirm-grid {
    flex-direction: column;
  }

  .booking-confirm-summary {
    border-inline-start: none;
    border-bottom: 2px solid rgba(242, 238, 229, 0.28);
  }
}


.workshop-photo-collage,
.workshop-gallery-expanded {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.workshop-gallery-expanded {
  padding: 0 0 18px;
}

.workshop-photo-collage figure,
.workshop-gallery-expanded figure {
  margin: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #0b0b0a;
}

.workshop-photo-collage figure.wide {
  grid-column: 1 / -1;
  aspect-ratio: 16 / 10;
}

.workshop-photo-collage img,
.workshop-gallery-expanded img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.workshop-gallery-more {
  margin-top: 18px;
  border-block: 1px solid var(--line);
}

.workshop-gallery-more summary {
  list-style: none;
  padding: 22px 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: var(--bone);
  font-weight: 600;
  font-size: var(--utility-size);
  cursor: pointer;
}

.workshop-gallery-more summary::-webkit-details-marker {
  display: none;
}

.workshop-gallery-more[open] summary span {
  transform: rotate(45deg);
  display: inline-block;
}

.daily-workshop-final {
  text-align: center;
}

.daily-workshop-final h2 {
  margin: 22px auto 0;
  font-size: calc(clamp(42px, 5vw, 64px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1.08;
}

.daily-workshop-final .cta {
  margin: 30px auto 0;
}

@media (max-width: 920px) {
  .daily-workshop-hero,
  .daily-workshop-story-grid,
  .daily-video-grid,
  .pricing-layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .included-grid {
    grid-template-columns: 1fr 1fr;
  }
  .workshop-photo-collage,
  .workshop-gallery-expanded {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 620px) {
  .included-grid {
    grid-template-columns: 1fr;
  }
}

.hero-review-empty .hero-review-score i {
  color: #6d625a;
  font-size: 15px;
  font-style: normal;
}

/* About page */
.about-artist-hero {
  min-height: 0;
  padding: 132px max(74px, calc(50vw - 640px)) 72px;
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(48px, 6vw, 84px);
  align-items: center;
  border-bottom: 1px solid var(--line);
}

.about-artist-hero.is-image-left .about-artist-portrait {
  order: -1;
}

.about-artist-portrait {
  margin: 0;
  max-height: 620px;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: var(--radius);
  background: #0c0c0b;
}

.about-artist-portrait.is-size-small {
  max-height: 460px;
}

.about-artist-portrait.is-size-wide {
  aspect-ratio: 4 / 3;
  max-height: 560px;
}

.about-artist-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.about-artist-intro {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0;
}

.about-artist-intro h1 {
  margin: 24px 0 30px;
  font-size: calc(clamp(56px, 7vw, 100px) * var(--scale-heading));
  font-weight: 500;
  line-height: 0.94;
  letter-spacing: -0.02em;
}

.about-artist-intro > p:last-child {
  color: var(--dim);
  font-size: 19px;
  line-height: 1.6;
  max-width: 460px;
}

.about-biography-grid {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(55px, 9vw, 150px);
  align-items: start;
}

.about-biography-lead {
  margin: 0;
  color: var(--bone);
  font-size: calc(clamp(28px, 3.2vw, 46px) * var(--scale-subheading));
  font-weight: 500;
  line-height: 1.42;
  letter-spacing: -0.01em;
}

.about-biography-copy {
  max-width: 720px;
}

.about-biography-copy p {
  margin: 0;
  color: #a9a298;
  font-size: 19px;
  line-height: 1.75;
}

.about-biography-copy p + p {
  margin-top: 20px;
}

.about-worlds-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.about-world-card {
  position: relative;
  display: block;
  min-height: 480px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #0b0b0a;
}

.about-world-card figure {
  position: absolute;
  inset: 0;
  margin: 0;
}

.about-world-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.about-world-card span {
  position: absolute;
  left: 28px;
  right: 28px;
  bottom: 28px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 4px 16px;
}

.about-world-card small {
  grid-column: 1 / -1;
  color: var(--dim);
  font-size: 14px;
}

.about-world-card strong {
  font-size: 22px;
  font-weight: 500;
  color: var(--bone);
}

.about-world-card i {
  align-self: end;
  color: var(--copper);
  font-style: normal;
  font-size: 26px;
}

.about-moments-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 220px;
  gap: 12px;
}

.about-moments-grid figure {
  margin: 0;
  overflow: hidden;
  background: #0b0b0a;
}

.about-moments-grid figure.wide {
  grid-column: span 2;
}

.about-moments-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.about-closing {
  min-height: 420px;
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: clamp(50px, 9vw, 150px);
  align-items: center;
  border-top: 1px solid var(--line);
}

.about-closing blockquote {
  margin: 0;
  color: var(--copper);
  font-size: calc(clamp(36px, 5.2vw, 68px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1.22;
  letter-spacing: -0.02em;
}

.about-closing-copy p {
  margin: 0 0 24px;
  color: #aaa39a;
  font-size: 18px;
  line-height: 1.7;
}

.balanced-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  width: min(100%, 520px);
}

.cta-outline {
  border: 1px solid var(--copper);
  background: transparent;
  color: var(--bone);
}

.cta-outline span {
  color: var(--copper);
  font-size: 26px;
  transition: color 0.25s;
}

.cta-outline:hover {
  background: var(--copper);
  border-color: var(--copper);
  color: var(--black);
}

.cta-outline:hover span {
  color: var(--black);
}

@media (max-width: 920px) {
  .about-artist-hero,
  .about-biography-grid,
  .about-closing {
    grid-template-columns: 1fr;
  }
  .about-artist-hero {
    padding: 96px 24px 56px;
  }
  .about-artist-portrait,
  .about-artist-portrait.is-size-small,
  .about-artist-portrait.is-size-wide {
    max-height: 420px;
    aspect-ratio: 4 / 3;
  }
  .about-worlds-grid {
    grid-template-columns: 1fr;
  }
  .about-moments-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .about-moments-grid figure.wide {
    grid-column: span 2;
  }
  .balanced-actions {
    grid-template-columns: 1fr;
  }
}

/* Shop / catalog */
.gallery-intro-minimal {
  padding: 154px max(74px, calc(50vw - 640px)) 64px;
  border-bottom: 1px solid var(--line);
  background: var(--black);
}

.shop-intro-layout {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 70px;
  align-items: center;
}

.shop-intro-layout h1 {
  margin: 0;
  font-size: calc(clamp(48px, 6vw, 84px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1;
}

.shop-intro-copy {
  max-width: 620px;
}

.shop-intro-copy p {
  margin: 0 0 20px;
  color: var(--dim);
  font-size: 17px;
  line-height: 1.6;
}

.shop-originals-link {
  width: min(100%, 320px);
}

.category-strip {
  position: sticky;
  top: 62px;
  z-index: 20;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 10px clamp(22px, 2.8vw, 54px);
  background: #181934;
  border-bottom: 1px solid var(--line);
}

.category-strip-item {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 14px 5px 5px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--black);
  color: var(--dim);
  font: 500 13px/1.2 var(--sans);
  text-decoration: none;
  white-space: nowrap;
}

.category-strip-item:hover {
  color: var(--bone);
  border-color: var(--dim);
}

.category-strip-item.active {
  color: var(--copper);
  border-color: var(--copper);
  background: #20213f;
}

.category-strip-thumb {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background-size: cover;
  background-position: center;
  flex: 0 0 auto;
}

@media (min-width: 1321px) {
  .category-strip {
    top: 82px;
  }
}

.category-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(calc(120px * var(--scale-category-card, 1)), calc(150px * var(--scale-category-card, 1))));
  justify-content: center;
  gap: 22px;
  width: min(100% - 48px, 1100px);
  margin: 0 auto;
  padding: 12px 0 64px;
}

.category-gallery-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  text-align: center;
}

.category-gallery-thumb {
  width: 100%;
  aspect-ratio: 1;
  border-radius: var(--radius);
  overflow: hidden;
  position: relative;
  background: var(--black);
  border: 1px solid var(--line);
}

.category-gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.category-gallery-card:hover .category-gallery-thumb img {
  transform: scale(1.06);
}

.category-gallery-card:hover .category-gallery-label {
  color: var(--copper);
}

.category-gallery-label {
  color: var(--bone);
  font: 600 15px/1.2 var(--sans);
  transition: color 180ms ease;
}

.artwork-catalog {
  padding-top: 68px;
  padding-bottom: 90px;
}

.catalog-toolbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 34px;
}

.catalog-toolbar h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: calc(clamp(28px, 8vw, 58px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1;
}

@media (max-width: 620px) {
  .catalog-toolbar {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }
}

.catalog-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 22px;
}

.catalog-filter {
  min-height: 42px;
  padding: 0 0 4px;
  border: 0;
  border-bottom: 1px solid transparent;
  background: transparent;
  color: #918a80;
  font: 500 16px/1.2 var(--sans);
  cursor: pointer;
}

.catalog-filter:hover,
.catalog-filter.active {
  border-bottom-color: var(--copper);
  color: var(--bone);
}

.artwork-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.artwork-card {
  min-width: 0;
  scroll-margin-top: 24px;
}

.artwork-card[hidden] {
  display: none;
}

.artwork-tile {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: inherit;
  font: inherit;
  cursor: pointer;
}

.artwork-tile-image {
  position: relative;
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--black);
  transition: border-color 0.25s, transform 0.3s;
}

.sold-out-badge {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
  padding: 5px 10px;
  border-radius: 6px;
  background: var(--black);
  color: var(--bone);
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.artwork-tile-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.artwork-tile:hover .artwork-tile-image {
  transform: translateY(-3px);
}

.artwork-tile-caption {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  padding: 3px 2px 0;
}

.artwork-tile-caption strong {
  display: -webkit-box;
  width: 100%;
  min-height: calc(1.3em * 2);
  overflow: hidden;
  color: var(--bone);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.3;
  text-align: center;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.artwork-tile-caption small {
  color: #8c847a;
  font-size: 14px;
  font-weight: 600;
  direction: rtl;
  white-space: nowrap;
  text-align: center;
}

.artwork-tile-price {
  margin-top: 6px;
  color: var(--bone);
  font-size: 16px;
  font-weight: 600;
  direction: rtl;
  text-align: center;
}

.artwork-tile-price span {
  color: var(--copper);
  font-weight: 700;
}

@media (max-width: 920px) {
  .shop-intro-layout {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .artwork-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Commissions page */
.inner-hero {
  min-height: 780px;
  padding: 132px max(74px, calc(50vw - 640px)) 70px;
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  gap: 80px;
  align-items: center;
  border-bottom: 1px solid var(--line);
}

.inner-hero-copy {
  max-width: 650px;
}

.inner-hero-copy h1 {
  margin: 30px 0 34px;
  font-size: calc(clamp(40px, 4.5vw, 64px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1.1;
}

.inner-hero-copy p {
  color: var(--dim);
  font-size: 18px;
  line-height: 1.7;
}

.commission-hero-ctas {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin-top: 34px;
}

.inner-hero-art {
  position: relative;
  margin: 0;
  height: 620px;
  border: 1px solid var(--line);
  overflow: hidden;
}

.commission-feature-art {
  border: 0;
  background: #0a0a09;
}

.inner-hero-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.inner-hero-art figcaption {
  position: absolute;
  left: 20px;
  bottom: 20px;
  color: var(--bone);
  font-size: 14px;
  font-weight: 600;
}

/* Intro video */
.intro-video {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: center;
}

.intro-video-copy h2 {
  margin: 16px 0 14px;
  font-size: calc(clamp(30px, 3.2vw, 42px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1.15;
}

.intro-video-copy p {
  margin: 0;
  max-width: 420px;
  color: var(--dim);
  font-size: 17px;
  line-height: 1.7;
}

.intro-video-media {
  position: relative;
  aspect-ratio: 16 / 9;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #0a0a09;
  overflow: hidden;
}

.intro-video-poster {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.intro-video-play {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 72px;
  height: 72px;
  border: 1px solid var(--copper);
  border-radius: 50%;
  background: rgba(11, 12, 32, 0.72);
  color: var(--bone);
  font-size: 20px;
  cursor: pointer;
  transition: background 0.2s, transform 0.2s;
}

.intro-video-play:hover {
  background: var(--copper);
  color: var(--black);
  transform: scale(1.05);
}

.intro-video-play:focus-visible {
  outline: 2px solid var(--copper);
  outline-offset: 3px;
}

.intro-video-media.is-playing .intro-video-poster,
.intro-video-media.is-playing .intro-video-play {
  display: none;
}

.intro-video-media video,
.intro-video-media iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* Path cards */
.works-title {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 60px;
  margin-bottom: 74px;
}

.works-title h2 {
  margin: 0;
  font-size: calc(clamp(40px, 4.5vw, 60px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1.1;
}

.works-title p {
  max-width: 380px;
  color: var(--dim);
  font-size: 17px;
}

.works-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  align-items: stretch;
}

.work-card {
  position: relative;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 28px;
}

.work-card-recommended {
  border-color: var(--copper);
}

.work-card-badge {
  position: absolute;
  top: -13px;
  right: 24px;
  padding: 5px 12px;
  border-radius: 20px;
  background: var(--copper);
  color: var(--black);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.work-card-image {
  margin: -28px -28px 22px;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: var(--radius) var(--radius) 0 0;
  background: var(--line);
}

.work-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.work-card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.work-card h3 {
  margin: 0;
  font-size: calc(clamp(24px, 2.4vw, 30px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1.15;
}

.work-card-persona {
  margin: 0;
  color: var(--copper);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.5;
}

.work-card-intro {
  margin: 0;
  color: var(--dim);
  font-size: 16px;
  line-height: 1.65;
}

.work-card-includes > span {
  display: block;
  margin-bottom: 8px;
  color: var(--bone);
  font-size: 14px;
  font-weight: 600;
}

.work-card-includes ul {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
}

.work-card-includes li {
  padding: 9px 0;
  border-bottom: 1px solid #2c2a27;
  color: var(--dim);
  font-size: 15px;
  line-height: 1.5;
}

.work-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
}

.work-card-meta-item {
  color: var(--dim);
  font-size: 14px;
}

.work-card-meta-item strong {
  color: var(--bone);
  font-weight: 600;
}

.work-card-payment-note {
  margin: 0;
  color: #837c72;
  font-size: 13px;
  line-height: 1.6;
}

.work-card-footer {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

.work-card-price {
  margin: 0 0 16px;
  color: var(--copper);
  direction: ltr;
  text-align: left;
}

.work-card-price strong {
  font-family: var(--sans);
  font-size: 34px;
  font-weight: 400;
}

.work-card-price .from {
  display: block;
  direction: rtl;
  text-align: right;
  font-size: 12px;
  margin-bottom: 2px;
}

.work-card-footer .cta {
  width: 100%;
  justify-content: center;
}

/* Process steps */
.process-title {
  margin-bottom: 44px;
}

.process-title h2 {
  margin: 0 0 12px;
  font-size: calc(clamp(38px, 4.2vw, 56px) * var(--scale-heading));
  font-weight: 500;
}

.process-title p {
  margin: 0;
  color: var(--dim);
  font-size: 17px;
}

.steps {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
}

.steps li {
  position: relative;
  min-height: 220px;
  padding: 28px 28px 20px;
  border-left: 1px solid var(--line);
}

.step-number {
  display: block;
  margin-bottom: 14px;
  color: var(--copper);
  font-family: var(--sans);
  font-size: 19px;
  font-weight: 700;
}

.step-icon {
  display: block;
  width: 34px;
  height: 34px;
  margin-bottom: 12px;
  object-fit: contain;
}

.steps li h3 {
  margin: 0 0 12px;
  color: var(--bone);
  font-size: 22px;
  font-weight: 500;
}

.steps li p {
  margin: 0;
  color: var(--dim);
  font-size: 17px;
  line-height: 1.6;
}

/* Case studies */
.case-studies-list {
  display: grid;
  gap: 64px;
}

.case-study {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(32px, 5vw, 64px);
  align-items: center;
}

.case-study-image {
  margin: 0;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.case-study-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.case-study-body {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.case-study-path {
  color: var(--copper);
  font-size: 18px;
  font-weight: 600;
}

.case-study-body h3 {
  margin: 0;
  font-size: calc(clamp(24px, 2.6vw, 32px) * var(--scale-heading));
  font-weight: 500;
}

.case-study-story,
.case-study-testimonial {
  margin: 0;
  color: var(--dim);
  font-size: 17px;
  line-height: 1.7;
}

.case-study-testimonial {
  color: var(--bone);
  font-style: italic;
}

.case-study-video {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}

.case-study-duration {
  color: #837c72;
  font-size: 13px;
}

/* Notes */
.notes .section-label + h2 {
  margin: 0 0 30px;
  font-size: calc(clamp(32px, 3.6vw, 46px) * var(--scale-heading));
  font-weight: 500;
}

.notes-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--line);
}

.notes-list li {
  padding: 19px 0;
  border-bottom: 1px solid var(--line);
  color: var(--dim);
  font-size: 16px;
}

/* Exclusive fallback section (kept for legacy content; hidden by default) */
.exclusive-commission {
  max-width: 760px;
}

.exclusive-commission > h2 {
  margin: 0 0 30px;
  font-size: calc(clamp(32px, 3.6vw, 46px) * var(--scale-heading));
  font-weight: 500;
}

.exclusive-copy p {
  margin: 0 0 18px;
  color: var(--dim);
  font-size: 17px;
  line-height: 1.7;
}

.exclusive-commission > .cta {
  margin-top: 8px;
  margin-bottom: 64px;
}

/* FAQ */
.faq-list .section-label {
  margin-bottom: 20px;
}

.faq-list h3 {
  margin: 0 0 24px;
  font-size: calc(clamp(24px, 2.4vw, 30px) * var(--scale-heading));
  font-weight: 500;
}

.faq-item {
  border-top: 1px solid var(--line);
  padding: 6px 0;
}

.faq-item:last-child {
  border-bottom: 1px solid var(--line);
}

.faq-item summary {
  cursor: pointer;
  list-style: none;
  padding: 14px 0;
  color: var(--bone);
  font-size: 16px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-item summary::after {
  content: "+";
  flex-shrink: 0;
  color: var(--copper);
  font-size: 24px;
  transition: transform 0.2s ease;
}

.faq-item[open] summary::after {
  transform: rotate(45deg);
}

.faq-item p {
  margin: 0 0 18px;
  color: var(--dim);
  font-size: 18px;
  line-height: 1.75;
}

/* Inquiry form */
.inquiry-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: end;
  margin-bottom: 62px;
}

.inquiry-intro h2 {
  margin: 0;
  font-size: calc(clamp(38px, 4.2vw, 56px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1.1;
}

.inquiry-intro p {
  margin: 0;
  color: var(--dim);
  font-size: 17px;
  line-height: 1.6;
}

.inquiry-note {
  font-size: 13px;
  margin: 10px 0 0;
  color: #837c72;
}

.lead-form {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  padding-top: 34px;
  border-top: 1px solid var(--line);
}

.lead-form label {
  display: flex;
  flex-direction: column;
  gap: 11px;
  color: var(--copper);
  font-size: 19px;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.lead-form-full {
  grid-column: 1 / -1;
}

.lead-form select,
.lead-form input[type="text"],
.lead-form input[type="email"],
.lead-form input[type="tel"],
.lead-form textarea {
  width: 100%;
  min-height: 58px;
  padding: 14px 17px;
  border: 1px solid #4a4640;
  border-radius: var(--radius);
  background: #151514;
  color: var(--bone);
  font: 400 15px/1.4 var(--sans);
  direction: rtl;
}

.lead-form textarea {
  min-height: 100px;
  resize: vertical;
}

.lead-form-checkbox {
  flex-direction: row;
  align-items: flex-start;
  gap: 12px;
  color: var(--dim);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: normal;
}

.lead-form-checkbox input {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-top: 2px;
  accent-color: var(--copper);
}

.lead-form-checkbox a {
  color: var(--copper);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.lead-submit {
  grid-column: 1 / -1;
  justify-self: end;
  justify-content: center;
  border: 0;
  cursor: pointer;
  font-family: var(--sans);
}

.lead-submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.lead-form-success {
  grid-column: 1 / -1;
  justify-self: end;
  margin: 0;
  color: var(--teal);
  font-size: 14px;
  font-weight: 600;
}

.lead-form-success[hidden] {
  display: none;
}

.lead-form-error {
  grid-column: 1 / -1;
  justify-self: end;
  margin: 0;
  color: #d97757;
  font-size: 14px;
  font-weight: 600;
}

.lead-form-error[hidden] {
  display: none;
}

.bit-payment-section {
  padding-top: 96px;
}

.bit-payment-inner {
  width: min(100%, 760px);
  margin: 0 auto;
}

.bit-payment-inner h1 {
  margin-bottom: 14px;
}

.bit-payment-lead {
  color: var(--dim);
  font-size: 16px;
  line-height: 1.6;
  margin-bottom: 8px;
  max-width: 560px;
}

.bit-payment-upload {
  margin-top: 22px;
  margin-bottom: 8px;
}

.bit-payment-upload-label {
  display: flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  padding: 13px 20px;
  border: 1px dashed var(--copper);
  border-radius: var(--radius);
  color: var(--copper);
  font: 600 15px/1.4 var(--sans);
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.bit-payment-upload-label:hover {
  background: rgba(200, 137, 90, 0.08);
}

.bit-payment-upload-icon {
  font-size: 18px;
}

.bit-payment-upload-hint {
  margin: 8px 0 0;
  font-size: 13px;
  color: var(--dim);
}

.bit-payment-upload-status {
  margin: 10px 0 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--dim);
}

.bit-payment-upload-status[data-state="error"] {
  color: #d97757;
}

.bit-payment-upload-status[data-state="ok"] {
  color: var(--teal);
}

.bit-payment-upload-status[hidden] {
  display: none;
}

/* Mobile sticky CTA */
.commission-sticky-cta {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 25;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 18px;
  padding-bottom: max(12px, env(safe-area-inset-bottom));
  background: rgba(11, 12, 32, 0.94);
  border-top: 1px solid var(--line);
  backdrop-filter: blur(6px);
}

.commission-sticky-cta[hidden] {
  display: none;
}

.commission-sticky-cta-path {
  color: var(--dim);
  font-size: 13px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.commission-sticky-cta .cta {
  flex-shrink: 0;
  min-height: 44px;
  padding: 0 20px;
  font-size: 14px;
}

@media (min-width: 921px) {
  .commission-sticky-cta {
    display: none;
  }
}

/* Commissions: restrained editorial rhythm and a consistent readable scale. */
.commission-hero,
.intro-video.section,
.works.section,
.process.section,
.case-studies.section,
.notes.section,
.faq.section,
.inquiry.section {
  width: min(100%, 1280px);
  margin-inline: auto;
}

.commission-hero {
  min-height: 680px;
  padding: 96px 48px 72px;
  grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
  gap: clamp(48px, 6vw, 84px);
}

.commission-hero .inner-hero-copy {
  max-width: 580px;
}

.commission-hero .inner-hero-copy p,
.works-title p,
.exclusive-copy p,
.inquiry-intro p,
.process-title p,
.steps li p,
.notes-list li,
.intro-video-copy p,
.case-study-story,
.case-study-testimonial {
  color: var(--dim);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.75;
}

.commission-hero .inner-hero-art {
  height: 540px;
}

.intro-video.section,
.works.section,
.process.section,
.case-studies.section,
.notes.section,
.faq.section,
.inquiry.section {
  padding: 88px 48px;
}

.works-title {
  margin-bottom: 52px;
}

.works-title p {
  max-width: 430px;
}

.work-card-includes > span,
.lead-form label {
  font-size: 17px;
  font-weight: 600;
}

.work-card-includes li {
  padding: 11px 0;
  color: var(--dim);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
}

.faq-list {
  margin-top: 8px;
}

.faq-item summary {
  padding: 17px 0;
  font-size: 18px;
}

.inquiry-intro {
  gap: 64px;
  margin-bottom: 48px;
}

.lead-form {
  gap: 20px;
  padding-top: 30px;
}

.lead-form select,
.lead-form input[type="text"],
.lead-form textarea {
  min-height: 62px;
  border-color: #555064;
  border-radius: var(--radius);
  background: #11122a;
  font-size: 17px;
}

.lead-submit {
  min-width: 260px;
  min-height: 54px;
}

.process-title {
  margin-bottom: 36px;
}

.steps {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}

.steps li {
  min-height: 210px;
  padding: 30px 26px;
}

.steps li:last-child {
  border-left: 0;
}

.steps li h3 {
  font-size: 23px;
  font-weight: 600;
}

.notes-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}

.notes-list li {
  min-height: 112px;
  padding: 22px 24px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--line);
}

.notes-list li:nth-child(odd) {
  border-left: 1px solid var(--line);
}

.notes-list li:nth-last-child(-n + 2) {
  border-bottom: 0;
}

#inquiry-form,
#options {
  scroll-margin-top: 90px;
}

@media (max-width: 920px) {
  .inner-hero,
  .inquiry-intro,
  .intro-video,
  .case-study {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .works-list {
    grid-template-columns: 1fr;
  }

  .lead-form {
    grid-template-columns: 1fr;
  }
  .steps {
    grid-template-columns: 1fr 1fr;
  }

  .commission-hero {
    min-height: 0;
    padding: 72px 32px 56px;
  }

  .commission-hero .inner-hero-art {
    height: min(115vw, 520px);
  }

  .intro-video.section,
  .works.section,
  .process.section,
  .case-studies.section,
  .notes.section,
  .faq.section,
  .inquiry.section {
    padding: 72px 32px;
    padding-bottom: calc(72px + 64px);
  }

  .works-title {
    align-items: start;
    flex-direction: column;
    gap: 22px;
    margin-bottom: 38px;
  }

  .work-card-image {
    aspect-ratio: 16 / 10;
  }

  .exclusive-commission.section {
    width: 100%;
    padding: 72px 32px;
  }

  .inquiry-intro {
    margin-bottom: 36px;
  }

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

  .steps li {
    min-height: 0;
    border-left: 0;
    border-bottom: 1px solid var(--line);
  }

  .steps li:last-child {
    border-bottom: 0;
  }

  .case-studies-list {
    gap: 44px;
  }

  .notes-list {
    grid-template-columns: 1fr;
  }

  .notes-list li,
  .notes-list li:nth-child(odd),
  .notes-list li:nth-last-child(-n + 2) {
    min-height: 0;
    border-left: 0;
    border-bottom: 1px solid var(--line);
  }

  .notes-list li:last-child {
    border-bottom: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Skip to main content */
.skip-link {
  position: absolute;
  top: -100px;
  inset-inline-start: 20px;
  z-index: 999;
  padding: 12px 22px;
  border-radius: 0 0 8px 8px;
  background: var(--copper);
  color: #fff;
  font-size: 15px;
  text-decoration: none;
  transition: top 0.15s;
}

.skip-link:focus {
  top: 0;
}

/* Rights page */
.rights-hero {
  min-height: 500px;
  padding: clamp(110px, 12vw, 180px) max(74px, calc(50vw - 590px)) 80px;
  display: grid;
  grid-template-columns: 1.35fr 0.65fr;
  align-items: center;
  gap: clamp(48px, 8vw, 120px);
  border-bottom: 1px solid var(--line);
}

.rights-hero-copy {
  max-width: 760px;
}

.rights-hero-copy h1 {
  margin: 20px 0 30px;
  font-size: calc(clamp(44px, 5.5vw, 72px) * var(--scale-legal));
  font-weight: 500;
  line-height: 1.1;
}

.rights-hero-copy p {
  color: var(--dim);
  font-size: 18px;
  line-height: 1.7;
}

.rights-updated {
  margin-top: 12px;
  font-size: 14px !important;
  opacity: 0.65;
}

.rights-mark {
  color: transparent;
  -webkit-text-stroke: 1px var(--copper);
  font-size: clamp(120px, 18vw, 220px);
  line-height: 0.7;
  text-align: center;
  opacity: 0.72;
}

.rights-quick-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}

.rights-quick-grid article {
  min-height: 220px;
  padding: 34px;
  border-left: 1px solid var(--line);
}

.rights-quick-grid h2 {
  margin: 0 0 14px;
  font-size: 28px;
  font-weight: 500;
}

.rights-quick-grid p {
  margin: 0;
  color: var(--dim);
  line-height: 1.75;
}

.rights-policy-list {
  border-top: 1px solid var(--line);
}

.rights-policy-list article {
  padding: 54px 0;
  border-bottom: 1px solid var(--line);
}

.rights-policy-list h2 {
  margin: 0 0 20px;
  font-size: calc(clamp(28px, 3vw, 42px) * var(--scale-legal));
  font-weight: 500;
  line-height: 1.1;
}

.rights-policy-list p {
  margin: 0 0 16px;
  color: #aaa39a;
  font-size: 18px;
  line-height: 1.9;
}

.rights-ai {
  background: rgba(189, 87, 47, 0.06);
  padding: 54px 34px;
}

.rights-legal-note {
  max-width: 850px;
  margin: 30px 0 0;
  color: #9a9389;
  font-size: 13px;
  line-height: 1.8;
}

/* Legal pages: business identity block + bullet lists */
.legal-identity {
  margin-bottom: 54px;
  padding: 34px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.legal-identity h2 {
  margin: 0 0 26px;
  font-size: calc(clamp(22px, 2.4vw, 30px) * var(--scale-legal));
  font-weight: 500;
}

.legal-identity-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px 18px;
  margin: 0;
}

.legal-identity-list dt {
  margin: 0 0 4px;
  color: var(--dim);
  font-size: 13px;
}

.legal-identity-list dd {
  margin: 0;
  color: var(--bone);
  font-size: 17px;
  font-weight: 500;
}

.legal-identity-list a {
  color: var(--copper);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.legal-bullets {
  margin: 4px 0 16px;
  padding-inline-start: 20px;
  color: #aaa39a;
  font-size: 18px;
  line-height: 1.9;
}

.legal-bullets li {
  margin-bottom: 10px;
}

.legal-bullets strong {
  color: var(--bone);
  font-weight: 500;
}

.contact-business {
  margin-top: 54px;
  margin-bottom: 0;
}

.booking-cancellation-note {
  margin: 0 0 18px;
  color: #8a8378;
  font-size: 14px;
  line-height: 1.75;
}

.booking-cancellation-note a {
  color: var(--copper);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.booking-consent {
  margin-bottom: 22px;
}

.cta.is-disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

@media (max-width: 920px) {
  .rights-hero {
    grid-template-columns: 1fr;
  }
  .rights-mark {
    display: none;
  }
  .rights-quick-grid {
    grid-template-columns: 1fr;
  }
  .rights-policy-list article {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .legal-identity-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .legal-identity {
    padding: 24px 20px;
  }
  .legal-identity-list {
    grid-template-columns: 1fr;
  }
  .legal-bullets {
    font-size: 16px;
  }
}

/* Contact page */
.contact-emails {
  display: grid;
  gap: 32px;
  margin: 0 0 44px;
  padding: 0;
  list-style: none;
  max-width: 640px;
}

.contact-emails li {
  border-bottom: 1px solid var(--line);
  padding-bottom: 20px;
}

.contact-emails li span {
  display: block;
  margin-bottom: 8px;
  color: var(--dim);
  font-size: 14px;
}

.contact-emails li a {
  display: inline-block;
  direction: ltr;
  font-size: clamp(20px, 2.4vw, 28px);
  font-weight: 500;
  color: var(--bone);
  transition: color 0.2s;
}

.contact-emails li a:hover {
  color: var(--copper);
}

.contact-social h2 {
  margin: 0 0 30px;
  font-size: calc(clamp(32px, 3.4vw, 46px) * var(--scale-heading));
  font-weight: 500;
}

.contact-social-links {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.contact-legal {
  max-width: 850px;
  margin: 0 auto;
  padding: 60px 34px 120px;
  text-align: center;
  color: #6f6a63;
  font-size: 13px;
  line-height: 1.8;
}

.contact-legal a {
  display: inline-block;
  margin-top: 14px;
  color: var(--copper);
}

/* Cart page */
.cart-page {
  width: min(calc(100% - 48px), 920px);
  max-width: none;
  margin: 0 auto;
  padding-inline: 0;
  padding-top: 138px;
  padding-bottom: 100px;
}

.cart-view .quick-links-rail {
  display: none;
}

body:has(.commission-sticky-cta:not([hidden])) .quick-links-rail {
  bottom: 84px;
}

.cart-page h1 {
  margin: 0 0 10px;
  font-size: calc(clamp(34px, 4vw, 52px) * var(--scale-heading));
  font-weight: 600;
  line-height: 1.1;
}

.cart-page > .section-label {
  margin-bottom: 16px;
  font-size: 13px;
}

.cart-continue-shopping {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 24px;
  color: var(--bone);
  font-size: 17px;
  font-weight: 600;
  text-decoration: none;
}

.cart-continue-shopping:hover,
.cart-continue-shopping:focus-visible {
  color: var(--copper);
}

.cart-currency-toggle {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  margin-bottom: 24px;
  border: 1px solid rgba(242, 238, 229, 0.28);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.035);
}

.cart-currency-toggle button {
  min-height: 36px;
  padding: 7px 14px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #ddd7cd;
  font: 600 14px/1 var(--sans);
  cursor: pointer;
}

.cart-currency-toggle button.active {
  background: var(--copper);
  color: var(--black);
}

#cart-empty {
  color: var(--bone);
  font-size: 18px;
  line-height: 1.7;
}

#cart-empty a {
  color: var(--copper);
  text-decoration: underline;
}

.cart-items {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  border: 1px solid rgba(242, 238, 229, 0.2);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.025);
  overflow: hidden;
}

.cart-checkout-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(340px, 0.8fr);
  gap: 26px;
  align-items: start;
}

.cart-checkout-main {
  min-width: 0;
}

.cart-line {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr) auto auto auto;
  align-items: center;
  gap: 20px;
  padding: 22px;
  border-bottom: 1px solid rgba(242, 238, 229, 0.16);
}

.cart-line:last-child {
  border-bottom: 0;
}

.cart-line-thumb {
  display: block;
  width: 96px;
  aspect-ratio: 1;
  padding: 8px;
  border-radius: 12px;
  background: #fff;
}

.cart-line-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.cart-line-info {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.cart-line-title {
  color: var(--bone);
  font-size: 20px;
  font-weight: 600;
  text-decoration: none;
}

.cart-line-title:hover,
.cart-line-title:focus-visible {
  color: var(--copper);
}

.cart-line-info span {
  color: #c9c3b9;
  font-size: 16px;
  line-height: 1.5;
}

.cart-line-qty {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  border: 1.5px solid rgba(242, 238, 229, 0.42);
  border-radius: 10px;
  padding: 6px 8px;
  font-size: 17px;
}

.cart-line-qty button {
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--bone);
  font-size: 19px;
  cursor: pointer;
}

.cart-line-qty button:hover {
  background: var(--copper);
  color: var(--black);
}

.cart-line-price {
  min-width: 82px;
  font-size: 18px;
  font-weight: 600;
}

.cart-line-remove {
  border: 0;
  background: transparent;
  padding: 8px;
  color: #c9c3b9;
  font-size: 18px;
  cursor: pointer;
}

.cart-line-remove:hover {
  color: var(--copper);
}

.cart-customer {
  padding: 28px;
  margin-bottom: 20px;
  border: 1px solid rgba(242, 238, 229, 0.2);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.025);
}

.cart-customer-heading {
  margin: 0 0 24px;
  color: var(--bone);
  font-size: 23px;
  font-weight: 600;
}

.cart-customer-field {
  margin-bottom: 16px;
}

.cart-customer-field:last-child {
  margin-bottom: 0;
}

.cart-customer-field label {
  display: block;
  margin-bottom: 8px;
  color: var(--bone);
  font-size: 16px;
  font-weight: 600;
}

.cart-customer-field input,
.cart-customer-field textarea {
  width: 100%;
  min-height: 52px;
  padding: 12px 16px;
  border: 1.5px solid rgba(242, 238, 229, 0.34);
  border-radius: 10px;
  background: rgba(5, 6, 27, 0.55);
  color: var(--bone);
  font-family: var(--sans);
  font-size: 17px;
  resize: vertical;
}

.cart-customer-field input:focus,
.cart-customer-field textarea:focus {
  outline: none;
  border-color: var(--copper);
}

.cart-customer-field .cart-consent-label {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 0;
  color: var(--dim);
  font-size: 14px;
  font-weight: 400;
}

.cart-consent-label input {
  flex-shrink: 0;
  width: 20px;
  min-height: 0;
  height: 20px;
  margin-top: 2px;
  padding: 0;
  accent-color: var(--copper);
}

.cart-consent-label a {
  color: var(--copper);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.cart-summary {
  padding: 30px;
  border: 1px solid rgba(242, 238, 229, 0.32);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.055);
  position: sticky;
  top: 104px;
}

.cart-summary h2 {
  margin: 0 0 28px;
  color: var(--bone);
  font-size: 27px;
  font-weight: 600;
}

.cart-coupon-field {
  margin-bottom: 24px;
}

.cart-coupon-field label {
  display: block;
  margin-bottom: 8px;
  color: var(--bone);
  font-size: 15px;
  font-weight: 600;
}

.cart-coupon-row {
  display: flex;
  gap: 8px;
}

.cart-coupon-row input {
  flex: 1;
  min-width: 0;
  min-height: 46px;
  padding: 10px 14px;
  border: 1.5px solid rgba(242, 238, 229, 0.34);
  border-radius: 10px;
  background: rgba(5, 6, 27, 0.55);
  color: var(--bone);
  font-family: var(--sans);
  font-size: 15px;
  text-transform: uppercase;
}

.cart-coupon-row input:focus {
  outline: none;
  border-color: var(--copper);
}

.cart-coupon-row button {
  flex-shrink: 0;
  padding: 0 18px;
  border: 1.5px solid var(--copper);
  border-radius: 10px;
  background: transparent;
  color: var(--copper);
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
}

.cart-coupon-row button:disabled {
  cursor: wait;
  opacity: 0.65;
}

.cart-coupon-message {
  margin: 8px 0 0;
  font-size: 14px;
}

.cart-coupon-message.is-success {
  color: #9bd39b;
}

.cart-coupon-message.is-error {
  color: #ff9a9a;
}

.cart-summary-row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 16px;
  color: var(--bone);
  font-size: 19px;
  line-height: 1.4;
}

.cart-summary-total {
  color: var(--bone);
  font-size: 28px;
  font-weight: 700;
  padding-top: 20px;
  border-top: 1px solid rgba(242, 238, 229, 0.24);
}

.cart-summary .cta {
  width: 100%;
  justify-content: center;
  margin: 24px 0 0;
}

.cart-summary .cta[hidden] {
  display: none;
}

.cart-summary .cta:disabled {
  cursor: wait;
  opacity: 0.65;
}

.cart-payment-error {
  margin: 12px 0 0;
  color: #ff9a9a;
  font-size: 14px;
}

.cart-summary-note {
  margin: 20px 0 0;
  color: #ebe5da;
  font-size: 17px;
  line-height: 1.75;
}

.cart-summary .artwork-purchase-bank {
  margin-top: 20px;
}

.cart-summary .artwork-purchase-bank[hidden] {
  display: none;
}

.cart-policy-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid rgba(242, 238, 229, 0.18);
}

.cart-policy-links a {
  color: var(--copper);
  font-size: 19px;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.cart-summary-continue {
  display: flex;
  width: 100%;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 20px;
  border: 1px solid rgba(242, 238, 229, 0.36);
  border-radius: 999px;
  color: var(--bone);
  font-size: 17px;
  font-weight: 600;
  text-decoration: none;
}

.cart-summary-continue:hover,
.cart-summary-continue:focus-visible {
  border-color: var(--copper);
  color: var(--copper);
}

@media (max-width: 560px) {
  .cart-page {
    width: calc(100% - 28px);
    padding: 78px 0 56px;
  }

  .cart-page h1 {
    font-size: 32px;
  }

  .cart-continue-shopping {
    font-size: 16px;
  }

  .cart-line {
    grid-template-columns: 78px minmax(0, 1fr) auto;
    grid-template-areas:
      "thumb info remove"
      "thumb qty price";
    gap: 14px;
    padding: 18px 14px;
  }
  .cart-line-thumb { grid-area: thumb; width: 78px; }
  .cart-line-info { grid-area: info; }
  .cart-line-remove { grid-area: remove; }
  .cart-line-qty { grid-area: qty; }
  .cart-line-price { grid-area: price; text-align: left; }

  .cart-line-title { font-size: 18px; }
  .cart-line-info span { font-size: 15px; }

  .cart-customer,
  .cart-summary {
    padding: 22px 20px;
    border-radius: 14px;
  }

  .cart-summary h2 {
    margin-bottom: 22px;
    font-size: 28px;
  }

  .cart-summary-row {
    margin-bottom: 18px;
    font-size: 19px;
  }

  .cart-summary-total {
    font-size: 28px;
  }

  .cart-summary .cta {
    min-height: 58px;
    padding-inline: 18px;
    font-size: 18px;
  }

  .cart-summary-note {
    font-size: 17px;
    line-height: 1.7;
  }

  .cart-policy-links a {
    font-size: 16px;
  }
}

@media (max-width: 820px) {
  .cart-drawer {
    width: min(100%, 430px);
  }

  .cart-drawer-header {
    min-height: 70px;
    padding-inline: 18px;
  }

  .cart-drawer-body {
    padding: 4px 18px 20px;
  }

  .cart-drawer-line {
    grid-template-columns: 78px minmax(0, 1fr) 30px;
    gap: 13px;
    padding: 20px 0;
  }

  .cart-drawer-thumb {
    width: 78px;
  }

  .cart-drawer-title {
    font-size: 18px;
  }

  .cart-drawer-footer {
    padding: 18px;
  }

  .cart-checkout-grid {
    grid-template-columns: 1fr;
  }

  .cart-summary {
    position: static;
  }
}

/* Portfolio page */
.portfolio-gallery-heading {
  min-height: 138px;
  display: grid;
  place-items: center;
  padding: 38px 24px 30px;
  background: var(--black);
}

.portfolio-gallery-heading h1,
.portfolio-collection-heading h1 {
  margin: 0;
  color: var(--light);
  font-size: calc(clamp(30px, 3.2vw, 46px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1.15;
}

.portfolio-category-index {
  width: 100%;
  padding-bottom: 14px;
  background: var(--black);
}

.portfolio-category-band {
  position: relative;
  height: 450px;
  display: grid;
  place-items: center;
  overflow: hidden;
  margin-bottom: 14px;
  color: #fff;
  text-decoration: none;
  isolation: isolate;
}

.portfolio-category-band:last-child {
  margin-bottom: 0;
}

.portfolio-category-band > img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms ease;
}

.portfolio-category-shade {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(4, 5, 24, 0.38);
  transition: background-color 350ms ease;
}

.portfolio-category-copy {
  display: grid;
  justify-items: center;
  gap: 28px;
  padding: 30px;
  text-align: center;
}

.portfolio-category-title {
  font-size: calc(clamp(34px, 4vw, 58px) * var(--scale-heading));
  font-weight: 500;
  line-height: 1.05;
  text-transform: uppercase;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.35);
}

.portfolio-category-cta {
  min-width: 154px;
  padding: 14px 24px;
  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: var(--radius);
  font-size: 15px;
  line-height: 1;
}

.portfolio-category-band:hover > img,
.portfolio-category-band:focus-visible > img {
  transform: scale(1.018);
}

.portfolio-category-band:hover .portfolio-category-shade,
.portfolio-category-band:focus-visible .portfolio-category-shade {
  background: rgba(4, 5, 24, 0.28);
}

.portfolio-category-band:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: -4px;
}

.portfolio-collection-heading {
  min-height: 230px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 24px;
  padding: 70px 24px 45px;
  text-align: center;
  background: var(--black);
}

.portfolio-collection-heading h1 {
  font-size: calc(clamp(34px, 4.2vw, 58px) * var(--scale-heading));
}

.portfolio-collection-heading > p {
  max-width: 680px;
  margin: 0;
  color: var(--dim);
  font-size: calc(clamp(17px, 1.5vw, 21px) * var(--scale-subheading));
  line-height: 1.8;
}

.portfolio-back-link {
  color: var(--gold);
  font-size: 15px;
  text-decoration: none;
}

.portfolio-back-link:hover,
.portfolio-back-link:focus-visible {
  color: var(--light);
}

.portfolio-collection-gallery {
  padding-top: 44px;
}

@media (max-width: 768px) {
  .portfolio-gallery-heading {
    min-height: 116px;
    padding-block: 32px 24px;
  }

  .portfolio-category-band {
    height: min(62vh, 520px);
    min-height: 360px;
    margin-bottom: 10px;
  }

  .portfolio-category-index {
    padding-bottom: 10px;
  }

  .portfolio-category-copy {
    gap: 22px;
    padding-inline: 18px;
  }

  .portfolio-category-title {
    font-size: calc(clamp(30px, 10vw, 44px) * var(--scale-heading));
  }

  .portfolio-collection-heading {
    min-height: 190px;
    padding-top: 52px;
  }
}

/* The 74px minimum side inset above exists to clear the quick-links
   rail on desktop/tablet widths. On phones it eats too much of the
   viewport, so drop back to the original compact padding here. */
@media (max-width: 768px) {
  .artist-opening,
  .workshop-visual-hero,
  .daily-workshop-hero,
  .booking-hero,
  .booking-flow-section,
  .booking-confirm,
  .gallery-intro-minimal,
  .inner-hero,
  .rights-hero {
    padding-inline: 34px;
  }

  .artwork-detail,
  .artwork-more,
  .section,
  .home-gallery {
    padding-inline: 24px;
  }

  .artist-opening {
    min-height: 0;
  }

  .artist-opening-copy {
    margin-top: 18px;
  }

  .artist-opening-copy h1 {
    margin-bottom: 10px;
  }

  .artist-opening-lead {
    margin-top: 8px;
  }

  .opening-assurance {
    margin-top: 10px;
  }

  .opening-assurance p + p {
    margin-top: 4px;
  }
}

/* Product purchase proportions — reference-aligned */
.site-header {
  border-bottom: 0;
}

.print-order-quality-heading {
  font-size: 24px;
}

.currency-toggle-mini .js-currency-toggle {
  padding: 7px 14px;
  font-size: 15px;
}

.print-order-price {
  font-size: 19px;
}

.print-order-selects {
  gap: 18px;
  margin-top: 18px;
}

.print-order-selects .print-order-field {
  gap: 9px;
}

.print-order-selects .print-order-field-label,
.print-order-qty-field .print-order-field-label {
  font-size: 16px;
}

.print-order .js-style-select,
.print-order .js-size-select,
.print-order-qty-field {
  margin-top: 18px;
}

.qty-stepper {
  border: 1.5px solid rgba(232, 226, 215, 0.34);
  border-radius: 8px;
}

.qty-stepper button {
  width: 44px;
  height: 44px;
}

.qty-stepper .js-order-qty {
  min-width: 36px;
  font-size: 18px;
}

.print-order .js-add-to-cart {
  min-height: 62px;
  font-size: 19px;
}

.print-order .cta-outline {
  min-height: 54px;
  font-size: 17px;
}

.print-order-details summary {
  font-size: 16px;
}

.print-order-details-body p,
.print-order-note {
  font-size: 15px;
  line-height: 1.7;
}

.special-option-link {
  font-size: 15px;
}

@media (min-width: 921px) {
  .artwork-detail {
    padding-inline: max(74px, calc(50vw - 760px));
  }

  .artwork-detail-grid {
    gap: 32px;
  }

  .artwork-detail-grid .artwork-gallery,
  .artwork-detail-grid .artwork-detail-copy {
    flex: 1 1 50%;
  }

  .artwork-detail-grid .artwork-detail-copy {
    top: 110px;
  }

  .artwork-detail-grid .artwork-detail-copy h1 {
    font-size: calc(clamp(48px, 3.4vw, 64px) * var(--scale-heading));
  }

  .artwork-detail-grid .artwork-detail-copy h1.product-title-label {
    font-size: calc(clamp(22px, 2.2vw, 28px) * var(--scale-heading));
  }

  .artwork-detail-grid .print-order {
    width: 100%;
    max-width: none;
    margin-top: 38px;
  }
}

@media (max-width: 768px) {
  .artwork-detail {
    padding-inline: 18px;
  }
}

/* Desktop-only product gallery arrows */
.artwork-gallery-arrow {
  display: none;
}

@media (min-width: 921px) and (hover: hover) and (pointer: fine) {
  .artwork-gallery-arrow {
    position: absolute;
    top: 50%;
    z-index: 7;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: rgb(14, 16, 35);
    color: rgb(241, 242, 246);
    cursor: pointer;
    direction: ltr;
    opacity: 0;
    transform: translateY(-50%);
    transition: opacity 0.18s ease, background-color 0.18s ease, color 0.18s ease;
  }

  .artwork-gallery-arrow svg {
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .artwork-gallery-arrow-prev {
    left: 5px;
  }

  .artwork-gallery-arrow-next {
    right: 5px;
  }

  .artwork-stage:hover .artwork-gallery-arrow {
    opacity: 1;
  }

  .artwork-gallery-arrow:focus-visible {
    opacity: 1;
  }

  .artwork-gallery-arrow:hover,
  .artwork-gallery-arrow:focus-visible {
    background: rgb(14, 16, 35);
    color: rgb(241, 242, 246);
    outline: 1px solid rgba(255, 255, 255, 0.7);
    outline-offset: 1px;
  }
}
