#contact .contact-interests { grid-column: 1 / -1; min-width: 0; padding-top: .5rem; border: 0; }
#contact .contact-interests [hidden], #contact .contact-interests[hidden] { display: none; }
#contact .contact-interests__count, #contact .field-optional { color: #625c54; font-size: .8rem; font-weight: 400; }
#contact .contact-interests__intro { margin: 0 0 .35rem; color: #625c54; font-size: .875rem; line-height: 1.5; }
#contact .contact-interest { min-width: 0; margin: 0; padding: 0; border: 0; }
#contact .contact-interest + .contact-interest { border-top: 1px solid #c7bfb3; padding-top: .25rem; }
#contact .contact-interest legend { padding: 0; font-size: .8rem; font-weight: 400; color: #625c54; }
#contact .contact-interest__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.5rem; }
#contact .contact-interest .field--product { grid-column: 1 / -1; }
#contact .contact-interest[data-has-ranges="false"] .field:has([data-interest-field="collection"]) { grid-column: 1 / -1; }
#contact .contact-interest select { width: 100%; }
#contact .contact-interest__remove, #contact .contact-interests__add { min-height: 44px; padding: .5rem 0; border: 0; background: transparent; color: #454039; font: inherit; font-size: .8rem; cursor: pointer; }
#contact .contact-interest__remove { margin-top: .15rem; text-decoration: underline; text-underline-offset: .2em; }
#contact .contact-interests__add { margin: 0; }
#contact .contact-interests button:focus-visible { outline: 2px solid #625c54; outline-offset: 3px; }
#contact .contact-interests button:disabled { cursor: default; }
#contact .contact-interests__status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
#contact .contact-product-picker { min-width: 0; margin: 0; padding: 0; border: 0; }
#contact .contact-product-picker > legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
#contact .contact-product-hint { margin: 0; color: #625c54; font-size: .8rem; }
#contact .contact-product-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .7rem; padding: .6rem 0; }
#contact .contact-product-choice { position: relative; display: grid; place-items: center; aspect-ratio: 1; min-width: 0; cursor: pointer; -webkit-tap-highlight-color: transparent; }
#contact .contact-product-choice img { width: 100%; height: auto; max-height: 100%; object-fit: contain; display: block; background: transparent; transition: transform 220ms ease; }
#contact .contact-product-choice input { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; min-height: 0; margin: 0; padding: 0; opacity: 0; cursor: pointer; }
#contact .contact-product-choice:has(input:checked)::after { content: ""; position: absolute; width: 1.4rem; height: 1px; bottom: -.15rem; left: calc(50% - .7rem); background: #625c54; }
#contact .contact-product-choice input:focus-visible + img { outline: 2px solid #24221f; outline-offset: 3px; }
#contact .contact-product-choice__mark { position: absolute; bottom: .3rem; right: .3rem; width: 1rem; height: 1rem; display: grid; place-items: center; border-radius: 50%; background: #24221f; color: #fff; font-size: .65rem; opacity: 0; pointer-events: none; }
#contact .contact-product-choice input:checked ~ .contact-product-choice__mark { opacity: 1; }
@media (hover: hover) and (pointer: fine) {
  #contact .contact-product-choice.is-previewed { z-index: 3; }
  #contact .contact-product-choice.is-previewed img { transform: scale(1.12); }
}
#contact .contact-product-panel { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; margin-top: .65rem; padding: 0; border: 0; align-items: start; animation: contact-panel-in 180ms ease-out; }
#contact .contact-product-panel__copy { min-width: 0; margin: 0; padding: 0; display: flex; flex-direction: column; align-items: flex-start; gap: .65rem; }
#contact .contact-product-panel h4 { margin: 0; color: #24221f; font: 400 clamp(1.05rem, 1.6vw, 1.4rem)/1.2 var(--font-sans-stack); letter-spacing: -.02em; }
#contact .contact-product-panel__color { font-size: .75rem; color: #625c54; }
#contact .contact-swatches { display: flex; flex-wrap: wrap; gap: .1rem; margin-left: -.25rem; }
#contact .contact-finish { display: grid; place-items: center; width: 32px; height: 32px; padding: 5px; border: 0; background: transparent; cursor: pointer; }
#contact .contact-finish::before { content: ''; width: 20px; height: 20px; display: block; background: var(--swatch); border: 1px solid #24221f20; }
#contact .contact-finish[aria-pressed="true"]::before { outline: 1px solid #24221f; outline-offset: 3px; }
#contact .contact-quantity { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; }
#contact .contact-quantity label { font-size: .75rem; }
#contact .contact-quantity__stepper { display: flex; align-items: center; border: 0; border-bottom: 1px solid #aaa294; }
#contact .contact-quantity button { width: 34px; height: 34px; padding: 0; border: 0; background: transparent; color: #24221f; font: inherit; font-size: 1.1rem; cursor: pointer; }
#contact .contact-quantity input { width: 42px; min-width: 0; min-height: 34px; height: 34px; padding: 0; border: 0; background: transparent; text-align: center; font: 400 .875rem/1 var(--font-sans-stack); appearance: textfield; }
#contact .contact-quantity input::-webkit-inner-spin-button, #contact .contact-quantity input::-webkit-outer-spin-button { appearance: none; margin: 0; }
#contact .contact-product-confirm { padding: .65rem .85rem; min-height: 44px; border: 1px solid #aaa294; background: transparent; color: #24221f; text-decoration: none; font: 400 .8rem/1.3 var(--font-sans-stack); cursor: pointer; }
#contact .contact-product-confirm:hover { border-color: #24221f; }
#contact .contact-product-confirm:disabled { text-decoration: none; color: #625c54; }
#contact [aria-busy="true"] .contact-product-picker { opacity: .65; }
@keyframes contact-panel-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 540px) {
  #contact .contact-interest__fields { column-gap: .85rem; }
  #contact .contact-product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .45rem; }
  #contact .contact-product-panel { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
  #contact .contact-finish { width: 34px; height: 34px; }
  #contact .contact-product-panel h4 { font-size: 1.05rem; }
}
@media (prefers-reduced-motion: reduce) {
  #contact .contact-product-choice img { transition: none; }
  #contact .contact-product-panel { animation: none; }
}

/* Keep the photographs crisp and preserve their natural proportions. */
#contact .contact-product-choice:has(input:focus-visible) { outline: 1px solid #625c54; outline-offset: 3px; }
#contact .contact-product-choice input:focus-visible + img { outline: none; }
#contact .contact-quantity button { -webkit-tap-highlight-color: transparent; }

/* A compact, editable summary for each selected piece. */
#contact .contact-interest > .contact-interest__legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
#contact .contact-interest__toggle { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: .25rem .8rem; width: 100%; min-height: 44px; padding: 0; border: 0; background: transparent; color: #24221f; font: inherit; text-align: left; cursor: pointer; }
#contact .contact-interest__number { grid-column: 1; white-space: nowrap; color: #625c54; font-size: .75rem; }
#contact .contact-interest__summary { grid-column: 1; line-height: 1.4; font-size: .95rem; overflow-wrap: anywhere; }
#contact .contact-interest__action { grid-column: 2; grid-row: 1; color: #625c54; font-size: .75rem; }
#contact .contact-interest__indicator { grid-column: 3; grid-row: 1; font-size: 1.2rem; font-weight: 400; }
#contact [data-interest-body] { padding-top: .5rem; }

#contact .contact-interest__header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 0 1rem; padding: 0; }
#contact .contact-interest__header .contact-interest__remove { display: flex; align-items: center; min-height: 44px; margin: 0; padding: 0; font-size: .75rem; }
@media (max-width: 540px) {
  #contact .contact-interest__header { column-gap: .75rem; }
  #contact .contact-interest__toggle { column-gap: .45rem; }
}

#contact .contact-interests__title { display: flex; align-items: baseline; flex-wrap: wrap; gap: .7rem; margin: 0 0 .25rem; color: #24221f; font: 400 1rem/1.4 var(--font-sans-stack); letter-spacing: normal; }

/* Direct choices replace nested menus. */
#contact .contact-interest .field--choices { grid-column: 1 / -1; gap: .45rem; }
#contact .contact-choice-label { color: #625c54; font-size: .75rem; }
#contact .contact-choice-tabs { display: flex; flex-wrap: wrap; gap: .35rem .75rem; }
#contact .contact-choice-tab { position: relative; display: inline-flex; align-items: center; min-height: 44px; cursor: pointer; }
#contact .contact-choice-tab input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; opacity: 0; cursor: pointer; }
#contact .contact-choice-tab span { display: block; padding: .55rem .65rem; border-bottom: 1px solid transparent; color: #625c54; font-size: .9rem; transition: color 150ms ease, border-color 150ms ease; }
#contact .contact-choice-tab input:checked + span { color: #24221f; border-color: #24221f; }
#contact .contact-choice-tab:hover span { color: #24221f; }
#contact .contact-choice-tab input:focus-visible + span { outline: 1px solid #625c54; outline-offset: 2px; }
#contact .contact-interest[data-selected="false"] .contact-interest__number { grid-column: 1; }
#contact .contact-interest[data-selected="false"] .contact-interest__remove { grid-column: 2; grid-row: 1; }
#contact .contact-interest:has(> .contact-interest__header[hidden]) { padding-top: 0; }
#contact .contact-product-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .9rem; margin-top: .25rem; }
#contact .contact-product-confirm { background: #24221f; border-color: #24221f; color: #f1ede5; }
#contact .contact-product-confirm:hover { background: #454039; }
#contact .contact-product-next { min-height: 44px; padding: .65rem 0; border: 0; background: transparent; color: #24221f; font: 400 .8rem/1.3 var(--font-sans-stack); cursor: pointer; }
#contact .contact-product-next:hover { text-decoration: underline; text-underline-offset: .25em; }
#contact .contact-product-next span { margin-left: .25rem; }
@media (max-width: 540px) {
  #contact .contact-choice-tabs { column-gap: .25rem; }
  #contact .contact-choice-tab span { padding-inline: .5rem; }
}
@media (prefers-reduced-motion: reduce) {
  #contact .contact-choice-tab span { transition: none; }
}

#contact .contact-interest { scroll-margin-top: 100px; }
#contact .contact-product-panel { scroll-margin-block: 100px 24px; }

#contact .contact-interest[data-selected="false"] .contact-interest__header { grid-template-columns: minmax(0, 1fr) auto; }

/* Hover preview; click to keep the controls open. No grid reflow. */
/* Override the intrinsic popover height: fixed grids can stretch in WebKit (270334). */
#contact .contact-product-panel { height: auto; min-height: 0; align-content: start; grid-auto-rows: max-content; }
#contact .contact-product-panel { position: fixed; inset: auto; z-index: 1000; width: 400px; max-width: calc(100vw - 24px); max-height: calc(100dvh - 24px); overflow: auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin: 0; padding: 0; border: 1px solid #bfb7aa; background: #ede9e0; color: #24221f; align-items: start; animation: none; }
#contact .contact-product-panel::backdrop { background: transparent; pointer-events: none; }
#contact .contact-product-panel__copy { align-items: stretch; padding: 1rem; gap: .85rem; }
#contact .contact-product-panel h4 { padding-right: 1rem; font-size: 1.15rem; line-height: 1.25; }
#contact .contact-product-panel__close { position: absolute; top: 0; right: 0; display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 0; background: transparent; color: #24221f; font: 400 1.4rem/1 var(--font-sans-stack); cursor: pointer; }
#contact .contact-product-panel[data-pinned="false"] { pointer-events: none; }
#contact .contact-product-panel[data-mobile="true"] { grid-template-columns: minmax(0, 1fr); max-height: min(70dvh, 460px); }
#contact .contact-product-panel[data-mobile="true"] .contact-product-panel__copy { padding: .85rem .75rem; }
/* One stable footer separates actions from the finish and quantity controls. */
#contact .contact-product-panel .contact-product-actions { grid-column: 1 / -1; display: flex; flex-wrap: nowrap; justify-content: space-between; gap: .75rem; margin: 0; padding: .75rem; border-top: 0; }
#contact .contact-product-panel .contact-product-confirm { flex: 0 0 auto; min-width: 100px; padding-inline: 1.25rem; }
#contact .contact-product-panel .contact-product-next { padding: .65rem .25rem; text-align: left; color: #625c54; }
#contact .contact-product-panel .contact-product-next span { margin: 0 .25rem 0 0; }
#contact .contact-product-panel .contact-swatches { gap: .2rem; margin: .35rem 0 0 -.2rem; }
#contact .contact-product-panel .contact-finish { width: 28px; height: 30px; padding: 4px; }
#contact .contact-product-panel .contact-quantity { justify-content: space-between; gap: .5rem; }
#contact .contact-product-panel .contact-quantity__stepper { border: 1px solid #bfb7aa; }
#contact .contact-product-panel .contact-quantity button { width: 32px; }
#contact .contact-product-panel .contact-quantity input { width: 32px; }
@media (pointer: coarse) {
  #contact .contact-product-panel .contact-finish { width: 34px; height: 36px; }
  #contact .contact-product-panel .contact-quantity button { height: 40px; }
}

@media (max-width: 900px), (pointer: coarse) {
  #contact .contact-product-panel .contact-finish {
    width: 44px; height: 44px;
  }
}

/* Selected pieces are collected below the editor, without numbered headers. */
#contact .contact-interest + .contact-interest { border: 0; padding-top: 0; }
#contact .contact-cart { display: grid; gap: .25rem; margin-top: .75rem; }
#contact .contact-cart__item {
  display: grid; grid-template-columns: 32px minmax(0, 1fr) auto;
  align-items: center; column-gap: .65rem; min-height: 52px;
}
#contact .contact-cart__remove {
  display: grid; place-items: center; width: 32px; height: 44px;
  border: 0; padding: 0; background: transparent; color: #716a61;
  font: 400 1.35rem/1 var(--font-sans-stack); cursor: pointer;
}
#contact .contact-cart__remove:hover { color: #24221f; }
#contact .contact-cart__edit {
  display: grid; grid-template-columns: 48px minmax(0, 1fr); column-gap: .75rem; row-gap: .1rem; justify-items: start; min-height: 44px;
  align-content: center; border: 0; padding: .3rem 0; background: transparent;
  color: #24221f; font: inherit; text-align: left; cursor: pointer;
}
#contact .contact-cart__image { grid-column: 1; grid-row: 1 / 3; width: 48px; height: 72px; object-fit: contain; align-self: center; }
#contact .contact-cart__name { grid-column: 2; align-self: end; overflow-wrap: anywhere; font-size: .9375rem; line-height: 1.35; }
#contact .contact-cart__edit:hover .contact-cart__name { text-decoration: underline; text-underline-offset: .2em; }
#contact .contact-cart__finish { grid-column: 2; align-self: start; overflow-wrap: anywhere; font-size: .75rem; line-height: 1.3; color: #716a61; }
#contact .contact-cart__quantity { font-size: .875rem; white-space: nowrap; padding-right: .2rem; }

/* A single visual frame: collections, then ranges, then their pieces. */
#contact .contact-picker-path { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem .6rem; min-height: 44px; margin-bottom: .65rem; color: #81786b; font-size: .85rem; }
#contact .contact-picker-path button { min-height: 44px; padding: 0; border: 0; background: transparent; color: #625c54; font: inherit; cursor: pointer; }
#contact .contact-picker-path button:hover { color: #24221f; text-decoration: underline; text-underline-offset: .25em; }
#contact .contact-picker-path [aria-current] { color: #24221f; }
#contact .contact-visual-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
#contact [data-interest-selector="range"].contact-visual-choices { grid-template-columns: repeat(4, minmax(0, 1fr)); }
#contact .contact-visual-choice { display: grid; gap: .65rem; align-content: start; min-width: 0; padding: 0; border: 0; background: transparent; color: #24221f; font: inherit; text-align: left; cursor: pointer; }
#contact .contact-visual-choice img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; }
#contact .contact-visual-choice span { min-height: 32px; font-size: .9rem; line-height: 1.3; }
#contact .contact-visual-choice:hover span { text-decoration: underline; text-underline-offset: .25em; }
@media (max-width: 540px) {
  #contact [data-interest-selector="range"].contact-visual-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #contact .contact-visual-choices { gap: .6rem; }
  #contact .contact-visual-choice span { font-size: .85rem; }
}

/* Compact touch panel: one row for quantity and confirmation, no empty footer. */
#contact .contact-product-panel[data-mobile="true"] {
  grid-template-columns: auto minmax(0, 1fr); align-items: center;
  gap: 6px 8px; padding: 12px;
}
#contact .contact-product-panel[data-mobile="true"] .contact-product-panel__copy { display: contents; }
#contact .contact-product-panel[data-mobile="true"] h4 { grid-column: 1 / -1; padding-right: 32px; font-size: 1.05rem; }
#contact .contact-product-panel[data-mobile="true"] .contact-product-panel__copy > div:not(.contact-quantity) { grid-column: 1 / -1; min-width: 0; }
#contact .contact-product-panel[data-mobile="true"] .contact-swatches { display: grid; grid-template-columns: repeat(7, minmax(0, 44px)); gap: 0; margin: 0; }
#contact .contact-product-panel[data-mobile="true"] .contact-finish { width: 100%; min-width: 0; height: 44px; padding: 4px; }
#contact .contact-product-panel[data-mobile="true"] .contact-quantity { grid-column: 1; grid-row: 3; gap: 0; }
#contact .contact-product-panel[data-mobile="true"] .contact-quantity > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
#contact .contact-product-panel[data-mobile="true"] .contact-quantity button { width: 44px; height: 44px; }
#contact .contact-product-panel[data-mobile="true"] .contact-quantity input { height: 44px; }
#contact .contact-product-panel[data-mobile="true"] .contact-product-actions { grid-column: 2; grid-row: 3; min-width: 0; padding: 0; gap: 0; }
#contact .contact-product-panel[data-mobile="true"] .contact-product-confirm { flex: 1 1 auto; width: 100%; min-width: 0; min-height: 46px; padding: 6px 8px; font-size: .8rem; white-space: normal; }
#contact .contact-product-panel[data-mobile="true"] .contact-product-panel__close { width: 44px; height: 44px; }

/* The selected piece is visible in the compact phone panel only. */
#contact .contact-product-panel__mobile-image { display: none; }
#contact .contact-product-panel[data-mobile="true"] .contact-product-panel__mobile-image {
  display: block; position: absolute; top: 12px; left: 12px;
  width: 64px; height: 96px; object-fit: contain;
}
#contact .contact-product-panel[data-mobile="true"] h4 { padding-left: 76px; min-height: 24px; }
#contact .contact-product-panel[data-mobile="true"] .contact-product-panel__copy > div:not(.contact-quantity) {
  padding-left: 76px; min-height: 66px;
}
#contact .contact-product-panel[data-mobile="true"] .contact-swatches {
  grid-template-columns: repeat(7, minmax(24px, 1fr));
}
