/* One size scale and content-led geometry. Approved families and weights stay inherited. */
:root {
  --quality-hero:clamp(36px, calc(17.5px + 6vw), 108px);
  --quality-section:clamp(34px, calc(26px + 2.65vw), 64px);
  --quality-secondary:clamp(32px, calc(27.5px + 1.2vw), 44px);
  --quality-card:clamp(34px, calc(34px + .55vw), 42px);
  --quality-step:clamp(30px, calc(27px + .5vw), 34px);
  --quality-dialog:clamp(28px, calc(25.2px + .75vw), 36px);
}
html[lang] { --quality-optical:1; }

.home-page .hero {
  display:flex;
  flex-direction:column;
  min-height:0;
  min-block-size:0;
}
.home-page .hero-content {
  padding-block:clamp(42px, 4.6vw, 72px) 40px;
}
html[lang] .home-page .hero h1 {
  line-height:1.08 !important;
  min-block-size:2.16em !important;
}
html[lang] .home-page .hero h1 em {
  font-size:1em;
  line-height:inherit;
}
.home-page .hero-description {
  max-inline-size:430px;
  min-block-size:3em;
}
.home-page .hero-foot { margin-top:auto; }

/* Shared type roles include the process headings, which previously bypassed the scale. */
html[lang] .home-page :is(.section-heading,.workshop-copy,.visit,.request-band,.partner-row) h2 {
  line-height:1.08 !important;
}
html[lang] .home-page .process h3 { font-size:var(--quality-step) !important; line-height:1.12 !important; }
html[lang] .home-page .product h3 { line-height:1.08 !important; }
@media (min-width:701px) {
  .home-page .process ol { row-gap:0; }
  .home-page .process li {
    display:grid;
    grid-row:span 3;
    grid-template-rows:subgrid;
  }
}

/* A wrapped label occupies the same row as its neighbours, not a separate baseline. */
.home-page .buyer-strip { align-items:stretch; }
.home-page .buyer-strip > .eyebrow { align-self:center; }
.home-page .buyer-strip > :is(button,a) {
  min-block-size:44px;
  height:100%;
  text-align:start;
}
.home-page .buyer-strip > :is(button,a) svg { flex-shrink:0; }

/* The two-column partner composition needs enough room for both name and logo. */
.home-page .partner-with-logo {
  --partner-logo-size:112px;
  grid-template-columns:var(--partner-logo-size) minmax(0,1fr);
}
.home-page .partner-with-logo .nash-partner-logo {
  width:var(--partner-logo-size);
  height:var(--partner-logo-size);
}
@media (max-width:900px) {
  .home-page .partner-row,
  .home-page .partners.has-builder-partners .partner-row {
    grid-template-columns:minmax(0,1fr);
    gap:26px;
  }
  .home-page .partner-name { padding-left:0; border-left:0; }
  .home-page .partner-with-logo { --partner-logo-size:88px; }
}

/* Keep the native select, while giving it the same line box as text inputs. */
#inquiry input:not([type=checkbox]):not([type=hidden]),
#inquiry select {
  box-sizing:border-box;
  min-block-size:49px;
  padding-block:12px;
  line-height:24px;
}
#inquiry select {
  -webkit-appearance:none;
  appearance:none;
  padding-inline-end:30px;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:calc(100% - 10px) 22px,calc(100% - 5px) 22px;
  background-size:5px 5px;
  background-repeat:no-repeat;
}
#inquiry textarea { line-height:24px; }

@media (max-width:700px) {
  :root { --quality-hero:clamp(32px, 10.5vw, 64px); }
  .home-page .hero-content { padding-block:28px 28px; }
  html[lang] .home-page .hero h1 { white-space:normal; }
  .home-page .hero-description,
  html[lang=ru] .home-page .hero-description {
    max-inline-size:none;
    font-size:15px;
    margin-top:245px;
  }
  .home-page .buyer-strip > :is(button,a) { height:auto; }
  html[lang] .home-page .process h3 { font-size:var(--quality-step); }
}
@media (max-width:400px) {
  .home-page .partner-with-logo { --partner-logo-size:72px; column-gap:20px; }
}
@media (max-width:355px) {
  .home-page .hero-description,
  html[lang=ru] .home-page .hero-description { margin-top:215px; }
}

/* Shared control sizing also replaces the former smaller Russian exceptions. */
html[lang] .home-page .hero-fine { font-size:12px; line-height:18px; }
@media (max-width:700px) {
  html[lang] .home-page .hero-fine { font-size:10px; line-height:15px; }
  html[lang] .home-page .hero-actions .button,
  html[lang] .home-page .request-copy .button { font-size:13px; }
  html[lang] .home-page .hero-meta { font-size:8px; }
  html[lang] .home-page .product-top { font-size:9px; }
  html[lang] #inquiry .form-note { font-size:12px; }
}

@media (min-width:1051px) {
  html[lang] .home-page .hero-description { font-size:18px; line-height:27px; }
}
@media (min-width:701px) and (max-width:900px) {
  .home-page .partner-row,
  .home-page .partners.has-builder-partners .partner-row {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:30px;
  }
  .home-page .partner-with-logo { --partner-logo-size:72px; column-gap:20px; }
}
