/* Footer layout */
.cs-footer {
  background: var(--cs-footer-bg);
  margin-top: var(--cs-sp-7);
  padding: var(--cs-sp-7) 0 var(--cs-sp-5);
}

.cs-footer__top {
  display: grid;
  grid-template-columns: minmax(260px, 1.1fr) minmax(520px, 2fr);
  gap: clamp(40px, 7vw, 96px);
  align-items: start;
}

.cs-footer__brand,
.cs-footer__col {
  min-width: 0;
}

.cs-footer__tagline {
  margin: 0 0 var(--cs-sp-3);
  color: var(--cs-primary);
  font-size: var(--cs-fs-h3);
  line-height: 1.15;
}

.cs-footer__about {
  max-width: 42ch;
  margin: 0 0 var(--cs-sp-4);
  color: var(--cs-muted);
  font-size: var(--cs-fs-cap);
  line-height: 1.55;
}

.cs-footer__email {
  margin: 0;
}

.cs-footer__email a {
  color: var(--cs-primary);
  font-size: var(--cs-fs-cap);
  font-weight: var(--cs-fw-medium);
}

.cs-footer__cols {
  display: grid;
  grid-template-columns: minmax(170px, .8fr) minmax(300px, 1.4fr);
  gap: clamp(32px, 5vw, 72px);
  min-width: 0;
}

.cs-footer__col-title {
  margin: 0 0 var(--cs-sp-3);
  color: var(--cs-heading);
  font-size: var(--cs-fs-cap);
  font-weight: var(--cs-fw-bold);
  line-height: 1.3;
}

.cs-footer__menu {
  display: flex;
  flex-direction: column;
  gap: var(--cs-sp-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

.cs-footer__menu a {
  color: var(--cs-muted);
  font-size: var(--cs-fs-cap);
}

.cs-footer__menu a:hover {
  color: var(--cs-primary);
}

/* Newsletter form - 让按钮宽度跟随输入框 */
.cs-footer__newsletter-form,
.cs-footer__newsletter-form form,
.cs-footer__newsletter-form .fluentform,
.cs-footer__newsletter-form .ff_form_wrapper,
.cs-footer__newsletter-form .ff_conv_form {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.cs-footer__newsletter-form .ff-el-group,
.cs-footer__newsletter-form .ff-el-input--content,
.cs-footer__newsletter-form .ff-el-input--content[style] {
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
}

.cs-footer__newsletter-form .ff-el-form-label {
  display: none !important;
}

.cs-footer__newsletter-form .ff-el-form-control,
.cs-footer__newsletter-form .ff-el-form-control[style],
.cs-footer__newsletter-form input[type="text"],
.cs-footer__newsletter-form input[type="text"][style],
.cs-footer__newsletter-form input[type="email"],
.cs-footer__newsletter-form input[type="email"][style],
.cs-footer__newsletter-form textarea,
.cs-footer__newsletter-form textarea[style] {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 44px !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 11px 14px !important;
  border: 1px solid #d8d5df !important;
  border-radius: 3px !important;
  background: #fff !important;
  color: var(--cs-text) !important;
  font-size: var(--cs-fs-sm) !important;
  line-height: 1.4 !important;
}

.cs-footer__newsletter-form .ff-el-form-control::placeholder {
  color: #888;
}

.cs-footer__newsletter-form .ff-btn-submit,
.cs-footer__newsletter-form button[type="submit"],
.cs-footer__newsletter-form input[type="submit"],
.cs-footer__newsletter-form .ff-btn {
  display: inline-block !important;
  width: auto !important;
  min-width: 230px !important;
  max-width: 100% !important;
  min-height: 44px !important;
  box-sizing: border-box !important;
  margin: 6px 0 0 !important;
  padding: 11px 32px !important;
  border: 0 !important;
  border-radius: 3px !important;
  background: var(--cs-primary) !important;
  color: #fff !important;
  font-size: var(--cs-fs-sm) !important;
  font-weight: var(--cs-fw-medium) !important;
  line-height: 1.4 !important;
  text-align: center !important;
  cursor: pointer !important;
}

.cs-footer__newsletter-form .ff-btn-submit:hover,
.cs-footer__newsletter-form button[type="submit"]:hover,
.cs-footer__newsletter-form input[type="submit"]:hover,
.cs-footer__newsletter-form .ff-btn:hover {
  background: var(--cs-primary-2) !important;
}

.cs-footer__newsletter-form .ff-errors,
.cs-footer__newsletter-form .error {
  font-size: var(--cs-fs-xs);
  color: #fca5a5;
}

.cs-footer__bottom {
  margin-top: var(--cs-sp-6);
  padding-top: var(--cs-sp-4);
  border-top: 1px solid rgba(0, 0, 0, .08);
}

.cs-footer__copy {
  margin: 0;
  color: var(--cs-muted);
  font-size: var(--cs-fs-sm);
}

@media (max-width: 1024px) {
  .cs-footer__top {
    grid-template-columns: 1fr;
    gap: var(--cs-sp-6);
  }

  .cs-footer__cols {
    max-width: 720px;
  }
}

@media (max-width: 600px) {
  .cs-footer__cols {
    grid-template-columns: minmax(140px, .8fr) minmax(0, 1.2fr);
    gap: var(--cs-sp-5);
  }
}
