/* Shared typography and approved interface refinements, September 2026. */
@font-face {
  font-family: Montserrat;
  src: url('/assets/fonts/montserrat-variable.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
html { scrollbar-gutter: stable; scroll-padding-top: 108px; }
body, body.page-body, button, input, select, textarea,
h1, h2, h3, h4, .metric-value { font-family: Montserrat, Arial, sans-serif; }
body .site-header, body .page-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
  min-height: 86px;
  padding: 8px 2.5vw;
  background: #111;
  border-bottom: 3px solid var(--red, #c73126);
  backdrop-filter: none;
  color: #fff;
  z-index: 100;
}
body .site-header .brand-logo, body .page-header .brand-logo {
  display: block; width: 112px; height: 58px; object-fit: contain;
}
body .desktop-nav, body .page-nav {
  display: flex; align-items: center; justify-content: center;
  flex-wrap: nowrap; gap: clamp(10px, 1vw, 20px);
}
body .desktop-nav a, body .page-nav a {
  font-size: 14px; font-weight: 600; line-height: 1.4;
  white-space: nowrap; color: #fff;
}
body .header-actions, body .page-header-actions {
  display: flex; align-items: center; justify-content: flex-end; gap: 12px;
}
body .site-header .compact, body .page-header .compact {
  min-height: 42px; padding: 10px 14px; font-size: 14px; box-shadow: none;
}
body .mobile-menu-button, body .page-menu-button { display: none; }
body .mobile-nav, body .mobile-site-nav {
  grid-column: 1 / -1; background: #111; color: #fff;
}
body .mobile-nav[hidden], body .mobile-site-nav[hidden] { display: none; }
body .mobile-nav a, body .mobile-site-nav a {
  color: #fff; font-size: 16px; min-height: 44px; display: flex; align-items: center;
}
.hero { grid-template-columns: minmax(0, 1fr); overflow: clip; }
.hero-media { transform: none; }
.hero-content { max-width: 1050px; }
body .hero h1 { max-width: 1050px; overflow-wrap: normal; word-break: normal; font-size: clamp(30px, 4.2vw, 78px); line-height: 1.06; }
body .page-header .compact { display: inline-flex; }
body .eyebrow { color: #bc2621; font-size: clamp(16px, 1.35vw, 21px); font-weight: 800; }
body .hero .eyebrow { color: #ff6b61; }
body .recommendation.is-updating { animation: none; transform: none; }
body .recommendation .primary-button,
body .recommendation .primary-button:hover,
body .recommendation .primary-button:focus { box-shadow: none; }
.project-measure { white-space: nowrap; }
body .project-board { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
body .project-card, body .project-card.is-active {
  background: #fff; color: #171717; border: 1px solid #c9c2b7;
  border-radius: 4px; box-shadow: none; min-height: 300px;
}
body .project-card:hover, body .project-card.is-active { border-color: #bc2621; transform: none; }
body .project-card-body { padding: 22px 18px; gap: 14px; }
body .project-card-top { display: flex; flex-direction: column; align-items: flex-start; width: 100%; gap: 10px; }
body .project-card .project-place, body .project-card.is-active .project-place { order: 3; font-size: 12px; line-height: 1.5; color: #a52a23; }
body .project-logo, body .project-card:hover .project-logo, body .project-card.is-active .project-logo {
  width: 100%; height: 92px; padding: 0; border: 0; border-radius: 0;
  background: none; box-shadow: none; transform: none; justify-items: start;
}
body .project-logo img { width: 160px; max-width: 100%; height: 64px; object-fit: contain; object-position: left center; }
body .project-logo img[src$="gridnev.png"] { width: 140px; }
body .project-logo img[src$="pokrovskij-hleb.webp"] { width: 165px; height: 93px; }
/* Compensate for whitespace inside source files, without distorting the marks. */
body .project-logo img[src$="proletarec.jpg"] { width: 103px; height: 103px; }
body .project-logo img[src$="inskoy.png"], body .project-logo img[src$="inskoy-mobile.png"] { width: 113px; height: 113px; }
body .project-logo { overflow: hidden; align-content: center; }
body .project-logo img[src$="kolomensky.jpg"], body .project-logo img[src$="sibirskij-gurman.png"] { width: 190px; height: 190px; max-width: none; max-height: none; }
body .project-parent-logo[src$="kolomensky.jpg"], .project-listing-logo[src$="kolomensky.jpg"] { object-fit: cover; object-position: center; }
body .project-logo.is-text { background: none; }
body .project-card strong { font-size: clamp(15px, 1.2vw, 19px); line-height: 1.4; overflow-wrap: normal; word-break: normal; }
body .project-card small, body .project-card.is-active small { color: #565650; font-size: 14px; line-height: 1.55; overflow-wrap: normal; word-break: normal; }
body .project-parent-logo { display: block; width: 100px; height: 32px; object-fit: contain; object-position: left center; }
.project-detail-logo { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-bottom: 20px; }
.project-detail-logo > img { max-width: 180px; max-height: 110px; object-fit: contain; }
.project-detail-logo > .project-parent-logo { max-width: 100px; max-height: 36px; }
body .project-dialog-image, body .project-page .page-gallery-main {
  width: 100%; height: auto; aspect-ratio: 16 / 9; min-height: 0; max-height: none;
  object-fit: cover; object-position: center; background: #f2f0eb;
}
body .project-dialog-summary .dialog-specs { margin-top: 18px; }
body .project-summary-specs div { grid-template-columns: 1fr; gap: 6px; }
body .project-facts, body .project-page .page-content-grid { grid-template-columns: 1fr; }
body .project-facts > section, body .project-page .page-content-grid > section { min-width: 0; }
body .contact-dialog { max-width: 680px; }
body .contact-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
body .contact-actions a { min-height: 52px; text-align: center; justify-content: center; }
body .contact-status:empty { display: none; }
.project-listing-logo { display: block; width: 150px; height: 76px; object-fit: contain; object-position: left center; margin-bottom: 16px; }
.cases-page .listing-image { aspect-ratio: 16 / 10; }
.cases-page .listing-image img { object-fit: cover; object-position: center; }
@media (max-width: 1660px) {
  body .site-header .header-phone, body .page-header .header-phone { display: none; }
}
@media (max-width: 1240px) {
  body .site-header, body .page-header { grid-template-columns: 1fr auto; min-height: 78px; }
  body .desktop-nav, body .page-nav { display: none; }
  body .mobile-menu-button, body .page-menu-button { display: grid; }
  body .mobile-nav, body .mobile-site-nav { position: static; max-height: calc(100svh - 96px); overflow-y: auto; grid-template-columns: 1fr 1fr; padding: 12px 0; }
  body .project-board { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  body .project-board { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  body .project-card-body { padding: 16px 12px; }
  body .project-card strong { font-size: 15px; }
  body .project-card small { font-size: 13px; }
  body .project-logo, body .project-card:hover .project-logo, body .project-card.is-active .project-logo { height: 80px; }
  body .contact-actions { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  #solution-title { font-size: 28px; line-height: 1.12; }
  body .project-board { grid-template-columns: 1fr; }
  body .site-header .compact, body .page-header .compact { font-size: 12px; padding: 8px 10px; }
}

/* Lilia's approved 02.10.2026 corrections, scoped to the existing site. */
.home-body .hero h1 { font-size: clamp(30px, 3.5vw, 60px); }
.home-body main h2 { font-size: clamp(28px, 3vw, 46px); line-height: 1.12; }
.home-body main h3 { font-size: clamp(18px, 1.4vw, 21px); line-height: 1.15; }
.home-body .section-heading h2,
.home-body .catalog-launch h2,
.home-body .service-section h2,
.home-body .about-section h2 { font-size: clamp(28px, 3vw, 46px); line-height: 1.12; }
.home-body .section-heading-flow { display: block; max-width: none; }
.home-body .section-heading-flow > div { display: contents; }
.home-body .section-heading-flow .eyebrow { display: block; }
.home-body .section-heading-flow h2 { display: inline; max-width: none; }
.home-body .section-heading-flow > p { display: inline; max-width: none; margin-left: 24px; font-size: 18px; line-height: 1.65; }
/* 06.10.2026 screenshot correction: the directions description starts below its title. */
.home-body #directions .section-heading-flow h2,
.home-body #directions .section-heading-flow > p,
.home-body #training .section-heading-flow h2,
.home-body #training .section-heading-flow > p { display: block; }
.home-body #directions .section-heading-flow > p,
.home-body #training .section-heading-flow > p { margin: 16px 0 0; }
.home-card-link { display: block; min-width: 0; color: inherit; text-decoration: none; }
.home-card-link > article, .home-card-link > div { height: 100%; }
.home-card-link:hover h3, .home-card-link:hover strong,
a.training-card:hover h3, a.news-card:hover h3, a.listing-card:hover h2 { color: var(--red); }
a.training-card, a.news-card, a.listing-card { color: inherit; text-decoration: none; }
a.listing-card .listing-image { display: block; }
.home-card-link:focus-visible, a.training-card:focus-visible,
a.news-card:focus-visible, a.listing-card:focus-visible { outline: 3px solid var(--red); outline-offset: 4px; }
body .primary-button, body .primary-button:hover,
body .primary-button:active, body .primary-button:focus-visible { box-shadow: none; }
.contact-dialog[open]:not(.is-closing) { animation: contactEnterOnce 160ms ease-out both; }
.contact-dialog[open]::backdrop { animation-duration: 160ms; }
@keyframes contactEnterOnce {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
body .catalog-solutions__intro { grid-template-columns: minmax(0, 1fr); }
body .catalog-solutions__intro h1,
body .catalog-solutions__equipment-intro h1,
body .catalog-static__hero h1 { max-width: none; font-size: clamp(32px, 3.6vw, 56px); line-height: 1.08; text-wrap: pretty; }
body .catalog-solutions__intro p,
body .catalog-solutions__equipment-intro > p:last-child,
body .catalog-static__hero p { max-width: none; }
.fermentation-title-band { width: 100%; max-width: none; padding: clamp(30px, 5vw, 68px); background: #202326; color: #fff; }
.fermentation-title-band,
body .catalog-solutions__intro,
body .catalog-solutions__equipment-intro { min-height: 300px; padding: clamp(28px, 4.5vw, 56px); align-content: center; }
body .catalog-solutions__intro h1,
body .catalog-solutions__equipment-intro h1 { font-weight: 850; letter-spacing: -.025em; }
.fermentation-title-band h1 { max-width: none; font-size: clamp(32px, 3.6vw, 56px); font-weight: 850; line-height: 1.08; letter-spacing: -.025em; }
.fermentation-title-band > p:last-child { max-width: none; color: rgba(255, 255, 255, .76); }
.fermentation-title-band .eyebrow { color: #ef6355; }
.fermentation-page-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 36px; }
.fermentation-page-grid > section { min-width: 0; padding: 0; }
.fermentation-page-grid > section:last-child { display: flex; flex-direction: column; }
.fermentation-page-grid > section:last-child .page-specs { flex: 1; display: grid; grid-template-rows: repeat(4, minmax(0, 1fr)); }
.fermentation-page-grid > section:last-child .page-specs > div { align-content: center; }
.fermentation-page-grid h2 { font-size: clamp(21px, 2vw, 28px); line-height: 1.2; }
.fermentation-page-grid ul { margin-top: 0; }
.fermentation-page-grid li { padding-block: 7px; line-height: 1.8; }
.fermentation-page-grid .page-specs { margin-top: 0; }
/* One uninterrupted entrance per dialog; removing is-opening must not restart modalIn. */
.catalog-dialog[open]:not(.is-opening):not(.is-closing),
.catalog-solutions__variants-dialog[open]:not(.is-opening):not(.is-closing) { opacity: 1; transform: none; animation: none; }
.catalog-dialog[open]:not(.is-opening):not(.is-closing)::backdrop,
.catalog-solutions__variants-dialog[open]:not(.is-opening):not(.is-closing)::backdrop { opacity: 1; animation: none; }
.catalog-dialog[open].is-opening { animation: catalogModalFromTrigger 360ms var(--ease-out) both; }
.catalog-solutions__variants-dialog[open].is-opening { animation: catalogVariantsFromTile 360ms var(--ease-out) both; }
.catalog-solutions__variants-dialog[open].is-opening::backdrop { opacity: 1; animation: catalogVariantsBackdropIn 280ms var(--ease-out) both; }
.page-main > .catalog-solutions__families { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid #d6d2ca; border-left: 1px solid #d6d2ca; }
.page-main > .catalog-solutions__families a { min-height: 154px; display: flex; flex-direction: column; padding: 20px; border-right: 1px solid #d6d2ca; border-bottom: 1px solid #d6d2ca; background: #f8f7f3; color: #202324; text-decoration: none; transition: background-color 180ms ease, color 180ms ease; }
.page-main > .catalog-solutions__families a:hover,
.page-main > .catalog-solutions__families a:focus-visible,
.page-main > .catalog-solutions__families a.is-active { background: #202324; color: #fff; }
.page-main > .catalog-solutions__families span { color: #ef6355; font-size: 11px; font-weight: 850; }
.page-main > .catalog-solutions__families strong { max-width: 18ch; margin-top: 14px; font-size: clamp(18px, 1.65vw, 25px); line-height: 1.05; letter-spacing: -.025em; }
.page-main > .catalog-solutions__families small { margin-top: auto; padding-top: 16px; font-size: 12px; line-height: 1.35; }
.project-linked-capacity { font-weight: 700; }
.home-body .catalog-flow, .home-body .fermentation-console,
.home-body .training-console, .home-body .news-console { position: relative; }
.home-body .card-surface-link { position: absolute; inset: 0; z-index: 3; }
.home-body .training-console .primary-button, .home-body .news-console .primary-button { position: static; transform: none; }
.home-body .training-console .primary-button::after, .home-body .news-console .primary-button::after { position: absolute; inset: 0; content: ""; }
.home-body .catalog-flow:has(:focus-visible), .home-body .fermentation-console:has(:focus-visible),
.home-body .training-console:has(:focus-visible), .home-body .news-console:has(:focus-visible) { outline: 3px solid var(--red); outline-offset: 4px; }
.home-body .benefit-list > a:nth-child(2) .lucide { color: var(--steel); }
.home-body .benefit-list > a:nth-child(3) .lucide { color: var(--green); }
@media (max-width: 1060px) {
  .page-main > .catalog-solutions__families { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .fermentation-page-grid { grid-template-columns: minmax(0, 1fr); }
  .fermentation-page-grid > section:last-child .page-specs { flex: none; }
  .home-body .section-heading-flow h2, .home-body .section-heading-flow > p { display: block; }
  .home-body .section-heading-flow > p { margin: 16px 0 0; font-size: 16px; }
  .page-main > .catalog-solutions__families { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-main > .catalog-solutions__families a { min-height: 144px; padding: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .contact-dialog[open]:not(.is-closing), .contact-dialog[open]::backdrop { animation: none; }
  .page-main > .catalog-solutions__families a { transition: none; }
}
