/* ============================================================
   BIW Solutions page — styles specific to /products/biw-solutions/.
   Builds on the shared classes in assets/css/site.css (buttons,
   badges, eyebrow, section header, product cards, tabs, hazard bar).
   ============================================================ */

/* ---------------------------------------------------------------
   Hero
   --------------------------------------------------------------- */
.trs-biw-hero { position: relative; background: var(--graphite-900); overflow: hidden; }
.trs-biw-hero__dotgrid {
  position: absolute; inset: 0;
  background-image: radial-gradient(560px circle at 84% 18%, rgba(186,31,57,0.28), transparent 62%),
    radial-gradient(rgba(255,255,255,0.07) 1px, transparent 1.6px);
  background-size: 100% 100%, 24px 24px;
}
.trs-biw-hero__grid {
  position: relative; padding: clamp(48px, 6vw, 88px) var(--gutter) 72px; display: grid;
  grid-template-columns: 0.86fr 1.14fr; gap: var(--space-16); align-items: center;
}

.trs-biw-breadcrumb { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 24px; font-family: var(--font-sans); font-size: 13px; }
.trs-biw-breadcrumb a { color: var(--graphite-400); text-decoration: none; }
.trs-biw-breadcrumb a:hover { color: #fff; }
.trs-biw-breadcrumb span:not([aria-current]) { color: var(--graphite-500); }
.trs-biw-breadcrumb [aria-current] { color: #fff; font-weight: 700; }

.trs-biw-hero__title {
  font-family: var(--font-display); font-weight: 800; font-size: clamp(2.4rem, 5vw, 3.6rem); line-height: 1;
  letter-spacing: -0.02em; text-transform: uppercase; color: #fff; margin: 0;
}
.trs-biw-hero__subtitle { font-family: var(--font-display); font-weight: 700; font-size: 18px; letter-spacing: 0.02em; text-transform: uppercase; color: var(--graphite-200); margin: 16px 0 0; }
.trs-biw-hero__body { font-family: var(--font-sans); font-size: 16px; line-height: 1.65; color: var(--graphite-300); max-width: 54ch; margin: 20px 0 0; }
.trs-biw-hero__ctas { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 32px; }
.trs-biw-hero__links { display: flex; gap: 24px; margin-top: 24px; flex-wrap: wrap; }
.trs-biw-hero__links a { font-family: var(--font-sans); font-size: 13px; font-weight: 600; color: var(--graphite-300); text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.trs-biw-hero__links a:hover { color: #fff; }

.trs-biw-hero__media {
  position: relative; width: 100%; aspect-ratio: 991 / 462; border-radius: var(--radius-lg); overflow: hidden;
  background: #fff; box-shadow: var(--shadow-xl);
}
.trs-biw-hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; }
.trs-biw-hero__media-fallback {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 10px; color: var(--graphite-500);
}
.trs-biw-hero__media-fallback[hidden] { display: none; }
.trs-biw-hero__media-fallback span { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; text-align: center; padding: 0 20px; }

@media (max-width: 900px) {
  .trs-biw-hero__grid { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------
   Product family cards (button variant of trs-product-card)
   --------------------------------------------------------------- */
.trs-biw-family-card { text-align: left; width: 100%; cursor: pointer; border: none; background: none; padding: 0; font: inherit; }
.trs-biw-families .trs-product-card__image { background: #fff; background-image: none; }
.trs-biw-families .trs-product-card__image img { object-fit: contain; }
.trs-biw-families .trs-product-card__image-label[hidden] { display: none; }

/* ---------------------------------------------------------------
   Product detail panels
   --------------------------------------------------------------- */
.trs-biw-panel { padding-top: 48px; }
.trs-biw-panel__grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 56px; align-items: start; }
.trs-biw-panel__text { font-family: var(--font-sans); font-size: 15px; line-height: 1.65; color: var(--text-body); margin: 20px 0 0; }
.trs-biw-panel__text + .trs-biw-panel__text { margin-top: 16px; }

.trs-biw-badges { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 20px; }
.trs-biw-actions { display: flex; gap: 14px; margin-top: 28px; flex-wrap: wrap; }

.trs-biw-list { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.trs-biw-list li { font-family: var(--font-sans); font-size: 14px; color: var(--text-body); }
.trs-biw-list strong { color: var(--text-strong); font-family: var(--font-mono); }

.trs-biw-panel__media {
  position: relative; width: 100%; aspect-ratio: 1 / 1; border-radius: var(--radius-lg); overflow: hidden;
  background: #fff;
}
.trs-biw-panel__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; }
.trs-biw-panel__media-fallback {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 10px; color: var(--text-muted); background: var(--graphite-100);
}
.trs-biw-panel__media-fallback[hidden] { display: none; }
.trs-biw-panel__media-fallback span { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; text-align: center; padding: 0 20px; }

@media (max-width: 900px) {
  .trs-biw-panel__grid { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------
   Spec table (GL Series dimensions)
   --------------------------------------------------------------- */
.trs-biw-spec-table { margin-top: 48px; }
.trs-biw-spec-table__label { font-family: var(--font-sans); font-weight: 700; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); margin: 0 0 12px; }
.trs-biw-spec-table__frame { border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: hidden; }
.trs-biw-spec-table__frame table { width: 100%; border-collapse: collapse; }
.trs-biw-spec-table__frame thead tr { background: var(--graphite-900); }
.trs-biw-spec-table__frame th {
  text-align: left; padding: 11px 16px; font-family: var(--font-sans); font-weight: 700; font-size: 12px;
  letter-spacing: 0.1em; text-transform: uppercase; color: #fff;
}
.trs-biw-spec-table__frame td { padding: 11px 16px; font-family: var(--font-mono); font-size: 13px; color: var(--text-strong); border-bottom: 1px solid var(--color-border); }
.trs-biw-spec-table__frame tbody tr:last-child td { border-bottom: none; }
.trs-biw-spec-table__frame tbody tr:nth-child(even) { background: var(--graphite-50); }
.trs-biw-spec-table__model { font-weight: 700; }

/* ---------------------------------------------------------------
   CTA band
   --------------------------------------------------------------- */
.trs-biw-cta { background: var(--graphite-900); padding: var(--space-16) var(--gutter); text-align: center; }
.trs-biw-cta__inner { max-width: 640px; margin: 0 auto; }
.trs-biw-cta__inner h2 { font-family: var(--font-display); font-weight: 800; font-size: clamp(1.5rem, 3vw, 2.1rem); text-transform: uppercase; letter-spacing: -0.01em; color: #fff; margin: 0 0 14px; }
.trs-biw-cta__inner p { font-family: var(--font-sans); font-size: 15.5px; line-height: 1.6; color: var(--graphite-300); margin: 0 0 28px; }
