/* Home page reference layout — only affects the content below the existing header. */
:root {
  --dfc-yellow: #f2ad00;
  --dfc-black: #111313;
  --dfc-ink: #171717;
  --dfc-muted: #696964;
  --dfc-paper: #f7f7f4;
  --dfc-line: #dcdcd6;
}

/* Uploaded CMS media must remain complete inside the fixed legacy layout. */
body.legacy-home-layout .hero-media,
body.legacy-home-layout .home-card-media,
body.legacy-home-layout .range-media,
body.legacy-home-layout .application-media,
body.legacy-home-layout .cta-media { background-size:contain !important; background-position:center !important; background-repeat:no-repeat !important; }
body.legacy-home-layout .hero-media .hero-background-video,
body.legacy-home-layout .cms-hero-video,
body.legacy-home-layout .hero-foreground-image,
body.legacy-home-layout .home-image-placeholder + img,
body.legacy-home-layout .application-card-media img,
body.legacy-home-layout .quality-step-image img,
body.legacy-home-layout .news-item-image img,
body.legacy-home-layout .cta-media img,
body.legacy-home-layout .advantage-image img { object-fit:contain !important; object-position:center !important; }

body.legacy-home-layout { background: var(--dfc-paper); color: var(--dfc-ink); }
body.legacy-home-layout #main-content { overflow: hidden; background: var(--dfc-paper); }
body.legacy-home-layout .section-shell { width: min(1280px, calc(100% - 48px)); margin-inline: auto; }
body.legacy-home-layout .section-kicker { margin: 0 0 10px; color: var(--dfc-yellow); font-family: "Barlow Condensed", sans-serif; font-size: .88rem; font-weight: 800; letter-spacing: .08em; line-height: 1.35; text-transform: uppercase; }
body.legacy-home-layout h2 { font-family: "Barlow Condensed", sans-serif; font-size: clamp(2.1rem, 3vw, 3.35rem); font-weight: 800; letter-spacing: -.025em; line-height: .98; margin: 0; text-transform: none; }
body.legacy-home-layout h2 i { color: var(--dfc-yellow); font-style: normal; }
body.legacy-home-layout p { font-family: Manrope, sans-serif; }
body.legacy-home-layout .home-image-placeholder { align-items: center; background: repeating-linear-gradient(135deg, #f1f1ed 0 9px, #e9e9e4 9px 18px); border: 1px dashed #a5a59d; box-sizing: border-box; color: #696964; display: flex; flex-direction: column; font-family: "Barlow Condensed", sans-serif; gap: 6px; height: 100%; justify-content: center; letter-spacing: .07em; min-height: 100%; text-align: center; text-transform: uppercase; width: 100%; }
body.legacy-home-layout .home-image-placeholder > span { border: 1px solid currentColor; border-radius: 2px; display: grid; font-size: 1.1rem; height: 30px; place-items: center; width: 38px; }
body.legacy-home-layout .home-image-placeholder small { font-size: .72rem; font-weight: 700; }
body.legacy-home-layout .home-media-frame img,
body.legacy-home-layout .range-media img,
body.legacy-home-layout .application-card-media img,
body.legacy-home-layout .cta-media img,
body.legacy-home-layout .advantage-image img,
body.legacy-home-layout .quality-step-image img { display: block; height: 100%; object-fit: contain; width: 100%; }

/* Existing header and logo remain controlled by navigation.js / its existing CSS. */
body.legacy-home-layout .site-header { background: #fff !important; border-bottom: 1px solid #deded8; color: var(--dfc-ink); }

/* Hero */
body.legacy-home-layout .hero { box-sizing: border-box; display: grid; grid-template-columns: minmax(340px, 42%) 1fr; margin: 0 auto; min-height: min(560px, 52vw); overflow: hidden; padding: 26px max(24px, calc((100vw - 1280px) / 2)); position: relative; width: 100%; }
body.legacy-home-layout .hero::before { background: #111; border: 1px solid rgba(242,173,0,.75); border-radius: 10px; content: ""; inset: 25px max(24px, calc((100vw - 1280px) / 2)); position: absolute; z-index: 0; }
body.legacy-home-layout .hero-copy { align-items: flex-start; align-self: stretch; background: linear-gradient(90deg, rgba(7,8,8,.98), rgba(7,8,8,.8)); box-sizing: border-box; display: flex; flex-direction: column; grid-column: 1; justify-content: center; padding: 50px clamp(28px, 4vw, 70px); position: relative; z-index: 2; }
body.legacy-home-layout .hero-copy h1 { color: #fff; font-family: "Barlow Condensed", sans-serif; font-size: clamp(3rem, 5vw, 5.8rem); font-weight: 800; letter-spacing: -.035em; line-height: .9; margin: 0; max-width: 9.5ch; }
body.legacy-home-layout .hero-copy h1 span,
body.legacy-home-layout .hero-copy h1 i { display: block; }
body.legacy-home-layout .hero-copy h1 i { color: var(--dfc-yellow); font-style: normal; }
body.legacy-home-layout .hero-lede { color: rgba(255,255,255,.86); font-size: .98rem; line-height: 1.65; margin: 22px 0; max-width: 43ch; }
body.legacy-home-layout .hero-actions { display: flex; flex-wrap: wrap; gap: 10px; }
body.legacy-home-layout .hero .button { font-size: .8rem; min-height: 42px; padding: 0 17px; }
body.legacy-home-layout .hero-media { background: #242421 center / cover no-repeat; grid-column: 2; inset: auto; min-height: 430px; position: relative; z-index: 1; }
body.legacy-home-layout .hero-media::after { background: linear-gradient(90deg, rgba(17,19,19,.55) 0%, transparent 36%), linear-gradient(0deg, rgba(17,19,19,.6), transparent 42%); content: ""; inset: 0; pointer-events: none; position: absolute; z-index: 1; }
body.legacy-home-layout .hero-media:not(.has-custom-image)::before { align-items: center; background: repeating-linear-gradient(135deg, #2b2b28 0 10px, #21211f 10px 20px); color: rgba(255,255,255,.75); content: "Imagem Hero a definir"; display: flex; font-family: "Barlow Condensed", sans-serif; font-size: .85rem; justify-content: center; letter-spacing: .1em; position: absolute; text-transform: uppercase; inset: 0; }
body.legacy-home-layout .hero-background-video { height: 100%; left: 0; object-fit: cover; position: absolute; top: 0; width: 100%; }
body.legacy-home-layout .hero-foreground-image { bottom: 10%; height: 78%; object-fit: contain; position: absolute; right: 6%; width: min(55%, 420px); z-index: 2; }
body.legacy-home-layout .hero-highlights { background: rgba(13,15,15,.95); border: 1px solid rgba(242,173,0,.66); bottom: 0; display: grid; grid-column: 1 / -1; grid-template-columns: repeat(4, 1fr); left: max(24px, calc((100vw - 1280px) / 2)); min-height: 76px; position: absolute; right: max(24px, calc((100vw - 1280px) / 2)); z-index: 3; }
body.legacy-home-layout .hero-highlights article { align-items: center; border-right: 1px solid rgba(255,255,255,.13); color: white; display: flex; gap: 11px; justify-content: center; padding: 12px 14px; }
body.legacy-home-layout .hero-highlights article:last-child { border: 0; }
body.legacy-home-layout .hero-highlights article > span { color: var(--dfc-yellow); font-size: 1.15rem; }
body.legacy-home-layout .hero-highlights b,
body.legacy-home-layout .hero-highlights small { display: block; font-family: Manrope, sans-serif; }
body.legacy-home-layout .hero-highlights b { font-size: .75rem; }
body.legacy-home-layout .hero-highlights small { color: #d4d4ce; font-size: .64rem; margin-top: 2px; }

/* The quick product links keep their CMS data and controls, but follow the new page rhythm. */
body.legacy-home-layout .product-lines-section { background: #fff; border-bottom: 1px solid var(--dfc-line); padding: 28px max(24px, calc((100vw - 1280px) / 2)) 34px; }
body.legacy-home-layout .product-lines-heading { align-items: center; display: flex; justify-content: space-between; margin-bottom: 17px; }
body.legacy-home-layout .product-lines-heading .eyebrow { color: var(--dfc-yellow); font-family: "Barlow Condensed", sans-serif; font-size: .8rem; font-weight: 800; letter-spacing: .08em; margin: 0; text-transform: uppercase; }
body.legacy-home-layout .product-lines-heading h2 { color: var(--dfc-ink); font-size: 1.22rem; text-transform: uppercase; }
body.legacy-home-layout .quick-products { grid-auto-flow: column; grid-auto-columns: minmax(180px, 1fr); grid-template-columns: none; overflow-x: auto; padding-bottom: 3px; }
body.legacy-home-layout .quick-product { min-height: 183px; }
body.legacy-home-layout .quick-product .home-card-media { height: 90px; }

/* Company introduction */
body.legacy-home-layout .home-company { align-items: stretch; display: grid; gap: 0; grid-template-columns: minmax(290px, 1.04fr) minmax(280px, .96fr) minmax(220px, .65fr); padding-block: 42px; }
body.legacy-home-layout .company-media,
body.legacy-home-layout .company-copy,
body.legacy-home-layout .company-stats { box-sizing: border-box; height: 330px; min-height: 330px; overflow: hidden; }
body.legacy-home-layout .company-media { background: #ecece6; border: 1px solid var(--dfc-line); }
body.legacy-home-layout .company-copy { background: #fff; border-block: 1px solid var(--dfc-line); display: flex; flex-direction: column; padding: 36px clamp(25px, 3vw, 50px); }
body.legacy-home-layout .company-copy h2 { font-size: clamp(2.1rem, 2.65vw, 3.05rem); }
/* The two title lines are editorial content, not labels: allow them to wrap in full.
   The fixed-height card gives its remaining space to the body, which is the content
   that may be shortened. */
body.legacy-home-layout .company-copy h2 span,
body.legacy-home-layout .company-copy h2 i { display: block; max-height: none; overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
body.legacy-home-layout .rich-copy { color: #5e5e58; font-size: .86rem; line-height: 1.7; margin: 17px 0 22px; }
body.legacy-home-layout .company-copy .rich-copy { -webkit-box-orient: vertical; -webkit-line-clamp: 4; display: -webkit-box; flex: 1 1 auto; max-height: 6.8em; min-height: 0; overflow: hidden; }
body.legacy-home-layout .rich-copy > :first-child { margin-top: 0; }
body.legacy-home-layout .rich-copy > :last-child { margin-bottom: 0; }
body.legacy-home-layout .company-copy .button { font-size: .78rem; margin-top: auto; min-height: 39px; padding: 0 15px; }
body.legacy-home-layout .company-stats { background: #fff; border: 1px solid var(--dfc-line); display: grid; grid-template-columns: 1fr; }
body.legacy-home-layout .company-stats article { align-content: center; align-items: start; border-bottom: 1px solid var(--dfc-line); display: grid; gap: 12px; grid-template-columns: 21px minmax(0, 1fr); min-height: 25%; padding: 13px 24px; }
body.legacy-home-layout .company-stats article:last-child { border-bottom: 0; }
body.legacy-home-layout .company-stats strong { color: var(--dfc-ink); display: block; font-family: "Barlow Condensed", sans-serif; font-size: 1.35rem; font-weight: 800; line-height: 1; }
body.legacy-home-layout .company-stats span { color: var(--dfc-muted); display: block; font-family: Manrope, sans-serif; font-size: .67rem; line-height: 1.35; margin-top: 5px; overflow-wrap: anywhere; }
body.legacy-home-layout .company-stats .company-point-icon { align-self: start; color: var(--dfc-yellow); font-family: "Barlow Condensed", sans-serif; font-size: 1.2rem; margin: 0; text-align: center; }
body.legacy-home-layout .company-stats article > div { display: flex; flex-direction: column; min-width: 0; }

/* Solutions / range */
body.legacy-home-layout .range-section { align-items: start; background: #fff; border-block: 1px solid var(--dfc-line); display: grid; gap: 28px; grid-template-columns: minmax(260px, .75fr) minmax(0, 2.25fr); padding-block: 42px; }
body.legacy-home-layout .range-section .split-intro { display: block; margin: 0; }
body.legacy-home-layout .range-section .split-intro h2 { font-size: clamp(2rem, 2.8vw, 3.1rem); }
body.legacy-home-layout .range-section .split-intro p { color: var(--dfc-muted); font-size: .85rem; line-height: 1.65; margin: 20px 0 0; max-width: 31ch; }
body.legacy-home-layout .range-carousel { grid-column: 2; min-width: 0; }
body.legacy-home-layout .range-grid { display: grid !important; gap: 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); transform: none !important; }
body.legacy-home-layout .range-card { background: #fff; border: 1px solid var(--dfc-line); display: block; min-width: 0; text-decoration: none; transition: border-color .2s, transform .2s; }
body.legacy-home-layout .range-card:hover { border-color: var(--dfc-yellow); transform: translateY(-3px); }
body.legacy-home-layout .range-media { background: #eeeeea; height: 136px; overflow: hidden; }
body.legacy-home-layout .range-copy { min-height: 154px; padding: 15px 16px 16px; }
body.legacy-home-layout .range-copy small { color: var(--dfc-yellow); display: block; font-family: "Barlow Condensed", sans-serif; font-size: .69rem; font-weight: 800; letter-spacing: .07em; margin: 0 0 6px; text-transform: uppercase; }
body.legacy-home-layout .range-copy h3 { color: var(--dfc-ink); font-family: "Barlow Condensed", sans-serif; font-size: 1.22rem; font-weight: 800; line-height: 1; margin: 0; }
body.legacy-home-layout .range-copy p { color: var(--dfc-muted); font-size: .68rem; line-height: 1.55; margin: 8px 0 13px; }
body.legacy-home-layout .card-link { color: #d09200; font-family: "Barlow Condensed", sans-serif; font-size: .72rem; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
body.legacy-home-layout .range-actions { display: none; }
body.legacy-home-layout .range-carousel-control { display: none !important; }

/* Applications: editorial introduction above a single row of equal cards. */
body.legacy-home-layout .applications-section { background: var(--dfc-paper); border: 0; padding: 50px 0 54px; }
body.legacy-home-layout .applications-section > .section-shell { display: block; }
body.legacy-home-layout .applications-intro { align-items: end; display: grid; gap: clamp(24px, 3vw, 50px); grid-template-columns: minmax(0, 1fr) auto; margin: 0 0 28px; }
body.legacy-home-layout .applications-title-block { min-width: 0; }
body.legacy-home-layout .applications-intro h2 { font-size: clamp(2.45rem, 3.5vw, 4rem); max-width: 18ch; }
body.legacy-home-layout .applications-intro h2 span,
body.legacy-home-layout .applications-intro h2 i { display: block; }
body.legacy-home-layout .applications-action-block { align-items: center; display: grid; gap: 16px; grid-template-columns: minmax(0, var(--applications-description-width, 34ch)) auto; justify-self: end; padding-bottom: 4px; width: calc(var(--applications-description-width, 34ch) + 246px); }
body.legacy-home-layout .applications-action-block > p { -webkit-box-orient: vertical; -webkit-line-clamp: 3; color: var(--dfc-muted); display: -webkit-box; font-size: .83rem; hyphens: auto; line-height: 1.62; margin: 0; max-height: calc(3 * 1.62em); max-width: none; overflow: hidden; text-align: justify; text-align-last: left; text-justify: inter-word; width: 100%; }
body.legacy-home-layout .applications-action-block .button { background: transparent; color: var(--dfc-ink); font-size: .75rem; min-height: 48px; min-width: 230px; padding: 0 17px; white-space: nowrap; }
body.legacy-home-layout .applications-action-block .button:hover { background: rgba(242,173,0,.1); }
body.legacy-home-layout .applications-cards { display: grid; gap: 14px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.legacy-home-layout .application-card { background: linear-gradient(150deg, #202221, #131414 72%); border: 1px solid #30322f; color: #fff; display: flex; flex-direction: column; height: 292px; min-height: 292px; overflow: hidden; position: relative; text-decoration: none; transition: border-color .2s, transform .2s, background .2s; }
body.legacy-home-layout .application-card:hover { background: linear-gradient(150deg, #292b28, #161717 72%); border-color: var(--dfc-yellow); transform: translateY(-3px); }
body.legacy-home-layout .application-card-media { align-items: center; background: var(--dfc-paper); border-bottom: 1px solid #d9d7ce; display: flex; flex: 0 0 180px; height: 180px; justify-content: center; overflow: hidden; position: relative; }
body.legacy-home-layout .application-card-media::after { display: none; }
body.legacy-home-layout .application-card-media img { object-fit: contain; padding: 15px; }
body.legacy-home-layout .application-card-media .home-image-placeholder { background: var(--dfc-paper); border-color: #d1cfc7; color: #77766f; }
body.legacy-home-layout .application-card-copy { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; padding: 10px 18px; position: relative; }
body.legacy-home-layout .application-card-copy h3 { color: #fff; font-family: "Barlow Condensed", sans-serif; font-size: clamp(.95rem, 1.1vw, 1.1rem); font-weight: 800; line-height: 1.08; margin: 0; text-transform: uppercase; white-space: nowrap; }
body.legacy-home-layout .application-card-copy p { -webkit-box-orient: vertical; -webkit-line-clamp: 3; color: rgba(255,255,255,.72); display: -webkit-box; font-size: .68rem; line-height: 1.4; margin: 6px 0 0; overflow: hidden; }
body.legacy-home-layout .application-card-arrow { color: var(--dfc-yellow); font-family: "Barlow Condensed", sans-serif; font-size: 1.35rem; font-weight: 800; line-height: 1; margin-top: auto; }

/* Advantages */
body.legacy-home-layout .advantages { background: #fafaf7; padding-block: 42px; }
body.legacy-home-layout .compact-intro { align-items: end; display: flex; justify-content: space-between; margin-bottom: 26px; }
body.legacy-home-layout .compact-intro h2 { font-size: clamp(2rem, 2.8vw, 3rem); max-width: 18ch; }
body.legacy-home-layout .compact-intro > p { color: var(--dfc-muted); font-size: .82rem; line-height: 1.6; margin: 0; max-width: 41ch; }
body.legacy-home-layout .advantages-grid { display: grid; gap: 0; grid-template-columns: repeat(4, 1fr); }
body.legacy-home-layout .advantage { align-items: flex-start; border-right: 1px solid var(--dfc-line); display: flex; gap: 13px; min-height: 116px; padding: 6px clamp(12px, 2vw, 28px); }
body.legacy-home-layout .advantage:first-child { padding-left: 0; }
body.legacy-home-layout .advantage:last-child { border: 0; }
body.legacy-home-layout .advantage-icon { color: var(--dfc-yellow); font-size: 1.4rem; line-height: 1; }
body.legacy-home-layout .advantage-image { height: 38px; overflow: hidden; width: 38px; }
body.legacy-home-layout .advantage h3 { color: var(--dfc-ink); font-family: "Barlow Condensed", sans-serif; font-size: 1.05rem; font-weight: 800; line-height: 1; margin: 0; }
body.legacy-home-layout .advantage p { color: var(--dfc-muted); font-size: .68rem; line-height: 1.5; margin: 7px 0 0; }

/* Quality / process */
body.legacy-home-layout .quality-tech { align-items: center; background: #121313; border-bottom: 2px solid var(--dfc-yellow); box-sizing: border-box; color: white; display: grid; gap: 28px; grid-template-columns: minmax(250px, .8fr) minmax(0, 2.2fr); min-height: 208px; padding-block: 27px; position: relative; }
body.legacy-home-layout .quality-tech::before { background: #121313; content: ""; inset-inline: calc((1280px - 100vw) / 2); position: absolute; inset-block: 0; z-index: 0; }
body.legacy-home-layout .quality-copy,
body.legacy-home-layout .quality-steps { position: relative; z-index: 1; }
body.legacy-home-layout .quality-copy h2 { color: white; font-size: clamp(2rem, 2.6vw, 2.8rem); }
body.legacy-home-layout .quality-copy .rich-copy { color: #d2d2cc; font-size: .73rem; margin: 10px 0 0; }
body.legacy-home-layout .quality-steps { display: grid; gap: 8px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.legacy-home-layout .quality-steps article { align-items: center; background: #202120; border: 1px solid #3d3e3c; display: flex; gap: 9px; min-height: 102px; padding: 10px; }
body.legacy-home-layout .quality-step-number { align-items: center; background: var(--dfc-yellow); color: #111; display: flex; font-family: "Barlow Condensed", sans-serif; font-size: 1.15rem; font-weight: 800; height: 29px; justify-content: center; width: 29px; }
body.legacy-home-layout .quality-step-image { height: 45px; width: 45px; }
body.legacy-home-layout .quality-steps b,
body.legacy-home-layout .quality-steps small { display: block; }
body.legacy-home-layout .quality-steps b { color: white; font-family: "Barlow Condensed", sans-serif; font-size: .89rem; font-weight: 800; line-height: 1; }
body.legacy-home-layout .quality-steps small { color: #bbbdb7; font-family: Manrope, sans-serif; font-size: .61rem; line-height: 1.4; margin-top: 4px; }

/* CTA */
body.legacy-home-layout .home-cta { align-items: center; background: var(--dfc-yellow); box-sizing: border-box; display: grid; gap: 25px; grid-template-columns: minmax(285px, 1.25fr) auto minmax(180px, .75fr); min-height: 180px; overflow: hidden; padding-block: 28px; position: relative; }
body.legacy-home-layout .home-cta::before { background: var(--dfc-yellow); content: ""; inset-inline: calc((1280px - 100vw) / 2); position: absolute; inset-block: 0; z-index: 0; }
body.legacy-home-layout .cta-copy,
body.legacy-home-layout .cta-actions,
body.legacy-home-layout .cta-media { position: relative; z-index: 1; }
body.legacy-home-layout .cta-copy .section-kicker { color: #64511a; }
body.legacy-home-layout .cta-copy h2 { color: #111; font-size: clamp(2.15rem, 3vw, 3.3rem); max-width: 20ch; }
body.legacy-home-layout .cta-copy > p { color: #3f3515; font-size: .75rem; line-height: 1.6; margin: 10px 0 0; max-width: 55ch; }
body.legacy-home-layout .cta-actions { display: grid; gap: 9px; min-width: 198px; }
body.legacy-home-layout .home-cta .button { font-size: .75rem; min-height: 40px; padding: 0 14px; }
body.legacy-home-layout .home-cta .button-primary { background: #111; border-color: #111; color: white; }
body.legacy-home-layout .home-cta .button-outline { border-color: #111; color: #111; }
body.legacy-home-layout .cta-media { align-self: stretch; background: rgba(255,255,255,.19); min-height: 115px; overflow: hidden; }
body.legacy-home-layout .cta-media .home-image-placeholder { background: rgba(255,255,255,.13); border-color: rgba(17,17,17,.34); color: #574812; }

/* Footer — preserve its data, only bring the visual language in line with the reference. */
body.legacy-home-layout .site-footer:not(.dfc-universal-footer) { background: #111313; border: 0; color: #e9e9e2; margin: 0; padding: 42px max(24px, calc((100vw - 1280px) / 2)) 20px; }
body.legacy-home-layout .site-footer:not(.dfc-universal-footer) .footer-grid { gap: 42px; grid-template-columns: minmax(230px, 1.45fr) minmax(180px, .8fr) minmax(180px, .8fr); max-width: 1280px; }
body.legacy-home-layout .site-footer:not(.dfc-universal-footer) [data-site-logo] { max-width: 160px; }
body.legacy-home-layout .site-footer:not(.dfc-universal-footer) .footer-bottom { border-color: rgba(255,255,255,.15); font-size: .68rem; margin-top: 25px; max-width: 1280px; }

@media (max-width: 980px) {
  body.legacy-home-layout .hero { grid-template-columns: minmax(290px, 50%) 1fr; min-height: 540px; }
  body.legacy-home-layout .hero-copy { padding-inline: 34px; }
  body.legacy-home-layout .home-company { grid-template-columns: 1fr 1fr; }
  body.legacy-home-layout .company-stats { grid-column: 1 / -1; grid-template-columns: repeat(4, 1fr); }
  body.legacy-home-layout .company-stats article { border-bottom: 0; border-right: 1px solid var(--dfc-line); min-height: 105px; }
  body.legacy-home-layout .company-stats article:last-child { border-right: 0; }
  body.legacy-home-layout .range-section,
  body.legacy-home-layout .applications-section > .section-shell,
  body.legacy-home-layout .quality-tech { grid-template-columns: 1fr; }
  body.legacy-home-layout .range-carousel { grid-column: 1; }
  body.legacy-home-layout .applications-intro { gap: 18px; grid-template-columns: 1fr; }
  body.legacy-home-layout .applications-action-block { grid-template-columns: minmax(0, 1fr) auto; max-width: 680px; width: 100%; }
  body.legacy-home-layout .applications-cards { grid-template-columns: repeat(4, minmax(150px, 1fr)); overflow-x: auto; padding-bottom: 5px; }
  body.legacy-home-layout .application-card { min-width: 150px; }
  body.legacy-home-layout .home-cta { grid-template-columns: 1fr auto; }
  body.legacy-home-layout .cta-media { display: none; }
}

@media (max-width: 700px) {
  body.legacy-home-layout .section-shell { width: min(100% - 32px, 1280px); }
  body.legacy-home-layout .hero { display: block; min-height: 590px; padding: 16px; }
  body.legacy-home-layout .hero::before { inset: 16px; }
  body.legacy-home-layout .hero-copy { min-height: 385px; padding: 46px 26px 96px; }
  body.legacy-home-layout .hero-copy h1 { font-size: clamp(3rem, 14vw, 4.7rem); }
  body.legacy-home-layout .hero-media { bottom: 16px; left: 16px; min-height: 200px; opacity: .62; position: absolute; right: 16px; }
  body.legacy-home-layout .hero-highlights { bottom: 16px; grid-template-columns: repeat(2, 1fr); left: 16px; min-height: auto; right: 16px; }
  body.legacy-home-layout .hero-highlights article { padding: 10px; }
  body.legacy-home-layout .hero-highlights article:nth-child(2) { border-right: 0; }
  body.legacy-home-layout .hero-highlights article:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.13); }
  body.legacy-home-layout .product-lines-section { padding-inline: 16px; }
  body.legacy-home-layout .home-company { display: block; padding-block: 26px; }
  body.legacy-home-layout .company-media { min-height: 240px; }
  body.legacy-home-layout .company-copy { border-inline: 1px solid var(--dfc-line); padding: 28px 23px; }
  body.legacy-home-layout .company-stats { grid-template-columns: repeat(2, 1fr); }
  body.legacy-home-layout .company-stats article { border-bottom: 1px solid var(--dfc-line); min-height: 89px; }
  body.legacy-home-layout .company-stats article:nth-child(2n) { border-right: 0; }
  body.legacy-home-layout .range-section { padding-block: 28px; }
  body.legacy-home-layout .range-grid { grid-template-columns: repeat(3, minmax(210px, 1fr)); overflow-x: auto; padding-bottom: 5px; }
  body.legacy-home-layout .applications-action-block { display: block; }
  body.legacy-home-layout .applications-action-block .button { margin-top: 16px; }
  body.legacy-home-layout .compact-intro { display: block; }
  body.legacy-home-layout .compact-intro > p { margin-top: 14px; }
  body.legacy-home-layout .advantages-grid { grid-template-columns: repeat(2, 1fr); }
  body.legacy-home-layout .advantage { border-bottom: 1px solid var(--dfc-line); min-height: 100px; padding: 12px; }
  body.legacy-home-layout .advantage:first-child { padding-left: 0; }
  body.legacy-home-layout .advantage:nth-child(2n) { border-right: 0; }
  body.legacy-home-layout .quality-tech { margin-inline: 0; padding: 30px 16px; width: 100%; }
  body.legacy-home-layout .quality-tech::before,
  body.legacy-home-layout .home-cta::before { inset-inline: 0; }
  body.legacy-home-layout .quality-steps { grid-template-columns: repeat(2, 1fr); }
  body.legacy-home-layout .home-cta { display: block; margin-inline: 0; padding: 30px 16px; width: 100%; }
  body.legacy-home-layout .cta-actions { display: flex; flex-wrap: wrap; margin-top: 18px; }
  body.legacy-home-layout .site-footer:not(.dfc-universal-footer) { padding-inline: 16px; }
  body.legacy-home-layout .site-footer:not(.dfc-universal-footer) .footer-grid { grid-template-columns: 1fr; }
}

/* Final guards against legacy homepage rules that intentionally used !important. */
body.legacy-home-layout .hero { background: #181918 !important; display: block !important; isolation: isolate; min-height: min(560px, 52vw) !important; padding: 0; }
body.legacy-home-layout .hero::before { background: transparent; border: 0; border-radius: 0; inset: 0; pointer-events: none; z-index: 1; }
body.legacy-home-layout .hero-media { background-color: #242421 !important; background-position: center !important; background-size: cover !important; grid-column: auto; inset: 0; min-height: 0 !important; position: absolute !important; z-index: 0; }
body.legacy-home-layout .hero-copy { background: transparent !important; box-sizing: border-box; margin-left: max(24px, calc((100vw - 1280px) / 2)); min-height: calc(min(560px, 52vw) - 76px) !important; padding: 50px clamp(28px, 4vw, 70px); position: relative; width: min(500px, 43vw); z-index: 2; }
body.legacy-home-layout .hero-copy h1 { color: #b51f27; text-shadow: 0 1px 10px rgba(255,255,255,.45); }
body.legacy-home-layout .hero-copy .hero-lede { color: #a71921; font-weight: 700; text-shadow: 0 1px 8px rgba(255,255,255,.45); }
body.legacy-home-layout .hero-copy .button-outline { background: var(--dfc-yellow); border-color: var(--dfc-yellow); color: #17120a; }
body.legacy-home-layout .hero-copy .button-outline:hover { background: #ffc22a; border-color: #ffc22a; color: #17120a; }
body.legacy-home-layout .hero-highlights { bottom: 0; }
body.legacy-home-layout .product-lines-section { background: var(--dfc-paper) !important; }
body.legacy-home-layout .quick-products { background: transparent !important; }
/* Product range: one shared desktop row keeps the left introduction and cards exactly aligned. */
body.legacy-home-layout .range-section { --range-content-height: 305px; align-items: stretch; background: var(--dfc-paper); column-gap: 0; grid-template-rows: var(--range-content-height); }
body.legacy-home-layout .range-section .split-intro { align-items: flex-start; display: flex; flex-direction: column; gap: 0; height: 100%; min-height: 0; overflow: hidden; padding-right: 28px; }
body.legacy-home-layout .range-section .split-intro > div { flex: 0 0 auto; }
body.legacy-home-layout .range-section .split-intro h2 { font-size: clamp(1.75rem, 2.25vw, 2.45rem); line-height: .98; margin: 9px 0 0; }
body.legacy-home-layout .range-section .split-intro #range-description { -webkit-box-orient: vertical; -webkit-line-clamp: 4; display: -webkit-box; flex: 0 0 auto; font-size: .78rem; line-height: 1.48; margin: 12px 0 0; overflow: hidden; }
body.legacy-home-layout .range-actions { display: block; margin-top: auto; padding-top: 10px; }
body.legacy-home-layout .range-actions .button { align-items: center; display: inline-flex; gap: 18px; justify-content: space-between; min-height: 40px; padding: 0 18px; }
body.legacy-home-layout .range-carousel { align-self: stretch; border-left: 3px solid var(--dfc-yellow); height: 100%; min-height: 0; padding-left: 28px; }
body.legacy-home-layout .range-carousel .range-grid { display: grid !important; height: 100%; min-height: 0; overflow: visible; padding: 0 !important; }
body.legacy-home-layout .range-carousel .range-card { display: flex !important; flex: 0 0 auto; flex-direction: column; height: 100% !important; min-height: 0 !important; overflow: hidden; }
body.legacy-home-layout .range-carousel .range-media { flex: 0 0 160px; height: 160px !important; min-height: 160px !important; }
body.legacy-home-layout .range-carousel .range-copy { box-sizing: border-box; display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0 !important; overflow: hidden; padding: 10px 16px 9px !important; }
body.legacy-home-layout .range-carousel .range-copy small { margin-bottom: 3px; }
body.legacy-home-layout .range-carousel .range-copy h3 { -webkit-box-orient: vertical; -webkit-line-clamp: 2; display: -webkit-box; font-size: 1.1rem; line-height: 1.02; overflow: hidden; }
body.legacy-home-layout .range-carousel .range-card p:not(.card-number) { -webkit-box-orient: vertical; -webkit-line-clamp: 2; display: -webkit-box; line-height: 1.32 !important; margin: 6px 0 7px !important; min-height: 0 !important; overflow: hidden; }
body.legacy-home-layout .range-carousel .card-link { margin-top: auto; }
@media (max-width: 980px) {
  body.legacy-home-layout .range-section { grid-template-rows: auto; }
  body.legacy-home-layout .range-section .split-intro { height: auto; min-height: auto; padding-right: 0; }
  body.legacy-home-layout .range-carousel,
  body.legacy-home-layout .range-carousel .range-grid { height: auto; min-height: 0; }
  body.legacy-home-layout .range-actions { margin-top: 22px; }
  body.legacy-home-layout .range-carousel { border-left: 0; padding-left: 0; }
}
@media (max-width: 700px) {
  body.legacy-home-layout .hero { display: block !important; min-height: 590px !important; }
  body.legacy-home-layout .hero-copy { margin-left: 0; min-height: 385px !important; padding: 46px 26px 96px; width: 100%; }
  body.legacy-home-layout .range-carousel .range-grid { display: flex !important; overflow-x: auto; }
  body.legacy-home-layout .range-carousel .range-card { flex: 0 0 250px; height: 310px !important; min-height: 310px !important; }
}

/* DFC advantages: editorial introduction plus linked visual advantage nodes. */
body.legacy-home-layout .advantages { align-items: stretch; background: var(--dfc-paper); display: grid; gap: clamp(28px, 5vw, 72px); grid-template-columns: minmax(220px, .66fr) minmax(0, 1.8fr); padding-block: 64px; }
body.legacy-home-layout .advantages-intro { align-self: center; }
body.legacy-home-layout .advantages-intro h2 { font-size: clamp(2.5rem, 4.2vw, 4.35rem); max-width: 100%; }
body.legacy-home-layout .advantages-intro h2 span,
body.legacy-home-layout .advantages-intro h2 i { display: block; }
body.legacy-home-layout .advantages-intro > p:not(.section-kicker) { color: var(--dfc-muted); font-size: .87rem; line-height: 1.75; margin: 22px 0 25px; max-width: 27ch; }
body.legacy-home-layout .advantages-intro .button { min-height: 42px; }
body.legacy-home-layout .advantages-map { height: 100%; min-width: 0; position: relative; }
body.legacy-home-layout .advantages-lines { height: 100%; inset: 0; overflow: visible; pointer-events: none; position: absolute; width: 100%; z-index: 0; }
body.legacy-home-layout .advantages-items { align-content: center; display: flex; flex-wrap: wrap; gap: 92px 28px; justify-content: center; min-height: 315px; position: relative; z-index: 1; }
body.legacy-home-layout .advantages-grid::before { display: none; }
body.legacy-home-layout .advantage-item { flex: 0 0 calc((100% - 56px) / 3); }
body.legacy-home-layout .advantage { align-items: flex-start; background: transparent; border: 0; display: grid; gap: 13px; grid-template-columns: 80px minmax(0, 1fr); min-height: 110px; padding: 0; position: relative; z-index: 1; }
body.legacy-home-layout .advantage:first-child { padding-left: 0; }
body.legacy-home-layout .advantage-visual { align-items: center; background: #fff; clip-path: polygon(50% 2%, 94% 25%, 94% 75%, 50% 98%, 6% 75%, 6% 25%); display: flex; height: 91px; justify-content: center; position: relative; width: 80px; }
body.legacy-home-layout .advantage-visual::before { border: 1px solid #d9d8d2; clip-path: inherit; content: ""; inset: 1px; position: absolute; }
body.legacy-home-layout .advantage-visual::after { border-right: 3px solid var(--dfc-yellow); border-top: 3px solid var(--dfc-yellow); clip-path: inherit; content: ""; inset: 0; position: absolute; }
body.legacy-home-layout .advantage-icon,
body.legacy-home-layout .advantage-image { align-items: center; color: var(--dfc-ink); display: flex; font-size: 2rem; height: 48px; justify-content: center; overflow: hidden; position: relative; width: 48px; z-index: 1; }
body.legacy-home-layout .advantage-visual .advantage-icon { border: 0; background: transparent; transform: none; }
body.legacy-home-layout .advantage-image img { height: 100%; object-fit: contain; width: 100%; }
body.legacy-home-layout .advantage-copy { min-width: 0; padding-top: 6px; }
body.legacy-home-layout .advantage-index { color: var(--dfc-yellow); display: block; font-family: "Barlow Condensed", sans-serif; font-size: .8rem; font-weight: 800; letter-spacing: .08em; margin-bottom: 4px; }
body.legacy-home-layout .advantage h3 { color: var(--dfc-ink); font-family: "Barlow Condensed", sans-serif; font-size: 1rem; font-weight: 800; line-height: 1.05; margin: 0; text-transform: uppercase; }
body.legacy-home-layout .advantage p { color: var(--dfc-muted); font-size: .68rem; line-height: 1.6; margin: 8px 0 0; }

/* Quality and news share the second reference layout while remaining separate CMS modules. */
body.legacy-home-layout .quality-news { background: #fff; border: 1px solid #e1e0da; display: grid; grid-template-columns: minmax(0, 1.72fr) minmax(365px, .92fr); margin-block: 14px 62px; overflow: hidden; }
body.legacy-home-layout .quality-tech { align-items: stretch; background: transparent; border: 0; color: var(--dfc-ink); display: grid; gap: 26px; grid-template-columns: minmax(210px, .72fr) minmax(0, 1.75fr); margin: 0; min-height: 440px; padding: 38px 28px; position: relative; width: auto; }
body.legacy-home-layout .quality-tech::before { display: none; }
body.legacy-home-layout .quality-copy,
body.legacy-home-layout .quality-steps { position: relative; z-index: 1; }
body.legacy-home-layout .quality-copy { align-self: center; }
body.legacy-home-layout .quality-copy h2 { color: var(--dfc-ink); font-size: clamp(2rem, 3.1vw, 3.35rem); max-width: 8ch; }
body.legacy-home-layout .quality-copy .rich-copy { color: var(--dfc-muted); font-size: .77rem; line-height: 1.65; margin: 19px 0 0; max-width: 29ch; }
body.legacy-home-layout .quality-steps { align-items: stretch; display: grid; gap: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.legacy-home-layout .quality-steps article { align-items: center; background: transparent; border: 0; border-left: 1px solid var(--dfc-line); display: flex; flex-direction: column; gap: 0; justify-content: flex-start; min-height: 0; padding: 0 12px; text-align: center; }
body.legacy-home-layout .quality-step-icon { color: var(--dfc-yellow); font-size: 1.55rem; height: 35px; line-height: 1; margin-bottom: 8px; }
body.legacy-home-layout .quality-step-image { align-items: center; background: #20211f; border: 1px solid #e5e3dc; display: flex; height: 123px; justify-content: center; margin-bottom: 12px; overflow: hidden; width: 100%; }
body.legacy-home-layout .quality-step-image img { height: 100%; object-fit: contain; width: 100%; }
body.legacy-home-layout .quality-step-image .home-image-placeholder { background: #f6f6f2; border: 0; color: #88877f; min-height: 0; }
body.legacy-home-layout .quality-steps b { color: var(--dfc-ink); display: block; font-family: "Barlow Condensed", sans-serif; font-size: .9rem; font-weight: 800; line-height: 1.08; text-transform: uppercase; }
body.legacy-home-layout .quality-steps small { color: var(--dfc-muted); display: block; font-family: Manrope, sans-serif; font-size: .63rem; line-height: 1.55; margin-top: 8px; }
body.legacy-home-layout .home-news { border-left: 1px solid #e1e0da; min-height: 440px; padding: 30px 26px; }
body.legacy-home-layout .home-news-heading { align-items: flex-start; display: flex; gap: 14px; justify-content: space-between; margin-bottom: 13px; }
body.legacy-home-layout .home-news-heading .section-kicker { margin: 0; }
body.legacy-home-layout .home-news-heading a { color: var(--dfc-ink); font-family: "Barlow Condensed", sans-serif; font-size: .68rem; font-weight: 800; letter-spacing: .055em; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
body.legacy-home-layout .home-news-list { display: grid; gap: 12px; }
body.legacy-home-layout .home-news-item { display: grid; gap: 12px; grid-template-columns: 104px minmax(0, 1fr); min-height: 82px; }
body.legacy-home-layout .news-item-image { align-items: center; background: #222321; display: flex; height: 76px; justify-content: center; overflow: hidden; }
body.legacy-home-layout .news-item-image img { height: 100%; object-fit: contain; width: 100%; }
body.legacy-home-layout .news-item-image .home-image-placeholder { background: #f7f7f4; border: 1px dashed #bebdb5; color: #77766f; min-height: 0; }
body.legacy-home-layout .news-item-image .home-image-placeholder > span { font-size: .8rem; height: 20px; width: 26px; }
body.legacy-home-layout .news-item-image .home-image-placeholder small { font-size: .5rem; }
body.legacy-home-layout .home-news-item time { color: #8e8d86; display: block; font-family: "Barlow Condensed", sans-serif; font-size: .62rem; font-weight: 700; letter-spacing: .045em; margin-bottom: 3px; text-transform: uppercase; }
body.legacy-home-layout .home-news-item h3 { color: var(--dfc-ink); font-family: "Barlow Condensed", sans-serif; font-size: .86rem; font-weight: 800; line-height: 1.05; margin: 0; }
body.legacy-home-layout .home-news-item p { -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--dfc-muted); display: -webkit-box; font-size: .6rem; line-height: 1.45; margin: 5px 0 0; overflow: hidden; }
body.legacy-home-layout .home-news { display: flex; flex-direction: column; }
body.legacy-home-layout .home-news-heading { flex: 0 0 auto; }
body.legacy-home-layout .home-news-footer { align-items: flex-end; display: flex; flex: 0 0 auto; justify-content: flex-start; padding-top: 9px; }
body.legacy-home-layout .home-news-footer .news-button,
body.legacy-home-layout .home-news-footer #news-button { align-items: center; background: var(--dfc-yellow); border: 1px solid var(--dfc-yellow); color: #111; display: inline-flex; font-family: "Barlow Condensed", sans-serif; font-size: .68rem; font-weight: 800; gap: 18px; justify-content: center; letter-spacing: .055em; min-height: 30px; padding: 0 15px; text-decoration: none; text-transform: uppercase; }
body.legacy-home-layout .home-news-footer #news-button[hidden] { display: none; }
body.legacy-home-layout .home-news-footer #news-button:hover { background: var(--dfc-yellow-bright, #ffc21a); border-color: var(--dfc-yellow-bright, #ffc21a); color: #111; }

/* Final composition for the quality/news band: compact left copy, icon-first
   technical cards, and three linked news rows with a bottom action. */
body.legacy-home-layout .quality-copy h2 {
  flex: 0 0 auto;
  height: auto;
  max-height: 2.2em;
  min-height: 1.1em;
}
body.legacy-home-layout .quality-copy .rich-copy { margin-top: .75rem; }
body.legacy-home-layout .quality-step-heading {
  align-items: center;
  display: flex;
  gap: .45rem;
  justify-content: flex-start;
  margin-bottom: 8px;
  min-height: 28px;
  text-align: left;
  width: 100%;
}
body.legacy-home-layout .quality-step-heading .quality-step-icon {
  flex: 0 0 25px;
  height: 25px;
  margin: 0;
  text-align: left;
  width: 25px;
}
body.legacy-home-layout .quality-step-heading b {
  flex: 1 1 auto;
  min-width: 0;
  text-align: left;
}
body.legacy-home-layout .home-news-item {
  color: inherit;
  border-bottom: 1px solid var(--dfc-yellow);
  text-decoration: none;
}
body.legacy-home-layout .home-news-item:last-child { border-bottom: 0; }
body.legacy-home-layout .home-news-item p {
  -webkit-line-clamp: 2;
  line-clamp: 2;
  text-overflow: ellipsis;
}

@media (max-width: 980px) {
  body.legacy-home-layout .advantages { grid-template-columns: 1fr; }
  body.legacy-home-layout .advantages-intro > p:not(.section-kicker) { max-width: 58ch; }
  body.legacy-home-layout .advantages-grid { min-height: 0; }
  body.legacy-home-layout .quality-news { grid-template-columns: 1fr; }
  body.legacy-home-layout .home-news { border-left: 0; border-top: 1px solid #e1e0da; min-height: 0; }
}

@media (max-width: 700px) {
  body.legacy-home-layout .advantages { padding-block: 42px; }
  body.legacy-home-layout .advantages-map { overflow: hidden; }
  body.legacy-home-layout .advantages-lines { display: none; }
  body.legacy-home-layout .advantages-items { align-content: start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 16px; padding-left: 18px; }
  body.legacy-home-layout .advantages-items::before { background: #d8d8d2; content: ""; left: 31px; position: absolute; top: 48px; bottom: 48px; width: 1px; }
  body.legacy-home-layout .advantage { grid-template-columns: 67px minmax(0, 1fr); }
  body.legacy-home-layout .advantage-item { flex: 0 0 auto; width: 100%; }
  body.legacy-home-layout .advantage-visual { height: 76px; width: 67px; }
  body.legacy-home-layout .quality-tech { grid-template-columns: 1fr; min-height: 0; padding: 32px 18px; }
  body.legacy-home-layout .quality-copy h2 { max-width: 14ch; }
  body.legacy-home-layout .quality-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.legacy-home-layout .quality-steps article { border-bottom: 1px solid var(--dfc-line); padding: 16px 9px; }
  body.legacy-home-layout .home-news { padding: 26px 18px; }
  body.legacy-home-layout .home-news-heading { align-items: flex-start; flex-direction: column; }
}

/* Fixed canvases: media and copy may change, but no homepage block can grow. */
body.legacy-home-layout .advantages { box-sizing: border-box; height: 500px; min-height: 500px; overflow: hidden; }
body.legacy-home-layout .advantages-intro,
body.legacy-home-layout .advantages-grid { height: 100%; min-height: 0; overflow: hidden; }
body.legacy-home-layout .advantages-intro { display: flex; flex-direction: column; }
body.legacy-home-layout .advantages-intro h2 { flex: 0 0 auto; margin: 0; max-height: 112px; overflow: hidden; }
body.legacy-home-layout .advantages-intro h2 span { display: block; max-height: 1.12em; overflow: hidden; white-space: nowrap; }
body.legacy-home-layout .advantages-intro h2 i { -webkit-box-orient: vertical; -webkit-line-clamp: 2; display: -webkit-box; max-height: 2.24em; overflow: hidden; }
body.legacy-home-layout .advantages-intro h2[hidden] { display: none; }
body.legacy-home-layout .advantages-intro > p:not(.section-kicker) { -webkit-box-orient: vertical; -webkit-line-clamp: 4; display: -webkit-box; flex: 0 0 auto; margin: 16px 0 20px; max-height: 96px; overflow: hidden; text-align: justify; text-align-last: left; text-justify: inter-word; }
body.legacy-home-layout .advantages-intro > p:not(.section-kicker)[hidden] { display: none; }
body.legacy-home-layout .advantages-intro .button { flex: 0 0 auto; margin-top: auto; }
body.legacy-home-layout .advantages-grid { align-content: center; grid-auto-rows: 112px; grid-template-rows: repeat(2, 112px); }
body.legacy-home-layout .advantage { box-sizing: border-box; height: 112px; min-height: 112px; overflow: hidden; }
body.legacy-home-layout .advantage-copy { height: 106px; overflow: hidden; }
body.legacy-home-layout .advantage h3 { -webkit-box-orient: vertical; -webkit-line-clamp: 2; display: -webkit-box; max-height: 2.1em; overflow: hidden; }
body.legacy-home-layout .advantage p { -webkit-box-orient: vertical; -webkit-line-clamp: 3; display: -webkit-box; max-height: 4.8em; overflow: hidden; }

body.legacy-home-layout .quality-news { box-sizing: border-box; height: 500px; min-height: 500px; overflow: hidden; }
body.legacy-home-layout .quality-tech,
body.legacy-home-layout .home-news { box-sizing: border-box; height: 498px; min-height: 498px; overflow: hidden; }
body.legacy-home-layout .quality-copy { display: flex; flex-direction: column; height: 100%; min-height: 0; overflow: hidden; }
body.legacy-home-layout .quality-copy h2 { flex: 0 0 168px; margin: 0; overflow: hidden; }
body.legacy-home-layout .quality-copy h2 span,
body.legacy-home-layout .quality-copy h2 i { -webkit-box-orient: vertical; -webkit-line-clamp: 2; display: -webkit-box; overflow: hidden; }
body.legacy-home-layout .quality-copy h2[hidden] { display: none; }
body.legacy-home-layout .quality-copy .rich-copy { -webkit-box-orient: vertical; -webkit-line-clamp: 5; display: -webkit-box; flex: 0 0 auto; margin-top: 14px; max-height: 8.25em; overflow: hidden; }
body.legacy-home-layout .quality-copy .rich-copy[hidden] { display: none; }
body.legacy-home-layout .quality-steps { height: 100%; min-height: 0; overflow: hidden; }
body.legacy-home-layout .quality-steps article { box-sizing: border-box; height: 100%; min-height: 0; overflow: hidden; }
body.legacy-home-layout .quality-step-image { flex: 0 0 123px; height: 123px; min-height: 123px; }
body.legacy-home-layout .quality-steps b { -webkit-box-orient: vertical; -webkit-line-clamp: 2; display: -webkit-box; max-height: 2.16em; overflow: hidden; }
body.legacy-home-layout .quality-steps small { -webkit-box-orient: vertical; -webkit-line-clamp: 3; display: -webkit-box; max-height: 4.65em; overflow: hidden; }
body.legacy-home-layout .home-news-heading { box-sizing: border-box; height: 31px; margin-bottom: 12px; min-height: 31px; overflow: hidden; }
body.legacy-home-layout .home-news-heading .section-kicker { -webkit-box-orient: vertical; -webkit-line-clamp: 1; display: -webkit-box; overflow: hidden; }
body.legacy-home-layout .home-news-list { grid-auto-rows: 82px; grid-template-rows: repeat(4, 82px); height: 346px; min-height: 346px; overflow: hidden; }
body.legacy-home-layout .home-news-item { box-sizing: border-box; height: 82px; min-height: 82px; overflow: hidden; }
body.legacy-home-layout .home-news-item h3 { -webkit-box-orient: vertical; -webkit-line-clamp: 2; display: -webkit-box; max-height: 2.1em; overflow: hidden; }

@media (max-width: 980px) {
  body.legacy-home-layout .advantages { height: 520px; min-height: 520px; }
  body.legacy-home-layout .quality-news { height: 940px; min-height: 940px; }
  body.legacy-home-layout .quality-tech { height: 480px; min-height: 480px; }
  body.legacy-home-layout .home-news { height: 458px; min-height: 458px; }
}

@media (max-width: 700px) {
  body.legacy-home-layout .advantages { height: 660px; min-height: 660px; }
  body.legacy-home-layout .advantages-intro h2 { flex-basis: auto; max-height: 142px; }
  body.legacy-home-layout .advantages-items { align-content: start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 16px; padding-left: 18px; }
  body.legacy-home-layout .advantage { height: 105px; min-height: 105px; }
  body.legacy-home-layout .quality-news { height: 980px; min-height: 980px; }
  body.legacy-home-layout .quality-tech { height: 510px; min-height: 510px; }
  body.legacy-home-layout .home-news { height: 468px; min-height: 468px; }
  body.legacy-home-layout .quality-copy h2 { flex-basis: 120px; }
}

/* Quality + news fixed desktop canvas.
   Keep this block on the page paper rather than introducing another white panel.
   The 350px canvas is 70% of the previous 500px desktop height; all children
   use explicit tracks so text or media changes cannot resize the section. */
@media (min-width: 981px) {
  body.legacy-home-layout .quality-news {
    background: var(--dfc-paper);
    border-color: var(--dfc-line);
    height: 350px;
    min-height: 350px;
  }

  body.legacy-home-layout .quality-tech,
  body.legacy-home-layout .home-news {
    background: var(--dfc-paper);
    height: 348px;
    min-height: 348px;
  }

  body.legacy-home-layout .quality-tech {
    gap: 22px;
    grid-template-columns: minmax(190px, .72fr) minmax(0, 1.75fr);
    padding: 24px 2ch;
  }

  /* Match the Diferenciais DFC copy rules: one compact first line,
     up to two lines for the accent, and a bounded justified description. */
  body.legacy-home-layout .quality-copy {
    align-self: stretch;
    min-width: 0;
  }

  body.legacy-home-layout .quality-copy h2 {
    flex: 0 0 104px;
    font-size: clamp(1.8rem, 2.65vw, 2.7rem);
    line-height: 1.02;
    max-width: 100%;
  }

  body.legacy-home-layout .quality-copy h2 span {
    display: block;
    max-height: 1.1em;
    overflow: hidden;
    text-overflow: clip;
    white-space: nowrap;
  }

  body.legacy-home-layout .quality-copy h2 i {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    max-height: 2.2em;
    overflow: hidden;
    text-overflow: clip;
    white-space: normal;
  }

  body.legacy-home-layout .quality-copy .rich-copy {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    display: -webkit-box;
    flex: 0 0 auto;
    line-height: 1.55;
    margin: 10px 0 0;
    max-height: 4.65em;
    max-width: 29ch;
    overflow: hidden;
    text-align: justify;
    text-align-last: left;
    text-justify: inter-word;
  }

  body.legacy-home-layout .quality-steps {
    align-self: stretch;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    min-width: 0;
  }

  body.legacy-home-layout .quality-steps article {
    height: 300px;
    min-height: 300px;
    padding: 0 10px;
  }

  body.legacy-home-layout .quality-step-icon {
    flex: 0 0 25px;
    height: 25px;
    margin-bottom: 6px;
  }

  body.legacy-home-layout .quality-step-image {
    flex: 0 0 82px;
    height: 82px;
    min-height: 82px;
    width: 100%;
  }

  body.legacy-home-layout .quality-steps b {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    max-height: 2.16em;
    overflow: hidden;
  }

  body.legacy-home-layout .quality-steps small {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    max-height: 3.1em;
    overflow: hidden;
  }

  body.legacy-home-layout .home-news {
    border-left-color: var(--dfc-line);
    padding: 22px 22px;
  }

  body.legacy-home-layout .home-news-heading {
    height: 25px;
    margin-bottom: 9px;
    min-height: 25px;
  }

  body.legacy-home-layout .home-news-list {
    gap: 8px;
    grid-auto-rows: minmax(0, 1fr);
    grid-template-rows: repeat(3, minmax(0, 1fr));
    flex: 1 1 auto;
    height: auto;
    min-height: 0;
  }

  body.legacy-home-layout .home-news-item {
    gap: 10px;
    grid-template-columns: 82px minmax(0, 1fr);
    height: auto;
    min-height: 0;
    overflow: hidden;
  }

  body.legacy-home-layout .news-item-image {
    height: 100%;
    min-height: 0;
    width: 82px;
  }

  body.legacy-home-layout .home-news-footer { padding-top: 2.2em; }

  body.legacy-home-layout .home-news-item h3 {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    max-height: 2.1em;
    overflow: hidden;
  }

  body.legacy-home-layout .home-news-item p {
    -webkit-line-clamp: 2;
    max-height: 2.9em;
  }
}

/* Compact module height (final): the quality/news block must follow the
   actual project-card content rather than any of the old 348/498/500px
   canvas rules.  In particular, the news list used to keep a hidden fourth
   row and a fixed 346px track, which was the main source of the blank tail. */
@media (min-width: 981px) {
  body.legacy-home-layout .quality-news {
    height: auto !important;
    min-height: 0 !important;
    align-items: stretch;
    overflow: visible !important;
  }

  body.legacy-home-layout .quality-tech,
  body.legacy-home-layout .home-news {
    height: auto !important;
    min-height: 0 !important;
    align-self: stretch;
    overflow: visible !important;
  }

  body.legacy-home-layout .quality-copy {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  body.legacy-home-layout .quality-steps {
    align-self: start !important;
    align-content: start !important;
    height: auto !important;
    min-height: 0 !important;
    grid-auto-rows: max-content !important;
    grid-template-rows: repeat(2, max-content) !important;
    overflow: visible !important;
  }

  body.legacy-home-layout .quality-steps article {
    align-self: start !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  body.legacy-home-layout .home-news-list {
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 0 !important;
    grid-auto-rows: max-content !important;
    grid-template-rows: repeat(3, max-content) !important;
    overflow: visible !important;
  }

  body.legacy-home-layout .home-news-item {
    height: auto !important;
    min-height: 82px !important;
    overflow: visible !important;
  }
}

@media (max-width: 980px) {
  body.legacy-home-layout .home-news-list {
    height: auto !important;
    min-height: 0 !important;
    grid-template-rows: repeat(3, max-content) !important;
    overflow: visible !important;
  }
}

/* Definitive desktop news-row sizing.  The compact rows have a separator
   only on their top edge; the previous bottom+top borders and 9px padding
   made two yellow rules and pushed the 102px media frame outside the row. */
@media (min-width: 981px) {
  body.legacy-home-layout .home-news .home-news-list {
    gap: 8px !important;
    grid-auto-rows: 82px !important;
    grid-template-rows: repeat(3, 82px) !important;
    height: 262px !important;
    min-height: 262px !important;
    overflow: hidden !important;
  }

  body.legacy-home-layout .home-news .home-news-list > .home-news-item {
    box-sizing: border-box !important;
    height: 82px !important;
    min-height: 82px !important;
    max-height: 82px !important;
    overflow: hidden !important;
    padding: 0 !important;
    border-bottom: 0 !important;
  }

  body.legacy-home-layout .home-news .home-news-list > .home-news-item + .home-news-item {
    border-top: 1px solid var(--dfc-yellow) !important;
    padding-top: 0 !important;
  }

  body.legacy-home-layout .home-news .home-news-list > .home-news-item .news-item-image {
    align-self: start !important;
    box-sizing: border-box !important;
    height: 80px !important;
    min-height: 80px !important;
    max-height: 80px !important;
    width: 102px !important;
    max-width: 102px !important;
    overflow: hidden !important;
  }

  body.legacy-home-layout .home-news .home-news-list > .home-news-item > div {
    min-width: 0 !important;
    max-height: 80px !important;
    overflow: hidden !important;
  }
}

/* Final visual correction for the compact quality/news module.
   The news rows are 82px tall; the legacy 102px media frame was escaping
   those rows and crossing the yellow dividers/CTA.  Keep the frame and its
   image inside the row while preserving the complete image (contain). */
@media (min-width: 981px) {
  body.legacy-home-layout .home-news-list {
    overflow: hidden !important;
  }

  body.legacy-home-layout .home-news-item {
    box-sizing: border-box !important;
    grid-template-rows: 82px !important;
    overflow: hidden !important;
  }

  body.legacy-home-layout .news-item-image {
    box-sizing: border-box !important;
    height: 82px !important;
    min-height: 82px !important;
    max-height: 82px !important;
    width: 102px !important;
    max-width: 102px !important;
    overflow: hidden !important;
  }

  body.legacy-home-layout .news-item-image img,
  body.legacy-home-layout .news-item-image .home-image-placeholder {
    height: 100% !important;
    min-height: 0 !important;
    width: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
  }

  body.legacy-home-layout .home-news-item > div {
    min-width: 0 !important;
    max-height: 82px !important;
    overflow: hidden !important;
  }

  body.legacy-home-layout .home-news-item p {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    line-clamp: 2 !important;
    max-height: 2.9em !important;
    overflow: hidden !important;
  }

  body.legacy-home-layout .quality-steps small {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    line-clamp: 2 !important;
    flex: 0 0 2.7em !important;
    height: 2.7em !important;
    max-height: 2.7em !important;
    min-height: 2.7em !important;
    overflow: hidden !important;
  }
}

/* Final CMS media policy: fixed module frames preserve the complete upload.
   Keep this block at the end so the legacy layout cannot reintroduce cover
   cropping through a later selector. */
body.legacy-home-layout .hero-media,
body.legacy-home-layout .home-card-media,
body.legacy-home-layout .range-media,
body.legacy-home-layout .application-media,
body.legacy-home-layout .cta-media {
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}

body.legacy-home-layout .hero-media .hero-background-video,
body.legacy-home-layout .cms-hero-video,
body.legacy-home-layout .hero-foreground-image,
body.legacy-home-layout .application-card-media img,
body.legacy-home-layout .quality-step-image img,
body.legacy-home-layout .news-item-image img,
body.legacy-home-layout .cta-media img,
body.legacy-home-layout .advantage-image img {
  object-fit: contain !important;
  object-position: center !important;
}

/* Keep the project cards compact: the fixed-height grid used to force every
   card to fill its entire row, leaving a large empty block below the
   two-line description.  The section canvas stays fixed, while cards size
   themselves to their actual content. */
@media (min-width: 981px) {
  body.legacy-home-layout .quality-steps {
    align-content: start;
    grid-template-rows: repeat(2, max-content);
  }

  body.legacy-home-layout .quality-steps article {
    align-self: start;
    height: auto !important;
  }
}

/* Quality summary: use one image-matched grey field.  Only the separators
   between adjacent summaries remain; no enclosing box or per-card boxes. */
body.legacy-home-layout .quality-highlights {
  background: #f3f2ed;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

body.legacy-home-layout .quality-highlights article {
  background: transparent;
  border-top: 0;
  border-bottom: 0;
}

body.legacy-home-layout .quality-highlights article + article {
  border-left: 1px solid #d8d6ce;
}

/* The complete quality/news band follows the compact project cards.  Its
   height is derived from the two actual project rows, not a legacy canvas. */
@media (min-width: 981px) {
  body.legacy-home-layout .quality-news {
    box-sizing: border-box;
    height: auto !important;
    min-height: 0 !important;
    align-items: stretch;
    overflow: visible;
  }

  body.legacy-home-layout .quality-tech,
  body.legacy-home-layout .home-news,
  body.legacy-home-layout .quality-copy {
    box-sizing: border-box;
    height: auto !important;
    min-height: 0 !important;
    align-self: stretch;
  }

  body.legacy-home-layout .quality-steps {
    height: auto !important;
    min-height: 0 !important;
    align-content: start;
    grid-template-rows: repeat(2, max-content);
    overflow: visible;
  }

  body.legacy-home-layout .quality-steps article {
    align-self: start;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible;
  }
}

@media (max-width: 980px) {
  body.legacy-home-layout .quality-news,
  body.legacy-home-layout .quality-tech,
  body.legacy-home-layout .home-news,
  body.legacy-home-layout .quality-steps,
  body.legacy-home-layout .quality-copy {
    height: auto !important;
    min-height: 0 !important;
  }

  body.legacy-home-layout .quality-steps article {
    height: auto !important;
    min-height: 0 !important;
  }
}

/* Last cascade: remove the remaining legacy news-list canvas so the whole
   module is sized by the visible project rows and three visible news items. */
@media (min-width: 981px) {
  body.legacy-home-layout .quality-news,
  body.legacy-home-layout .quality-tech,
  body.legacy-home-layout .home-news,
  body.legacy-home-layout .quality-copy,
  body.legacy-home-layout .quality-steps {
    height: auto !important;
    min-height: 0 !important;
  }

  body.legacy-home-layout .quality-news {
    align-items: stretch;
    overflow: visible !important;
  }

  body.legacy-home-layout .quality-tech,
  body.legacy-home-layout .home-news {
    align-self: stretch;
    overflow: visible !important;
  }

  body.legacy-home-layout .quality-tech {
    align-content: start !important;
    grid-template-rows: max-content !important;
    padding-block: 0 !important;
  }

  /* The project grid is the height reference.  Remove the former canvas
     padding/row track so the module ends where the second project row ends. */
  body.legacy-home-layout .quality-tech {
    align-content: start !important;
    grid-template-rows: max-content !important;
    padding-block: 0 !important;
  }

  body.legacy-home-layout .quality-copy,
  body.legacy-home-layout .quality-steps {
    align-self: start !important;
  }

  body.legacy-home-layout .quality-steps {
    align-content: start !important;
    grid-auto-rows: max-content !important;
    grid-template-rows: repeat(2, max-content) !important;
  }

  body.legacy-home-layout .quality-steps article {
    align-self: start !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  body.legacy-home-layout .home-news-list {
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 0 !important;
    gap: 8px !important;
    grid-auto-rows: 82px !important;
    grid-template-rows: repeat(3, 82px) !important;
    overflow: visible !important;
  }

  body.legacy-home-layout .home-news-item {
    height: 82px !important;
    min-height: 82px !important;
    overflow: visible !important;
  }
}

@media (max-width: 980px) {
  body.legacy-home-layout .home-news-list {
    height: auto !important;
    min-height: 0 !important;
    grid-template-rows: repeat(3, max-content) !important;
    overflow: visible !important;
  }
}

/* The quality/news module follows the compact project cards.  Do not keep
   the legacy 500px canvas: its height is now the actual height of the two
   project rows plus the module padding, so the bottom aligns with the cards. */
body.legacy-home-layout .quality-news,
body.legacy-home-layout .quality-tech,
body.legacy-home-layout .home-news,
body.legacy-home-layout .quality-steps,
body.legacy-home-layout .quality-copy {
  box-sizing: border-box;
  height: auto !important;
  min-height: 0 !important;
}

body.legacy-home-layout .quality-news {
  align-items: stretch;
  overflow: visible;
}

body.legacy-home-layout .quality-tech,
body.legacy-home-layout .home-news {
  align-self: stretch;
}

@media (min-width: 981px) {
  body.legacy-home-layout .quality-steps {
    align-content: start;
    grid-template-rows: repeat(2, max-content);
    overflow: visible;
  }

  body.legacy-home-layout .quality-steps article {
    align-self: start;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible;
  }
}

@media (max-width: 980px) {
  body.legacy-home-layout .quality-steps article {
    height: auto !important;
    min-height: 0 !important;
  }
}

/* Keep the complete quality/news band at the existing project canvas height.
   Content compaction must never reduce the module itself. */
@media (min-width: 981px) {
  body.legacy-home-layout .quality-news {
    box-sizing: border-box;
    height: 500px;
    min-height: 500px;
  }

  body.legacy-home-layout .quality-tech,
  body.legacy-home-layout .home-news {
    box-sizing: border-box;
    height: 498px;
    min-height: 498px;
  }

  body.legacy-home-layout .quality-steps {
    height: 100%;
    min-height: 0;
  }
}

/* Last in the cascade: keep every technical project description to the
   exact two-line slot, regardless of the legacy fixed-canvas rules above. */
body.legacy-home-layout .quality-steps small {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  max-height: 2.7em;
  overflow: hidden;
}

/* Technical project descriptions are always a two-line slot at every
   breakpoint.  Longer copy is clipped with an ellipsis instead of changing
   the card height or pushing the next element down. */
body.legacy-home-layout .quality-steps small {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  max-height: 2.7em;
  overflow: hidden;
}

/* Quality & technology / news: fixed three-column desktop composition.
   The CMS still supplies all copy, steps, images and news; this only defines
   the reference layout and keeps its canvas stable when that content changes. */
@media (min-width: 981px) {
  body.legacy-home-layout .quality-news {
    grid-template-columns: minmax(0, 1.72fr) minmax(365px, .92fr);
    height: 560px;
    min-height: 560px;
    margin-block: 14px 62px;
  }

  body.legacy-home-layout .quality-tech,
  body.legacy-home-layout .home-news {
    height: 558px;
    min-height: 558px;
  }

  body.legacy-home-layout .quality-tech {
    align-items: stretch;
    gap: 18px;
    grid-template-columns: minmax(220px, .72fr) minmax(0, 1.68fr);
    padding: 22px 22px;
  }

  body.legacy-home-layout .quality-copy {
    align-self: stretch;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    overflow: hidden;
  }

  body.legacy-home-layout .quality-copy .section-kicker {
    flex: 0 0 auto;
    margin: 0 0 14px;
  }

  body.legacy-home-layout .quality-copy h2 {
    flex: 0 0 auto;
    font-size: clamp(2rem, 2.7vw, 3rem);
    line-height: 1.03;
    max-width: 100%;
  }

  body.legacy-home-layout .quality-copy .rich-copy {
    flex: 1 1 auto;
    margin: 22px 0 18px;
    max-width: none;
    min-height: 0;
  }

  body.legacy-home-layout .quality-highlights {
    background: #faf9f6;
    border: 1px solid #e8e6de;
    display: grid;
    flex: 0 0 104px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    min-height: 104px;
    overflow: hidden;
  }

  body.legacy-home-layout .quality-highlights[hidden] { display: none; }

  body.legacy-home-layout .quality-highlights article {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: 7px;
    justify-content: center;
    min-width: 0;
    padding: 9px 6px;
    text-align: center;
  }

  body.legacy-home-layout .quality-highlights article + article { border-left: 1px solid #e2e0d8; }

  body.legacy-home-layout .quality-highlight-icon {
    color: var(--dfc-yellow);
    font-size: 1.45rem;
    line-height: 1;
  }

  body.legacy-home-layout .quality-highlights small {
    color: var(--dfc-ink);
    font-family: Manrope, sans-serif;
    font-size: .7rem;
    font-weight: 700;
    line-height: 1.25;
    max-width: 11ch;
    min-height: 2.5em;
    overflow: hidden;
    text-align: center;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  body.legacy-home-layout .quality-steps {
    align-self: stretch;
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
    height: 100%;
    min-height: 0;
    overflow: hidden;
  }

  body.legacy-home-layout .quality-steps article {
    align-items: stretch;
    background: #fff;
    border: 1px solid #e6e4dc;
    border-radius: 12px;
    box-shadow: 0 4px 18px rgba(18, 18, 16, .04);
    display: flex;
    flex-direction: column;
    height: auto;
    min-height: 0;
    overflow: hidden;
    padding: 11px 10px 10px;
    text-align: left;
  }

  body.legacy-home-layout .quality-step-heading {
    align-items: center;
    display: grid;
    gap: 8px;
    grid-template-columns: 34px minmax(0, 1fr);
    margin: 0 0 7px;
    min-height: 34px;
    text-align: left;
    width: 100%;
  }

  body.legacy-home-layout .quality-step-index {
    align-items: center;
    background: var(--dfc-yellow);
    color: #fff;
    display: flex;
    font-family: "Barlow Condensed", sans-serif;
    font-size: .78rem;
    font-weight: 800;
    height: 28px;
    justify-content: center;
    line-height: 1;
    transform: rotate(45deg);
    width: 28px;
  }

  body.legacy-home-layout .quality-step-index i {
    font-style: normal;
    transform: rotate(-45deg);
  }

  body.legacy-home-layout .quality-steps b {
    color: var(--dfc-ink);
    font-size: .9rem;
    line-height: 1.08;
    text-align: left;
  }

  body.legacy-home-layout .quality-step-image {
    align-items: center;
    background: #f7f6f2;
    border: 0;
    display: flex;
    flex: 0 0 112px;
    height: 112px;
    justify-content: center;
    margin: 0 0 7px;
    min-height: 112px;
    overflow: hidden;
    width: 100%;
  }

  body.legacy-home-layout .quality-step-image img,
  body.legacy-home-layout .quality-step-image .home-image-placeholder {
    height: 100%;
    width: 100%;
  }

  body.legacy-home-layout .quality-steps small {
    color: var(--dfc-muted);
    box-sizing: border-box;
    display: -webkit-box;
    font-size: .68rem;
    line-height: 1.35;
    flex: 0 0 2.7em;
    height: 2.7em;
    max-height: 2.7em;
    margin-top: 0;
    min-height: 2.7em;
    overflow: hidden;
    text-align: left;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  body.legacy-home-layout .home-news {
    display: flex;
    flex-direction: column;
    padding: 22px 22px;
  }

  body.legacy-home-layout .home-news-heading {
    flex: 0 0 auto;
    margin-bottom: 11px;
  }

  body.legacy-home-layout .home-news-list {
    display: grid;
    flex: 1 1 auto;
    gap: 0;
    grid-template-rows: repeat(3, minmax(0, 1fr));
    min-height: 0;
    overflow: hidden;
  }

  body.legacy-home-layout .home-news-item {
    align-items: start;
    gap: 12px;
    grid-template-columns: 102px minmax(0, 1fr);
    margin: 0;
    min-height: 0;
    overflow: hidden;
    padding: 0 0 9px;
  }

  body.legacy-home-layout .home-news-item + .home-news-item {
    border-top: 1px solid rgba(234, 173, 0, .55);
    padding-top: 9px;
  }

  body.legacy-home-layout .news-item-image {
    height: 102px;
    min-height: 102px;
    width: 102px;
  }

  body.legacy-home-layout .home-news-footer {
    flex: 0 0 auto;
    padding-top: 8px;
  }

  body.legacy-home-layout .home-news-footer #news-button {
    min-height: 44px;
    padding: 0 22px;
  }
}

@media (max-width: 980px) {
  body.legacy-home-layout .quality-highlights {
    background: #faf9f6;
    border: 1px solid #e8e6de;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 20px;
  }

  body.legacy-home-layout .quality-highlights article {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: 8px;
    justify-content: center;
    min-height: 94px;
    padding: 10px 6px;
    text-align: center;
  }

  body.legacy-home-layout .quality-highlights article + article { border-left: 1px solid #e2e0d8; }
  body.legacy-home-layout .quality-highlight-icon { color: var(--dfc-yellow); font-size: 1.5rem; line-height: 1; }
  body.legacy-home-layout .quality-highlights small { color: var(--dfc-ink); display:-webkit-box; font-size: .66rem; font-weight: 700; line-height: 1.25; min-height: 2.5em; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
  body.legacy-home-layout .quality-step-index { align-items:center; background:var(--dfc-yellow); color:#fff; display:flex; font-family:"Barlow Condensed",sans-serif; font-size:.72rem; font-weight:800; height:26px; justify-content:center; transform:rotate(45deg); width:26px; }
  body.legacy-home-layout .quality-step-index i { font-style:normal; transform:rotate(-45deg); }
}

/* The Quality & Technology introduction is a fixed-size homepage module.
   Do not clip CMS rich text after a few lines: keep the canvas fixed and let
   the copy area scroll internally when the authored content is longer. */
body.legacy-home-layout .quality-copy .rich-copy {
  -webkit-box-orient: initial;
  -webkit-line-clamp: unset;
  display: block;
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  max-width: none;
  overflow-x: hidden;
  overflow-y: auto;
  padding-right: 8px;
  scrollbar-color: var(--dfc-yellow) transparent;
  scrollbar-width: thin;
}

body.legacy-home-layout .quality-copy .rich-copy > :first-child {
  margin-top: 0;
}

body.legacy-home-layout .quality-copy .rich-copy > :last-child {
  margin-bottom: 0;
}

body.legacy-home-layout .quality-copy .rich-copy img,
body.legacy-home-layout .quality-copy .rich-copy video,
body.legacy-home-layout .quality-copy .rich-copy iframe {
  display: block;
  max-width: 100%;
  height: auto;
}

body.legacy-home-layout .quality-copy .rich-copy table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
}

body.legacy-home-layout .quality-copy .rich-copy::-webkit-scrollbar {
  width: 6px;
}

body.legacy-home-layout .quality-copy .rich-copy::-webkit-scrollbar-thumb {
  background: var(--dfc-yellow);
  border-radius: 999px;
}

/* The quality and Diferenciais introductions now use one title field. The
   first rendered line stays ink-black; any wrapped continuation becomes DFC
   yellow automatically, so a separate accent-title field is unnecessary. */
body.legacy-home-layout .quality-copy h2 i,
body.legacy-home-layout .advantages-intro h2 i {
  display: none !important;
}

body.legacy-home-layout .quality-copy h2 span,
body.legacy-home-layout .advantages-intro h2 span {
  color: var(--dfc-yellow);
  display: block;
  max-height: 2.2em;
  overflow: hidden;
  text-overflow: clip;
  white-space: normal;
}

body.legacy-home-layout .quality-copy h2 span::first-line,
body.legacy-home-layout .advantages-intro h2 span::first-line {
  color: var(--dfc-ink);
}

body.legacy-home-layout .quality-copy .rich-copy,
body.legacy-home-layout .advantages-intro > p:not(.section-kicker) {
  margin-top: 1em;
}

/* The copy column follows the amount of title text instead of reserving an
   oversized empty title track. The parent canvas remains fixed, so the
   technical cards and news panel keep their original height. */
@media (min-width: 981px) {
  body.legacy-home-layout .quality-copy h2 {
    flex: 0 0 auto;
    height: auto;
    max-height: 2.2em;
    min-height: 1.1em;
  }

  body.legacy-home-layout .quality-copy .rich-copy {
    margin-top: .75em;
  }

  body.legacy-home-layout .quality-steps article {
    padding-left: 6px;
    padding-right: 6px;
  }
}

/* Final override for CMS-uploaded media: never crop inside fixed frames. */
body.legacy-home-layout .hero-media,
body.legacy-home-layout .home-card-media,
body.legacy-home-layout .range-media,
body.legacy-home-layout .application-media,
body.legacy-home-layout .cta-media {
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}

body.legacy-home-layout .hero-media .hero-background-video,
body.legacy-home-layout .cms-hero-video,
body.legacy-home-layout .hero-foreground-image,
body.legacy-home-layout .application-card-media img,
body.legacy-home-layout .quality-step-image img,
body.legacy-home-layout .news-item-image img,
body.legacy-home-layout .cta-media img,
body.legacy-home-layout .advantage-image img {
  object-fit: contain !important;
  object-position: center !important;
}

/* Final card sizing: the canvas remains fixed, but each project card ends
   after its two-line description instead of reserving a tall empty tail. */
@media (min-width: 981px) {
  body.legacy-home-layout .quality-steps {
    align-content: start;
    grid-template-rows: repeat(2, max-content);
  }

  body.legacy-home-layout .quality-steps article {
    align-self: start;
    height: auto !important;
  }
}

/* The summary row uses the same soft grey as the image fields.  Keep only
   vertical separators between adjacent summary items. */
body.legacy-home-layout .quality-highlights {
  background: #f3f2ed;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

body.legacy-home-layout .quality-highlights article {
  background: transparent;
  border-top: 0;
  border-bottom: 0;
}

body.legacy-home-layout .quality-highlights article + article {
  border-left: 1px solid #d8d6ce;
}

/* Final cascade: the quality/news module follows the compact project cards.
   Its height comes from the two actual project rows, not a legacy canvas. */
@media (min-width: 981px) {
  body.legacy-home-layout .quality-news {
    box-sizing: border-box;
    height: auto !important;
    min-height: 0 !important;
    align-items: stretch;
    overflow: visible;
  }

  body.legacy-home-layout .quality-tech,
  body.legacy-home-layout .home-news,
  body.legacy-home-layout .quality-copy {
    box-sizing: border-box;
    height: auto !important;
    min-height: 0 !important;
    align-self: stretch;
  }

  /* Make the compact project rows the module's height reference. */
  body.legacy-home-layout .quality-tech {
    align-content: start !important;
    grid-template-rows: max-content !important;
    padding-block: 0 !important;
  }

  body.legacy-home-layout .quality-steps {
    height: auto !important;
    min-height: 0 !important;
    align-content: start;
    grid-template-rows: repeat(2, max-content);
    overflow: visible;
  }

  body.legacy-home-layout .quality-steps article {
    align-self: start;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible;
  }
}

@media (max-width: 980px) {
  body.legacy-home-layout .quality-news,
  body.legacy-home-layout .quality-tech,
  body.legacy-home-layout .home-news,
  body.legacy-home-layout .quality-steps,
  body.legacy-home-layout .quality-copy {
    height: auto !important;
    min-height: 0 !important;
  }

  body.legacy-home-layout .quality-steps article {
    height: auto !important;
    min-height: 0 !important;
  }
}

/* Last cascade: remove the remaining legacy news-list canvas so the whole
   module is sized by the visible project rows and three visible news items. */
@media (min-width: 981px) {
  body.legacy-home-layout .quality-news,
  body.legacy-home-layout .quality-tech,
  body.legacy-home-layout .home-news,
  body.legacy-home-layout .quality-copy,
  body.legacy-home-layout .quality-steps {
    height: auto !important;
    min-height: 0 !important;
  }

  body.legacy-home-layout .quality-news {
    align-items: stretch;
    overflow: visible !important;
  }

  body.legacy-home-layout .quality-tech,
  body.legacy-home-layout .home-news {
    align-self: stretch;
    overflow: visible !important;
  }

  body.legacy-home-layout .quality-copy,
  body.legacy-home-layout .quality-steps {
    align-self: start !important;
  }

  body.legacy-home-layout .quality-steps {
    align-content: start !important;
    grid-auto-rows: max-content !important;
    grid-template-rows: repeat(2, max-content) !important;
  }

  body.legacy-home-layout .quality-steps article {
    align-self: start !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  body.legacy-home-layout .home-news-list {
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 0 !important;
    gap: 8px !important;
    grid-auto-rows: 82px !important;
    grid-template-rows: repeat(3, 82px) !important;
    overflow: visible !important;
  }

  body.legacy-home-layout .home-news-item {
    height: 82px !important;
    min-height: 82px !important;
    overflow: visible !important;
  }
}

@media (max-width: 980px) {
  body.legacy-home-layout .home-news-list {
    height: auto !important;
    min-height: 0 !important;
    grid-template-rows: repeat(3, max-content) !important;
    overflow: visible !important;
  }
}
