:root{
  --ink:#332f2b;
  --ink-soft:#6f6862;
  --ink-faint:#9a938c;
  --paper:#fdfbf6;
  --paper-2:#f7f2ea;
  --paper-3:#f1eade;
  --wash-rose:#f0aaa3;
  --wash-blue:#a4c7de;
  --wash-violet:#c1b3d9;
  --wash-sage:#b5cdb1;
  --wash-amber:#eac79c;
  --line:rgba(51,47,43,.10);
  --line-strong:rgba(51,47,43,.18);
  --radius-l:30px;
  --radius-m:20px;
  --radius-s:14px;
  --shadow-soft:0 22px 48px -30px rgba(96,78,66,.55);
  --shadow-lift:0 34px 70px -34px rgba(96,78,66,.62);
  --font-serif:"Noto Serif SC","Songti SC","STSong","SimSun",Georgia,"Times New Roman",serif;
  --font-sans:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",system-ui,-apple-system,sans-serif;
  --ease:cubic-bezier(.2,.8,.3,1);
}

*,
*::before,
*::after{ box-sizing:border-box; }

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}

body{
  margin:0;
  min-height:100vh;
  position:relative;
  overflow-x:hidden;
  background-color:var(--paper);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.8;
  letter-spacing:.015em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* ============ 水彩晕染底层 ============ */
body::before{
  content:"";
  position:fixed;
  inset:-18%;
  z-index:-2;
  pointer-events:none;
  background:
    radial-gradient(38% 40% at 12% 14%, rgba(240,170,163,.62), rgba(240,170,163,0) 70%),
    radial-gradient(34% 38% at 88% 6%, rgba(164,199,222,.60), rgba(164,199,222,0) 70%),
    radial-gradient(42% 38% at 80% 76%, rgba(193,179,217,.50), rgba(193,179,217,0) 72%),
    radial-gradient(36% 34% at 6% 84%, rgba(181,205,177,.55), rgba(181,205,177,0) 70%),
    radial-gradient(30% 26% at 52% 48%, rgba(234,199,156,.32), rgba(234,199,156,0) 72%);
  filter:blur(46px);
  opacity:.9;
}

body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.36;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.86' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.30'/%3E%3C/svg%3E");
}

::selection{
  background:rgba(240,170,163,.45);
  color:var(--ink);
}

img{ max-width:100%; display:block; }

a{
  color:inherit;
  text-decoration:none;
  transition:color .35s var(--ease), opacity .35s var(--ease);
}

h1,h2,h3,h4,h5{
  font-family:var(--font-serif);
  font-weight:600;
  line-height:1.3;
  letter-spacing:.01em;
  margin:0 0 .6em;
  color:var(--ink);
}

p{ margin:0 0 1.1em; }

ul,ol{ margin:0; padding:0; list-style:none; }

/* ============ 布局 ============ */
.container{
  width:100%;
  max-width:1180px;
  margin:0 auto;
  padding:0 28px;
}

.section{
  position:relative;
  padding:96px 0;
}

.section::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  width:min(880px,86%);
  height:1px;
  transform:translateX(-50%);
  background:linear-gradient(90deg,rgba(51,47,43,0) 0%,rgba(51,47,43,.11) 22%,rgba(51,47,43,.11) 78%,rgba(51,47,43,0) 100%);
  opacity:.8;
}

.section:last-of-type::after{ display:none; }

.section-label{
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin-bottom:18px;
  padding:4px 0;
  font-family:var(--font-sans);
  font-size:13px;
  font-weight:600;
  letter-spacing:.3em;
  color:var(--ink-soft);
}

.section-label::before{
  content:"";
  width:38px;
  height:4px;
  border-radius:6px;
  background:linear-gradient(90deg,var(--wash-rose),var(--wash-blue) 58%,var(--wash-violet));
  filter:blur(.5px);
  opacity:.9;
}

.section-title{
  font-size:clamp(28px,3.9vw,44px);
  line-height:1.28;
  margin:0 0 20px;
  max-width:820px;
  position:relative;
}

.section-desc{
  max-width:660px;
  margin:0 0 8px;
  font-size:16.5px;
  line-height:1.95;
  color:var(--ink-soft);
}

.text-center.section-title,
.text-center.section-desc,
.text-center.section-label{
  margin-left:auto;
  margin-right:auto;
}

.text-center .section-label{ justify-content:center; }

/* ============ 导航 ============ */
.site-header{
  position:sticky;
  top:0;
  z-index:200;
  background:rgba(253,251,246,.74);
  backdrop-filter:blur(20px) saturate(150%);
  -webkit-backdrop-filter:blur(20px) saturate(150%);
  border-bottom:1px solid rgba(51,47,43,.07);
  transition:background .4s var(--ease), box-shadow .4s var(--ease);
}

.site-header::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:2px;
  background:linear-gradient(90deg,
    rgba(240,170,163,0) 0%,
    rgba(240,170,163,.65) 18%,
    rgba(164,199,222,.65) 46%,
    rgba(193,179,217,.6) 72%,
    rgba(234,199,156,0) 100%);
  filter:blur(1.2px);
  opacity:.75;
  pointer-events:none;
}

.header-inner{
  max-width:1180px;
  margin:0 auto;
  padding:15px 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:26px;
}

.logo{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:var(--font-serif);
  font-size:19px;
  font-weight:600;
  letter-spacing:.06em;
  color:var(--ink);
  white-space:nowrap;
}

.logo-icon{
  position:relative;
  width:42px;
  height:42px;
  flex:0 0 42px;
  border-radius:52% 48% 46% 54% / 50% 46% 54% 50%;
  background:
    radial-gradient(60% 60% at 30% 26%, rgba(255,255,255,.85), rgba(255,255,255,0) 62%),
    radial-gradient(70% 70% at 72% 74%, var(--wash-violet), rgba(193,179,217,0) 70%),
    linear-gradient(140deg, var(--wash-rose), var(--wash-amber) 58%, var(--wash-blue));
  box-shadow:
    0 12px 24px -14px rgba(214,138,126,.95),
    inset 0 0 0 1px rgba(255,255,255,.6);
  animation:logoSpin 16s linear infinite;
}

.logo-icon::after{
  content:"";
  position:absolute;
  inset:32%;
  border-radius:50%;
  background:rgba(255,255,255,.85);
  box-shadow:0 0 12px rgba(255,255,255,.9);
}

@keyframes logoSpin{
  0%{ border-radius:52% 48% 46% 54% / 50% 46% 54% 50%; }
  33%{ border-radius:44% 56% 58% 42% / 56% 42% 58% 44%; }
  66%{ border-radius:58% 42% 44% 56% / 44% 58% 42% 56%; }
  100%{ border-radius:52% 48% 46% 54% / 50% 46% 54% 50%; }
}

.main-nav{
  display:flex;
  align-items:center;
  gap:30px;
  margin-left:auto;
}

.main-nav a{
  position:relative;
  font-size:15px;
  font-weight:500;
  color:var(--ink-soft);
  padding:6px 2px;
  letter-spacing:.04em;
  white-space:nowrap;
}

.main-nav a::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-2px;
  width:0;
  height:6px;
  border-radius:6px;
  transform:translateX(-50%);
  background:linear-gradient(90deg,rgba(240,170,163,.85),rgba(164,199,222,.85));
  filter:blur(2.5px);
  transition:width .45s var(--ease);
  opacity:.9;
}

.main-nav a:hover{ color:var(--ink); }
.main-nav a:hover::after{ width:100%; }

.nav-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-left:8px;
  padding:11px 24px;
  border-radius:999px;
  font-size:14px;
  font-weight:600;
  letter-spacing:.06em;
  color:#fff;
  background:linear-gradient(135deg,#ef9a94 0%,#e6b48f 55%,#c8b3dd 100%);
  box-shadow:
    0 14px 28px -16px rgba(214,138,126,.9),
    inset 0 1px 0 rgba(255,255,255,.55);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), filter .4s var(--ease);
}

.nav-cta:hover{
  transform:translateY(-2px);
  filter:saturate(115%);
  box-shadow:
    0 20px 36px -16px rgba(214,138,126,1),
    inset 0 1px 0 rgba(255,255,255,.6);
}

.menu-toggle{
  display:none;
  position:relative;
  width:44px;
  height:44px;
  flex:0 0 44px;
  padding:0;
  border-radius:50%;
  border:1px solid var(--line-strong);
  background:rgba(255,255,255,.66);
  cursor:pointer;
  transition:background .3s var(--ease), transform .3s var(--ease);
}

.menu-toggle::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:18px;
  height:2px;
  border-radius:2px;
  background:var(--ink);
  transform:translate(-50%,-50%);
  box-shadow:0 -6px 0 var(--ink), 0 6px 0 var(--ink);
  transition:box-shadow .3s var(--ease);
}

.menu-toggle:hover{ background:#fff; transform:scale(1.04); }

/* ============ 按钮 ============ */
.btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:15px 34px;
  border:1px solid transparent;
  border-radius:999px;
  font-family:var(--font-sans);
  font-size:15px;
  font-weight:600;
  letter-spacing:.05em;
  line-height:1;
  cursor:pointer;
  text-decoration:none;
  overflow:hidden;
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), color .4s var(--ease), background .45s var(--ease);
}

.btn::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:radial-gradient(120% 120% at 20% 0%, rgba(255,255,255,.55), rgba(255,255,255,0) 55%);
  opacity:0;
  transition:opacity .45s var(--ease);
  pointer-events:none;
}

.btn:hover::after{ opacity:1; }

.btn-primary{
  color:#fff;
  background:linear-gradient(135deg,#ef9a94 0%,#e6b48f 54%,#c8b3dd 100%);
  box-shadow:
    0 18px 34px -18px rgba(214,138,126,.95),
    inset 0 1px 0 rgba(255,255,255,.55);
}

.btn-primary:hover{
  transform:translateY(-3px);
  box-shadow:
    0 26px 46px -18px rgba(214,138,126,1),
    inset 0 1px 0 rgba(255,255,255,.65);
}

.btn-outline{
  color:var(--ink);
  background:rgba(255,255,255,.62);
  border-color:var(--line-strong);
  backdrop-filter:blur(6px);
  box-shadow:0 12px 26px -22px rgba(96,78,66,.8);
}

.btn-outline::after{
  background:
    radial-gradient(80% 140% at 12% 10%, rgba(240,170,163,.55), rgba(240,170,163,0) 62%),
    radial-gradient(80% 140% at 88% 90%, rgba(164,199,222,.55), rgba(164,199,222,0) 62%);
}

.btn-outline:hover{
  transform:translateY(-3px);
  border-color:rgba(51,47,43,.26);
  color:var(--ink);
}

/* ============ 首屏 ============ */
.hero{
  position:relative;
  padding:86px 0 104px;
  overflow:hidden;
}

.hero .container{
  display:grid;
  grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);
  gap:64px;
  align-items:center;
}

.hero-content{
  position:relative;
  z-index:2;
  max-width:620px;
}

.hero-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:11px;
  padding:8px 20px 8px 14px;
  border-radius:999px;
  font-size:13px;
  font-weight:600;
  letter-spacing:.18em;
  color:var(--ink-soft);
  background:rgba(255,255,255,.7);
  border:1px solid rgba(51,47,43,.08);
  backdrop-filter:blur(8px);
  box-shadow:0 12px 26px -22px rgba(96,78,66,.9);
}

.hero-eyebrow::before{
  content:"";
  width:9px;
  height:9px;
  border-radius:50%;
  background:radial-gradient(circle at 32% 30%, #f8c0ba, #d98a83);
  box-shadow:0 0 0 4px rgba(240,170,163,.3);
}

.hero-content h1{
  margin:24px 0 22px;
  font-family:var(--font-serif);
  font-size:clamp(34px,5vw,60px);
  line-height:1.24;
  letter-spacing:.012em;
}

.hero-content p{
  max-width:530px;
  font-size:17px;
  line-height:1.95;
  color:var(--ink-soft);
}

.hero-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin-top:38px;
}

.hero-image{
  position:relative;
  z-index:1;
  min-height:400px;
  border-radius:48% 52% 44% 56% / 46% 44% 56% 54%;
  overflow:hidden;
  background:
    radial-gradient(58% 58% at 28% 24%, rgba(240,170,163,.92), rgba(240,170,163,0) 64%),
    radial-gradient(56% 56% at 78% 28%, rgba(164,199,222,.88), rgba(164,199,222,0) 66%),
    radial-gradient(62% 62% at 62% 80%, rgba(193,179,217,.82), rgba(193,179,217,0) 68%),
    radial-gradient(52% 52% at 16% 74%, rgba(234,199,156,.85), rgba(234,199,156,0) 68%),
    linear-gradient(160deg,#fbf6ee,#f3ece0);
  box-shadow:
    0 46px 80px -46px rgba(96,78,66,.7),
    inset 0 0 0 1px rgba(255,255,255,.82),
    inset 0 0 60px rgba(255,255,255,.5);
  animation:floaty 13s ease-in-out infinite;
}

.hero-image::before{
  content:"";
  position:absolute;
  inset:14px;
  border-radius:inherit;
  border:1px solid rgba(255,255,255,.7);
  pointer-events:none;
}

.hero-image::after{
  content:"";
  position:absolute;
  inset:-28%;
  background:
    radial-gradient(35% 35% at 30% 40%, rgba(255,255,255,.6), rgba(255,255,255,0) 70%),
    radial-gradient(30% 30% at 72% 66%, rgba(255,255,255,.5), rgba(255,255,255,0) 70%);
  filter:blur(22px);
  pointer-events:none;
  animation:washShift 18s ease-in-out infinite alternate;
}

.hero-image img{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:inherit;
  mix-blend-mode:multiply;
}

@keyframes floaty{
  0%,100%{ transform:translateY(0) rotate(-.6deg); }
  50%{ transform:translateY(-16px) rotate(.5deg); }
}

@keyframes washShift{
  0%{ transform:translate3d(-3%,-2%,0) scale(1); }
  100%{ transform:translate3d(3%,2%,0) scale(1.08); }
}

/* ============ 卡片 ============ */
.cards-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(266px,1fr));
  gap:28px;
  margin-top:52px;
}

.category-card{
  position:relative;
  display:flex;
  flex-direction:column;
  padding:36px 30px 32px;
  border-radius:var(--radius-l);
  border:1px solid rgba(51,47,43,.075);
  background:rgba(255,255,255,.66);
  backdrop-filter:blur(8px);
  overflow:hidden;
  isolation:isolate;
  box-shadow:var(--shadow-soft);
  transition:transform .55s var(--ease), box-shadow .55s var(--ease), border-color .55s var(--ease), background .55s var(--ease);
}

.category-card::before{
  content:"";
  position:absolute;
  left:-30%;
  right:-30%;
  bottom:-56%;
  height:78%;
  z-index:-1;
  border-radius:50%;
  background:
    radial-gradient(60% 60% at 30% 50%, rgba(240,170,163,.85), rgba(240,170,163,0) 70%),
    radial-gradient(60% 60% at 72% 46%, rgba(164,199,222,.8), rgba(164,199,222,0) 70%),
    radial-gradient(60% 60% at 52% 72%, rgba(234,199,156,.7), rgba(234,199,156,0) 72%);
  filter:blur(28px);
  opacity:0;
  transition:opacity .6s var(--ease), transform .8s var(--ease);
}

.category-card:hover{
  transform:translateY(-8px);
  background:rgba(255,255,255,.86);
  border-color:rgba(51,47,43,.13);
  box-shadow:var(--shadow-lift);
}

.category-card:hover::before{
  opacity:.9;
  transform:translateY(-12%);
}

.card-icon{
  position:relative;
  width:60px;
  height:60px;
  margin-bottom:24px;
  display:grid;
  place-items:center;
  border-radius:54% 46% 48% 52% / 48% 52% 46% 54%;
  font-family:var(--font-serif);
  font-size:21px;
  font-weight:600;
  color:#fff;
  background:linear-gradient(140deg,#f2b0a9,#e8c19b 55%,#b9c9e0);
  box-shadow:
    0 16px 30px -18px rgba(214,138,126,.95),
    inset 0 0 0 1px rgba(255,255,255,.6);
  transition:transform .55s var(--ease), border-radius .8s var(--ease);
}

.category-card:hover .card-icon{
  transform:rotate(-6deg) scale(1.06);
  border-radius:46% 54% 56% 44% / 56% 44% 56% 44%;
}

.category-card h3{
  font-size:20px;
  margin:0 0 12px;
  letter-spacing:.02em;
}

.category-card p{
  font-size:15px;
  line-height:1.9;
  color:var(--ink-soft);
  margin:0 0 24px;
}

.card-link{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:auto;
  font-size:14.5px;
  font-weight:600;
  letter-spacing:.05em;
  color:#cf837c;
  align-self:flex-start;
}

.card-link::after{
  content:"→";
  display:inline-block;
  transition:transform .45s var(--ease);
}

.card-link::before{
  content:"";
  position:absolute;
  left:0;
  bottom:-4px;
  width:0;
  height:6px;
  border-radius:6px;
  background:linear-gradient(90deg,rgba(240,170,163,.8),rgba(164,199,222,.6));
  filter:blur(3px);
  transition:width .5s var(--ease);
}

.card-link:hover{ color:#b96c66; }
.card-link:hover::after{ transform:translateX(6px); }
.card-link:hover::before{ width:calc(100% - 6px); }

/* ============ 特性块 ============ */
.feature-block{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:70px;
  align-items:center;
  padding:14px 0;
}

.feature-image{
  position:relative;
  min-height:400px;
  border-radius:60px 24px 60px 24px;
  overflow:hidden;
  background:
    radial-gradient(52% 52% at 24% 22%, rgba(181,205,177,.92), rgba(181,205,177,0) 66%),
    radial-gradient(56% 56% at 80% 30%, rgba(164,199,222,.85), rgba(164,199,222,0) 68%),
    radial-gradient(58% 58% at 58% 84%, rgba(240,170,163,.8), rgba(240,170,163,0) 68%),
    linear-gradient(150deg,#fbf7f0,#f2ebdd);
  box-shadow:
    0 40px 74px -46px rgba(96,78,66,.7),
    inset 0 0 0 1px rgba(255,255,255,.8);
}

.feature-image::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23p)' opacity='0.22'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
  opacity:.5;
  pointer-events:none;
}

.feature-image img{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:inherit;
}

.feature-text{ max-width:560px; }

.feature-text h3{
  font-size:clamp(24px,2.8vw,32px);
  margin:0 0 18px;
  line-height:1.35;
}

.feature-text p{
  color:var(--ink-soft);
  font-size:16px;
  line-height:1.95;
}

.feature-list{
  margin-top:28px;
  display:grid;
  gap:16px;
}

.feature-list li{
  position:relative;
  padding-left:40px;
  font-size:15.5px;
  line-height:1.85;
  color:var(--ink-soft);
}

.feature-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.42em;
  width:22px;
  height:22px;
  border-radius:50%;
  background:
    radial-gradient(circle at 34% 30%, rgba(255,255,255,.9), rgba(255,255,255,0) 60%),
    linear-gradient(135deg,var(--wash-rose),var(--wash-blue));
  box-shadow:0 8px 16px -10px rgba(214,138,126,.95);
}

.feature-list li::after{
  content:"";
  position:absolute;
  left:7px;
  top:.86em;
  width:8px;
  height:4px;
  border-left:1.6px solid #fff;
  border-bottom:1.6px solid #fff;
  transform:rotate(-45deg);
  opacity:.95;
}

/* ============ 数据条 ============ */
.stats-bar{
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px;
  margin-top:56px;
  padding:52px 40px;
  border-radius:44px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.85);
  background:
    radial-gradient(62% 130% at 8% 12%, rgba(240,170,163,.62), rgba(240,170,163,0) 62%),
    radial-gradient(58% 130% at 92% 18%, rgba(164,199,222,.6), rgba(164,199,222,0) 64%),
    radial-gradient(78% 120% at 50% 108%, rgba(193,179,217,.55), rgba(193,179,217,0) 66%),
    rgba(255,255,255,.6);
  box-shadow:
    0 36px 72px -46px rgba(96,78,66,.7),
    inset 0 0 0 1px rgba(255,255,255,.6);
  backdrop-filter:blur(10px);
}

.stat-item{
  position:relative;
  text-align:center;
  padding:10px 8px;
}

.stat-item + .stat-item::before{
  content:"";
  position:absolute;
  left:0;
  top:16%;
  bottom:16%;
  width:1px;
  background:linear-gradient(180deg,rgba(51,47,43,0),rgba(51,47,43,.14),rgba(51,47,43,0));
}

.stat-number{
  display:block;
  font-family:var(--font-serif);
  font-size:clamp(30px,4vw,46px);
  font-weight:600;
  line-height:1.15;
  letter-spacing:.02em;
  color:#c07c76;
  background:linear-gradient(125deg,#d98a83 6%,#c79a8e 38%,#8fb3cd 78%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  filter:drop-shadow(0 8px 14px rgba(214,138,126,.28));
}

.stat-label{
  display:block;
  margin-top:10px;
  font-size:14px;
  letter-spacing:.16em;
  color:var(--ink-soft);
}

/* ============ 内容墙 ============ */
.content-wall{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:30px;
  margin-top:52px;
}

.content-wall-item{
  position:relative;
  display:flex;
  flex-direction:column;
  border-radius:var(--radius-l);
  overflow:hidden;
  background:rgba(255,255,255,.7);
  border:1px solid rgba(51,47,43,.075);
  backdrop-filter:blur(8px);
  box-shadow:var(--shadow-soft);
  transition:transform .55s var(--ease), box-shadow .55s var(--ease), border-color .55s var(--ease);
}

.content-wall-item::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    radial-gradient(50% 60% at 0% 0%, rgba(240,170,163,.4), rgba(240,170,163,0) 66%),
    radial-gradient(50% 60% at 100% 100%, rgba(164,199,222,.4), rgba(164,199,222,0) 66%);
  opacity:0;
  transition:opacity .6s var(--ease);
  pointer-events:none;
}

.content-wall-item:hover{
  transform:translateY(-7px);
  border-color:rgba(51,47,43,.13);
  box-shadow:var(--shadow-lift);
}

.content-wall-item:hover::before{ opacity:1; }

.content-wall-item img{
  position:relative;
  z-index:1;
  width:100%;
  height:200px;
  object-fit:cover;
  transition:transform .8s var(--ease), filter .8s var(--ease);
}

.content-wall-item:hover img{
  transform:scale(1.05);
  filter:saturate(112%) contrast(102%);
}

.content-wall-body{
  position:relative;
  z-index:1;
  padding:28px 28px 32px;
  display:flex;
  flex-direction:column;
  flex:1;
}

.content-wall-body h3{
  font-size:19px;
  line-height:1.5;
  margin:0 0 12px;
}

.content-wall-body p{
  font-size:14.8px;
  line-height:1.9;
  color:var(--ink-soft);
  margin:0 0 18px;
}

.content-wall-body .card-link{ margin-top:auto; }

/* ============ 问答 ============ */
.faq-list{
  max-width:880px;
  margin:52px auto 0;
  display:grid;
  gap:18px;
}

.faq-item{
  position:relative;
  padding:28px 32px;
  border-radius:26px;
  background:rgba(255,255,255,.68);
  border:1px solid rgba(51,47,43,.075);
  backdrop-filter:blur(8px);
  overflow:hidden;
  transition:border-color .5s var(--ease), transform .5s var(--ease), box-shadow .5s var(--ease);
  box-shadow:0 16px 38px -32px rgba(96,78,66,.8);
}

.faq-item::before{
  content:"";
  position:absolute;
  left:0;
  top:18px;
  bottom:18px;
  width:4px;
  border-radius:0 6px 6px 0;
  background:linear-gradient(180deg,var(--wash-rose),var(--wash-blue) 60%,var(--wash-violet));
  filter:blur(.6px);
  opacity:.85;
}

.faq-item:hover{
  transform:translateX(4px);
  border-color:rgba(51,47,43,.13);
  box-shadow:0 26px 52px -34px rgba(96,78,66,.85);
}

.faq-question{
  position:relative;
  display:flex;
  align-items:flex-start;
  gap:14px;
  font-family:var(--font-serif);
  font-size:17.5px;
  font-weight:600;
  line-height:1.6;
  margin:0 0 12px;
  color:var(--ink);
}

.faq-question::before{
  content:"问";
  flex:0 0 26px;
  width:26px;
  height:26px;
  margin-top:2px;
  display:grid;
  place-items:center;
  border-radius:50%;
  font-family:var(--font-sans);
  font-size:12px;
  font-weight:700;
  color:#fff;
  background:linear-gradient(135deg,#f0aaa3,#b7c8e0);
  box-shadow:0 8px 16px -10px rgba(214,138,126,.9);
}

.faq-answer{
  padding-left:40px;
  font-size:15.2px;
  line-height:1.95;
  color:var(--ink-soft);
  margin:0;
  max-height:340px;
  overflow:hidden;
  transition:max-height .5s var(--ease), opacity .5s var(--ease);
}

/* ============ 横幅 ============ */
.cta-banner{
  position:relative;
  overflow:hidden;
  margin:20px auto 0;
  padding:88px 44px;
  border-radius:52px;
  text-align:center;
  border:1px solid rgba(255,255,255,.9);
  background:
    radial-gradient(58% 110% at 14% 16%, rgba(240,170,163,.72), rgba(240,170,163,0) 62%),
    radial-gradient(56% 110% at 86% 20%, rgba(164,199,222,.7), rgba(164,199,222,0) 64%),
    radial-gradient(72% 100% at 50% 104%, rgba(193,179,217,.62), rgba(193,179,217,0) 68%),
    radial-gradient(46% 90% at 50% 46%, rgba(234,199,156,.5), rgba(234,199,156,0) 70%),
    rgba(255,255,255,.62);
  box-shadow:
    0 48px 90px -56px rgba(96,78,66,.8),
    inset 0 0 0 1px rgba(255,255,255,.7);
  backdrop-filter:blur(12px);
}

.cta-banner::before{
  content:"";
  position:absolute;
  inset:-30%;
  background:
    radial-gradient(30% 30% at 34% 40%, rgba(255,255,255,.7), rgba(255,255,255,0) 70%),
    radial-gradient(26% 26% at 70% 62%, rgba(255,255,255,.6), rgba(255,255,255,0) 70%);
  filter:blur(30px);
  pointer-events:none;
  animation:washShift 20s ease-in-out infinite alternate;
}

.cta-banner > *{ position:relative; z-index:1; }

.cta-banner h2{
  font-size:clamp(26px,3.6vw,40px);
  line-height:1.3;
  margin:0 0 18px;
}

.cta-banner p{
  max-width:600px;
  margin:0 auto 34px;
  font-size:16.5px;
  line-height:1.95;
  color:var(--ink-soft);
}

.cta-banner .hero-buttons{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:16px;
  margin-top:0;
}

/* ============ 页脚 ============ */
.site-footer{
  position:relative;
  margin-top:96px;
  padding:80px 0 0;
  overflow:hidden;
  background:linear-gradient(180deg,rgba(253,251,246,0) 0%,rgba(247,242,234,.92) 26%,#f2ebdd 100%);
  border-top:1px solid rgba(51,47,43,.06);
}

.site-footer::before{
  content:"";
  position:absolute;
  top:-2px;
  left:0;
  right:0;
  height:3px;
  background:linear-gradient(90deg,
    rgba(240,170,163,0) 0%,
    rgba(240,170,163,.7) 20%,
    rgba(164,199,222,.7) 48%,
    rgba(193,179,217,.65) 74%,
    rgba(234,199,156,0) 100%);
  filter:blur(1.4px);
}

.site-footer::after{
  content:"";
  position:absolute;
  left:-10%;
  bottom:-40%;
  width:70%;
  height:70%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(240,170,163,.35),rgba(240,170,163,0) 68%);
  filter:blur(46px);
  pointer-events:none;
}

.footer-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1.7fr 1fr 1fr 1fr;
  gap:44px;
  padding-bottom:56px;
}

.footer-brand .logo{
  margin-bottom:20px;
  font-size:20px;
}

.footer-brand p{
  max-width:330px;
  font-size:14.6px;
  line-height:1.95;
  color:var(--ink-soft);
  margin:0 0 22px;
}

.footer-col h4{
  font-family:var(--font-serif);
  font-size:15.5px;
  font-weight:600;
  letter-spacing:.1em;
  margin:0 0 18px;
  color:var(--ink);
}

.footer-col ul{
  display:grid;
  gap:12px;
}

.footer-col a{
  font-size:14.4px;
  color:var(--ink-soft);
  letter-spacing:.03em;
}

.footer-col a:hover{
  color:#c07c76;
  padding-left:4px;
}

.footer-bottom{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  padding:26px 0 30px;
  border-top:1px solid rgba(51,47,43,.1);
  font-size:13.4px;
  letter-spacing:.04em;
  color:var(--ink-faint);
}

.footer-bottom a{ color:var(--ink-faint); }
.footer-bottom a:hover{ color:var(--ink-soft); }

/* ============ 文字工具 ============ */
.text-accent{
  color:#cf837c;
  position:relative;
  white-space:nowrap;
}

.text-accent::after{
  content:"";
  position:absolute;
  left:-2%;
  right:-2%;
  bottom:.06em;
  height:.34em;
  z-index:-1;
  border-radius:8px;
  background:linear-gradient(90deg,rgba(240,170,163,.62),rgba(234,199,156,.55) 55%,rgba(164,199,222,.5));
  filter:blur(4px);
}

.text-center{ text-align:center; }

.seo-description{
  max-width:920px;
  margin:0 auto;
  font-size:14.4px;
  line-height:2.05;
  letter-spacing:.03em;
  color:var(--ink-faint);
}

.mt-0{ margin-top:0 !important; }
.mb-0{ margin-bottom:0 !important; }

/* ============ 响应式 ============ */
@media (max-width:1080px){
  .hero .container{ gap:44px; }
  .feature-block{ gap:48px; }
  .footer-grid{ grid-template-columns:1.4fr 1fr 1fr; }
  .footer-col:last-child{ grid-column:span 1; }
}

@media (max-width:900px){
  .container{ padding:0 22px; }
  .header-inner{ padding:13px 22px; }

  .menu-toggle{ display:block; }

  .main-nav{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    flex-direction:column;
    align-items:stretch;
    gap:2px;
    padding:16px 22px 24px;
    margin-left:0;
    background:rgba(253,251,246,.97);
    backdrop-filter:blur(20px);
    border-bottom:1px solid rgba(51,47,43,.08);
    box-shadow:0 28px 50px -34px rgba(96,78,66,.7);
    opacity:0;
    transform:translateY(-10px);
    pointer-events:none;
    transition:opacity .38s var(--ease), transform .38s var(--ease);
  }

  .site-header.nav-open .main-nav{
    opacity:1;
    transform:translateY(0);
    pointer-events:auto;
  }

  .main-nav a{
    padding:13px 6px;
    font-size:15.5px;
    border-bottom:1px dashed rgba(51,47,43,.08);
  }

  .main-nav a::after{ display:none; }

  .nav-cta{
    margin:16px 0 0;
    padding:14px 24px;
    width:100%;
  }

  .hero{ padding:64px 0 84px; }

  .hero .container{
    grid-template-columns:1fr;
    gap:46px;
  }

  .hero-image{ min-height:320px; order:-1; }

  .hero-content{ max-width:none; }

  .section{ padding:76px 0; }

  .feature-block{
    grid-template-columns:1fr;
    gap:38px;
  }

  .feature-image{ min-height:300px; border-radius:44px 20px 44px 20px; }

  .stats-bar{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:30px 16px;
    padding:42px 26px;
    border-radius:34px;
  }

  .stat-item:nth-child(odd)::before{ display:none; }

  .cta-banner{
    padding:64px 26px;
    border-radius:38px;
  }

  .footer-grid{
    grid-template-columns:1fr 1fr;
    gap:36px;
  }

  .footer-brand{ grid-column:1 / -1; }

  .faq-item{ padding:24px 24px; }
  .faq-answer{ padding-left:0; }
}

@media (max-width:560px){
  body{ font-size:15.5px; }
  .container{ padding:0 18px; }
  .header-inner{ padding:12px 18px; }
  .logo{ font-size:17px; }
  .logo-icon{ width:36px; height:36px; flex:0 0 36px; }

  .hero{ padding:52px 0 66px; }
  .hero-content h1{ font-size:clamp(28px,8vw,38px); }
  .hero-content p{ font-size:15.5px; }
  .hero-buttons{ gap:12px; }
  .hero-buttons .btn{ width:100%; padding:15px 22px; }

  .hero-image{ min-height:250px; border-radius:40% 60% 44% 56% / 52% 44% 56% 48%; }

  .section{ padding:60px 0; }
  .section-title{ font-size:clamp(23px,6.4vw,30px); }
  .section-desc{ font-size:15.2px; }

  .cards-grid{ gap:20px; margin-top:38px; }
  .category-card{ padding:28px 24px 26px; border-radius:24px; }

  .stats-bar{ padding:34px 18px; border-radius:28px; }
  .stat-number{ font-size:30px; }
  .stat-label{ font-size:12.6px; letter-spacing:.1em; }

  .content-wall{ gap:22px; margin-top:38px; }
  .content-wall-body{ padding:22px 22px 26px; }

  .faq-list{ margin-top:36px; gap:14px; }
  .faq-item{ padding:22px 20px; border-radius:20px; }
  .faq-question{ font-size:16px; }

  .cta-banner{ padding:52px 20px; border-radius:30px; }
  .cta-banner .hero-buttons .btn{ width:100%; }

  .footer-grid{ grid-template-columns:1fr; gap:30px; padding-bottom:40px; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; gap:10px; }
  .site-footer{ padding-top:62px; }
}

@media (prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}