/* ===================================================================
   日晶纤维（上海）有限公司 · 官网样式
   风格：极简、高级、留白，米色/大地色系
   =================================================================== */

:root {
  --color-bg: #ffffff;
  --color-bg-soft: #f5f3ef;
  --color-text: #1a1a1a;
  --color-text-soft: #6b6b6b;
  --color-line: #e5e1d8;
  --color-gold: #b8a98c;
  --color-accent: #e5a33d;
  --max-width: 1500px;
  --header-h: 76px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: var(--header-h); }

body {
  font-family: "Microsoft YaHei", "微软雅黑", -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC", "Noto Sans SC", sans-serif;
  color: var(--color-text);
  background: var(--color-bg);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

.hidden { display: none; }

/* ============ 日文模式适配 ============ */
/* 只在 JP 模式下用日文字体链，不污染 CN/JP 之外的默认状态 */
body[data-lang="jp"] {
  font-family: "Microsoft YaHei", "微软雅黑", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
  line-height: 1.85;
  letter-spacing: 0.02em;
}
body[data-lang="jp"] .hero__title,
body[data-lang="jp"] .about__lead,
body[data-lang="jp"] .service__lead {
  letter-spacing: 0.04em;
  font-weight: 700;
}
body[data-lang="jp"] .hero__title {
  -webkit-text-stroke: 0;
}
body[data-lang="jp"] .service__list li {
  line-height: 1.95;
  padding-left: 0;
}
/* 日文版文案自带・标点，去掉列表前置圆点避免重复 */
body[data-lang="jp"] .service__list li::before { content: none; }
/* 联系我们页面：JP 模式文字大小与 CN 保持一致 */
body[data-lang="jp"] .contact__text {
  font-size: 13px;
  line-height: 2;
}

/* JP 模式下，含中文的固定元素强制用 CN 字体链，保证 CN/JP 视觉一致 */
body[data-lang="jp"] .header__logo,
body[data-lang="jp"] .about__label,
body[data-lang="jp"] .service__label,
body[data-lang="jp"] .footer__title,
body[data-lang="jp"] .footer__company {
  font-family: "Microsoft YaHei", "微软雅黑", -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC", "Noto Sans SC", sans-serif;
}

/* JP 模式下，所有 data-i18n 元素强制用 CN 字体链，保证切换时大小粗细一致 */
body[data-lang="jp"] [data-i18n] {
  font-family: "Microsoft YaHei", "微软雅黑", -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC", "Noto Sans SC", sans-serif !important;
}

/* JP 模式下隐藏空的 service 列表项 */
body[data-lang="jp"] .service__list li:empty {
  display: none;
}

/* JP 模式下隐藏子页面空文本元素 */
body[data-lang="jp"] .detail__label:empty,
body[data-lang="jp"] .detail__text:empty,
body[data-lang="jp"] .detail__part:empty {
  display: none;
}

img { display: block; width: 100%; height: 100%; object-fit: cover; }

a { color: inherit; text-decoration: none; }
ul { list-style: none; }

.container { width: 100%; max-width: var(--max-width); margin: 0 auto; padding: 0 32px; }

/* ============ 通用区块标题 ============ */
.section { padding: 110px 0; }
.section__head { margin-bottom: 48px; }
.section__head--center { text-align: center; }
.section__en {
  font-size: 15px;
  letter-spacing: 2px;
  color: var(--color-accent);
  text-transform: none;
  font-weight: 500;
  margin-bottom: 6px;
  /* 同 section__title：显式固定行高，避免继承 JP body 1.85 导致副标题块比 CN 高 */
  line-height: 1.7;
}
.section__title {
  font-size: 34px;
  font-weight: 800;
  letter-spacing: 2px;
  /* 显式固定行高：否则继承 body 行高，而 JP 模式 body 为 1.85、CN 为 1.7，会导致中日文标题块高度不一致 */
  line-height: 1.7;
}
.section__sub {
  margin-top: 14px;
  font-size: 17px;
  font-weight: 700;
  color: var(--color-text);
}

/* ============ 顶部导航 ============ */
.header {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: var(--header-h);
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid transparent;
  z-index: 1000;
  transition: border-color 0.3s, box-shadow 0.3s;
}
.header.is-scrolled {
  border-bottom-color: var(--color-line);
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.04);
}
.header__inner {
  max-width: var(--max-width);
  height: 100%;
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  align-items: center;
  gap: 24px;
}
.header__logo {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: 1px;
  white-space: nowrap;
}
.header__logo span { font-weight: 700; }

.nav {
  display: flex;
  gap: 34px;
  margin-left: auto;
}
.nav__link {
  font-size: 16px;
  font-weight: 600;
  position: relative;
  padding: 6px 0;
  transition: color 0.25s;
}
.nav__link::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 0; height: 2px;
  background: var(--color-gold);
  transition: width 0.3s var(--ease);
}
.nav__link:hover { color: var(--color-gold); }
.nav__link:hover::after { width: 100%; }

.lang { display: flex; align-items: center; gap: 6px; color: var(--color-text-soft); }
.lang__btn {
  background: none; border: none; cursor: pointer;
  font-size: 14px; font-weight: 700; color: var(--color-text-soft);
  transition: color 0.2s;
}
.lang__btn.is-active { color: var(--color-text); }
.lang__btn:hover { color: var(--color-gold); }

/* 管理端入口（电源图标，语言切换右侧） */
.admin-link {
  display: none;
  align-items: center;
  color: var(--color-text-soft);
  transition: color 0.2s;
}
.admin-link.is-enabled { display: inline-flex; }
.admin-link svg { width: 16px; height: 16px; }
.admin-link:hover { color: var(--color-gold); }

.nav-toggle { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; }
.nav-toggle span { width: 24px; height: 2px; background: var(--color-text); transition: 0.3s; }

/* ============ 首页主视觉 ============ */
.hero {
  padding: calc(var(--header-h) + 48px) 0 48px;
  background: var(--color-bg);
}
.hero__grid {
  display: flex;
  align-items: stretch;         /* 左文右图等高 */
}
.hero__copy {
  position: relative;
  z-index: 2;                   /* 上层 */
  width: 50%;
  margin-right: -4%;            /* 文字压入图片左缘渐变区 */
  display: flex;
  flex-direction: column;
  justify-content: center;      /* 文字在图片高度内垂直居中 */
  padding: 0 24px 0 0;
}
.hero__title {
  font-size: clamp(34px, 5.2vw, 50px);
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: 2px;
  -webkit-text-stroke: 0.8px currentColor;
}
.hero__media {
  position: relative;
  width: 54%;
  aspect-ratio: 870 / 517;      /* 按 hero 图片尺寸 */
  flex: none;
  overflow: hidden;
  z-index: 1;                   /* 下层 */
}
.hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.8s var(--ease);
}
.hero__media:hover img { transform: scale(1.04); }
/* 图片左缘渐变白：左侧淡出白，接住左边文字（about 的镜像方向） */
.hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 50%);
  pointer-events: none;
}

/* ============ 动态 News ============ */
.news { background: var(--color-bg); padding-top: 40px; }
.news__list { border-top: 1px solid var(--color-line); }
.news__item {
  border-bottom: 1px solid var(--color-line);
  transition: background 0.25s;
}
.news__item:hover { background: var(--color-bg-soft); }
.news__link {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 24px 4px;
}
.news__date { color: var(--color-text-soft); font-size: 15px; min-width: 96px; }
.news__tag {
  font-size: 13px;
  padding: 2px 12px;
  border: 1px solid var(--color-gold);
  color: var(--color-gold);
  border-radius: 20px;
  white-space: nowrap;
}
.news__text { font-size: 16px; flex: 1 1 auto; }
.news__arrow {
  color: var(--color-gold);
  font-size: 16px;
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity 0.25s, transform 0.25s var(--ease);
}
.news__item:hover .news__arrow { opacity: 1; transform: none; }

/* ============ 动态 · 公告详情 News Detail ============ */
.article { max-width: 860px; margin: 0 auto; }
.article__meta { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.article__title {
  font-size: 28px;
  font-weight: 800;
  line-height: 1.5;
  margin-bottom: 28px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--color-line);
}
.article__lead {
  font-size: 17px;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 24px;
}
.article__body p {
  font-size: 16px;
  color: var(--color-text-soft);
  margin-bottom: 18px;
}
.article__body p:last-child { margin-bottom: 0; }

/* 公告图集：多图竖向单列排布，保持原始比例 */
.article__gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin: 36px 0 0;
}
.article__figure { margin: 0; }
.article__shot {
  display: block;
  overflow: hidden;
  border-radius: 6px;
}
.article__shot img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform 0.8s var(--ease);
}
.article__shot:hover img { transform: scale(1.04); }
.article__cap {
  margin: 10px 0 0;
  font-size: 13px;
  color: var(--color-text-soft);
  text-align: center;
}
.article__gallery + .article__cap { margin-bottom: 18px; }
.article__body > *:last-child { margin-bottom: 0; }
.news-nav {
  max-width: 860px;
  margin: 56px auto 0;
  padding-top: 28px;
  border-top: 1px solid var(--color-line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.news-nav__link { font-size: 15px; font-weight: 600; color: var(--color-text-soft); transition: color 0.25s; }
.news-nav__link:hover { color: var(--color-gold); }
.news-nav__link.is-disabled { opacity: 0.35; pointer-events: none; }
.news-nav__back { font-size: 15px; font-weight: 700; color: var(--color-text); transition: color 0.25s; }
.news-nav__back:hover { color: var(--color-gold); }

/* ============ 公司介绍 About ============ */
.about { background: var(--color-bg); }
.about__head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  margin-bottom: 32px;
}
.about__head-inner {
  display: flex;
  align-items: baseline;
  gap: 14px;
  overflow: hidden;
  margin-bottom: 95px;
}
.about__label {
  font-size: 20px;
  font-weight: 900;
  letter-spacing: 2px;
  white-space: nowrap;
  -webkit-text-stroke: 0.6px currentColor;   /* 900 已是最大字重，叠同色描边让笔画更粗 */
}
.about__watermark {
  font-size: clamp(6px, 5.5vw, 68px);
  font-weight: 800;
  line-height: 1;
  letter-spacing: 2px;
  white-space: nowrap;
  background: linear-gradient(180deg, #111111 0%, #2b2b2b 42%, #8f8f8f 60%, #fafafa 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.about__grid {
  display: flex;
  align-items: stretch;         /* 两个 div 等高、平行 */
}
.about__media {
  position: relative;
  width: 52%;                   /* 比例：略宽，右缘留出渐变区 */
  aspect-ratio: 3 / 2;          /* 3:2 图片 */
  flex: none;
  overflow: hidden;
  border-radius: 4px;
  z-index: 1;                   /* 下层 */
}
.about__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.8s var(--ease);
}
.about__media:hover img { transform: scale(1.04); }
/* 图片右缘渐变白：让照片平滑溢入白色背景，与文字自然衔接（无卡片感） */
.about__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 1) 100%);
  pointer-events: none;
}
/* 右侧文字框：透明底、无圆角，文字直接落在渐变区 */
.about__body {
  position: relative;
  z-index: 2;
  width: 52%;
  margin-left: -4%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;  /* 文字整体靠顶（公司介绍/about US 往上靠） */
  padding: 10px 40px;
}
.about__lead {
  font-size: 26px;
  font-weight: 800;
  line-height: 1.5;
  margin: 8px 0 24px;
}
.about__text { color: var(--color-text-soft); font-size: 13px; }

/* ============ 事业内容 Service ============ */
.service__head {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 48px;
  margin-bottom: 44px;
}
.service__head-inner {
  display: flex;
  align-items: baseline;
  gap: 14px;
  overflow: hidden;
  margin-bottom: 180px;
}
.service__label {
  font-size: 20px;
  font-weight: 900;
  letter-spacing: 2px;
  white-space: nowrap;
  -webkit-text-stroke: 0.6px currentColor;   /* 与公司介绍一致，叠描边加粗 */
}
.service__watermark {
  font-size: clamp(36px, 5.5vw, 68px);
  font-weight: 800;
  line-height: 1;
  letter-spacing: 2px;
  white-space: nowrap;
  background: linear-gradient(180deg, #111111 0%, #2b2b2b 42%, #8f8f8f 60%, #fafafa 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.service__body {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 48px;
  align-items: stretch;         /* 左侧文字块与右侧图片等高 */
}
.service__intro {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;  /* 标题+文案靠顶，与 about 一致 */
}
.service__lead {
  font-size: 26px;
  font-weight: 900;
  line-height: 1.45;
  margin-bottom: 26px;
}
.service__list { list-style: none; }
.service__list li {
  position: relative;
  padding-left: 18px;
  font-size: 15px;
  color: var(--color-text-soft);
  line-height: 2.2;
}
.service__list li::before {
  content: "·";
  position: absolute;
  left: 4px;
  color: var(--color-text-soft);
}
.service__gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4px;
}
.service__item {
  position: relative;
  display: block;
  height: 420px;
  overflow: hidden;
}
.service__item img { transition: transform 0.8s var(--ease); }
.service__item:hover img { transform: scale(1.06); }
.service__item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 52%, rgba(0,0,0,0.5) 100%);
}
.service__cap {
  position: absolute;
  left: 20px;
  bottom: 24px;
  z-index: 1;
  color: #fff;
  font-size: 22px;
  font-weight: 800;
  line-height: 1.35;
  text-shadow: 0 2px 8px rgba(0,0,0,0.45);
}

/* ============ 经营理念 Philosophy ============ */
/* 按设计稿 page_07：白底，理念/愿景居中竖排，价值 2×2 纯文本左对齐 */
.philosophy { background: var(--color-bg); }
.philosophy__top {
  display: flex;
  flex-direction: column;
  gap: 44px;
  text-align: center;
  margin-bottom: 72px;
}
.philosophy__label {
  font-size: 17px;
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: 1px;
  margin-bottom: 10px;
}
.philosophy__label--center { text-align: center; margin-bottom: 64px; }
.philosophy__quote { font-size: 24px; font-weight: 700; line-height: 1.6; }
.values {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 72px 64px;
  max-width: 960px;
  margin: 0 auto;
}
.value { padding: 0; }
.value__head { font-size: 15px; font-weight: 700; margin-bottom: 4px; }
.value__text { font-size: 22px; font-weight: 700; color: var(--color-text); }

/* ============ 国际网络 Network ============ */
.network--map {
  padding-top: calc(var(--header-h) + 48px);
  padding-bottom: 90px;
}
.network--map .section__title {
  margin-top: 6px;
  font-size: 42px;
}
.network__tagline {
  margin-top: 32px;
  font-size: 24px;
  font-weight: 700;
  color: var(--color-text);
}
.network__map {
  margin: 44px auto 0;
  max-width: 1120px;
}
.network__map img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.network__regions {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.region {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 44px 20px;
  border: 1px solid var(--color-line);
  border-radius: 50%;
  aspect-ratio: 1;
  justify-content: center;
  font-size: 20px;
  font-weight: 700;
  max-width: 200px;
  margin: 0 auto;
  transition: border-color 0.3s, transform 0.3s;
}
.region:hover { border-color: var(--color-gold); transform: translateY(-6px); }
.region em { font-style: normal; font-size: 13px; color: var(--color-text-soft); font-weight: 500; }
.region__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--color-gold); }

/* ============ 人材招聘 Recruit ============ */
.recruit { position: relative; padding: 140px 0; color: #fff; overflow: hidden; }
.recruit__bg { position: absolute; inset: 0; z-index: -1; }
.recruit__bg::after { content: ""; position: absolute; inset: 0; background: rgba(20,20,20,0.5); }
.recruit__inner { text-align: center; }
.recruit .section__title { color: #fff; }
.recruit .section__en { color: var(--color-accent); }
.recruit__text { font-size: 18px; margin: 20px 0 36px; }
.btn {
  display: inline-block;
  padding: 14px 44px;
  border: 1px solid #fff;
  color: #fff;
  font-weight: 600;
  letter-spacing: 1px;
  transition: background 0.3s, color 0.3s;
}
.btn:hover { background: #fff; color: var(--color-text); }

/* ============ 公司简介 Overview ============ */
.overview {
  padding-top: 62px;
  padding-bottom: 170px;
}
.overview .about__lead {
  max-width: 720px;
  margin: 0 0 12px;
  font-size: 42px;
  line-height: 1.15;
  font-weight: 900;
  letter-spacing: 1px;
}
.overview__intro {
  font-size: 14px;
  line-height: 1.35;
  color: var(--color-text-soft);
  max-width: 690px;
  margin-bottom: 0;
}
.profile { border-top: 1px solid var(--color-line); }
.profile__row {
  display: flex;
  gap: 24px;
  padding: 16px 4px;
  border-bottom: 1px solid var(--color-line);
}
.profile__row dt {
  flex: 0 0 140px;
  font-weight: 700;
  color: var(--color-text);
}
.profile__row dd { color: var(--color-text-soft); }
.is-todo { color: var(--color-accent); font-style: italic; }

/* ============ 占位组件 Placeholder ============ */
.message { background: var(--color-bg-soft); }
.history { background: var(--color-bg-soft); }
.placeholder {
  border: 1px dashed var(--color-gold);
  border-radius: 8px;
  padding: 48px 32px;
  text-align: center;
  background: rgba(184, 169, 140, 0.06);
}
.overview__intro + .placeholder { margin-top: 50px; }
.placeholder--large { padding: 72px 32px; }
.placeholder__badge {
  display: inline-block;
  font-size: 13px;
  letter-spacing: 1px;
  color: var(--color-accent);
  border: 1px solid var(--color-accent);
  border-radius: 20px;
  padding: 4px 16px;
  margin-bottom: 16px;
}
.placeholder__hint { color: var(--color-text-soft); font-size: 15px; }

/* ============ 事业内容 · 详情占位 ============ */
.service__more {
  display: inline-block;
  margin-top: 14px;
  font-size: 13px;
  color: var(--color-accent);
  letter-spacing: 0.5px;
}
.service__card { scroll-margin-top: calc(var(--header-h) + 20px); }

/* ============ 人材招聘 · 职位占位 ============ */
.jobs {
  margin: 8px auto 32px;
  max-width: 560px;
}
.jobs__placeholder {
  border: 1px dashed rgba(255, 255, 255, 0.6);
  border-radius: 8px;
  padding: 28px 24px;
  color: #f0ede6;
  font-size: 15px;
  letter-spacing: 0.5px;
}

/* ============ 业务子页面 Business Sub-page ============ */
.subhero { padding-top: var(--header-h); }
.subhero__banner {
  max-width: var(--max-width);   /* 图片宽度：与正文同宽 1200px，改这里可再减小 */
  margin: 0 auto;                /* 居中 */
  height: 235px;                 /* 图片高度：原 440px，改这里 */
  overflow: hidden;
}
.subhero__banner img { transition: transform 1s var(--ease); }
.subhero__banner:hover img { transform: scale(1.04); }
.subhero__head {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 56px 32px 0;
}
.subhero__head .section__title { font-size: 40px; }
.subhero__desc {
  margin-top: 20px;
  max-width: 1000px;
}
.subhero__desc .contact__text {
  font-size: 13px;
  line-height: 2;
  color: var(--color-text-soft);
  margin-bottom: 4px;
  text-align: left;
}

.detail__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
}
/* ODM 页面：图片缩小，文字区域加大 */
.detail__grid--odm {
  grid-template-columns: 2fr 3fr;
}
/* 招聘页：中文页简介缩小字号，一行放下（图片、间距保持原样） */
body[data-lang="cn"] .detail__grid--recruit .overview__intro { font-size: 13px; max-width: none; }
.detail__media {
  height: 520px;
  overflow: hidden;
  border-radius: 6px;
}
.detail__media img { transition: transform 0.8s var(--ease); }
.detail__media:hover img { transform: scale(1.05); }
.detail__media--figure {
  background: transparent;   /* 原米色底 var(--color-bg-soft)，已去掉 */
}
.detail__media--figure img { object-fit: contain; }
/* 完整展示不裁切（甲方要求）：高度随原图比例自适应，宽度撑满列，左侧文字垂直居中 */
.detail__media.detail__media--auto { height: auto; }
.detail__media.detail__media--auto img { height: auto; object-fit: contain; }
.detail__media--pertex {
  max-width: 420px;
  height: 140px;
  margin-left: auto;
  margin-right: 0;
  padding: 24px 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-line);
  border-radius: 0;
  background: #fff;
}
.detail__media--pertex img { object-fit: contain; }
.pertex__wordmark {
  display: inline-block;
  width: 140px;
  margin-bottom: 24px;
}
.pertex__wordmark img { width: 100%; height: auto; object-fit: contain; }
.detail__block--pertex .detail__text + .detail__text { margin-top: 10px; }
/* Pertex 区块：图片本身限宽420px，图列收窄、文字区域加宽（reverse 布局下图在右占45%、文字在左占55%） */
.detail__block--pertex .detail__grid { grid-template-columns: 45fr 55fr; }
.detail__label {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 22px;
}
/* 业务详情正文：小标题 + 段落，多段之间留间距（scoped，不影响仍为占位的子页） */
.detail__part + .detail__part { margin-top: 34px; }
.detail__part + .detail__part--tight { margin-top: 12px; }
.detail__part .detail__label { margin-bottom: 14px; }
.section.detail .detail__text {
  font-size: 14px;
  line-height: 1.9;
  color: var(--color-text-soft);
}
/* 业务详情：多图文块交替布局（functional-material 等多模块页面） */
.detail__block + .detail__block { margin-top: 80px; }
/* Pertex 区块与下方内容加大间距 */
.detail__block--pertex + .detail__block { margin-top: 300px; }
.detail__grid--reverse { direction: rtl; }
.detail__grid--reverse > * { direction: ltr; }
.detail__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.detail__block--cad .detail__body {
  height: 520px;
  justify-content: space-between;
  overflow: hidden;
}
.detail__block--cad .detail__part + .detail__part { margin-top: 0; }
/* 日文版 CAD 页：收紧行距与标题行高（不改字体大小），使正文装回 520px 固定高度，与左图上下对齐；模块间距由 space-between 自动分配 */
body[data-lang="jp"] .detail__block--cad .detail__text { line-height: 1.7; }
body[data-lang="jp"] .detail__block--cad .detail__label { line-height: 1.4; margin-bottom: 6px; }
/* 日文版 CAD 页：文字整体左移加宽（图列略窄、间距收紧），每行多放约 6 字，减少换行截断；图为 cover 裁切，高度不变 */
body[data-lang="jp"] .detail__block--cad .detail__grid { grid-template-columns: 5fr 5fr; gap: 32px; }
/* i18n 文案强制同行片段（如日文 CAD 页「して…サービス」）；窄屏回退正常换行防溢出 */
.i18n-nowrap { white-space: nowrap; }
@media (max-width: 760px) { .i18n-nowrap { white-space: normal; } }
.detail__body .detail__text a {
  color: var(--color-gold);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.25s;
}
.detail__body .detail__text a:hover { border-bottom-color: var(--color-gold); }
.detail__nav {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 64px;
  padding-top: 32px;
  border-top: 1px solid var(--color-line);
}
.detail__nav a {
  font-size: 15px;
  font-weight: 600;
  color: var(--color-text-soft);
  transition: color 0.25s;
}
.detail__nav a:hover { color: var(--color-gold); }
.detail__nav a.is-current { color: var(--color-text); border-bottom: 2px solid var(--color-gold); padding-bottom: 2px; }

@media (max-width: 960px) {
  .detail__grid { grid-template-columns: 1fr; gap: 32px; }
  .detail__media { height: 300px; }
  .detail__block--cad .detail__body {
    height: auto;
    justify-content: center;
    overflow: visible;
  }
  .detail__block--cad .detail__part + .detail__part { margin-top: 34px; }
  .detail__media--pertex { height: 120px; }
  .subhero__banner { height: 280px; }
  .subhero__head .section__title { font-size: 30px; }
}

/* ============ 页脚 Footer ============ */
.footer { background: #ffffff; color: var(--color-text-soft); padding: 72px 0 0; border-top: 1px solid var(--color-line); }
.footer__grid {
  display: grid;
  grid-template-columns: 1fr 1fr 0.8fr;
  gap: 40px;
  padding-bottom: 56px;
}
.footer__title { font-size: 19px; color: var(--color-text); margin-bottom: 20px; font-weight: 700; }
.footer__col ul li { padding: 7px 0; font-size: 15px; color: var(--color-text-soft); cursor: pointer; transition: color 0.2s; }
.footer__col ul li:hover { color: var(--color-gold); }
.footer__col--brand { text-align: center; padding-top: 0; }
.footer__company { font-size: 22px; font-weight: 800; color: var(--color-text); margin-bottom: 16px; }
.footer__contact { font-size: 14px; color: var(--color-text-soft); margin-bottom: 8px; }
.footer__bottom {
  border-top: 1px solid var(--color-line);
  padding: 24px 0;
  text-align: center;
  font-size: 13px;
  color: #999;
}
.footer__beian {
  margin-top: 6px;
}
.footer__beian a {
  color: #999;
  transition: color 0.25s;
}
.footer__beian a:hover { color: var(--color-gold); }
.footer__gongan {
  margin-top: 6px;
}
.footer__gongan a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: #999;
  transition: color 0.25s;
}
.footer__gongan img {
  width: 20px;
  height: 20px;
  object-fit: contain;
  flex: none;
}
.footer__gongan a:hover { color: var(--color-gold); }

/* ============ 联系我们 Contact ============ */
.contact { padding-top: 32px; padding-bottom: 120px; }
.contact__inner { max-width: 960px; margin: 0 auto; }
.contact__text {
  font-size: 13px;
  line-height: 2;
  color: var(--color-text-soft);
  margin-bottom: 8px;
  text-align: left;
}
.contact__form { display: flex; flex-direction: column; gap: 28px; }
.contact__row {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 16px;
  align-items: start;
}
.contact__label-group {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.contact__label {
  font-size: 15px;
  font-weight: 700;
  color: var(--color-text);
  padding-top: 2px;
  white-space: nowrap;
  flex-shrink: 0;
}
.contact__required {
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  background: var(--color-accent);
  padding: 2px 10px;
  border-radius: 2px;
  white-space: nowrap;
  flex-shrink: 0;
}
.contact__input {
  width: 100%;
  border: 1px solid var(--color-line);
  border-radius: 2px;
  padding: 12px 14px;
  font-size: 14px;
  font-family: inherit;
  color: var(--color-text);
  background: #fff;
  transition: border-color 0.25s;
  outline: none;
}
.contact__input:focus { border-color: var(--color-gold); }
.contact__textarea { resize: vertical; min-height: 120px; }
.contact__submit { display: flex; justify-content: center; margin-top: 12px; }
.contact__btn {
  display: inline-block;
  padding: 14px 64px;
  border: 1px solid var(--color-gold);
  background: transparent;
  color: var(--color-gold);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 2px;
  cursor: pointer;
  transition: background 0.3s, color 0.3s;
}
.contact__btn:hover { background: var(--color-gold); color: #fff; }
.contact__btn:disabled { opacity: 0.6; cursor: default; }
.contact__btn:disabled:hover { background: var(--color-gold); color: #fff; }

@media (max-width: 720px) {
  .contact__row { grid-template-columns: 1fr; gap: 8px; }
  .contact__label { padding-top: 0; }
}

/* CN 模式：2字符标签用 letter-spacing 撑开，与4字符标签视觉等宽 */
body:not([data-lang="jp"]) .contact__row:nth-child(2) .contact__label {
  letter-spacing: 2em;
  margin-right: -2em;
}

/* JP 模式：标签固定宽度，使"必需"徽章对齐到同一列 */
body[data-lang="jp"] .contact__label {
  width: 100px;
}

/* ============ 提交成功提示 Toast ============ */
.toast {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.9);
  background: rgba(0, 0, 0, 0.72);
  color: #fff;
  padding: 20px 36px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 15px;
  z-index: 9999;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s, transform 0.3s var(--ease);
}
.toast.is-visible {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
  pointer-events: auto;
}
.toast__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--color-gold);
  font-size: 14px;
  font-weight: 700;
  flex: none;
}

/* ============ 滚动进场动画 ============ */
.reveal { opacity: 0; transform: translateY(40px); transition: opacity 0.8s var(--ease), transform 0.8s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }

/* ============ 响应式 ============ */
@media (max-width: 960px) {
  .hero__grid { flex-direction: column; }
  .hero__copy { width: 100%; margin-right: 0; padding: 0 0 24px; }
  .hero__media { width: 100%; }
  .about__grid { flex-direction: column; }
  .about__media { width: 100%; aspect-ratio: 3 / 2; }
  .about__body { width: 100%; margin-left: 0; padding: 28px 24px; }
  .about__head { justify-content: flex-start; }
  .about__head-inner { grid-column: 1; }
  .service__body { grid-template-columns: 1fr; gap: 32px; }
  .service__item { height: 320px; }
  .philosophy__top { gap: 32px; }
  .values { grid-template-columns: repeat(2, 1fr); gap: 48px 40px; }
  .network--map { padding-top: calc(var(--header-h) + 32px); }
  .network__tagline { font-size: 20px; }
  .network__map { margin-top: 32px; }
  .network__regions { grid-template-columns: repeat(2, 1fr); }
  .overview { padding-bottom: 120px; }
  .overview .about__lead { font-size: 34px; }
  .footer__grid { grid-template-columns: 1fr; }
  .footer__col--brand { text-align: left; }
}

@media (max-width: 720px) {
  .section { padding: 72px 0; }
  .container, .header__inner { padding-left: 20px; padding-right: 20px; }
  .nav, .lang, .admin-link, .admin-link.is-enabled { display: none; }
  .nav.is-open {
    display: flex;
    position: fixed;
    top: var(--header-h); left: 0; right: 0;
    flex-direction: column;
    gap: 0;
    background: #fff;
    padding: 12px 20px;
    border-bottom: 1px solid var(--color-line);
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
  }
  .nav.is-open .nav__link { padding: 14px 0; border-bottom: 1px solid var(--color-line); }
  .nav-toggle { display: flex; margin-left: auto; }
  .section__title { font-size: 28px; }
  .overview { padding-top: 48px; padding-bottom: 90px; }
  .overview .about__lead { font-size: 28px; }
  .overview__intro { font-size: 13px; }
  .service__head { flex-direction: column; align-items: flex-start; gap: 4px; }
  .service__head-inner { grid-column: 1; flex-direction: column; align-items: flex-start; gap: 4px; }
  .service__gallery { grid-template-columns: 1fr; }
  .news__link { flex-wrap: wrap; gap: 10px; }
  .article__title { font-size: 22px; }
  .news-nav { justify-content: center; gap: 14px; }
  .values { grid-template-columns: 1fr; }
  .network--map .section__title { font-size: 32px; }
  .network__tagline { font-size: 18px; }
  .network__regions { grid-template-columns: 1fr; }
}
