:root {
  --primary: #E65100;
  --primary-light: #FF8C42;
  --primary-soft: rgba(230, 81, 0, 0.1);
  --text-primary: #1F1510;
  --text-secondary: #6F5B4D;
  --text-muted: #8D7768;
  --border: #F1E6DB;
  --border-strong: rgba(230, 81, 0, 0.14);
  --card-soft: linear-gradient(180deg, #FFFFFF 0%, #FFF8F1 100%);
  --hero-bg: radial-gradient(circle at top left, rgba(255, 172, 92, 0.34), transparent 42%), linear-gradient(135deg, #FFF7EE 0%, #FFFDFC 56%, #FFFFFF 100%);
  --panel-bg: linear-gradient(160deg, #FF8F3A 0%, #F36A10 46%, #D94F00 100%);
  --shadow-soft: 0 14px 32px rgba(77, 48, 23, 0.06);
  --shadow-hero: 0 18px 44px rgba(113, 70, 34, 0.08);
  --shadow-panel: 0 20px 42px rgba(230, 81, 0, 0.24);
  --radius-xl: 28px;
  --radius-lg: 22px;
  --radius-md: 18px;
  --radius-pill: 999px;
}

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

html {
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
  line-height: 1.7;
  color: var(--text-primary);
  background: linear-gradient(180deg, #FFF7EE 0%, #FFFFFF 24%, #FFF9F4 100%);
  padding: 28px 20px 56px;
}

a {
  color: var(--primary);
  text-decoration: none;
  transition: color 0.2s ease;
}

a:hover {
  color: var(--primary-light);
}

strong,
b {
  color: var(--primary);
}

summary {
  list-style: none;
}

summary::-webkit-details-marker {
  display: none;
}

.page-shell {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 26px;
}

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr);
  gap: 22px;
  align-items: stretch;
}

.hero-copy,
.hero-panel,
.article-board,
.faq-board,
footer {
  border-radius: var(--radius-xl);
}

.hero-copy {
  padding: 40px;
  background: var(--hero-bg);
  border: 1px solid var(--border-strong);
  box-shadow: var(--shadow-hero);
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 14px;
  border-radius: var(--radius-pill);
  background: var(--primary-soft);
  color: #B35A00;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.hero-title {
  margin-top: 18px;
  font-size: 42px;
  line-height: 1.14;
  color: #1E140D;
}

.hero-desc {
  margin-top: 18px;
  max-width: 720px;
  font-size: 16px;
  line-height: 1.8;
  color: var(--text-secondary);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 26px;
}

.hero-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 22px;
  border-radius: var(--radius-pill);
  font-size: 14px;
  font-weight: 700;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.hero-link:hover {
  transform: translateY(-1px);
}

.hero-link--primary {
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: #FFFFFF;
  box-shadow: 0 12px 24px rgba(230, 81, 0, 0.22);
}

.hero-link--secondary {
  background: #FFFFFF;
  color: var(--primary);
  border: 1px solid rgba(230, 81, 0, 0.18);
}

.hero-link--ghost {
  background: rgba(255, 255, 255, 0.7);
  color: #C85D0B;
  border: 1px dashed rgba(230, 81, 0, 0.22);
}

.hero-panel {
  padding: 18px;
  background: var(--panel-bg);
  box-shadow: var(--shadow-panel);
}

.panel-shell {
  height: 100%;
  border-radius: var(--radius-lg);
  padding: 20px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.panel-kicker {
  font-size: 13px;
  font-weight: 700;
  color: #FFF3E8;
}

.panel-status {
  min-height: 28px;
  padding: 0 12px;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.18);
  color: #FFFFFF;
  font-size: 12px;
  line-height: 28px;
}

.panel-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.panel-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 122px;
  padding: 16px;
  border-radius: var(--radius-md);
  background: rgba(255, 250, 246, 0.95);
}

.panel-card-label {
  font-size: 12px;
  font-weight: 700;
  color: #D86511;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.panel-card-value {
  font-size: 18px;
  line-height: 1.35;
  color: #23150E;
}

.panel-card-meta {
  font-size: 13px;
  line-height: 1.6;
  color: #7A6456;
}

.article-board {
  padding: 32px;
  background: var(--card-soft);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-soft);
}

.faq-board {
  padding: 32px;
  background: var(--card-soft);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-soft);
}

.section-heading {
  margin-bottom: 26px;
}

.section-eyebrow {
  display: inline-block;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #C06A1A;
  text-transform: uppercase;
}

.section-title {
  margin-top: 12px;
  font-size: 30px;
  line-height: 1.22;
  color: var(--text-primary);
}

.section-desc {
  margin-top: 12px;
  max-width: 780px;
  font-size: 15px;
  line-height: 1.75;
  color: var(--text-secondary);
}

.article-main {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.faq-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  align-items: start;
}

.section,
.card,
.toc,
.faq-item,
.cta,
.case,
.case-box,
.tip,
.note,
.warn,
.lead-box {
  border-radius: var(--radius-lg);
}

.section,
.card,
.toc,
.case,
.case-box,
.faq-item {
  padding: 22px;
  border: 1px solid rgba(230, 81, 0, 0.08);
  background: linear-gradient(180deg, #FFFFFF 0%, #FFF6EC 100%);
  box-shadow: 0 8px 20px rgba(109, 58, 20, 0.05);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.section:hover,
.card:hover,
.toc:hover,
.case:hover,
.case-box:hover,
.faq-item:hover {
  transform: translateY(-2px);
  border-color: rgba(230, 81, 0, 0.18);
  box-shadow: 0 16px 28px rgba(109, 58, 20, 0.1);
}

.section h2,
.card h2,
.toc h2,
.article-board > main > h2,
.article-board > .article-main > h2 {
  margin-bottom: 12px;
  padding-bottom: 10px;
  font-size: 24px;
  line-height: 1.3;
  color: var(--text-primary);
  border-bottom: 2px solid #FFE0B2;
  position: relative;
}

.section h2::after,
.card h2::after,
.toc h2::after,
.article-board > main > h2::after,
.article-board > .article-main > h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 60px;
  height: 2px;
  background: var(--primary);
}

.section h3,
.card h3,
.case h3,
.case-box h3,
.cta h3 {
  margin: 16px 0 8px;
  font-size: 18px;
  line-height: 1.55;
  color: var(--text-primary);
}

.section p,
.card p,
.case p,
.case-box p,
.faq-item p,
.section li,
.card li,
.case li,
.case-box li,
.faq-item li,
.cta p,
.toc a,
.lead,
.lead-box {
  font-size: 15px;
  line-height: 1.8;
  color: var(--text-secondary);
}

.section p + p,
.card p + p,
.case p + p,
.case-box p + p,
.faq-item p + p,
.section ul + p,
.card ul + p,
.case ul + p,
.case-box ul + p,
.section p + ul,
.card p + ul,
.case p + ul,
.case-box p + ul,
.faq-item ul + p,
.faq-item p + ul {
  margin-top: 10px;
}

.section ul,
.section ol,
.card ul,
.card ol,
.case ul,
.case ol,
.case-box ul,
.case-box ol,
.faq-item ul,
.faq-item ol {
  margin: 10px 0 0 20px;
  padding-left: 2px;
}

.section ul,
.card ul,
.case ul,
.case-box ul,
.faq-item ul {
  list-style: disc;
}

.section ol,
.card ol,
.case ol,
.case-box ol,
.faq-item ol {
  list-style: decimal;
}

.section li + li,
.card li + li,
.case li + li,
.case-box li + li,
.faq-item li + li {
  margin-top: 6px;
}

.lead,
.lead-box,
.note,
.tip,
.warn {
  padding: 16px 18px;
  border-left: 4px solid var(--primary);
  background: #FFF3E0;
}

.warn {
  color: #8A2B12;
}

.note,
.tip,
.lead,
.lead-box {
  color: #6A4E36;
}

.cta {
  padding: 24px;
  background: linear-gradient(160deg, #FF8F3A 0%, #F36A10 46%, #D94F00 100%);
  color: #FFFFFF;
  box-shadow: var(--shadow-panel);
}

.cta h3,
.cta p,
.cta strong,
.cta a {
  color: #FFFFFF;
}

.faq-item summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
}

.faq-item summary::after {
  content: "+";
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(230, 81, 0, 0.1);
  color: var(--primary);
  font-size: 22px;
  font-weight: 500;
  line-height: 32px;
  text-align: center;
}

.faq-item[open] summary::after {
  content: "-";
}

.faq-item summary h2,
.faq-item summary h3 {
  margin: 0;
  padding: 0;
  border: none;
  font-size: 18px;
  line-height: 1.55;
  color: var(--text-primary);
}

.faq-item summary h2::after,
.faq-item summary h3::after {
  display: none;
}

.faq-item[open] summary h2,
.faq-item[open] summary h3 {
  color: var(--primary);
}

table {
  width: 100%;
  border-collapse: collapse;
  margin: 12px 0 16px;
  background: #FFFFFF;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #F0F0F0;
}

th,
td {
  border: 1px solid #F1E2D7;
  padding: 10px 12px;
  text-align: left;
  vertical-align: top;
}

th {
  background: #FFF3E0 !important;
  color: var(--primary) !important;
  font-weight: 600;
}

td {
  color: var(--text-primary);
}

tr:nth-child(even) td {
  background: #FFFBF7;
}

pre,
.formula,
blockquote {
  margin: 12px 0;
  padding: 14px 18px;
  background: #FFF3E0;
  border-left: 4px solid var(--primary);
  border-radius: 0 8px 8px 0;
  overflow-x: auto;
  font-family: "SF Mono", Menlo, Consolas, monospace;
  color: #6A4E36;
}

footer {
  padding: 26px 32px;
  background: linear-gradient(180deg, #FFFFFF 0%, #FFF8F1 100%);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-soft);
  text-align: center;
}

footer p:first-child {
  color: var(--primary);
  font-weight: 700;
  font-size: 15px;
}

footer p,
footer .links,
footer .note {
  margin-top: 8px;
  color: var(--text-muted);
  font-size: 14px;
  line-height: 1.8;
}

::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-thumb {
  background: #F1E2D7;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--primary);
}

@media (max-width: 1100px) {
  .hero,
  .faq-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  body {
    padding: 16px 14px 40px;
  }

  .page-shell {
    gap: 18px;
  }

  .hero-copy,
  .article-board,
  .faq-board,
  footer {
    padding: 22px;
    border-radius: 22px;
  }

  .hero-panel {
    padding: 16px;
    border-radius: 22px;
  }

  .section,
  .card,
  .toc,
  .case,
  .case-box,
  .faq-item,
  .cta {
    padding: 18px;
    border-radius: 18px;
  }

  .hero-title {
    font-size: 32px;
  }

  .hero-desc,
  .section-desc,
  .section p,
  .card p,
  .case p,
  .case-box p,
  .faq-item p,
  .section li,
  .card li,
  .case li,
  .case-box li,
  .faq-item li,
  .cta p,
  .lead,
  .lead-box,
  .toc a {
    font-size: 14px;
  }

  .section-title,
  .section h2,
  .card h2,
  .toc h2,
  .article-board > main > h2,
  .article-board > .article-main > h2 {
    font-size: 24px;
  }

  .section h3,
  .card h3,
  .case h3,
  .case-box h3,
  .faq-item summary h2,
  .faq-item summary h3 {
    font-size: 16px;
  }

  .panel-grid {
    grid-template-columns: 1fr;
  }

  .hero-actions {
    gap: 10px;
  }

  .hero-link {
    width: 100%;
  }

  table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  th,
  td {
    white-space: nowrap;
  }
}
