/* YIKO product explorer: real photography, navy framing, restrained gold accents. */
.pv {
  --pv-rx: 0deg;
  --pv-ry: 0deg;
  --pv-light: 50%;
  --pv-scale: 1;
  --pv-pan-x: 0px;
  --pv-pan-y: 0px;
  --pv-frame: 18px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  padding: 14px;
  border: 1px solid #dce3ec;
  border-radius: 20px;
  background: #fff;
  color: #071a33;
  line-height: 1.5;
  overflow-wrap: anywhere;
  isolation: isolate;
}

.pv, .pv *, .pv-dialog, .pv-dialog *, .pv-page *, .pv-collection-section * {
  box-sizing: border-box;
}

/* Release the old photograph's sizing without changing the surrounding layout. */
.card-media.has-product-viewer,
.product-gallery .card-media.has-product-viewer,
.hero-visual.has-product-viewer,
.split-media.has-product-viewer,
.gallery-grid.has-product-viewer,
.gallery-stack.has-product-viewer {
  min-width: 0;
  height: auto;
  min-height: 0;
  max-height: none;
  aspect-ratio: auto;
  padding: 0;
  overflow: visible;
}

.card-media.has-product-viewer { background: #fff; }
.hero-visual.has-product-viewer::before,
.hero-visual.has-product-viewer > .product-sheen { display: none; }
.hero-visual.has-product-viewer > .pv { box-shadow: 0 24px 60px rgb(0 0 0 / 22%); }
.gallery-grid.has-product-viewer { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:28px; }
.gallery-grid.has-product-viewer > .gallery-stack { display:contents; }
.pv-product-tile { min-width:0; display:grid; gap:20px; align-content:start; }
.pv-product-tile > .pv { --pv-frame:0px; padding:0; border:0; box-shadow:none; background:transparent; }
.pv-product-tile .pv-stage { aspect-ratio:1/1; border:0; border-radius:14px; }
.pv-product-tile > .pv-product-link { display:block; min-width:0; margin:0; padding:0 4px; }
.pv-product-tile .pv-tile-copy h3 { margin:0 0 12px; color:#08254a; font-size:clamp(18px,1.7vw,24px); line-height:1.35; }
.pv-product-tile .pv-tile-copy .text-link { font-size:12px; }
.pv-tile-copy:hover h3 { color:#1f5aa6; }
.pv-tile-copy:focus-visible { outline:2px solid #08254a; outline-offset:6px; border-radius:4px; }
.pv-grouped-gallery-note { max-width:1180px; margin:30px auto 0; padding:0 24px; color:#607086; text-align:center; font-size:12px; line-height:1.8; }

.pv-stage {
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 1px solid #264363;
  border-radius: 14px;
  background: linear-gradient(145deg, #102f53, #041327);
  perspective: 1100px;
  isolation: isolate;
}

.pv .pv-surface {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  min-width: 44px;
  min-height: 44px;
  margin: 0;
  padding: 12px;
  border: var(--pv-frame) solid transparent;
  border-radius: inherit;
  appearance: none;
  background: #fff;
  background-clip: padding-box;
  color: #071a33;
  overflow: hidden;
  cursor: zoom-in;
  touch-action: pan-y;
  user-select: none;
  transform: none;
  transform-origin: center;
  transition: transform 220ms ease-out;
}

/* Specificity exceeds hero, product-gallery and card:hover image rules. */
.pv .pv-stage .pv-surface > img.pv-image,
.pv .pv-thumbs > button.pv-thumb > img {
  position: static;
  inset: auto;
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: 0;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  aspect-ratio: auto;
  object-fit: contain;
  object-position: center;
  background: #fff;
  box-shadow: none;
  filter: none;
  opacity: 1;
  mix-blend-mode: normal;
  transform: none;
}

.pv .pv-stage .pv-surface > img.pv-image {
  height: 100%;
  pointer-events: none;
  transform: translate(var(--pv-pan-x), var(--pv-pan-y)) scale(var(--pv-scale));
  transform-origin: center;
  transition: none;
}

.pv-glare {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(ellipse at var(--pv-light) 20%, rgb(255 255 255 / 20%), transparent 65%);
  pointer-events: none;
}

.pv.is-zoomed .pv-surface { transform: none; cursor: grab; touch-action:none; }
.pv.is-zoomed .pv-glare { display: none; }
.pv.is-dragging .pv-surface { cursor: grabbing; transition: none; }
.pv.is-dragging .pv-stage .pv-surface > img.pv-image { transition: none; }

/* Contact-source UI, not a material glow. The paper changes only inside its ink patch. */
.pv-heat-source {
  position:absolute; z-index:3; width:68px; height:68px;
  transform:translate(-50%,-50%); pointer-events:none;
  border:2px solid #d87523; border-radius:50%;
  box-shadow:0 0 0 5px rgb(248 166 77 / 18%);
}
.pv-heat-source::before {
  content:''; position:absolute; inset:9px; border:1px dashed #d87523; border-radius:50%;
}
.pv-heat-source::after {
  content:''; position:absolute; width:6px; height:6px; left:50%; top:50%;
  transform:translate(-50%,-50%); border-radius:50%; background:#d87523;
}
.pv-heat-source[hidden] { display:none; }

.pv .pv-material {
  position: absolute; top: 12px; left: 12px;
  width: calc(100% - 24px); height: calc(100% - 24px);
  object-fit: contain; pointer-events: none;
  transform: translate(var(--pv-pan-x), var(--pv-pan-y)) scale(var(--pv-scale));
  transform-origin: center;
  transition: none;
}
.pv.has-material-render .pv-image { visibility: hidden; }
.pv.is-material .pv-surface { cursor: grab; }
.pv.is-material.is-dragging .pv-surface { cursor: grabbing; }
.pv.is-material.is-zoomed .pv-surface { cursor: grab; }
.pv.is-uv .pv-surface { cursor:crosshair; }
.pv.is-uv.is-dragging.is-zoomed .pv-surface { cursor:grabbing; }
.pv-material-controls { display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; padding:8px 12px; border:1px solid #dce3ec; border-radius:8px; background:#f5f7fa; color:#33465d; font-size:12px; }
.pv-material-controls > span { flex:1 1 150px; }
.pv-material-controls small { flex-basis:100%; font-size:10px; line-height:1.5; }
.pv--compact .pv-material { top:8px; left:8px; width:calc(100% - 16px); height:calc(100% - 16px); }

.pv .pv-stage > video.pv-video {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  max-width: 100%;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: inherit;
  aspect-ratio: auto;
  background: #041327;
  object-fit: contain;
  box-shadow: none;
  transform: none;
}

.pv.is-video .pv-surface,
.pv.is-video .pv-glare { display: none; }
.pv:not(.is-video) .pv-video { display: none; }

.pv-topline {
  position: absolute;
  z-index: 2;
  top: 12px;
  left: 12px;
  right: 100px;
  display: flex;
  min-width: 0;
  pointer-events: none;
}

.pv-tag, .pv-index {
  padding: 6px 9px;
  border: 1px solid rgb(255 255 255 / 28%);
  border-radius: 6px;
  background: #08254a;
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.4;
}

.pv-tag { letter-spacing: .08em; }
.pv-index {
  position: absolute;
  z-index: 2;
  top: 12px;
  right: 12px;
  max-width: 84px;
  text-align: center;
  font-variant-numeric: tabular-nums;
  pointer-events: none;
}

.pv-navigation {
  position: absolute;
  z-index: 2;
  right: 10px;
  bottom: 10px;
  left: 10px;
  display: flex;
  justify-content: space-between;
  gap: 8px;
  pointer-events: none;
}

/* Keep previous/next clear of native video controls. */
.pv.is-video .pv-navigation { bottom: 64px; }
.pv .pv-arrow, .pv-close {
  display: inline-grid;
  place-items: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  margin: 0;
  padding: 0;
  border: 1px solid #607086;
  border-radius: 50%;
  appearance: none;
  background: #fff;
  color: #08254a;
  font: inherit;
  font-size: 23px;
  line-height: 1;
  cursor: pointer;
  touch-action: manipulation;
  pointer-events: auto;
  transition: background-color 160ms ease, border-color 160ms ease;
}

.pv-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.pv .pv-instruction {
  flex: 1 1 160px;
  min-width: 0;
  margin: 0;
  color: #4c5e74;
  font-size: 12px;
  line-height: 1.5;
}

.pv .pv-tool {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 44px;
  min-height: 44px;
  max-width: 100%;
  margin: 0;
  padding: 8px 13px;
  border: 1px solid #8998aa;
  border-radius: 8px;
  appearance: none;
  background: #fff;
  color: #08254a;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.4;
  white-space: normal;
  overflow-wrap: anywhere;
  cursor: pointer;
  touch-action: manipulation;
  transition: background-color 160ms ease, border-color 160ms ease;
}

.pv .pv-explore { border-color: #08254a; background: #08254a; color: #fff; }
.pv .pv-tool[aria-pressed="true"] { border-color: #08254a; background: #fff2d6; box-shadow: inset 0 -3px #f4a000; }
.pv .pv-caption {
  min-width: 0;
  margin: 0;
  padding: 0;
  color: #08254a;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
}

.pv-thumbs {
  display: flex;
  align-items: stretch;
  gap: 8px;
  min-width: 0;
  max-width: 100%;
  padding: 4px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scroll-padding-inline: 4px;
  scrollbar-width: thin;
  scrollbar-color: #607086 #edf1f6;
}

.pv .pv-thumb {
  display: flex;
  flex: 0 0 84px;
  flex-direction: column;
  gap: 6px;
  width: 84px;
  min-width: 44px;
  min-height: 44px;
  margin: 0;
  padding: 6px;
  border: 2px solid #8b99aa;
  border-radius: 9px;
  appearance: none;
  background: #fff;
  color: #33465d;
  font: inherit;
  text-align: left;
  cursor: pointer;
  touch-action: manipulation;
  scroll-snap-align: start;
  transition: background-color 160ms ease, border-color 160ms ease;
}

.pv .pv-thumbs > button.pv-thumb > img { height: 56px; transition: none; }
.pv-thumb-label { display: block; font-size: 10px; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
.pv .pv-thumb[aria-pressed="true"] { border-color: #08254a; background: #fff2d6; color: #071a33; box-shadow: inset 0 -3px #f4a000; }
.pv .pv-thumb[aria-pressed="true"] .pv-thumb-label { text-decoration: underline; text-underline-offset: 2px; }

.pv-scrub {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
  min-width: 0;
  padding: 10px 12px 0;
  border: 1px solid #dce3ec;
  border-radius: 10px;
  background: #f5f7fa;
  color: #33465d;
  font-size: 12px;
  font-weight: 700;
}

.pv-scrub input[type="range"] {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  margin: 0;
  padding: 0;
  background: transparent;
  accent-color: #08254a;
  cursor: pointer;
}

.pv--compact { --pv-frame: 12px; gap: 9px; padding: 10px; border: 0; border-radius: 16px; }
.pv--compact .pv-stage { aspect-ratio: 1 / 1; border-radius: 11px; }
.pv--compact .pv-surface { padding: 8px; }
.pv--compact .pv-instruction { flex-basis: 100%; }
.pv--compact .pv-tool { flex: 1 1 80px; padding-inline: 9px; }
.pv--compact .pv-topline { top: 8px; left: 8px; right: 85px; }
.pv--compact .pv-tag { padding: 5px 6px; font-size: 9px; letter-spacing: .04em; }
.pv--compact .pv-index { top: 8px; right: 8px; max-width: 70px; padding: 5px 6px; }
.pv--compact .pv-thumb { flex-basis: 72px; width: 72px; }
.pv--compact .pv-thumbs > button.pv-thumb > img { height: 48px; }
.pv--full { box-shadow: 0 12px 36px rgb(7 26 51 / 7%); }

body.pv-modal-open { overflow: hidden; overscroll-behavior: none; }
.pv-dialog {
  width: min(1180px, calc(100vw - 32px));
  min-width: 0;
  max-width: calc(100vw - 32px);
  max-height: 92vh;
  max-height: 92dvh;
  margin: auto;
  padding: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid #dce3ec;
  border-radius: 22px;
  background: #f5f7fa;
  color: #071a33;
  box-shadow: 0 32px 100px rgb(0 0 0 / 40%);
}

.pv-dialog::backdrop { background: rgb(3 14 29 / 82%); backdrop-filter: blur(6px); }
.pv-dialog-shell { min-width: 0; }
.pv-dialog-header {
  position: sticky;
  z-index: 5;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
  min-height: 72px;
  padding: 12px 24px;
  border-bottom: 1px solid #dce3ec;
  background: #fff;
}

.pv-dialog-brand { min-width: 0; color: #08254a; font-size: 12px; font-weight: 900; letter-spacing: .12em; overflow-wrap: anywhere; }
.pv-close { font-size: 28px; }
.pv-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  align-items: start;
  gap: clamp(24px, 4vw, 48px);
  min-width: 0;
}

.pv-detail-layout > * { min-width: 0; max-width: 100%; }
.pv-product-layout { display:grid; gap:clamp(44px,6vw,76px); min-width:0; }
.pv-model-showcase { min-width:0; }
.pv-model-heading { padding:0 0 24px; }
.pv-model-heading .pv-eyebrow { margin:0 0 12px; color:#65501e; font-size:11px; font-weight:800; letter-spacing:.14em; }
.pv-model-heading h1, .pv-model-heading h2 { color:#08254a; font-size:clamp(30px,4vw,52px); }
.pv-model-showcase .pv--material { --pv-frame:0px; padding:0; border:0; box-shadow:none; }
.pv-model-showcase .pv-stage { height:min(54vh,560px); min-height:320px; aspect-ratio:auto; border:0; }
.pv.pv--material .pv-stage { background:radial-gradient(ellipse at 50% 35%,#fff 0%,#f2f5f9 60%,#e6ecf3 100%); }
.pv.pv--material.pv--paper-inspection .pv-stage { background:radial-gradient(ellipse at 50% 30%,#e6edf5 0%,#cad7e5 65%,#b6c7d9 100%); }
.pv.pv--material .pv-surface { background:transparent; }
.pv.pv--material .pv-stage::before { content:''; position:absolute; width:48%; height:4%; left:26%; bottom:5%; border-radius:50%; background:rgb(25 48 77 / 14%); filter:blur(14px); pointer-events:none; }
.pv.pv--material .pv-image { background:transparent; }
.pv .pv-gesture-note { margin:0; padding:4px 8px; color:#52647a; font-size:12px; line-height:1.7; text-align:center; }
.pv .pv-gesture-note small { display:block; margin-top:3px; font-size:10px; color:#718095; }
.pv-gallery-header { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:12px 24px; margin:0 0 14px; }
.pv-gallery-header > h2 { color:#08254a; font-size:clamp(24px,2.8vw,34px); margin:0; }
.pv-media-count { color:#607086; font-size:12px; letter-spacing:.025em; }
.pv-product-information { padding-top:clamp(28px,4vw,48px); border-top:1px solid #dce3ec; }
.pv-gallery-note { margin:0 0 28px; color:#607086; font-size:12px; line-height:1.7; }
.pv-photo-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:32px; align-items:start; width:100%; max-width:780px; margin-inline:auto; }
.pv-photo-item { min-width:0; margin:0; }
.pv-photo-item--video { grid-column:1/-1; }
.pv.pv--single { --pv-frame:0px; padding:0; border:0; border-radius:0; gap:10px; background:transparent; box-shadow:none; }
.pv--single .pv-stage { aspect-ratio:var(--pv-media-ratio,4/3); border:0; border-radius:10px; background:#f6f7f9; }
.pv-photo-grid .pv--single .pv-stage { height:clamp(240px,42vw,420px); aspect-ratio:auto; margin-inline:auto; max-width:100%; }
.pv-photo-grid .pv-photo-item--video .pv-stage { height:auto; aspect-ratio:16/9; }
.pv.pv--single .pv-surface { padding:0; background:transparent; }
.pv--single .pv-caption { padding:2px 0; color:#52647a; font-weight:400; font-size:13px; }
.pv-photo-grid .pv--single .pv-caption { text-align:center; }
.pv-dialog-shell > .pv-product-layout { padding:28px; }

.pv-home-products { display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(60px,8vw,100px); }
.pv-home-products > .card { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); align-items:center; gap:clamp(24px,4vw,56px); padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; overflow:visible; }
.pv-home-products > .card:hover { transform:none; box-shadow:none; }
.pv-home-products .card-media, .pv-home-products .pv,
.pv-home .hero-visual.has-product-viewer, .pv-home .hero-visual.has-product-viewer > .pv { border:0; border-radius:0; background:transparent; box-shadow:none; }
.pv-home-products .card::before, .pv-home-products .card::after { display:none; }
.pv-home-products .card-body { padding:24px 20px 24px 0; }
.pv-home-products .card-body h3 { font-size:clamp(27px,3vw,40px); line-height:1.12; }
.pv-home-products .card-body .pv-home-category { margin:0 0 16px; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:#65501e; font-weight:800; }
.pv-home-products .card-body .pv-home-summary { font-size:16px; line-height:1.8; margin:22px 0 28px; }
[data-product-categories] .card-body p { font-size:16px; line-height:1.8; margin:22px 0 28px; }
.pv-home-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px 24px; }
.pv-home-actions .text-link { font-size:13px; }
.pv-home-products .pv--compact { --pv-frame:0px; padding:0; }
.pv-home-products .pv-stage, .pv-home .hero-visual .pv-stage { aspect-ratio:1/1; border:0; border-radius:0; }
.pv-home-products .pv.pv--material .pv-stage, .pv-home .hero-visual .pv.pv--material .pv-stage { background:transparent; }
.pv-home-products .pv-explore { display:none; }
.pv-home-products .pv-toolbar { padding-inline:8px; }
.pv-home-products .pv-tool { flex:0 0 auto; }
.pv-home-products .pv-instruction { flex:1 1 180px; }
.pv-home .hero-grid { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:40px; }
.pv-home .hero-visual .pv-stage { aspect-ratio:1/1; }
.pv-product-link { margin-top:16px; font-size:13px; }
.has-product-viewer > .pv-product-link { display:inline-flex; margin:12px 8px; }
.pv-home .hero-visual .pv-product-link, .pv-home .hero-visual .pv-gesture-note { color:#e1ebf7; }
.pv-home .hero-visual .pv-gesture-note small { color:#b5c5d9; }
.pv-dialog-shell > .pv-detail-layout { padding: 28px; }
.pv-page { min-width: 0; padding-block: clamp(36px, 6vw, 80px); }
.pv-details { min-width: 0; color: #071a33; overflow-wrap: anywhere; }
.pv-details-header { display:grid; grid-template-columns:minmax(220px,.8fr) minmax(0,1.6fr); gap:24px 48px; align-items:start; }
.pv-details .pv-eyebrow { margin: 0 0 14px; color: #65501e; font-size: 11px; font-weight: 900; letter-spacing: .12em; line-height: 1.5; text-transform: uppercase; }
.pv-details h1, .pv-details h2 { margin:0; color:#08254a; font-size:clamp(24px,2.8vw,34px); line-height:1.2; letter-spacing:-.025em; }
.pv-details .pv-product-summary { margin:0; color:#4c5e74; font-size:16px; line-height:1.9; }
.pv-description { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin-top:36px; font-size:14px; color:#4c5e74; line-height:1.85; }
.pv-spec-block { min-width:0; padding-top:20px; border-top:2px solid #e3e9f0; }
.pv-description h3 { font-size:15px; margin:0 0 12px; color:#08254a; }
.pv-description ul { padding-left:18px; margin:0; }
.pv-description li { margin:6px 0; }
.pv-description p { margin:0; }
.pv-information-footer { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:20px 36px; margin-top:32px; padding-top:24px; border-top:1px solid #e3e9f0; }
.pv-product-note { flex:1 1 280px; }
.pv-copy-note { margin:0; font-size:12px; color:#607086; line-height:1.7; }
.pv-information-footer .pv-detail-actions { margin:0; padding:0; border:0; }
.pv-detail-list { display: grid; gap: 8px; min-width: 0; margin: 24px 0 16px; }
.pv-feature {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  width: 100%;
  min-width: 44px;
  min-height: 52px;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid #8998aa;
  border-radius: 10px;
  appearance: none;
  background: #fff;
  color: #08254a;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  text-align: left;
  overflow-wrap: anywhere;
  cursor: pointer;
  touch-action: manipulation;
  transition: background-color 160ms ease, border-color 160ms ease;
}

.pv-feature > span { min-width: 0; }
.pv-feature-number { display: grid; place-items: center; min-height: 32px; border-radius: 6px; background: #edf1f6; color: #33465d; font-size: 12px; font-weight: 900; font-variant-numeric: tabular-nums; }
.pv-feature[aria-pressed="true"] { border-color: #08254a; background: #fff2d6; box-shadow: inset 3px 0 #f4a000; }
.pv-feature[aria-pressed="true"] .pv-feature-number { background: #08254a; color: #fff; }
.pv-film-link {
  display: inline-flex;
  align-items: center;
  min-width: 44px;
  min-height: 44px;
  max-width: 100%;
  margin: 0;
  padding: 8px 0;
  border: 0;
  border-radius: 4px;
  appearance: none;
  background: transparent;
  color: #1f5aa6;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  text-align: left;
  text-decoration: underline;
  text-underline-offset: 4px;
  overflow-wrap: anywhere;
  cursor: pointer;
  touch-action: manipulation;
}

.pv-detail-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 24px; padding-top: 24px; border-top: 1px solid #dce3ec; }
.pv-detail-actions .btn { min-width: 44px; min-height: 48px; max-width: 100%; padding: 12px 20px; text-align: center; white-space: normal; }
.pv-detail-actions .text-link { min-width: 44px; min-height: 44px; max-width: 100%; font-size: 13px; }

.pv-collection-section { color: #fff; background: #08254a; }
.pv-collection-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); align-items: center; gap: clamp(24px, 5vw, 64px); }
.pv-collection-layout > * { min-width: 0; overflow-wrap: anywhere; }
.pv-collection-layout .eyebrow { color: #ffbd3e; font-size: 12px; }
.pv-collection-layout h2 { color: #fff; font-size: clamp(28px, 3.6vw, 46px); }
.pv-collection-layout p:not(.eyebrow) { margin: 18px 0 0; color: #d5e0ed; font-size: 16px; }
.pv-film-player { overflow: hidden; border: 1px solid #607086; border-radius: 18px; background: #041327; box-shadow: 0 20px 48px rgb(0 0 0 / 20%); }
.pv-film-player > video { display: block; width: 100%; height: auto; min-width: 0; max-width: 100%; aspect-ratio: 16 / 9; margin: 0; padding: 0; border: 0; border-radius: inherit; background: #041327; object-fit: contain; }

.pv button:focus-visible,
.pv input:focus-visible,
.pv video:focus-visible,
.pv-close:focus-visible,
.pv-feature:focus-visible,
.pv-film-link:focus-visible,
.pv-detail-actions a:focus-visible,
.pv-film-player > video:focus-visible {
  outline: 2px solid #08254a;
  outline-offset: 2px;
  box-shadow: 0 0 0 4px #ffbd3e;
}

.pv .pv-surface:focus-visible,
.pv .pv-video:focus-visible,
.pv-film-player > video:focus-visible { outline: 3px solid #ffbd3e; outline-offset: -5px; box-shadow: none; }
.pv button:disabled, .pv-feature:disabled { opacity: .5; cursor: not-allowed; }

@media (hover: hover) {
  .pv .pv-arrow:hover, .pv-close:hover { border-color: #08254a; background: #fff2d6; }
  .pv .pv-tool:hover, .pv .pv-thumb:hover, .pv-feature:hover { border-color: #08254a; background: #edf1f6; }
  .pv .pv-explore:hover { border-color: #0d376b; background: #0d376b; color: #fff; }
  .pv .pv-tool[aria-pressed="true"]:hover,
  .pv .pv-thumb[aria-pressed="true"]:hover,
  .pv-feature[aria-pressed="true"]:hover { background: #ffe9b8; }
  .pv-film-link:hover { color: #08254a; }
}

@media (max-width: 800px) {
  .pv-details-header { grid-template-columns:minmax(0,1fr); gap:20px; }
  .pv-description { grid-template-columns:minmax(0,1fr); gap:24px; margin-top:28px; }
  .pv-spec-block { padding-top:16px; }
  .pv-detail-layout, .pv-collection-layout { grid-template-columns: minmax(0, 1fr); }
  .pv-home-products > .card, .pv-home .hero-grid { grid-template-columns:minmax(0,1fr); }
  .pv-home-products > .card { gap:12px; padding:0; }
  .pv-home-products .card-body { padding:20px 8px; }
  .pv-home-products .card-body .pv-home-summary { margin:18px 0 24px; }
  .pv-home .hero-visual { max-width:none; }
  .pv-model-showcase .pv-stage { min-height:280px; height:min(44vh,420px); }
  .pv-dialog-shell > .pv-product-layout { padding:20px; }
  .pv-dialog-shell > .pv-detail-layout { padding: 20px; }
  .pv-dialog-header { padding-inline: 20px; }
  .pv-photo-grid { gap:24px 16px; }
}

@media (max-width: 700px) {
  .pv-photo-grid { grid-template-columns:minmax(0,1fr); }
  .pv-product-tile .pv-stage { aspect-ratio:4/3; }
  .pv .pv-material { top:8px; left:8px; width:calc(100% - 16px); height:calc(100% - 16px); }
  .gallery-grid.has-product-viewer { grid-template-columns: minmax(0, 1fr); }
  .pv { --pv-frame: 12px; gap: 10px; padding: 10px; border-radius: 16px; }
  .pv--compact .pv-stage { aspect-ratio: 5 / 4; }
  .pv--full .pv-stage { aspect-ratio: 1 / 1; }
  .pv .pv-surface { padding: 8px; }
  .pv-collection-layout { gap: 28px; }
}

@media (max-width: 380px) {
  .pv { --pv-frame: 10px; padding: 8px; }
  .pv .pv-instruction { flex-basis: 100%; }
  .pv .pv-tool { flex: 1 1 76px; padding-inline: 8px; }
  .pv-topline { top: 8px; left: 8px; right: 88px; }
  .pv-tag { padding: 5px 6px; font-size: 9px; letter-spacing: .03em; }
  .pv-index { top: 8px; right: 8px; max-width: 72px; }
  .pv-dialog { border-radius: 14px; }
  .pv-dialog-header { gap: 10px; padding: 10px 12px; }
  .pv-dialog-brand { font-size: 10px; letter-spacing: .07em; }
  .pv-dialog-shell > .pv-detail-layout { padding: 12px; }
  .pv-dialog-shell > .pv-product-layout { padding:12px; }
  .pv-photo-grid { grid-template-columns:minmax(0,1fr); }
  .pv-detail-actions { align-items: stretch; }
  .pv-detail-actions .btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .pv *, .pv *::before, .pv *::after,
  .pv-dialog *, .pv-page *, .pv-collection-section * {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .pv-stage { perspective: none; }
  .pv .pv-surface { transform: none !important; }
  .pv-glare { display: none; }
  /* Magnification remains available through explicit user control. */
  .pv-detail-actions .btn:hover, .pv-detail-actions .text-link:hover::after { transform: none; }
}

/* Author display rules must never reveal hidden controls or native dialogs. */
[hidden], .pv-dialog:not([open]) { display: none !important; }
