/* ============================================================================
 * Elementor 版面映射（首页专用）
 * 适配 Elementor 4.x 的 Flex 容器 DOM：容器本身就是 flex 盒子，没有 .e-con-inner。
 * 只作用于 .lzd-el-* 与 body.lzd-el-home，不碰 Elementor 全局样式。
 * 依赖 tokens.css 的变量，全部写了兜底值。
 * ========================================================================== */

/* ---------------------------------------------------------------- 解除主题宽度限制
 * GeneratePress 的 .grid-container 会把内容压到 1200px 左右，hero 需要全幅。
 * 只在挂了 .lzd-el-home 的页面生效。 */
body.lzd-el-home .site.grid-container {
  max-width: none;
  padding-inline: 0;
}

/* 首页用 hero 当标题，主题的页头标题要藏起来，否则会出现一行「首页」 */
body.lzd-el-home .entry-header {
  display: none;
}

body.lzd-el-home .inside-article {
  padding: 0;
}

body.lzd-el-home .entry-content {
  margin-top: 0;
}

body.lzd-el-home .entry-content > .elementor {
  margin: 0;
}

/* ---------------------------------------------------------------- 公共 */
.lzd-el-hero,
.lzd-el-works,
.lzd-el-clients,
.lzd-el-about,
.lzd-el-contact-sec {
  background-color: var(--lzd-black-000, #08080A);
  /* 内容居中约束在 1440px，背景仍然全幅 */
  padding-inline: max(var(--lzd-page-x, 24px), calc((100% - var(--lzd-container, 1440px)) / 2)) !important;
}

.lzd-el-hero > .elementor-widget,
.lzd-el-works > .elementor-widget,
.lzd-el-clients > .elementor-widget,
.lzd-el-about > .elementor-widget {
  width: 100%;
  margin-block-end: 0;
}

/* 区块小标题 */
.lzd-el-label .elementor-heading-title {
  margin: 0;
  font-family: var(--lzd-font-sans, sans-serif);
  font-size: var(--lzd-fs-xs, 12px);
  font-weight: var(--lzd-fw-regular, 400);
  line-height: 1.5;
  letter-spacing: var(--lzd-ls-meta, 0.14em);
  color: var(--lzd-text-tertiary, #7A7A84);
  text-transform: none;
}

/* ---------------------------------------------------------------- ① 片头 */
.lzd-el-hero {
  position: relative;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  align-items: flex-start !important;
  height: 88vh;
  min-height: 640px;
  padding-top: 0 !important;
  padding-bottom: var(--lzd-space-09, 96px) !important;
  overflow: hidden;
}

/* 渐变遮罩：任何底图上文字都保得住对比度 */
.lzd-el-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    var(--lzd-scrim-hero-top, rgba(8, 8, 10, .55)) 0%,
    var(--lzd-scrim-hero-mid, rgba(8, 8, 10, .30)) 42%,
    var(--lzd-scrim-hero-bottom, rgba(8, 8, 10, .92)) 100%
  );
}

.lzd-el-hero > .elementor-widget {
  position: relative;
  z-index: 1;
}

.lzd-el-hero-mark .elementor-heading-title {
  margin: 0;
  font-family: var(--lzd-font-sans, sans-serif);
  font-size: var(--lzd-fs-xs, 12px);
  font-weight: var(--lzd-fw-regular, 400);
  line-height: 1.5;
  letter-spacing: 0.18em;
  color: var(--lzd-text-tertiary, #7A7A84);
}

.lzd-el-hero-title .elementor-heading-title {
  margin: var(--lzd-space-05, 24px) 0 0;
  font-family: var(--lzd-font-sans, sans-serif);
  font-size: var(--lzd-fs-hero, 64px);
  font-weight: var(--lzd-fw-thin, 200);
  line-height: var(--lzd-lh-hero, 1.12);
  letter-spacing: var(--lzd-ls-hero, 0.08em);
  color: var(--lzd-text-primary, #F2F2F4);
}

.lzd-el-hero-lead .elementor-widget-container p,
.lzd-el-hero-lead p {
  margin: var(--lzd-space-05, 24px) 0 0;
  font-family: var(--lzd-font-sans, sans-serif);
  font-size: var(--lzd-fs-lead, 18px);
  font-weight: var(--lzd-fw-light, 300);
  line-height: var(--lzd-lh-body, 1.85);
  letter-spacing: var(--lzd-ls-body, 0.02em);
  color: var(--lzd-text-secondary, #A8A8B0);
}

.lzd-el-hero-stats .elementor-widget-container p,
.lzd-el-hero-stats p {
  margin: var(--lzd-space-04, 16px) 0 0;
  font-family: var(--lzd-font-sans, sans-serif);
  font-size: var(--lzd-fs-xs, 12px);
  font-weight: var(--lzd-fw-regular, 400);
  line-height: 1.7;
  letter-spacing: var(--lzd-ls-meta, 0.14em);
  color: var(--lzd-text-tertiary, #7A7A84);
}

/* 两个按钮并排 */
.lzd-el-hero-actions {
  width: 100%;
  margin-top: var(--lzd-space-06, 32px) !important;
  padding: 0 !important;
}

.lzd-el-hero-actions > .elementor-widget {
  width: auto !important;
  flex: 0 0 auto;
}

/* 按钮外观 */
.lzd-el-btn .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: var(--lzd-control-h, 48px);
  min-height: var(--lzd-control-h, 48px);
  padding: 0 var(--lzd-space-06, 32px);
  border: 1px solid transparent;
  border-radius: var(--lzd-radius-1, 4px);
  font-family: var(--lzd-font-sans, sans-serif);
  font-size: var(--lzd-fs-label, 14px);
  font-weight: var(--lzd-fw-medium, 500);
  letter-spacing: var(--lzd-ls-label, 0.04em);
  line-height: 1;
  text-decoration: none;
  box-shadow: none;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.lzd-el-btn--primary .elementor-button {
  background-color: var(--lzd-accent, #D9A05B);
  border-color: var(--lzd-accent, #D9A05B);
  color: var(--lzd-black-000, #08080A);
}

.lzd-el-btn--primary .elementor-button:hover,
.lzd-el-btn--primary .elementor-button:focus-visible {
  background-color: #E4B173;
  border-color: #E4B173;
  color: var(--lzd-black-000, #08080A);
}

.lzd-el-btn--ghost .elementor-button {
  background-color: transparent;
  border-color: var(--lzd-line-100, #2A2A30);
  color: var(--lzd-text-primary, #F2F2F4);
}

.lzd-el-btn--ghost .elementor-button:hover,
.lzd-el-btn--ghost .elementor-button:focus-visible {
  border-color: var(--lzd-text-secondary, #A8A8B0);
  color: #FFFFFF;
}

/* ---------------------------------------------------------------- ② 作品集 */
.lzd-el-works {
  padding-top: var(--lzd-section-y, 96px) !important;
  padding-bottom: var(--lzd-space-10, 128px) !important;
}

.lzd-el-works .lzd-el-label {
  margin-bottom: var(--lzd-space-06, 32px);
}

/* 筛选条与栅格左缘对齐（容器已提供左右留白，这里不再外扩） */
.lzd-el-works .lzd-filter {
  margin-inline: 0;
}

.lzd-el-works .lzd-feed {
  margin: 0;
}

/* ---------------------------------------------------------------- ③ 合作机构 */
.lzd-el-clients {
  border-top: 1px solid var(--lzd-line-100, #2A2A30);
  padding-top: var(--lzd-block-y, 64px) !important;
  padding-bottom: var(--lzd-block-y, 64px) !important;
}

.lzd-el-clients .lzd-el-label {
  margin-bottom: 0;
}

.lzd-el-clients .elementor-widget-container ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: 14px 24px;
  margin: var(--lzd-space-04, 16px) 0 0;
  padding: 0;
  list-style: none;
}

.lzd-el-clients .elementor-widget-container li {
  margin: 0;
  padding: 0;
  font-family: var(--lzd-font-sans, sans-serif);
  font-size: var(--lzd-fs-body, 16px);
  font-weight: var(--lzd-fw-light, 300);
  line-height: 1.4;
  letter-spacing: var(--lzd-ls-body, 0.02em);
  color: var(--lzd-text-secondary, #A8A8B0);
}

/* ---------------------------------------------------------------- ④ 关于 */
.lzd-el-about {
  padding-top: var(--lzd-section-y, 96px) !important;
  padding-bottom: var(--lzd-section-y, 96px) !important;
  padding-inline: max(var(--lzd-page-x, 24px), calc((100% - var(--lzd-container-mid, 1120px)) / 2)) !important;
}

.lzd-el-about-title .elementor-heading-title {
  margin: 0;
  font-family: var(--lzd-font-sans, sans-serif);
  font-size: var(--lzd-fs-section, 28px);
  font-weight: var(--lzd-fw-light, 300);
  line-height: var(--lzd-lh-section, 1.30);
  letter-spacing: var(--lzd-ls-section, 0.10em);
  color: var(--lzd-text-primary, #F2F2F4);
}

.lzd-el-about-text .elementor-widget-container p,
.lzd-el-about-text p {
  max-width: 34em;
  margin: var(--lzd-block-y, 64px) 0 0;
  font-family: var(--lzd-font-sans, sans-serif);
  font-size: var(--lzd-fs-lead, 18px);
  font-weight: var(--lzd-fw-light, 300);
  line-height: var(--lzd-lh-long, 1.90);
  letter-spacing: var(--lzd-ls-body, 0.02em);
  color: var(--lzd-text-secondary, #A8A8B0);
}

/* ---------------------------------------------------------------- ⑤ 联系 */
.lzd-el-contact-sec {
  padding: 0 !important;
}

.lzd-el-contact-sec > .elementor-widget {
  width: 100%;
}

.lzd-el-contact .elementor-widget-container {
  margin: 0;
}

/* ---------------------------------------------------------------- 窄屏 */
@media (max-width: 1023px) {
  .lzd-el-hero {
    height: auto;
    min-height: 78vh;
  }

  .lzd-el-hero-title .elementor-heading-title {
    font-size: clamp(32px, 7vw, 48px);
  }
}

@media (max-width: 767px) {
  .lzd-el-hero {
    min-height: 70vh;
  }

  .lzd-el-hero {
    padding-bottom: var(--lzd-space-08, 64px) !important;
  }

  .lzd-el-works,
  .lzd-el-about {
    padding-top: var(--lzd-space-09, 96px) !important;
    padding-bottom: var(--lzd-space-09, 96px) !important;
  }

  .lzd-el-hero-actions {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .lzd-el-hero-actions > .elementor-widget {
    width: 100% !important;
  }

  .lzd-el-btn .elementor-button {
    width: 100%;
  }
}
