/* Shared type scale. Loaded last so compact component and locale styles cannot
   shrink reading text or controls below the agreed sizes. */
:root {
  --font-sans: 'IBM Plex Sans', 'Noto Sans Armenian', sans-serif;
  --type-body: 1rem;
  --type-control: .9375rem;
  --type-label: .875rem;
  --type-caption: .8125rem;
  /* Secondary copy remains readable on white and the pale grey page surfaces. */
  --text-secondary: #596b78;
}
[lang="hy"] {
  --font-sans: 'Noto Sans Armenian', 'IBM Plex Sans', sans-serif;
}
[lang="ru"], :where([lang="en"]) {
  --font-sans: 'IBM Plex Sans', 'Noto Sans Armenian', sans-serif;
}

body { font-size: var(--type-body); }
/* Decorative overlines were removed from the approved hierarchy. */
.eyebrow, .section-kicker, .page-kicker { display: none !important; }

/* Navigation keeps a readable scale in every language. */
.nav-link, html:not([lang="en"]) .nav-link { font-size: var(--type-control); font-weight: 500; }
.nav-link::after { bottom: -10px; }
.header-quote, html:not([lang="en"]) .header-quote { font-size: var(--type-label); min-height: 48px; max-width: 220px; }
.language-trigger { font-size: .75rem; color: var(--text-secondary); }
.utility-inner { min-height: 32px; height: auto; padding-block: 5px; font-size: .75rem; }
.utility-phone { font-size: .8125rem; white-space: nowrap; }
.compact-menu > div > button, .language-menu > button { font-size: var(--type-control); line-height: 1.5; }
.language-menu > p { font-size: var(--type-label); }
.equipment-rail-heading h2, .equipment-panel-heading h2 { font-size: 1.875rem; line-height: 1.2; letter-spacing: -.025em; }
.equipment-tabs { grid-template-rows: repeat(var(--category-rows, 8), minmax(52px, 1fr)); overflow-y: auto; overscroll-behavior: contain; }
.equipment-tabs > button { font-size: .875rem; line-height: 1.4; padding-block: 10px; }
.equipment-feature-body h3 { font-size: 1.625rem; }
.equipment-feature-body p, .equipment-feature-body .button { font-size: var(--type-label); }
.equipment-feature-footer > span { font-size: .75rem; }

/* Clear display hierarchy with less tightly packed letterforms. */
.hero-copy h1 { letter-spacing: -.035em; line-height: 1.04; }
.page-hero h1 { font-size: clamp(2.625rem, 5.2vw, 4.75rem); letter-spacing: -.03em; line-height: 1.12; overflow-wrap: anywhere; }
/* Translated headings can also exceed narrow home and enquiry columns. */
.hero-copy h1, .section-heading h2, .why-heading h2,
.brands-heading h2, .contact-inner h2, .enquiry-page h2 { overflow-wrap: anywhere; }
.brands-heading > div:first-child { min-width: 0; }
.product-summary h1 { font-size: clamp(2.75rem, 4.4vw, 4rem); font-weight: 500; letter-spacing: -.03em; line-height: 1.12; text-wrap: balance; }
.product-key-features h2 { font-size: 1.625rem; line-height: 1.3; }
.product-panel h2 { font-size: clamp(2rem, 3vw, 2.625rem); letter-spacing: -.025em; }
.catalog-product-copy h3 { font-size: clamp(1.5rem, 1.9vw, 1.75rem); line-height: 1.25; letter-spacing: -.02em; font-weight: 500; }
.catalog-results-top h2, .catalog-section-caption h2 { font-size: 2rem; line-height: 1.25; }
.equipment-card h3 { font-size: 1.25rem; line-height: 1.35; }
.showcase-content { min-width: 0; }
.showcase-content h3 { overflow-wrap: anywhere; }
.value-item h3 { font-size: 1.5rem; }
.accessory-card h2, .accessory-compatible-grid h3, .enquiry-item h3 { font-size: 1.5rem; line-height: 1.3; }

/* Reading copy on home, catalogue, product and editorial pages. */
.hero-copy > p, .page-lead, .page-hero-aside, .page-card p, .page-empty p, .page-cta p,
.section-heading-aside p, .why-heading > p, .value-item p, .showcase-content p, .lifecycle-copy p,
.contact-inner > div > p, .catalog-brand-card-copy p,
.product-short-description, .product-key-features li, .product-full-description,
.product-content-list, .product-pending, .product-panel-heading p,
.content-body-copy, .content-section-heading > p, .content-service-card p,
.content-preparation > div > p, .content-checklist li, .content-policy-copy p,
.enquiry-empty-selection p, .enquiry-form-heading > p, .enquiry-process > p,
.enquiry-contact-info > p, .enquiry-section-intro, .enquiry-confirmation > p,
.accessory-card p, .accessory-detail-copy > p {
  font-size: var(--type-body); line-height: 1.75;
}
.hero-copy > p { max-width: 440px; }
.page-lead { max-width: 680px; }

/* Controls, filters and model details. */
.button, .text-link, .hero-actions .button, .consultation-link,
.showcase-content .button, .section-heading-aside .text-link,
.brands-bottom .text-link, .contact-action > .button, .page-cta .button,
.product-primary-actions .button, .product-brochure-link, .product-tabs > button,
.catalog-filter-buttons > .button, .catalog-product-actions > .text-link, .catalog-compare-button, .catalog-reset,
.catalog-page-prev, .catalog-page-next, .search-types a, .search-view-all,
.content-card-link, .content-policy-nav > a, .content-about-nav > a,
.enquiry-review-actions > .button, .enquiry-contact-info .text-link {
  font-size: var(--type-control); line-height: 1.5;
}
.button { white-space: normal; }
.button .icon, .text-link .icon { flex-shrink: 0; }
.catalog-category-strip > a { flex-basis: 170px; font-size: var(--type-label); }
.catalog-family-strip > a { flex-basis: 185px; }
.catalog-family-strip > a > span, .catalog-sidebar-families > a,
.catalog-field, .catalog-sort, .catalog-filter-group legend, .accessory-filter label,
.enquiry-page .enquiry-field, form label { font-size: var(--type-label); line-height: 1.5; }
.catalog-filter-details > summary { font-size: 1.125rem; }
.catalog-field input, .catalog-field select, .catalog-sort select,
.inner-page input, .inner-page select, .inner-page textarea,
.enquiry-page .enquiry-field input, .enquiry-page .enquiry-field select,
.enquiry-page .enquiry-field textarea, form input, form textarea {
  font-size: var(--type-body); line-height: 1.5;
}
.catalog-sort select { width: 185px; height: 44px; }
.catalog-search-input input::placeholder,
.enquiry-page .enquiry-field input::placeholder, .enquiry-page .enquiry-field textarea::placeholder { font-size: inherit; }
.product-identifiers, .product-spec-table, .product-spec-table th, .product-spec-table td, .accessory-facts > div,
.catalog-comparison-table th, .catalog-comparison-table td { font-size: var(--type-label); line-height: 1.7; }
.product-identifiers { letter-spacing: .01em; }
.product-spec-table { font-variant-numeric: tabular-nums; }

/* Secondary information stays readable without competing with model names. */
.page-breadcrumbs, .sample-notice,
.catalog-product-brand, .catalog-product-category, .catalog-results-top p,
.catalog-configuration-note, .catalog-content-note, .catalog-active-filters,
.product-key-features > p, .product-brochure-link small,
.product-brand > small, .product-gallery-note, .product-gallery-caption,
.product-gallery-open-label, .product-save-status,
.enquiry-page .enquiry-field > small, .enquiry-page .enquiry-field textarea + small,
.enquiry-field-hint, .enquiry-form-footer > p, .enquiry-demo-note, .enquiry-process li,
.enquiry-item-family, .enquiry-steps li, .enquiry-remove, .enquiry-quantity,
.enquiry-item-count, .enquiry-error, .enquiry-local-notice,
.search-page-summary, .search-page-results p, .route-feedback,
.accessory-compatible-grid small, .accessory-compatible-grid p {
  font-size: var(--type-caption); line-height: 1.65;
}
.catalog-product-brand > span, .catalog-visual-caption,
.catalog-sidebar-families > a > span, .stage-label small, .product-gallery-dialog-help { font-size: .75rem; line-height: 1.6; }
.stage-label { font-size: var(--type-label); }
.lifecycle-tabs > button, .lifecycle-action { font-size: var(--type-label); }
.page-pagination a, .catalog-pagination > div > a { font-size: var(--type-label); min-width: 44px; min-height: 44px; }

/* The configuration is a working document: options and part numbers need space. */
.configurator-step-title { font-size: 1.5rem; letter-spacing: -.015em; }
.configurator-option-select strong, .configurator-variant strong,
.configurator-included strong, .configurator-included a, .configurator-summary-model strong { font-size: var(--type-body); }
.configurator-step legend, .configurator-base-label, .configurator-summary-items a,
.configurator-summary-items strong, .configurator-dialog .configurator-summary-items a,
.configurator-dialog .configurator-summary-items strong, .configurator-none,
.configurator-actions > .button, .configurator-secondary-actions > .button,
.configurator-preset-buttons > button, .configurator-catalogue-link { font-size: var(--type-label); line-height: 1.6; }
.configurator-option-select small, .configurator-option-note, .configurator-variant small,
.configurator-group-note, .configurator-note, .configurator-included small,
.configurator-included-quantity, .configurator-part-link, .configurator-quantity,
.configurator-presets > p, .configurator-summary-model small, .configurator-summary-items small,
.enquiry-item .configurator-summary-items small, .configurator-summary-section > h4,
.configurator-summary-items .configurator-summary-quantity, .configurator-summary-empty,
.configurator-validity, .configurator-actions > p, .configurator-share label,
.configurator-share > button, .configurator-action-status, .configurator-inline-errors,
.configurator-errors { font-size: var(--type-caption); line-height: 1.65; }
.configurator-quantity input, .configurator-share input { font-size: 1rem; min-height: 44px; }
.configurator-summary-section > h4 { text-transform: none; letter-spacing: 0; font-weight: 600; }
.configurator-option-select small { letter-spacing: .01em; }
.configurator-quantity small { font-size: .75rem; }

.footer-column h3, .footer-contact h3 { font-size: 1rem; }
.footer-column > a, .footer-column > button, .footer-contact p, .footer-brand p,
.footer-contact .text-link { font-size: var(--type-label); line-height: 1.7; }
.footer-bottom, .footer-bottom button { font-size: .75rem; line-height: 1.6; }

/* Switch to the existing compact navigation before translated links get crowded. */
@media (max-width: 1280px) {
  .desktop-nav { display: none; }
  .mobile-toggle { display: grid; }
  .mobile-menu:not([hidden]) { display: block; }
  .mobile-main > a, .mobile-main > button, .mobile-main > details > summary { font-size: 1.0625rem; }
  .mobile-category > summary, .mobile-main .mobile-category > div > button,
  .mobile-main details > div > button, .mobile-languages button { font-size: .9375rem; line-height: 1.5; }
  .mobile-menu { position: absolute; top: 100%; right: 0; left: 0; max-height: calc(100dvh - var(--header-height)); overflow-y: auto; background: white; border-top: 1px solid var(--line); box-shadow: 0 15px 25px #15223912; }
  .mobile-main { max-width: 680px; margin: auto; padding: 18px 30px 30px; }
  .mobile-main > a, .mobile-main > button, .mobile-main > details > summary { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 15px 0; border-bottom: 1px solid var(--line); font-weight: 600; text-align: left; }
  .mobile-main > details > summary { list-style: none; cursor: pointer; }
  .mobile-main > details > summary::after { content: '+'; font-size: 20px; font-weight: 400; }
  .mobile-main > details[open] > summary::after { content: '−'; }
  .mobile-main details > div > button, .mobile-main details > button { display: block; padding: 12px 15px; text-align: left; width: 100%; }
}
@media (max-width: 760px) {
  .nav-inner { width: calc(100% - 32px); gap: 10px; }
  .nav-actions { gap: 6px; }
  .logo { width: clamp(104px, 30vw, 145px); }
  .header-quote, html:not([lang="en"]) .header-quote { font-size: .8125rem; padding: 10px 12px; line-height: 1.35; max-width: 170px; min-height: 44px; }
  .header-quote .icon { display: none; }
  .utility-inner { font-size: .6875rem; gap: 6px; }
  .utility-phone { font-size: .75rem; }
  .hero-copy h1 { font-size: clamp(2.625rem, 11.5vw, 4.25rem); }
  .hero-actions { flex-wrap: wrap; gap: 18px; }
  .hero-actions .button, .consultation-link { font-size: .875rem; }
  .hero-copy > p { max-width: 100%; }
  .page-hero h1 { font-size: clamp(2.5rem, 9vw, 3.375rem); }
  .product-summary h1 { font-size: clamp(2.5rem, 9vw, 3rem); }
  .catalog-product-copy h3 { font-size: 1.5rem; }
  .equipment-card h3 { font-size: 1.125rem; }
  .equipment-grid { grid-template-columns: minmax(0, 1fr); }
  .equipment-card { grid-template-columns: 24px minmax(0, 1fr) 16px; gap: 8px 12px; min-height: 104px; }
  .equipment-card h3 { overflow-wrap: anywhere; }
  .lifecycle-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lifecycle-tabs > button { min-width: 0; padding: 16px; overflow-wrap: anywhere; border-bottom: 1px solid #c8d0d2; }
  .lifecycle-tabs > button:nth-child(2) { border-right: 0; }
  .catalog-results-top { flex-wrap: wrap; gap: 20px; }
  .catalog-sort { flex-wrap: wrap; }
  .product-primary-actions { grid-template-columns: 1fr; }
  .product-mobile-cta .button, .configurator-mobile-bar > .button { font-size: .875rem; line-height: 1.5; }
  .product-mobile-cta > span, .configurator-mobile-bar > button:first-child { font-size: .8125rem; }
  .configurator-mobile-bar > button:first-child small { font-size: .75rem; }
  .product-spec-table th, .product-spec-table td { padding: 15px 12px; }
  .footer-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-brand, .footer-contact { grid-column: 1 / -1; }
  .footer-bottom, .footer-bottom > div { flex-wrap: wrap; }
}
@media (max-width: 380px) {
  .nav-inner { width: calc(100% - 24px); gap: 6px; }
  .nav-actions { gap: 4px; }
  .header-quote, html:not([lang="en"]) .header-quote { max-width: 126px; padding-inline: 8px; }
}

/* Armenian display glyphs need more vertical room than the Latin defaults. */
html[lang="hy"] .hero-copy h1 {
  font-size: clamp(2rem, 4.2vw, 3.875rem);
}
html[lang="hy"] .hero-copy .hero-healthcare { max-width: 500px; }
html[lang="hy"] .page-hero h1 {
  font-size: clamp(2.5rem, 5vw, 4.6rem);
  line-height: 1.25;
  letter-spacing: -.015em;
}
html[lang="hy"] .page-section h2,
html[lang="hy"] .content-section-heading h2 {
  line-height: 1.3;
  letter-spacing: -.015em;
}
html[lang="hy"] .product-summary h1 {
  line-height: 1.25;
  letter-spacing: -.015em;
}
html[lang="hy"] .hero-copy h1,
html[lang="hy"] .why-heading h2,
html[lang="hy"] .contact-inner h2,
html[lang="hy"] .section-heading h2,
html[lang="hy"] .lifecycle-copy h2,
html[lang="hy"] .showcase-content h3,
html[lang="hy"] .value-item h3,
html[lang="hy"] .brands-heading h2 {
  line-height: 1.25;
  letter-spacing: -.015em;
}
@media (max-width: 760px) {
  html[lang="hy"] .hero-copy h1 { font-size: clamp(1.875rem, 8vw, 3rem); }
  html[lang="hy"] .page-hero h1 { font-size: clamp(2.35rem, 8.5vw, 3.2rem); }
}

/* Tablets (761–1100px): translated hero actions wrap before they reach the product photograph. */
@media (min-width: 761px) and (max-width: 1100px) {
  .hero-actions { flex-wrap: wrap; max-width: 400px; row-gap: 14px; }
  html[lang="hy"] .hero-copy .hero-healthcare { max-width: 400px; }
}

/* Small links keep a touch target of at least 24px (WCAG 2.2, 2.5.8). */
.footer-phone, .footer-email { display: flex; align-items: center; width: max-content; max-width: 100%; min-height: 24px; }
.footer-bottom button, .back-top { display: inline-flex; align-items: center; min-height: 24px; }
.footer-location { align-items: flex-start; line-height: 1.5; }
.enquiry-contact-info > p a { color: var(--blue); font-weight: 600; }
.enquiry-contact-info > p a:hover { color: var(--red); }
.page-breadcrumbs a { display: inline-block; padding-block: 1px; }
.product-relation-heading > .text-link, .footer-location, .since-mark > span:last-child { font-size: .75rem; }
.contact-action > span { font-size: .8125rem; }
@media (max-width: 760px) { .footer-brand .footer-location { display: flex; } }
