/* CABPLAS — body copy: justified alignment + full use of the available column.
   Headings, navigation, buttons, captions, form feedback and the approved
   animation are untouched. Layout-driven side columns (hero lead, section head,
   facility caption) keep their design widths on purpose. */

/* --- 1) Justify: every descriptive paragraph on the site --- */
main :is(
  p.lead,
  .page-hero p,
  .section-head p,
  .family-card p,
  .sector-card p,
  .value-item p,
  .principle p,
  .tech-card p,
  .quote-panel p,
  .cta-band p,
  .content-grid p,
  .product-panel p,
  .product-panel .panel-tagline,
  .product-panel .panel-subtitle,
  p.product-group-intro,
  .subproduct p,
  .product-detail p,
  .product-enquiry p,
  .feature-list li,
  .spec-list li,
  p.dept-lead,
  .legal-copy p,
  .notice p
) {
  text-align: justify;
  text-align-last: left;
  text-justify: inter-word;
  -webkit-hyphens: auto;
  hyphens: auto;
  hyphenate-limit-chars: 6 3 3;
  word-break: normal;
  overflow-wrap: break-word;
}

/* --- 2) Width: containers already cap the page (.container = 1240px),
       so content copy must fill its column instead of stopping halfway.
       `main :is(...)` outranks the single-class caps in styles.css. --- */
main :is(
  .product-panel p,
  .product-panel .panel-tagline,
  .product-panel .panel-subtitle,
  p.product-group-intro,
  .subproduct p,
  .product-detail p,
  .product-enquiry p,
  .content-grid p,
  .tech-card p,
  .principle p,
  .quote-panel p,
  .value-item p,
  .family-card p,
  .sector-card p,
  .cta-band p,
  .legal-copy p,
  .page-hero p,
  p.dept-lead,
  .feature-list li,
  .spec-list li
) {
  max-width: 100%;
}

/* Legal pages: keep the reading column, but let paragraphs fill it */
main .legal-copy { max-width: 1000px; }

/* Mobile: no artificial limits anywhere */
@media (max-width: 1000px) {
  main :is(.page-hero p, .legal-copy p, p.dept-lead) { max-width: 100%; }
}
