.product-detail-page {
  background: #fff;
}

.product-page-container {
  width: min(1400px, calc(100% - 44px));
  margin: 0 auto;
}

.page-band {
  padding: clamp(72px, 8vw, 124px) 0;
}

.product-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: clamp(620px, calc(100vh - 76px), 790px);
  overflow: hidden;
  background: #eaf3ff;
}

.product-hero-image,
.product-hero-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.product-hero-image {
  max-width: none;
  object-fit: cover;
  object-position: center;
}

.product-hero-shade {
  background: linear-gradient(90deg, rgba(247, 251, 255, 0.99) 0%, rgba(247, 251, 255, 0.93) 31%, rgba(247, 251, 255, 0.55) 49%, rgba(247, 251, 255, 0.04) 72%);
}

.product-hero-content {
  position: relative;
  z-index: 1;
  width: min(650px, calc(100% - 44px));
  margin-left: max(22px, calc((100vw - 1400px) / 2));
}

.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-bottom: 38px;
  color: #58627c;
  font-size: 0.8rem;
  font-weight: 700;
}

.breadcrumb a {
  text-decoration: none;
}

.breadcrumb a:hover {
  color: var(--blue);
}

.product-hero h1 {
  max-width: 640px;
  margin: 12px 0 20px;
  font-size: clamp(2.8rem, 5.2vw, 5.3rem);
  line-height: 0.98;
  letter-spacing: 0;
}

.product-hero-intro {
  max-width: 580px;
  margin: 0;
  color: #525d78;
  font-size: clamp(1.05rem, 1.35vw, 1.27rem);
}

.product-hero-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 28px;
}

.product-hero-facts span {
  padding: 8px 12px;
  border: 1px solid rgba(37, 70, 110, 0.18);
  border-radius: 4px;
  color: #293557;
  background: rgba(255, 255, 255, 0.7);
  font-size: 0.82rem;
  font-weight: 800;
}

.product-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 34px;
}

.product-hero-actions .secondary {
  color: var(--navy);
  border-color: #aebed0;
  background: rgba(255, 255, 255, 0.78);
}

.product-subnav {
  position: sticky;
  top: 76px;
  z-index: 12;
  display: flex;
  justify-content: center;
  gap: clamp(18px, 3.4vw, 52px);
  padding: 16px 22px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.96);
  white-space: nowrap;
  backdrop-filter: blur(12px);
  scrollbar-width: none;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
}

.product-subnav::-webkit-scrollbar {
  display: none;
}

.product-detail-page section[id] {
  scroll-margin-top: 142px;
}

.product-subnav a {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  scroll-snap-align: start;
  color: #3a4261;
  font-size: 0.82rem;
  font-weight: 800;
  text-decoration: none;
}

.product-subnav a:hover {
  color: var(--cyan);
}

.product-intro {
  padding-bottom: clamp(58px, 6vw, 92px);
}

.product-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(0, 1fr);
  gap: clamp(42px, 8vw, 130px);
  align-items: start;
}

.product-intro h2,
.product-section-heading h2,
.configuration-copy h2,
.packing-copy h2 {
  margin: 8px 0 0;
  font-size: clamp(2.15rem, 4vw, 4rem);
  line-height: 1.08;
  letter-spacing: 0;
}

.product-intro-copy {
  padding-top: 24px;
  color: var(--muted);
  font-size: 1.05rem;
}

.product-intro-copy p:first-child {
  margin-top: 0;
}

.product-section-heading {
  max-width: 860px;
  margin-bottom: clamp(34px, 5vw, 60px);
}

.product-section-heading.compact {
  max-width: 720px;
}

.product-section-heading > p:last-child {
  max-width: 730px;
  margin: 20px 0 0;
  color: var(--muted);
}

.product-solutions {
  background: #f4f7fc;
}

.solution-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.solution-panel {
  overflow: hidden;
  border: 1px solid #dce5ef;
  border-radius: 8px;
  background: #fff;
}

.solution-panel > img {
  width: 100%;
  aspect-ratio: 1.65;
  object-fit: cover;
}

.solution-panel:first-child > img {
  object-position: center 48%;
}

.solution-panel-body {
  padding: clamp(24px, 3.3vw, 42px);
}

.solution-number,
.application-grid figcaption span {
  color: var(--cyan);
  font-size: 0.76rem;
  font-weight: 900;
  text-transform: uppercase;
}

.solution-panel h3 {
  margin: 7px 0 10px;
  font-size: clamp(1.35rem, 2vw, 1.8rem);
}

.solution-panel p {
  margin: 0;
  color: var(--muted);
}

.solution-panel ul,
.check-list {
  display: grid;
  gap: 10px;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}

.solution-panel li,
.check-list li {
  position: relative;
  padding-left: 22px;
  color: #3e4968;
  font-weight: 700;
}

.solution-panel li::before,
.check-list li::before {
  position: absolute;
  top: 0.72em;
  left: 0;
  width: 8px;
  height: 2px;
  content: "";
  background: var(--cyan);
}

.rigid-standard-series {
  background: #fff;
}

.flex-standard-series {
  background: #f6f8fc;
}

.flex-model-image {
  background: #eef1f6;
}

.flex-model-image img {
  object-fit: cover;
}

.flex-model-image-cob img {
  object-position: center 44%;
}

.flex-model-image-cct img {
  object-position: center;
}

.rigid-model-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.rigid-model-card {
  overflow: hidden;
  border: 1px solid #d8e2ee;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(24, 34, 68, 0.08);
}

.rigid-model-image {
  position: relative;
  display: grid;
  height: clamp(270px, 30vw, 430px);
  place-items: center;
  overflow: hidden;
  background: #9c9d99;
}

.rigid-model-image-light {
  background: #f4f6f8;
}

.rigid-model-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rigid-model-image-light img {
  object-fit: contain;
}

.rigid-model-image > span {
  position: absolute;
  top: 18px;
  left: 18px;
  padding: 8px 11px;
  border-radius: 4px;
  color: #fff;
  background: rgba(21, 23, 59, 0.92);
  font-size: 0.78rem;
  font-weight: 850;
  text-transform: uppercase;
}

.rigid-model-body {
  padding: clamp(24px, 3vw, 38px);
}

.rigid-model-heading {
  display: flex;
  gap: 22px;
  align-items: flex-start;
  justify-content: space-between;
  padding-bottom: 22px;
  border-bottom: 1px solid #e1e7ef;
}

.rigid-model-heading p {
  margin: 0 0 5px;
  color: var(--cyan);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.rigid-model-heading h3 {
  margin: 0;
  font-size: clamp(1.35rem, 2vw, 1.8rem);
}

.rigid-model-heading > strong {
  flex: 0 0 auto;
  color: var(--navy);
  font-size: 1.05rem;
}

.rigid-model-specs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.cloud-product-description {
  margin: 0 0 22px;
  color: var(--muted);
  line-height: 1.65;
}

.rigid-model-specs > div {
  padding: 16px 16px 16px 0;
  border-bottom: 1px solid #e5eaf1;
}

.rigid-model-specs > div:nth-child(even) {
  padding-right: 0;
  padding-left: 16px;
  border-left: 1px solid #e5eaf1;
}

.rigid-model-specs dt {
  color: #6a7692;
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
}

.rigid-model-specs dd {
  margin: 5px 0 0;
  color: var(--navy);
  font-weight: 800;
}

.rigid-model-drawing {
  margin-top: 20px;
  border-bottom: 1px solid #e1e7ef;
}

.rigid-model-drawing summary {
  position: relative;
  padding: 0 28px 16px 0;
  color: var(--navy);
  cursor: pointer;
  font-weight: 850;
  list-style: none;
}

.rigid-model-drawing summary::-webkit-details-marker {
  display: none;
}

.rigid-model-drawing summary::after {
  position: absolute;
  top: 0;
  right: 2px;
  content: "+";
  color: var(--cyan);
  font-size: 1.25rem;
  line-height: 1;
}

.rigid-model-drawing[open] summary::after {
  content: "−";
}

.rigid-model-drawing img {
  width: 100%;
  margin: 2px 0 18px;
  background: #fff;
}

.button.secondary.rigid-model-rfq {
  width: 100%;
  margin-top: 22px;
  color: var(--navy);
  border-color: #b8c9da;
  background: #fff;
  text-align: center;
}

.button.secondary.rigid-model-rfq:hover {
  color: #07112d;
  border-color: var(--cyan);
  background: #e9f8fe;
}

.rigid-series-note {
  max-width: 1040px;
  margin: 24px 0 0;
  color: #64708a;
  font-size: 0.9rem;
}

@media (max-width: 760px) {
  .rigid-model-grid,
  .rigid-model-specs {
    grid-template-columns: 1fr;
  }

  .rigid-model-image {
    height: 280px;
  }

  .rigid-model-specs > div:nth-child(even) {
    padding-left: 0;
    border-left: 0;
  }

  .rigid-model-heading {
    display: grid;
  }
}

.detail-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.detail-gallery figure {
  position: relative;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #e9edf3;
}

.detail-gallery .detail-feature {
  grid-column: 1 / -1;
  aspect-ratio: 16 / 9;
}

.detail-gallery figure:not(.detail-feature) {
  aspect-ratio: 16 / 9;
}

.detail-gallery img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #f4f5f7;
}

.detail-feature img {
  object-position: center;
}

.detail-gallery .detail-lens img {
  object-fit: contain;
  background: #f4f5f7;
}

.detail-gallery figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  gap: 2px;
  padding: 32px 22px 20px;
  color: #fff;
  background: linear-gradient(transparent, rgba(13, 18, 43, 0.88));
}

.detail-gallery figcaption strong {
  font-size: 1rem;
}

.detail-gallery figcaption span {
  color: rgba(255, 255, 255, 0.75);
  font-size: 0.82rem;
}

.configuration-section {
  color: #fff;
  background: var(--navy);
}

.configuration-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.77fr) minmax(0, 1.23fr);
  gap: clamp(48px, 8vw, 130px);
  align-items: start;
}

.configuration-copy {
  position: sticky;
  top: 155px;
}

.configuration-copy h2 {
  color: #fff;
}

.configuration-copy > p:not(.eyebrow) {
  margin-top: 22px;
  color: rgba(255, 255, 255, 0.67);
}

.configuration-note {
  display: grid;
  gap: 5px;
  margin-top: 38px;
  padding: 22px 0 22px 22px;
  border-left: 3px solid var(--cyan);
}

.configuration-note span {
  color: rgba(255, 255, 255, 0.67);
  font-size: 0.9rem;
}

.specification-list {
  margin: 0;
}

.specification-list > div {
  display: grid;
  grid-template-columns: minmax(140px, 0.75fr) minmax(0, 1.25fr);
  gap: 30px;
  padding: 24px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.specification-list dt {
  color: var(--cyan);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.specification-list dd {
  margin: 0;
  color: #fff;
  font-weight: 750;
}

.application-showcase {
  background: #f6f8fc;
}

.application-grid {
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  grid-template-rows: repeat(2, minmax(250px, 1fr));
  gap: 18px;
}

.application-grid figure {
  position: relative;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #dfe5eb;
}

.application-grid .application-wide {
  grid-row: 1 / 3;
}

.application-grid.application-single {
  display: block;
  max-width: 1120px;
  margin-inline: auto;
}

.application-single .application-wide {
  aspect-ratio: 4 / 3;
}

.application-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.application-grid .application-side img {
  object-fit: contain;
  background: #171a20;
}

.application-grid figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  gap: 3px;
  padding: 44px 22px 20px;
  color: #fff;
  background: linear-gradient(transparent, rgba(10, 15, 38, 0.9));
}

.application-grid figcaption strong {
  font-size: 1.02rem;
}

.packing-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.72fr);
  gap: clamp(42px, 7vw, 105px);
  align-items: center;
}

.packing-gallery {
  display: grid;
  grid-template-columns: 1.18fr 0.82fr;
  gap: 14px;
  height: clamp(420px, 46vw, 610px);
}

.packing-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 8px;
}

.packing-gallery .packing-main {
  object-position: center 35%;
}

.packing-copy > p:not(.eyebrow) {
  margin: 22px 0 0;
  color: var(--muted);
}

.rigid-rfq {
  background: #eff5fb;
}

.rfq-heading {
  max-width: 760px;
}

.product-rfq-aside {
  padding: clamp(26px, 4vw, 42px);
  border-radius: 8px;
  color: #fff;
  background: var(--navy);
}

.product-rfq-aside h3 {
  margin: 0 0 24px;
  color: #fff;
  font-size: 1.65rem;
}

.product-rfq-aside ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

.product-rfq-aside li {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 14px;
  padding: 18px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.product-rfq-aside li > span {
  color: var(--cyan);
  font-size: 0.75rem;
  font-weight: 900;
}

.product-rfq-aside li p {
  margin: 4px 0 0;
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.88rem;
}

.direct-contact {
  display: grid;
  gap: 8px;
  margin-top: 25px;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.direct-contact a {
  color: #fff;
  font-size: 0.9rem;
  font-weight: 750;
  text-decoration: none;
  overflow-wrap: anywhere;
}

@media (max-width: 980px) {
  .product-hero {
    min-height: 690px;
  }

  .product-hero-image {
    object-position: 61% center;
  }

  .product-hero-shade {
    background: linear-gradient(90deg, rgba(247, 251, 255, 0.98) 0%, rgba(247, 251, 255, 0.9) 43%, rgba(247, 251, 255, 0.28) 72%);
  }

  .product-subnav {
    top: 76px;
    justify-content: flex-start;
  }

  .product-intro-grid,
  .configuration-layout,
  .packing-layout {
    grid-template-columns: 1fr;
  }

  .configuration-copy {
    position: static;
  }

  .solution-grid {
    grid-template-columns: 1fr;
  }

  .packing-layout {
    gap: 44px;
  }
}

@media (max-width: 680px) {
  .product-page-container {
    width: min(100% - 28px, 1400px);
  }

  .page-band {
    padding: 64px 0;
  }

  .product-hero {
    align-items: flex-end;
    min-height: 760px;
  }

  .product-hero-image {
    object-position: 69% center;
  }

  .product-hero-shade {
    background: linear-gradient(180deg, rgba(247, 251, 255, 0.08) 0%, rgba(247, 251, 255, 0.48) 34%, rgba(247, 251, 255, 0.97) 61%, #f7fbff 100%);
  }

  .product-hero-content {
    width: calc(100% - 28px);
    margin: 0 14px 48px;
  }

  .breadcrumb {
    margin-bottom: 20px;
  }

  .product-hero h1 {
    font-size: clamp(2.55rem, 12vw, 3.7rem);
  }

  .product-hero-facts {
    gap: 6px;
  }

  .product-subnav {
    top: 69px;
    padding: 4px 14px;
  }

  .product-subnav a {
    min-height: 44px;
  }

  .product-intro-copy {
    padding-top: 0;
  }

  .detail-gallery,
  .application-grid {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: none;
  }

  .detail-gallery .detail-feature,
  .application-grid .application-wide {
    grid-row: auto;
  }

  .detail-gallery figure,
  .application-grid figure {
    aspect-ratio: 1.05;
  }

  .specification-list > div {
    grid-template-columns: 1fr;
    gap: 7px;
  }

  .packing-gallery {
    grid-template-columns: 1fr 1fr;
    height: 390px;
  }

  .rfq-form {
    grid-template-columns: 1fr;
  }

  .wide {
    grid-column: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .product-subnav {
    scroll-behavior: auto;
  }
}

/* PMMA light guide panel page */
.lgp-detail-page .page-band {
  padding: clamp(60px, 6vw, 96px) 0;
}

.lgp-product-hero .product-hero-image {
  object-position: center;
}

.lgp-types-section {
  background: #f4f7fc;
}

.lgp-types-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.lgp-types-grid article {
  overflow: hidden;
  border: 1px solid #dce5ef;
  border-radius: 8px;
  background: #fff;
}

.lgp-type-media {
  aspect-ratio: 1.12;
  overflow: hidden;
  background: #11142f;
}

.lgp-type-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lgp-types-grid article:first-child .lgp-type-media img {
  transform: translateY(25%) scale(1.5);
  transform-origin: center;
}

.lgp-types-grid article:nth-child(2) .lgp-type-media img {
  object-position: center;
}

.lgp-types-grid article > div:not(.lgp-type-media) {
  padding: 24px;
}

.lgp-types-grid span {
  color: var(--cyan);
  font-size: 0.75rem;
  font-weight: 900;
  text-transform: uppercase;
}

.lgp-types-grid h3 {
  margin: 7px 0 8px;
  font-size: 1.3rem;
}

.lgp-types-grid p {
  margin: 0;
  color: var(--muted);
  font-size: 0.94rem;
}

.lgp-types-grid ul {
  display: grid;
  gap: 7px;
  margin: 18px 0 20px;
  padding: 0;
  color: var(--ink);
  font-size: 0.88rem;
  font-weight: 700;
  list-style: none;
}

.lgp-types-grid li {
  position: relative;
  padding-left: 16px;
}

.lgp-types-grid li::before {
  position: absolute;
  top: 0.62em;
  left: 0;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--cyan);
  content: "";
}

.lgp-types-grid a {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  color: var(--ink);
  font-size: 0.88rem;
  font-weight: 850;
  text-decoration: none;
}

.lgp-types-grid a::after {
  margin-left: 5px;
  color: var(--cyan);
  content: "→";
}

.optical-processing-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(360px, 0.78fr);
  gap: clamp(46px, 7vw, 108px);
  align-items: center;
}

.optical-processing-visual {
  position: relative;
  min-height: 580px;
  overflow: hidden;
  border-radius: 8px;
  background: #11142f;
}

.optical-processing-visual img {
  width: 100%;
  height: 100%;
  min-height: 580px;
  object-fit: cover;
}

.visual-label {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  padding: 56px 24px 24px;
  color: #fff;
  background: linear-gradient(transparent, rgba(10, 15, 38, 0.88));
}

.visual-label span {
  color: var(--cyan);
  font-size: 0.75rem;
  font-weight: 900;
  text-transform: uppercase;
}

.optical-processing-copy h2 {
  margin: 8px 0 18px;
  font-size: clamp(2.15rem, 3.6vw, 3.7rem);
  line-height: 1.08;
}

.optical-processing-copy > p:not(.eyebrow) {
  color: var(--muted);
}

.process-points {
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}

.process-points li {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 14px;
  padding: 16px 0;
  border-top: 1px solid var(--line);
}

.process-points li > span {
  color: var(--cyan);
  font-size: 0.75rem;
  font-weight: 900;
}

.process-points p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 0.88rem;
}

.frameless-section {
  background: #fff;
}

.frameless-application-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.frameless-application-grid figure {
  position: relative;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #11142f;
}

.frameless-application-grid figure {
  aspect-ratio: 1.34;
}

.frameless-application-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.frameless-application-grid figure:first-child img {
  object-fit: contain;
}

.frameless-application-grid figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  gap: 3px;
  padding: 52px 22px 20px;
  color: #fff;
  background: linear-gradient(transparent, rgba(10, 15, 38, 0.9));
}

.frameless-application-grid figcaption span {
  color: var(--cyan);
  font-size: 0.75rem;
  font-weight: 900;
  text-transform: uppercase;
}

.frameless-capabilities {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 24px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.frameless-capabilities div {
  display: grid;
  gap: 7px;
  min-height: 150px;
  align-content: center;
  padding: 24px;
  border-left: 1px solid var(--line);
}

.frameless-capabilities div:first-child {
  border-left: 0;
}

.frameless-capabilities strong {
  color: var(--ink);
  font-size: 0.95rem;
}

.frameless-capabilities span {
  color: var(--muted);
  font-size: 0.86rem;
}

.frameless-project-review {
  display: grid;
  grid-template-columns: minmax(280px, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(44px, 7vw, 100px);
  align-items: start;
  margin-top: 56px;
  padding-top: 40px;
  border-top: 1px solid var(--line);
}

.frameless-project-copy h3 {
  margin: 8px 0 0;
  font-size: clamp(1.65rem, 2.6vw, 2.4rem);
  line-height: 1.12;
}

.frameless-project-copy > p:last-child {
  margin: 18px 0 0;
  color: var(--muted);
}

.frameless-project-list {
  margin: 0;
}

.frameless-project-list > div {
  display: grid;
  grid-template-columns: minmax(120px, 0.55fr) minmax(0, 1.45fr);
  gap: 24px;
  padding: 18px 0;
  border-top: 1px solid var(--line);
}

.frameless-project-list dt {
  color: var(--cyan);
  font-size: 0.75rem;
  font-weight: 900;
  text-transform: uppercase;
}

.frameless-project-list dd {
  margin: 0;
  color: var(--ink);
  font-weight: 750;
}

.series-section-cta {
  display: flex;
  gap: 28px;
  align-items: center;
  justify-content: space-between;
  margin-top: 32px;
  padding: 26px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.series-section-cta > div {
  display: grid;
  gap: 5px;
}

.series-section-cta strong {
  color: var(--ink);
  font-size: 1.05rem;
}

.series-section-cta span {
  color: var(--muted);
  font-size: 0.9rem;
}

.series-section-cta .button {
  flex: 0 0 auto;
}

.frameless-cta {
  margin-top: 40px;
}

.lgp-applications {
  background: #f6f8fc;
}

.lgp-application-grid {
  display: grid;
  grid-template-columns: 1.18fr 0.82fr;
  grid-template-rows: repeat(2, minmax(270px, 1fr));
  gap: 18px;
}

.lgp-application-grid figure {
  position: relative;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #18203e;
}

.lgp-application-grid .lgp-application-primary {
  grid-row: 1 / 3;
}

.lgp-application-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lgp-application-grid figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  gap: 3px;
  padding: 48px 22px 20px;
  color: #fff;
  background: linear-gradient(transparent, rgba(10, 15, 38, 0.9));
}

.lgp-application-grid figcaption span {
  color: var(--cyan);
  font-size: 0.75rem;
  font-weight: 900;
  text-transform: uppercase;
}

.lgp-workflow {
  background: #fff;
}

.project-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.project-flow li {
  min-height: 210px;
  padding: 28px;
  border-left: 1px solid var(--line);
}

.project-flow li:first-child {
  border-left: 0;
}

.project-flow span {
  display: block;
  margin-bottom: 32px;
  color: var(--cyan);
  font-size: 0.78rem;
  font-weight: 900;
}

.project-flow strong {
  font-size: 1.05rem;
}

.project-flow p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 0.9rem;
}

@media (max-width: 980px) {
  .lgp-types-grid {
    grid-template-columns: 1fr 1fr;
  }

  .optical-processing-layout {
    grid-template-columns: 1fr;
  }

  .optical-processing-visual,
  .optical-processing-visual img {
    min-height: 480px;
  }

  .frameless-capabilities {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .frameless-project-review {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .frameless-capabilities div:nth-child(3) {
    border-left: 0;
  }

  .frameless-capabilities div:nth-child(n + 3) {
    border-top: 1px solid var(--line);
  }

  .project-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .project-flow li:nth-child(3) {
    border-left: 0;
  }

  .project-flow li:nth-child(n + 3) {
    border-top: 1px solid var(--line);
  }
}

@media (max-width: 680px) {
  .lgp-product-hero .product-hero-image {
    object-position: 68% center;
  }

  .lgp-types-grid,
  .lgp-application-grid,
  .frameless-application-grid,
  .project-flow {
    grid-template-columns: 1fr;
  }

  .frameless-application-grid figure {
    aspect-ratio: 1.08;
  }

  .frameless-capabilities {
    grid-template-columns: 1fr;
  }

  .frameless-capabilities div {
    min-height: auto;
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .frameless-capabilities div:first-child {
    border-top: 0;
  }

  .frameless-project-review {
    margin-top: 42px;
    padding-top: 32px;
  }

  .frameless-project-list > div {
    grid-template-columns: 1fr;
    gap: 5px;
  }

  .series-section-cta {
    align-items: stretch;
    flex-direction: column;
  }

  .series-section-cta .button {
    width: 100%;
    text-align: center;
  }

  .optical-processing-visual,
  .optical-processing-visual img {
    min-height: 430px;
  }

  .lgp-application-grid {
    grid-template-rows: none;
  }

  .lgp-application-grid .lgp-application-primary {
    grid-row: auto;
  }

  .lgp-application-grid figure {
    aspect-ratio: 1.08;
  }

  .project-flow li {
    min-height: 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .project-flow li:first-child {
    border-top: 0;
  }
}

/* LED flexible strips page */
.strip-types-section,
.flexible-applications {
  background: #f4f7fc;
}

.strip-family-visual {
  margin: 0 0 18px;
  overflow: hidden;
  border-radius: 8px;
  background: #e8f0f8;
}

.strip-family-visual img {
  width: 100%;
  aspect-ratio: 2.35;
  object-fit: cover;
  object-position: center 57%;
}

.strip-family-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.strip-family-grid article {
  padding: clamp(24px, 3vw, 38px);
  border-left: 1px solid var(--line);
}

.strip-family-grid article:first-child {
  border-left: 0;
}

.strip-family-grid article > span,
.installation-points article > span {
  color: var(--cyan);
  font-size: 0.75rem;
  font-weight: 900;
  text-transform: uppercase;
}

.strip-family-grid h3 {
  margin: 8px 0 10px;
  font-size: 1.35rem;
}

.strip-family-grid p,
.strip-family-grid li {
  color: var(--muted);
  font-size: 0.92rem;
}

.strip-family-grid ul {
  display: grid;
  gap: 7px;
  margin: 18px 0 0;
  padding-left: 18px;
}

.strip-selection-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.15fr);
  gap: clamp(50px, 8vw, 128px);
  align-items: start;
}

.strip-selection-copy {
  position: sticky;
  top: 154px;
}

.strip-selection-copy h2,
.flexible-installation h2 {
  margin: 8px 0 18px;
  font-size: clamp(2.15rem, 3.8vw, 3.8rem);
  line-height: 1.08;
}

.strip-selection-copy > p:not(.eyebrow) {
  color: var(--muted);
}

.selection-steps {
  margin: 0;
  padding: 0;
  list-style: none;
}

.selection-steps li {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 18px;
  padding: 25px 0;
  border-top: 1px solid var(--line);
}

.selection-steps li > span {
  color: var(--cyan);
  font-size: 0.78rem;
  font-weight: 900;
}

.selection-steps strong {
  font-size: 1.05rem;
}

.selection-steps p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 0.91rem;
}

.flexible-application-grid {
  display: grid;
  grid-template-columns: 1.18fr 0.82fr;
  grid-template-rows: repeat(2, minmax(270px, 1fr));
  gap: 18px;
}

.flexible-application-grid figure {
  position: relative;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #dfe5eb;
}

.flexible-application-grid .flexible-application-primary {
  grid-row: 1 / 3;
}

.flexible-application-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.flexible-application-grid figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  gap: 3px;
  padding: 48px 22px 20px;
  color: #fff;
  background: linear-gradient(transparent, rgba(10, 15, 38, 0.9));
}

.flexible-application-grid figcaption span {
  color: var(--cyan);
  font-size: 0.75rem;
  font-weight: 900;
  text-transform: uppercase;
}

.flexible-installation {
  color: #fff;
  background: #232755;
}

.flexible-installation-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.74fr) minmax(0, 1.26fr);
  gap: clamp(46px, 8vw, 124px);
}

.flexible-installation h2 {
  color: #fff;
}

.installation-points {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.installation-points article {
  min-height: 190px;
  padding: 26px;
  border-top: 1px solid rgba(255, 255, 255, 0.17);
  border-left: 1px solid rgba(255, 255, 255, 0.17);
}

.installation-points article:nth-child(odd) {
  border-left: 0;
}

.installation-points h3 {
  margin: 24px 0 8px;
  color: #fff;
  font-size: 1.1rem;
}

.installation-points p {
  margin: 0;
  color: rgba(255, 255, 255, 0.64);
  font-size: 0.9rem;
}

@media (max-width: 980px) {
  .strip-family-grid {
    grid-template-columns: 1fr;
  }

  .strip-family-grid article {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .strip-family-grid article:first-child {
    border-top: 0;
  }

  .strip-selection-layout,
  .flexible-installation-layout {
    grid-template-columns: 1fr;
  }

  .strip-selection-copy {
    position: static;
  }
}

@media (max-width: 680px) {
  .flexible-product-hero .product-hero-image {
    object-position: 70% center;
  }

  .strip-family-visual img {
    aspect-ratio: 1.18;
    object-position: center;
  }

  .flexible-application-grid {
    grid-template-columns: 1fr;
    grid-template-rows: none;
  }

  .flexible-application-grid .flexible-application-primary {
    grid-row: auto;
  }

  .flexible-application-grid figure {
    aspect-ratio: 1.06;
  }

  .installation-points {
    grid-template-columns: 1fr;
  }

  .installation-points article,
  .installation-points article:nth-child(odd) {
    min-height: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.17);
    border-left: 0;
  }
}

/* LED light boxes page */
.lightbox-product-hero .product-hero-image {
  object-position: center;
}

.lightbox-types-section,
.lightbox-applications {
  background: #f4f7fc;
}

.lightbox-type-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.lightbox-type-grid article {
  min-height: 300px;
  padding: clamp(28px, 3.6vw, 48px);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.lightbox-type-grid article:nth-child(-n + 2) {
  border-top: 0;
}

.lightbox-type-grid article:nth-child(odd) {
  border-left: 0;
}

.lightbox-type-grid article > span {
  color: var(--cyan);
  font-size: 0.75rem;
  font-weight: 900;
  text-transform: uppercase;
}

.lightbox-type-grid h3 {
  margin: 9px 0 10px;
  font-size: clamp(1.35rem, 2vw, 1.75rem);
}

.lightbox-type-grid p,
.lightbox-type-grid li {
  color: var(--muted);
}

.lightbox-type-grid p {
  margin: 0;
}

.lightbox-type-grid ul {
  display: grid;
  gap: 7px;
  margin: 20px 0 0;
  padding-left: 18px;
  font-size: 0.92rem;
}

.lightbox-system-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.78fr);
  gap: clamp(44px, 7vw, 108px);
  align-items: center;
}

.lightbox-system-visual {
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #e6eef8;
}

.lightbox-system-visual img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}

.lightbox-system-copy h2 {
  margin: 8px 0 18px;
  font-size: clamp(2.15rem, 3.7vw, 3.8rem);
  line-height: 1.08;
}

.lightbox-system-copy > p:not(.eyebrow) {
  color: var(--muted);
}

.lightbox-detail-gallery,
.lightbox-application-grid {
  display: grid;
  grid-template-columns: 1.18fr 0.82fr;
  grid-template-rows: repeat(2, minmax(270px, 1fr));
  gap: 18px;
}

.lightbox-detail-gallery figure,
.lightbox-application-grid figure {
  position: relative;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #dfe5eb;
}

.lightbox-detail-gallery .lightbox-detail-primary,
.lightbox-application-grid .lightbox-application-primary {
  grid-row: 1 / 3;
}

.lightbox-detail-gallery img,
.lightbox-application-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lightbox-detail-primary img {
  object-position: center;
}

.lightbox-detail-gallery figcaption,
.lightbox-application-grid figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  gap: 3px;
  padding: 50px 22px 20px;
  color: #fff;
  background: linear-gradient(transparent, rgba(10, 15, 38, 0.9));
}

.lightbox-detail-gallery figcaption span,
.lightbox-application-grid figcaption span {
  color: var(--cyan);
  font-size: 0.75rem;
  font-weight: 900;
  text-transform: uppercase;
}

.lightbox-workflow {
  background: #fff;
}

@media (max-width: 980px) {
  .lightbox-system-layout {
    grid-template-columns: 1fr;
  }

  .lightbox-system-visual img {
    aspect-ratio: 1.45;
    object-position: center 28%;
  }
}

@media (max-width: 680px) {
  .lightbox-product-hero .product-hero-image {
    object-position: 68% center;
  }

  .lightbox-type-grid,
  .lightbox-detail-gallery,
  .lightbox-application-grid {
    grid-template-columns: 1fr;
    grid-template-rows: none;
  }

  .lightbox-type-grid article,
  .lightbox-type-grid article:nth-child(-n + 2),
  .lightbox-type-grid article:nth-child(odd) {
    min-height: 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .lightbox-type-grid article:first-child {
    border-top: 0;
  }

  .lightbox-system-visual img {
    aspect-ratio: 1;
    object-position: center;
  }

  .lightbox-detail-gallery .lightbox-detail-primary,
  .lightbox-application-grid .lightbox-application-primary {
    grid-row: auto;
  }

  .lightbox-detail-gallery figure,
  .lightbox-application-grid figure {
    aspect-ratio: 1.06;
  }
}
