/* Pricing palette is scoped here so other pages keep their existing theme. */
.pricing-body {
  --green: #23836b;
  --green-deep: #1c705b;
  --ink: #2c302d;
  --muted: #6d726e;
  --line: #e2e7e2;
  --canvas: #fafbf9;
  --shadow: 0 18px 48px rgba(49,67,48,.075);
  --pricing-ink: #2c302d;
  --pricing-muted: #6d726e;
  --pricing-line: #e2e7e2;
  --pricing-sans: "Lemon Sans SC", "PingFang SC", sans-serif;
  --pricing-serif: "Lemon Editorial Serif", "Songti SC", serif;
  background: #fafbf9;
  font-family: var(--pricing-sans);
}
.pricing-body .site-header { background: rgba(255,255,255,.96); border-bottom-color: #e8ece7; }
.pricing-body .site-header .site-nav { font-family: "Lemon Site Sans", "PingFang SC", sans-serif; color: #555d57; font-weight: 600; font-size: 14px; }
.pricing-body .site-header .site-nav a[aria-current="page"] { font-weight: 600; }
.pricing-body .site-header .login-link, .pricing-body .site-header .btn { font-family: "Lemon Site Sans", "PingFang SC", sans-serif; font-weight: 600; }
.pricing-body .login-link { color: #537568; }
.pricing-body .login-link:hover { color: var(--green-deep); }
.pricing-body .site-header.is-scrolled { box-shadow: 0 8px 24px rgba(49,67,48,.055); }
.pricing-body .site-header .site-nav a:hover { border-color: #c4ded3; }
.pricing-body a:focus-visible, .pricing-body button:focus-visible { outline-color: #31866f; }
.pricing-body .btn:hover { box-shadow: 0 8px 19px rgba(63,87,60,.1); }
.pricing-body .site-footer { color: var(--muted); border-color: var(--line); background: #fff; }
.pricing-body .site-footer__identity p, .pricing-body .site-footer__group > span { color: var(--muted); }
.pricing-body .site-footer__group a { color: #555d57; }
.pricing-body .site-footer__group a:hover { color: var(--green-deep); }
.pricing-body .site-footer__bottom { border-color: #edf0eb; color: #7b847c; }
@media (max-width: 980px) {
  .pricing-body .site-menu-toggle { border-color: #d9e4df; color: #1c705b; background: #f7f9f5; }
  .pricing-body .site-menu-panel { border-color: #e2e7e2; box-shadow: 0 20px 38px rgba(49,67,48,.1); }
  .pricing-body .site-header .site-nav a[aria-current="page"] { background: #edf7f2; }
  .pricing-body .site-header .site-actions { border-color: #e8ece7; }
  .pricing-body .site-header .login-link { border-color: #d9e4df; }
}
.pricing-page { color: var(--pricing-ink); padding-bottom: 80px; font-weight: 400; }
.pricing-container { max-width: 1216px; }
.pricing-page h1, .pricing-page h2, .pricing-page h3, .pricing-page p { margin: 0; }
.pricing-page h1, .pricing-page h2 { font-family: var(--pricing-serif); font-weight: 500; letter-spacing: 0; }
.pricing-heading { padding: 45px 0 39px; text-align: center; }
.pricing-heading__eyebrow { color: #608174; font-size: 11px; letter-spacing: .18em; }
.pricing-heading h1 { margin-top: 14px; font-size: clamp(28px, 2.5vw, 35px); line-height: 1.5; }
.pricing-heading > p { margin-top: 12px; color: var(--pricing-muted); font-size: 14px; line-height: 1.8; }
.pricing-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 0; border-top: 1px solid var(--pricing-line); }
.pricing-toolbar > div:first-child { display: flex; align-items: center; gap: 14px; }
.pricing-toolbar h2 { font-size: 19px; }
.pricing-release { font-size: 11px; color: var(--pricing-muted); border-left: 1px solid #dce3da; padding-left: 14px; }
.pricing-switch { display: inline-flex; flex: none; gap: 3px; padding: 4px; border: 1px solid #e2e7e2; border-radius: 25px; background: #f0f3f1; }
.pricing-switch button { min-width: 96px; min-height: 32px; padding: 5px 20px; border: 0; border-radius: 21px; background: transparent; color: #6d726e; font-family: inherit; font-size: 13px; font-weight: 400; cursor: pointer; transition: background .16s ease, color .16s ease; }
.pricing-switch button[aria-pressed="true"] { color: #1c705b; background: #fff; box-shadow: 0 1px 4px rgba(49,67,48,.07); }
.pricing-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; align-items: stretch; }
.pricing-card { display: flex; flex-direction: column; min-width: 0; padding: 29px 28px 27px; border: 1px solid #e2e7e2; border-radius: 14px; background: #fff; box-shadow: 0 3px 14px rgba(49,67,48,.025); }
.pricing-card--featured { border-color: #a4cebf; }
.pricing-card__heading h2 { font-size: 28px; line-height: 1.4; font-weight: 500; }
.pricing-card .pricing-card__intro { margin-top: 10px; min-height: 23px; color: var(--pricing-muted); font-size: 13px; line-height: 1.75; }
.pricing-card__price { display: flex; align-items: baseline; gap: 9px; margin: 28px 0 23px; white-space: nowrap; }
.pricing-card__amount { display: inline-flex; align-items: baseline; font-family: "Lemon Latin", sans-serif; font-size: 44px; font-weight: 400; font-variant-numeric: tabular-nums; line-height: 1.12; letter-spacing: -.035em; }
.pricing-card__currency { align-self: flex-start; margin: 4px 3px 0 0; font-family: "Lemon Sans SC", "PingFang SC", sans-serif; font-size: 20px; font-weight: 400; line-height: 1.4; }
.pricing-card__period { font-size: 12px; color: var(--pricing-muted); }
.pricing-page .btn { min-height: 43px; font-family: inherit; font-size: 14px; font-weight: 500; border-radius: 8px; }
/* Lemon actions: quiet neutral surfaces and a fresh jade color accent. */
.pricing-page .pricing-card__action { width: 100%; min-height: 46px; border: 1px solid #d9e4df; border-radius: 10px; background: #fff; color: #415e52; font-size: 14px; font-weight: 500; transition: border-color .18s ease, background-color .18s ease, color .18s ease; }
.pricing-page .pricing-card--featured .pricing-card__action { border-color: transparent; background: var(--brand-button); color: #fff; }
@media (hover: hover) and (pointer: fine) {
  .pricing-page .pricing-card__action:hover { border-color: #a9cdbd; background: #f6faf7; }
  .pricing-page .pricing-card--featured .pricing-card__action:hover { border-color: transparent; background: var(--brand-button-hover); }
}
.pricing-page .pricing-card__action:active { background: #eff6f2; }
.pricing-page .pricing-card--featured .pricing-card__action:active { background: var(--brand-button-active); }
.pricing-page .pricing-card__action:focus-visible { outline-color: #31866f; }
.pricing-page .btn-secondary { color: #415e52; border-color: #d2e1d9; background: #fff; }
.pricing-page .btn-secondary:hover { color: #1c705b; border-color: #a9cdbd; background: #f6faf7; }
.pricing-page .btn:hover { transform: none; box-shadow: none; }
.pricing-inheritance { display: grid; gap: 18px; margin: 26px 0 0; padding: 0; }
.pricing-card__features { display: grid; gap: 21px; margin-top: 26px; }
.pricing-feature-group { min-width: 0; }
.pricing-feature-group + .pricing-feature-group { padding-top: 19px; border-top: 1px solid #edf0eb; }
.pricing-feature-group h3 { color: #7b847c; font-family: inherit; font-size: 11px; line-height: 1.5; font-weight: 400; letter-spacing: .06em; }
.pricing-feature-group dl { display: grid; gap: 14px; margin: 14px 0 0; padding: 0; }
.pricing-feature { position: relative; display: block; min-width: 0; padding-left: 26px; color: #4e5850; font-size: 14px; line-height: 1.6; }
.pricing-feature__icon { position: absolute; top: 3px; left: 0; width: 16px; height: 16px; fill: none; stroke: #7e978c; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.pricing-feature strong { color: #303a32; font-weight: 500; font-variant-numeric: tabular-nums; }
.pricing-feature dd { margin: 0; }
.pricing-feature .pricing-feature__hint { margin-top: 3px; color: var(--pricing-muted); font-size: 12px; min-height: 23px; line-height: 23px; }
.pricing-info-link { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; min-height: 23px; color: #648474; }
.pricing-info-link:hover { color: var(--green); }
.pricing-feature--vector strong { font-size: 13px; }
.pricing-shared { display: flex; justify-content: flex-end; margin: 16px 2px 30px; color: var(--pricing-muted); font-size: 12px; line-height: 1.8; }
.pricing-shared a { color: #648474; }
.pricing-shared a:hover { text-decoration: underline; text-underline-offset: 4px; }
.pricing-custom { display: flex; align-items: center; gap: 20px; width: min(100%,820px); margin-inline: auto; padding: 25px 28px; border: 1px solid transparent; border-radius: 12px; background: linear-gradient(112deg, #eaf6ef 0%, #f7f6ea 55%, #fff0e7 100%) padding-box, linear-gradient(112deg, #cfe5d8, #e4e0ca 55%, #efd9c9) border-box; box-shadow: 0 6px 24px rgba(87,95,62,.04); }
.pricing-custom > svg { flex: none; width: 42px; height: 42px; padding: 9px; border: 1px solid rgba(255,255,255,.9); border-radius: 12px; background: rgba(255,255,255,.65); fill: none; stroke: #5b8b76; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.pricing-custom h2 { font-size: 21px; line-height: 1.4; }
.pricing-custom p { margin-top: 7px; color: var(--pricing-muted); font-size: 13px; line-height: 1.75; }
.pricing-custom__contact { flex: none; margin-left: auto; padding-left: 16px; text-align: right; }
.pricing-custom__contact strong { display: block; font-size: 13px; font-weight: 500; }
.pricing-custom__contact span { display: block; margin-top: 7px; color: var(--pricing-muted); font-size: 11px; }
.pricing-custom__contact a { display: block; padding: 9px 11px; border-radius: 8px; transition: background .18s ease, color .18s ease; }
.pricing-custom__contact a:hover { color: var(--green-deep); background: rgba(255,255,255,.62); }
.pricing-trial { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 49px; padding-bottom: 43px; border-bottom: 1px solid var(--pricing-line); }
.pricing-trial__label { color: #608174; font-size: 11px; }
.pricing-trial h2 { margin-top: 9px; font-size: 25px; line-height: 1.5; }
.pricing-trial p { margin-top: 10px; color: var(--pricing-muted); font-size: 13px; line-height: 1.8; }
.pricing-trial__action { flex: none; text-align: center; }
.pricing-trial__action .btn { min-width: 180px; }
.pricing-trial__action p { font-size: 11px; }
.pricing-faq { display: grid; grid-template-columns: 1fr 2fr; gap: 40px; margin-top: 43px; }
.pricing-faq h2 { font-size: 24px; line-height: 1.6; }
.pricing-faq__heading p { margin-top: 12px; color: var(--pricing-muted); font-size: 13px; line-height: 1.9; }
.pricing-faq details { border-bottom: 1px solid var(--pricing-line); scroll-margin-top: 96px; }
.pricing-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 44px; padding: 10px 0; cursor: pointer; list-style: none; font-size: 14px; line-height: 1.7; }
.pricing-faq summary::-webkit-details-marker { display: none; }
.pricing-faq summary::after { content: '+'; flex: none; margin-right: 4px; color: #7b847c; font-family: "Lemon Sans SC", sans-serif; font-size: 20px; font-weight: 300; line-height: 1; }
.pricing-faq details[open] summary::after { content: '−'; }
.pricing-faq summary:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; border-radius: 4px; }
.pricing-faq__answer { padding: 0 24px 22px 0; color: var(--pricing-muted); font-size: 13px; line-height: 1.9; }
.pricing-faq__answer p + p { margin-top: 10px; }
.pricing-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.pricing-page [hidden] { display: none !important; }
.pricing-page noscript p { margin: 20px 0; font-size: 13px; line-height: 1.8; }
@media (min-width: 881px) and (max-width: 1100px) {
  .pricing-grid { gap: 14px; }
  .pricing-card { padding: 25px 20px; }
  .pricing-card__intro { min-height: 46px !important; }
  .pricing-feature { padding-left: 23px; font-size: 13px; }
  .pricing-feature .pricing-feature__hint { font-size: 11px; }
  .pricing-feature--vector strong { font-size: 12px; }
}
@media (max-width: 880px) {
  .pricing-container { max-width: 620px; }
  .pricing-grid { grid-template-columns: 1fr; gap: 20px; }
  .pricing-card { padding: 28px; }
  .pricing-custom { flex-wrap: wrap; gap: 16px; }
  .pricing-custom > div:not(.pricing-custom__contact) { flex: 1; }
  .pricing-custom__contact { flex-basis: 100%; margin: 2px 0 0; padding: 0 0 0 58px; text-align: left; }
  .pricing-toolbar > div:first-child { align-items: flex-start; flex-direction: column; gap: 6px; }
  .pricing-release { border: 0; padding: 0; }
  .pricing-faq { grid-template-columns: 1fr; gap: 25px; }
  .pricing-faq__heading p { display: none; }
}
@media (max-width: 560px) {
  .pricing-page { padding-bottom: 44px; }
  .pricing-heading { padding: 33px 0 30px; }
  .pricing-heading h1 { font-size: 27px; }
  .pricing-heading > p { font-size: 13px; }
  .pricing-toolbar { align-items: center; gap: 8px; padding-top: 20px; }
  .pricing-toolbar h2 { font-size: 17px; }
  .pricing-switch button { min-width: 70px; padding: 5px 12px; }
  .pricing-card { padding: 25px; }
  .pricing-card__heading h2 { font-size: 27px; }
  .pricing-card__price { margin-top: 26px; }
  .pricing-feature { font-size: 13px; }
  .pricing-feature .pricing-feature__hint { font-size: 11px; }
  .pricing-feature--vector strong { font-size: 12px; }
  .pricing-custom { padding: 24px; }
  .pricing-trial { align-items: stretch; flex-direction: column; gap: 20px; margin-top: 34px; padding-bottom: 32px; }
  .pricing-trial h2 { font-size: 23px; }
  .pricing-trial__action { text-align: left; }
  .pricing-trial__action .btn { width: 100%; }
  .pricing-trial__action p { text-align: center; }
  .pricing-faq { margin-top: 30px; }
}
@media (prefers-reduced-motion: reduce) { .pricing-switch button, .pricing-page .pricing-card__action { transition: none; } }

/* Same container width as the rest of the public site, so the header logo sits
   on the same vertical line as the page body and the footer. */
.pricing-body {
  --hp-gutter: clamp(20px, 5.2vw, 150px);
  --hp-max: 1680px;
}
.pricing-body .site-header .container,
.pricing-body .site-footer .container,
.pricing-body .container { width: min(var(--hp-max), calc(100% - var(--hp-gutter) * 2)); }
