/* Homepage additions within the existing catalog and gray navigation. */
.nh-home { color: #252b2f; line-height: 1.6; }
.nh-home h1, .nh-home h2, .nh-home h3 {
  color: #252b2f; line-height: 1.2; text-shadow: none; margin: 0 0 18px;
}
.nh-home h1 { max-width: 24ch; font-size: clamp(28px, 3vw, 42px); letter-spacing: -0.025em; text-wrap: balance; }
.nh-home h2 { font-size: clamp(24px, 2.3vw, 30px); letter-spacing: -0.015em; }
.nh-home h3 { font-size: 19px; }
.nh-home p { max-width: 72ch; margin: 0 0 16px; }
.nh-home a { text-underline-offset: 3px; }
.nh-home a:focus-visible, .nh-home summary:focus-visible { outline: 3px solid #1f3d6a; outline-offset: 4px; }
.nh-home-hero { padding: 4px 0 36px; }
.nh-home-hero > p { max-width: 65ch; }
.nh-home-catalog { scroll-margin-top: 100px; }
.nh-home-catalog > h2 { margin-bottom: 24px; }
.nh-home-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 24px; }
.nh-home .nh-home-action {
  display: inline-flex; justify-content: center; align-items: center; min-height: 48px;
  box-sizing: border-box; padding: 10px 22px; color: #fff !important; background: #30363a;
  font-weight: 700; border-radius: 4px; text-decoration: none; text-shadow: none;
  transition: background-color 160ms ease-out;
}
.nh-home .nh-home-action:hover { background: #1f3d6a; }
.nh-home-actions > span { max-width: 38ch; font-size: 14px; }
.nh-home-section { margin-top: 56px; padding-top: 32px; border-top: 1px solid #b1b1b1; }
.nh-home-price { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 32px; }
.nh-home-price > div { min-width: 0; }
.nh-home .nh-home-emphasis { font-weight: 700; }
.nh-home-request { align-self: start; padding: 24px; background: #ebebeb; }
.nh-home-request ul { padding-left: 20px; margin: 0 0 20px; }
.nh-home-request li { margin-bottom: 8px; }
.nh-home-request p { margin: 0; font-size: 14px; }
.nh-home-steps { padding-left: 22px; margin: 24px 0 0; }
.nh-home-steps li { padding-left: 8px; margin-bottom: 24px; }
.nh-home-steps li::marker { font-weight: 700; }
.nh-home-steps h3 { margin-bottom: 8px; }
.nh-home-steps p { margin-bottom: 0; }
.nh-home-faq details { border-bottom: 1px solid #d0d0d0; padding: 16px 0; }
.nh-home-faq summary { cursor: pointer; font-weight: 700; min-height: 28px; }
.nh-home-faq details > p { margin: 12px 0 4px; }
.nh-home-faq details > a { display: inline-block; padding: 8px 0; }
.nh-home-contact { padding-bottom: 16px; }
/* The legacy footer uses an absolute top calculated before FAQ expansion. */
.ui-content:has(.nh-home) + [data-role="footer"] {
  position: relative !important;
  top: auto !important;
  clear: both;
  width: 100%;
  box-sizing: border-box;
}
@media (max-width: 700px) {
  .nh-home-price { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .nh-home-section { margin-top: 40px; padding-top: 24px; }
  .nh-home-hero { padding-bottom: 32px; }
  .nh-home-actions { gap: 14px 20px; }
  .nh-home-actions a { overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) { .nh-home .nh-home-action { transition: none; } }

/* Homepage composition: product, catalog, drawing, delivery, request. */
.nh-home figure { margin: 0; min-width: 0; }
.nh-home figure img { display: block; width: 100%; height: auto; }
.nh-home figcaption { margin-top: 8px; color: #596166; font-size: 12px; line-height: 1.4; }
.nh-home-hero, .nh-home-delivery { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); align-items: center; gap: 28px; }
.nh-home-hero { padding-bottom: 36px; }
.nh-home-hero h1 { font-size: clamp(28px,2.8vw,38px); max-width: none; }
.nh-home-hero figure img { filter: grayscale(100%); }
.nh-home-hero .nh-home-action { margin-top: 6px; }
.nh-home-custom { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 28px; background: #263b46; color: #fff; padding: 32px; border: 0; }
.nh-home .nh-home-custom { text-shadow: none; }
.nh-home .nh-home-custom h2 { color: #fff; }
.nh-home .nh-home-custom a { color: #fff !important; display: inline-block; padding: 10px 0; }
.nh-home-custom figcaption { color: #d1dfe6; }
.nh-home-custom a:focus-visible { outline-color: #fff; }
.nh-home-quote { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 32px; scroll-margin-top: 115px; }
.nh-home-contacts { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin-top: 24px; overflow-wrap: anywhere; }
.nh-home-form { min-width: 0; padding: 24px; background: #ebebeb; }
.nh-home .nh-form { max-width: none; }
.nh-home .nh-form-fields { display: block; }
.nh-home .nh-form-fields .nh-form-input { width: 100%; margin: 5px 0 14px; min-height: 44px; font-size: 16px; }
.nh-home .nh-form-label { display: block; font-size: 14px; font-weight: 700; }
.nh-home .nh-form-message { margin-top: 5px; font-size: 16px; }
.nh-home .nh-form-drop-hint { color: #595959; }
.nh-home .nh-form-consent { font-size: 13px; }
.nh-home .nh-form-submit { min-height: 48px; }
.nh-home :is(input,textarea,button):focus-visible { outline: 3px solid #1f3d6a; outline-offset: 3px; }
.nh-home ::selection { background: #263b46; color: #fff; }
.nh-home input, .nh-home textarea { caret-color: #263b46; }
.nh-home-faq { padding-bottom: 32px; }
@media (max-width: 900px) {
 .nh-home-quote { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 700px) {
 .nh-home-hero, .nh-home-custom, .nh-home-delivery { grid-template-columns: minmax(0,1fr); gap: 24px; }
 .nh-home-hero figure img { max-height: 200px; object-fit: cover; }
 .nh-home-custom { padding: 24px 20px; }
 .nh-home-form { padding: 20px 16px; }
 .nh-home-quote { scroll-margin-top: 135px; }
}
