/* Typography: Inter 400 for reading, 500 for UI, 600 for headings/buttons.
   Font files are served locally. Inter is distributed under SIL OFL 1.1. */
@font-face {
  font-family: Inter;
  src: url("brand/InterVariable.2bf3d951bf9d.woff2") format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
:root {
  --font-body: Inter, Arial, sans-serif;
  --font-heading: Inter, Arial, sans-serif;
  --text-xs: .75rem;
  --text-sm: .875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --text-h2: clamp(1.5rem, 1.25rem + .555556vw, 1.75rem);
  --text-h1: clamp(1.75rem, 1.5rem + .833334vw, 2.25rem);
  font-family: var(--font-body);
  font-size: 100%;
  line-height: 1.6;
}
body { font-family: var(--font-body); font-size: var(--text-base); font-weight: 400; line-height: 1.6; }
button, input, select, textarea { font-family: var(--font-body); }
input, select, textarea, label, summary { font-weight: 500; }
button, .button, .filter-actions > button { font-family: var(--font-body); font-size: var(--text-base); font-weight: 600; line-height: 1.5; }
b, strong { font-weight: 600; }
nav, .site-search, .product-sections, .equipment-compare, .footer-heading { font-weight: 500; }
input:not([type=checkbox]):not([type=radio]), select, textarea,
.site-search input, .request-form input:not([type=checkbox]):not([type=file]),
.request-form select, .request-form textarea, .filters .catalog-filter-form select {
  font-family: var(--font-body); font-size: var(--text-base); line-height: 1.5;
}
h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); font-weight:600; }
h1, main > h1, .original-home > h1, .hero h1, .editorial-main > h1, .analogue-pending h1 {
  font-size: var(--text-h1); line-height: 1.25; letter-spacing: -.025em;
}
h2, .original-home section > h2, .editorial-body h2, .category-description h2,
.product-details [data-product-panel] > h2, .product-intro > section h2,
.community-newsletter h2 { font-size: var(--text-h2); line-height: 1.3; letter-spacing: -.015em; }
h3, .editorial-body h3, .category-description h3 { font-size: var(--text-xl); line-height: 1.4; }
h4, h5, h6 { font-size: var(--text-lg); line-height: 1.4; }
.product-layout .product-offer h2, .analogue-offer h2, .consultation-card h2,
.company-details-card h2, .catalog-enquiry h2, .filter-empty h2,
.contact-information .contact-card h2 { font-size: var(--text-xl); line-height: 1.4; }
.cards article h2, .catalog-products .cards article h2,
.cards.equipment-cards .equipment-card-copy h2, .cards.news-cards h2,
.home-rail h3, .comfort-grid h3, .photo-grid h3, .partner-card h2,
.document-list h2 { font-size: var(--text-lg); line-height: 1.45; }
.cards.equipment-cards .equipment-card-copy h2, .catalog-products .cards article h2,
.home-rail h3, .photo-grid h3 { font-weight: 600; }
.document-list h2 { font-size: var(--text-lg) !important; }
.editorial-body, .editorial-body p, .editorial-body li, .legacy-content,
.product-details [data-product-panel], .product-key-parameters, .analogue-content,
.purchase-steps p, .purchase-faq p, .home-enquiry > p, .filter-empty p, .category-description {
  font-size: var(--text-base); line-height: 1.65;
}
.editorial-body font, .legacy-content font, .product-details font,
.analogue-content font { font-family: inherit; font-size: inherit; }
/* All table values use the same body face and fixed-width digits.
   A row label describes its value at 16px; only column headings use 14px. */
table { font-family: var(--font-body); font-variant-numeric: tabular-nums; }
table td, table tbody th, table tfoot th, .comparison-table td,
.comparison-table tbody th { font-family: var(--font-body); font-size: var(--text-base); line-height: 1.5; }
table td { font-weight: 400; }
table tbody th, table tfoot th { font-weight: 500; }
table thead th, table thead td, .comparison-table thead th {
  font-family: var(--font-body); font-size: var(--text-sm); line-height: 1.5; font-weight: 600;
}
.equipment-card-price, .product-offer, .phone-list, .header-phone, .footer-phone,
time, .pagination { font-variant-numeric: tabular-nums; }
.crumbs, .product-sku, .equipment-card-sku, .cards.equipment-cards .equipment-card-summary,
.filter-field, .filter-sort, .filter-heading-copy small, .filter-reset,
.field-error, .errorlist, .form-privacy-link, .consent-label,
.home-request-form label, .home-request-form .consent-label, .home-request-form > p,
.newsletter-inline label, .newsletter-inline p, .footer-note, .footer-bottom,
.pagination .pagination-caption, .comparison-scroll-hint {
  font-size: var(--text-sm); line-height: 1.5;
}
.cards.equipment-cards .equipment-card-actions > .button,
.cards.equipment-cards .equipment-compare, .catalog-comparison-actions button,
.header-contact .header-callback, .catalog-panel-heading .all-catalog,
.hero-actions .button, .mobile-banner-caption a { font-size: var(--text-sm); line-height: 1.5; }
.cards.equipment-cards .equipment-card-summary { color: #69717c; }
.cards.equipment-cards .equipment-card-copy h2 { height: 4.35em; }
.site-header .utility-nav { font-size: var(--text-sm); gap: 12px; }
.main-nav > a, .main-nav > .nav-dropdown > summary { font-size: var(--text-base); font-weight: 500; }
.header-phone { font-size: var(--text-xl); line-height: 1.4; }
.site-footer .footer-columns, .site-footer .footer-contact-list { font-size: var(--text-sm); }
.hero-actions .button { display: inline-flex; align-items: center; justify-content: center; text-align: center; }
@media (max-width: 760px) {
  .cards.equipment-cards .equipment-card-copy h2 { height: auto; font-size: var(--text-base); }
  .header-phone { font-size: var(--text-base); }
  .site-header .header-top { grid-template-columns: 150px minmax(0, 1fr); }
  .site-header .header-center .utility-nav { flex-wrap: wrap; gap: 7px 14px; white-space: normal; }
  .site-header .header-contact .header-callback { padding: 9px 8px; min-height: 44px; }
  .hero-actions .button { flex: 1 1 160px; }
  .comparison-table table td, .comparison-table table tbody th { font-size: var(--text-base); }
  .comparison-table table thead th { font-size: var(--text-sm); }
}
@media (max-width: 420px) {
  .site-header .header-top { grid-template-columns: 112px minmax(0, 1fr); gap: 12px; }
  .site-header .brand-group .flag { display: none; }
  .site-header .brand-group .brand, .site-header .brand-group .brand img { width: 112px; max-width: 112px; }
  .header-phone { font-size: var(--text-sm); }
  .cards.equipment-cards .equipment-compare { font-size: var(--text-sm); }
}

/* Repeated blocks share text baselines even when a heading wraps. */
.buying-process .purchase-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px 28px;
  padding: 0;
  margin: 28px 0 0;
  list-style: none;
  counter-reset: purchase-step;
}
.buying-process .purchase-steps > li {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  column-gap: 12px;
  row-gap: 16px;
  min-width: 0;
  counter-increment: purchase-step;
}
.buying-process .purchase-steps > li::before {
  content: counter(purchase-step) ".";
  grid-column: 1;
  grid-row: 1;
  color: #a71922;
  font-size: var(--text-xl);
  font-weight: 600;
  line-height: 1.4;
  font-variant-numeric: tabular-nums;
}
.buying-process .purchase-steps h3 {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  min-block-size: 2.8em;
  font-size: var(--text-xl);
  line-height: 1.4;
}
.buying-process .purchase-steps p {
  grid-column: 2;
  grid-row: 2;
  margin: 0;
  font-size: var(--text-base);
  line-height: 1.65;
}
.comfort-grid { row-gap: 12px; }
.comfort-grid > a { display: grid; grid-template-rows: 64px auto auto 1fr; row-gap: 12px; align-content: start; }
.comfort-grid img.comfort-icon { margin: 0; }
.comfort-grid small { min-block-size: 3em; margin: 0; line-height: 1.5; }
.comfort-grid h3 { min-block-size: 2.9em; margin: 0; }
.comfort-grid p { margin: 0; }
@supports (grid-template-rows: subgrid) {
  .buying-process .purchase-steps > li { grid-template-rows: subgrid; grid-row: span 2; }
  .buying-process .purchase-steps h3 { min-block-size: 0; }
  .comfort-grid > a { grid-template-rows: subgrid; grid-row: span 4; }
  .comfort-grid small, .comfort-grid h3 { min-block-size: 0; }
}
@media (max-width: 1050px) {
  .buying-process .purchase-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 16px; }
  .buying-process .purchase-steps > li:nth-child(n+3) { margin-top: 16px; }
}
@media (max-width: 600px) {
  .buying-process .purchase-steps { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .buying-process .purchase-steps > li { grid-template-rows: auto auto; grid-row: auto; row-gap: 10px; }
  .buying-process .purchase-steps > li:nth-child(n+3) { margin-top: 0; }
  .buying-process .purchase-steps h3 { min-block-size: 0; }
  .comfort-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .comfort-grid > a { grid-template-rows: 64px auto auto auto; grid-row: auto; }
  .comfort-grid small, .comfort-grid h3 { min-block-size: 0; }
}

/* The leasing page remains editable as ordinary CMS content. */
.leasing-page { max-width: 1040px; margin-inline: auto; }
.leasing-page .feature-split { grid-template-columns: minmax(240px, .85fr) minmax(0, 1.15fr); gap: 40px; padding: 28px; border: 1px solid #e6e7e9; border-radius: 16px; }
.leasing-page .feature-split > img { width: 100%; height: auto; aspect-ratio: 3.2 / 1; object-fit: cover; object-position: center 46%; border-radius: 0; }
.leasing-page .editorial-body dl { display: grid; grid-template-columns: 210px minmax(0, 1fr); column-gap: 32px; margin: 24px 0 36px; }
.leasing-page .editorial-body dt, .leasing-page .editorial-body dd { margin: 0; padding: 22px 0; border-top: 1px solid #e6e7e9; }
.leasing-page .editorial-body dt { font-size: var(--text-lg); font-weight: 600; line-height: 1.45; }
.leasing-page .editorial-body dd { font-size: var(--text-base); line-height: 1.65; }
.leasing-page .editorial-body > div:not(.feature-split) { margin: 26px 0; padding: 28px 32px; border-radius: 14px; background: #f7f7f8; }
.leasing-page .editorial-body > div:not(.feature-split) h2 { margin: 0 0 16px; }
.leasing-page .editorial-body > div:not(.feature-split) > p:first-child { margin-top: 0; }
.leasing-page .editorial-body > div:not(.feature-split) > p:last-child { margin-bottom: 0; }
.leasing-page .editorial-body a[href^="tel:"], .leasing-page .editorial-body a[href^="mailto:"] { font-weight: 500; }
.leasing-page .editorial-body a[href^="mailto:"][href*="?subject="] { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 12px 22px; border-radius: 8px; background: #d92125; color: #fff; font-size: var(--text-base); font-weight: 600; line-height: 1.5; text-align: center; text-decoration: none; }
.leasing-page .editorial-body a[href^="mailto:"][href*="?subject="]:hover { background: #b81c24; }
@media (max-width: 760px) {
  .leasing-page .feature-split { grid-template-columns: minmax(0, 1fr); gap: 22px; padding: 22px; }
  .leasing-page .feature-split > img { max-width: 380px; margin-inline: auto; }
  .leasing-page .feature-split h2 { font-size: var(--text-xl); }
  .leasing-page .editorial-body dl { grid-template-columns: minmax(0, 1fr); }
  .leasing-page .editorial-body dt { padding: 20px 0 10px; }
  .leasing-page .editorial-body dd { border-top: 0; padding: 0 0 20px; }
  .leasing-page .editorial-body > div:not(.feature-split) { padding: 22px; }
  .leasing-page .editorial-body a[href^="mailto:"][href*="?subject="] { width: 100%; }
}
/* Customer-approved commercial and service pages. */
.customer-terms { max-width: 1040px; margin-inline: auto; overflow-wrap: break-word; }
.customer-terms > h2 { padding-top: 12px; border-top: 1px solid #e7e7e7; }
.customer-terms > h2:first-child { border-top: 0; }
.customer-terms > p:first-child { font-size: var(--text-lg); line-height: 1.65; }
.customer-terms li { padding-left: 3px; }
.customer-terms .detail-note:has(> table) { display: block; max-width: 100%; overflow-x: auto; padding: 0; background: transparent; border: 1px solid #e3e3e3; border-radius: 10px; }
.customer-terms table { width: 100%; min-width: 580px; margin: 0; border-collapse: collapse; }
.customer-terms thead { background: #f5f5f5; text-align: left; }
.customer-terms td, .customer-terms th { padding: 14px 16px; border: 0; border-bottom: 1px solid #e5e5e5; }
.customer-terms tbody tr:last-child td { border-bottom: 0; }
.customer-terms td:nth-child(2) { white-space: nowrap; }
@media (max-width: 600px) {
  .customer-terms > p:first-child { font-size: var(--text-base); }
  .customer-terms > h2 { margin-top: 28px; }
}
.table-scroll tr.specification-group > th { width: auto; padding-block: 14px; background: #f3f4f5; font-weight: 600; }
.original-home .section-link > a.catalog-overview-link{color:#b71c24;font-weight:600;text-decoration:none}
.original-home .section-link > a.catalog-overview-link:hover{color:#8e1019;text-decoration:underline;text-underline-offset:4px}
.original-home .section-link > a.catalog-overview-link:focus-visible{outline:2px solid #b71c24;outline-offset:5px;border-radius:3px}
