/* Shapes product pages · original photography, Helvetica and the selected salmon rail. */
.product-page .index-main { min-height: 100dvh; display: flex; flex-direction: column; }
.product-topline { display: flex; align-items: center; justify-content: space-between; gap: var(--space-lg); margin-bottom: var(--space-xl); padding-bottom: var(--space-md); border-bottom: 1px solid var(--color-rule); font-size: 12px; }
.product-topline a { display: inline-flex; align-items: center; min-height: 44px; white-space: nowrap; }
.product-topline > span { font-variant-numeric: tabular-nums; white-space: nowrap; }
.product-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: start; gap: var(--space-2xl); padding-bottom: var(--space-3xl); }
.product-photo img { width: 100%; height: auto; }
.product-photo img + img { margin-top: var(--space-lg); }
.product-price { margin-bottom: var(--space-lg); font-size: 28px; font-variant-numeric: tabular-nums; }
.product-description p + p { margin-top: var(--space-md); }
.product-info { min-width: 0; }
.product-info h1, .enquiry-heading h1 { font-family: var(--font-graphic); font-size: clamp(32px, 3.5vw, 54px); font-weight: 500; letter-spacing: -.045em; line-height: 1.08; }
.product-subtitle { margin-top: var(--space-md); font-size: 17px; line-height: 1.5; }
.product-status { margin-top: var(--space-lg); color: var(--color-accent); font-size: 12px; font-weight: 500; }
.product-description { margin-top: var(--space-lg); font-size: 15px; line-height: 1.7; }
.product-details { margin: var(--space-xl) 0; font-size: 13px; }
.product-details > div { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.4fr); gap: var(--space-md); padding-block: var(--space-3); border-top: 1px solid var(--color-rule); }
.product-details > div:last-child { border-bottom: 1px solid var(--color-rule); }
.product-details dt { font-weight: 500; }
.product-details dd { margin: 0; overflow-wrap: anywhere; }
.product-demo-price { display: grid; gap: var(--space-sm); }
.product-demo-price > span { color: var(--color-accent); font-size: 12px; font-weight: 500; }
.product-demo-price strong { font-size: 28px; font-weight: 500; font-variant-numeric: tabular-nums; }
.product-demo-note { margin-block: var(--space-3) var(--space-lg); max-width: 52ch; font-size: 12px; line-height: 1.6; }
.product-action { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); width: 100%; min-height: 52px; padding: var(--space-md) var(--space-lg); background: var(--color-accent); color: var(--color-accent-ink); font-size: 14px; line-height: 1.3; white-space: nowrap; }
.product-action:hover, .product-action:active { text-decoration: underline; text-underline-offset: 4px; }
.product-note { margin-top: var(--space-3); max-width: 52ch; font-size: 12px; line-height: 1.6; }
.product-footer { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-md); margin-top: auto; padding-top: var(--space-lg); border-top: 1px solid var(--color-rule); font-size: 12px; }
.product-footer > span { font-weight: 700; }
.product-footer a { display: inline-flex; align-items: center; gap: var(--space-sm); min-height: 44px; white-space: nowrap; }
.enquiry-heading { max-width: 650px; padding-block: var(--space-md) var(--space-2xl); }
.enquiry-heading p { margin-top: var(--space-lg); max-width: 55ch; font-size: 16px; line-height: 1.65; }
.enquiry-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: var(--space-2xl); padding-bottom: var(--space-3xl); }
.enquiry-summary { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: start; gap: var(--space-lg); }
.enquiry-summary img { width: 100%; height: auto; }
.enquiry-summary h2, .enquiry-next h2 { font-size: 22px; line-height: 1.25; font-weight: 500; letter-spacing: -.025em; }
.enquiry-summary p { margin-top: var(--space-3); font-size: 13px; }
.enquiry-next > p:not(.product-note) { margin-block: var(--space-md) var(--space-lg); font-size: 15px; line-height: 1.7; }
.demo-order-totals dd { text-align: right; font-variant-numeric: tabular-nums; }
.payment-preview { display: none; margin-top: var(--space-lg); padding: var(--space-lg); border: 1px solid var(--color-accent); scroll-margin-top: var(--space-lg); }
.payment-preview:target { display: block; }
.payment-preview h3 { font-size: 18px; font-weight: 500; }
.payment-preview p { margin-top: var(--space-3); font-size: 14px; line-height: 1.6; }
.payment-preview a { display: inline-flex; align-items: center; min-height: 44px; margin-top: var(--space-sm); font-size: 12px; white-space: nowrap; text-decoration: underline; }
@media (max-width: 1100px) {
  .product-layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); }
  .product-photo { max-width: 640px; }
  .product-info { max-width: 640px; }
  .enquiry-layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); }
  .enquiry-summary { max-width: 500px; }
  .enquiry-next { max-width: 540px; }
}
@media (max-width: 760px) {
  .product-page .index-main { min-height: calc(100dvh - 76px); }
  .product-layout { padding-bottom: var(--space-2xl); }
  .product-info h1, .enquiry-heading h1 { font-size: clamp(30px, 7vw, 44px); }
  .product-action { padding-inline: var(--space-md); font-size: 13px; }
  .enquiry-heading { padding-top: 0; padding-bottom: var(--space-xl); }
  .enquiry-layout { padding-bottom: var(--space-2xl); }
  .enquiry-summary { gap: var(--space-md); }
  .enquiry-summary h2 { font-size: 20px; }
  .product-footer { gap: var(--space-sm); }
}
