/* CTPL site-wide width and readability refinement — v26
   Uses the desktop canvas efficiently and keeps ordinary interface/content
   text comfortably readable across every public page. */

:root {
  --ctpl-edge-gap: 20px;
  --ctpl-readable-text: 1.16rem;
  --shell: calc(100% - (var(--ctpl-edge-gap) * 2)) !important;
  --ctpl-header-shell: none;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  min-width: 0;
  font-size: var(--ctpl-readable-text);
}

/* Replace page-specific desktop caps with one consistent near-edge canvas. */
.shell {
  width: calc(100% - (var(--ctpl-edge-gap) * 2)) !important;
  max-width: none !important;
  margin-right: var(--ctpl-edge-gap) !important;
  margin-left: var(--ctpl-edge-gap) !important;
}

.site-header .header-inner {
  width: calc(100% - (var(--ctpl-edge-gap) * 2)) !important;
  max-width: none !important;
  margin-right: var(--ctpl-edge-gap) !important;
  margin-left: var(--ctpl-edge-gap) !important;
}

/* The requested minimum applies to readable content and controls.
   Headings and decorative display numerals keep their existing scale. */
body p,
body li,
body small,
body label,
body input,
body textarea,
body select,
body option,
body .button,
body .filter-btn,
body .contact-email,
body .capability-link,
body .panel-detail a,
body .product-card-action,
body .service-card-action,
body .footer-links {
  font-size: var(--ctpl-readable-text) !important;
}

body .site-header .site-nav > a,
body .site-header .nav-dropdown-toggle,
body .site-header .nav-dropdown-menu a {
  font-size: max(var(--ctpl-readable-text), var(--ctpl-nav-font)) !important;
}

body .eyebrow,
body .section-kicker,
body .core-kicker,
body .detail-kicker,
body .detail-label,
body .story-kicker,
body .profile-role,
body .profile-prompt,
body .card-topline,
body .product-code,
body .product-visual-label,
body .product-modal-family,
body .product-modal-code,
body .service-card-label,
body .service-group-heading > span,
body .lining-modal-kicker,
body .lining-modal-visual > span,
body .lining-modal-options > p,
body .product-enquiry-note,
body .product-enquiry-status,
body .matrix-note p,
body .team-note {
  font-size: var(--ctpl-readable-text) !important;
  line-height: 1.45;
}

body .hero-proof strong,
body .hero-proof span,
body .system-core small,
body .orbit-node strong,
body .visual-caption p,
body .hero-index-core span,
body .hero-index-core small,
body .hero-index-tag b,
body .hero-index-tag span,
body .panel-summary span,
body .timeline-item strong,
body .timeline-item small,
body .story-tags span,
body .service-card-tags span,
body .lining-modal-chips span,
body .product-modal-tags .tag,
body .tag-row .tag,
body .material-layer b,
body .material-layer span,
body .visual-readout span,
body .visual-readout strong,
body .footer-grid p,
body .footer-copy p,
body .footer-copy span,
body .footer-meta span,
body .footer-meta small {
  font-size: var(--ctpl-readable-text) !important;
  line-height: 1.45;
}

/* Extra room for components whose old dimensions assumed 10–14px labels. */
.orbit-node {
  min-height: 92px !important;
}

.visual-caption {
  width: auto !important;
  max-width: calc(100% - 36px) !important;
}

.hero-index-tag {
  min-width: 150px !important;
}

.service-option-card,
.product-card {
  min-height: 340px;
}

.service-card-tags span,
.lining-modal-chips span,
.product-modal-tags .tag,
.tag-row .tag {
  white-space: normal;
}

@media (max-width: 1280px) and (min-width: 1021px) {
  :root {
    --ctpl-edge-gap: 16px;
  }

  .site-header .header-inner {
    gap: 14px !important;
  }

  .site-header .site-nav {
    gap: 0 !important;
  }

  .site-header .site-nav > a,
  .site-header .nav-dropdown-toggle {
    padding-inline: 10px !important;
  }

  .site-header .nav-cta {
    min-width: 84px !important;
    padding-inline: 13px !important;
  }
}

@media (max-width: 1020px) {
  :root {
    --ctpl-edge-gap: 14px;
  }

  .site-header .header-inner {
    width: calc(100% - (var(--ctpl-edge-gap) * 2)) !important;
  }
}

@media (max-width: 700px) {
  :root {
    --ctpl-edge-gap: 10px;
    --ctpl-readable-text: 1.125rem;
  }

  .service-option-card,
  .product-card {
    min-height: 0;
  }

  .service-group-heading,
  .service-option-grid,
  .product-modal-info,
  .product-enquiry,
  .lining-modal-copy {
    padding-right: 20px;
    padding-left: 20px;
  }
}

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