/* ==========================================================================
   AAKS ? Master Product Page Template Styles
   Used by: products/temp_product.html and every products/*.html page
   ========================================================================== */

/* --------------------------------------------------------------------------
   PAGE SHELL
   -------------------------------------------------------------------------- */

.page-product {
  background: var(--color-bg);
  color: var(--color-text);
}

/* Body copy justification â€” all product pages */
.page-product p,
.page-product li,
.page-product dd,
.page-product .product-feature p,
.page-product .product-advantage p,
.page-product .product-process__copy p,
.page-product .product-faq__a,
.page-product .product-intro__block p,
.page-product .product-intro__block li,
.page-product .product-table td,
.page-product .product-note,
.page-product .product-cta__copy p {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Keep short UI labels / headings / stats left or as designed */
.page-product h1,
.page-product h2,
.page-product h3,
.page-product h4,
.page-product .overline,
.page-product .product-hero__title,
.page-product .product-hero__stat,
.page-product .product-hero__stat strong,
.page-product .product-hero__stat span,
.page-product .product-app__label,
.page-product .product-breadcrumb,
.page-product .product-table th,
.page-product .btn,
.page-product button,
.page-product label,
.page-product figcaption,
.page-product .product-video figcaption {
  text-align: left;
  hyphens: none;
}

.page-product .product-section__header--center,
.page-product .product-section__header--center p,
.page-product .product-section__header--center h2 {
  text-align: center;
}

.page-product .product-hero__lead {
  text-align: left;
}

.product-wrap {
  max-width: 1400px;
  margin-inline: auto;
  padding-inline: var(--container-padding-x);
}

.product-section {
  padding-block: clamp(2.25rem, 4.2vw, 3.75rem);
}

.product-section--muted {
  background: var(--color-bg-muted);
}

.product-section--dark {
  background: var(--gradient-dark-section);
  color: var(--color-text-inverse);
}

.product-section__header {
  max-width: 40rem;
  margin-bottom: clamp(1.25rem, 2.5vw, 1.85rem);
}

.product-section__header--center {
  margin-inline: auto;
  text-align: center;
}

.product-section__header .overline {
  margin-bottom: var(--space-2);
}

.product-section__header h2 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: clamp(1.65rem, 2.6vw, 2.35rem);
  font-weight: var(--font-bold);
  letter-spacing: var(--tracking-heading);
  line-height: var(--leading-heading);
  color: inherit;
}

.product-section--dark .product-section__header h2 {
  color: #ffffff;
}

.product-section__header p {
  margin: 0;
  font-size: var(--text-body);
  color: var(--color-text-secondary);
  line-height: 1.6;
  max-width: 38rem;
}

.product-section__header--center p {
  margin-inline: auto;
}

.product-section--dark .product-section__header p {
  color: var(--color-text-inverse-muted);
}

/* Media placeholder */
.media-ph {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  min-height: inherit;
  background:
    linear-gradient(135deg, rgba(0, 174, 239, 0.12), rgba(8, 19, 31, 0.06)),
    repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 12px,
      rgba(15, 23, 42, 0.03) 12px,
      rgba(15, 23, 42, 0.03) 24px
    );
  border: 1px dashed rgba(0, 174, 239, 0.35);
  color: var(--color-text-muted);
  font-family: var(--font-secondary);
  font-size: var(--text-caption);
  letter-spacing: 0.04em;
  text-align: center;
  padding: var(--space-4);
}

.product-section--dark .media-ph {
  background:
    linear-gradient(135deg, rgba(0, 174, 239, 0.18), rgba(255, 255, 255, 0.03)),
    repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 12px,
      rgba(255, 255, 255, 0.03) 12px,
      rgba(255, 255, 255, 0.03) 24px
    );
  border-color: rgba(0, 212, 255, 0.35);
  color: var(--color-text-inverse-muted);
}

.media-ph strong {
  display: block;
  margin-bottom: var(--space-2);
  color: var(--color-primary);
  font-size: var(--text-body-sm);
}

/* --------------------------------------------------------------------------
   1. PRODUCT HERO
   -------------------------------------------------------------------------- */

.product-hero {
  position: relative;
  min-height: 0;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: #08131f;
  color: #ffffff;
}

.product-hero__media {
  position: absolute;
  inset: 0;
}

.product-hero__media img,
.product-hero__media .media-ph {
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: 100%;
}

.product-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    105deg,
    rgba(4, 12, 22, 0.9) 0%,
    rgba(8, 19, 31, 0.78) 42%,
    rgba(8, 19, 31, 0.4) 72%,
    rgba(8, 19, 31, 0.18) 100%
  );
  pointer-events: none;
}

.product-hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1400px;
  margin-inline: auto;
  /* Top padding clears fixed overlapping header across all product/app/project/library pages */
  padding: clamp(6.75rem, 14vw, 8.75rem) var(--container-padding-x)
    clamp(1.25rem, 2.5vw, 1.85rem);
}

.product-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.55rem;
  margin: 0 0 var(--space-4);
  padding: 0;
  list-style: none;
  font-size: var(--text-caption);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(248, 250, 252, 0.7);
}

.product-breadcrumb a {
  color: rgba(248, 250, 252, 0.78);
  text-decoration: none;
}

.product-breadcrumb a:hover,
.product-breadcrumb a:focus-visible {
  color: var(--color-accent);
}

.product-breadcrumb [aria-current="page"] {
  color: #ffffff;
  font-weight: var(--font-semibold);
}

.product-hero__title {
  margin: 0 0 var(--space-3);
  max-width: min(42rem, 100%);
  font-family: var(--font-display);
  font-size: clamp(1.55rem, 2.8vw, 2.35rem);
  font-weight: var(--font-bold);
  letter-spacing: var(--tracking-display);
  line-height: 1.2;
  color: #ffffff;
  text-wrap: balance;
}

.product-hero h1,
.product-hero .product-hero__title {
  color: #ffffff;
}

.product-hero__lead {
  margin: 0 0 var(--space-5);
  max-width: 36rem;
  font-size: var(--text-body);
  line-height: 1.65;
  color: rgba(248, 250, 252, 0.9);
}

.product-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-bottom: var(--space-6);
}

.product-hero__video-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  min-height: 44px;
  padding: 0.65rem 1rem 0.65rem 0.65rem;
  border-radius: var(--radius-full);
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  backdrop-filter: blur(12px);
  cursor: pointer;
  font-family: var(--font-primary);
  font-size: var(--text-body-sm);
  font-weight: var(--font-semibold);
  transition:
    background var(--duration-base) var(--ease-out),
    border-color var(--duration-base) var(--ease-out),
    transform var(--duration-base) var(--ease-out);
}

.product-hero__video-btn:hover {
  background: rgba(0, 174, 239, 0.25);
  border-color: rgba(0, 212, 255, 0.5);
  transform: translateY(-1px);
}

.product-hero__video-btn:focus-visible {
  outline: none;
  box-shadow: var(--shadow-focus);
}

.product-hero__play {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: var(--radius-full);
  background: var(--gradient-accent);
  color: #ffffff;
}

.product-hero__stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3);
  max-width: 52rem;
  padding: var(--space-4);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(16px);
}

.product-hero__stat strong {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  font-weight: var(--font-bold);
  color: #ffffff;
  letter-spacing: var(--tracking-heading);
}

.product-hero__stat span {
  display: block;
  margin-top: 0.25rem;
  font-size: var(--text-caption);
  color: rgba(248, 250, 252, 0.65);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* --------------------------------------------------------------------------
   2. INTRODUCTION
   -------------------------------------------------------------------------- */

.product-intro__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
  align-items: start;
}

.product-intro__media {
  border-radius: var(--radius-xl);
  overflow: hidden;
  aspect-ratio: 5 / 4;
  border: 1px solid var(--color-border);
  background: var(--color-bg-muted);
}

.product-intro__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.product-intro__blocks {
  display: grid;
  gap: var(--space-4);
}

.product-intro__block h3 {
  margin: 0 0 var(--space-2);
  font-family: var(--font-display);
  font-size: var(--text-h5);
  font-weight: var(--font-bold);
  letter-spacing: var(--tracking-heading);
}

.product-intro__block p,
.product-intro__block li {
  color: var(--color-text-secondary);
  line-height: 1.6;
  font-size: var(--text-body-sm);
}

.product-intro__block ul {
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 0.35rem;
}

/* --------------------------------------------------------------------------
   3. FEATURE CARDS
   -------------------------------------------------------------------------- */

.product-features {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-4);
}

.product-feature {
  padding: var(--space-5);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.65);
  box-shadow: var(--shadow-sm);
  backdrop-filter: blur(12px);
  transition:
    transform var(--duration-base) var(--ease-out),
    box-shadow var(--duration-base) var(--ease-out),
    border-color var(--duration-base) var(--ease-out);
}

.product-feature:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
  border-color: rgba(0, 174, 239, 0.35);
}

.product-feature__icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin-bottom: var(--space-3);
  border-radius: var(--radius-md);
  background: var(--color-info-bg);
  color: var(--color-primary);
}

.product-feature h3 {
  margin: 0 0 var(--space-2);
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: var(--font-semibold);
}

.product-feature p {
  margin: 0;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.55;
}

/* --------------------------------------------------------------------------
   4?5. TABLES
   -------------------------------------------------------------------------- */

.product-table-wrap {
  overflow-x: auto;
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
}

.product-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 640px;
}

.product-table th,
.product-table td {
  padding: 0.75rem 1rem;
  text-align: left;
  border-bottom: 1px solid var(--color-border);
  font-size: var(--text-body-sm);
  vertical-align: top;
}

.product-table th {
  font-family: var(--font-display);
  font-weight: var(--font-semibold);
  background: #0b1a2a;
  color: #ffffff;
  letter-spacing: 0.02em;
}

.product-table tbody tr:last-child td {
  border-bottom: 0;
}

.product-table tbody tr:hover td {
  background: rgba(0, 174, 239, 0.04);
}

.product-table td:first-child {
  font-weight: var(--font-semibold);
  color: var(--color-heading);
  width: 36%;
}

.product-thickness {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
  gap: clamp(1rem, 2vw, 1.5rem);
  align-items: start;
}

.product-thickness__guide {
  padding: var(--space-5);
  border-radius: var(--radius-lg);
  background: var(--color-bg-muted);
  border: 1px solid var(--color-border);
}

.product-thickness__guide h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-h5);
}

.product-thickness__guide ul {
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 0.4rem;
  color: var(--color-text-secondary);
  font-size: var(--text-body-sm);
  line-height: 1.55;
}

/* --------------------------------------------------------------------------
   6. PERFORMANCE
   -------------------------------------------------------------------------- */

.product-performance {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-4);
}

.product-perf {
  padding: var(--space-5);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(14px);
}

.product-perf__icon {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  margin-bottom: var(--space-3);
  border-radius: var(--radius-md);
  background: rgba(0, 174, 239, 0.15);
  color: var(--color-accent);
}

.product-perf h3 {
  margin: 0 0 var(--space-2);
  font-size: 1.05rem;
  color: #ffffff;
}

.product-perf p {
  margin: 0;
  font-size: var(--text-body-sm);
  color: var(--color-text-inverse-muted);
  line-height: 1.55;
}

/* --------------------------------------------------------------------------
   7. APPLICATIONS GRID
   -------------------------------------------------------------------------- */

.product-apps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
}

.product-app {
  position: relative;
  display: block;
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 16 / 10;
  text-decoration: none;
  color: #ffffff;
  background: #0b1a2a;
}

.product-app__media,
.product-app .media-ph {
  position: absolute;
  inset: 0;
}

.product-app__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--duration-slow) var(--ease-out);
}

.product-app__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(8, 19, 31, 0.05) 30%,
    rgba(8, 19, 31, 0.82) 100%
  );
}

.product-app__label {
  position: absolute;
  left: var(--space-5);
  right: var(--space-5);
  bottom: var(--space-5);
  font-family: var(--font-display);
  font-size: var(--text-h5);
  font-weight: var(--font-semibold);
  z-index: 1;
}

.product-app:hover .product-app__media img {
  transform: scale(1.05);
}

.product-app:focus-visible {
  outline: none;
  box-shadow: var(--shadow-focus);
}

/* --------------------------------------------------------------------------
   8. ADVANTAGES
   -------------------------------------------------------------------------- */

.product-advantages {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
}

.product-advantage {
  padding: var(--space-5);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-sm);
}

.product-advantage__num {
  display: inline-block;
  margin-bottom: var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-caption);
  font-weight: var(--font-semibold);
  letter-spacing: 0.14em;
  color: var(--color-primary);
}

.product-advantage h3 {
  margin: 0 0 var(--space-2);
  font-family: var(--font-display);
  font-size: var(--text-h5);
}

.product-advantage p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: var(--text-body-sm);
  line-height: 1.6;
}

/* --------------------------------------------------------------------------
   10. PROCESS TIMELINE
   -------------------------------------------------------------------------- */

.product-process {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
  align-items: center;
}

.product-process__media {
  border-radius: var(--radius-xl);
  overflow: hidden;
  aspect-ratio: 5 / 4;
  border: 1px solid var(--color-border);
}

.product-process__steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--space-4);
  position: relative;
}

.product-process__steps::before {
  content: "";
  position: absolute;
  left: 17px;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: linear-gradient(
    180deg,
    var(--color-primary),
    rgba(0, 174, 239, 0.15)
  );
}

.product-process__step {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: var(--space-4);
  align-items: start;
}

.product-process__index {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: var(--radius-full);
  background: #08131f;
  color: #ffffff;
  font-family: var(--font-display);
  font-size: var(--text-caption);
  font-weight: var(--font-bold);
}

.product-process__step h3 {
  margin: 0 0 0.35rem;
  font-size: var(--text-h5);
}

.product-process__step p {
  margin: 0;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.65;
}

/* --------------------------------------------------------------------------
   11. PROJECTS
   -------------------------------------------------------------------------- */

.product-projects {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
}

.product-project {
  display: flex;
  flex-direction: column;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  text-decoration: none;
  color: inherit;
  transition:
    transform var(--duration-base) var(--ease-out),
    box-shadow var(--duration-base) var(--ease-out);
}

.product-project:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
  text-decoration: none;
}

.product-project__media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--color-bg-muted);
}

.product-project__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.product-project__body {
  padding: var(--space-5);
}

.product-project__meta {
  display: block;
  margin-bottom: var(--space-2);
  font-size: var(--text-caption);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-primary);
  font-weight: var(--font-semibold);
}

.product-project h3 {
  margin: 0 0 var(--space-2);
  font-size: var(--text-h5);
}

.product-project p {
  margin: 0;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
}

/* --------------------------------------------------------------------------
   12. VIDEO GALLERY
   -------------------------------------------------------------------------- */

.product-videos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
}

.product-video {
  margin: 0;
  border-radius: var(--radius-xl);
  overflow: hidden;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
}

.product-video__trigger {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  padding: 0;
  border: 0;
  cursor: pointer;
  background: #08131f;
  color: #ffffff;
  overflow: hidden;
}

.product-video__trigger img,
.product-video__trigger .media-ph {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--duration-slow) var(--ease-out);
}

.product-video__trigger:hover img {
  transform: scale(1.04);
}

.product-video__play {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: 0;
  line-height: 0;
  color: transparent;
  background: linear-gradient(
    180deg,
    rgba(8, 19, 31, 0.05) 0%,
    rgba(8, 19, 31, 0.28) 100%
  );
  transition: background var(--duration-base) var(--ease-out);
  pointer-events: none;
}

.product-video__play::before {
  content: "";
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.45);
  background-color: rgba(255, 255, 255, 0.18);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: 54% 50%;
  background-size: 1.15rem 1.15rem;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.28);
}

.product-video__play span {
  display: none;
}

.product-video__trigger:hover .product-video__play {
  background: linear-gradient(
    180deg,
    rgba(8, 19, 31, 0.12) 0%,
    rgba(8, 19, 31, 0.42) 100%
  );
}

.product-video__trigger:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 3px var(--color-accent);
}

.product-video figcaption {
  padding: var(--space-4) var(--space-5);
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  background: var(--color-surface);
}

/* Video lightbox */
.product-lightbox {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  display: grid;
  place-items: center;
  padding: var(--space-6);
  background: rgba(8, 19, 31, 0.82);
  backdrop-filter: blur(8px);
}

.product-lightbox[hidden] {
  display: none;
}

.product-lightbox__dialog {
  width: min(960px, 100%);
  background: #000;
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-xl);
}

.product-lightbox__bar {
  display: flex;
  justify-content: flex-end;
  padding: var(--space-3);
  background: #0b1a2a;
}

.product-lightbox__close {
  min-width: 44px;
  min-height: 44px;
  border: 0;
  border-radius: var(--radius-md);
  background: transparent;
  color: #ffffff;
  cursor: pointer;
  font-size: 1.25rem;
}

.product-lightbox__close:focus-visible {
  outline: none;
  box-shadow: var(--shadow-focus);
}

.product-lightbox__frame {
  aspect-ratio: 16 / 9;
  background: #000;
}

.product-lightbox__frame video,
.product-lightbox__frame img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  background: #000;
}

/* --------------------------------------------------------------------------
   13. FAQ
   -------------------------------------------------------------------------- */

.product-faq .faq-list {
  max-width: 760px;
  margin-inline: auto;
  gap: var(--space-3);
}

.product-faq .faq-item summary,
.product-faq .faq-trigger {
  padding: var(--space-4) var(--space-5);
}

.product-faq .faq-panel {
  padding: 0 var(--space-5) var(--space-4);
}

/* --------------------------------------------------------------------------
   14?16. RELATED LINK BANDS
   -------------------------------------------------------------------------- */

.product-related {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
}

.product-related a {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-4);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  text-decoration: none;
  color: inherit;
  transition:
    border-color var(--duration-base) var(--ease-out),
    transform var(--duration-base) var(--ease-out),
    box-shadow var(--duration-base) var(--ease-out);
}

.product-related a:hover {
  border-color: rgba(0, 174, 239, 0.45);
  transform: translateY(-2px);
  box-shadow: var(--shadow-sm);
  text-decoration: none;
}

.product-related a strong {
  font-family: var(--font-display);
  font-size: var(--text-body);
  color: var(--color-heading);
}

.product-related a span {
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
}

.product-related a em {
  margin-top: auto;
  font-style: normal;
  font-size: var(--text-caption);
  font-weight: var(--font-semibold);
  color: var(--color-primary);
  letter-spacing: 0.04em;
}

/* --------------------------------------------------------------------------
   17. PRODUCT CTA BANNER
   -------------------------------------------------------------------------- */

.product-cta {
  position: relative;
  overflow: hidden;
  padding-block: clamp(2.5rem, 4.5vw, 3.75rem);
  background: linear-gradient(135deg, #04101c 0%, #08131f 40%, #0a2a48 100%);
  color: #ffffff;
}

.product-cta__inner {
  position: relative;
  z-index: 1;
  max-width: 1400px;
  margin-inline: auto;
  padding-inline: var(--container-padding-x);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-5);
  align-items: center;
}

.product-cta h2 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 2.6vw, 2.15rem);
  letter-spacing: var(--tracking-heading);
  max-width: 22ch;
  color: #ffffff !important;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.45);
}

.product-cta p {
  margin: 0;
  max-width: 36rem;
  color: rgba(248, 250, 252, 0.92) !important;
  font-size: var(--text-body);
  line-height: 1.6;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.35);
}

.product-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.product-cta__actions .btn-cta {
  color: #ffffff !important;
}

.product-cta__actions .btn-outline--inverse {
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.75);
}

/* --------------------------------------------------------------------------
   RESPONSIVE
   -------------------------------------------------------------------------- */

@media (max-width: 1100px) {
  .product-features,
  .product-performance {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

  .product-intro__grid,
  .product-thickness,
  .product-process,
  .product-cta__inner {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 800px) {
  .product-apps,
  .product-advantages,
  .product-projects,
  .product-videos,
  .product-related {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 560px) {
  .product-features,
  .product-performance,
  .product-apps,
  .product-advantages,
  .product-projects,
  .product-videos,
  .product-related,
  .product-hero__stats {
    grid-template-columns: 1fr;
  }

  .product-hero__title {
    max-width: none;
  }
}

/* --------------------------------------------------------------------------
   IMAGE MOTION â€” always visible (no fade). Soft zoom-settle + hover life.
   -------------------------------------------------------------------------- */

.page-product .product-hero__media,
.page-product .product-intro__media,
.page-product .product-app__media,
.page-product .product-project__media,
.page-product .product-process__media,
.page-product .product-video__trigger,
.page-product .etfe-film-intro__media,
.page-product .etfe-cushion-intro__media,
.page-product .etfe-roofing-intro__media,
.page-product [class*="-intro__media"],
.page-product [class*="-split__media"],
.page-product figure {
  overflow: hidden;
}

.page-product .img-motion-frame {
  overflow: hidden;
}

.page-product img.img-motion {
  display: block;
  max-width: 100%;
  transform: scale(1.08);
  transition: transform 1.15s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.page-product .product-hero__media img.img-motion,
.page-product .product-intro__media img.img-motion,
.page-product .product-app__media img.img-motion,
.page-product .product-project__media img.img-motion,
.page-product .product-process__media img.img-motion,
.page-product .product-video__trigger img.img-motion,
.page-product [class*="-intro__media"] img.img-motion,
.page-product [class*="-split__media"] img.img-motion {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page-product img.img-motion.is-in {
  transform: scale(1);
}

.page-product img.img-motion.is-in:hover {
  transform: scale(1.045);
  transition-duration: 0.7s;
}

/* Hero: settle then gentle living zoom */
.page-product.is-ready .product-hero__media img.img-motion.is-in {
  animation: product-hero-live 18s ease-in-out 1.1s infinite alternate;
}

@keyframes product-hero-live {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.05);
  }
}

.page-product.is-ready .product-hero__content {
  animation: product-hero-rise 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes product-hero-rise {
  from {
    transform: translateY(12px);
  }
  to {
    transform: none;
  }
}

.page-product [data-reveal] {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .product-feature,
  .product-app__media img,
  .product-project,
  .product-related a,
  .page-product img.img-motion {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  .product-feature:hover,
  .product-project:hover,
  .product-related a:hover,
  .page-product img.img-motion.is-in:hover {
    transform: none !important;
  }

  .page-product.is-ready .product-hero__content {
    animation: none !important;
  }
}


/* ==========================================================================
   MERGED PER-PRODUCT CSS (from etfe-*.css — selectors unchanged for identical design)
   ========================================================================== */

/* --- etfe-air-cushion-roof.css --- */
/* ==========================================================================
   ETFE Film product page â€” page-specific enhancements
   Extends: product-page.css
   ========================================================================== */

/* --------------------------------------------------------------------------
   HERO â€” force readable white text over bright ETFE photography
   -------------------------------------------------------------------------- */

.page-etfe-air-cushion .product-hero {
  min-height: 0;
  color: #ffffff;
}

.page-etfe-air-cushion .product-hero__overlay {
  background: linear-gradient(
    105deg,
    rgba(4, 12, 22, 0.92) 0%,
    rgba(8, 19, 31, 0.82) 38%,
    rgba(8, 19, 31, 0.45) 68%,
    rgba(8, 19, 31, 0.2) 100%
  );
}

.page-etfe-air-cushion .product-hero__content {
  padding: clamp(4.25rem, 7vw, 5.25rem) var(--container-padding-x)
    clamp(1.15rem, 2.2vw, 1.75rem);
}

.page-etfe-air-cushion .product-hero__title,
.page-etfe-air-cushion .product-hero h1 {
  max-width: min(42rem, 100%);
  color: #ffffff !important;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.45);
}

.page-etfe-air-cushion .product-hero__lead {
  color: rgba(248, 250, 252, 0.92) !important;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
  max-width: 38rem;
}

.page-etfe-air-cushion .product-breadcrumb,
.page-etfe-air-cushion .product-breadcrumb a,
.page-etfe-air-cushion .product-breadcrumb [aria-current="page"] {
  color: rgba(248, 250, 252, 0.85);
}

.page-etfe-air-cushion .product-breadcrumb a:hover {
  color: var(--color-accent);
}

.page-etfe-air-cushion .product-hero .overline {
  color: var(--color-accent) !important;
}

.page-etfe-air-cushion .product-hero__stat strong {
  color: #ffffff !important;
}

.page-etfe-air-cushion .product-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  min-height: 100%;
}

/* --------------------------------------------------------------------------
   PAGE RHYTHM
   -------------------------------------------------------------------------- */

.page-etfe-air-cushion .product-section {
  padding-block: clamp(1.75rem, 3.2vw, 2.75rem);
}

.page-etfe-air-cushion .product-section__header {
  margin-bottom: clamp(1rem, 2vw, 1.5rem);
  max-width: none;
  width: 100%;
}

.page-etfe-air-cushion .product-section__header p {
  max-width: none;
}

.page-etfe-air-cushion .product-section__header--center {
  max-width: none;
  margin-inline: auto;
  text-align: center;
}

.page-etfe-air-cushion .product-section__header--center p {
  max-width: 42rem;
  margin-inline: auto;
}

.page-etfe-air-cushion .product-section__header h2 {
  color: var(--color-heading);
}

.page-etfe-air-cushion .product-section--dark .product-section__header h2 {
  color: #ffffff !important;
}

.page-etfe-air-cushion .product-wrap {
  max-width: 1240px;
}

/* --------------------------------------------------------------------------
   WHAT IS ETFE AIR CUSHION â€” cinematic intro (image + editorial body)
   -------------------------------------------------------------------------- */

.page-etfe-air-cushion .etfe-cushion-intro {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: stretch;
  width: 100%;
  isolation: isolate;
}

.page-etfe-air-cushion .etfe-cushion-intro__media {
  position: relative;
  margin: 0;
  min-height: min(52vh, 520px);
  border-radius: var(--radius-2xl);
  overflow: hidden;
  background: #0b1a2a;
  box-shadow: var(--shadow-lg);
}

.page-etfe-air-cushion .etfe-cushion-intro__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: min(52vh, 520px);
  object-fit: cover;
  object-position: center 45%;
  transition: transform 1.1s var(--ease-out);
}

.page-etfe-air-cushion .etfe-cushion-intro__media:hover img {
  transform: scale(1.03);
}

.page-etfe-air-cushion .etfe-cushion-intro__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1.25rem 1.35rem 1.15rem;
  margin: 0;
  display: grid;
  gap: 0.2rem;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(0.95rem, 1.5vw, 1.1rem);
  font-weight: var(--font-semibold);
  letter-spacing: var(--tracking-heading);
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(4, 12, 22, 0.55) 35%,
    rgba(4, 12, 22, 0.88) 100%
  );
}

.page-etfe-air-cushion .etfe-cushion-intro__caption span {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: var(--font-semibold);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.page-etfe-air-cushion .etfe-cushion-intro__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-4);
  padding: clamp(0.25rem, 1vw, 0.5rem) 0;
}

.page-etfe-air-cushion .etfe-cushion-intro__lead {
  margin: 0;
  font-size: var(--text-body);
  line-height: 1.75;
  color: var(--color-text);
}

.page-etfe-air-cushion .etfe-cushion-intro__body > p {
  margin: 0;
  font-size: var(--text-body-sm);
  line-height: 1.7;
  color: var(--color-text-secondary);
}

.page-etfe-air-cushion .etfe-cushion-intro__metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin: var(--space-2) 0;
}

.page-etfe-air-cushion .etfe-cushion-intro__metric {
  padding: 0.85rem 1rem;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  background: linear-gradient(
    160deg,
    var(--color-surface) 0%,
    var(--color-bg-muted) 100%
  );
  display: grid;
  gap: 0.15rem;
}

.page-etfe-air-cushion .etfe-cushion-intro__metric strong {
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2vw, 1.35rem);
  font-weight: var(--font-bold);
  color: var(--color-heading);
  letter-spacing: var(--tracking-heading);
}

.page-etfe-air-cushion .etfe-cushion-intro__metric span {
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.page-etfe-air-cushion .etfe-cushion-intro__cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}

.page-etfe-air-cushion .etfe-cushion-intro__cols h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-h5);
  color: var(--color-heading);
}

.page-etfe-air-cushion .etfe-cushion-intro__tags {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.page-etfe-air-cushion .etfe-cushion-intro__tags li {
  padding: 0.35rem 0.7rem;
  border-radius: var(--radius-md);
  background: var(--color-bg-muted);
  border: 1px solid var(--color-border);
  font-size: 0.78rem;
  color: var(--color-text-secondary);
  line-height: 1.35;
}

.page-etfe-air-cushion .etfe-cushion-intro__checks {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.55rem;
}

.page-etfe-air-cushion .etfe-cushion-intro__checks li {
  position: relative;
  padding-left: 1.35rem;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.5;
}

.page-etfe-air-cushion .etfe-cushion-intro__checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35rem;
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background: var(--color-primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 22%, transparent);
}

/* --------------------------------------------------------------------------
   EDITORIAL SPLIT ROWS â€” text + image (attractive, fills white space)
   -------------------------------------------------------------------------- */

.page-etfe-air-cushion .etfe-cushion-prose {
  margin-top: var(--space-10);
  display: grid;
  gap: var(--space-8);
}

.page-etfe-air-cushion .etfe-cushion-split {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
  align-items: stretch;
  padding: clamp(1rem, 2vw, 1.5rem);
  border-radius: var(--radius-2xl);
  background: var(--color-bg-muted);
  border: 1px solid var(--color-border);
}

.page-etfe-air-cushion .etfe-cushion-split--reverse {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.page-etfe-air-cushion .etfe-cushion-split--reverse .etfe-cushion-split__copy {
  order: 2;
}

.page-etfe-air-cushion .etfe-cushion-split--reverse .etfe-cushion-split__media {
  order: 1;
}

.page-etfe-air-cushion .etfe-cushion-split__copy {
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--space-2) var(--space-3);
}

.page-etfe-air-cushion .etfe-cushion-split__copy h3 {
  margin: 0 0 var(--space-4);
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  font-weight: var(--font-bold);
  letter-spacing: var(--tracking-heading);
  color: var(--color-heading);
}

.page-etfe-air-cushion .etfe-cushion-split__copy p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: var(--text-body);
  line-height: 1.75;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

.page-etfe-air-cushion .etfe-cushion-split__copy p + p {
  margin-top: var(--space-4);
}

.page-etfe-air-cushion .etfe-cushion-split__media {
  margin: 0;
  position: relative;
  z-index: 0;
  width: 100%;
  min-width: 0;
  min-height: 100%;
  align-self: stretch;
  display: flex;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: #0b1a2a;
  box-shadow: var(--shadow-md);
}

.page-etfe-air-cushion .etfe-cushion-split__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
  flex: 1 1 auto;
  align-self: stretch;
}

/* Audience cards */
.page-etfe-air-cushion .etfe-cushion-audience {
  margin-top: var(--space-8);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}

.page-etfe-air-cushion .etfe-cushion-audience article {
  padding: var(--space-6);
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
  transition:
    transform var(--duration-base) var(--ease-out),
    box-shadow var(--duration-base) var(--ease-out);
}

.page-etfe-air-cushion .etfe-cushion-audience article:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

.page-etfe-air-cushion .etfe-cushion-audience h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-h5);
  color: var(--color-heading);
}

.page-etfe-air-cushion .etfe-cushion-audience p {
  margin: 0;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.65;
}

.page-etfe-air-cushion .etfe-cushion-note {
  margin-top: var(--space-6);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-lg);
  border-left: 3px solid var(--color-primary);
  background: var(--color-info-bg);
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.65;
}

/* Shared grids */
.page-etfe-air-cushion .product-features,
.page-etfe-air-cushion .product-performance,
.page-etfe-air-cushion .product-apps,
.page-etfe-air-cushion .product-advantages,
.page-etfe-air-cushion .product-projects,
.page-etfe-air-cushion .product-videos,
.page-etfe-air-cushion .product-related {
  gap: var(--space-3);
}

.page-etfe-air-cushion .product-app {
  aspect-ratio: 16 / 10;
}

.page-etfe-air-cushion .product-app__media img,
.page-etfe-air-cushion .product-process__media img,
.page-etfe-air-cushion .product-project__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.page-etfe-air-cushion .product-cta {
  padding-block: clamp(2rem, 3.5vw, 3rem);
}

@media (max-width: 960px) {
  .page-etfe-air-cushion .etfe-cushion-intro,
  .page-etfe-air-cushion .etfe-cushion-split,
  .page-etfe-air-cushion .etfe-cushion-split--reverse {
    grid-template-columns: 1fr;
  }

  .page-etfe-air-cushion .etfe-cushion-split--reverse .etfe-cushion-split__copy,
  .page-etfe-air-cushion .etfe-cushion-split--reverse .etfe-cushion-split__media {
    order: initial;
  }

  .page-etfe-air-cushion .etfe-cushion-intro__cols,
  .page-etfe-air-cushion .etfe-cushion-audience {
    grid-template-columns: 1fr;
  }

  .page-etfe-air-cushion .etfe-cushion-intro__media,
  .page-etfe-air-cushion .etfe-cushion-intro__media img {
    min-height: 280px;
  }

  .page-etfe-air-cushion .etfe-cushion-split__media,
  .page-etfe-air-cushion .etfe-cushion-split__media img {
    min-height: 260px;
  }
}


/* --- etfe-canopy.css --- */
/* ==========================================================================
   etfe-canopy product page â€” page-specific enhancements
   Extends: product-page.css
   ========================================================================== */

/* --------------------------------------------------------------------------
   HERO â€” force readable white text over bright ETFE photography
   -------------------------------------------------------------------------- */

.page-etfe-canopy .product-hero {
  min-height: 0;
  color: #ffffff;
}

.page-etfe-canopy .product-hero__overlay {
  background: linear-gradient(
    105deg,
    rgba(4, 12, 22, 0.92) 0%,
    rgba(8, 19, 31, 0.82) 38%,
    rgba(8, 19, 31, 0.45) 68%,
    rgba(8, 19, 31, 0.2) 100%
  );
}

.page-etfe-canopy .product-hero__content {
  padding: clamp(4.25rem, 7vw, 5.25rem) var(--container-padding-x)
    clamp(1.15rem, 2.2vw, 1.75rem);
}

.page-etfe-canopy .product-hero__title,
.page-etfe-canopy .product-hero h1 {
  max-width: min(42rem, 100%);
  color: #ffffff !important;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.45);
}

.page-etfe-canopy .product-hero__lead {
  color: rgba(248, 250, 252, 0.92) !important;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
  max-width: 38rem;
}

.page-etfe-canopy .product-breadcrumb,
.page-etfe-canopy .product-breadcrumb a,
.page-etfe-canopy .product-breadcrumb [aria-current="page"] {
  color: rgba(248, 250, 252, 0.85);
}

.page-etfe-canopy .product-breadcrumb a:hover {
  color: var(--color-accent);
}

.page-etfe-canopy .product-hero .overline {
  color: var(--color-accent) !important;
}

.page-etfe-canopy .product-hero__stat strong {
  color: #ffffff !important;
}

.page-etfe-canopy .product-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  min-height: 100%;
}

/* --------------------------------------------------------------------------
   PAGE RHYTHM
   -------------------------------------------------------------------------- */

.page-etfe-canopy .product-section {
  padding-block: clamp(1.75rem, 3.2vw, 2.75rem);
}

.page-etfe-canopy .product-section__header {
  margin-bottom: clamp(1rem, 2vw, 1.5rem);
  max-width: none;
  width: 100%;
}

.page-etfe-canopy .product-section__header p {
  max-width: none;
}

.page-etfe-canopy .product-section__header--center {
  max-width: none;
  margin-inline: auto;
  text-align: center;
}

.page-etfe-canopy .product-section__header--center p {
  max-width: 42rem;
  margin-inline: auto;
}

.page-etfe-canopy .product-section__header h2 {
  color: var(--color-heading);
}

.page-etfe-canopy .product-section--dark .product-section__header h2 {
  color: #ffffff !important;
}

.page-etfe-canopy .product-wrap {
  max-width: 1240px;
}

/* --------------------------------------------------------------------------
   WHAT IS ETFE FILM â€” cinematic intro (image + editorial body)
   -------------------------------------------------------------------------- */

.page-etfe-canopy .etfe-canopy-intro {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: stretch;
  width: 100%;
  isolation: isolate;
}

.page-etfe-canopy .etfe-canopy-intro__media {
  position: relative;
  margin: 0;
  min-height: min(52vh, 520px);
  border-radius: var(--radius-2xl);
  overflow: hidden;
  background: #0b1a2a;
  box-shadow: var(--shadow-lg);
}

.page-etfe-canopy .etfe-canopy-intro__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: min(52vh, 520px);
  object-fit: cover;
  object-position: center 45%;
  transition: transform 1.1s var(--ease-out);
}

.page-etfe-canopy .etfe-canopy-intro__media:hover img {
  transform: scale(1.03);
}

.page-etfe-canopy .etfe-canopy-intro__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1.25rem 1.35rem 1.15rem;
  margin: 0;
  display: grid;
  gap: 0.2rem;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(0.95rem, 1.5vw, 1.1rem);
  font-weight: var(--font-semibold);
  letter-spacing: var(--tracking-heading);
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(4, 12, 22, 0.55) 35%,
    rgba(4, 12, 22, 0.88) 100%
  );
}

.page-etfe-canopy .etfe-canopy-intro__caption span {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: var(--font-semibold);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.page-etfe-canopy .etfe-canopy-intro__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-4);
  padding: clamp(0.25rem, 1vw, 0.5rem) 0;
}

.page-etfe-canopy .etfe-canopy-intro__lead {
  margin: 0;
  font-size: var(--text-body);
  line-height: 1.75;
  color: var(--color-text);
}

.page-etfe-canopy .etfe-canopy-intro__body > p {
  margin: 0;
  font-size: var(--text-body-sm);
  line-height: 1.7;
  color: var(--color-text-secondary);
}

.page-etfe-canopy .etfe-canopy-intro__metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin: var(--space-2) 0;
}

.page-etfe-canopy .etfe-canopy-intro__metric {
  padding: 0.85rem 1rem;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  background: linear-gradient(
    160deg,
    var(--color-surface) 0%,
    var(--color-bg-muted) 100%
  );
  display: grid;
  gap: 0.15rem;
}

.page-etfe-canopy .etfe-canopy-intro__metric strong {
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2vw, 1.35rem);
  font-weight: var(--font-bold);
  color: var(--color-heading);
  letter-spacing: var(--tracking-heading);
}

.page-etfe-canopy .etfe-canopy-intro__metric span {
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.page-etfe-canopy .etfe-canopy-intro__cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}

.page-etfe-canopy .etfe-canopy-intro__cols h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-h5);
  color: var(--color-heading);
}

.page-etfe-canopy .etfe-canopy-intro__tags {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.page-etfe-canopy .etfe-canopy-intro__tags li {
  padding: 0.35rem 0.7rem;
  border-radius: var(--radius-md);
  background: var(--color-bg-muted);
  border: 1px solid var(--color-border);
  font-size: 0.78rem;
  color: var(--color-text-secondary);
  line-height: 1.35;
}

.page-etfe-canopy .etfe-canopy-intro__checks {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.55rem;
}

.page-etfe-canopy .etfe-canopy-intro__checks li {
  position: relative;
  padding-left: 1.35rem;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.5;
}

.page-etfe-canopy .etfe-canopy-intro__checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35rem;
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background: var(--color-primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 22%, transparent);
}

/* --------------------------------------------------------------------------
   EDITORIAL SPLIT ROWS â€” text + image (attractive, fills white space)
   -------------------------------------------------------------------------- */

.page-etfe-canopy .etfe-canopy-prose {
  margin-top: var(--space-10);
  display: grid;
  gap: var(--space-8);
}

.page-etfe-canopy .etfe-canopy-split {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
  align-items: stretch;
  padding: clamp(1rem, 2vw, 1.5rem);
  border-radius: var(--radius-2xl);
  background: var(--color-bg-muted);
  border: 1px solid var(--color-border);
}

.page-etfe-canopy .etfe-canopy-split--reverse {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.page-etfe-canopy .etfe-canopy-split--reverse .etfe-canopy-split__copy {
  order: 2;
}

.page-etfe-canopy .etfe-canopy-split--reverse .etfe-canopy-split__media {
  order: 1;
}

.page-etfe-canopy .etfe-canopy-split__copy {
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--space-2) var(--space-3);
}

.page-etfe-canopy .etfe-canopy-split__copy h3 {
  margin: 0 0 var(--space-4);
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  font-weight: var(--font-bold);
  letter-spacing: var(--tracking-heading);
  color: var(--color-heading);
}

.page-etfe-canopy .etfe-canopy-split__copy p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: var(--text-body);
  line-height: 1.75;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

.page-etfe-canopy .etfe-canopy-split__copy p + p {
  margin-top: var(--space-4);
}

.page-etfe-canopy .etfe-canopy-split__media {
  margin: 0;
  position: relative;
  z-index: 0;
  width: 100%;
  min-width: 0;
  min-height: 100%;
  align-self: stretch;
  display: flex;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: #0b1a2a;
  box-shadow: var(--shadow-md);
}

.page-etfe-canopy .etfe-canopy-split__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
  flex: 1 1 auto;
  align-self: stretch;
}

/* Audience cards */
.page-etfe-canopy .etfe-canopy-audience {
  margin-top: var(--space-8);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}

.page-etfe-canopy .etfe-canopy-audience article {
  padding: var(--space-6);
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
  transition:
    transform var(--duration-base) var(--ease-out),
    box-shadow var(--duration-base) var(--ease-out);
}

.page-etfe-canopy .etfe-canopy-audience article:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

.page-etfe-canopy .etfe-canopy-audience h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-h5);
  color: var(--color-heading);
}

.page-etfe-canopy .etfe-canopy-audience p {
  margin: 0;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.65;
}

.page-etfe-canopy .etfe-canopy-note {
  margin-top: var(--space-6);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-lg);
  border-left: 3px solid var(--color-primary);
  background: var(--color-info-bg);
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.65;
}

/* Shared grids */
.page-etfe-canopy .product-features,
.page-etfe-canopy .product-performance,
.page-etfe-canopy .product-apps,
.page-etfe-canopy .product-advantages,
.page-etfe-canopy .product-projects,
.page-etfe-canopy .product-videos,
.page-etfe-canopy .product-related {
  gap: var(--space-3);
}

.page-etfe-canopy .product-app {
  aspect-ratio: 16 / 10;
}

.page-etfe-canopy .product-app__media img,
.page-etfe-canopy .product-process__media img,
.page-etfe-canopy .product-project__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.page-etfe-canopy .product-cta {
  padding-block: clamp(2rem, 3.5vw, 3rem);
}

@media (max-width: 960px) {
  .page-etfe-canopy .etfe-canopy-intro,
  .page-etfe-canopy .etfe-canopy-split,
  .page-etfe-canopy .etfe-canopy-split--reverse {
    grid-template-columns: 1fr;
  }

  .page-etfe-canopy .etfe-canopy-split--reverse .etfe-canopy-split__copy,
  .page-etfe-canopy .etfe-canopy-split--reverse .etfe-canopy-split__media {
    order: initial;
  }

  .page-etfe-canopy .etfe-canopy-intro__cols,
  .page-etfe-canopy .etfe-canopy-audience {
    grid-template-columns: 1fr;
  }

  .page-etfe-canopy .etfe-canopy-intro__media,
  .page-etfe-canopy .etfe-canopy-intro__media img {
    min-height: 280px;
  }

  .page-etfe-canopy .etfe-canopy-split__media,
  .page-etfe-canopy .etfe-canopy-split__media img {
    min-height: 260px;
  }
}

@media (max-width: 560px) {
  .page-etfe-canopy .etfe-canopy-intro__metrics {
    grid-template-columns: 1fr 1fr;
  }
}


/* --- etfe-facade.css --- */
/* ==========================================================================
   etfe-facade product page â€” page-specific enhancements
   Extends: product-page.css
   ========================================================================== */

/* --------------------------------------------------------------------------
   HERO â€” force readable white text over bright ETFE photography
   -------------------------------------------------------------------------- */

.page-etfe-facade .product-hero {
  min-height: 0;
  color: #ffffff;
}

.page-etfe-facade .product-hero__overlay {
  background: linear-gradient(
    105deg,
    rgba(4, 12, 22, 0.92) 0%,
    rgba(8, 19, 31, 0.82) 38%,
    rgba(8, 19, 31, 0.45) 68%,
    rgba(8, 19, 31, 0.2) 100%
  );
}

.page-etfe-facade .product-hero__content {
  padding: clamp(4.25rem, 7vw, 5.25rem) var(--container-padding-x)
    clamp(1.15rem, 2.2vw, 1.75rem);
}

.page-etfe-facade .product-hero__title,
.page-etfe-facade .product-hero h1 {
  max-width: min(42rem, 100%);
  color: #ffffff !important;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.45);
}

.page-etfe-facade .product-hero__lead {
  color: rgba(248, 250, 252, 0.92) !important;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
  max-width: 38rem;
}

.page-etfe-facade .product-breadcrumb,
.page-etfe-facade .product-breadcrumb a,
.page-etfe-facade .product-breadcrumb [aria-current="page"] {
  color: rgba(248, 250, 252, 0.85);
}

.page-etfe-facade .product-breadcrumb a:hover {
  color: var(--color-accent);
}

.page-etfe-facade .product-hero .overline {
  color: var(--color-accent) !important;
}

.page-etfe-facade .product-hero__stat strong {
  color: #ffffff !important;
}

.page-etfe-facade .product-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  min-height: 100%;
}

/* --------------------------------------------------------------------------
   PAGE RHYTHM
   -------------------------------------------------------------------------- */

.page-etfe-facade .product-section {
  padding-block: clamp(1.75rem, 3.2vw, 2.75rem);
}

.page-etfe-facade .product-section__header {
  margin-bottom: clamp(1rem, 2vw, 1.5rem);
  max-width: none;
  width: 100%;
}

.page-etfe-facade .product-section__header p {
  max-width: none;
}

.page-etfe-facade .product-section__header--center {
  max-width: none;
  margin-inline: auto;
  text-align: center;
}

.page-etfe-facade .product-section__header--center p {
  max-width: 42rem;
  margin-inline: auto;
}

.page-etfe-facade .product-section__header h2 {
  color: var(--color-heading);
}

.page-etfe-facade .product-section--dark .product-section__header h2 {
  color: #ffffff !important;
}

.page-etfe-facade .product-wrap {
  max-width: 1240px;
}

/* --------------------------------------------------------------------------
   WHAT IS ETFE FILM â€” cinematic intro (image + editorial body)
   -------------------------------------------------------------------------- */

.page-etfe-facade .etfe-facade-intro {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: stretch;
  width: 100%;
  isolation: isolate;
}

.page-etfe-facade .etfe-facade-intro__media {
  position: relative;
  margin: 0;
  min-height: min(52vh, 520px);
  border-radius: var(--radius-2xl);
  overflow: hidden;
  background: #0b1a2a;
  box-shadow: var(--shadow-lg);
}

.page-etfe-facade .etfe-facade-intro__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: min(52vh, 520px);
  object-fit: cover;
  object-position: center 45%;
  transition: transform 1.1s var(--ease-out);
}

.page-etfe-facade .etfe-facade-intro__media:hover img {
  transform: scale(1.03);
}

.page-etfe-facade .etfe-facade-intro__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1.25rem 1.35rem 1.15rem;
  margin: 0;
  display: grid;
  gap: 0.2rem;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(0.95rem, 1.5vw, 1.1rem);
  font-weight: var(--font-semibold);
  letter-spacing: var(--tracking-heading);
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(4, 12, 22, 0.55) 35%,
    rgba(4, 12, 22, 0.88) 100%
  );
}

.page-etfe-facade .etfe-facade-intro__caption span {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: var(--font-semibold);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.page-etfe-facade .etfe-facade-intro__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-4);
  padding: clamp(0.25rem, 1vw, 0.5rem) 0;
}

.page-etfe-facade .etfe-facade-intro__lead {
  margin: 0;
  font-size: var(--text-body);
  line-height: 1.75;
  color: var(--color-text);
}

.page-etfe-facade .etfe-facade-intro__body > p {
  margin: 0;
  font-size: var(--text-body-sm);
  line-height: 1.7;
  color: var(--color-text-secondary);
}

.page-etfe-facade .etfe-facade-intro__metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin: var(--space-2) 0;
}

.page-etfe-facade .etfe-facade-intro__metric {
  padding: 0.85rem 1rem;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  background: linear-gradient(
    160deg,
    var(--color-surface) 0%,
    var(--color-bg-muted) 100%
  );
  display: grid;
  gap: 0.15rem;
}

.page-etfe-facade .etfe-facade-intro__metric strong {
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2vw, 1.35rem);
  font-weight: var(--font-bold);
  color: var(--color-heading);
  letter-spacing: var(--tracking-heading);
}

.page-etfe-facade .etfe-facade-intro__metric span {
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.page-etfe-facade .etfe-facade-intro__cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}

.page-etfe-facade .etfe-facade-intro__cols h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-h5);
  color: var(--color-heading);
}

.page-etfe-facade .etfe-facade-intro__tags {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.page-etfe-facade .etfe-facade-intro__tags li {
  padding: 0.35rem 0.7rem;
  border-radius: var(--radius-md);
  background: var(--color-bg-muted);
  border: 1px solid var(--color-border);
  font-size: 0.78rem;
  color: var(--color-text-secondary);
  line-height: 1.35;
}

.page-etfe-facade .etfe-facade-intro__checks {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.55rem;
}

.page-etfe-facade .etfe-facade-intro__checks li {
  position: relative;
  padding-left: 1.35rem;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.5;
}

.page-etfe-facade .etfe-facade-intro__checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35rem;
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background: var(--color-primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 22%, transparent);
}

/* --------------------------------------------------------------------------
   EDITORIAL SPLIT ROWS â€” text + image (attractive, fills white space)
   -------------------------------------------------------------------------- */

.page-etfe-facade .etfe-facade-prose {
  margin-top: var(--space-10);
  display: grid;
  gap: var(--space-8);
}

.page-etfe-facade .etfe-facade-split {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
  align-items: stretch;
  padding: clamp(1rem, 2vw, 1.5rem);
  border-radius: var(--radius-2xl);
  background: var(--color-bg-muted);
  border: 1px solid var(--color-border);
}

.page-etfe-facade .etfe-facade-split--reverse {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.page-etfe-facade .etfe-facade-split--reverse .etfe-facade-split__copy {
  order: 2;
}

.page-etfe-facade .etfe-facade-split--reverse .etfe-facade-split__media {
  order: 1;
}

.page-etfe-facade .etfe-facade-split__copy {
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--space-2) var(--space-3);
}

.page-etfe-facade .etfe-facade-split__copy h3 {
  margin: 0 0 var(--space-4);
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  font-weight: var(--font-bold);
  letter-spacing: var(--tracking-heading);
  color: var(--color-heading);
}

.page-etfe-facade .etfe-facade-split__copy p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: var(--text-body);
  line-height: 1.75;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

.page-etfe-facade .etfe-facade-split__copy p + p {
  margin-top: var(--space-4);
}

.page-etfe-facade .etfe-facade-split__media {
  margin: 0;
  position: relative;
  z-index: 0;
  width: 100%;
  min-width: 0;
  min-height: 100%;
  align-self: stretch;
  display: flex;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: #0b1a2a;
  box-shadow: var(--shadow-md);
}

.page-etfe-facade .etfe-facade-split__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
  flex: 1 1 auto;
  align-self: stretch;
}

/* Audience cards */
.page-etfe-facade .etfe-facade-audience {
  margin-top: var(--space-8);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}

.page-etfe-facade .etfe-facade-audience article {
  padding: var(--space-6);
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
  transition:
    transform var(--duration-base) var(--ease-out),
    box-shadow var(--duration-base) var(--ease-out);
}

.page-etfe-facade .etfe-facade-audience article:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

.page-etfe-facade .etfe-facade-audience h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-h5);
  color: var(--color-heading);
}

.page-etfe-facade .etfe-facade-audience p {
  margin: 0;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.65;
}

.page-etfe-facade .etfe-facade-note {
  margin-top: var(--space-6);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-lg);
  border-left: 3px solid var(--color-primary);
  background: var(--color-info-bg);
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.65;
}

/* Shared grids */
.page-etfe-facade .product-features,
.page-etfe-facade .product-performance,
.page-etfe-facade .product-apps,
.page-etfe-facade .product-advantages,
.page-etfe-facade .product-projects,
.page-etfe-facade .product-videos,
.page-etfe-facade .product-related {
  gap: var(--space-3);
}

.page-etfe-facade .product-app {
  aspect-ratio: 16 / 10;
}

.page-etfe-facade .product-app__media img,
.page-etfe-facade .product-process__media img,
.page-etfe-facade .product-project__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.page-etfe-facade .product-cta {
  padding-block: clamp(2rem, 3.5vw, 3rem);
}

@media (max-width: 960px) {
  .page-etfe-facade .etfe-facade-intro,
  .page-etfe-facade .etfe-facade-split,
  .page-etfe-facade .etfe-facade-split--reverse {
    grid-template-columns: 1fr;
  }

  .page-etfe-facade .etfe-facade-split--reverse .etfe-facade-split__copy,
  .page-etfe-facade .etfe-facade-split--reverse .etfe-facade-split__media {
    order: initial;
  }

  .page-etfe-facade .etfe-facade-intro__cols,
  .page-etfe-facade .etfe-facade-audience {
    grid-template-columns: 1fr;
  }

  .page-etfe-facade .etfe-facade-intro__media,
  .page-etfe-facade .etfe-facade-intro__media img {
    min-height: 280px;
  }

  .page-etfe-facade .etfe-facade-split__media,
  .page-etfe-facade .etfe-facade-split__media img {
    min-height: 260px;
  }
}

@media (max-width: 560px) {
  .page-etfe-facade .etfe-facade-intro__metrics {
    grid-template-columns: 1fr 1fr;
  }
}


/* --- etfe-film.css --- */
/* ==========================================================================
   ETFE Film product page â€” page-specific enhancements
   Extends: product-page.css
   ========================================================================== */

/* --------------------------------------------------------------------------
   HERO â€” force readable white text over bright ETFE photography
   -------------------------------------------------------------------------- */

.page-etfe-film .product-hero {
  min-height: 0;
  color: #ffffff;
}

.page-etfe-film .product-hero__overlay {
  background: linear-gradient(
    105deg,
    rgba(4, 12, 22, 0.92) 0%,
    rgba(8, 19, 31, 0.82) 38%,
    rgba(8, 19, 31, 0.45) 68%,
    rgba(8, 19, 31, 0.2) 100%
  );
}

.page-etfe-film .product-hero__content {
  padding: clamp(4.25rem, 7vw, 5.25rem) var(--container-padding-x)
    clamp(1.15rem, 2.2vw, 1.75rem);
}

.page-etfe-film .product-hero__title,
.page-etfe-film .product-hero h1 {
  max-width: min(42rem, 100%);
  color: #ffffff !important;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.45);
}

.page-etfe-film .product-hero__lead {
  color: rgba(248, 250, 252, 0.92) !important;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
  max-width: 38rem;
}

.page-etfe-film .product-breadcrumb,
.page-etfe-film .product-breadcrumb a,
.page-etfe-film .product-breadcrumb [aria-current="page"] {
  color: rgba(248, 250, 252, 0.85);
}

.page-etfe-film .product-breadcrumb a:hover {
  color: var(--color-accent);
}

.page-etfe-film .product-hero .overline {
  color: var(--color-accent) !important;
}

.page-etfe-film .product-hero__stat strong {
  color: #ffffff !important;
}

.page-etfe-film .product-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  min-height: 100%;
}

/* --------------------------------------------------------------------------
   PAGE RHYTHM
   -------------------------------------------------------------------------- */

.page-etfe-film .product-section {
  padding-block: clamp(1.75rem, 3.2vw, 2.75rem);
}

.page-etfe-film .product-section__header {
  margin-bottom: clamp(1rem, 2vw, 1.5rem);
  max-width: none;
  width: 100%;
}

.page-etfe-film .product-section__header p {
  max-width: none;
}

.page-etfe-film .product-section__header--center {
  max-width: none;
  margin-inline: auto;
  text-align: center;
}

.page-etfe-film .product-section__header--center p {
  max-width: 42rem;
  margin-inline: auto;
}

.page-etfe-film .product-section__header h2 {
  color: var(--color-heading);
}

.page-etfe-film .product-section--dark .product-section__header h2 {
  color: #ffffff !important;
}

.page-etfe-film .product-wrap {
  max-width: 1240px;
}

/* --------------------------------------------------------------------------
   WHAT IS ETFE FILM â€” cinematic intro (image + editorial body)
   -------------------------------------------------------------------------- */

.page-etfe-film .etfe-film-intro {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: stretch;
  width: 100%;
  isolation: isolate;
}

.page-etfe-film .etfe-film-intro__media {
  position: relative;
  margin: 0;
  min-height: min(52vh, 520px);
  border-radius: var(--radius-2xl);
  overflow: hidden;
  background: #0b1a2a;
  box-shadow: var(--shadow-lg);
}

.page-etfe-film .etfe-film-intro__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: min(52vh, 520px);
  object-fit: cover;
  object-position: center 45%;
  transition: transform 1.1s var(--ease-out);
}

.page-etfe-film .etfe-film-intro__media:hover img {
  transform: scale(1.03);
}

.page-etfe-film .etfe-film-intro__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1.25rem 1.35rem 1.15rem;
  margin: 0;
  display: grid;
  gap: 0.2rem;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(0.95rem, 1.5vw, 1.1rem);
  font-weight: var(--font-semibold);
  letter-spacing: var(--tracking-heading);
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(4, 12, 22, 0.55) 35%,
    rgba(4, 12, 22, 0.88) 100%
  );
}

.page-etfe-film .etfe-film-intro__caption span {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: var(--font-semibold);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.page-etfe-film .etfe-film-intro__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-4);
  padding: clamp(0.25rem, 1vw, 0.5rem) 0;
}

.page-etfe-film .etfe-film-intro__lead {
  margin: 0;
  font-size: var(--text-body);
  line-height: 1.75;
  color: var(--color-text);
}

.page-etfe-film .etfe-film-intro__body > p {
  margin: 0;
  font-size: var(--text-body-sm);
  line-height: 1.7;
  color: var(--color-text-secondary);
}

.page-etfe-film .etfe-film-intro__metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin: var(--space-2) 0;
}

.page-etfe-film .etfe-film-intro__metric {
  padding: 0.85rem 1rem;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  background: linear-gradient(
    160deg,
    var(--color-surface) 0%,
    var(--color-bg-muted) 100%
  );
  display: grid;
  gap: 0.15rem;
}

.page-etfe-film .etfe-film-intro__metric strong {
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2vw, 1.35rem);
  font-weight: var(--font-bold);
  color: var(--color-heading);
  letter-spacing: var(--tracking-heading);
}

.page-etfe-film .etfe-film-intro__metric span {
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.page-etfe-film .etfe-film-intro__cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}

.page-etfe-film .etfe-film-intro__cols h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-h5);
  color: var(--color-heading);
}

.page-etfe-film .etfe-film-intro__tags {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.page-etfe-film .etfe-film-intro__tags li {
  padding: 0.35rem 0.7rem;
  border-radius: var(--radius-md);
  background: var(--color-bg-muted);
  border: 1px solid var(--color-border);
  font-size: 0.78rem;
  color: var(--color-text-secondary);
  line-height: 1.35;
}

.page-etfe-film .etfe-film-intro__checks {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.55rem;
}

.page-etfe-film .etfe-film-intro__checks li {
  position: relative;
  padding-left: 1.35rem;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.5;
}

.page-etfe-film .etfe-film-intro__checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35rem;
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background: var(--color-primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 22%, transparent);
}

/* --------------------------------------------------------------------------
   EDITORIAL SPLIT ROWS â€” text + image (attractive, fills white space)
   -------------------------------------------------------------------------- */

.page-etfe-film .etfe-film-prose {
  margin-top: var(--space-10);
  display: grid;
  gap: var(--space-8);
}

.page-etfe-film .etfe-film-split {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
  align-items: stretch;
  padding: clamp(1rem, 2vw, 1.5rem);
  border-radius: var(--radius-2xl);
  background: var(--color-bg-muted);
  border: 1px solid var(--color-border);
}

.page-etfe-film .etfe-film-split--reverse {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.page-etfe-film .etfe-film-split--reverse .etfe-film-split__copy {
  order: 2;
}

.page-etfe-film .etfe-film-split--reverse .etfe-film-split__media {
  order: 1;
}

.page-etfe-film .etfe-film-split__copy {
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--space-2) var(--space-3);
}

.page-etfe-film .etfe-film-split__copy h3 {
  margin: 0 0 var(--space-4);
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  font-weight: var(--font-bold);
  letter-spacing: var(--tracking-heading);
  color: var(--color-heading);
}

.page-etfe-film .etfe-film-split__copy p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: var(--text-body);
  line-height: 1.75;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

.page-etfe-film .etfe-film-split__copy p + p {
  margin-top: var(--space-4);
}

.page-etfe-film .etfe-film-split__media {
  margin: 0;
  position: relative;
  z-index: 0;
  width: 100%;
  min-width: 0;
  min-height: 100%;
  align-self: stretch;
  display: flex;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: #0b1a2a;
  box-shadow: var(--shadow-md);
}

.page-etfe-film .etfe-film-split__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
  flex: 1 1 auto;
  align-self: stretch;
}

/* Audience cards */
.page-etfe-film .etfe-film-audience {
  margin-top: var(--space-8);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}

.page-etfe-film .etfe-film-audience article {
  padding: var(--space-6);
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
  transition:
    transform var(--duration-base) var(--ease-out),
    box-shadow var(--duration-base) var(--ease-out);
}

.page-etfe-film .etfe-film-audience article:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

.page-etfe-film .etfe-film-audience h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-h5);
  color: var(--color-heading);
}

.page-etfe-film .etfe-film-audience p {
  margin: 0;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.65;
}

.page-etfe-film .etfe-film-note {
  margin-top: var(--space-6);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-lg);
  border-left: 3px solid var(--color-primary);
  background: var(--color-info-bg);
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.65;
}

/* Shared grids */
.page-etfe-film .product-features,
.page-etfe-film .product-performance,
.page-etfe-film .product-apps,
.page-etfe-film .product-advantages,
.page-etfe-film .product-projects,
.page-etfe-film .product-videos,
.page-etfe-film .product-related {
  gap: var(--space-3);
}

.page-etfe-film .product-app {
  aspect-ratio: 16 / 10;
}

.page-etfe-film .product-app__media img,
.page-etfe-film .product-process__media img,
.page-etfe-film .product-project__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.page-etfe-film .product-cta {
  padding-block: clamp(2rem, 3.5vw, 3rem);
}

@media (max-width: 960px) {
  .page-etfe-film .etfe-film-intro,
  .page-etfe-film .etfe-film-split,
  .page-etfe-film .etfe-film-split--reverse {
    grid-template-columns: 1fr;
  }

  .page-etfe-film .etfe-film-split--reverse .etfe-film-split__copy,
  .page-etfe-film .etfe-film-split--reverse .etfe-film-split__media {
    order: initial;
  }

  .page-etfe-film .etfe-film-intro__cols,
  .page-etfe-film .etfe-film-audience {
    grid-template-columns: 1fr;
  }

  .page-etfe-film .etfe-film-intro__media,
  .page-etfe-film .etfe-film-intro__media img {
    min-height: 280px;
  }

  .page-etfe-film .etfe-film-split__media,
  .page-etfe-film .etfe-film-split__media img {
    min-height: 260px;
  }
}

@media (max-width: 560px) {
  .page-etfe-film .etfe-film-intro__metrics {
    grid-template-columns: 1fr 1fr;
  }
}


/* --- etfe-greenhouse.css --- */
/* ==========================================================================
   etfe-greenhouse product page â€” page-specific enhancements
   Extends: product-page.css
   ========================================================================== */

/* --------------------------------------------------------------------------
   HERO â€” force readable white text over bright ETFE photography
   -------------------------------------------------------------------------- */

.page-etfe-greenhouse .product-hero {
  min-height: 0;
  color: #ffffff;
}

.page-etfe-greenhouse .product-hero__overlay {
  background: linear-gradient(
    105deg,
    rgba(4, 12, 22, 0.92) 0%,
    rgba(8, 19, 31, 0.82) 38%,
    rgba(8, 19, 31, 0.45) 68%,
    rgba(8, 19, 31, 0.2) 100%
  );
}

.page-etfe-greenhouse .product-hero__content {
  padding: clamp(4.25rem, 7vw, 5.25rem) var(--container-padding-x)
    clamp(1.15rem, 2.2vw, 1.75rem);
}

.page-etfe-greenhouse .product-hero__title,
.page-etfe-greenhouse .product-hero h1 {
  max-width: min(42rem, 100%);
  color: #ffffff !important;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.45);
}

.page-etfe-greenhouse .product-hero__lead {
  color: rgba(248, 250, 252, 0.92) !important;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
  max-width: 38rem;
}

.page-etfe-greenhouse .product-breadcrumb,
.page-etfe-greenhouse .product-breadcrumb a,
.page-etfe-greenhouse .product-breadcrumb [aria-current="page"] {
  color: rgba(248, 250, 252, 0.85);
}

.page-etfe-greenhouse .product-breadcrumb a:hover {
  color: var(--color-accent);
}

.page-etfe-greenhouse .product-hero .overline {
  color: var(--color-accent) !important;
}

.page-etfe-greenhouse .product-hero__stat strong {
  color: #ffffff !important;
}

.page-etfe-greenhouse .product-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  min-height: 100%;
}

/* --------------------------------------------------------------------------
   PAGE RHYTHM
   -------------------------------------------------------------------------- */

.page-etfe-greenhouse .product-section {
  padding-block: clamp(1.75rem, 3.2vw, 2.75rem);
}

.page-etfe-greenhouse .product-section__header {
  margin-bottom: clamp(1rem, 2vw, 1.5rem);
  max-width: none;
  width: 100%;
}

.page-etfe-greenhouse .product-section__header p {
  max-width: none;
}

.page-etfe-greenhouse .product-section__header--center {
  max-width: none;
  margin-inline: auto;
  text-align: center;
}

.page-etfe-greenhouse .product-section__header--center p {
  max-width: 42rem;
  margin-inline: auto;
}

.page-etfe-greenhouse .product-section__header h2 {
  color: var(--color-heading);
}

.page-etfe-greenhouse .product-section--dark .product-section__header h2 {
  color: #ffffff !important;
}

.page-etfe-greenhouse .product-wrap {
  max-width: 1240px;
}

/* --------------------------------------------------------------------------
   WHAT IS ETFE FILM â€” cinematic intro (image + editorial body)
   -------------------------------------------------------------------------- */

.page-etfe-greenhouse .etfe-greenhouse-intro {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: stretch;
  width: 100%;
  isolation: isolate;
}

.page-etfe-greenhouse .etfe-greenhouse-intro__media {
  position: relative;
  margin: 0;
  min-height: min(52vh, 520px);
  border-radius: var(--radius-2xl);
  overflow: hidden;
  background: #0b1a2a;
  box-shadow: var(--shadow-lg);
}

.page-etfe-greenhouse .etfe-greenhouse-intro__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: min(52vh, 520px);
  object-fit: cover;
  object-position: center 45%;
  transition: transform 1.1s var(--ease-out);
}

.page-etfe-greenhouse .etfe-greenhouse-intro__media:hover img {
  transform: scale(1.03);
}

.page-etfe-greenhouse .etfe-greenhouse-intro__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1.25rem 1.35rem 1.15rem;
  margin: 0;
  display: grid;
  gap: 0.2rem;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(0.95rem, 1.5vw, 1.1rem);
  font-weight: var(--font-semibold);
  letter-spacing: var(--tracking-heading);
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(4, 12, 22, 0.55) 35%,
    rgba(4, 12, 22, 0.88) 100%
  );
}

.page-etfe-greenhouse .etfe-greenhouse-intro__caption span {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: var(--font-semibold);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.page-etfe-greenhouse .etfe-greenhouse-intro__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-4);
  padding: clamp(0.25rem, 1vw, 0.5rem) 0;
}

.page-etfe-greenhouse .etfe-greenhouse-intro__lead {
  margin: 0;
  font-size: var(--text-body);
  line-height: 1.75;
  color: var(--color-text);
}

.page-etfe-greenhouse .etfe-greenhouse-intro__body > p {
  margin: 0;
  font-size: var(--text-body-sm);
  line-height: 1.7;
  color: var(--color-text-secondary);
}

.page-etfe-greenhouse .etfe-greenhouse-intro__metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin: var(--space-2) 0;
}

.page-etfe-greenhouse .etfe-greenhouse-intro__metric {
  padding: 0.85rem 1rem;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  background: linear-gradient(
    160deg,
    var(--color-surface) 0%,
    var(--color-bg-muted) 100%
  );
  display: grid;
  gap: 0.15rem;
}

.page-etfe-greenhouse .etfe-greenhouse-intro__metric strong {
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2vw, 1.35rem);
  font-weight: var(--font-bold);
  color: var(--color-heading);
  letter-spacing: var(--tracking-heading);
}

.page-etfe-greenhouse .etfe-greenhouse-intro__metric span {
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.page-etfe-greenhouse .etfe-greenhouse-intro__cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}

.page-etfe-greenhouse .etfe-greenhouse-intro__cols h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-h5);
  color: var(--color-heading);
}

.page-etfe-greenhouse .etfe-greenhouse-intro__tags {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.page-etfe-greenhouse .etfe-greenhouse-intro__tags li {
  padding: 0.35rem 0.7rem;
  border-radius: var(--radius-md);
  background: var(--color-bg-muted);
  border: 1px solid var(--color-border);
  font-size: 0.78rem;
  color: var(--color-text-secondary);
  line-height: 1.35;
}

.page-etfe-greenhouse .etfe-greenhouse-intro__checks {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.55rem;
}

.page-etfe-greenhouse .etfe-greenhouse-intro__checks li {
  position: relative;
  padding-left: 1.35rem;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.5;
}

.page-etfe-greenhouse .etfe-greenhouse-intro__checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35rem;
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background: var(--color-primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 22%, transparent);
}

/* --------------------------------------------------------------------------
   EDITORIAL SPLIT ROWS â€” text + image (attractive, fills white space)
   -------------------------------------------------------------------------- */

.page-etfe-greenhouse .etfe-greenhouse-prose {
  margin-top: var(--space-10);
  display: grid;
  gap: var(--space-8);
}

.page-etfe-greenhouse .etfe-greenhouse-split {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
  align-items: stretch;
  padding: clamp(1rem, 2vw, 1.5rem);
  border-radius: var(--radius-2xl);
  background: var(--color-bg-muted);
  border: 1px solid var(--color-border);
}

.page-etfe-greenhouse .etfe-greenhouse-split--reverse {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.page-etfe-greenhouse .etfe-greenhouse-split--reverse .etfe-greenhouse-split__copy {
  order: 2;
}

.page-etfe-greenhouse .etfe-greenhouse-split--reverse .etfe-greenhouse-split__media {
  order: 1;
}

.page-etfe-greenhouse .etfe-greenhouse-split__copy {
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--space-2) var(--space-3);
}

.page-etfe-greenhouse .etfe-greenhouse-split__copy h3 {
  margin: 0 0 var(--space-4);
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  font-weight: var(--font-bold);
  letter-spacing: var(--tracking-heading);
  color: var(--color-heading);
}

.page-etfe-greenhouse .etfe-greenhouse-split__copy p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: var(--text-body);
  line-height: 1.75;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

.page-etfe-greenhouse .etfe-greenhouse-split__copy p + p {
  margin-top: var(--space-4);
}

.page-etfe-greenhouse .etfe-greenhouse-split__media {
  margin: 0;
  position: relative;
  z-index: 0;
  width: 100%;
  min-width: 0;
  min-height: 100%;
  align-self: stretch;
  display: flex;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: #0b1a2a;
  box-shadow: var(--shadow-md);
}

.page-etfe-greenhouse .etfe-greenhouse-split__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
  flex: 1 1 auto;
  align-self: stretch;
}

/* Audience cards */
.page-etfe-greenhouse .etfe-greenhouse-audience {
  margin-top: var(--space-8);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}

.page-etfe-greenhouse .etfe-greenhouse-audience article {
  padding: var(--space-6);
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
  transition:
    transform var(--duration-base) var(--ease-out),
    box-shadow var(--duration-base) var(--ease-out);
}

.page-etfe-greenhouse .etfe-greenhouse-audience article:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

.page-etfe-greenhouse .etfe-greenhouse-audience h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-h5);
  color: var(--color-heading);
}

.page-etfe-greenhouse .etfe-greenhouse-audience p {
  margin: 0;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.65;
}

.page-etfe-greenhouse .etfe-greenhouse-note {
  margin-top: var(--space-6);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-lg);
  border-left: 3px solid var(--color-primary);
  background: var(--color-info-bg);
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.65;
}

/* Shared grids */
.page-etfe-greenhouse .product-features,
.page-etfe-greenhouse .product-performance,
.page-etfe-greenhouse .product-apps,
.page-etfe-greenhouse .product-advantages,
.page-etfe-greenhouse .product-projects,
.page-etfe-greenhouse .product-videos,
.page-etfe-greenhouse .product-related {
  gap: var(--space-3);
}

.page-etfe-greenhouse .product-app {
  aspect-ratio: 16 / 10;
}

.page-etfe-greenhouse .product-app__media img,
.page-etfe-greenhouse .product-process__media img,
.page-etfe-greenhouse .product-project__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.page-etfe-greenhouse .product-cta {
  padding-block: clamp(2rem, 3.5vw, 3rem);
}

@media (max-width: 960px) {
  .page-etfe-greenhouse .etfe-greenhouse-intro,
  .page-etfe-greenhouse .etfe-greenhouse-split,
  .page-etfe-greenhouse .etfe-greenhouse-split--reverse {
    grid-template-columns: 1fr;
  }

  .page-etfe-greenhouse .etfe-greenhouse-split--reverse .etfe-greenhouse-split__copy,
  .page-etfe-greenhouse .etfe-greenhouse-split--reverse .etfe-greenhouse-split__media {
    order: initial;
  }

  .page-etfe-greenhouse .etfe-greenhouse-intro__cols,
  .page-etfe-greenhouse .etfe-greenhouse-audience {
    grid-template-columns: 1fr;
  }

  .page-etfe-greenhouse .etfe-greenhouse-intro__media,
  .page-etfe-greenhouse .etfe-greenhouse-intro__media img {
    min-height: 280px;
  }

  .page-etfe-greenhouse .etfe-greenhouse-split__media,
  .page-etfe-greenhouse .etfe-greenhouse-split__media img {
    min-height: 260px;
  }
}

@media (max-width: 560px) {
  .page-etfe-greenhouse .etfe-greenhouse-intro__metrics {
    grid-template-columns: 1fr 1fr;
  }
}


/* --- etfe-roofing-system.css --- */
/* ==========================================================================
   ETFE Film product page â€” page-specific enhancements
   Extends: product-page.css
   ========================================================================== */

/* --------------------------------------------------------------------------
   HERO â€” force readable white text over bright ETFE photography
   -------------------------------------------------------------------------- */

.page-etfe-roofing .product-hero {
  min-height: 0;
  color: #ffffff;
}

.page-etfe-roofing .product-hero__overlay {
  background: linear-gradient(
    105deg,
    rgba(4, 12, 22, 0.92) 0%,
    rgba(8, 19, 31, 0.82) 38%,
    rgba(8, 19, 31, 0.45) 68%,
    rgba(8, 19, 31, 0.2) 100%
  );
}

.page-etfe-roofing .product-hero__content {
  padding: clamp(4.25rem, 7vw, 5.25rem) var(--container-padding-x)
    clamp(1.15rem, 2.2vw, 1.75rem);
}

.page-etfe-roofing .product-hero__title,
.page-etfe-roofing .product-hero h1 {
  max-width: min(42rem, 100%);
  color: #ffffff !important;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.45);
}

.page-etfe-roofing .product-hero__lead {
  color: rgba(248, 250, 252, 0.92) !important;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
  max-width: 38rem;
}

.page-etfe-roofing .product-breadcrumb,
.page-etfe-roofing .product-breadcrumb a,
.page-etfe-roofing .product-breadcrumb [aria-current="page"] {
  color: rgba(248, 250, 252, 0.85);
}

.page-etfe-roofing .product-breadcrumb a:hover {
  color: var(--color-accent);
}

.page-etfe-roofing .product-hero .overline {
  color: var(--color-accent) !important;
}

.page-etfe-roofing .product-hero__stat strong {
  color: #ffffff !important;
}

.page-etfe-roofing .product-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  min-height: 100%;
}

/* --------------------------------------------------------------------------
   PAGE RHYTHM
   -------------------------------------------------------------------------- */

.page-etfe-roofing .product-section {
  padding-block: clamp(1.75rem, 3.2vw, 2.75rem);
}

.page-etfe-roofing .product-section__header {
  margin-bottom: clamp(1rem, 2vw, 1.5rem);
  max-width: none;
  width: 100%;
}

.page-etfe-roofing .product-section__header p {
  max-width: none;
}

.page-etfe-roofing .product-section__header--center {
  max-width: none;
  margin-inline: auto;
  text-align: center;
}

.page-etfe-roofing .product-section__header--center p {
  max-width: 42rem;
  margin-inline: auto;
}

.page-etfe-roofing .product-section__header h2 {
  color: var(--color-heading);
}

.page-etfe-roofing .product-section--dark .product-section__header h2 {
  color: #ffffff !important;
}

.page-etfe-roofing .product-wrap {
  max-width: 1240px;
}

/* --------------------------------------------------------------------------
   WHAT IS ETFE ROOFING SYSTEM â€” cinematic intro (image + editorial body)
   -------------------------------------------------------------------------- */

.page-etfe-roofing .etfe-roofing-intro {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: stretch;
  width: 100%;
  isolation: isolate;
}

.page-etfe-roofing .etfe-roofing-intro__media {
  position: relative;
  margin: 0;
  min-height: min(52vh, 520px);
  border-radius: var(--radius-2xl);
  overflow: hidden;
  background: #0b1a2a;
  box-shadow: var(--shadow-lg);
}

.page-etfe-roofing .etfe-roofing-intro__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: min(52vh, 520px);
  object-fit: cover;
  object-position: center 45%;
  transition: transform 1.1s var(--ease-out);
}

.page-etfe-roofing .etfe-roofing-intro__media:hover img {
  transform: scale(1.03);
}

.page-etfe-roofing .etfe-roofing-intro__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1.25rem 1.35rem 1.15rem;
  margin: 0;
  display: grid;
  gap: 0.2rem;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(0.95rem, 1.5vw, 1.1rem);
  font-weight: var(--font-semibold);
  letter-spacing: var(--tracking-heading);
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(4, 12, 22, 0.55) 35%,
    rgba(4, 12, 22, 0.88) 100%
  );
}

.page-etfe-roofing .etfe-roofing-intro__caption span {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: var(--font-semibold);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.page-etfe-roofing .etfe-roofing-intro__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-4);
  padding: clamp(0.25rem, 1vw, 0.5rem) 0;
}

.page-etfe-roofing .etfe-roofing-intro__lead {
  margin: 0;
  font-size: var(--text-body);
  line-height: 1.75;
  color: var(--color-text);
}

.page-etfe-roofing .etfe-roofing-intro__body > p {
  margin: 0;
  font-size: var(--text-body-sm);
  line-height: 1.7;
  color: var(--color-text-secondary);
}

.page-etfe-roofing .etfe-roofing-intro__metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin: var(--space-2) 0;
}

.page-etfe-roofing .etfe-roofing-intro__metric {
  padding: 0.85rem 1rem;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  background: linear-gradient(
    160deg,
    var(--color-surface) 0%,
    var(--color-bg-muted) 100%
  );
  display: grid;
  gap: 0.15rem;
}

.page-etfe-roofing .etfe-roofing-intro__metric strong {
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2vw, 1.35rem);
  font-weight: var(--font-bold);
  color: var(--color-heading);
  letter-spacing: var(--tracking-heading);
}

.page-etfe-roofing .etfe-roofing-intro__metric span {
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.page-etfe-roofing .etfe-roofing-intro__cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}

.page-etfe-roofing .etfe-roofing-intro__cols h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-h5);
  color: var(--color-heading);
}

.page-etfe-roofing .etfe-roofing-intro__tags {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.page-etfe-roofing .etfe-roofing-intro__tags li {
  padding: 0.35rem 0.7rem;
  border-radius: var(--radius-md);
  background: var(--color-bg-muted);
  border: 1px solid var(--color-border);
  font-size: 0.78rem;
  color: var(--color-text-secondary);
  line-height: 1.35;
}

.page-etfe-roofing .etfe-roofing-intro__checks {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.55rem;
}

.page-etfe-roofing .etfe-roofing-intro__checks li {
  position: relative;
  padding-left: 1.35rem;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.5;
}

.page-etfe-roofing .etfe-roofing-intro__checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35rem;
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background: var(--color-primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 22%, transparent);
}

/* --------------------------------------------------------------------------
   EDITORIAL SPLIT ROWS â€” text + image (attractive, fills white space)
   -------------------------------------------------------------------------- */

.page-etfe-roofing .etfe-roofing-prose {
  margin-top: var(--space-10);
  display: grid;
  gap: var(--space-8);
}

.page-etfe-roofing .etfe-roofing-split {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
  align-items: stretch;
  padding: clamp(1rem, 2vw, 1.5rem);
  border-radius: var(--radius-2xl);
  background: var(--color-bg-muted);
  border: 1px solid var(--color-border);
}

.page-etfe-roofing .etfe-roofing-split--reverse {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.page-etfe-roofing .etfe-roofing-split--reverse .etfe-roofing-split__copy {
  order: 2;
}

.page-etfe-roofing .etfe-roofing-split--reverse .etfe-roofing-split__media {
  order: 1;
}

.page-etfe-roofing .etfe-roofing-split__copy {
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--space-2) var(--space-3);
}

.page-etfe-roofing .etfe-roofing-split__copy h3 {
  margin: 0 0 var(--space-4);
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  font-weight: var(--font-bold);
  letter-spacing: var(--tracking-heading);
  color: var(--color-heading);
}

.page-etfe-roofing .etfe-roofing-split__copy p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: var(--text-body);
  line-height: 1.75;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

.page-etfe-roofing .etfe-roofing-split__copy p + p {
  margin-top: var(--space-4);
}

.page-etfe-roofing .etfe-roofing-split__media {
  margin: 0;
  position: relative;
  z-index: 0;
  width: 100%;
  min-width: 0;
  min-height: 100%;
  align-self: stretch;
  display: flex;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: #0b1a2a;
  box-shadow: var(--shadow-md);
}

.page-etfe-roofing .etfe-roofing-split__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
  flex: 1 1 auto;
  align-self: stretch;
}

/* Audience cards */
.page-etfe-roofing .etfe-roofing-audience {
  margin-top: var(--space-8);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}

.page-etfe-roofing .etfe-roofing-audience article {
  padding: var(--space-6);
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
  transition:
    transform var(--duration-base) var(--ease-out),
    box-shadow var(--duration-base) var(--ease-out);
}

.page-etfe-roofing .etfe-roofing-audience article:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

.page-etfe-roofing .etfe-roofing-audience h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-h5);
  color: var(--color-heading);
}

.page-etfe-roofing .etfe-roofing-audience p {
  margin: 0;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.65;
}

.page-etfe-roofing .etfe-roofing-note {
  margin-top: var(--space-6);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-lg);
  border-left: 3px solid var(--color-primary);
  background: var(--color-info-bg);
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.65;
}

/* Shared grids */
.page-etfe-roofing .product-features,
.page-etfe-roofing .product-performance,
.page-etfe-roofing .product-apps,
.page-etfe-roofing .product-advantages,
.page-etfe-roofing .product-projects,
.page-etfe-roofing .product-videos,
.page-etfe-roofing .product-related {
  gap: var(--space-3);
}

.page-etfe-roofing .product-app {
  aspect-ratio: 16 / 10;
}

.page-etfe-roofing .product-app__media img,
.page-etfe-roofing .product-process__media img,
.page-etfe-roofing .product-project__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.page-etfe-roofing .product-cta {
  padding-block: clamp(2rem, 3.5vw, 3rem);
}

@media (max-width: 960px) {
  .page-etfe-roofing .etfe-roofing-intro,
  .page-etfe-roofing .etfe-roofing-split,
  .page-etfe-roofing .etfe-roofing-split--reverse {
    grid-template-columns: 1fr;
  }

  .page-etfe-roofing .etfe-roofing-split--reverse .etfe-roofing-split__copy,
  .page-etfe-roofing .etfe-roofing-split--reverse .etfe-roofing-split__media {
    order: initial;
  }

  .page-etfe-roofing .etfe-roofing-intro__cols,
  .page-etfe-roofing .etfe-roofing-audience {
    grid-template-columns: 1fr;
  }

  .page-etfe-roofing .etfe-roofing-intro__media,
  .page-etfe-roofing .etfe-roofing-intro__media img {
    min-height: 280px;
  }

  .page-etfe-roofing .etfe-roofing-split__media,
  .page-etfe-roofing .etfe-roofing-split__media img {
    min-height: 260px;
  }
}


/* --- etfe-skylight.css --- */
/* ==========================================================================
   etfe-skylight product page â€” page-specific enhancements
   Extends: product-page.css
   ========================================================================== */

/* --------------------------------------------------------------------------
   HERO â€” force readable white text over bright ETFE photography
   -------------------------------------------------------------------------- */

.page-etfe-skylight .product-hero {
  min-height: 0;
  color: #ffffff;
}

.page-etfe-skylight .product-hero__overlay {
  background: linear-gradient(
    105deg,
    rgba(4, 12, 22, 0.92) 0%,
    rgba(8, 19, 31, 0.82) 38%,
    rgba(8, 19, 31, 0.45) 68%,
    rgba(8, 19, 31, 0.2) 100%
  );
}

.page-etfe-skylight .product-hero__content {
  padding: clamp(4.25rem, 7vw, 5.25rem) var(--container-padding-x)
    clamp(1.15rem, 2.2vw, 1.75rem);
}

.page-etfe-skylight .product-hero__title,
.page-etfe-skylight .product-hero h1 {
  max-width: min(42rem, 100%);
  color: #ffffff !important;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.45);
}

.page-etfe-skylight .product-hero__lead {
  color: rgba(248, 250, 252, 0.92) !important;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
  max-width: 38rem;
}

.page-etfe-skylight .product-breadcrumb,
.page-etfe-skylight .product-breadcrumb a,
.page-etfe-skylight .product-breadcrumb [aria-current="page"] {
  color: rgba(248, 250, 252, 0.85);
}

.page-etfe-skylight .product-breadcrumb a:hover {
  color: var(--color-accent);
}

.page-etfe-skylight .product-hero .overline {
  color: var(--color-accent) !important;
}

.page-etfe-skylight .product-hero__stat strong {
  color: #ffffff !important;
}

.page-etfe-skylight .product-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  min-height: 100%;
}

/* --------------------------------------------------------------------------
   PAGE RHYTHM
   -------------------------------------------------------------------------- */

.page-etfe-skylight .product-section {
  padding-block: clamp(1.75rem, 3.2vw, 2.75rem);
}

.page-etfe-skylight .product-section__header {
  margin-bottom: clamp(1rem, 2vw, 1.5rem);
  max-width: none;
  width: 100%;
}

.page-etfe-skylight .product-section__header p {
  max-width: none;
}

.page-etfe-skylight .product-section__header--center {
  max-width: none;
  margin-inline: auto;
  text-align: center;
}

.page-etfe-skylight .product-section__header--center p {
  max-width: 42rem;
  margin-inline: auto;
}

.page-etfe-skylight .product-section__header h2 {
  color: var(--color-heading);
}

.page-etfe-skylight .product-section--dark .product-section__header h2 {
  color: #ffffff !important;
}

.page-etfe-skylight .product-wrap {
  max-width: 1240px;
}

/* --------------------------------------------------------------------------
   WHAT IS ETFE FILM â€” cinematic intro (image + editorial body)
   -------------------------------------------------------------------------- */

.page-etfe-skylight .etfe-skylight-intro {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: stretch;
  width: 100%;
  isolation: isolate;
}

.page-etfe-skylight .etfe-skylight-intro__media {
  position: relative;
  margin: 0;
  min-height: min(52vh, 520px);
  border-radius: var(--radius-2xl);
  overflow: hidden;
  background: #0b1a2a;
  box-shadow: var(--shadow-lg);
}

.page-etfe-skylight .etfe-skylight-intro__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: min(52vh, 520px);
  object-fit: cover;
  object-position: center 45%;
  transition: transform 1.1s var(--ease-out);
}

.page-etfe-skylight .etfe-skylight-intro__media:hover img {
  transform: scale(1.03);
}

.page-etfe-skylight .etfe-skylight-intro__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1.25rem 1.35rem 1.15rem;
  margin: 0;
  display: grid;
  gap: 0.2rem;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(0.95rem, 1.5vw, 1.1rem);
  font-weight: var(--font-semibold);
  letter-spacing: var(--tracking-heading);
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(4, 12, 22, 0.55) 35%,
    rgba(4, 12, 22, 0.88) 100%
  );
}

.page-etfe-skylight .etfe-skylight-intro__caption span {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: var(--font-semibold);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.page-etfe-skylight .etfe-skylight-intro__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-4);
  padding: clamp(0.25rem, 1vw, 0.5rem) 0;
}

.page-etfe-skylight .etfe-skylight-intro__lead {
  margin: 0;
  font-size: var(--text-body);
  line-height: 1.75;
  color: var(--color-text);
}

.page-etfe-skylight .etfe-skylight-intro__body > p {
  margin: 0;
  font-size: var(--text-body-sm);
  line-height: 1.7;
  color: var(--color-text-secondary);
}

.page-etfe-skylight .etfe-skylight-intro__metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin: var(--space-2) 0;
}

.page-etfe-skylight .etfe-skylight-intro__metric {
  padding: 0.85rem 1rem;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  background: linear-gradient(
    160deg,
    var(--color-surface) 0%,
    var(--color-bg-muted) 100%
  );
  display: grid;
  gap: 0.15rem;
}

.page-etfe-skylight .etfe-skylight-intro__metric strong {
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2vw, 1.35rem);
  font-weight: var(--font-bold);
  color: var(--color-heading);
  letter-spacing: var(--tracking-heading);
}

.page-etfe-skylight .etfe-skylight-intro__metric span {
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.page-etfe-skylight .etfe-skylight-intro__cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}

.page-etfe-skylight .etfe-skylight-intro__cols h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-h5);
  color: var(--color-heading);
}

.page-etfe-skylight .etfe-skylight-intro__tags {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.page-etfe-skylight .etfe-skylight-intro__tags li {
  padding: 0.35rem 0.7rem;
  border-radius: var(--radius-md);
  background: var(--color-bg-muted);
  border: 1px solid var(--color-border);
  font-size: 0.78rem;
  color: var(--color-text-secondary);
  line-height: 1.35;
}

.page-etfe-skylight .etfe-skylight-intro__checks {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.55rem;
}

.page-etfe-skylight .etfe-skylight-intro__checks li {
  position: relative;
  padding-left: 1.35rem;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.5;
}

.page-etfe-skylight .etfe-skylight-intro__checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35rem;
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background: var(--color-primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 22%, transparent);
}

/* --------------------------------------------------------------------------
   EDITORIAL SPLIT ROWS â€” text + image (attractive, fills white space)
   -------------------------------------------------------------------------- */

.page-etfe-skylight .etfe-skylight-prose {
  margin-top: var(--space-10);
  display: grid;
  gap: var(--space-8);
}

.page-etfe-skylight .etfe-skylight-split {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
  align-items: stretch;
  padding: clamp(1rem, 2vw, 1.5rem);
  border-radius: var(--radius-2xl);
  background: var(--color-bg-muted);
  border: 1px solid var(--color-border);
}

.page-etfe-skylight .etfe-skylight-split--reverse {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.page-etfe-skylight .etfe-skylight-split--reverse .etfe-skylight-split__copy {
  order: 2;
}

.page-etfe-skylight .etfe-skylight-split--reverse .etfe-skylight-split__media {
  order: 1;
}

.page-etfe-skylight .etfe-skylight-split__copy {
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--space-2) var(--space-3);
}

.page-etfe-skylight .etfe-skylight-split__copy h3 {
  margin: 0 0 var(--space-4);
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  font-weight: var(--font-bold);
  letter-spacing: var(--tracking-heading);
  color: var(--color-heading);
}

.page-etfe-skylight .etfe-skylight-split__copy p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: var(--text-body);
  line-height: 1.75;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

.page-etfe-skylight .etfe-skylight-split__copy p + p {
  margin-top: var(--space-4);
}

.page-etfe-skylight .etfe-skylight-split__media {
  margin: 0;
  position: relative;
  z-index: 0;
  width: 100%;
  min-width: 0;
  min-height: 100%;
  align-self: stretch;
  display: flex;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: #0b1a2a;
  box-shadow: var(--shadow-md);
}

.page-etfe-skylight .etfe-skylight-split__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
  flex: 1 1 auto;
  align-self: stretch;
}

/* Audience cards */
.page-etfe-skylight .etfe-skylight-audience {
  margin-top: var(--space-8);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}

.page-etfe-skylight .etfe-skylight-audience article {
  padding: var(--space-6);
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
  transition:
    transform var(--duration-base) var(--ease-out),
    box-shadow var(--duration-base) var(--ease-out);
}

.page-etfe-skylight .etfe-skylight-audience article:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

.page-etfe-skylight .etfe-skylight-audience h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-h5);
  color: var(--color-heading);
}

.page-etfe-skylight .etfe-skylight-audience p {
  margin: 0;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.65;
}

.page-etfe-skylight .etfe-skylight-note {
  margin-top: var(--space-6);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-lg);
  border-left: 3px solid var(--color-primary);
  background: var(--color-info-bg);
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.65;
}

/* Shared grids */
.page-etfe-skylight .product-features,
.page-etfe-skylight .product-performance,
.page-etfe-skylight .product-apps,
.page-etfe-skylight .product-advantages,
.page-etfe-skylight .product-projects,
.page-etfe-skylight .product-videos,
.page-etfe-skylight .product-related {
  gap: var(--space-3);
}

.page-etfe-skylight .product-app {
  aspect-ratio: 16 / 10;
}

.page-etfe-skylight .product-app__media img,
.page-etfe-skylight .product-process__media img,
.page-etfe-skylight .product-project__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.page-etfe-skylight .product-cta {
  padding-block: clamp(2rem, 3.5vw, 3rem);
}

@media (max-width: 960px) {
  .page-etfe-skylight .etfe-skylight-intro,
  .page-etfe-skylight .etfe-skylight-split,
  .page-etfe-skylight .etfe-skylight-split--reverse {
    grid-template-columns: 1fr;
  }

  .page-etfe-skylight .etfe-skylight-split--reverse .etfe-skylight-split__copy,
  .page-etfe-skylight .etfe-skylight-split--reverse .etfe-skylight-split__media {
    order: initial;
  }

  .page-etfe-skylight .etfe-skylight-intro__cols,
  .page-etfe-skylight .etfe-skylight-audience {
    grid-template-columns: 1fr;
  }

  .page-etfe-skylight .etfe-skylight-intro__media,
  .page-etfe-skylight .etfe-skylight-intro__media img {
    min-height: 280px;
  }

  .page-etfe-skylight .etfe-skylight-split__media,
  .page-etfe-skylight .etfe-skylight-split__media img {
    min-height: 260px;
  }
}

@media (max-width: 560px) {
  .page-etfe-skylight .etfe-skylight-intro__metrics {
    grid-template-columns: 1fr 1fr;
  }
}


/* --- etfe-solar-panel-film.css --- */
/* ==========================================================================
   etfe-solar-panel-film product page â€” page-specific enhancements
   Extends: product-page.css
   ========================================================================== */

/* --------------------------------------------------------------------------
   HERO â€” force readable white text over bright ETFE photography
   -------------------------------------------------------------------------- */

.page-etfe-solar-panel-film .product-hero {
  min-height: 0;
  color: #ffffff;
}

.page-etfe-solar-panel-film .product-hero__overlay {
  background: linear-gradient(
    105deg,
    rgba(4, 12, 22, 0.92) 0%,
    rgba(8, 19, 31, 0.82) 38%,
    rgba(8, 19, 31, 0.45) 68%,
    rgba(8, 19, 31, 0.2) 100%
  );
}

.page-etfe-solar-panel-film .product-hero__content {
  padding: clamp(4.25rem, 7vw, 5.25rem) var(--container-padding-x)
    clamp(1.15rem, 2.2vw, 1.75rem);
}

.page-etfe-solar-panel-film .product-hero__title,
.page-etfe-solar-panel-film .product-hero h1 {
  max-width: min(42rem, 100%);
  color: #ffffff !important;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.45);
}

.page-etfe-solar-panel-film .product-hero__lead {
  color: rgba(248, 250, 252, 0.92) !important;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
  max-width: 38rem;
}

.page-etfe-solar-panel-film .product-breadcrumb,
.page-etfe-solar-panel-film .product-breadcrumb a,
.page-etfe-solar-panel-film .product-breadcrumb [aria-current="page"] {
  color: rgba(248, 250, 252, 0.85);
}

.page-etfe-solar-panel-film .product-breadcrumb a:hover {
  color: var(--color-accent);
}

.page-etfe-solar-panel-film .product-hero .overline {
  color: var(--color-accent) !important;
}

.page-etfe-solar-panel-film .product-hero__stat strong {
  color: #ffffff !important;
}

.page-etfe-solar-panel-film .product-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  min-height: 100%;
}

/* --------------------------------------------------------------------------
   PAGE RHYTHM
   -------------------------------------------------------------------------- */

.page-etfe-solar-panel-film .product-section {
  padding-block: clamp(1.75rem, 3.2vw, 2.75rem);
}

.page-etfe-solar-panel-film .product-section__header {
  margin-bottom: clamp(1rem, 2vw, 1.5rem);
  max-width: none;
  width: 100%;
}

.page-etfe-solar-panel-film .product-section__header p {
  max-width: none;
}

.page-etfe-solar-panel-film .product-section__header--center {
  max-width: none;
  margin-inline: auto;
  text-align: center;
}

.page-etfe-solar-panel-film .product-section__header--center p {
  max-width: 42rem;
  margin-inline: auto;
}

.page-etfe-solar-panel-film .product-section__header h2 {
  color: var(--color-heading);
}

.page-etfe-solar-panel-film .product-section--dark .product-section__header h2 {
  color: #ffffff !important;
}

.page-etfe-solar-panel-film .product-wrap {
  max-width: 1240px;
}

/* --------------------------------------------------------------------------
   WHAT IS ETFE FILM â€” cinematic intro (image + editorial body)
   -------------------------------------------------------------------------- */

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: stretch;
  width: 100%;
  isolation: isolate;
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__media {
  position: relative;
  margin: 0;
  min-height: min(52vh, 520px);
  border-radius: var(--radius-2xl);
  overflow: hidden;
  background: #0b1a2a;
  box-shadow: var(--shadow-lg);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: min(52vh, 520px);
  object-fit: cover;
  object-position: center 45%;
  transition: transform 1.1s var(--ease-out);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__media:hover img {
  transform: scale(1.03);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1.25rem 1.35rem 1.15rem;
  margin: 0;
  display: grid;
  gap: 0.2rem;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(0.95rem, 1.5vw, 1.1rem);
  font-weight: var(--font-semibold);
  letter-spacing: var(--tracking-heading);
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(4, 12, 22, 0.55) 35%,
    rgba(4, 12, 22, 0.88) 100%
  );
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__caption span {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: var(--font-semibold);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-4);
  padding: clamp(0.25rem, 1vw, 0.5rem) 0;
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__lead {
  margin: 0;
  font-size: var(--text-body);
  line-height: 1.75;
  color: var(--color-text);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__body > p {
  margin: 0;
  font-size: var(--text-body-sm);
  line-height: 1.7;
  color: var(--color-text-secondary);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin: var(--space-2) 0;
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__metric {
  padding: 0.85rem 1rem;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  background: linear-gradient(
    160deg,
    var(--color-surface) 0%,
    var(--color-bg-muted) 100%
  );
  display: grid;
  gap: 0.15rem;
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__metric strong {
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2vw, 1.35rem);
  font-weight: var(--font-bold);
  color: var(--color-heading);
  letter-spacing: var(--tracking-heading);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__metric span {
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__cols h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-h5);
  color: var(--color-heading);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__tags {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__tags li {
  padding: 0.35rem 0.7rem;
  border-radius: var(--radius-md);
  background: var(--color-bg-muted);
  border: 1px solid var(--color-border);
  font-size: 0.78rem;
  color: var(--color-text-secondary);
  line-height: 1.35;
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__checks {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.55rem;
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__checks li {
  position: relative;
  padding-left: 1.35rem;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.5;
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-intro__checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35rem;
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background: var(--color-primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 22%, transparent);
}

/* --------------------------------------------------------------------------
   EDITORIAL SPLIT ROWS â€” text + image (attractive, fills white space)
   -------------------------------------------------------------------------- */

.page-etfe-solar-panel-film .etfe-solar-panel-film-prose {
  margin-top: var(--space-10);
  display: grid;
  gap: var(--space-8);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-split {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
  align-items: stretch;
  padding: clamp(1rem, 2vw, 1.5rem);
  border-radius: var(--radius-2xl);
  background: var(--color-bg-muted);
  border: 1px solid var(--color-border);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-split--reverse {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-split--reverse .etfe-solar-panel-film-split__copy {
  order: 2;
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-split--reverse .etfe-solar-panel-film-split__media {
  order: 1;
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-split__copy {
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--space-2) var(--space-3);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-split__copy h3 {
  margin: 0 0 var(--space-4);
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  font-weight: var(--font-bold);
  letter-spacing: var(--tracking-heading);
  color: var(--color-heading);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-split__copy p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: var(--text-body);
  line-height: 1.75;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-split__copy p + p {
  margin-top: var(--space-4);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-split__media {
  margin: 0;
  position: relative;
  z-index: 0;
  width: 100%;
  min-width: 0;
  min-height: 100%;
  align-self: stretch;
  display: flex;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: #0b1a2a;
  box-shadow: var(--shadow-md);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-split__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
  flex: 1 1 auto;
  align-self: stretch;
}

/* Audience cards */
.page-etfe-solar-panel-film .etfe-solar-panel-film-audience {
  margin-top: var(--space-8);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-audience article {
  padding: var(--space-6);
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
  transition:
    transform var(--duration-base) var(--ease-out),
    box-shadow var(--duration-base) var(--ease-out);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-audience article:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-audience h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-h5);
  color: var(--color-heading);
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-audience p {
  margin: 0;
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.65;
}

.page-etfe-solar-panel-film .etfe-solar-panel-film-note {
  margin-top: var(--space-6);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-lg);
  border-left: 3px solid var(--color-primary);
  background: var(--color-info-bg);
  font-size: var(--text-body-sm);
  color: var(--color-text-secondary);
  line-height: 1.65;
}

/* Shared grids */
.page-etfe-solar-panel-film .product-features,
.page-etfe-solar-panel-film .product-performance,
.page-etfe-solar-panel-film .product-apps,
.page-etfe-solar-panel-film .product-advantages,
.page-etfe-solar-panel-film .product-projects,
.page-etfe-solar-panel-film .product-videos,
.page-etfe-solar-panel-film .product-related {
  gap: var(--space-3);
}

.page-etfe-solar-panel-film .product-app {
  aspect-ratio: 16 / 10;
}

.page-etfe-solar-panel-film .product-app__media img,
.page-etfe-solar-panel-film .product-process__media img,
.page-etfe-solar-panel-film .product-project__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.page-etfe-solar-panel-film .product-cta {
  padding-block: clamp(2rem, 3.5vw, 3rem);
}

@media (max-width: 960px) {
  .page-etfe-solar-panel-film .etfe-solar-panel-film-intro,
  .page-etfe-solar-panel-film .etfe-solar-panel-film-split,
  .page-etfe-solar-panel-film .etfe-solar-panel-film-split--reverse {
    grid-template-columns: 1fr;
  }

  .page-etfe-solar-panel-film .etfe-solar-panel-film-split--reverse .etfe-solar-panel-film-split__copy,
  .page-etfe-solar-panel-film .etfe-solar-panel-film-split--reverse .etfe-solar-panel-film-split__media {
    order: initial;
  }

  .page-etfe-solar-panel-film .etfe-solar-panel-film-intro__cols,
  .page-etfe-solar-panel-film .etfe-solar-panel-film-audience {
    grid-template-columns: 1fr;
  }

  .page-etfe-solar-panel-film .etfe-solar-panel-film-intro__media,
  .page-etfe-solar-panel-film .etfe-solar-panel-film-intro__media img {
    min-height: 280px;
  }

  .page-etfe-solar-panel-film .etfe-solar-panel-film-split__media,
  .page-etfe-solar-panel-film .etfe-solar-panel-film-split__media img {
    min-height: 260px;
  }
}

@media (max-width: 560px) {
  .page-etfe-solar-panel-film .etfe-solar-panel-film-intro__metrics {
    grid-template-columns: 1fr 1fr;
  }
}

/* --- about-us.html — editorial split cards (match product roofing prose) --- */

/* Hero banner flush to top; transparent header overlaps banner (homepage-style) */
.page-inner.page-about {
  padding-top: 0;
}

.page-inner.page-about .site-header {
  --header-fg: #ffffff;
  --header-fg-muted: rgba(255, 255, 255, 0.92);
  background: rgba(8, 19, 31, 0.28);
  border-bottom-color: transparent;
  box-shadow: none;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.page-inner.page-about .site-header.is-scrolled {
  --header-fg: #111827;
  --header-fg-muted: #1f2937;
  background: rgba(255, 255, 255, 0.88);
  border-bottom-color: var(--color-border);
  box-shadow: var(--shadow-sm);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.page-inner.page-about .site-header.is-menu-open,
.page-inner.page-about .site-header.is-mega-open {
  background: rgba(8, 19, 31, 0.72);
}

.page-inner.page-about .site-header.is-scrolled.is-menu-open {
  background: rgba(255, 255, 255, 0.96);
}

.page-about .product-hero {
  min-height: min(78vh, 720px);
  align-items: flex-end;
}

.page-about .product-hero__content {
  /* Clear fixed header so title sits below overlapping nav */
  padding-top: clamp(6.75rem, 14vw, 8.75rem);
}

.page-about .product-hero__title,
.page-about .product-hero h1 {
  color: #ffffff !important;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.45);
}

.page-about .product-hero__lead {
  color: rgba(248, 250, 252, 0.92) !important;
}

.page-about .product-breadcrumb,
.page-about .product-breadcrumb a,
.page-about .product-breadcrumb [aria-current="page"] {
  color: rgba(248, 250, 252, 0.85);
}

.page-about .product-breadcrumb a:hover {
  color: var(--color-accent);
}

/* Intro: full-width content + professional visibility */
.page-about .about-intro-section {
  position: relative;
}

.page-about .about-intro__header {
  max-width: none;
  width: 100%;
  margin: 0 0 clamp(1rem, 2vw, 1.35rem);
}

.page-about .about-intro__header .app-badge-row {
  margin: 0 0 var(--space-3);
}

.page-about .about-intro__header h2 {
  margin: 0 0 var(--space-3);
  max-width: none;
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 2.8vw, 2.5rem);
  font-weight: var(--font-bold);
  letter-spacing: var(--tracking-heading);
  line-height: var(--leading-heading);
  color: var(--color-heading);
}

.page-about .about-intro__lead {
  margin: 0;
  max-width: none;
  width: 100%;
  font-size: clamp(1rem, 1.35vw, 1.125rem);
  line-height: 1.75;
  color: var(--color-text-secondary);
  text-align: justify;
  text-justify: inter-word;
}

/* Image left + 3 stacked cards right (equal total height) */
.page-about .about-intro__split {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: var(--space-3);
  align-items: stretch;
  min-height: clamp(380px, 48vw, 520px);
}

.page-about .about-intro__media {
  margin: 0;
  height: 100%;
  min-height: 100%;
  border-radius: var(--radius-2xl);
  overflow: hidden;
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-md);
  background: #0b1a2a;
}

.page-about .about-intro__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page-about .about-intro__cards {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  height: 100%;
  min-height: 100%;
}

.page-about .about-intro__card {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 0;
  padding: clamp(0.85rem, 1.5vw, 1.15rem) clamp(1rem, 1.6vw, 1.25rem);
  border-radius: var(--radius-xl);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-sm);
  transition:
    transform var(--duration-base) var(--ease-out),
    box-shadow var(--duration-base) var(--ease-out),
    border-color var(--duration-base) var(--ease-out);
}

.page-about .about-intro__card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
  border-color: rgba(0, 174, 239, 0.35);
}

.page-about .about-intro__card-label {
  display: inline-block;
  margin-bottom: var(--space-2);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.page-about .about-intro__card h3 {
  margin: 0 0 var(--space-2);
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: var(--font-semibold);
  color: var(--color-heading);
}

.page-about .about-intro__card p {
  margin: 0;
  font-size: var(--text-body-sm);
  line-height: 1.55;
  color: var(--color-text-secondary);
}

@media (max-width: 960px) {
  .page-about .about-intro__split {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .page-about .about-intro__media {
    aspect-ratio: 16 / 9;
    height: auto;
    min-height: 240px;
  }

  .page-about .about-intro__cards {
    height: auto;
  }

  .page-about .about-intro__card {
    flex: none;
  }
}

/* Tighter page spacing */
.page-about .product-section {
  padding-block: clamp(1.35rem, 2.8vw, 2.25rem);
}

.page-about .product-section__header {
  margin-bottom: clamp(0.85rem, 1.8vw, 1.25rem);
}

.page-about .product-section__header h2 {
  margin-bottom: var(--space-2);
}

.page-about .product-hero__actions {
  margin-bottom: var(--space-4);
}

.page-about .product-hero__lead {
  margin-bottom: var(--space-4);
}

.page-about .product-related {
  gap: var(--space-3);
}

.page-about .product-apps {
  gap: var(--space-3);
}

.page-about .product-features {
  gap: var(--space-3);
}

.page-about .product-advantages {
  gap: var(--space-3);
}

.page-about .product-projects {
  gap: var(--space-3);
}

.page-about .about-prose {
  display: grid;
  gap: var(--space-5);
}

/* Markets + Quality: 3 cards top, 3 cards bottom */
.page-about .about-cards-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
}

.page-about .about-cards-3 .product-feature {
  padding: var(--space-4);
}

.page-about .about-split {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(1rem, 2vw, 1.5rem);
  align-items: stretch;
  padding: clamp(0.85rem, 1.6vw, 1.25rem);
  border-radius: var(--radius-2xl);
  background: var(--color-bg-muted);
  border: 1px solid var(--color-border);
}

.page-about .about-split--reverse {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.page-about .about-split--reverse .about-split__copy {
  order: 2;
}

.page-about .about-split--reverse .about-split__media {
  order: 1;
}

.page-about .about-split__copy {
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--space-2) var(--space-3);
}

.page-about .about-split__copy .app-badge-row {
  margin: 0 0 var(--space-3);
}

.page-about .about-split__copy h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  font-weight: var(--font-bold);
  letter-spacing: var(--tracking-heading);
  color: var(--color-heading);
}

.page-about .about-split__copy p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: var(--text-body);
  line-height: 1.7;
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

.page-about .about-split__copy p + p {
  margin-top: var(--space-3);
}

.page-about .about-split__media {
  margin: 0;
  position: relative;
  z-index: 0;
  width: 100%;
  min-width: 0;
  min-height: 100%;
  align-self: stretch;
  display: flex;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: #0b1a2a;
  box-shadow: var(--shadow-md);
}

.page-about .about-split__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 240px;
  object-fit: cover;
  flex: 1 1 auto;
  align-self: stretch;
}

@media (max-width: 960px) {
  .page-about .about-split,
  .page-about .about-split--reverse {
    grid-template-columns: 1fr;
  }

  .page-about .about-split--reverse .about-split__copy,
  .page-about .about-split--reverse .about-split__media {
    order: initial;
  }

  .page-about .about-split__media,
  .page-about .about-split__media img {
    min-height: 220px;
  }

  .page-about .about-cards-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .page-about .about-cards-3 {
    grid-template-columns: 1fr;
  }
}

/* Why Choose — clearer card visuality */
.page-about .about-why-features {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3);
  align-items: stretch;
}

.page-about .about-why-features .product-feature {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 100%;
  padding: clamp(1.1rem, 1.8vw, 1.35rem);
  background: #ffffff;
  border: 1px solid rgba(15, 40, 60, 0.1);
  border-radius: var(--radius-xl);
  box-shadow: 0 8px 24px rgba(8, 19, 31, 0.06);
  backdrop-filter: none;
}

.page-about .about-why-features .product-feature:hover {
  border-color: rgba(0, 174, 239, 0.35);
  box-shadow: 0 14px 32px rgba(8, 19, 31, 0.1);
  transform: translateY(-3px);
}

.page-about .about-why-features .product-feature__icon {
  width: 44px;
  height: 44px;
  margin-bottom: 0.85rem;
  border-radius: 12px;
  background: rgba(0, 174, 239, 0.1);
  border: 1px solid rgba(0, 174, 239, 0.22);
  color: var(--color-primary);
  font-size: 1.05rem;
  font-weight: 700;
}

.page-about .about-why-features .product-feature h3 {
  margin: 0 0 0.45rem;
  font-size: 1.05rem;
  line-height: 1.3;
  color: var(--color-heading);
}

.page-about .about-why-features .product-feature p {
  margin: 0;
  flex: 1;
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--color-text-secondary);
}

/* Products Overview — 4 × 2 */
.page-about .product-related--4x2 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3);
}

/* Full-width centered CTAs under Products / Applications */
.page-about .about-section__cta {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-top: 1.5rem;
}

.page-about .about-section__cta .btn {
  width: auto;
  max-width: 100%;
}

@media (max-width: 1100px) {
  .page-about .about-why-features,
  .page-about .product-related--4x2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .page-about .about-why-features,
  .page-about .product-related--4x2 {
    grid-template-columns: 1fr;
  }
}

/* --- contact-us.html — map, equal-height enquiry, application layout --- */
.page-contact .contact-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.page-contact .contact-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(ellipse 70% 55% at 12% 0%, rgba(0, 174, 239, 0.07), transparent 55%),
    radial-gradient(ellipse 55% 45% at 92% 100%, rgba(6, 20, 33, 0.04), transparent 50%);
}

.page-contact .contact-section--reach {
  background:
    linear-gradient(180deg, #f4f8fb 0%, #e9f1f7 100%);
}

.page-contact .contact-section--enquiry {
  background:
    linear-gradient(180deg, #ffffff 0%, #f7fafc 100%);
  border-block: 1px solid rgba(15, 40, 60, 0.06);
}

.page-contact .contact-section--location {
  background:
    linear-gradient(165deg, #eef4f8 0%, #f8fbfd 48%, #e8f0f6 100%);
}

.page-contact .contact-section--support {
  background:
    linear-gradient(180deg, #ffffff 0%, #f5f8fb 100%);
}

/* Partnership: content cards match image height */
.page-contact.page-application .contact-section--support .product-intro__grid,
.page-contact .contact-section--support .product-intro__grid {
  align-items: stretch;
  gap: 0.75rem;
}

.page-contact.page-application .contact-section--support .product-intro__media,
.page-contact .contact-section--support .product-intro__media {
  height: 100%;
  min-height: clamp(320px, 38vw, 440px);
  aspect-ratio: auto;
}

.page-contact.page-application .contact-section--support .product-intro__media img,
.page-contact .contact-section--support .product-intro__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page-contact.page-application .contact-section--support .product-intro__blocks,
.page-contact .contact-section--support .product-intro__blocks {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 100%;
  gap: 0.75rem;
  justify-content: stretch;
  overflow: visible;
}

.page-contact.page-application .contact-section--support .product-intro__block,
.page-contact .contact-section--support .product-intro__block {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 0;
  padding: clamp(0.9rem, 1.5vw, 1.2rem) clamp(1rem, 1.7vw, 1.35rem);
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: var(--shadow-sm);
}

.page-contact .contact-section--markets {
  background:
    linear-gradient(180deg, #f0f5f9 0%, #e7eef4 100%);
}

.page-contact .contact-section--markets .product-feature,
.page-contact .contact-section--explore .product-related a,
.page-contact .contact-section--faq .faq-item {
  backdrop-filter: blur(2px);
  background: rgba(255, 255, 255, 0.92);
}

.page-contact .contact-section--explore {
  background:
    linear-gradient(180deg, #ffffff 0%, #f6f9fb 55%, #eef3f7 100%);
  border-top: 1px solid rgba(15, 40, 60, 0.05);
}

.page-contact .contact-section--faq {
  background:
    linear-gradient(180deg, #e9f0f6 0%, #f3f7fa 100%);
  border-top: 1px solid rgba(15, 40, 60, 0.06);
}

.page-contact .contact-reach__systems {
  max-width: 68rem;
  margin-inline: auto;
  justify-items: stretch;
}

.page-contact .contact-reach__systems .app-system__body {
  text-align: center;
  align-items: center;
}

.page-contact .contact-reach__systems .app-system__cta {
  margin-inline: auto;
}

.page-contact .product-related--apps-2x2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
  max-width: none;
  margin-inline: 0;
  gap: var(--space-4);
}

.page-contact .product-related--apps-2x2 a {
  min-height: 7.5rem;
  padding: clamp(1.25rem, 2vw, 1.6rem) clamp(1.35rem, 2.2vw, 1.85rem);
}

.page-contact .product-section__header .app-badge-row {
  margin: 0.55rem 0 0.75rem;
}

.page-contact .contact-location {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, 0.85fr);
  gap: clamp(1rem, 2.2vw, 1.5rem);
  align-items: stretch;
}

.page-contact .contact-location__map {
  position: relative;
  min-height: clamp(320px, 48vw, 480px);
  border-radius: var(--radius-xl);
  overflow: hidden;
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-md);
  background: var(--color-surface-muted, #e8eef3);
}

.page-contact .contact-location__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: clamp(320px, 48vw, 480px);
  border: 0;
}

.page-contact .contact-location__map-link {
  position: absolute;
  right: 0.85rem;
  bottom: 0.85rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  padding: 0.45rem 0.85rem;
  border-radius: var(--radius-md);
  background: rgba(6, 20, 33, 0.88);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: none;
  backdrop-filter: blur(6px);
  transition: background 0.2s ease, transform 0.2s ease;
}

.page-contact .contact-location__map-link:hover {
  background: rgba(6, 20, 33, 0.96);
  transform: translateY(-1px);
}

.page-contact .contact-enquiry--match {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.65rem;
  align-items: stretch;
  width: 100%;
  overflow: hidden;
}

.page-contact .contact-enquiry--match > * {
  min-width: 0;
  max-width: 100%;
}

.page-contact .contact-enquiry__media {
  position: relative;
  z-index: 1;
  margin: 0;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  aspect-ratio: 5 / 4;
  height: auto;
  max-height: 580px;
  border-radius: var(--radius-xl);
  overflow: hidden;
  border: 1px solid rgba(15, 40, 60, 0.12);
  box-shadow: var(--shadow-md);
  background: #0b1a2a;
  animation: contactEnquiryMediaIn 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.page-contact .contact-enquiry__media img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.02);
  transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
  animation: contactEnquiryImgSettle 1.25s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.page-contact .contact-enquiry__media:hover img {
  transform: scale(1.04);
}

.page-contact .contact-enquiry--match .contact-enquiry__form.form-panel {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: 100%;
  max-height: 580px;
  min-height: 0;
  margin: 0;
  padding: clamp(0.95rem, 1.6vw, 1.25rem);
  overflow-x: hidden;
  overflow-y: auto;
  color: rgba(236, 244, 250, 0.92);
  border: 1px solid rgba(0, 174, 239, 0.28);
  border-radius: var(--radius-xl);
  background:
    linear-gradient(155deg, rgba(8, 22, 36, 0.98) 0%, rgba(12, 32, 50, 0.97) 48%, rgba(7, 18, 30, 0.99) 100%);
  box-shadow:
    0 18px 40px rgba(6, 20, 33, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  animation: contactEnquiryFormIn 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.08s both;
}

.page-contact .contact-enquiry--match .contact-enquiry__form.form-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background:
    radial-gradient(ellipse 80% 50% at 100% 0%, rgba(0, 174, 239, 0.16), transparent 55%),
    radial-gradient(ellipse 60% 40% at 0% 100%, rgba(0, 174, 239, 0.08), transparent 50%);
  opacity: 1;
  transition: opacity 0.45s ease;
}

.page-contact .contact-enquiry--match .contact-enquiry__form.form-panel:hover::before {
  background:
    radial-gradient(ellipse 80% 50% at 100% 0%, rgba(0, 174, 239, 0.22), transparent 55%),
    radial-gradient(ellipse 60% 40% at 0% 100%, rgba(0, 174, 239, 0.12), transparent 50%);
}

@keyframes contactEnquiryMediaIn {
  from {
    opacity: 0;
    transform: translateX(-14px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes contactEnquiryImgSettle {
  from {
    transform: scale(1.06);
  }
  to {
    transform: scale(1.02);
  }
}

@keyframes contactEnquiryFormIn {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes contactEnquiryFieldIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.page-contact .contact-location .product-intro__blocks {
  display: flex;
  flex-direction: column;
  height: 100%;
  gap: 0.85rem;
}

.page-contact .contact-location .product-intro__block {
  flex: 1 1 auto;
  padding: 1rem 1.1rem;
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
}

.page-contact .contact-enquiry__grid {
  position: relative;
  z-index: 1;
  gap: 0.55rem;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.page-contact .contact-enquiry__form .form-field {
  position: relative;
  z-index: 1;
  margin-bottom: 0.5rem;
  gap: 0.28rem;
  animation: contactEnquiryFieldIn 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.page-contact .contact-enquiry__form .form-field:nth-child(1) { animation-delay: 0.12s; }
.page-contact .contact-enquiry__form .form-field:nth-child(2) { animation-delay: 0.16s; }
.page-contact .contact-enquiry__form .form-field:nth-child(3) { animation-delay: 0.2s; }
.page-contact .contact-enquiry__form .form-field:nth-child(4) { animation-delay: 0.24s; }
.page-contact .contact-enquiry__form .form-field:nth-child(5) { animation-delay: 0.28s; }
.page-contact .contact-enquiry__form .form-field:nth-child(6) { animation-delay: 0.32s; }
.page-contact .contact-enquiry__form .form-field:nth-child(7) { animation-delay: 0.36s; }
.page-contact .contact-enquiry__form .form-field:nth-child(8) { animation-delay: 0.4s; }
.page-contact .contact-enquiry__form > .form-field { animation-delay: 0.44s; }
.page-contact .contact-enquiry__form > .contact-enquiry__file { animation: contactEnquiryFieldIn 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.48s both; }
.page-contact .contact-enquiry__form > .contact-enquiry__footer { animation: contactEnquiryFieldIn 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.52s both; }

.page-contact .contact-enquiry__form .form-label {
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(186, 214, 230, 0.88);
}

.page-contact .contact-enquiry__form .form-input,
.page-contact .contact-enquiry__form .form-select,
.page-contact .contact-enquiry__form .form-textarea {
  min-height: 38px;
  padding: 0.45rem 0.75rem;
  font-size: 0.86rem;
  color: #f3f8fc;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(148, 186, 210, 0.28);
  border-radius: var(--radius-md);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
  transition:
    border-color 0.28s ease,
    box-shadow 0.28s ease,
    background 0.28s ease,
    transform 0.28s ease;
}

.page-contact .contact-enquiry__form .form-select {
  color-scheme: light;
  background-color: rgba(8, 24, 38, 0.92);
  color: #f3f8fc;
}

.page-contact .contact-enquiry__form .form-select option,
.page-contact .contact-enquiry__form .form-select optgroup {
  color: #0b1f36;
  background-color: #ffffff;
  background: #ffffff;
}

.page-contact .contact-enquiry__form .form-select option:checked,
.page-contact .contact-enquiry__form .form-select option:hover,
.page-contact .contact-enquiry__form .form-select option:focus {
  color: #061018;
  background-color: #e8f6fc;
  background: #e8f6fc;
}

.page-contact .contact-enquiry__form .form-input::placeholder,
.page-contact .contact-enquiry__form .form-textarea::placeholder {
  color: rgba(168, 194, 214, 0.55);
}

.page-contact .contact-enquiry__form .form-input:hover,
.page-contact .contact-enquiry__form .form-select:hover,
.page-contact .contact-enquiry__form .form-textarea:hover {
  border-color: rgba(0, 174, 239, 0.45);
  background: rgba(255, 255, 255, 0.07);
}

.page-contact .contact-enquiry__form .form-input:focus,
.page-contact .contact-enquiry__form .form-select:focus,
.page-contact .contact-enquiry__form .form-textarea:focus {
  outline: none;
  border-color: rgba(0, 174, 239, 0.85);
  background: rgba(0, 174, 239, 0.08);
  box-shadow: 0 0 0 3px rgba(0, 174, 239, 0.18);
  transform: translateY(-1px);
}

.page-contact .contact-enquiry__form .form-textarea {
  min-height: 58px;
  resize: vertical;
}

.page-contact .contact-enquiry__file {
  position: relative;
  z-index: 1;
  margin-bottom: 0.35rem;
}

.page-contact .contact-enquiry__file .form-input {
  padding-block: 0.35rem;
  font-size: 0.78rem;
  color: rgba(220, 234, 244, 0.9);
}

.page-contact .contact-enquiry__file .form-input::file-selector-button {
  margin-right: 0.65rem;
  padding: 0.3rem 0.7rem;
  border: 0;
  border-radius: var(--radius-sm);
  background: rgba(0, 174, 239, 0.2);
  color: #e8f7ff;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.25s ease;
}

.page-contact .contact-enquiry__file .form-input::file-selector-button:hover {
  background: rgba(0, 174, 239, 0.35);
}

.page-contact .contact-enquiry__footer {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  margin-top: auto;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(148, 186, 210, 0.22);
}

.page-contact .contact-enquiry__footer .form-check {
  margin: 0;
  flex: 1 1 12rem;
  font-size: 0.78rem;
  color: rgba(198, 218, 232, 0.88);
}

.page-contact .contact-enquiry__footer .form-check a {
  color: #5fd0ff;
  text-decoration: none;
  transition: color 0.25s ease;
}

.page-contact .contact-enquiry__footer .form-check a:hover {
  color: #9ae4ff;
}

.page-contact .contact-enquiry__footer .btn {
  min-height: 42px;
  padding-inline: 1.25rem;
  box-shadow: 0 8px 22px rgba(0, 174, 239, 0.28);
  transition:
    transform 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.28s ease,
    filter 0.28s ease;
}

.page-contact .contact-enquiry__footer .btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0, 174, 239, 0.38);
  filter: brightness(1.05);
}

@media (prefers-reduced-motion: reduce) {
  .page-contact .contact-enquiry__media,
  .page-contact .contact-enquiry__media img,
  .page-contact .contact-enquiry--match .contact-enquiry__form.form-panel,
  .page-contact .contact-enquiry__form .form-field,
  .page-contact .contact-enquiry__form > .contact-enquiry__file,
  .page-contact .contact-enquiry__form > .contact-enquiry__footer {
    animation: none !important;
  }

  .page-contact .contact-enquiry__media img,
  .page-contact .contact-enquiry__form .form-input,
  .page-contact .contact-enquiry__form .form-select,
  .page-contact .contact-enquiry__form .form-textarea,
  .page-contact .contact-enquiry__footer .btn {
    transition: none !important;
  }
}

.page-contact.page-application .app-systems,
.page-contact .app-systems {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.page-contact .app-systems .app-system__media {
  aspect-ratio: 16 / 10;
}

.page-contact .product-intro__grid {
  align-items: stretch;
}

@media (max-width: 900px) {
  .page-contact .app-systems {
    grid-template-columns: 1fr;
  }

  .page-contact .product-related--apps-2x2 {
    grid-template-columns: 1fr;
    max-width: none;
  }
}

@media (max-width: 960px) {
  .page-contact .contact-location,
  .page-contact .contact-enquiry--match {
    grid-template-columns: 1fr;
  }

  .page-contact .contact-location__map,
  .page-contact .contact-location__map iframe {
    min-height: 300px;
  }

  .page-contact .contact-enquiry--match {
    gap: 0.65rem;
  }

  .page-contact .contact-enquiry__media {
    aspect-ratio: 16 / 10;
    min-height: 220px;
    max-height: 300px;
  }

  .page-contact .contact-enquiry--match .contact-enquiry__form.form-panel {
    max-height: none;
  }

  .page-contact.page-application .contact-section--support .product-intro__grid,
  .page-contact .contact-section--support .product-intro__grid {
    grid-template-columns: 1fr;
  }

  .page-contact.page-application .contact-section--support .product-intro__media,
  .page-contact .contact-section--support .product-intro__media {
    min-height: 220px;
    aspect-ratio: 16 / 10;
  }

  .page-contact.page-application .contact-section--support .product-intro__blocks,
  .page-contact .contact-section--support .product-intro__blocks {
    height: auto;
    min-height: 0;
  }

  .page-contact.page-application .contact-section--support .product-intro__block,
  .page-contact .contact-section--support .product-intro__block {
    flex: none;
  }
}

/* --- insights.html --- */
.page-insights .insights-tech__cta {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-top: 1.25rem;
}

.page-insights .insights-tech__cta .btn {
  width: auto;
  max-width: 100%;
}

.page-insights .product-related--4x2 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3);
}

@media (max-width: 1024px) {
  .page-insights .product-related--4x2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .page-insights .product-related--4x2 {
    grid-template-columns: 1fr;
  }
}


