/* ============================================================
   夏娃信息 · xw- 设计系统
   柔雾裸粉 × 玫瑰豆沙浪漫暖调（低饱和 dusty rose）
   基元：拱门圆弧 / 双环相扣 / 圆拱顶卡片 / 丝带横幅
   零图片纯 CSS（BR-7）；BEM，xw- 前缀（BR-1）
   ============================================================ */

:root {
  --xw-bg: #fbf5f3;        /* 雾粉米白底 */
  --xw-rose: #b76e79;      /* 玫瑰豆沙（主色） */
  --xw-rose-dim: #a05c68;  /* 玫瑰豆沙加深（hover） */
  --xw-ink: #46292f;       /* 深酒褐（正文） */
  --xw-ink-soft: #6f4d53;  /* 次级文字（对比度 ≥ 4.5:1） */
  --xw-blush: #f2dedb;     /* 浅藕粉（面板底） */
  --xw-line: #e8d2cd;      /* 细线 */
  --xw-white: #fffdfc;
  --xw-serif: "KaiTi", "STKaiti", "Kaiti SC", "楷体", serif;
  --xw-sans: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--xw-sans);
  color: var(--xw-ink);
  background: var(--xw-bg);
  line-height: 1.85;
  font-size: 16px;
}

a { color: inherit; text-decoration: none; }

/* ---------- 版心 ---------- */
.xw-shell { max-width: 1080px; margin: 0 auto; padding: 0 24px; }

/* ---------- 顶栏 ---------- */
.xw-topbar {
  position: sticky; top: 0; z-index: 50;
  background: rgba(251, 245, 243, .94);
  border-bottom: 1px solid var(--xw-line);
  backdrop-filter: blur(6px);
}
.xw-topbar__row {
  display: flex; align-items: center; justify-content: space-between;
  min-height: 66px;
}
.xw-topbar__brand {
  font-family: var(--xw-serif);
  font-size: 24px; font-weight: 700; letter-spacing: 2px;
}
.xw-topbar__brand-dot {
  display: inline-block; width: 10px; height: 10px;
  border: 2px solid var(--xw-rose); border-radius: 50%;
  margin-right: 8px; vertical-align: 2px;
}
.xw-nav { display: flex; gap: 30px; align-items: center; }
.xw-nav__link {
  font-size: 15px; letter-spacing: 1px; color: var(--xw-ink-soft);
  padding: 4px 2px; border-bottom: 2px solid transparent;
  transition: color .2s, border-color .2s;
}
.xw-nav__link:hover { color: var(--xw-rose); }
.xw-nav__link.is-here {
  color: var(--xw-ink); font-weight: 600;
  border-bottom-color: var(--xw-rose);
}
.xw-nav__call {
  border: 1px solid var(--xw-rose); color: var(--xw-rose);
  border-radius: 999px; padding: 6px 18px; font-size: 14px;
  transition: background .2s, color .2s;
}
.xw-nav__call:hover { background: var(--xw-rose); color: var(--xw-white); }

/* 汉堡（仅 JS 环境启用折叠） */
.xw-burger {
  display: none; background: none; border: none; cursor: pointer;
  width: 40px; height: 40px; position: relative;
}
.xw-burger__bar,
.xw-burger__bar::before,
.xw-burger__bar::after {
  content: ""; display: block; position: absolute; left: 8px;
  width: 24px; height: 2px; background: var(--xw-ink);
  transition: transform .25s, opacity .25s;
}
.xw-burger__bar { top: 19px; }
.xw-burger__bar::before { left: 0; top: -8px; }
.xw-burger__bar::after { left: 0; top: 8px; }
.xw-burger.is-open .xw-burger__bar { background: transparent; }
.xw-burger.is-open .xw-burger__bar::before { transform: translateY(8px) rotate(45deg); }
.xw-burger.is-open .xw-burger__bar::after { transform: translateY(-8px) rotate(-45deg); }

/* ---------- 拱门 Hero ---------- */
.xw-arch { padding: 64px 0 72px; text-align: center; }
.xw-arch__frame {
  max-width: 760px; margin: 0 auto;
  background: linear-gradient(180deg, var(--xw-blush) 0%, var(--xw-bg) 88%);
  border: 1px solid var(--xw-line);
  border-radius: 380px 380px 24px 24px;
  padding: 96px 40px 56px;
  position: relative;
}
.xw-arch__frame::before {
  content: ""; position: absolute; inset: 14px;
  border: 1px dashed var(--xw-line);
  border-radius: 366px 366px 16px 16px;
  pointer-events: none;
}
.xw-arch__eyebrow {
  font-size: 14px; letter-spacing: 5px; color: var(--xw-rose);
  margin-bottom: 18px;
}
.xw-arch__title {
  font-family: var(--xw-serif);
  font-size: 42px; line-height: 1.5; font-weight: 700;
  margin-bottom: 18px;
}
.xw-arch__sub {
  color: var(--xw-ink-soft); max-width: 460px; margin: 0 auto 34px;
}
.xw-arch__acts { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }

/* ---------- 按钮 ---------- */
.xw-btn {
  display: inline-block; border-radius: 999px;
  padding: 11px 32px; font-size: 15px; letter-spacing: 2px;
  transition: background .2s, color .2s, border-color .2s;
}
.xw-btn--fill { background: var(--xw-rose); color: var(--xw-white); }
.xw-btn--fill:hover { background: var(--xw-rose-dim); }
.xw-btn--line { border: 1px solid var(--xw-rose); color: var(--xw-rose); }
.xw-btn--line:hover { background: var(--xw-rose); color: var(--xw-white); }

/* ---------- 版块公共 ---------- */
.xw-belt { padding: 72px 0; }
.xw-belt--tint { background: var(--xw-blush); }
.xw-belt__head { text-align: center; margin-bottom: 44px; }
.xw-belt__cn {
  font-family: var(--xw-serif);
  font-size: 32px; font-weight: 700; letter-spacing: 3px;
}
.xw-belt__hint { color: var(--xw-ink-soft); font-size: 15px; margin-top: 8px; }
.xw-belt__stroke {
  width: 46px; height: 3px; background: var(--xw-rose);
  border-radius: 2px; margin: 16px auto 0;
}

/* ---------- 圆拱顶服务卡 ---------- */
.xw-vows { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.xw-vowcard {
  background: var(--xw-white);
  border: 1px solid var(--xw-line);
  border-radius: 150px 150px 18px 18px;
  padding: 52px 26px 34px;
  text-align: center;
  transition: transform .25s, box-shadow .25s;
}
.xw-vowcard:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 38px rgba(183, 110, 121, .16);
}
.xw-vowcard__no {
  font-family: var(--xw-serif);
  font-size: 15px; color: var(--xw-rose); letter-spacing: 3px;
  margin-bottom: 12px;
}
.xw-vowcard__name {
  font-family: var(--xw-serif);
  font-size: 21px; font-weight: 700; line-height: 1.6;
  margin-bottom: 12px;
}
.xw-vowcard__note { font-size: 14px; color: var(--xw-ink-soft); }

/* ---------- 双环相扣（夏娃之吻） ---------- */
.xw-kiss {
  display: flex; align-items: center; gap: 56px;
}
.xw-kiss__rings {
  flex: 0 0 220px; height: 170px; position: relative;
}
.xw-kiss__rings::before,
.xw-kiss__rings::after {
  content: ""; position: absolute; top: 15px;
  width: 140px; height: 140px; border-radius: 50%;
}
.xw-kiss__rings::before { left: 0; border: 3px solid var(--xw-rose); }
.xw-kiss__rings::after { left: 78px; border: 3px solid var(--xw-ink); opacity: .55; }
.xw-kiss__body { flex: 1; }
.xw-kiss__tag {
  display: inline-block; font-size: 13px; letter-spacing: 3px;
  color: var(--xw-rose); border: 1px solid var(--xw-rose);
  border-radius: 999px; padding: 3px 14px; margin-bottom: 14px;
}
.xw-kiss__name {
  font-family: var(--xw-serif);
  font-size: 30px; font-weight: 700; margin-bottom: 12px;
}
.xw-kiss__text { color: var(--xw-ink-soft); margin-bottom: 10px; }
.xw-kiss__how {
  background: var(--xw-white); border: 1px dashed var(--xw-rose);
  border-radius: 14px; padding: 12px 18px;
  font-size: 15px; margin: 16px 0 22px;
}

/* ---------- 双拱入口（首页 → 关于） ---------- */
.xw-gates { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.xw-gate {
  display: block; text-align: center;
  background: var(--xw-white); border: 1px solid var(--xw-line);
  border-radius: 120px 120px 16px 16px;
  padding: 44px 28px 32px;
  transition: transform .25s, box-shadow .25s;
}
.xw-gate:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 34px rgba(183, 110, 121, .15);
}
.xw-gate__name {
  font-family: var(--xw-serif);
  font-size: 22px; font-weight: 700; margin-bottom: 8px;
}
.xw-gate__note { font-size: 14px; color: var(--xw-ink-soft); margin-bottom: 14px; }
.xw-gate__go { font-size: 14px; color: var(--xw-rose); letter-spacing: 2px; }

/* ---------- 丝带 CTA ---------- */
.xw-ribbon {
  background: var(--xw-rose); color: var(--xw-white);
  border-radius: 18px; position: relative;
  padding: 40px 44px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; flex-wrap: wrap;
}
.xw-ribbon::before,
.xw-ribbon::after {
  content: ""; position: absolute; top: 18px; bottom: 18px; width: 5px;
  background: rgba(255, 253, 252, .5); border-radius: 3px;
}
.xw-ribbon::before { left: 16px; }
.xw-ribbon::after { right: 16px; }
.xw-ribbon__say {
  font-family: var(--xw-serif);
  font-size: 24px; font-weight: 700; letter-spacing: 2px;
}
.xw-ribbon__hint { font-size: 14px; opacity: .9; margin-top: 4px; }
.xw-ribbon__hint a { color: inherit; text-decoration: underline; }
.xw-ribbon__dial {
  background: var(--xw-white); color: var(--xw-rose);
  border-radius: 999px; padding: 12px 34px;
  font-size: 18px; font-weight: 700; letter-spacing: 1px;
  transition: transform .2s;
}
.xw-ribbon__dial:hover { transform: scale(1.04); }

/* ---------- 服务详情（services #list） ---------- */
.xw-rites { display: grid; gap: 26px; }
.xw-rite {
  display: flex; gap: 34px; align-items: flex-start;
  background: var(--xw-white); border: 1px solid var(--xw-line);
  border-radius: 18px; padding: 36px 38px;
}
.xw-rite__no {
  flex: 0 0 auto;
  font-family: var(--xw-serif);
  font-size: 40px; color: var(--xw-rose); line-height: 1;
  border-bottom: 3px solid var(--xw-blush); padding-bottom: 8px;
}
.xw-rite__name {
  font-family: var(--xw-serif);
  font-size: 23px; font-weight: 700; margin-bottom: 10px; line-height: 1.6;
}
.xw-rite__text { color: var(--xw-ink-soft); }

/* ---------- 关于页 ---------- */
.xw-paper {
  background: var(--xw-white); border: 1px solid var(--xw-line);
  border-radius: 18px; padding: 40px 44px;
}
.xw-paper__text { color: var(--xw-ink-soft); margin-bottom: 10px; }
.xw-facts {
  list-style: none; margin-top: 22px;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
}
.xw-facts__item {
  background: var(--xw-blush); border-radius: 90px 90px 12px 12px;
  padding: 26px 18px 18px; text-align: center;
}
.xw-facts__k { font-size: 13px; letter-spacing: 2px; color: var(--xw-rose); margin-bottom: 6px; }
.xw-facts__v { font-size: 15px; line-height: 1.7; }

.xw-creeds { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.xw-creed {
  text-align: center; background: var(--xw-white);
  border: 1px solid var(--xw-line); border-radius: 18px;
  padding: 36px 24px;
}
.xw-creed__word {
  font-family: var(--xw-serif);
  font-size: 34px; font-weight: 700; color: var(--xw-rose);
  margin-bottom: 10px;
}
.xw-creed__note { font-size: 14px; color: var(--xw-ink-soft); }

.xw-reach { text-align: center; }
.xw-reach__phone {
  display: inline-block;
  font-family: var(--xw-serif);
  font-size: 40px; font-weight: 700; color: var(--xw-rose);
  letter-spacing: 2px; margin: 10px 0 6px;
}
.xw-reach__phone:hover { color: var(--xw-rose-dim); }
.xw-reach__line { color: var(--xw-ink-soft); font-size: 15px; margin-top: 6px; }

/* ---------- 页脚 ---------- */
.xw-foot {
  border-top: 1px solid var(--xw-line);
  background: var(--xw-blush);
  padding: 44px 0 30px; margin-top: 72px;
  text-align: center;
}
.xw-foot__brand {
  font-family: var(--xw-serif);
  font-size: 20px; font-weight: 700; letter-spacing: 2px;
  margin-bottom: 14px;
}
.xw-foot__nav { display: flex; gap: 26px; justify-content: center; margin-bottom: 14px; }
.xw-foot__nav a { font-size: 14px; color: var(--xw-ink-soft); }
.xw-foot__nav a:hover { color: var(--xw-rose); }
.xw-foot__tel { font-size: 15px; margin-bottom: 16px; }
.xw-foot__tel a { color: var(--xw-rose); font-weight: 600; }
.xw-foot__law {
  font-size: 13px; color: var(--xw-ink-soft);
  border-top: 1px dashed var(--xw-line);
  padding-top: 16px; max-width: 560px; margin: 0 auto;
}
.xw-foot__law a { color: var(--xw-ink-soft); text-decoration: underline; }
.xw-foot__law a:hover { color: var(--xw-rose); }

/* ---------- 渐显（仅 JS 环境） ---------- */
.xw-js .xw-rise {
  opacity: 0; transform: translateY(16px);
  transition: opacity .6s ease, transform .6s ease;
}
.xw-js .xw-rise.is-shown { opacity: 1; transform: none; }

/* ---------- 响应式 ---------- */
@media (max-width: 900px) {
  .xw-vows { grid-template-columns: 1fr; }
  .xw-gates { grid-template-columns: 1fr; }
  .xw-creeds { grid-template-columns: 1fr; }
  .xw-facts { grid-template-columns: 1fr; }
  .xw-kiss { flex-direction: column; gap: 30px; text-align: center; }
  .xw-kiss__rings { flex-basis: auto; width: 220px; margin: 0 auto; }
}

@media (max-width: 768px) {
  .xw-arch__title { font-size: 30px; }
  .xw-belt { padding: 52px 0; }
  .xw-belt__cn { font-size: 26px; }
  .xw-arch__frame { border-radius: 200px 200px 20px 20px; padding: 64px 22px 40px; }
  .xw-arch__frame::before { border-radius: 190px 190px 14px 14px; }
  .xw-rite { flex-direction: column; gap: 14px; padding: 28px 22px; }
  .xw-ribbon { justify-content: center; text-align: center; padding: 32px 30px; }
  .xw-reach__phone { font-size: 30px; }

  /* 无 JS：导航纵向平铺始终可用；有 JS：折叠为汉堡菜单 */
  .xw-topbar__row { flex-wrap: wrap; padding: 12px 0; }
  .xw-nav {
    width: 100%; flex-direction: column; gap: 0;
    align-items: stretch; text-align: center;
    border-top: 1px solid var(--xw-line); margin-top: 10px;
  }
  .xw-nav__link { padding: 12px 0; border-bottom: 1px solid var(--xw-line); }
  .xw-nav__link.is-here { border-bottom-color: var(--xw-line); background: var(--xw-blush); }
  .xw-nav__call { margin: 12px auto 4px; }

  .xw-js .xw-burger { display: block; }
  .xw-js .xw-nav { display: none; }
  .xw-js .xw-nav.is-open { display: flex; }
}
