/* Homepage — matches 建材全铝首页修改 design (1920 artboard, content 1650) */

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.page-home {
  background: var(--color-bg);
  color: var(--color-text);
}

.page-home .section-label {
  font-family: var(--font-body);
  font-size: clamp(0.875rem, 1.25vw, 1.5rem);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-bottom: clamp(6px, 0.6vw, 12px);
}

.page-home .section-title {
  font-family: var(--font-body);
  font-size: var(--font-size-section);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--color-text);
}

.page-home .section-desc {
  font-size: clamp(0.9375rem, 1.04vw, 1.25rem);
  line-height: 1.55;
  color: var(--color-text-light);
}

.page-home .section-desc + .section-desc {
  margin-top: clamp(12px, 1.1vw, 22px);
}

.page-home .section-header {
  align-items: flex-start;
  gap: clamp(20px, 3vw, 56px);
  margin-bottom: clamp(28px, 3.2vw, 62px);
}

.page-home .section-header__left {
  flex: 1 1 46%;
  max-width: 820px;
}

.page-home .section-header__right {
  flex: 1 1 38%;
  max-width: 640px;
  padding-top: clamp(8px, 1.4vw, 28px);
}

/* ========== Hero ========== */
.hero-carousel {
  --hero-card: clamp(112px, 10.05vw, 193px);
  --hero-panel-h: calc(var(--hero-card) * 1.088 + clamp(28px, 3.07vw, 59px) + clamp(22px, 2.4vw, 46px) + 28px);
  position: relative;
  background: var(--color-bg-navy);
}

.hero-carousel__slides {
  position: relative;
  height: clamp(520px, 49.5vw, 951px);
  overflow: hidden;
}

.hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.6s ease;
}

.hero-slide.is-active {
  opacity: 1;
  visibility: visible;
  z-index: 1;
}

.hero-slide__bg,
.hero-slide__bg img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero-slide__bg img {
  object-fit: cover;
  object-position: center 42%;
}

.hero-slide__content {
  position: absolute;
  left: 0;
  right: 0;
  bottom: calc(var(--hero-panel-h) + clamp(16px, 2.6vw, 49px));
  z-index: 2;
  max-width: 640px;
  margin-left: max(var(--container-padding), calc((100% - var(--container-width-wide)) / 2 + var(--container-padding)));
  pointer-events: none;
}

.hero-slide__title {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: var(--font-size-hero);
  line-height: 1.12;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: var(--color-primary);
  margin-bottom: clamp(10px, 1vw, 18px);
}

.hero-slide__desc {
  max-width: 34em;
  font-size: clamp(0.9375rem, 0.94vw, 1.125rem);
  line-height: 1.55;
  color: var(--color-text-body);
  margin-bottom: clamp(16px, 1.6vw, 28px);
}

.btn--hero {
  pointer-events: auto;
  min-width: clamp(180px, 12.7vw, 244px);
  min-height: clamp(48px, 3.125vw, 60px);
  border-radius: var(--radius-pill);
  text-transform: none;
  font-weight: 600;
  font-size: clamp(0.9375rem, 0.94vw, 1.125rem);
  padding-left: clamp(18px, 1.25vw, 24px);
}

.hero-carousel__arrow {
  position: absolute;
  top: 46%;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(48px, 4.27vw, 82px);
  height: clamp(48px, 4.27vw, 82px);
  border: 1px solid var(--color-glass-border);
  border-radius: 50%;
  background: var(--color-glass);
  color: var(--color-white);
  backdrop-filter: blur(2px);
  transition: background var(--transition), transform var(--transition);
}

.hero-carousel__arrow:hover {
  background: var(--color-primary);
  border-color: var(--color-primary);
}

.hero-carousel__prev { left: clamp(8px, 0.8vw, 15px); }
.hero-carousel__next { right: clamp(10px, 2.1vw, 41px); }

.hero-carousel__arrow svg {
  width: 42%;
  height: 42%;
}

.hero-modules {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 4;
  width: min(1063px, 58vw);
  min-height: var(--hero-panel-h);
  padding: clamp(28px, 3.07vw, 59px) clamp(20px, 3.5vw, 67px) clamp(16px, 1.8vw, 28px)
    calc(max(var(--container-padding), (100vw - var(--container-width-wide)) / 2 + var(--container-padding)) + clamp(8px, 0.85vw, 16px));
  background: var(--color-primary);
  border-radius: 0 clamp(24px, 2.2vw, 42px) clamp(24px, 2.2vw, 42px) 0;
}

.hero-modules__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(10px, 1.3vw, 25px);
}

.hero-module {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(8px, 0.7vw, 12px);
  color: var(--color-white);
  text-align: center;
}

.hero-module__image {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 193 / 210;
  padding: 8%;
  background: var(--color-white);
  border-radius: clamp(10px, 0.95vw, 18px);
}

.hero-module__image img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.hero-module__size {
  font-size: clamp(0.625rem, 0.8vw, 0.96rem);
  letter-spacing: 0.01em;
  white-space: nowrap;
}

/* ========== Factory ========== */
.factory-section {
  position: relative;
  padding: clamp(56px, 7vw, 134px) 0 clamp(72px, 8vw, 150px);
  overflow: hidden;
  background: var(--color-bg);
}

.factory-section__btn {
  margin-top: clamp(16px, 1.6vw, 28px);
}

.factory-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(240px, 0.51fr);
  gap: clamp(14px, 1.46vw, 28px);
  align-items: stretch;
}

.factory-layout::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  top: 50.7%;
  bottom: -103px;
  width: 100vw;
  transform: translateX(-50%);
  background: var(--color-primary) url("https://sandybrown-goose-582368.hostingersite.com/wp-content/uploads/2026/10/factory-band-opt-20261111.webp") center / cover no-repeat;
}

.factory-media {
  position: relative;
  min-height: clamp(240px, 29.8vw, 572px);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--color-bg-dark);
}

.factory-media__slides,
.factory-media__slide,
.factory-media__slide img {
  width: 100%;
  height: 100%;
}

.factory-media__slides {
  position: absolute;
  inset: 0;
}

.factory-media__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.45s ease;
}

.factory-media__slide.is-active {
  opacity: 1;
}

.factory-media__slide img {
  object-fit: cover;
}

.factory-media__pager {
  position: absolute;
  right: clamp(12px, 2.1vw, 41px);
  bottom: 10px;
  z-index: 2;
  display: flex;
  gap: 7px;
}

.factory-media__dot {
  width: 26px;
  height: 26px;
  border-radius: 2px;
  background: var(--color-white);
  color: var(--color-text-light);
  font-family: Arial, sans-serif;
  font-size: 18px;
  line-height: 26px;
  text-align: center;
}

.factory-media__dot.is-active {
  background: var(--color-primary);
  color: var(--color-white);
}

.factory-stats {
  display: flex;
  flex-direction: column;
  justify-content: space-evenly;
  gap: clamp(16px, 1.6vw, 28px);
  padding: clamp(22px, 2.4vw, 46px) clamp(18px, 2.2vw, 42px);
  background: var(--color-bg-panel);
  border-radius: var(--radius-lg);
}

.factory-stat {
  display: flex;
  align-items: center;
  gap: clamp(14px, 1.4vw, 26px);
}

.factory-stat__icon {
  flex: 0 0 clamp(56px, 4.6vw, 88px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.factory-stat__icon img {
  width: 100%;
  height: auto;
  max-height: 88px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

.factory-stat__value {
  font-size: clamp(1.75rem, 3.125vw, 3.75rem);
  font-weight: 900;
  line-height: 1;
  color: var(--color-primary);
}

.factory-stat__value small {
  font-size: 0.42em;
  font-weight: 700;
}

.factory-stat__label {
  margin-top: 6px;
  font-size: clamp(0.875rem, 1.25vw, 1.5rem);
  color: var(--color-white);
}

/* ========== Solutions ========== */
.solutions-section {
  padding: clamp(56px, 7vw, 134px) 0 clamp(48px, 5.5vw, 100px);
  background: var(--color-bg-gray);
}

.solutions-gallery__stage {
  position: relative;
  border-radius: clamp(8px, 0.6vw, 12px);
  overflow: hidden;
  background: var(--color-bg-gray);
}

.solutions-gallery__main {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1651 / 745;
  object-fit: cover;
  background: var(--color-white);
}

.solutions-gallery__arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(28px, 2vw, 38px);
  height: clamp(72px, 5.9vw, 114px);
  transform: translateY(-50%);
  background: var(--color-arrow-ghost);
  color: var(--color-text-light);
}

.solutions-gallery__arrow:hover {
  background: var(--color-arrow-ghost-hover);
  color: var(--color-text);
}

.solutions-gallery__arrow--prev { left: 4px; }
.solutions-gallery__arrow--next { right: 4px; }

.solutions-gallery__arrow svg,
.solutions-gallery__nav svg {
  width: 22px;
  height: 22px;
}

.solutions-gallery__thumbs {
  display: grid;
  grid-template-columns: clamp(28px, 2.76vw, 53px) minmax(0, 1fr) clamp(28px, 2.76vw, 53px);
  align-items: start;
  margin-top: clamp(16px, 1.46vw, 28px);
}

.solutions-gallery__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  height: clamp(120px, 12.7vw, 243px);
  color: var(--color-text-light);
}

.solutions-gallery__nav:hover {
  color: var(--color-primary);
}

.solutions-gallery__viewport {
  overflow: visible;
}

.solutions-gallery__track {
  width: 100%;
}

.solutions-set {
  display: none;
  width: 100%;
  gap: clamp(10px, 0.83vw, 16px);
}

.solutions-set.is-active {
  display: flex;
}

.solutions-thumb {
  flex: 0 0 calc((100% - 5 * clamp(10px, 0.83vw, 16px)) / 6);
  min-width: 0;
}

.solutions-thumb__image {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--color-white);
  border: 1px solid var(--color-border);
}

.solutions-thumb__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.solutions-thumb__more {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--color-overlay-primary);
  color: var(--color-white);
  font-size: clamp(0.75rem, 0.85vw, 0.95rem);
  opacity: 0;
  transition: opacity var(--transition);
}

.solutions-thumb__more svg {
  width: 36px;
  height: 36px;
}

.solutions-thumb:hover .solutions-thumb__more {
  opacity: 1;
}

.solutions-thumb__size {
  margin-top: 10px;
  font-size: clamp(0.6875rem, 0.83vw, 1rem);
  text-align: center;
  color: var(--color-text-body);
}

.solutions-thumb:hover .solutions-thumb__size {
  color: var(--color-primary);
}

/* ========== Products ========== */
.products-section {
  padding: clamp(56px, 6.5vw, 120px) 0 clamp(48px, 5.2vw, 100px);
  background: var(--color-bg);
}

.products-slider {
  position: relative;
}

.products-slider__viewport {
  overflow: hidden;
  padding: 4px;
  margin: -4px;
}

.products-slider__track {
  display: flex;
  gap: clamp(10px, 0.83vw, 16px);
  transition: transform 0.4s ease;
}

.products-slider .product-card {
  flex: 0 0 calc((100% - 3 * clamp(10px, 0.83vw, 16px)) / 4);
  min-width: 0;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--color-border-card);
  border-radius: 14px;
  overflow: hidden;
  background: var(--color-white);
  transition: border-color var(--transition);
}

.products-slider .product-card:hover {
  border-color: var(--color-primary);
}

.products-slider .product-card__image {
  background: var(--color-bg-gray);
}

.products-slider .product-card__image img {
  object-fit: contain;
  padding: 6%;
}

.product-card__body {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: clamp(64px, 4.85vw, 93px);
  padding: 8px 16px;
  background: var(--color-white);
  transition: background var(--transition);
}

.products-slider .product-card:hover .product-card__body {
  background: var(--color-primary);
}

.product-card__title {
  font-size: clamp(0.875rem, 1.17vw, 1.4rem);
  font-weight: 600;
  text-align: center;
  line-height: 1.2;
}

.product-card__title a {
  color: var(--color-text);
}

.products-slider .product-card:hover .product-card__title a {
  color: var(--color-white);
}

.product-card__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border: 1.5px solid currentColor;
  border-radius: 50%;
  color: var(--color-text-light);
}

.products-slider .product-card:hover .product-card__arrow {
  color: var(--color-white);
}

.product-card__arrow svg {
  width: 12px;
  height: 12px;
}

.products-slider__arrow {
  position: absolute;
  top: calc(50% - 46px);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(28px, 2vw, 38px);
  height: clamp(72px, 5.9vw, 114px);
  background: var(--color-primary);
  color: var(--color-white);
}

.products-slider__prev { left: 0; transform: translateX(-50%); }
.products-slider__next { right: 0; transform: translateX(50%); }

.products-slider__arrow svg {
  width: 22px;
  height: 22px;
}

.products-section__more {
  display: flex;
  justify-content: center;
  margin-top: clamp(36px, 5.3vw, 102px);
}

/* ========== Why choose us ========== */
.trust-section {
  position: relative;
  padding: clamp(48px, 4.85vw, 93px) 0 clamp(48px, 5.5vw, 110px);
  background: var(--color-primary) url("https://sandybrown-goose-582368.hostingersite.com/wp-content/uploads/2026/10/why-bg-opt-20261111.webp") center / cover no-repeat;
  color: var(--color-white);
}

.trust-section .section-label {
  color: var(--color-text-soft);
}

.trust-section .section-title {
  color: var(--color-white);
}

.trust-section__lead {
  margin-top: clamp(10px, 0.9vw, 16px);
  font-size: clamp(1rem, 1.25vw, 1.5rem);
  color: var(--color-white);
}

.trust-features {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: clamp(24px, 3vw, 56px);
  row-gap: clamp(36px, 4.5vw, 86px);
  margin-top: clamp(36px, 4.2vw, 80px);
}

.trust-item {
  display: grid;
  grid-template-columns: clamp(48px, 4.2vw, 80px) minmax(0, 1fr);
  gap: clamp(12px, 1.2vw, 22px);
  align-items: start;
}

.trust-item__icon img {
  width: 100%;
  height: auto;
  max-height: 80px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

.trust-item__title {
  margin-bottom: 8px;
  font-size: clamp(1rem, 1.25vw, 1.5rem);
  font-weight: 900;
  color: var(--color-white);
}

.trust-item__desc {
  max-width: 340px;
  font-family: Arial, "Segoe UI", sans-serif;
  font-size: clamp(0.8125rem, 0.83vw, 1rem);
  line-height: 1.33;
  color: var(--color-white);
}

/* ========== Projects ========== */
.projects-section {
  padding: clamp(64px, 7.8vw, 150px) 0 clamp(48px, 5vw, 90px);
  overflow: hidden;
  background: var(--color-bg);
}

.projects-section__header {
  align-items: flex-end;
}

.projects-carousel {
  position: relative;
}

.projects-carousel__viewport {
  overflow: hidden;
}

.projects-carousel__track {
  display: flex;
  align-items: stretch;
  gap: clamp(16px, 3.2vw, 62px);
  transition: transform 0.5s ease;
}

.projects-slide {
  position: relative;
  flex: 0 0 clamp(78%, 66.35vw, 1274px);
}

.projects-slide__media {
  aspect-ratio: 1274 / 647;
  overflow: hidden;
  background: var(--color-bg-dark);
}

.projects-slide__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.projects-slide__content {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: clamp(16px, 2.2vw, 43px) clamp(16px, 2.2vw, 43px) clamp(14px, 1.6vw, 28px);
  background: var(--color-overlay-caption);
  color: var(--color-white);
}

.projects-slide__title {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: clamp(1.25rem, 1.56vw, 1.875rem);
  font-weight: 900;
  color: var(--color-white);
}

.projects-slide__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--color-primary);
}

.projects-slide__arrow svg {
  width: 14px;
  height: 14px;
}

.projects-slide__desc {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 22px;
  margin-top: 8px;
  font-size: clamp(0.75rem, 0.83vw, 1rem);
  color: var(--color-text-soft);
}

.projects-carousel__prev,
.projects-carousel__next {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(48px, 4.17vw, 80px);
  height: clamp(48px, 4.17vw, 80px);
  border-radius: 50%;
  color: var(--color-white);
  background: var(--color-primary-soft);
  transition: background var(--transition);
  transform: translateY(-50%);
}

.projects-carousel__prev:hover,
.projects-carousel__next:hover {
  background: var(--color-primary);
}

.projects-carousel__prev {
  left: calc((100% - min(66.35vw, 1274px)) / 2);
  transform: translate(-50%, -50%);
}

.projects-carousel__next {
  right: calc((100% - min(66.35vw, 1274px)) / 2);
  transform: translate(50%, -50%);
}

.projects-carousel__prev svg,
.projects-carousel__next svg {
  width: 28px;
  height: 28px;
}

/* ========== Services ========== */
.services-section {
  padding: clamp(56px, 6.5vw, 120px) 0 clamp(56px, 6.5vw, 120px);
  background: var(--color-bg-gray-2);
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(12px, 1.4vw, 27px);
}

.service-card {
  background: var(--color-white);
}

.service-card__image {
  height: clamp(150px, 11.9vw, 228px);
  overflow: hidden;
}

.service-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.service-card__body {
  min-height: clamp(180px, 14.3vw, 275px);
  padding: clamp(16px, 1.15vw, 22px);
}

.service-card__title {
  margin-bottom: 10px;
  font-size: clamp(1rem, 1.25vw, 1.5rem);
  font-weight: 600;
  line-height: 1.3;
  color: var(--color-text);
}

.service-card__desc {
  font-size: clamp(0.875rem, 0.94vw, 1.125rem);
  line-height: 1.5;
  color: var(--color-text-muted);
}

/* ========== News ========== */
.news-section {
  padding: clamp(56px, 6.5vw, 120px) 0 clamp(56px, 6.8vw, 130px);
  background: var(--color-bg);
}

.news-section__header {
  align-items: flex-end;
}

.news-nav {
  gap: 12px;
}

.news-nav__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(48px, 3.7vw, 71px);
  height: clamp(48px, 3.7vw, 71px);
  border-radius: 50%;
  background: transparent;
  color: var(--color-text-light);
  transition: background var(--transition), color var(--transition);
}

.news-nav__prev:hover {
  background: var(--color-chip-gray);
  color: var(--color-white);
}

.news-nav__next:hover {
  background: var(--color-primary);
  color: var(--color-white);
}

.news-nav__btn svg {
  width: 28px;
  height: 28px;
}

.news-slider__viewport {
  overflow: hidden;
}

.news-slider__track {
  display: flex;
  gap: clamp(16px, 2.08vw, 40px);
  transition: transform 0.4s ease;
}

.news-card {
  flex: 0 0 calc((100% - 2 * clamp(16px, 2.08vw, 40px)) / 3);
  min-width: 0;
}

.news-card__image {
  display: block;
  height: clamp(180px, 16.1vw, 309px);
  border-radius: 20px;
  overflow: hidden;
}

.news-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.news-card__body {
  padding: 15px 4px 0;
}

.news-card__date {
  display: block;
  margin-bottom: 8px;
  font-size: 1rem;
  color: var(--color-text-light);
}

.news-card__title {
  margin-bottom: 8px;
  font-size: clamp(1.05rem, 1.25vw, 1.5rem);
  font-weight: 600;
  line-height: 1.35;
}

.news-card__title a {
  color: var(--color-black);
}

.news-card__excerpt {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 18px;
  font-size: clamp(0.9375rem, 0.94vw, 1.125rem);
  line-height: 1.5;
  color: var(--color-text-light);
}

.news-card__link {
  min-width: 188px;
}

/* ========== Contact ========== */
.home-contact {
  position: relative;
  padding: clamp(48px, 5.5vw, 100px) 0;
  background: var(--color-bg-navy);
  color: var(--color-white);
  overflow: hidden;
}

.home-contact__bg,
.home-contact__bg img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.home-contact__bg img {
  object-fit: cover;
}

.home-contact .container {
  position: relative;
  z-index: 1;
}

.home-contact__layout {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.05fr);
  gap: clamp(28px, 4vw, 80px);
  align-items: start;
}

.home-contact__info {
  padding-left: clamp(0px, 6.5vw, 126px);
  padding-top: clamp(8px, 2vw, 36px);
}

.home-contact__eyebrow {
  font-size: clamp(1.6rem, 2.7vw, 3.23rem);
  font-weight: 400;
  line-height: 1.15;
}

.home-contact__title {
  margin: 6px 0 clamp(14px, 1.4vw, 24px);
  font-size: clamp(1.5rem, 2.4vw, 2.9rem);
  font-weight: 900;
  line-height: 1.15;
  color: var(--color-primary-light);
}

.home-contact__intro {
  max-width: 34em;
  margin-bottom: clamp(20px, 2vw, 36px);
  font-size: clamp(0.9375rem, 0.94vw, 1.125rem);
  line-height: 1.6;
}

.home-contact__block + .home-contact__block {
  margin-top: clamp(16px, 1.6vw, 28px);
}

.home-contact__block-title {
  margin-bottom: 6px;
  font-size: clamp(1.05rem, 1.25vw, 1.5rem);
  font-weight: 900;
  color: var(--color-white);
}

.home-contact__block-text {
  margin-bottom: 4px;
  font-size: 1rem;
  line-height: 1.5;
}

.home-contact__link {
  font-style: italic;
  color: var(--color-primary-light);
}

.home-contact__form {
  gap: 16px;
}

.home-contact .contact-form__row--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.home-contact .contact-form__field input,
.home-contact .contact-form__field textarea {
  height: 60px;
  padding: 0 16px;
  border: none;
  border-radius: 2px;
  background: var(--color-white);
  color: var(--color-text);
  font-size: 1rem;
}

.home-contact .contact-form__field textarea {
  height: clamp(140px, 12.5vw, 241px);
  padding: 16px;
  resize: vertical;
}

.contact-form__upload {
  position: relative;
}

.contact-form__file-input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.contact-form__upload-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 113px;
  background: var(--color-white);
  color: var(--color-text-light);
  cursor: pointer;
}

.contact-form__upload-icon svg {
  width: 36px;
  height: 36px;
}

.home-contact .contact-form__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  height: 74px;
  border: none;
  border-radius: 2px;
  background: var(--color-primary);
  color: var(--color-white);
  font-family: var(--font-body);
  font-size: clamp(1.25rem, 1.46vw, 1.75rem);
  font-weight: 900;
  text-transform: none;
  letter-spacing: 0;
}

.home-contact .contact-form__submit svg {
  width: 26px;
  height: 26px;
}

.home-contact .contact-form__submit:hover {
  background: var(--color-primary-hover);
  color: var(--color-white);
}

.home-contact .contact-form__error {
  color: var(--color-error);
}

/* ========== Responsive ========== */
@media (max-width: 1100px) {
  .hero-slide__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--hero-text-scrim);
    pointer-events: none;
  }

  .hero-slide__content {
    max-width: min(520px, 68%);
  }

  .hero-modules {
    width: min(100%, 720px);
  }

  .solutions-thumb {
    flex-basis: calc((100% - 3 * clamp(10px, 0.83vw, 16px)) / 4);
  }

  .products-slider .product-card {
    flex-basis: calc((100% - 2 * clamp(10px, 0.83vw, 16px)) / 3);
  }

  .services-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .news-card {
    flex-basis: calc((100% - clamp(16px, 2.08vw, 40px)) / 2);
  }

  .home-contact__info {
    padding-left: 0;
  }
}

@media (max-width: 768px) {
  .hero-carousel__slides {
    height: auto;
  }

  .hero-carousel__arrow {
    display: none;
  }

  .hero-slide {
    position: relative;
    inset: auto;
    display: none;
    opacity: 1;
    visibility: visible;
  }

  .hero-slide.is-active {
    display: block;
  }

  .hero-slide__bg {
    position: relative;
    height: clamp(220px, 58vw, 380px);
  }

  .hero-slide__bg::after {
    display: none;
  }

  .hero-slide__content {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    max-width: none;
    margin: 0;
    padding: 22px var(--container-padding) 4px;
    background: var(--color-white);
  }

  .hero-modules {
    position: relative;
    width: 100%;
    border-radius: 0;
    padding: 20px 72px 28px var(--container-padding);
  }

  .page-home .section-header {
    flex-direction: column;
  }

  .page-home .section-header__left,
  .page-home .section-header__right {
    max-width: none;
  }

  .page-home .section-header__right {
    padding-top: 0;
  }

  .hero-module__size {
    white-space: normal;
  }

  .factory-layout,
  .home-contact__layout {
    grid-template-columns: 1fr;
  }

  .factory-layout::before {
    top: auto;
    bottom: 0;
    height: 180px;
  }

  .solutions-thumb {
    flex-basis: calc((100% - 2 * 10px) / 3);
  }

  .products-slider .product-card,
  .news-card {
    flex-basis: calc((100% - 12px) / 2);
  }

  .products-slider__prev,
  .products-slider__next {
    display: none;
  }

  .projects-slide {
    flex-basis: 86%;
  }

  .projects-carousel__prev,
  .projects-carousel__next {
    display: none;
  }

  .trust-features {
    grid-template-columns: 1fr;
  }

  .home-contact .contact-form__row--3 {
    grid-template-columns: 1fr;
  }

  .page-home .section-header__actions {
    margin-left: 0;
  }
}

@media (max-width: 560px) {
  .hero-modules__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .solutions-thumb {
    flex-basis: calc((100% - 10px) / 2);
  }

  .products-slider .product-card,
  .news-card {
    flex-basis: 100%;
  }

  .services-grid {
    grid-template-columns: 1fr;
  }

  .solutions-gallery__thumbs {
    grid-template-columns: 28px minmax(0, 1fr) 28px;
  }
}
