@font-face {
  font-family: "Lemon Editorial Serif";
  src: url("/login/fonts/lemon-editorial-serif.woff2?v=20260930-3") format("woff2");
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
}
/* Shared public-site color system. Loaded after each page's layout styles. */
:root {
  --font-body: "Lemon Sans SC", "PingFang SC", sans-serif;
  --font-display: "Lemon Editorial Serif", "Songti SC", serif;
  --brand-jade: #23836b;
  --brand-jade-hover: #1c705b;
  /* Filled buttons use the logo leaf's teal. It is light for white type (2.1:1),
     so the type stays dark ink #0c2029 at 7.9:1 — see .btn-primary below. */
  --brand-button: #01c8af;
  --brand-button-hover: #04bfa7;
  --brand-button-active: #04a893;
  --brand-button-ink: #ffffff;
  --brand-mint: #eaf8f0;
  --brand-citron: #e2ef9b;
  --brand-apricot: #fff0df;
  --green: var(--brand-jade);
  --green-deep: var(--brand-jade-hover);
  --ink: #2c302d;
  --muted: #6d726e;
  --line: #e2e7e2;
  --canvas: #fcfdfb;
  --shadow: 0 3px 14px rgba(49,67,48,.035);
  --oriental-landscape: url("/login/assets/oriental-landscape.svg?v=1");
}
body.pricing-body {
  --green: var(--brand-jade);
  --green-deep: var(--brand-jade-hover);
  --canvas: #fcfdfb;
  background: var(--canvas);
}
body .site-header { background: rgba(255,255,255,.97); border-bottom-color: #e0ebe3; }
body[data-home-stage="1"] .site-header { background: rgba(255,255,255,.97); }
.site-header .site-nav { font-family: "Lemon Site Sans", sans-serif; font-weight: 600; color: #52665b; }
.site-header .site-nav a[aria-current="page"] { font-weight: 600; }
.site-header .login-link { color: #537568; }
/* Solid fills only: a gradient cannot be transitioned, so swapping one on hover flashes. */
.btn-primary { background: var(--brand-button); color: var(--brand-button-ink, #ffffff); }
.btn-primary:hover { background: var(--brand-button-hover); }
.btn-primary:active { background: var(--brand-button-active); }
.btn-secondary { border-color: #c9dfd1; color: #33634f; background: #fff; }
.btn-secondary:hover { border-color: #a9cdbd; background: #f6faf7; }
.eyebrow, .section-head .eyebrow, .scenario-section .eyebrow, .section-kicker { color: var(--brand-jade); }
.eyebrow::before { background: #b2d64a; }
.home-hero, .product-hero, .solutions-hero, .demo-hero, .service-hero, .pricing-heading {
  background-color: var(--canvas);
  background-image: var(--oriental-landscape), radial-gradient(ellipse at 65% 0, #f3f8ec 0, transparent 60%);
  background-position: center bottom, center;
  background-repeat: no-repeat;
  background-size: 100% auto, auto;
}
.home-sequence { background: #fcfdfb; }
.home-sequence.is-enhanced .home-sequence__panel--search, .home-sequence__panel--search {
  background: var(--canvas);
}
.home-sequence.is-enhanced .home-sequence__panel--preview {
  background: var(--canvas);
}
.hero-copy h1 { margin-bottom: 24px; }
.sequence-feature__copy h2 em, .sequence-feature__copy a, .sequence-feature__copy small { color: var(--brand-jade); }
.sequence-feature__copy::before { display: none; }
.sequence-feature figure::before { display: none; }
.sequence-result { border-top-color: var(--brand-jade); }
.fact b { color: var(--brand-jade); }
.module-card:nth-child(4n + 1), .capability-card:nth-child(3n + 1) { background: #fff; }
.module-card:nth-child(4n + 2), .capability-card:nth-child(3n + 2) { background: #fff; }
.module-card:nth-child(4n + 3), .capability-card:nth-child(3n + 3) { background: #fff; }
.module-card small, .module-card a, .experience-card a { color: var(--brand-jade); }
.capability-card b { background: #e7f5eb; color: var(--brand-jade); }
.capability-card:nth-child(3n + 2) b { background: #edf3cb; color: #68771e; }
.capability-card:nth-child(3n + 3) b { background: #fff0d9; color: #8e652c; }
.scenario-section, .responsibility { background: #f6f8f4; }
.scenario-item b { color: var(--brand-jade); }
.experience-card:nth-child(1) { border-top-color: #a6ca4b; background: #fff; }
.experience-card:nth-child(2) { border-top-color: #49ac87; background: #fff; }
.experience-card:nth-child(3) { border-top-color: #e5b46c; background: #fff; }
.experience-card small { color: #567b68; }
.price-teaser, .closing { background: #fff; border-color: var(--line); }
.solution-card__intro { background: #f7f9f5; }
.solution-card:nth-child(2) .solution-card__intro { background: #f7f9f5; }
.solution-card:nth-child(3) .solution-card__intro { background: #f7f9f5; }
.solution-card__number { color: var(--brand-jade); }
.product-stage:nth-of-type(even) { background: #f7f9f5; }
.boundary { background: #f6f8f4; }
.hero-architecture__group--core { border-color: #a5d7ba; background: #eaf8ee; }
.hero-architecture__group--core span { color: var(--brand-jade); }
.demo-question { background: #e9f8ed; border-color: #c5e6d1; }
.demo-preview__brand::before { background: #80bf3f; }
.demo-answer { background: #fffdf6; border-color: #e9e6d4; }
.phase-index, .implementation-signals b, .service-visual figcaption strong { color: var(--brand-jade); }
.pricing-heading { background: radial-gradient(ellipse at 50% 0, #eef7df 0, transparent 68%); }
.pricing-custom { background: linear-gradient(112deg, #eaf8ed, #f7f6df 55%, #fff0e7) padding-box, linear-gradient(112deg, #cce5d2, #e4e3ba 55%, #efd9c9) border-box; }
body.auth-page { background-color: #fcfdfb; background-image: var(--oriental-landscape), radial-gradient(ellipse at 50% 0, #f0f6e7, transparent 55%); background-position: center bottom, center; background-repeat: no-repeat; background-size: max(1200px,100vw) auto, auto; background-attachment: fixed; }
.auth-page #submit { background: var(--brand-button); color: var(--brand-button-ink, #ffffff); transition: background-color .2s ease; }
.auth-page #submit:hover { background: var(--brand-button-hover); }
.auth-page #submit:active { background: var(--brand-button-active); }
.auth-page input:focus { border-color: var(--brand-jade); outline: 3px solid #e3f4e9; }
.auth-page .register-link a, .auth-page .card-foot a { color: var(--brand-jade); }
.auth-page .story .eyebrow { color: var(--brand-jade); background: #f3f9e6; border-color: #dae9bb; }
@media (max-width: 980px) {
  .site-menu-toggle { color: #4e5850; background: transparent; border-color: #e0e5e1; }
  .site-header .site-nav a[aria-current="page"] { background: #eaf7ed; }
}

/* Editorial headings with readable sans-serif body text on public pages. */
body:not(.pricing-body) :is(h1, h2) { font-family: var(--font-display); font-weight: 500; letter-spacing: 0; }
.site-footer__brand, .brand { font-family: "Lemon Latin", "Lemon Site Sans", sans-serif; }
/* Header login link and trial button: one face for the whole label, digits included (as on pricing). */
.site-header .site-actions { font-family: "Lemon Site Sans", "PingFang SC", sans-serif; }
.site-header .login-link { font-weight: 600; }

/* Keep small UI text open and legible with the variable body font. */
.eyebrow, .section-head .eyebrow { font-weight: 600; }
.btn, .auth-page #submit { font-weight: 600; }
.hero-copy .eyebrow { font-size: 13px; letter-spacing: .08em; }
.hero-points { font-size: 13px; font-weight: 500; color: #476b59; }
.hero-points span::before { font-weight: 600; }

/* Public pages follow the pricing page's typography, surfaces and density. */
body:not(.pricing-body) main .container { width: min(1216px, calc(100% - 64px)); }
body:not(.pricing-body) main .btn { min-height: 46px; border-radius: 10px; font-weight: 500; }
body:not(.pricing-body) main .btn:hover { transform: none; box-shadow: none; }
body:not(.pricing-body) main .btn-secondary { border-color: #d9e4df; color: #415e52; background: #fff; }
body:not(.pricing-body) main .btn-secondary:hover { border-color: #a9cdbd; background: #f6faf7; }
body:not(.pricing-body) .eyebrow, .section-kicker { color: #608174; font-size: 11px; font-weight: 500; letter-spacing: .1em; }
body:not(.pricing-body) .eyebrow::before { display: none; }
body:not(.pricing-body) .hero-copy .eyebrow::before { display: block; }
.section { padding: 64px 0; }
.section-head { align-items: start; gap: 32px; margin-bottom: 28px; }
.section-head h2 { font-size: clamp(25px, 2.3vw, 32px); line-height: 1.45; }
.section-head p { max-width: 430px; font-size: 14px; line-height: 1.85; }
.page-hero, .product-hero, .solutions-hero, .demo-hero, .service-hero { padding: 60px 0; border-bottom: 1px solid var(--line); }
.page-hero h1, .product-hero h1, .solutions-hero h1, .service-hero h1 { margin: 14px 0 20px; font-size: clamp(30px, 3vw, 40px); line-height: 1.4; }
.page-hero .lede, .product-hero p, .solutions-hero p { color: var(--muted); font-size: 15px; line-height: 1.85; }
.hero-actions { margin-top: 24px; }
.hero-copy h1 { font-size: clamp(34px, 3.1vw, 44px); line-height: 1.3; }
.hero-copy p { max-width: 560px; color: var(--muted); font-size: 15px; line-height: 1.85; }
.hero-points { color: #6d7a70; font-size: 12px; font-weight: 400; gap: 10px 16px; }
.home-sequence.is-enhanced .home-hero { padding: 24px 0 90px; }
.home-sequence.is-enhanced .home-sequence__panel--search { padding: 24px 0 90px; }
.home-sequence.is-enhanced .sequence-feature { min-height: 0; }
.home-sequence.is-enhanced .sequence-window__viewport { height: clamp(330px, calc(100dvh - 290px), 480px); }
.sequence-progress { box-shadow: none !important; border-color: var(--line) !important; }
.sequence-progress__hint { color: #6d7a70; font-weight: 500; }
.sequence-feature__copy { padding-left: 0; border-left: 0; }
.sequence-feature__copy small { color: #608174; font-size: 11px; font-weight: 500; letter-spacing: .1em; }
.sequence-feature__copy h2, .preview-copy h2 { font-size: clamp(28px, 2.5vw, 35px); line-height: 1.4; }
.sequence-feature__copy p, .preview-copy p { color: var(--muted); font-size: 14px; }
.sequence-feature__note { margin-top: 32px; font-size: 10px; font-weight: 500; }
.sequence-feature__copy a { font-size: 14px; font-weight: 500; }
.sequence-window, .product-preview .image-frame { border-color: var(--line); border-radius: 14px; box-shadow: var(--shadow); }
.product-preview .image-frame { margin: 0; }
.sequence-result { border-radius: 10px; box-shadow: 0 6px 18px #3143300c; }
.sequence-result span, .sequence-window__bar strong, .sequence-window__bar span { font-weight: 500; }
.fact-strip, .fact + .fact, .principle-bar, .principle-grid div + div { border-color: var(--line); }
.fact b, .scenario-item b { color: #81958a; font-size: 20px; font-weight: 400; }
.fact strong { font-size: 14px; font-weight: 500; }
.fact span { color: var(--muted); }
.card, .capability-card, .role-card, .boundary-card, .guardrail { border-color: var(--line); border-radius: 14px; background: #fff; box-shadow: 0 3px 14px #31433006; }
.card h3, .capability-card h3, .role-card h3, .boundary-card h3, .guardrail h3, .scenario-item h3, .service-offering h3, .phase h3 { font-size: 18px; font-weight: 500; letter-spacing: 0; }
.capability-card { padding: 27px; }
.capability-card h3 { margin-top: 20px; }
.capability-card p { color: var(--muted); }
.capability-card b { border-radius: 6px; font-weight: 500; }
.module-card, .experience-card { min-height: 220px; }
.module-card h3 { margin-top: 22px; }
.module-card small, .experience-card small { color: #608174; font-size: 11px; font-weight: 500; letter-spacing: .08em; }
.experience-card:nth-child(n) { border: 1px solid var(--line); }
.module-card a, .experience-card a { font-weight: 500; }
.module-card:hover, .experience-card:hover { transform: none; }
.scenario-item { padding-top: 22px; border-color: var(--line); }
.scenario-item b { margin-bottom: 22px; }
.price-teaser { padding: 30px; }
.price-teaser h2 { font-size: 25px; }
.product-stage, .boundary, .responsibility { padding: 64px 0; }
.stage-copy h2, .boundary h2, .responsibility h2 { font-size: clamp(26px, 2.4vw, 33px); line-height: 1.4; }
.stage-copy > p, .boundary-intro p, .responsibility-intro p { font-size: 14px; line-height: 1.85; }
.stage-list { gap: 0; margin-top: 20px; }
.stage-list strong { font-weight: 500; }
.browser-frame, .screen-figure, .hero-architecture, .demo-preview { border-color: var(--line); border-radius: 14px; box-shadow: var(--shadow); }
.browser-frame__address, .product-hero__preview figcaption strong, .screen-figure figcaption a { font-weight: 500; }
.screen-figure figcaption, .product-hero__preview figcaption, .image-frame figcaption { color: var(--muted); font-size: 11px; }
.hero-architecture__group { background: #fafbf9; border-color: var(--line); }
.hero-architecture__group--core { background: #f0f7f2; border-color: #c8ddd1; }
.hero-architecture__group span, .hero-architecture__group b { font-weight: 500; }
.hero-architecture > p { font-size: 12px; }
.solution-card { border-color: var(--line); }
.solution-card h2 { font-size: 28px; line-height: 1.4; }
.solution-card__intro, .solution-card__body { padding: 28px; }
.solution-card__number, .solution-flow b, .principle-grid b, .role-card b { font-weight: 500; font-size: 11px; }
.solution-flow div { border: 0; border-radius: 8px; background: #f7f9f5; }
.solution-flow div:not(:last-child)::after { border-color: #c2cec4; }
.solution-card__body strong { font-weight: 500; }
.closing-section { padding: 60px 0; }
.closing { padding: 30px; border-radius: 14px; }
.closing h2 { font-size: clamp(25px, 2.2vw, 30px); }
.closing p { font-size: 14px; }
.demo-preview__brand, .demo-preview__label, .demo-question small, .demo-answer b { font-weight: 500; }
.demo-preview__bar, .demo-preview__note { background: #fafbf9; border-color: var(--line); }
.demo-preview { margin: 0; width: 100%; }
.demo-question { background: #f0f7f2; border-color: #dce8df; }
.demo-answer { background: #fafbf9; border-color: var(--line); color: #4e5850; }
.step::before { color: #81958a; font-weight: 400; }
.comparison > .card, .step.card { box-shadow: none; }
.service-layout .card li { color: var(--muted); font-size: 14px; line-height: 1.8; }
.comparison li, .boundary-list li, .prompt-list li { color: var(--muted); font-size: 14px; line-height: 1.8; }
.demo-status, .implementation-signals, .implementation-signals div + div { border-color: var(--line); }
.demo-status strong { font-size: 14px; font-weight: 500; }
.demo-status p { font-size: 13px; }
.implementation-signals b, .service-visual figcaption strong, .phase-index { font-weight: 500; }
.implementation-signals span, .service-visual figcaption { color: var(--muted); }
.service-visual { max-width: 520px; }
.service-image { box-shadow: var(--shadow); }
.service-visual figcaption { font-size: 11px; }
.service-process { padding-top: 64px; }
.scope-table { font-size: 14px; line-height: 1.8; }
.scope-table th { background: #f7f9f5; font-weight: 500; }
.scope-table td { color: var(--muted); }
.auth-page .box, .auth-page .card { border-radius: 14px; border-color: var(--line); box-shadow: 0 3px 14px #31433009; }
.auth-page .story h1 { font-size: clamp(30px, 3vw, 40px); line-height: 1.4; }
.auth-page .story p { font-size: 15px; }
.auth-page .story .eyebrow { padding: 0; border: 0; border-radius: 0; background: transparent; color: #608174; font-size: 11px; }
.auth-page .story .trial-scheme { font-size: 12px; }
.auth-page .card { padding: 32px; }
.auth-page .card h2 { font-size: 26px; }
.auth-page label, .auth-page .card-foot a, .auth-page .register-link a { font-weight: 500; }
.auth-page input { border-color: var(--line); border-radius: 9px; }
.auth-page #submit { min-height: 46px; font-weight: 500; font-size: 14px; }
.auth-page .benefits li { color: #626e65; font-size: 13px; }
.auth-page .benefits li::before { background: #edf5ef; color: var(--brand-jade); }
@media (max-width: 700px) {
  body:not(.pricing-body) main .container { width: min(560px, calc(100% - 36px)); }
  .section, .product-stage, .boundary, .responsibility { padding: 44px 0; }
  .page-hero, .product-hero, .solutions-hero, .demo-hero, .service-hero { padding: 40px 0; }
  .home-hero { padding: 38px 0 44px; }
  .hero-copy h1 { font-size: clamp(29px, 8.4vw, 40px); }
  .hero-copy p, .page-hero .lede, .product-hero p, .solutions-hero p { font-size: 14px; }
  .section-head { margin-bottom: 24px; }
  .section-head p { margin-top: 14px; }
  .solution-card__intro, .solution-card__body, .closing, .price-teaser { padding: 24px; }
  .closing-section { padding: 44px 0; }
  .auth-page .card { padding: 26px 22px; }
}

/* Shared conversion block for public product, scenario and service pages. */
.public-trial-section { padding: 60px 0; background: #fff; }
.public-trial {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 38px;
  padding: 32px 36px;
  border: 1px solid #dfeae3;
  border-radius: 14px;
  background: #f3f7f4;
}
.public-trial__label { display: block; margin-bottom: 9px; color: #608174; font-size: 11px; font-weight: 500; letter-spacing: .1em; }
.public-trial h2 { margin: 0; font-size: clamp(25px, 2.2vw, 30px); line-height: 1.4; }
.public-trial p { max-width: 650px; margin: 8px 0 0; color: var(--muted); font-size: 14px; line-height: 1.75; }
.public-trial__action { flex: none; text-align: right; }
.public-trial__action small { display: block; margin-top: 9px; color: #758079; font-size: 11px; }
@media (max-width: 700px) {
  .public-trial-section { padding: 44px 0; }
  .public-trial { display: block; padding: 25px 24px; }
  .public-trial__action { margin-top: 22px; text-align: left; }
}
