/* Show complete products at every viewport and model selection. */
img { max-width: 100%; }
.fr-hero, .fr-products, .fr-capsule-grid, .fr-editorial, .fr-story, .fr-samples, .product-grid { min-width: 0; }
.fr-hero > *, .fr-products > *, .fr-capsule-grid > *, .fr-editorial > *, .fr-story > *, .product-grid > * { min-width: 0; }
.fr-hero:has(.fr-hero-media) { grid-template-columns: minmax(0,1fr) minmax(0,1fr); min-height: 0; align-items: center; }
.fr-hero-media { width: 100%; max-width: none; min-height: 0; aspect-ratio: 1122 / 1402; background: #e5ddcf; }
.fr-hero-media img { position: static; width: 100%; height: 100%; object-fit: contain; animation: none; }
.fr-product-stage { display: grid; place-items: center; aspect-ratio: 1 / 1; width: 100%; min-width: 0; }
.fr-product-stage img { width: 100%; height: 100%; aspect-ratio: auto; max-height: none; object-fit: contain; }
.fr-product-tabs { grid-template-columns: repeat(3,minmax(0,1fr)); }
.fr-product-tab { min-width: 0; overflow-wrap: anywhere; }
.fr-product-tab img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; background: #e5ddcf; }
.fr-products { grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); }
.fr-photo-button img { aspect-ratio: auto; height: auto; object-fit: contain; }
.fr-photo-button:hover img, .fr-image:hover img { transform: none; }
.fr-editorial { align-items: center; }
.fr-editorial-photo img { min-height: 0; height: auto; aspect-ratio: auto; object-fit: contain; }
.fr-section-head > p { flex-shrink: 0; }
.fr-lightbox { overscroll-behavior: contain; }
.fr-lightbox img { width: 100%; height: auto; max-height: 72dvh; object-fit: contain; }
.fr-menu, .fr-product-tab, .fr-lightbox-head button { min-height: 44px; }
.fr-page .fr-hero .fr-image img, .fr-page .fr-look-pair img, .fr-page .fr-detail img, .fr-page .fr-board img { aspect-ratio: auto; height: auto; object-fit: contain; }
.fr-page .fr-samples .fr-image { aspect-ratio: 4 / 3; }
.fr-page .fr-samples .fr-image img { width: 100%; height: 100%; object-fit: contain; }
.fr-study-gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; margin-top: 36px; }
.fr-study-gallery figure { margin: 0; min-width: 0; }
.fr-study-gallery button { display: block; width: 100%; padding: 0; background: transparent; cursor: zoom-in; }
.fr-study-gallery img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; }
.fr-study-gallery figcaption { margin-top: 18px; font-size: 16px; }
.fr-study-gallery figcaption span { display: block; margin-top: 6px; font-size: 14px; color: #546052; }
.fr-study-link { margin-top: 32px; }
@media (max-width: 1100px) {
  .fr-nav { min-height: 66px; }
  .fr-menu { display: block; }
  .fr-nav nav { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 24px var(--pad); gap: 6px; flex-direction: column; background: var(--paper); border-bottom: 1px solid var(--line); max-height: calc(100dvh - 66px); overflow-y: auto; font-size: 16px; }
  .fr-nav nav.is-open { display: flex; }
  .fr-nav nav a { padding: 12px 0; min-height: 44px; }
  .fr-nav-end > a { display: none; }
}
@media (max-width: 760px) {
  .fr-hero:has(.fr-hero-media), .fr-products { grid-template-columns: minmax(0,1fr); }
  .fr-hero-copy { padding: 32px 0 40px; }
  .fr-hero-media { min-height: 0; width: 100%; }
  .fr-product-stage { max-width: 580px; margin-inline: auto; }
  .fr-section-head { display: block; }
  .fr-section-head > p { max-width: 100%; margin-top: 24px; }
  .fr-capsule-grid { grid-template-columns: minmax(0,1fr); gap: 34px; }
  .fr-capsule-grid figure:nth-child(n) { margin-top: 0; width: 100%; grid-column: auto; }
  .fr-story-details { grid-template-columns: minmax(0,1fr); }
  .fr-study-gallery { grid-template-columns: minmax(0,1fr); gap: 34px; }
  .fr-editorial-copy { padding: 40px var(--pad) 52px; }
  .fr-hero-label { left: 12px; right: 12px; bottom: 12px; font-size: 12px; }
  .fr-page .fr-section-heading, .fr-page .fr-product-notes { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .fr-page .fr-caption { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  .fr-motion-ready [data-fr-reveal] { opacity: 1; transform: none; }
}
