/* Homepage: complete lines precede material solutions. */
.home-lines { background:#fff; }
.home-lines-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.home-line-card { display:flex; flex-direction:column; min-width:0; color:var(--color-text); border:1px solid var(--color-border); background:white; transition:border-color .2s,box-shadow .2s; }
.home-line-card:hover { border-color:var(--color-action); box-shadow:0 12px 30px rgba(18,57,88,.08); }
.home-line-card:focus-visible { outline:3px solid var(--color-action); outline-offset:4px; }
.home-line-card__visual { position:relative; display:grid; place-items:center; aspect-ratio:2/1; padding:14px; background:var(--color-bg-light); border-bottom:1px solid var(--color-border); overflow:hidden; }
.home-line-card__visual img { display:block; width:100%; height:100%; min-height:0; object-fit:contain; }
.home-line-card__image-note { position:absolute; right:20px; bottom:20px; padding:5px 9px; color:white; background:rgba(6,43,72,.85); font-size:14px; line-height:1.5; }
.home-line-card__body { display:flex; flex:1; flex-direction:column; padding:28px 30px; }
.home-line-card__route { margin:0 0 14px; color:var(--color-action); font-size:16px; font-weight:600; line-height:1.5; }
.home-line-card__body h3 { margin:0 0 16px; color:var(--color-primary); font-family:var(--font-body); font-size:26px; font-weight:600; line-height:1.25; }
.home-line-card__body > p:not(.home-line-card__route) { margin:0 0 24px; color:var(--color-muted); font-size:18px; line-height:1.65; }
.home-line-card__link { display:flex; justify-content:space-between; gap:16px; margin-top:auto; padding-top:18px; border-top:1px solid var(--color-border); color:var(--color-action); font-size:17px; font-weight:600; }
.home-line-card__link i { font-style:normal; font-size:24px; line-height:1; }
.home-lines-footer { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-top:28px; padding:24px 0; border-bottom:1px solid var(--color-border); }
.home-lines-footer p { margin:0; color:var(--color-muted); font-size:18px; line-height:1.6; max-width:690px; }
.home-lines-footer .text-link { flex-shrink:0; }
.home-company-links { display:flex; flex-wrap:wrap; gap:24px; margin-top:24px; }
#contact.final-cta { background:var(--color-primary); color:white; }
#contact .final-cta__content h2 { color:white; }
#contact .final-cta__content h2 em,#contact .final-cta__content .eyebrow,#contact .final-cta__content .section-index { color:var(--color-accent-soft); }
#contact .final-cta__content > p,#contact .final-cta__side-note { color:#d6e5ef; }
#contact .final-cta__content .text-link { color:white; }
#contact .final-cta__content .section-index i { color:#d6e5ef; }
#contact .quick-form { padding:32px; background:white; color:var(--color-text); border:0; }
.home-contact-channels { display:grid; gap:0; margin-top:32px; }
.home-contact-channels a { display:grid; grid-template-columns:1fr auto; gap:6px 16px; padding:19px 0; border-top:1px solid rgba(255,255,255,.25); color:white; }
.home-contact-channels span { color:var(--color-accent-soft); font-size:16px; }
.home-contact-channels strong { grid-column:1; font-weight:500; font-size:18px; line-height:1.5; overflow-wrap:anywhere; }
.home-contact-channels i { grid-column:2; grid-row:1/3; align-self:center; font-style:normal; font-size:27px; }
@media (max-width:767px) {
 .home-lines-grid { grid-template-columns:1fr; gap:22px; }
 .home-line-card__visual { aspect-ratio:1.7/1; padding:10px; }
 .home-line-card__body { padding:24px; }.home-line-card__body h3 { font-size:24px; }
 .home-lines-footer { align-items:flex-start; flex-direction:column; gap:20px; }
 #contact .quick-form { padding:24px; }
 .home-contact-channels strong { font-size:17px; }
}
@media (prefers-reduced-motion:reduce) { .home-line-card { transition:none; } }

.home-lines { font-family:var(--font-body); }
.home-lines .eyebrow span { background:var(--color-action); }
#contact .eyebrow span { background:var(--color-accent-soft); }

#contact .final-cta__content .text-link,.home-company-links .text-link { font-size:17px; line-height:1.5; }

/* Core Equipment product cards. */
#machines .machines-grid { gap:28px; align-items:stretch; }
#machines .machine-card {
 background:#fff; border:1px solid var(--color-border); border-radius:6px;
 overflow:hidden; box-shadow:0 4px 18px rgba(18,57,88,.065);
 transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
#machines .machine-card .visual-slot--machine {
 margin:0; border-bottom:1px solid var(--color-border); background:#fff;
 transform:none; transition:none;
}
#machines .machine-card__body {
 display:flex; flex:1; flex-direction:column; padding:24px;
}
#machines .machine-card .card-number {
 margin-bottom:12px; color:var(--color-muted); font-size:14px;
}
#machines .machine-card h3 { margin:0; min-height:0; font-size:26px; line-height:1.3; }
#machines .machine-card p { max-width:none; min-height:0; margin:14px 0 24px; font-size:18px; line-height:1.6; }
#machines .machine-card .text-link {
 display:flex; justify-content:space-between; width:100%; margin-top:auto;
 padding-top:18px; border-top:1px solid var(--color-border); font-size:17px;
}
#machines .machine-card:focus-visible { outline:3px solid var(--color-action); outline-offset:4px; }
@media (hover:hover) {
 #machines .machine-card:hover { border-color:var(--color-action); box-shadow:0 12px 30px rgba(18,57,88,.14); transform:translateY(-4px); }
 #machines .machine-card:hover .visual-slot--machine { transform:none; background:#fff; }
}
@media (max-width:600px) {
 #machines .machines-grid { gap:22px; }
 #machines .machine-card__body { padding:22px; }
 #machines .machine-card h3 { font-size:24px; }
}
@media (prefers-reduced-motion:reduce) {
 #machines .machine-card { transition:none; }
 #machines .machine-card:hover { transform:none; }
}

/* White-background equipment renders need breathing room inside their cards. */
#main #machines .machine-card .visual-slot--machine img {
 padding:18px !important;
 object-fit:contain !important;
 box-sizing:border-box;
 background:#fff;
}
@media (max-width:600px) {
 #main #machines .machine-card .visual-slot--machine img { padding:14px !important; }
}
