:root {
  --sv-bg: #FBF7F1;
  --sv-ink: #33302B;
  --sv-heading: #2A2823;
  --sv-body: #6E685D;
  --sv-muted: #8F887C;
  --sv-faint: #B4AD9F;
  --sv-border: #EEE7DA;
  --sv-border-2: #E3DBCC;

  --sv-green: #457A64;
  --sv-green-light: #5B9279;
  --sv-green-lighter: #6BA789;
  --sv-green-dark: #3F6E5A;
  --sv-green-pale: #E5F1EC;
  --sv-green-pale-border: #D2E6DC;
  --sv-green-deep: #2A5C48;

  --sv-orange: #C97A3E;
  --sv-orange-pale: #FBE8D5;
  --sv-orange-dot: #E8965B;

  --sv-footer-bg: #2A2823;
  --sv-footer-text: #C9C2B4;
  --sv-footer-muted: #9B9385;

  --sv-font-heading: 'Nunito', -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'PingFang SC', 'Helvetica Neue', sans-serif;
  --sv-font-body: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'PingFang SC', 'Helvetica Neue', sans-serif;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; max-width: 100%; overflow-x: hidden; }
body {
  background: var(--sv-bg);
  background-image: radial-gradient(rgba(91, 146, 121, 0.05) 1.1px, transparent 1.2px);
  background-size: 24px 24px;
  color: var(--sv-ink);
  font-family: var(--sv-font-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1, h2, h3 { font-family: var(--sv-font-heading); font-weight: 800; letter-spacing: -0.02em; color: var(--sv-heading); text-wrap: balance; margin: 0; }
p { text-wrap: pretty; }
a { color: inherit; }
::selection { background: #D2E6DC; }
:focus-visible { outline: 2px solid var(--sv-green-light); outline-offset: 3px; border-radius: 6px; }

@keyframes svfadeup { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes svfloaty { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}

.sv-wrap { max-width: 1060px; margin: 0 auto; padding: 0 32px; }

/* header */
.sv-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(251, 247, 241, 0.85);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--sv-border);
}
.sv-header-inner {
  max-width: 1060px; margin: 0 auto; padding: 15px 32px;
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; row-gap: 6px;
}
.sv-logo { display: flex; align-items: center; gap: 11px; text-decoration: none; }
.sv-logo-mark {
  width: 34px; height: 34px; border-radius: 10px; overflow: hidden;
  background: linear-gradient(150deg, var(--sv-green-light), var(--sv-green-dark));
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 3px 8px rgba(63, 110, 90, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2);
  flex-shrink: 0;
}
.sv-logo-word { font-family: var(--sv-font-heading); font-weight: 800; font-size: 19px; color: var(--sv-heading); letter-spacing: -0.015em; }
.sv-nav { display: flex; gap: 2px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.sv-nav a {
  font-family: var(--sv-font-heading); font-weight: 700; font-size: 14px;
  color: var(--sv-muted); text-decoration: none; padding: 8px 13px;
  transition: color .15s;
}
.sv-nav a:hover, .sv-nav a[aria-current="page"] { color: var(--sv-heading); }

/* buttons */
.sv-btn {
  display: inline-flex; align-items: center; gap: 9px;
  border: none; border-radius: 999px; cursor: pointer;
  font-family: var(--sv-font-heading); font-weight: 800; font-size: 15px;
  text-decoration: none; transition: background .15s, transform .15s, color .15s, border-color .15s;
}
.sv-btn-primary {
  background: var(--sv-green); color: #fff; padding: 14px 24px;
  box-shadow: 0 6px 16px rgba(69, 122, 100, 0.25);
}
.sv-btn-primary:hover { background: #3B6B56; transform: translateY(-1px); }
.sv-btn-secondary {
  background: #fff; color: var(--sv-body); border: 1px solid var(--sv-border-2); padding: 13px 22px;
}
.sv-btn-secondary:hover { border-color: #C9BFAC; color: var(--sv-ink); }
.sv-btn-disabled {
  display: inline-flex; align-items: center; gap: 8px;
  background: #EFE9DE; color: #A69E8E; border-radius: 14px; padding: 12px 20px;
  font-family: var(--sv-font-heading); font-weight: 800; font-size: 14px; cursor: not-allowed;
}
.sv-btn-disabled span { font-size: 11px; font-weight: 700; opacity: 0.8; }

/* cards */
.sv-card {
  background: #fff; border: 1px solid var(--sv-border); border-radius: 22px;
  box-shadow: 0 4px 16px rgba(75, 60, 40, 0.07); padding: 26px;
}
.sv-badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--sv-orange-pale); color: var(--sv-orange);
  font-family: var(--sv-font-heading); font-weight: 700; font-size: 11.5px;
  letter-spacing: 0.04em; text-transform: uppercase; padding: 6px 12px; border-radius: 999px;
}
.sv-eyebrow {
  display: inline-flex; align-items: center; gap: 9px;
  color: var(--sv-green); font-weight: 700; font-size: 12px;
  letter-spacing: 0.11em; text-transform: uppercase;
}
.sv-eyebrow-rule { width: 22px; height: 1.5px; background: var(--sv-green-lighter); }

.sv-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.sv-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.sv-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }

.sv-icon-tile {
  width: 48px; height: 48px; border-radius: 14px;
  display: flex; align-items: center; justify-content: center; margin-bottom: 16px;
}
.sv-icon-tile.green { background: var(--sv-green-pale); }
.sv-icon-tile.orange { background: var(--sv-orange-pale); }

/* footer */
.sv-footer { background: var(--sv-footer-bg); color: var(--sv-footer-text); }
.sv-footer-inner { max-width: 1060px; margin: 0 auto; padding: 52px 32px 32px; }
.sv-footer-grid {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px;
  padding-bottom: 36px; border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.sv-footer-grid h3 { font-family: var(--sv-font-heading); font-weight: 800; font-size: 13px; color: #FBF7F1; margin: 0 0 14px; }
.sv-footer-grid a { display: block; font-size: 13.5px; color: var(--sv-footer-muted); text-decoration: none; padding: 0; margin-bottom: 10px; transition: color .15s; background: none; border: none; text-align: left; cursor: pointer; }
.sv-footer-grid a:hover { color: #FBF7F1; }
.sv-footer-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; text-decoration: none; }
.sv-footer-copy { padding-top: 22px; font-size: 12.5px; color: #7C7568; }

/* back link */
.sv-back {
  display: inline-block; color: var(--sv-muted); text-decoration: none;
  font-family: var(--sv-font-heading); font-weight: 700; font-size: 14px;
  padding-top: 28px; transition: color .15s;
}
.sv-back:hover { color: var(--sv-green); }

/* responsive */
@media (max-width: 820px) {
  .sv-split { grid-template-columns: 1fr !important; }
  .sv-phone-col { display: none !important; }
  .sv-grid-4 { grid-template-columns: repeat(2, 1fr) !important; }
  .sv-grid-3 { grid-template-columns: 1fr !important; }
  .sv-grid-2 { grid-template-columns: 1fr !important; }
  .sv-footer-grid { grid-template-columns: 1fr 1fr !important; gap: 28px 20px !important; }
}
@media (max-width: 500px) {
  .sv-grid-4 { grid-template-columns: 1fr 1fr !important; }
  .sv-footer-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 420px) {
  .sv-wrap { padding: 0 20px; }
  .sv-header-inner { padding: 12px 20px; }
  .sv-logo-word { font-size: 16px; }
  .sv-nav a { padding: 8px 9px; font-size: 13px; }
}
