.migration-pdp {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: start;
  width: 100%;
  margin: 0;
  color: var(--migration-ink);
  font: 400 16px/1.5 "Hanken Grotesk", system-ui, -apple-system, sans-serif;
}
.pdp-gallery { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.pdp-main { aspect-ratio: 1 / 1; overflow: hidden; border-radius: 20px; background: var(--migration-oat); }
.pdp-main img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pdp-thumbs { display: flex; gap: 10px; }
.pdp-thumb { box-sizing: border-box; width: 72px; height: 72px; padding: 0; border: 2px solid transparent; border-radius: 11px; background: var(--migration-oat); overflow: hidden; cursor: pointer; transition: border-color .18s ease; }
.pdp-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pdp-thumb.active { border-color: var(--migration-teal-dark); }
.pdp-thumb:hover { border-color: var(--migration-teal); }
.pdp-thumb.active:hover { border-color: var(--migration-teal-dark); }
.pdp-thumb:focus-visible { outline: 3px solid var(--migration-teal); outline-offset: 3px; }

.pdp-info { min-width: 0; }
.pdp-eyebrow { margin: 0 0 14px; color: var(--migration-moss); font: 500 12px/normal "Spline Sans Mono", ui-monospace, monospace; letter-spacing: 2.4px; text-transform: uppercase; }
.migration-pdp h1 { margin: 0 0 12px; color: var(--migration-ink); font: 500 46px/1.02 "Spectral", Georgia, serif; letter-spacing: normal; }
.priceblock { margin: 0 0 22px; color: var(--migration-ink); font: 600 26px/normal "Hanken Grotesk", system-ui, -apple-system, sans-serif; }
.priceblock small { color: var(--migration-light-muted); font-size: 14px; font-weight: 500; }
.blurb { margin: 0 0 26px; color: var(--migration-muted); font: 400 17px/1.65 "Hanken Grotesk", system-ui, -apple-system, sans-serif; }
.blurb p { margin: 0; }

.flavor-box { margin: 0 0 26px; padding: 20px 22px; border: 1px solid var(--migration-oat); border-radius: 14px; background: var(--migration-chalk); }
.flavor-eyebrow { margin: 0 0 12px; color: var(--migration-teal-dark); font: 500 11px/normal "Spline Sans Mono", ui-monospace, monospace; letter-spacing: 2.2px; text-transform: uppercase; }
.flavor-row { display: flex; align-items: center; gap: 10px; padding: 5px 0; color: #38332c; font: 400 15px/1.5 "Hanken Grotesk", system-ui, -apple-system, sans-serif; }
.flavor-row .icon { flex: none; color: var(--migration-moss); }

.pdp-buy { display: flex; align-items: center; gap: 14px; margin: 0 0 14px; }
.pdp-buy .form__error-message { flex-basis: 100%; }
.qty { display: flex; align-items: center; flex: none; width: 124px; height: 48px; border: 1px solid #c4bbaa; border-radius: 999px; overflow: hidden; }
.qty button { width: 44px; height: 46px; padding: 1px 6px; border: 0; background: none; color: var(--migration-ink); font: 400 20px/1 "Hanken Grotesk", system-ui, -apple-system, sans-serif; text-align: center; cursor: pointer; }
.qty .qty-num { width: 34px; padding: 0; border: 0; background: none; color: var(--migration-ink); font: 600 16px/normal "Hanken Grotesk", system-ui, -apple-system, sans-serif; text-align: center; -moz-appearance: textfield; }
.qty .qty-num:focus { outline: none; }
.btn-terra { display: flex; flex: 1; align-items: center; justify-content: center; gap: 8px; min-height: 50px; padding: 15px 30px; border: 0; border-radius: 999px; background: var(--migration-teal); color: var(--migration-chalk); font: 600 15px/1 "Hanken Grotesk", system-ui, -apple-system, sans-serif; cursor: pointer; transition: background .18s ease; }
.btn-terra:hover { background: var(--migration-teal-dark); }
.btn-terra[disabled] { opacity: .55; cursor: not-allowed; }
.btn-terra .button__spinner { display: none; }

.pdp-soldout { margin: 0 0 14px; padding: 16px; border-radius: 999px; background: var(--migration-oat-deep); color: var(--migration-light-muted); font: 600 15px/normal "Hanken Grotesk", system-ui, -apple-system, sans-serif; text-align: center; }

.pickup-note { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--migration-light-muted); font: 500 12px/normal "Spline Sans Mono", ui-monospace, monospace; letter-spacing: 0.48px; }
.pickup-note .icon { flex: none; color: var(--migration-moss); }

@media (max-width: 900px) {
  .migration-pdp { grid-template-columns: 1fr; gap: 56px; }
}
@media (prefers-reduced-motion: reduce) {
  .btn-terra { transition: none; }
  .pdp-thumb { transition: none; }
}
