﻿/* ===== 闾山玄门 · 暗色道家美学 ===== */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;600;700;900&family=Noto+Sans+SC:wght@300;400;500;700&display=swap');

:root {
  --bg: #0d0d0d;
  --bg-alt: #141414;
  --bg-card: #1a1a1a;
  --gold: #c9a84c;
  --gold-light: #e0c878;
  --gold-dark: #a08030;
  --red: #8b1a1a;
  --red-dark: #5c0f0f;
  --text: #d4d4d4;
  --text-dim: #888;
  --text-light: #f0f0f0;
  --border: #2a2a2a;
  --radius: 8px;
  --transition: 0.3s ease;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-snap-type:y mandatory; overflow-y:scroll; scroll-snap-stop:always; }

body {
  font-family: 'Noto Sans SC', 'Microsoft YaHei', sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.7;
  overflow-x: hidden;
}

h1, h2, h3, h4 {
  font-family: 'Noto Serif SC', 'SimSun', serif;
  color: var(--text-light);
  font-weight: 700;
}

a { text-decoration:none; color:inherit; }
img { max-width:100%; }

/* ===== NAV ===== */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  background: rgba(13,13,13,0.92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
}
.nav-inner {
  max-width:1200px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  padding: 14px 24px;
}
.nav-logo {
  font-family: 'Noto Serif SC', serif;
  font-size:1.3rem; font-weight:700;
  color: var(--gold);
  letter-spacing: 2px;
}
.nav-links { display:flex; gap:28px; }
.nav-links a {
  font-size:0.9rem; color: var(--text);
  transition: var(--transition);
  position:relative;
}
.nav-links a:hover { color: var(--gold); }
.nav-links a::after {
  content:''; position:absolute; bottom:-4px; left:0; width:0; height:1px;
  background:var(--gold); transition:var(--transition);
}
.nav-links a:hover::after { width:100%; }
.nav-toggle {
  display:none; background:none; border:none;
  color:var(--text); font-size:1.5rem; cursor:pointer;
}

/* ===== HERO ===== */
.hero {
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  position:relative; text-align:center; padding:120px 24px 60px;
  overflow:hidden; scroll-snap-align:start;
}
.hero-bg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 50% 30%, rgba(201,168,76,0.06) 0%, transparent 70%),
    radial-gradient(ellipse at 80% 80%, rgba(139,26,26,0.08) 0%, transparent 60%),
    linear-gradient(180deg, var(--bg) 0%, #111 50%, var(--bg) 100%);
}
.hero-bg::before {
  content:''; position:absolute; inset:0;
  background-image:
    repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(201,168,76,0.02) 2px, rgba(201,168,76,0.02) 4px);
}
.hero-content { position:relative; z-index:1; max-width:700px; }
.hero-badge {
  display:inline-block; padding:6px 20px; border:1px solid var(--gold-dark);
  border-radius:20px; color:var(--gold); font-size:0.85rem;
  letter-spacing:3px; margin-bottom:24px;
}
.hero h1 {
  font-size:3.2rem; font-weight:900; letter-spacing:6px;
  margin-bottom:16px; color: var(--text-light);
}
.hero h1 .gold { color: var(--gold); }
.hero-sub {
  font-size:1.1rem; color: var(--gold); letter-spacing:4px;
  margin-bottom:12px; font-family: 'Noto Serif SC', serif;
}
.hero-desc {
  font-size:1rem; color: var(--text-dim); margin-bottom:36px;
  line-height:1.8;
}
.hero-btns { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; } /* First button (免费排盘) more prominent */
.hero-btns .btn:nth-child(1) { background: linear-gradient(135deg, var(--gold-dark), var(--gold)); color: #0d0d0d; border-color: var(--gold); font-weight:700; }
.scroll-hint {
  position:absolute; bottom:30px; left:50%; transform:translateX(-50%);
  color: var(--text-dim); font-size:0.8rem; letter-spacing:2px;
  animation: bounce 2s infinite;
}
@keyframes bounce {
  0%,100% { transform:translateX(-50%) translateY(0); }
  50% { transform:translateX(-50%) translateY(8px); }
}

/* ===== BUTTONS ===== */
.btn {
  display:inline-block; padding:12px 32px; border-radius:var(--radius);
  font-family: 'Noto Serif SC', serif; font-size:0.95rem;
  font-weight:600; letter-spacing:2px;
  cursor:pointer; transition:var(--transition);
  border:1px solid transparent; text-align:center;
}
.btn-gold {
  background: linear-gradient(135deg, var(--gold-dark), var(--gold));
  color: #0d0d0d; border-color: var(--gold);
}
.btn-gold:hover {
  background: linear-gradient(135deg, var(--gold), var(--gold-light));
  transform: translateY(-2px); box-shadow: 0 8px 24px rgba(201,168,76,0.2);
}
.btn-outline {
  border-color: var(--gold-dark); color: var(--gold);
  background: transparent;
}
.btn-outline:hover {
  background: rgba(201,168,76,0.08);
  border-color: var(--gold);
}
.btn-block { display:block; width:100%; }
.btn-lg { padding:16px 40px; font-size:1.05rem; }
.btn-sm { padding:8px 24px; font-size:0.85rem; letter-spacing:1px; }

/* ===== SECTIONS ===== */
.section { padding:100px 24px; max-width:1200px; margin:0 auto; scroll-snap-align:start; }
.section-header { text-align:center; margin-bottom:60px; }
.section-tag {
  display:inline-block; padding:4px 16px;
  border:1px solid var(--gold-dark); border-radius:20px;
  color:var(--gold); font-size:0.8rem; letter-spacing:3px;
  margin-bottom:16px;
}
.section-header h2 {
  font-size:2.2rem; font-weight:700; letter-spacing:4px;
  margin-bottom:12px;
}
.divider {
  width:60px; height:2px; background: linear-gradient(90deg, transparent, var(--gold), transparent);
  margin: 16px auto;
}
.section-sub { color:var(--text-dim); font-size:0.95rem; line-height:1.8; margin-top:12px; }
.subtle-text { color:#3a3a3a; font-size:0.7rem; letter-spacing:4px; opacity:0.5; }

/* ===== CARDS ===== */
.card {
  background: var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); padding:28px;
  transition: var(--transition);
}
.card:hover { border-color: var(--gold-dark); transform: translateY(-2px); }

/* ===== ABOUT ===== */
.about-grid {
  display:grid; grid-template-columns:repeat(4, 1fr);
  gap:24px;
}
.about-card { text-align:center; padding:36px 24px; }
.about-icon { font-size:2.5rem; margin-bottom:16px; }
.about-card h3 {
  font-size:1.2rem; letter-spacing:2px; margin-bottom:12px;
  color: var(--gold);
}
.about-card p { font-size:0.9rem; color: var(--text-dim); line-height:1.7; }

/* ===== QUOTE ===== */
.quote-section {
  padding:80px 24px; text-align:center;
  background: var(--bg-alt);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  scroll-snap-align:start;
}
.quote-text {
  font-family: 'Noto Serif SC', serif;
  font-size:1.6rem; color: var(--gold-light);
  letter-spacing:2px; line-height:2;
  max-width:600px; margin:0 auto 16px;
}
.quote-author { color: var(--text-dim); font-size:0.9rem; letter-spacing:3px; }

/* ===== SERVICES ===== */
.services-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
  gap:24px;
}
.service-card { position:relative; padding:36px 28px; text-align:center; }
.service-card.featured {
  border-color: var(--gold-dark);
  background: linear-gradient(180deg, rgba(201,168,76,0.05), var(--bg-card));
}
.service-badge {
  position:absolute; top:12px; right:12px;
  background: var(--red); color:#fff; font-size:0.75rem;
  padding:3px 10px; border-radius:4px;
}
.service-icon { font-size:3rem; margin-bottom:16px; }
.service-card h3 { font-size:1.3rem; letter-spacing:2px; margin-bottom:8px; }
.service-desc { color:var(--text-dim); font-size:0.9rem; margin-bottom:16px; line-height:1.7; }
.service-price { margin-bottom:16px; }
.price-num { font-size:2rem; font-weight:900; color:var(--gold); font-family: 'Noto Serif SC', serif; }
.service-list { list-style:none; text-align:left; margin-bottom:20px; }
.service-list li {
  padding:6px 0; font-size:0.85rem; color:var(--text-dim);
  border-bottom:1px solid rgba(42,42,42,0.5);
}
.service-list li::before { content:'✓ '; color:var(--gold); margin-right:8px; }

/* ===== TALISMANS ===== */
.dark-bg { background: var(--bg-alt); max-width:100%; padding:100px 0; scroll-snap-align:start; }
.dark-bg .section-header { max-width:1200px; margin:0 auto 60px; padding:0 24px; }
.talisman-grid {
  display:grid; grid-template-columns:repeat(4, 1fr);
  gap:24px; max-width:1200px; margin:0 auto; padding:0 24px;
}
.talisman-card {
  background: var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); padding:32px 24px;
  text-align:center; transition:var(--transition);
}
.talisman-card:hover { border-color: var(--gold-dark); transform:translateY(-3px); }
.talisman-img { font-size:3.5rem; margin-bottom:16px; }
.talisman-card h3 { font-size:1.1rem; letter-spacing:2px; margin-bottom:8px; }
.talisman-card p { font-size:0.85rem; color:var(--text-dim); margin-bottom:16px; line-height:1.7; }
.talisman-price {
  font-size:1.4rem; font-weight:700; color:var(--gold);
  font-family: 'Noto Serif SC', serif; margin-bottom:16px;
}

/* ===== RITUALS ===== */
.ritual-section { max-width:1200px; margin:60px auto 0; padding:0 24px; }
.ritual-title {
  text-align:center; font-size:1.6rem; letter-spacing:3px;
  margin-bottom:36px; color:var(--text-light);
}
.ritual-grid {
  display:grid; grid-template-columns:repeat(4, 1fr);
  gap:20px;
}
.ritual-card {
  background: linear-gradient(135deg, rgba(139,26,26,0.15), var(--bg-card));
  border:1px solid var(--border); border-radius:var(--radius);
  padding:28px 24px; text-align:center; transition:var(--transition);
}
.ritual-card:hover { border-color: var(--red); }
.ritual-card h4 { font-size:1.05rem; letter-spacing:2px; margin-bottom:8px; }
.ritual-card p { font-size:0.85rem; color:var(--text-dim); margin-bottom:12px; }
.ritual-price { color:var(--gold); font-weight:700; font-size:0.95rem; }

/* ===== BOOKING ===== */
.booking-grid {
  display:grid; grid-template-columns:1.5fr 1fr;
  gap:32px; align-items:start;
}
.booking-form { padding:36px; }
.form-group { margin-bottom:20px; }
.form-group label {
  display:block; margin-bottom:6px; font-size:0.9rem;
  color:var(--text-dim); letter-spacing:1px;
}
.required { color:var(--red); }
.form-group input, .form-group select, .form-group textarea {
  width:100%; padding:12px 16px;
  background:var(--bg); border:1px solid var(--border);
  border-radius:var(--radius); color:var(--text);
  font-family:inherit; font-size:0.95rem;
  transition:var(--transition);
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
  outline:none; border-color:var(--gold-dark);
  box-shadow: 0 0 0 3px rgba(201,168,76,0.1);
}
.form-group textarea { resize:vertical; min-height:80px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-note { text-align:center; color:var(--text-dim); font-size:0.8rem; margin-top:12px; }
.info-card { padding:28px; margin-bottom:20px; }
.info-card h3 { font-size:1.1rem; letter-spacing:2px; margin-bottom:16px; }
.wechat-qr {
  width:120px; height:120px; background:var(--bg);
  border:2px dashed var(--gold-dark); border-radius:var(--radius);
  margin:0 auto 12px; display:flex; align-items:center; justify-content:center;
  color:var(--gold); font-size:0.8rem;
}
.wechat-section { text-align:center; }
.wechat-id { color:var(--gold); font-size:0.9rem; margin-top:8px; }
.notice-list { list-style:none; }
.notice-list li {
  padding:8px 0; font-size:0.85rem; color:var(--text-dim);
  border-bottom:1px solid var(--border);
}
.notice-list li::before { content:'· '; color:var(--gold); }

/* ===== FOOTER ===== */
.footer {
  background:var(--bg-alt); border-top:1px solid var(--border);
  padding:60px 24px; text-align:center;
  scroll-snap-align:start;
}
.footer-brand {
  font-family: 'Noto Serif SC', serif;
  font-size:1.3rem; color:var(--gold); letter-spacing:3px;
  margin-bottom:12px;
}
.footer-content p { color:var(--text-dim); font-size:0.85rem; margin-bottom:8px; }
.footer-disclaimer { font-size:0.78rem !important; margin-top:16px; }
.footer-copy { margin-top:20px; font-size:0.75rem !important; color:#555; }

/* ===== RESPONSIVE ===== */
@media (max-width:768px) {
  .nav-links {
    display:none; position:absolute; top:100%; left:0; right:0;
    background:rgba(13,13,13,0.98); flex-direction:column;
    padding:20px; gap:16px; border-bottom:1px solid var(--border);
  }
  .nav-links.open { display:flex; }
  .nav-toggle { display:block; }

  .hero h1 { font-size:2rem; letter-spacing:3px; }
  .hero-sub { font-size:0.9rem; letter-spacing:2px; }
  .hero-desc { font-size:0.9rem; }

  .section { padding:60px 20px; }
  .section-header h2 { font-size:1.6rem; }

  .booking-grid { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; }
  .services-grid { grid-template-columns:1fr; }
  .talisman-grid { grid-template-columns:1fr 1fr; }
  .ritual-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width:480px) {
  .hero h1 { font-size:1.6rem; }
  .talisman-grid { grid-template-columns:1fr; }
  .ritual-grid { grid-template-columns:1fr; }
  .about-grid { grid-template-columns:1fr; }
}

/* Login button in nav */
.nav-login-btn {
  border: 1px solid var(--gold, #c9a84c) !important;
  border-radius: 20px !important;
  padding: 6px 16px !important;
  transition: all .3s;
}
.nav-login-btn:hover {
  background: var(--gold, #c9a84c);
  color: #0d0d0d !important;
}