/* Angela Micky — shared product detail. */
.page-product { background: var(--atelier-paper, #f7f3ed); }
.product-main {
  --product-gutter: clamp(18px, 3vw, 48px);
  --product-max: 1800px;
  padding-top: calc(var(--am-header-height, var(--header, 72px)) + 26px);
}
.product-breadcrumbs,
.product-detail {
  width: min(calc(100% - var(--product-gutter) * 2), var(--product-max));
  margin-inline: auto;
}
.product-breadcrumbs { margin-bottom: clamp(22px, 3vw, 42px); }
.product-breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 0;
  padding: 0;
  margin: 0;
  list-style: none;
  color: var(--atelier-muted, #675f56);
  font-size: 12px;
  line-height: 1.5;
}
.product-breadcrumbs li { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.product-breadcrumbs li:not(:last-child)::after { content: "/"; padding: 0 12px; opacity: .5; }
.product-breadcrumbs a { text-underline-offset: 4px; }
.product-breadcrumbs a:hover { text-decoration: underline; }
.product-detail {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  align-items: start;
  gap: clamp(32px, 6vw, 120px);
  margin-bottom: clamp(64px, 8vw, 132px);
}
.product-detail > *, .product-request > * { min-width: 0; }
.product-gallery { min-width: 0; }
.product-gallery__viewport {
  width: 100%;
  height: min(76svh, 860px);
  min-height: 500px;
  overflow: hidden;
  background: var(--atelier-paper-deep, #e9e1d6);
  touch-action: pan-y;
}
.product-gallery__slide { height: 100%; }
.product-gallery__slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  background: transparent;
}
.product-gallery__stage { position: relative; }
.product-gallery__controls {
  position: absolute;
  z-index: 3;
  inset: 0;
  display: none;
  pointer-events: none;
}
.product-gallery[data-enhanced] .product-gallery__controls { display: block; }
.page-product .product-gallery__arrow {
  position: absolute;
  top: 50%;
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .5);
  border-radius: 50%;
  background: rgba(23, 21, 19, .62);
  color: #fff;
  font-size: 20px;
  opacity: 0;
  transform: translateY(-50%);
  transition: opacity .2s ease, background .2s ease;
  pointer-events: none;
  touch-action: manipulation;
  cursor: pointer;
}
.product-gallery__arrow--previous { left: clamp(10px, 1.5vw, 22px); }
.product-gallery__arrow--next { right: clamp(10px, 1.5vw, 22px); }
.page-product .product-gallery__stage:is(:hover, :focus-within) .product-gallery__arrow {
  opacity: 1;
  pointer-events: auto;
}
.page-product .product-gallery__stage:is(:hover, :focus-within) .product-gallery__arrow:disabled {
  opacity: .28;
  pointer-events: auto;
  cursor: default;
}
.page-product .product-gallery__arrow:hover:not(:disabled) { background: var(--atelier-ink, #171513); }
.page-product .product-gallery__arrow:focus-visible { outline-color: #fff; outline-offset: 3px; }
@media (hover: none), (pointer: coarse) {
  .page-product .product-gallery__arrow { opacity: 1; pointer-events: auto; }
  .page-product .product-gallery__arrow:disabled { opacity: .28; pointer-events: auto; cursor: default; }
}
.product-gallery__thumbnails {
  display: flex;
  gap: 10px;
  max-width: 100%;
  padding: 8px 4px 10px;
  margin-inline: -4px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}
.product-gallery__thumbnail {
  position: relative;
  flex: 0 0 66px;
  height: 88px;
  padding: 3px;
  border: 1px solid transparent;
  background: var(--atelier-paper-deep, #e9e1d6);
  opacity: .65;
}
.product-gallery__thumbnail img { background: transparent; object-fit: contain; }
.product-gallery__thumbnail.is-active { border-color: var(--atelier-ink, #171513); opacity: 1; }
.product-gallery__thumbnail:hover { opacity: 1; }
.product-information { padding-top: clamp(0px, 1.5vw, 24px); }
.product-kicker {
  margin: 0 0 20px;
  color: var(--atelier-muted, #675f56);
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.product-information h1 {
  max-width: 100%;
  margin: 0 0 26px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(32px, 3.5vw, 58px);
  font-weight: 400;
  line-height: 1.06;
  letter-spacing: -.025em;
  text-transform: none;
  overflow-wrap: anywhere;
}
.product-price {
  margin: 0 0 32px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(28px, 2.4vw, 38px);
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}
.product-properties { margin: 0 0 30px; border-block: 1px solid var(--atelier-line, rgba(23, 21, 19, .2)); }
.product-properties > div { display: grid; grid-template-columns: minmax(84px, .35fr) minmax(0, 1fr); gap: 12px; padding: 18px 0; }
.product-properties dt { color: var(--atelier-muted, #675f56); }
.product-properties dd { margin: 0; overflow-wrap: anywhere; }
.product-properties a { display: inline-flex; gap: 8px; min-height: 24px; align-items: baseline; text-underline-offset: 4px; }
.product-properties a:hover { text-decoration: underline; }
.product-description { max-width: 56ch; margin-bottom: 30px; font-size: 16px; line-height: 1.7; }
.product-description p { margin: 0; overflow-wrap: anywhere; }
.product-order-link {
  display: inline-flex;
  min-height: 52px;
  min-width: min(100%, 220px);
  max-width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 0 22px;
  border: 1px solid var(--atelier-ink, #171513);
  background: var(--atelier-ink, #171513);
  color: #fff;
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  transition: background .2s ease, color .2s ease;
}
.product-order-link:hover { background: transparent; color: var(--atelier-ink, #171513); }
.product-order-note { max-width: 43ch; margin: 18px 0 28px; color: var(--atelier-muted, #675f56); font-size: 14px; line-height: 1.6; }
.product-back-link { display: inline-flex; min-height: 44px; max-width: 100%; align-items: center; gap: 12px; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.product-back-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.product-request {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  align-items: start;
  gap: clamp(32px, 6vw, 120px);
  padding: clamp(54px, 7vw, 112px) max(var(--product-gutter), calc((100% - var(--product-max)) / 2));
  scroll-margin-top: calc(var(--am-header-height, var(--header, 72px)) + 20px);
}
.product-request .product-kicker { color: rgba(255, 255, 255, .62); }
.product-request h2 {
  margin: 0 0 24px;
  max-width: 12ch;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(40px, 4vw, 66px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.025em;
  text-transform: none;
}
.product-request__intro > p:not(.product-kicker) { max-width: 44ch; color: rgba(255, 255, 255, .72); font-size: 16px; line-height: 1.65; overflow-wrap: anywhere; }
.product-request__intro .product-request__item { color: #fff; font-family: Georgia, "Times New Roman", serif; font-size: 24px; line-height: 1.25; }
.product-request .order-form { max-width: none; margin: 0; }
.product-not-found { width: min(calc(100% - var(--product-gutter) * 2), 1000px); min-height: 65svh; margin-inline: auto; padding-block: clamp(60px, 10vw, 140px); }
.product-not-found h1 { margin-bottom: 26px; font-size: clamp(40px, 7vw, 86px); line-height: 1.05; text-transform: none; overflow-wrap: anywhere; }
.product-not-found > p:not(.product-kicker) { max-width: 50ch; color: var(--atelier-muted, #675f56); font-size: 18px; line-height: 1.6; }
.product-not-found__links { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 34px; }
@media (max-width: 980px) {
  .product-detail { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 28px; }
  .product-gallery__viewport { height: min(66svh, 760px); min-height: 440px; }
  .product-information h1 { font-size: clamp(28px, 4.2vw, 44px); }
  .product-request { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 30px; }
}
@media (max-width: 760px) {
  .product-main { padding-top: calc(var(--am-header-height, var(--header, 72px)) + 20px); }
  .product-detail { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .product-gallery__viewport { height: min(72svh, 760px); min-height: 360px; }
  .product-information { padding-top: 0; }
  .product-information h1 { max-width: 20ch; font-size: clamp(34px, 6vw, 48px); }
  .product-kicker { margin-bottom: 16px; }
  .product-price { margin-bottom: 26px; }
  .product-request { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .product-request h2 { max-width: none; }
  .product-order-link { min-width: min(100%, 260px); }
}
@media (max-width: 430px) {
  .product-gallery__viewport { min-height: 320px; height: 62svh; max-height: 640px; }
  .product-gallery__thumbnail { flex-basis: 56px; height: 76px; }
  .product-breadcrumbs li:not(:last-child)::after { padding-inline: 8px; }
  .product-properties > div { grid-template-columns: minmax(0, 1fr); gap: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .product-order-link { transition: none; }
  .page-product .product-gallery__arrow { transition: none !important; }
}

/* Photo links keep a file URL as the no-JavaScript fallback. */
.product-gallery__photo {
  display: block;
  width: 100%;
  height: 100%;
  cursor: zoom-in;
  user-select: none;
  -webkit-user-drag: none;
}
.page-atelier .product-gallery__photo:focus-visible { outline-offset: -4px; }
html.am-photo-modal-open { overflow: hidden; overscroll-behavior: none; }
body.fancybox-active { overflow: hidden; overscroll-behavior: none; }
.am-product-lightbox .fancybox-bg { background: #171513; }
.am-product-lightbox .fancybox-image { background: transparent; object-fit: contain; }
.am-product-lightbox .fancybox-caption__body {
  max-width: 68ch;
  margin-inline: auto;
  font-family: Inter, "Helvetica Neue", Arial, sans-serif;
  font-size: 13px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.am-product-lightbox .fancybox-button { border-radius: 0; }
.am-product-lightbox .fancybox-button:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }
