/*
Theme Name: 绿森臻品 LVSEN Premium
Theme URI: https://lvsen.com
Author: LVSEN
Author URI: https://lvsen.com
Description: 绿森臻品企业官网主题，适用于粮食加工、食品生产、酒制品生产类企业展示网站。全屏轮播首页、公司概况、产品中心、服务中心四大板块。
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: lvsen-agriculture
*/

/* ========== Reset & Base ========== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --green-deep: #1a4a32;
  --green-mid: #2d6a4a;
  --green-light: #4a8c6a;
  --gold: #c8963e;
  --gold-light: #e0b860;
  --cream: #faf7f2;
  --cream-dark: #f0ebe0;
  /* 页面底色：独立于 --cream，只用于 body 背景，
     避免影响 .feature-item 等仍在用 --cream 的卡片区域 */
  --page-bg: #F1E8DE;
  --earth: #2a2520;
  --earth-light: #5a5048;
  --brand-rust: #97380F;
  --brand-gold-deep: #8B6B00;
  --brand-yellow: #F7DF0A;
  --white: #ffffff;

  /* 全站内容对齐基准（唯一真源）
     --content-width 必须与 Elementor Kit 的 container_width 保持一致（当前 1104px）
     Elementor 结构为 .e-con(max-width:100%) > .e-con-inner(max-width:var(--container-max-width), margin:0 auto)，
     两层水平偏移相互抵消后，内容区左右边缘恰好等于「居中内容区」的边缘。
     头部导航、页面横幅、各页正文容器、页脚、首页轮播文字全部使用 --align-inset，
     保证全站左右两条竖线贯通。任何页面新增内容容器时，宽度一律用 var(--content-width)。 */
  --content-width: 1104px;
  --cat-pad-x: 8px;       /* 分类栏左右内边距，需与 .category-tabs 的 padding 保持一致 */

  /* 全站左右竖线位置（= 视口边缘到内容可见边缘的距离）。

     ⚠️ 关键：内容容器**不再用 max-width 居中**，只用 padding 控制内缩。
        若同时用 `max-width:1200px; margin:0 auto` + `padding:X`，
        盒子会先被居中内缩一次、再被 padding 内缩一次 → **叠加两次**，
        导致头部与内容错位（本项目踩过此坑）。
        现在 padding 直接等于 --align-left/right，宽度自然 = 视口 − 左右 padding。

     左右不对称的原因：
       · 左侧目标 = 绿色分类块可见左边缘，比容器 content-box 左缘再靠内 --cat-pad-x
       · 右侧目标 = 产品卡右边缘（product-grid 为 flex:1 吃满剩余），无需补偿 */
  --align-left:  max(20px, calc((100% - var(--content-width)) / 2 + var(--cat-pad-x)));
  --align-right: max(20px, calc((100% - var(--content-width)) / 2));
  /* 兼容旧名 */
  --align-inset: var(--align-left);

  /* 产品区配色 */
  --cat-panel-bg: #E3ECD7;   /* 分类列表整体背景 */
  --cat-active-bg: #A1AA98;  /* 分类项选中背景 */
  --cat-active-ink: #123a26; /* 选中项文字色（在 #A1AA98 上 5.26:1，达 AA） */
  --product-card-bg: #DDDDDD; /* 产品卡片背景 */

  /* 产品卡片上的金色分类标签：原 --gold(#c8963e) 在 #DDDDDD 上对比度仅 1.96:1，
     改用加深版以满足 WCAG AA（4.5:1） */
  --gold-deep-label: #745310;
}
html { scroll-behavior: smooth; }
body {
  font-family: 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--earth);
  background: var(--page-bg);
  line-height: 1.7;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }
h1, h2, h3, h4, h5, h6 { font-family: 'Noto Serif SC', Georgia, serif; }

/* ========== Header ========== */
.site-header {
  position: fixed; top: 55px; left: 0; right: 0; z-index: 1000;
  padding: 0 var(--align-right) 0 var(--align-left); height: 72px;
  display: flex; align-items: center; justify-content: space-between;
  transition: background 0.4s, box-shadow 0.4s;
}
.site-header.scrolled {
  background: rgba(26, 74, 50, 0.97);
  box-shadow: 0 2px 20px rgba(0,0,0,0.15);
}
/* 导航栏 top:55px，滚动变绿后上方 55px 会露出页面底色。
   用一个固定在视口顶部的绿色条补齐这段空隙，宽度铺满、z-index 略低于导航栏。 */
.site-header::before {
  content: ''; position: fixed;
  top: 0; left: 0; right: 0; height: 55px;
  background: rgba(26, 74, 50, 0.97);
  opacity: 0; pointer-events: none;
  transition: opacity 0.4s;
  z-index: -1;
}
.site-header.scrolled::before { opacity: 1; }
.logo {
  display: flex; align-items: center; gap: 10px;
  color: var(--white); font-family: 'Noto Serif SC', serif;
  cursor: pointer;
}
.logo-icon {
  width: 38px; height: 38px; border-radius: 50%;
  background: var(--gold); display: flex; align-items: center; justify-content: center;
}
.logo-text { font-size: 22px; font-weight: 700; letter-spacing: 2px; }
.logo-sub { font-size: 11px; letter-spacing: 3px; opacity: 0.8; font-family: 'Noto Sans SC', sans-serif; }

.main-nav { display: flex; gap: 8px; list-style: none; margin: 0; padding: 0; }
.main-nav a {
  padding: 8px 20px; font-size: 15px; color: var(--white);
  display: block; border-radius: 20px; transition: all 0.3s;
  letter-spacing: 1px;
}
.main-nav a:hover {
  color: var(--white); background: rgba(255,255,255,0.08);
}
.main-nav li.current-menu-item > a {
  color: var(--brand-yellow); background: rgba(255,255,255,0.08);
}

.menu-toggle { display: none; background: none; border: none; cursor: pointer; padding: 8px; }
.menu-toggle span { display: block; width: 24px; height: 2px; background: #fff; margin: 5px 0; transition: 0.3s; }

/* ========== Home: Carousel ========== */
.carousel {
  position: relative; width: 100%; height: 100vh; min-height: 600px; overflow: hidden;
}
.carousel-slide {
  position: absolute; inset: 0;
  opacity: 0; transition: opacity 1.5s ease-in-out;
  background-size: cover; background-position: center;
}
.carousel-slide.active { opacity: 1; }
.carousel-slide::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(26,74,50,0.3) 0%, rgba(26,74,50,0.1) 40%, rgba(26,74,50,0.5) 100%);
}
.carousel-slide .gradient-overlay {
  position: absolute; inset: 0; opacity: 0; transition: opacity 1.5s;
}
.carousel-slide.active .gradient-overlay { opacity: 1; }
.slide-1 .gradient-overlay { background: linear-gradient(135deg, rgba(200,150,62,0.15) 0%, transparent 50%, rgba(26,74,50,0.2) 100%); }
.slide-2 .gradient-overlay { background: linear-gradient(135deg, rgba(74,140,106,0.15) 0%, transparent 50%, rgba(26,74,50,0.2) 100%); }
.slide-3 .gradient-overlay { background: linear-gradient(135deg, rgba(180,90,40,0.2) 0%, transparent 50%, rgba(26,74,50,0.25) 100%); }
.slide-4 .gradient-overlay { background: linear-gradient(135deg, rgba(100,160,80,0.15) 0%, transparent 50%, rgba(26,74,50,0.2) 100%); }

.carousel-content {
  position: absolute; bottom: 0; left: 0; right: 0; z-index: 10;
  padding: 0 var(--align-right) 0 var(--align-left) 120px; color: var(--white);
}
.carousel-tag {
  font-size: 14px; letter-spacing: 6px; margin-bottom: 16px;
  color: var(--gold-light); text-transform: uppercase;
}
.carousel-title {
  font-family: 'Noto Serif SC', serif; font-size: 52px; font-weight: 900;
  line-height: 1.2; margin-bottom: 20px; max-width: 700px;
  text-shadow: 0 2px 20px rgba(0,0,0,0.3);
}
.carousel-desc {
  font-size: 17px; max-width: 520px; opacity: 0.9; line-height: 1.8;
}
.carousel-dots {
  position: absolute; bottom: 40px; right: var(--align-right); z-index: 10;
  display: flex; gap: 10px;
}
.carousel-dot {
  width: 36px; height: 3px; background: rgba(255,255,255,0.3);
  cursor: pointer; transition: background 0.3s; border: none; padding: 0;
}
.carousel-dot.active { background: var(--gold-light); }

/* Home: features strip */
.home-features {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px;
  background: var(--cream-dark);
}
.feature-item {
  background: var(--cream); padding: 48px 32px; text-align: center;
}
.feature-num {
  font-family: 'Noto Serif SC', serif; font-size: 36px; font-weight: 700;
  color: var(--green-mid); margin-bottom: 8px;
}
.feature-label { font-size: 14px; color: var(--earth-light); letter-spacing: 1px; }

/* ========== Page Banner ========== */
.page-banner {
  height: calc(20vh - 10px); min-height: 200px; background: linear-gradient(135deg, var(--green-deep) 0%, var(--green-mid) 100%);
  display: flex; align-items: flex-end; padding: 127px var(--align-right) 26px var(--align-left); color: var(--white);
  position: relative; overflow: hidden;
}
.page-banner::before {
  content: ''; position: absolute; right: -30px; top: -90px;
  width: 260px; height: 260px; border-radius: 50%;
  background: radial-gradient(circle, rgba(200,150,62,0.15) 0%, transparent 70%);
}
.page-banner h1 {
  font-family: 'Noto Serif SC', serif; font-size: 28px; font-weight: 700;
  line-height: 1.4; position: relative; z-index: 1;
}

/* ========== About Page ========== */
.about-content { padding: 80px var(--align-inset); }
.about-section { margin-bottom: 60px; }
.about-section h2 {
  font-family: 'Noto Serif SC', serif; font-size: 26px; color: var(--green-deep);
  margin-bottom: 24px; padding-left: 16px; border-left: 4px solid var(--gold);
}
.about-section p { color: var(--earth-light); font-size: 16px; line-height: 2; margin-bottom: 16px; }

/* 产品详情页标题行：标题在左，返回按钮在右
   .detail-head 只负责两端对齐；h2 的金色左边框仍由 .about-section h2 提供 */
.detail-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 20px; margin-bottom: 24px;
}
.detail-head h2 { margin-bottom: 0; }
.back-btn {
  display: inline-flex; align-items: center; gap: 6px;
  flex: 0 0 auto; padding: 7px 16px;
  font-size: 14px; color: var(--green-deep); white-space: nowrap;
  background: var(--cream); border: 1px solid var(--cream-dark);
  border-radius: 20px; cursor: pointer;
  transition: background 0.3s, color 0.3s, border-color 0.3s, transform 0.3s;
}
.back-btn:hover {
  background: var(--green-deep); color: var(--white);
  border-color: var(--green-deep); transform: translateX(-3px);
}
.back-btn svg { transition: transform 0.3s; }
.back-btn:hover svg { transform: translateX(-2px); }

@media (max-width: 768px) {
  .detail-head { flex-wrap: wrap; gap: 12px; }
}

/* ========== 产品详情页（single-lvsen_product.php） ========== */
/* 详情页不显示横幅文字，但保留同款绿色头部区块，
   供固定导航栏（top 55px + 高 72px）落在绿色底上，视觉与其他页面一致 */
.detail-head-band {
  height: calc(20vh - 10px); min-height: 200px;
  background: linear-gradient(135deg, var(--green-deep) 0%, var(--green-mid) 100%);
  position: relative; overflow: hidden;
}
.detail-head-band::before {
  content: ''; position: absolute; right: -30px; top: -90px;
  width: 260px; height: 260px; border-radius: 50%;
  background: radial-gradient(circle, rgba(200,150,62,0.15) 0%, transparent 70%);
}
.detail-content-wrap { padding-top: 60px; }
.detail-figure {
  margin: 0 0 30px;
  border-radius: 12px; overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}
.detail-img { display: block; width: 100%; height: auto; }
/* 详情页正文已在 .about-content 内，去掉 .entry-content 自带的左右内缩 */
.entry-content.detail-content { padding: 0; max-width: none; }
.detail-content p { margin-bottom: 16px; }
.detail-content img { max-width: 100%; height: auto; border-radius: 8px; }

/* 详情页两栏布局：左侧图片轮播，右侧名称与简介 */
.detail-layout {
  /* 图片栏 1.05fr / 文字栏 0.95fr —— 相对 1:1 各增减 5% */
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: 48px; align-items: start;
}

/* --- 轮播 --- */
.detail-gallery { position: relative; }
.pg-track {
  position: relative; overflow: hidden;
  border-radius: 12px;
  background: var(--product-card-bg);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  aspect-ratio: 4 / 3;
}
.pg-slide {
  position: absolute; inset: 0;
  opacity: 0; visibility: hidden;
  transition: opacity 0.45s ease;
}
.pg-slide.active { opacity: 1; visibility: visible; }
.pg-slide img, .pg-slide .wp-post-image {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.pg-empty {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  color: var(--earth-light); font-size: 15px; letter-spacing: 1px;
}
.pg-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 40px; height: 40px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255, 255, 255, 0.9); color: var(--green-deep);
  border: none; cursor: pointer; z-index: 2;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
  transition: background 0.3s, color 0.3s;
}
.pg-arrow:hover { background: var(--green-deep); color: var(--white); }
.pg-prev { left: 14px; }
.pg-next { right: 14px; }
.pg-dots {
  position: absolute; left: 0; right: 0; bottom: 14px;
  display: flex; justify-content: center; gap: 8px; z-index: 2;
}
.pg-dot {
  width: 9px; height: 9px; padding: 0; border-radius: 50%;
  border: none; cursor: pointer;
  background: rgba(255, 255, 255, 0.55);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.12);
  transition: background 0.3s, transform 0.3s;
}
.pg-dot.active { background: var(--white); transform: scale(1.25); }

/* --- 右侧文字 --- */
.detail-intro { min-width: 0; }
.detail-title {
  font-family: 'Noto Serif SC', serif;
  font-size: 28px; color: var(--green-deep);
  padding-left: 16px; border-left: 4px solid var(--gold);
  margin-bottom: 14px;
}
.detail-cat {
  display: inline-block; margin-bottom: 18px;
  padding: 4px 14px; border-radius: 20px;
  font-size: 13px; color: var(--gold-deep-label);
  background: var(--cream); border: 1px solid var(--cream-dark);
}
.detail-back { margin-top: 22px; }

@media (max-width: 900px) {
  .detail-layout { grid-template-columns: 1fr; gap: 28px; }
  .detail-title { font-size: 24px; }
}

/* 企业简介：文字在左，厂区图片在右 */
.intro-layout {
  display: grid; grid-template-columns: 1.15fr 1fr; gap: 40px; align-items: start;
}
/* 文字块整体上移 10px。用 relative 位移而非负 margin：
   不占据额外负边距，不会把下方「一般经营项目」一起拉上来 */
.intro-text { position: relative; top: -10px; }
.intro-text p:last-child { margin-bottom: 0; }
.intro-media img {
  width: 100%; height: auto; display: block;
  border-radius: 10px; border: 1px solid var(--cream-dark);
  box-shadow: 0 6px 24px rgba(26,74,50,0.1);
}

/* 一般经营项目：6 个卡片排成 3 列 × 2 行（每行 3 个） */
.biz-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 24px;
}
.biz-card {
  background: var(--white); padding: 22px 20px; border-radius: 8px;
  border: 1px solid var(--cream-dark); transition: transform 0.3s, box-shadow 0.3s;
}
.biz-card:hover { transform: translateY(-3px); box-shadow: 0 8px 30px rgba(26,74,50,0.08); }
.biz-card h3 {
  font-family: 'Noto Serif SC', serif; font-size: 17px; color: var(--green-deep);
  margin-bottom: 10px;
}
.biz-card p { font-size: 14px; color: var(--earth-light); line-height: 1.8; margin: 0; }

.address-box {
  background: linear-gradient(135deg, var(--green-deep), var(--green-mid));
  color: var(--white); padding: 36px 40px; border-radius: 10px; margin-top: 20px;
}
.address-box h3 { font-family: 'Noto Serif SC', serif; font-size: 18px; margin-bottom: 12px; color: var(--gold-light); }
.address-box p { font-size: 15px; line-height: 2; opacity: 0.9; margin: 0; }

/* ========== Products Page ========== */
/* 产品区兼容层：同时支持两种渲染路径
   ① Elementor 渲染：.elementor-widget-lvsen_products .elementor-widget-container
   ② 主题模板渲染：.products-content（Elementor 数据缺失时走 page-products.php 的 fallback）
   两条路径输出的 DOM 结构不同，以下用 :is() 统一作用域，保证样式表现一致。 */
/* 主题模板渲染路径：.products-content 自身充当两栏 flex 容器
   （其内部 .category-tabs 与 .product-grid 为同级兄弟） */
.products-content {
  display: flex; align-items: flex-start; gap: 56px;
  padding: 60px var(--align-right) 80px var(--align-left);
}
.products-content > * { min-width: 0; }

/* 隐藏产品页 .entry-content 整块
   内容为 the_content() 输出的历史遗留：引导文字「请通过上方分类导航浏览我们的产品系列：」
   + 一批原始 <button> + 多张原尺寸大图，与产品卡片内容重复且破坏版式。
   作用域限定 .products-content > ——其他页面的 .entry-content
   （index.php / page-about.php / page.php / page-services.php）不受影响。 */
.products-content > .entry-content { display: none; }

/* 统一作用域变量：两条渲染路径的父容器 */
.product-scope { display: flex; align-items: flex-start; gap: 56px; }

/* 树形菜单样式（参照参考图）
   - 每项前置小三角 ▶，选中时旋转为 ▼
   - 无边框、无背景块，靠留白与箭头区分层级
   - 行距紧凑，选中项仅加深文字色 */
:is(.elementor-widget-lvsen_products .elementor-widget-container, .products-content) .category-tabs {
  display: flex; flex-direction: column; gap: 2px;
  margin-bottom: 0; flex: 0 0 210px; width: 210px;
  border-bottom: none; border-right: none;
  padding: 10px var(--cat-pad-x); box-sizing: border-box;
  background: var(--cat-panel-bg);
  border-radius: 8px;
}
:is(.elementor-widget-lvsen_products .elementor-widget-container, .products-content) .cat-tab {
  display: flex; align-items: center; gap: 6px;
  text-align: left; padding: 8px 12px;
  font-size: 16px !important; line-height: 1.6; color: var(--earth);
  border: none; border-radius: 4px; background: none;
  transition: color 0.2s, background 0.2s; margin-bottom: 0;
  letter-spacing: 0; cursor: pointer;
  font-family: 'Noto Sans SC', sans-serif;
}
/* 前置三角：用 CSS 边框绘制，无需图片 */
:is(.elementor-widget-lvsen_products .elementor-widget-container, .products-content) .cat-tab::before {
  content: ''; flex: 0 0 auto;
  width: 0; height: 0;
  border-left: 5px solid currentColor;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  transition: transform 0.2s; transform-origin: 30% 50%;
}
:is(.elementor-widget-lvsen_products .elementor-widget-container, .products-content) .cat-tab:hover {
  background: rgba(255,255,255,0.5); color: var(--green-mid);
}
/* 选中项文字用 --cat-active-ink：原 --green-deep(#1a4a32) 在 #A1AA98 上仅 4.21:1（低于 AA），
   改用 #123a26 后为 5.26:1，仍保持墨绿色调 */
:is(.elementor-widget-lvsen_products .elementor-widget-container, .products-content) .cat-tab.active {
  background: var(--cat-active-bg); color: var(--cat-active-ink);
  font-weight: 500; border-left: none;
}
/* 选中项箭头展开为向下 ▼ */
:is(.elementor-widget-lvsen_products .elementor-widget-container, .products-content) .cat-tab.active::before {
  transform: rotate(90deg);
}
:is(.elementor-widget-lvsen_products .elementor-widget-container, .products-content) .product-grid {
  /* flex-basis 必须为 0（而非 auto）：
     auto 会以内容宽度为基准，网格内容较宽时会把 flex 容器撑到换行，
     导致分类栏与产品网格上下排列。0 基准表示"只占剩余空间"，保证左右并排。
     min-width:0 允许网格在窄屏收缩，避免内容撑破容器。 */
  flex: 1 1 0; min-width: 0;
}

.product-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px;
}
.product-card {
  background: var(--product-card-bg); border-radius: 10px; overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06); transition: transform 0.3s, box-shadow 0.3s;
  display: flex; flex-direction: column;
}
.product-card:hover { transform: translateY(-5px); box-shadow: 0 12px 36px rgba(26,74,50,0.12); }
/* 隐藏产品卡片内的分类标签文字（如「农产品」）
   用户要求卡片不显示分类，用 CSS 隐藏而非改 PHP，
   这样 page-products.php 与 Elementor 组件两处调用同时生效，
   且保留后台「显示分类」开关，日后想恢复删掉这条即可。 */
.product-cat { display: none; }

/* 图片区高度：200px，卡片整体随之变矮
   ⚠️ Elementor 生成 .elementor-7 .elementor-element.elementor-element-fc723cb .product-img{height:240px}
   特异性 (0,4,0) 且主题 CSS 在其之前加载，故 Elementor 路径需 !important；
   主题模板路径无此冲突，去掉 !important 也生效，统一写在此处即可。 */
.product-img { width: 100%; height: 200px; object-fit: cover; display: block; transition: transform 0.5s ease; }
.elementor-widget-lvsen_products .elementor-widget-container .product-img {
  height: 200px !important;
}
.product-card:hover .product-img { transform: scale(1.05); }
.product-img-empty { background: linear-gradient(135deg, #F1EFE8 0%, #E8E4D9 100%); }
/* 文字区收紧：内边距 14px，行距与段距同步压缩
   ⚠️ Elementor 同样锁了 .product-info{padding:22px}，Elementor 路径需 !important */
.product-info { padding: 14px 16px 16px; flex: 1; }
.elementor-widget-lvsen_products .elementor-widget-container .product-info {
  padding: 14px 16px 16px !important;
}
.product-name {
  font-family: 'Noto Serif SC', serif; font-size: 18px; font-weight: 600;
  color: var(--earth); margin-bottom: 5px;
}
.product-name a { color: inherit; text-decoration: none; transition: color 0.3s; }
.product-name a:hover { color: var(--green-mid); }
.product-desc { font-size: 13px; color: var(--earth-light); line-height: 1.55; }
.products-empty { text-align: center; padding: 80px 20px; color: var(--earth-light); }
.product-grid-empty { text-align: center; padding: 40px 20px; color: var(--earth-light); }

/* ========== Services Page ========== */
.services-content { padding: 60px var(--align-inset) 80px; }
.service-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 20px;
}
.service-card {
  background: var(--white); padding: 36px 28px; border-radius: 10px;
  border-top: 3px solid var(--green-mid); transition: all 0.3s;
}
.service-card:hover { box-shadow: 0 8px 30px rgba(26,74,50,0.1); transform: translateY(-3px); }
.service-icon {
  width: 48px; height: 48px; border-radius: 8px; background: var(--cream-dark);
  display: flex; align-items: center; justify-content: center; margin-bottom: 18px;
}
.service-card h3 {
  font-family: 'Noto Serif SC', serif; font-size: 17px; color: var(--green-deep);
  margin-bottom: 10px;
}
.service-card p { font-size: 14px; color: var(--earth-light); line-height: 1.8; margin: 0; }

/* ========== Footer ========== */
/* 页脚：深色背景需通栏，内部两块内容各自居中对齐全站竖线 */
.site-footer {
  background: var(--earth); color: rgba(255,255,255,0.7);
  padding: 50px 0 30px;
}
.site-footer > * { padding-left: var(--align-left); padding-right: var(--align-right); }
.footer-top {
  display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 40px; margin-bottom: 36px;
}
.footer-brand .logo-text { color: var(--white); }
.footer-brand p { font-size: 13px; line-height: 1.9; margin-top: 14px; max-width: 360px; }
.footer-col h4 {
  color: var(--white); font-size: 14px; margin-bottom: 16px;
  font-family: 'Noto Serif SC', serif; letter-spacing: 1px;
}
.footer-col a, .footer-col p {
  display: block; font-size: 13px; color: rgba(255,255,255,0.6);
  margin-bottom: 10px; line-height: 1.8;
}
.footer-col a { cursor: pointer; transition: color 0.3s; }
.footer-col a:hover { color: var(--gold-light); }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.1); padding-top: 24px;
  font-size: 12px; text-align: center; color: rgba(255,255,255,0.4);
}

/* ========== Content typography (for wp content) ========== */
.entry-content { padding: 60px var(--align-inset); }
.entry-content p { margin-bottom: 16px; line-height: 2; color: var(--earth-light); }

/* ========== Responsive ========== */
@media (max-width: 768px) {
  /* 窄屏下 --align-inset 的 max() 自动收敛到 20px 下限，此处不再覆盖，保持对齐一致 */
  .main-nav {
    display: none; position: absolute; top: 127px; left: 0; right: 0;
    background: var(--green-deep); flex-direction: column; padding: 16px;
  }
  .main-nav.open { display: flex; }
  .menu-toggle { display: block; }
  .carousel-content { padding: 0 var(--align-right) 100px var(--align-left); }
  .carousel-title { font-size: 30px; }
  .carousel-dots { right: var(--align-right); bottom: 24px; }
  .home-features { grid-template-columns: repeat(2, 1fr); }
  .page-banner { padding: 127px var(--align-right) 22px var(--align-left); }
  .page-banner h1 { font-size: 22px; }
  .about-content, .products-content, .services-content, .entry-content { padding-top: 40px; padding-bottom: 40px; }
  /* 产品详情页无横幅文字，绿色头部区块已提供导航栏背景，上边距回到常规值 */
  .detail-content-wrap { padding-top: 40px; padding-bottom: 40px; }
  .intro-layout { grid-template-columns: 1fr; gap: 24px; }
  .biz-grid { grid-template-columns: 1fr; }
  .product-grid { grid-template-columns: 1fr; }
  /* 移动端单列时图片适当收窄，避免过高 */
  .product-img { height: 150px; }
  .elementor-widget-lvsen_products .elementor-widget-container .product-img { height: 150px !important; }
  .service-grid { grid-template-columns: 1fr; }
  .footer-top { grid-template-columns: 1fr; gap: 24px; }
  .site-footer { padding: 40px 0 24px; }

  /* 窄屏：产品区回到单列，分类导航置顶横排（两条渲染路径同步） */
  :is(.elementor-widget-lvsen_products .elementor-widget-container, .products-content) {
    flex-direction: column; gap: 24px;
  }
  :is(.elementor-widget-lvsen_products .elementor-widget-container, .products-content) .category-tabs {
    flex-direction: row; flex-wrap: wrap;
    flex: 0 0 auto; width: 100%;
    padding: 8px; gap: 4px;
  }
  :is(.elementor-widget-lvsen_products .elementor-widget-container, .products-content) .cat-tab {
    padding: 6px 10px; font-size: 14px !important;
  }
}
