/* Targeted refinements; the original DREF theme remains the visual authority. */
[hidden] { display: none !important; }
html { scroll-padding-top: 90px; }
body { overflow-wrap: break-word; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid #125a35; outline-offset: 3px; }
footer a:focus-visible, .navbar a:focus-visible { outline-color: #fff; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 2000; padding: 12px 18px; background: #fff; color: #125a35; }
.skip-link:focus { top: 8px; }
footer, footer li a, footer a { color: #e5f3eb; }
footer a:hover { color: #fff; text-decoration: underline; }
.intro-copy { max-width: 72ch; font-size: 18px; line-height: 1.65; margin-bottom: 28px; }
.catalogue-tools { display: grid; grid-template-columns: minmax(240px, 2fr) minmax(170px, 1fr) auto; column-gap: 20px; align-items: end; margin: 28px 0 18px; }
.catalogue-tools label:first-child { grid-column: 1; grid-row: 1; }
#parts-search { grid-column: 1; grid-row: 2; }
#search-help { grid-column: 1 / -1; grid-row: 3; font-size: 14px; margin: 8px 0; }
.catalogue-tools label[for=parts-category] { grid-column: 2; grid-row: 1; }
#parts-category { grid-column: 2; grid-row: 2; }
#clear-search { grid-column: 3; grid-row: 2; }
.form-control { min-height: 44px; font-size: 16px; color: #333; border-color: #888; border-radius: 3px; }
.form-control::placeholder { color: #636363; opacity: 1; }
.btn { min-height: 44px; padding: 11px 18px; white-space: normal; }
.btn-primary { background: #125a35; border-color: #125a35; color: #fff; }
.btn-primary:hover, .btn-primary:focus { background: #0b4427; border-color: #0b4427; }
.parts { margin-bottom: 36px; padding-bottom: 36px; }
.parts .part--content { padding: 16px; }
.parts .part--content h2 { font-size: 22px; line-height: 1.25; margin: 0 0 12px; letter-spacing: 0; text-transform: none; color: #333; }
.parts .part--content p { padding: 0; font-size: 14px; line-height: 1.6; text-transform: none; color: #444; margin-bottom: 8px; }
.parts .part--content .part-code { font-size: 17px; color: #125a35; font-weight: bold; }
.parts .part--img img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; background: #fff; }
.part-item { display: block; height: 100%; }
.part-item:hover { text-decoration: none; }
.part-item:hover h2 { text-decoration: underline; }
#product-preview { padding-top: 20px; }
.breadcrumb { margin-top: 100px; background: transparent; padding-left: 0; }
.part-enquiry { margin: 24px 0; padding-bottom: 20px; border-bottom: 1px solid #ddd; }
.part-enquiry p { max-width: 70ch; line-height: 1.6; }
.support-note { font-size: 14px; line-height: 1.6; margin-top: 12px; }
.enquiry-guidance { margin-top: 36px; padding-top: 18px; border-top: 1px solid #ccc; }
.enquiry-guidance h2 { margin: 16px 0; }
.enquiry-guidance h3 { font-size: 21px; margin: 28px 0 10px; }
.enquiry-guidance p { max-width: 70ch; line-height: 1.65; }
.contact-intro { margin-top: 70px; padding: 40px 0 30px; background: #f2f3f5; }
.contact-intro h1 { font-size: 38px; letter-spacing: 0; }
.contact-intro p { font-size: 18px; line-height: 1.65; }
.contact-intro a { color: #125a35; text-decoration: underline; }
.enquiry-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 60px; padding-top: 30px; }
.enquiry-layout::before, .enquiry-layout::after { display: none; }
.catalogue-tools .btn { width: auto; margin: 0; font-size: 16px; }
.catalogue-tools .form-control, #enquiry-form .form-control { text-transform: none; padding: 10px 12px; }
#enquiry-form textarea { min-height: 150px; height: auto; }
.enquiry-layout aside { margin-top: 0; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.form-group label { display: block; margin-bottom: 7px; font-weight: 700; }
.form-hint { background: #f2f3f5; padding: 16px; line-height: 1.6; }
.support-page { padding-top: 110px; padding-bottom: 40px; }
.support-page p, .support-page ul { max-width: 72ch; line-height: 1.7; }
.support-page h2 { margin-top: 36px; }
.support-page .btn { margin: 4px 8px 4px 0; }
.home-actions { text-align: center; margin: 0 20px 40px; }
.home-actions .btn { margin: 5px; }
@media (max-width: 767px) {
 .catalogue-tools { display: block; }
 .catalogue-tools label { margin-top: 15px; }
 #clear-search { margin-top: 12px; }
 .enquiry-layout { grid-template-columns: 1fr; gap: 20px; }
 .form-grid { grid-template-columns: 1fr; }
 .contact-intro { padding-top: 28px; }
 .contact-intro h1 { font-size: 32px; }
 .contact-intro span { display: none; }
 .contact-intro a { display: block; }
 .parts { gap: 14px; }
 .parts .part--content { padding: 12px; }
 .parts .part--content h2 { font-size: 20px; }
 .part-details-border h3, .part-details-border .pull-right { float: none !important; }
 .product-description { padding-left: 0; padding-right: 0; }
 .navbar-collapse.in { max-height: calc(100vh - 70px); overflow-y: auto; }
 .navbar-nav .dropdown-menu { position: static; float: none; background: #fff; }
 .navbar-nav .dropdown-menu a { color: #333; }
}
@media (max-width: 380px) { .parts { grid-template-columns: 1fr; } }

.part-photo-note { min-height: 160px; padding: 32px 20px; display: flex; align-items: center; justify-content: center; color: #444; background: #f2f3f5; text-align: center; line-height: 1.6; }
.support-page li { margin-bottom: 10px; }

/* SEO pass: headings and breadcrumbs retain the established type and spacing. */
.machine-title { font-size: 30px; line-height: 1.25; margin: 20px 0 16px; }
.guide-breadcrumb { font-size: 14px; line-height: 1.6; margin-bottom: 24px; }
.breadcrumb, .guide-breadcrumb { color: #444; }

.related-content { clear: both; padding-top: 32px; padding-bottom: 36px; }
.related-content h2 { font-size: 26px; line-height: 1.3; }
.related-content p { max-width: 72ch; line-height: 1.65; }
.related-content li { margin-bottom: 10px; }

.product-description a.btn-primary, .product-description a.btn-primary:hover, .product-description a.btn-primary:focus { color: #fff; }

/* Narrow-screen controls and validation focus. */
.home-actions .btn { max-width: calc(100% - 10px); width: auto; }
.product-description .part-enquiry .btn { max-width: 100%; width: auto; white-space: normal; }
main img { max-width: 100%; }
#enquiry-form input, #enquiry-form select, #enquiry-form textarea { scroll-margin-top: 115px; }
@media (max-width: 380px) { .home-actions { margin-left: 15px; margin-right: 15px; } }

/* Intrinsic image sizing and existing footer typography. */
img { height: auto; }
footer .footer-heading { font-size: 18px; }
