/*
Theme Name: nvxue.org MVP
Theme URI: https://nvxue.org/
Author: nvxue.org Editorial Team
Author URI: https://nvxue.org/
Description: A lightweight, dependency-free classic WordPress theme scaffold for 女学 · nvxue.org.
Version: 0.1.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: nvxue
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

:root {
  --nvxue-ink: #232126;
  --nvxue-muted: #68616c;
  --nvxue-surface: #fffdfb;
  --nvxue-soft: #f7f2f4;
  --nvxue-line: #e4dce1;
  --nvxue-accent: #704b63;
  --nvxue-accent-dark: #513447;
  --nvxue-alert: #a02d36;
  --nvxue-alert-soft: #fff1f1;
  --nvxue-max: 1180px;
  --nvxue-reading: 760px;
  --nvxue-radius: 18px;
  --nvxue-shadow: 0 10px 34px rgba(67, 45, 58, 0.08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--nvxue-ink);
  background: var(--nvxue-surface);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans CJK SC",
    "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  font-size: 17px;
  line-height: 1.75;
}
a { color: var(--nvxue-accent-dark); text-underline-offset: 0.18em; }
a:hover, a:focus { color: var(--nvxue-accent); }
img { max-width: 100%; height: auto; }
button, input { font: inherit; }
button { cursor: pointer; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 0.8rem; border: 1px solid var(--nvxue-line); vertical-align: top; text-align: left; }
th { background: var(--nvxue-soft); }
code { overflow-wrap: anywhere; }
.screen-reader-text {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}
.skip-link:focus {
  position: fixed; z-index: 9999; left: 1rem; top: 1rem;
  width: auto; height: auto; clip: auto;
  padding: 0.7rem 1rem; margin: 0;
  color: #fff; background: var(--nvxue-accent-dark);
}
.nvxue-container { width: min(calc(100% - 2rem), var(--nvxue-max)); margin-inline: auto; }
.nvxue-reading { width: min(calc(100% - 2rem), var(--nvxue-reading)); margin-inline: auto; }
.nvxue-section { padding: 4rem 0; }
.nvxue-section--soft { background: var(--nvxue-soft); }
.nvxue-kicker {
  margin: 0 0 0.4rem;
  color: var(--nvxue-accent);
  font-size: 0.88rem; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase;
}
.nvxue-section-title { margin: 0 0 0.8rem; font-size: clamp(1.7rem, 4vw, 2.45rem); line-height: 1.25; }
.nvxue-section-intro { max-width: 760px; margin: 0 0 1.7rem; color: var(--nvxue-muted); }
.nvxue-site-header {
  position: sticky; z-index: 50; top: 0;
  border-bottom: 1px solid var(--nvxue-line);
  background: rgba(255,253,251,0.96);
  backdrop-filter: blur(14px);
}
.nvxue-header-inner {
  display: flex; min-height: 72px; align-items: center; justify-content: space-between; gap: 1rem;
}
.nvxue-brand { display: flex; align-items: center; gap: 0.6rem; text-decoration: none; }
.nvxue-brand-text { color: var(--nvxue-ink); font-size: 1.18rem; font-weight: 780; letter-spacing: 0.02em; }
.custom-logo { display: block; max-height: 44px; width: auto; }
.nvxue-nav-toggle {
  display: none; border: 1px solid var(--nvxue-line); border-radius: 10px;
  padding: 0.45rem 0.7rem; color: var(--nvxue-ink); background: #fff;
}
.nvxue-primary-menu, .nvxue-footer-menu {
  display: flex; flex-wrap: wrap; align-items: center; gap: 1rem;
  padding: 0; margin: 0; list-style: none;
}
.nvxue-primary-menu a { color: var(--nvxue-ink); font-size: 0.95rem; font-weight: 650; text-decoration: none; }
.nvxue-primary-menu a:hover, .nvxue-primary-menu a:focus { color: var(--nvxue-accent); }
.nvxue-hero {
  padding: clamp(4.5rem, 10vw, 8rem) 0;
  background: linear-gradient(135deg, #fffdfb 0%, #f7f0f4 100%);
}
.nvxue-hero-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(260px, 0.75fr); gap: 2rem; align-items: center; }
.nvxue-hero h1 { max-width: 780px; margin: 0 0 1.2rem; font-size: clamp(2.6rem, 7vw, 5.2rem); line-height: 1.04; letter-spacing: -0.045em; }
.nvxue-hero p { max-width: 720px; color: var(--nvxue-muted); font-size: 1.12rem; }
.nvxue-hero-note {
  padding: 1.3rem; border: 1px solid var(--nvxue-line); border-radius: var(--nvxue-radius);
  background: rgba(255,255,255,0.72); box-shadow: var(--nvxue-shadow);
}
.nvxue-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.4rem; }
.nvxue-button {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 46px; padding: 0.65rem 1rem; border: 1px solid var(--nvxue-accent);
  border-radius: 999px; color: #fff; background: var(--nvxue-accent);
  font-size: 0.96rem; font-weight: 720; text-decoration: none;
}
.nvxue-button:hover, .nvxue-button:focus { color: #fff; background: var(--nvxue-accent-dark); border-color: var(--nvxue-accent-dark); }
.nvxue-button--secondary { color: var(--nvxue-accent-dark); background: transparent; }
.nvxue-button--secondary:hover, .nvxue-button--secondary:focus { color: #fff; }
.nvxue-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.nvxue-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nvxue-card {
  display: flex; min-height: 100%; flex-direction: column;
  padding: 1.25rem; border: 1px solid var(--nvxue-line); border-radius: var(--nvxue-radius);
  background: #fff; box-shadow: 0 5px 18px rgba(67,45,58,0.045);
}
.nvxue-card:hover { box-shadow: var(--nvxue-shadow); transform: translateY(-2px); transition: 150ms ease; }
.nvxue-card h3 { margin: 0.35rem 0 0.55rem; font-size: 1.18rem; line-height: 1.32; }
.nvxue-card p { margin: 0 0 0.9rem; color: var(--nvxue-muted); font-size: 0.96rem; }
.nvxue-card-link { margin-top: auto; font-weight: 720; }
.nvxue-label {
  display: inline-flex; align-self: flex-start;
  padding: 0.2rem 0.52rem; border-radius: 999px;
  color: var(--nvxue-accent-dark); background: var(--nvxue-soft);
  font-size: 0.78rem; font-weight: 760;
}
.nvxue-feature {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(230px, 0.9fr); gap: 1rem;
  padding: 1.4rem; border: 1px solid var(--nvxue-line); border-radius: var(--nvxue-radius);
  background: #fff; box-shadow: var(--nvxue-shadow);
}
.nvxue-feature-meta { display: grid; gap: 0.6rem; align-content: start; padding: 1rem; border-radius: 14px; background: var(--nvxue-soft); }
.nvxue-feature-meta span { display: block; font-size: 0.92rem; }
.nvxue-entry-header { padding: 3.3rem 0 1.8rem; border-bottom: 1px solid var(--nvxue-line); background: var(--nvxue-soft); }
.nvxue-entry-header h1 { max-width: 900px; margin: 0; font-size: clamp(2rem, 6vw, 3.7rem); line-height: 1.12; letter-spacing: -0.035em; }
.nvxue-entry-meta { margin-top: 0.8rem; color: var(--nvxue-muted); font-size: 0.92rem; }
.nvxue-entry-content { padding: 2.4rem 0; }
.nvxue-entry-content h2 { margin-top: 2.4rem; font-size: 1.7rem; line-height: 1.28; }
.nvxue-entry-content h3 { margin-top: 1.8rem; font-size: 1.32rem; line-height: 1.32; }
.nvxue-entry-content blockquote { margin-inline: 0; padding: 0.4rem 1rem; border-left: 4px solid var(--nvxue-accent); background: var(--nvxue-soft); }
.nvxue-editorial-footer {
  margin: 2.5rem 0 0; padding: 1rem; border: 1px solid var(--nvxue-line); border-radius: 14px; background: var(--nvxue-soft);
}
.nvxue-editorial-footer dl { display: grid; grid-template-columns: minmax(120px, 0.28fr) 1fr; gap: 0.35rem 0.8rem; margin: 0; }
.nvxue-editorial-footer dt { font-weight: 750; }
.nvxue-editorial-footer dd { margin: 0; }
.nvxue-emergency {
  padding: 1rem; border-block: 2px solid var(--nvxue-alert); color: #6c1821; background: var(--nvxue-alert-soft);
}
.nvxue-emergency strong { color: #6c1821; }
.nvxue-emergency-grid { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between; }
.nvxue-emergency-actions { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.nvxue-emergency a {
  display: inline-flex; min-height: 42px; align-items: center;
  padding: 0.45rem 0.8rem; border-radius: 999px;
  color: #fff; background: var(--nvxue-alert); font-weight: 780; text-decoration: none;
}
.nvxue-resource-meta { display: grid; gap: 0.65rem; margin-top: 1rem; }
.nvxue-resource-meta div { padding: 0.7rem; border-radius: 10px; background: var(--nvxue-soft); }
.nvxue-resource-meta strong { display: block; }
.nvxue-newsletter { padding: 1.25rem; border: 1px dashed var(--nvxue-accent); border-radius: var(--nvxue-radius); background: #fff; }
.nvxue-trust-links { display: flex; flex-wrap: wrap; gap: 0.7rem 1rem; padding: 0; list-style: none; }
.nvxue-site-footer { padding: 2.2rem 0; border-top: 1px solid var(--nvxue-line); background: #282329; color: #f9f4f7; }
.nvxue-site-footer a { color: #fff; }
.nvxue-site-footer p { margin: 0.5rem 0; color: #e9dde5; font-size: 0.9rem; }
.nvxue-footer-menu { margin-bottom: 1rem; }
.nvxue-pagination { margin-top: 1.5rem; }
.nvxue-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.nvxue-pagination a, .nvxue-pagination span { padding: 0.35rem 0.7rem; border: 1px solid var(--nvxue-line); border-radius: 999px; text-decoration: none; }
.nvxue-empty { padding: 1rem; border: 1px dashed var(--nvxue-line); border-radius: 12px; color: var(--nvxue-muted); }

@media (max-width: 940px) {
  .nvxue-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nvxue-hero-grid, .nvxue-feature { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  body { font-size: 16px; }
  .nvxue-header-inner { flex-wrap: wrap; min-height: 64px; padding-block: 0.55rem; }
  .nvxue-nav-toggle { display: inline-flex; }
  .nvxue-primary-nav { display: none; width: 100%; padding: 0.55rem 0 0.75rem; }
  .nvxue-primary-nav.is-open { display: block; }
  .nvxue-primary-menu { display: grid; gap: 0; }
  .nvxue-primary-menu a { display: block; padding: 0.55rem 0; border-top: 1px solid var(--nvxue-line); }
  .nvxue-grid, .nvxue-grid--four { grid-template-columns: 1fr; }
  .nvxue-section { padding: 3rem 0; }
  .nvxue-hero { padding: 4.2rem 0; }
  .nvxue-entry-header { padding: 2.2rem 0 1.3rem; }
  .nvxue-editorial-footer dl { grid-template-columns: 1fr; gap: 0.05rem; }
  .nvxue-editorial-footer dd { margin-bottom: 0.55rem; }
  table { display: block; overflow-x: auto; white-space: nowrap; }
}
