:root {
  --sage: #8FAF8A; --sage-d: #6A9068; --sage-s: #DCE9DA;
  --blush: #EDD8C8; --linen: #C4A870; --amber: #E8A44A; --amber-d: #C4700A;
  --bg: #FAF8F2; --ink: #2A2318; --ink2: #6B5E4E; --muted: #8B7355;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: 'DM Sans', system-ui, -apple-system, sans-serif;
  color: var(--ink);
  background: linear-gradient(180deg, #FFF8E8 0%, #FAF8F2 55%, #F5EBC8 100%);
  line-height: 1.55;
  min-height: 100vh;
}

h1, h2, h3 { font-family: 'Playfair Display', Georgia, serif; color: var(--ink); line-height: 1.2; }
h1 { font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 600; }
h2 { font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 600; margin-bottom: .75rem; }
h3 { font-size: 1.25rem; font-weight: 600; }

a { color: inherit; text-decoration: none; }

.nav {
  display: flex; justify-content: space-between; align-items: center;
  padding: 1.25rem 2rem; max-width: 1100px; margin: 0 auto;
}
.brand { font-family: 'Playfair Display'; font-weight: 600; font-size: 1.35rem; color: var(--sage-d); }

.cta {
  display: inline-block; padding: .85rem 1.6rem;
  border-radius: 999px; font-weight: 500;
  transition: opacity .15s, transform .15s;
}
.cta:hover { opacity: .88; }
.cta:active { transform: scale(.98); }
.cta.primary { background: var(--sage); color: #fff; }
.cta.ghost { background: transparent; color: var(--sage-d); border: 1.5px solid var(--sage-d); }

.hero {
  max-width: 820px; margin: 2rem auto 4rem; padding: 3rem 2rem; text-align: center;
}
.lede {
  font-size: clamp(1.1rem, 2vw, 1.3rem); color: var(--ink2); margin: 1rem 0 2rem;
}
.cta-row { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; }
.sub { font-size: .9rem; color: var(--muted); margin-top: 1rem; }

.grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem; max-width: 1100px; margin: 0 auto 4rem; padding: 0 2rem;
}
.grid article {
  background: rgba(255,255,255,.78); border: 1.5px solid rgba(196,168,112,.22);
  border-radius: 22px; padding: 1.75rem;
}
.grid article p { color: var(--ink2); margin-top: .5rem; }

.pricing {
  max-width: 1100px; margin: 4rem auto; padding: 0 2rem; text-align: center;
}
.plans {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1rem; margin-top: 2rem;
}
.plan {
  background: rgba(255,255,255,.85); border: 1.5px solid rgba(196,168,112,.22);
  border-radius: 22px; padding: 2rem 1.5rem; position: relative;
}
.plan.popular { border-color: var(--sage); background: var(--sage-s); }
.plan .badge {
  position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  background: var(--amber); color: #fff;
  padding: .25rem .85rem; border-radius: 999px; font-size: .75rem; font-weight: 700;
}
.price { font-family: 'Playfair Display'; font-size: 2rem; font-weight: 600; margin: .5rem 0; }
.price span { font-family: 'DM Sans'; font-size: 1rem; color: var(--muted); font-weight: 400; }
.save { color: var(--sage-d); font-weight: 500; font-size: .9rem; }
.trial-note { margin-top: 2rem; color: var(--ink2); }

.faq { max-width: 780px; margin: 4rem auto; padding: 0 2rem; }
.faq h2 { text-align: center; margin-bottom: 2rem; }
.faq details {
  background: rgba(255,255,255,.78); border: 1.5px solid rgba(196,168,112,.2);
  border-radius: 16px; padding: 1rem 1.25rem; margin-bottom: .75rem;
}
.faq summary {
  font-weight: 500; cursor: pointer; list-style: none; font-size: 1.05rem;
}
.faq summary::-webkit-details-marker { display: none; }
.faq details[open] summary { margin-bottom: .5rem; color: var(--sage-d); }
.faq p { color: var(--ink2); }

.footer {
  max-width: 1100px; margin: 4rem auto 2rem; padding: 3rem 2rem; text-align: center;
  border-top: 1px solid rgba(196,168,112,.2);
}
.store { display: flex; gap: 1rem; justify-content: center; margin-bottom: 2rem; }
.tiny { font-size: .82rem; color: var(--muted); margin-top: .5rem; }
.tiny a { color: var(--sage-d); text-decoration: underline; }
