/* QHealth v2: compiled from the supplied Lovable styles; no Tailwind runtime required. */
/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties;
@layer theme, base, components, utilities;
@layer theme {
  :root, :host {
    --font-sans: "Manrope", sans-serif;
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
      "Courier New", monospace;
    --spacing: 0.25rem;
    --default-font-family: "Manrope", sans-serif;
    --default-mono-font-family: var(--font-mono);
    --font-display: "Sora", sans-serif;
  }
}
@layer base {
  *, ::after, ::before, ::backdrop, ::file-selector-button {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0 solid;
  }
  html, :host {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }
  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }
  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }
  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
  }
  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }
  b, strong {
    font-weight: bolder;
  }
  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }
  small {
    font-size: 80%;
  }
  sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }
  :-moz-focusring {
    outline: auto;
  }
  progress {
    vertical-align: baseline;
  }
  summary {
    display: list-item;
  }
  ol, ul, menu {
    list-style: none;
  }
  img, svg, video, canvas, audio, iframe, embed, object {
    display: block;
    vertical-align: middle;
  }
  img, video {
    max-width: 100%;
    height: auto;
  }
  button, input, select, optgroup, textarea, ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    border-radius: 0;
    background-color: transparent;
    opacity: 1;
  }
  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }
  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }
  ::file-selector-button {
    margin-inline-end: 4px;
  }
  ::placeholder {
    opacity: 1;
  }
  @supports (not (-webkit-appearance: -apple-pay-button))  or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentcolor;
      @supports (color: color-mix(in lab, red, red)) {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }
  textarea {
    resize: vertical;
  }
  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }
  ::-webkit-datetime-edit {
    display: inline-flex;
  }
  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }
  ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }
  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }
  :-moz-ui-invalid {
    box-shadow: none;
  }
  button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
    appearance: button;
  }
  ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
    height: auto;
  }
  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}
@layer utilities {
  .visible {
    visibility: visible;
  }
  .app-mark {
    --a: oklch(0.68 0.2 35);
    --b: oklch(0.68 0.16 330);
    --c: oklch(0.51 0.16 260);
    position: relative;
    display: grid;
    width: 5rem;
    height: 5rem;
    place-items: center;
    overflow: hidden;
    border: 1px solid oklch(0.93 0.005 270);
    border-radius: 0.34rem;
    background: var(--card);
    box-shadow: var(--shadow);
    transition: transform 180ms ease, box-shadow 180ms ease;
  }
  .app-item {
    position: relative;
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: center;
    text-align: center;
    animation: fade-rise 320ms ease-out both;
  }
  .start {
    inset-inline-start: var(--spacing);
  }
  .ai-note {
    grid-column: 2;
    margin: -2.5rem 0 0;
    color: var(--muted-foreground);
    font-size: 0.76rem;
    line-height: 1.6;
  }
  .plan-switcher {
    display: grid;
    width: min(100%, 57rem);
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.4rem;
    margin: 1.1rem auto 0;
    border: 1px solid var(--border);
    border-radius: 0.5rem;
    background: var(--background);
    padding: 0.42rem;
    box-shadow: 0 12px 36px oklch(0.22 0.02 270 / 7%);
  }
  .credibility-strip {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.8rem 1.1rem;
    width: min(100%, 64rem);
    margin: 4.5rem auto 0;
    border-top: 1px solid var(--border);
    padding-top: 1.6rem;
  }
  .trust-line {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    max-width: 46rem;
    margin: 4rem auto 0;
    padding-bottom: 0.5rem;
  }
  .signup-note {
    width: min(100%, 42rem);
    margin: 3.75rem auto 0;
    border-top: 1px solid var(--border);
    padding-top: 1.75rem;
    text-align: center;
  }
  .plan-intro {
    margin: 3rem auto 0;
    color: var(--muted-foreground);
    text-align: center;
    font-size: 0.82rem;
    font-weight: 700;
  }
  .plan-note {
    margin: 0.9rem 0 0;
    color: var(--muted-foreground);
    text-align: center;
    font-size: 0.78rem;
  }
  .section-kicker {
    margin: 0;
    color: var(--accent-blue);
    font-size: 0.95rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.055em;
  }
  .apps-heading {
    display: grid;
    justify-items: center;
    width: 100%;
    margin-inline: auto;
    text-align: center;
  }
  .site-container {
    width: min(100% - 3rem, 1180px);
    margin-inline: auto;
  }
  .pricing-heading {
    max-width: 46rem;
    margin-inline: auto;
    text-align: center;
  }
  .app-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: 2.2rem 1rem;
    margin-top: 2.25rem;
  }
  .pricing-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 3.5rem;
    align-items: stretch;
  }
  .outcome-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 3.6rem;
    border-block: 1px solid var(--border);
  }
  .value-footer {
    display: flex;
    margin-top: 2.25rem;
    align-items: center;
    justify-content: center;
    gap: 2rem;
  }
  .app-groups {
    display: grid;
    gap: 4.5rem;
    margin-top: 4rem;
  }
  .plan-label {
    margin-top: 0.38rem;
    color: var(--accent-blue);
    font-size: 0.52rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }
  .price-card {
    display: flex;
    min-width: 0;
    min-height: 31rem;
    flex-direction: column;
    justify-content: space-between;
    gap: 2rem;
    border: 1px solid var(--border);
    border-radius: 0.5rem;
    background: var(--background);
    padding: 2rem;
    transition: transform 200ms ease, box-shadow 200ms ease;
  }
  .button-dark {
    display: inline-flex;
    min-height: 2.55rem;
    align-items: center;
    justify-content: center;
    gap: 0.48rem;
    border: 1px solid var(--foreground);
    border-radius: 0.35rem;
    background: var(--foreground);
    padding: 0.62rem 1rem;
    color: var(--primary-foreground);
    font-size: 0.78rem;
    font-weight: 800;
    transition: transform 150ms ease, opacity 150ms ease;
    &:hover {
      transform: translateY(-1px);
      opacity: 0.86;
    }
  }
  .price-action {
    display: inline-flex;
    min-height: 2.55rem;
    align-items: center;
    justify-content: center;
    gap: 0.48rem;
    border: 1px solid var(--foreground);
    border-radius: 0.35rem;
    background: var(--background);
    padding: 0.62rem 1rem;
    color: var(--foreground);
    font-size: 0.78rem;
    font-weight: 800;
    transition: background 150ms ease, color 150ms ease;
  }
  .app-group-heading {
    display: flex;
    min-height: 2.7rem;
    align-items: baseline;
    justify-content: space-between;
    gap: 1.5rem;
    border-bottom: 1px solid var(--border);
  }
  .value-heading {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 2rem 5rem;
    align-items: end;
  }
  .ai-layout {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: 4rem 6rem;
  }
  .ai-capabilities {
    display: grid;
    border-top: 1px solid var(--border);
  }
  .apps-section {
    min-height: 48rem;
    background: var(--background);
    padding-block: 4.5rem 5.5rem;
  }
  .min-h-screen {
    min-height: 100vh;
  }
  .app-group {
    min-width: 0;
  }
  .ai-heading {
    align-self: start;
  }
  .bg-background {
    background-color: var(--background);
  }
  .ai-section {
    border-top: 1px solid var(--border);
    background: var(--background);
    padding-block: 6rem;
  }
  .pricing-section {
    border-top: 1px solid var(--border);
    background: var(--background);
    padding-block: 7rem 4rem;
  }
  .value-section {
    border-top: 1px solid var(--border);
    background: var(--surface);
    padding-block: 7rem;
  }
  .text-foreground {
    color: var(--foreground);
  }
}
@property --tw-animation-delay {
  syntax: "*";
  inherits: false;
  initial-value: 0s;
}
@property --tw-animation-direction {
  syntax: "*";
  inherits: false;
  initial-value: normal;
}
@property --tw-animation-duration {
  syntax: "*";
  inherits: false;
}
@property --tw-animation-fill-mode {
  syntax: "*";
  inherits: false;
  initial-value: none;
}
@property --tw-animation-iteration-count {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-enter-opacity {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-enter-rotate {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-enter-scale {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-enter-translate-x {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-enter-translate-y {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-exit-opacity {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-exit-rotate {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-exit-scale {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-exit-translate-x {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-exit-translate-y {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
:root {
  --background: oklch(1 0 0);
  --foreground: oklch(0.18 0.016 270);
  --card: oklch(1 0 0);
  --muted: oklch(0.968 0.006 270);
  --muted-foreground: oklch(0.48 0.02 270);
  --border: oklch(0.9 0.01 270);
  --primary: oklch(0.16 0.012 270);
  --primary-foreground: oklch(1 0 0);
  --surface: oklch(0.975 0.006 265);
  --accent-blue: oklch(0.55 0.16 244);
  --shadow: 0 10px 24px oklch(0.22 0.02 270 / 10%);
  --footer: oklch(0.18 0.016 270);
  --footer-foreground: oklch(0.98 0.004 270);
  --footer-muted: oklch(0.74 0.012 270);
  --footer-border: oklch(1 0 0 / 14%);
}
@layer base {
  * {
    box-sizing: border-box;
    border-color: var(--border);
  }
  html {
    scroll-behavior: smooth;
  }
  body {
    margin: 0;
    background: var(--background);
    color: var(--foreground);
    font-family: var(--font-sans);
    letter-spacing: 0;
  }
  a {
    color: inherit;
    text-decoration: none;
  }
  button, summary, a {
    -webkit-tap-highlight-color: transparent;
  }
  button {
    font: inherit;
  }
}
.button-dark {
  color: var(--primary-foreground);
}
.button-dark svg {
  width: 1rem;
}
.apps-heading h1 {
  display: grid;
  width: 100%;
  margin: 1.4rem 0 0;
  justify-items: center;
  font-family: var(--font-display);
  font-size: clamp(2.45rem, 5vw, 4.4rem);
  line-height: 1.16;
  font-weight: 700;
}
.apps-heading h1 span {
  display: block;
  width: max-content;
  max-width: 100%;
  white-space: nowrap;
}
.apps-subheading {
  margin: 1.15rem auto 0;
  max-width: 52rem;
  color: var(--muted-foreground);
  font-size: 1.08rem;
  line-height: 1.65;
}
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1rem 1.25rem;
  margin-top: 2rem;
}
.hero-pricing-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 48px;
  font-size: 0.9rem;
  font-weight: 700;
  padding: .65rem 1rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  color: var(--foreground);
  text-underline-offset: 4px;
}
.hero-pricing-link:hover { background: var(--surface); text-decoration: underline; }
.hero-pricing-link:focus-visible { background: var(--surface); outline: 2px solid var(--accent-blue); outline-offset: 3px; }
.pricing-details {
  display: grid;
  gap: 0.85rem;
  max-width: 48rem;
  margin: 2rem auto 0;
  color: var(--muted-foreground);
  font-size: 0.9rem;
  line-height: 1.7;
  text-align: center;
}
.pricing-details strong { color: var(--foreground); }
.hero-actions .button-dark { min-height: 44px; }
.hero-demo-note {
  margin-top: 1rem;
  color: #475569;
  font-size: 0.85rem;
  font-weight: 500;
  line-height: 1.5;
}
.hero-demo-note strong { color: var(--foreground); font-weight: 700; }
.hero-demo-note > span { display: inline-block; }
.plan-switcher button {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 4.25rem;
  align-content: center;
  gap: 0.3rem;
  border: 1px solid transparent;
  border-radius: 0.32rem;
  background: var(--surface);
  padding: 0.75rem 1rem;
  color: var(--muted-foreground);
  cursor: pointer;
  transition: background 150ms ease, color 150ms ease, transform 150ms ease, border-color 150ms ease;
}
.plan-switcher button:hover {
  border-color: var(--border);
  background: var(--background);
}
.plan-switcher button strong {
  color: var(--foreground);
  font-family: var(--font-display);
  font-size: 0.9rem;
}
.plan-switcher button span {
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 0.66rem;
  font-weight: 700;
  white-space: nowrap;
}
.plan-switcher button.active {
  border-color: var(--foreground);
  background: var(--foreground);
  color: var(--primary-foreground);
  box-shadow: 0 5px 14px oklch(0.2 0.02 270 / 18%);
  transform: translateY(-1px);
}
.plan-switcher button.active strong {
  color: var(--primary-foreground);
}
.plan-note strong {
  color: var(--foreground);
}
.app-group-heading h3 {
  margin: 0;
  padding-bottom: 0.9rem;
  font-family: var(--font-display);
  font-size: 1.22rem;
}
.app-group-tagline {
  max-width: 34rem;
  margin: 0.5rem 0 0;
  color: var(--muted-foreground);
  font-size: 0.88rem;
  line-height: 1.55;
}
.app-group-heading span {
  color: var(--accent-blue);
  font-size: 0.72rem;
  font-weight: 800;
}
@media (min-width: 600px) {
  .app-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (min-width: 980px) {
  .app-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 2.8rem 1.4rem;
  }
}
@keyframes fade-rise {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.app-item > strong {
  margin-top: 0.82rem;
  max-width: 100%;
  font-size: 0.83rem;
  line-height: 1.25;
  text-wrap: balance;
  overflow-wrap: break-word;
}
.app-item > small {
  margin-top: 0.25rem;
  max-width: 9rem;
  color: var(--muted-foreground);
  font-size: 0.64rem;
  line-height: 1.35;
  text-wrap: balance;
  overflow-wrap: break-word;
  hyphens: none;
}
.credibility-strip span {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--muted-foreground);
  font-size: 0.78rem;
  font-weight: 700;
  white-space: nowrap;
}
.credibility-strip span + span::before {
  content: "·";
  margin-right: 1.1rem;
  color: var(--border);
}
.credibility-strip svg {
  flex: none;
  width: 0.95rem;
  height: 0.95rem;
  color: var(--accent-blue);
}
.app-item:hover .app-mark {
  transform: translateY(-4px);
  box-shadow: 0 16px 30px oklch(0.22 0.02 270 / 15%);
}
.app-mark svg {
  position: relative;
  z-index: 3;
  width: 3.5rem;
  height: 3.5rem;
}
.mark-coral {
  --a: oklch(0.86 0.105 34);
  --b: oklch(0.66 0.21 30);
  --c: oklch(0.47 0.2 27);
}
.mark-teal {
  --a: oklch(0.86 0.1 182);
  --b: oklch(0.63 0.15 180);
  --c: oklch(0.4 0.12 192);
}
.mark-cyan {
  --a: oklch(0.86 0.1 210);
  --b: oklch(0.63 0.16 218);
  --c: oklch(0.4 0.14 228);
}
.mark-pink {
  --a: oklch(0.86 0.1 352);
  --b: oklch(0.65 0.2 355);
  --c: oklch(0.44 0.19 355);
}
.mark-amber {
  --a: oklch(0.89 0.12 84);
  --b: oklch(0.74 0.17 68);
  --c: oklch(0.49 0.16 56);
}
.mark-blue {
  --a: oklch(0.85 0.1 254);
  --b: oklch(0.62 0.2 254);
  --c: oklch(0.41 0.21 262);
}
.money-section {
  background: var(--surface);
  color: var(--foreground);
}
.money-section .section-kicker {
  color: var(--accent-blue);
}
.value-heading .section-kicker {
  grid-column: 1 / -1;
}
.value-heading h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(2.1rem, 4vw, 3.7rem);
  line-height: 1.08;
}
.value-heading > p:last-child {
  margin: 0;
  color: var(--muted-foreground);
  font-size: 0.92rem;
  line-height: 1.75;
}
.money-section .value-heading > p:last-child {
  color: var(--muted-foreground);
  font-size: 1rem;
}
.money-section .outcome-grid {
  border-color: var(--border);
}
.outcome-grid article {
  position: relative;
  min-height: 17rem;
  padding: 2rem 1.45rem;
  border-right: 1px solid var(--border);
}
.money-section .outcome-grid article {
  border-color: var(--border);
}
.money-section .outcome-grid article.money-card {
  background: var(--background);
}
.outcome-grid article:last-child {
  border-right: 0;
}
.outcome-grid article > span {
  color: var(--accent-blue);
  font-size: 0.88rem;
  font-weight: 800;
}
.money-section .outcome-grid article > span {
  color: var(--accent-blue);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.outcome-grid svg {
  display: block;
  width: 2rem;
  height: 2rem;
  margin-top: 2.4rem;
  color: var(--foreground);
}
.money-section .outcome-grid svg {
  color: var(--foreground);
}
.outcome-grid h3 {
  margin: 1.2rem 0 0;
  font-family: var(--font-display);
  font-size: 1.08rem;
}
.outcome-grid p {
  margin: 0.65rem 0 0;
  color: var(--muted-foreground);
  font-size: 0.86rem;
  line-height: 1.65;
}
.money-section .outcome-grid p {
  color: var(--muted-foreground);
}
.value-footer > div {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  color: var(--muted-foreground);
  font-size: 0.77rem;
  font-weight: 700;
}
.value-footer > div svg {
  width: 1.2rem;
  color: var(--accent-blue);
}
.money-section .value-footer > div {
  color: var(--muted-foreground);
}
.ai-heading h2 {
  margin: 0.75rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(2.15rem, 4vw, 3.7rem);
  line-height: 1.08;
}
.ai-heading > p:not(.section-kicker) {
  margin: 1.25rem 0 1.8rem;
  color: var(--muted-foreground);
  font-size: 1.08rem;
  line-height: 1.72;
}
.ai-capabilities article {
  display: grid;
  grid-template-columns: 3.25rem 1fr;
  gap: 1.2rem;
  align-items: start;
  border-bottom: 1px solid var(--border);
  padding: 1.45rem 0;
}
.ai-capabilities article > svg {
  width: 1.75rem;
  height: 1.75rem;
  color: var(--accent-blue);
}
.ai-capabilities article div {
  display: grid;
  grid-template-columns: 2.45rem 1fr;
  gap: 0.25rem 0.75rem;
}
.ai-capabilities article span {
  grid-row: 1 / 3;
  color: var(--accent-blue);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.2;
}
.ai-capabilities h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 0.94rem;
}
.ai-capabilities p {
  margin: 0.4rem 0 0;
  color: var(--muted-foreground);
  font-size: 0.96rem;
  line-height: 1.65;
}
.pricing-heading h2 {
  margin: 0.75rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(2.15rem, 4vw, 3.7rem);
  line-height: 1.08;
}
.pricing-heading > p:last-child {
  max-width: 39rem;
  margin: 1.15rem auto 0;
  color: var(--muted-foreground);
  font-size: 0.95rem;
  line-height: 1.7;
}
.price-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 38px oklch(0.2 0.02 270 / 12%);
}
.price-card.featured {
  border-color: var(--foreground);
  box-shadow: 0 18px 45px oklch(0.2 0.02 270 / 10%);
}
.price-card.featured:hover {
  box-shadow: 0 24px 52px oklch(0.2 0.02 270 / 14%);
}
.price-card > div > span {
  color: var(--accent-blue);
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.price-card h3, .price-card h2 {
  margin: 0.8rem 0 0;
  font-family: var(--font-display);
  font-size: 1.25rem;
}
.price {
  display: grid;
  min-height: 6.4rem;
  align-content: start;
  gap: 0.35rem;
  margin: 1.4rem 0 0;
}
.price strong {
  font-family: var(--font-display);
  font-size: 2.55rem;
  line-height: 1.05;
}
.price small {
  color: var(--muted-foreground);
  font-size: 0.76rem;
  font-weight: 700;
}
.price-card ul {
  display: grid;
  gap: 0.9rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.price-card li {
  display: grid;
  grid-template-columns: 1.15rem 1fr;
  gap: 0.65rem;
  align-items: start;
  color: var(--muted-foreground);
  font-size: 0.82rem;
  line-height: 1.5;
}
.price-card li svg {
  width: 1rem;
  height: 1rem;
  margin-top: 0.12rem;
  color: var(--accent-blue);
}
.price-action:hover {
  background: var(--foreground);
  color: var(--primary-foreground);
}
.price-action svg {
  width: 1rem;
}
.signup-note strong {
  display: block;
  color: var(--foreground);
  font-family: var(--font-display);
  font-size: 1.18rem;
  font-weight: 700;
}
.signup-note p {
  margin: 0.45rem 0 0;
  color: var(--muted-foreground);
  font-size: 0.88rem;
  line-height: 1.6;
}
.trust-line svg {
  flex: none;
  width: 1.15rem;
  height: 1.15rem;
  color: var(--accent-blue);
}
.trust-line span {
  color: var(--muted-foreground);
  font-size: 0.8rem;
  line-height: 1.6;
}
@media (max-width: 980px) {
  .value-heading {
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }
  .outcome-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .outcome-grid article:nth-child(2) {
    border-right: 0;
  }
  .outcome-grid article:nth-child(-n+2) {
    border-bottom: 1px solid var(--border);
  }
  .ai-layout {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .ai-note {
    grid-column: 1;
    margin-top: -1.5rem;
  }
  .pricing-grid {
    grid-template-columns: 1fr;
  }
  .price-card {
    min-height: 0;
  }
  .credibility-strip {
    width: min(100%, 34rem);
    gap: 0.7rem 1rem;
  }
  .credibility-strip span {
    white-space: normal;
  }
  .credibility-strip span + span::before {
    display: none;
  }
}
@media (max-width: 599px) {
  .site-container {
    width: min(100% - 2rem, 1180px);
  }
  .apps-section {
    padding-block: 3.2rem 4rem;
  }
  .apps-heading h1 {
    font-size: 2.45rem;
    min-width: 0;
  }
  .apps-heading h1 span {
    width: 100%;
    white-space: normal;
    text-wrap: balance;
  }
  .apps-heading h1 span:not(.opening-line) {
    font-size: 1.55rem;
    line-height: 1.18;
  }
  @media (max-width: 380px) {
    .apps-heading h1 {
      font-size: 2.1rem;
    }
    .apps-heading h1 span:not(.opening-line) {
      font-size: 1.32rem;
    }
  }
  .plan-switcher {
    width: 100%;
    grid-template-columns: 1fr;
  }
  .plan-switcher button {
    grid-template-columns: 6.5rem minmax(0, 1fr);
    align-items: center;
    min-height: 3.8rem;
    gap: 0.6rem;
    padding-inline: 0.9rem;
    text-align: left;
  }
  .plan-switcher button span {
    font-size: 0.75rem;
    white-space: normal;
  }
  .app-groups {
    gap: 3.5rem;
    margin-top: 3rem;
  }
  .app-group-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 0;
  }
  .app-group-heading h3 {
    padding-bottom: 0.35rem;
  }
  .app-group-tagline {
    margin: 0;
    font-size: 0.8rem;
  }
  .app-group-heading span {
    padding-bottom: 0.8rem;
  }
  .app-grid {
    gap: 2.25rem 0.75rem;
    margin-top: 2rem;
  }
  .app-mark {
    width: 4rem;
    height: 4rem;
  }
  .app-mark svg {
    width: 2.9rem;
    height: 2.9rem;
  }
  .app-item > strong {
    font-size: 0.72rem;
  }
  .app-item > small {
    font-size: 0.58rem;
  }
  .value-section {
    padding-block: 4rem;
  }
  .outcome-grid {
    grid-template-columns: 1fr;
  }
  .outcome-grid article {
    min-height: 0;
    border-right: 0;
    border-bottom: 1px solid var(--border);
    padding: 1.7rem 0.35rem;
  }
  .outcome-grid article:last-child {
    border-bottom: 0;
  }
  .outcome-grid svg {
    margin-top: 1.5rem;
  }
  .value-footer {
    align-items: stretch;
    flex-direction: column;
  }
  .ai-section {
    padding-block: 4rem;
  }
  .pricing-section {
    padding-block: 4rem;
  }
  .trust-line {
    align-items: flex-start;
    text-align: left;
  }
  .trust-line span {
    font-size: 0.76rem;
  }
  .ai-capabilities article {
    grid-template-columns: 2.5rem 1fr;
  }
}
@media (min-width: 1500px) {
  .site-container {
    width: min(100% - 4rem, 1360px);
  }
  .apps-heading h1 {
    font-size: clamp(2.45rem, 4vw, 5rem);
  }
  .app-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 3.4rem 1.8rem;
  }
  .app-item > strong {
    font-size: 0.92rem;
  }
  .app-item > small {
    font-size: 0.7rem;
    max-width: 10.5rem;
  }
  .ai-heading h2 {
    font-size: clamp(2.15rem, 3.2vw, 4.2rem);
  }
  .pricing-grid {
    gap: 1.4rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *, *::before, *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-delay: 0ms !important;
  }
}
@layer properties {
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
    *, ::before, ::after, ::backdrop {
      --tw-animation-delay: 0s;
      --tw-animation-direction: normal;
      --tw-animation-duration: initial;
      --tw-animation-fill-mode: none;
      --tw-animation-iteration-count: 1;
      --tw-enter-opacity: 1;
      --tw-enter-rotate: 0;
      --tw-enter-scale: 1;
      --tw-enter-translate-x: 0;
      --tw-enter-translate-y: 0;
      --tw-exit-opacity: 1;
      --tw-exit-rotate: 0;
      --tw-exit-scale: 1;
      --tw-exit-translate-x: 0;
      --tw-exit-translate-y: 0;
    }
  }
}

/* Native PHP integration: visibility, keyboard focus, and the shared skip link. */
[hidden] { display: none !important; }
.skip-link { position: fixed; z-index: 100; top: 8px; left: 8px; padding: 10px 16px; background: var(--foreground); color: #fff; border-radius: .35rem; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
a:focus-visible, button:focus-visible { outline: 2px solid var(--accent-blue); outline-offset: 4px; }
button { cursor: pointer; }

#pricing { scroll-margin-top: 6rem; }

/* Buyer journey: clinic economics, visible capabilities, product evidence, and plans. */
/* Category accents surround product content; module icons retain their own palettes. */
[data-domain="patient"] { --domain-accent: #2b86ce; --domain-ink: #14679e; --domain-tint: #f0f7ff; --domain-edge: #c1daf3; }
[data-domain="clinical"] { --domain-accent: #21a899; --domain-ink: #08766d; --domain-tint: #effaf7; --domain-edge: #b9e4dc; }
[data-domain="revenue"] { --domain-accent: #df9a29; --domain-ink: #8b5a14; --domain-tint: #fff8e8; --domain-edge: #ead6a8; --marker-color: #ffe5ab; }
[data-domain="management"] { --domain-accent: #8c79cf; --domain-ink: #65509f; --domain-tint: #f6f3fc; --domain-edge: #dbd3ee; }
.marker-accent { position: relative; display: inline-block; white-space: nowrap; isolation: isolate; }
.marker-accent::after { content: ''; position: absolute; z-index: -1; inset-inline: -.025em; bottom: -.065em; height: .2em; background: var(--marker-color, #bfe9fc); clip-path: polygon(0 45%, 4% 18%, 29% 8%, 64% 15%, 97% 0, 100% 40%, 97% 82%, 66% 93%, 30% 85%, 2% 100%); transform: rotate(-1deg); pointer-events: none; }
.apps-section { min-height: 0; padding-block: 5rem 4rem; }
.apps-heading h1 { display: block; margin-top: 1.5rem; font-size: clamp(2.2rem, 4.8vw, 4rem); letter-spacing: -.045em; line-height: 1.2; text-wrap: balance; }
.hero-promise { --marker-color: #ffe5ab; margin: 1rem 0 0; color: var(--accent-blue); font-family: var(--font-display); font-size: clamp(1.6rem, 3.15vw, 2.6rem); font-weight: 600; letter-spacing: -.035em; line-height: 1.3; text-wrap: balance; }
.apps-subheading { max-width: 47rem; margin-top: 1.75rem; }
.hero-actions .button-dark { min-height: 48px; padding-inline: 2rem; font-size: .9rem; }
.apps-section--explore { padding-block: 7rem; }
.apps-section--explore .section-kicker { color: var(--accent-blue); }
.apps-section--explore .apps-heading h1,
.apps-section--explore .hero-promise { font-weight: 600; }
.apps-section--explore .apps-heading h1 .hero-line { display: inline; width: auto; max-width: none; font-size: inherit; line-height: inherit; white-space: normal; }
.apps-section--explore .hero-promise { color: var(--foreground); }
.apps-section--explore .hero-promise .marker-accent { color: var(--accent-blue); }
.apps-section--explore .apps-subheading { max-width: 57rem; }
@media (min-width: 600px) {
  .apps-section--explore .apps-heading h1,
  .apps-section--explore .hero-promise { font-size: clamp(2.2rem, 4.3vw, 3.4375rem); }
}
.hero-explore-link { min-height: 48px; margin-top: 3.5rem; padding-inline: 2rem; font-size: .9rem; }
.hero-explore-link, .hero-explore-link:hover { text-decoration: none; }
.hero-explore-link span { display: inline-block; transition: transform .2s ease; }
.hero-explore-link:hover span { transform: translateY(2px); }
.hero-explore-link:focus-visible { outline: 2px solid var(--foreground); outline-offset: 4px; }
.platform-catalogue--explore-target { scroll-margin-top: 96px; }
.product-preview { margin: 3rem 0 0; border: 1px solid var(--border); border-radius: 16px; overflow: hidden; box-shadow: 0 20px 60px rgba(24, 40, 68, .08); }
.product-preview__heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .5rem; padding: 1rem 1.5rem; font-size: .85rem; border-bottom: 1px solid var(--border); }
.product-preview__heading > span { color: var(--muted-foreground); font-size: .8rem; }
.product-preview img { width: 100%; height: auto; }
.product-preview figcaption { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 1.5rem; color: var(--muted-foreground); font-size: .78rem; line-height: 1.6; border-top: 1px solid var(--border); }
.product-preview figcaption a { flex-shrink: 0; color: var(--accent-blue); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.story-link { display: inline-flex; align-items: center; min-height: 44px; gap: .4rem; margin-top: .8rem; font-size: .85rem; font-weight: 800; color: var(--accent-blue); }
.story-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.outcome-grid { gap: 0; }
.outcome-grid article { display: flex; flex-direction: column; align-items: flex-start; }
.outcome-grid article > p { margin-bottom: auto; }
.outcome-grid .story-link { line-height: 1.5; }
.section-introduction h2, .closing-section h2 { margin: .8rem 0 1.1rem; font-family: var(--font-display); font-size: clamp(1.8rem, 3.2vw, 2.7rem); line-height: 1.2; font-weight: 600; letter-spacing: -.045em; text-wrap: balance; }
.section-introduction > p:last-child, .closing-section p:last-child { color: var(--muted-foreground); font-size: 1rem; line-height: 1.75; }
.buyer-faq-section { padding-block: 5rem; border-top: 1px solid var(--border); }
.migration-section { padding-block: 3.5rem; background: var(--surface); border-top: 1px solid var(--border); scroll-margin-top: 76px; }
.buyer-faq-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 5rem; }
.pricing-section { padding-block: 5rem; }
.price-card li { font-size: .9rem; }
.plan-comparison { margin-top: 3rem; border: 1px solid var(--border); border-radius: 12px; }
.plan-comparison > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.6rem 2rem; cursor: pointer; list-style: none; }
.plan-comparison > summary::-webkit-details-marker { display: none; }
.plan-comparison > summary strong { font-size: 1.1rem; }
.plan-comparison > summary small { display: block; margin-top: .35rem; color: var(--muted-foreground); font-size: .9rem; }
.disclosure-icon { display: inline-grid; place-items: center; flex-shrink: 0; width: 2rem; height: 2rem; border: 1px solid var(--border); border-radius: 50%; font-size: 1.4rem; line-height: 1; transition: transform .15s; }
.plan-comparison[open] .disclosure-icon { transform: rotate(45deg); }
.plan-comparison__content { padding: 0 2rem 2rem; }
.buyer-faq-section { background: var(--surface); }
.buyer-faq-list details { border-bottom: 1px solid var(--border); }
.buyer-faq-list details:first-child { border-top: 1px solid var(--border); }
.buyer-faq-list summary { position: relative; padding: 1.35rem 2rem 1.35rem 0; cursor: pointer; font-size: 1rem; font-weight: 800; line-height: 1.6; list-style: none; }
.buyer-faq-list summary::-webkit-details-marker { display: none; }
.buyer-faq-list summary::after { content: '+'; position: absolute; right: .2rem; top: 1.35rem; color: var(--accent-blue); font-size: 1.25rem; font-weight: 500; }
.buyer-faq-list details[open] summary::after { content: '×'; }
.buyer-faq-list details > p { margin: 0 0 1.5rem; padding-right: 1.5rem; color: var(--muted-foreground); font-size: .95rem; line-height: 1.8; }
.closing-section { padding-block: 4.5rem; border-top: 1px solid var(--border); }
.closing-layout { display: flex; align-items: center; justify-content: space-between; gap: 3rem; }
.closing-layout > div { max-width: 46rem; }
.closing-layout .button-dark { flex-shrink: 0; min-height: 48px; padding-inline: 2rem; font-size: .9rem; }
.platform-catalogue { padding: 3rem 0 2.5rem; background: var(--surface); border-block: 1px solid var(--border); }
.catalogue-heading { max-width: 46rem; margin: 0 auto 2.5rem; text-align: center; }
.catalogue-heading h2 { font-size: clamp(1.6rem, 2.8vw, 2.2rem); }
.catalogue-groups { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; }
.catalogue-group h3 { position: relative; padding: 1rem 0 .75rem; border-bottom: 1px solid var(--border); font-family: var(--font-display); font-size: .95rem; font-weight: 600; }
.catalogue-group h3::before { content: ''; position: absolute; top: 0; left: 0; width: 2.75rem; height: 3px; border-radius: 3px; background: var(--domain-accent, var(--accent-blue)); }
.catalogue-group > p { min-height: 3.4rem; margin-top: .75rem; color: var(--muted-foreground); font-size: .83rem; line-height: 1.6; }
.catalogue-apps { display: grid; gap: .4rem; margin-top: 1rem; }
.catalogue-app { display: flex; align-items: center; gap: .75rem; min-height: 55px; padding: .25rem; margin-inline: -.25rem; border-radius: 8px; font-size: .86rem; font-weight: 700; line-height: 1.35; }
.catalogue-app:hover { color: var(--accent-blue); background: var(--background); }
.catalogue-app .app-mark { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 9px; box-shadow: 0 2px 5px rgba(24, 40, 68, .04); }
.catalogue-app .app-mark svg { width: 29px; height: 29px; }
.catalogue-note { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--border); color: var(--muted-foreground); text-align: center; font-size: .85rem; line-height: 1.7; }
.catalogue-note a { display: inline-block; color: var(--accent-blue); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.workflow-section { padding-block: 5rem; }
.workflow-introduction { max-width: 47rem; margin: 0 auto 4rem; text-align: center; }
.workflow-story { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.55fr); align-items: center; gap: 3rem; padding-block: 3.5rem; border-top: 1px solid var(--border); scroll-margin-top: 96px; }
.workflow-eyebrow { display: flex; align-items: center; gap: .8rem; margin-bottom: 1.25rem; color: var(--domain-ink, var(--accent-blue)); font-size: .78rem; font-weight: 800; }
.workflow-eyebrow span { display: grid; flex-shrink: 0; place-items: center; width: 32px; height: 32px; border: 1px solid var(--domain-edge, #bed9f3); border-radius: 50%; background: var(--domain-tint, #f0f7ff); font-variant-numeric: tabular-nums; }
.workflow-copy h3 { font-family: var(--font-display); font-size: clamp(1.65rem, 2.4vw, 2.1rem); font-weight: 600; line-height: 1.23; letter-spacing: -.04em; text-wrap: balance; }
.workflow-copy > p:not(.workflow-eyebrow) { margin-top: 1.1rem; color: var(--muted-foreground); font-size: .96rem; line-height: 1.75; }
.workflow-copy > p.workflow-benefit { color: var(--foreground); font-weight: 600; }
.workflow-story .product-preview { margin: 0; background: #fff; }
.workflow-story .product-preview img { display: block; }
.workflow-story .product-preview__heading { padding: .95rem 1.2rem; background: var(--domain-tint, #f0f7ff); font-size: .8rem; }
.workflow-story .product-preview figcaption { padding: .7rem 1.2rem; font-size: .72rem; }
.workflow-assistance { margin-top: 1.5rem; padding: 1rem 0 0 1rem; border-left: 2px solid var(--domain-edge, #bed9f3); color: var(--muted-foreground); font-size: .82rem; line-height: 1.7; }
.workflow-assistance a { display: inline-flex; align-items: center; min-height: 44px; color: var(--accent-blue); font-weight: 700; }
.workflow-assistance a:hover { text-decoration: underline; }
.workflow-footer { display: flex; align-items: center; justify-content: space-between; gap: 3rem; border-top: 1px solid var(--border); padding-top: 2rem; }
.workflow-footer p { max-width: 40rem; color: var(--muted-foreground); font-size: .78rem; line-height: 1.7; }
.workflow-footer .button-dark { flex-shrink: 0; min-height: 48px; font-size: .85rem; }
.plan-table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: .9rem; }
.comparison-introduction { margin-bottom: 1.5rem; color: var(--muted-foreground); font-size: .85rem; line-height: 1.7; }
.plan-table-scroll { position: relative; }
.plan-table th, .plan-table td { padding: .85rem .65rem; border-bottom: 1px solid var(--border); text-align: center; vertical-align: middle; }
.plan-table th:first-child { width: 46%; text-align: left; }
.plan-table thead th { position: sticky; top: 76px; z-index: 1; background: var(--surface); font-weight: 800; box-shadow: 0 1px 0 var(--border); }
.plan-table thead small { display: block; margin-top: .3rem; color: var(--muted-foreground); font-size: .75rem; font-weight: 500; }
.plan-table tbody th[scope="row"] { font-weight: 600; }
.plan-table tbody th a:hover { color: var(--accent-blue); text-decoration: underline; }
.plan-table .plan-table-category th { padding-top: 1.7rem; color: var(--accent-blue); font-size: .8rem; font-weight: 800; }
.plan-included { color: #16724c; font-size: 1.2rem; font-weight: 800; }
.plan-excluded { color: #797f89; font-size: 1.15rem; }
.comparison-scroll-hint { display: none; }
@media (max-width: 980px) {
  .catalogue-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem; }
  .catalogue-group > p { min-height: 0; }
  .workflow-story { grid-template-columns: 1fr; gap: 2rem; }
  .workflow-copy { max-width: 43rem; }
  .workflow-footer { flex-direction: column; align-items: flex-start; gap: 1.5rem; }
  .buyer-faq-layout { grid-template-columns: 1fr; gap: 2rem; }
  .closing-layout { align-items: flex-start; flex-direction: column; gap: 1.5rem; }
}
@media (max-width: 599px) {
  .platform-catalogue { padding-block: 2.5rem; }
  .apps-section--explore > .site-container,
  .platform-catalogue--explore-target > .site-container { width: calc(100% - 3rem); }
  .catalogue-heading { margin-bottom: 2rem; }
  .catalogue-groups { grid-template-columns: 1fr; gap: 2rem; }
  .catalogue-apps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem .75rem; }
  .catalogue-app { gap: .5rem; min-height: 60px; font-size: .8rem; }
  .catalogue-app .app-mark { flex-basis: 34px; width: 34px; height: 34px; }
  .catalogue-app .app-mark svg { width: 25px; height: 25px; }
  #modules .catalogue-app { margin-inline: 0; padding-inline: 0; }
  #modules .catalogue-app > span:last-child { min-width: 0; }
  .workflow-section { padding-block: 3.5rem; }
  .workflow-introduction { margin-bottom: 2.5rem; }
  .workflow-story { padding-block: 2.5rem; }
  .workflow-story .product-preview figcaption { flex-wrap: wrap; }
  .comparison-scroll-hint { display: block; margin-bottom: 1rem; color: var(--accent-blue); font-size: .78rem; line-height: 1.6; }
  .plan-table-scroll { max-height: min(65dvh, 560px); overflow: auto; }
  .plan-table { min-width: 420px; font-size: .8rem; }
  .plan-table th, .plan-table td { padding: .75rem .5rem; }
  .plan-table th:first-child { width: 32%; }
  .plan-table th[scope="row"] { position: sticky; left: 0; background: #fff; z-index: 1; }
  .plan-table-category th > span { position: sticky; left: 8px; display: inline-block; }
  .plan-table thead th { top: 0; font-size: .78rem; }
  .plan-table thead th:first-child { left: 0; z-index: 2; }
  .plan-table thead small { font-size: .7rem; }
  .apps-section { padding-block: 2.5rem; }
  .apps-section--explore { padding-block: 3.5rem; }
  .hero-explore-link { margin-top: 3rem; }
  .apps-heading h1 { margin-top: 1rem; font-size: clamp(1.8rem, 9.5vw, 2.35rem); }
  .hero-promise { max-width: 22rem; margin-top: .75rem; font-size: clamp(1.3rem, 6.2vw, 1.55rem); }
  .apps-section--explore .section-kicker { max-width: 24rem; font-size: .78rem; line-height: 1.6; text-wrap: balance; }
  .apps-section--explore .apps-heading h1,
  .apps-section--explore .hero-promise { font-size: clamp(1.625rem, 8vw, 2.125rem); line-height: 1.25; letter-spacing: -.04em; }
  .apps-section--explore .apps-heading h1 { margin-top: 1.5rem; }
  .apps-section--explore .apps-heading h1 .hero-line { display: block; }
  .apps-section--explore .hero-promise { max-width: none; margin-top: 0; }
  .apps-subheading { margin-top: 1.25rem; font-size: 1rem; }
  .apps-section--explore .apps-subheading { text-wrap: pretty; }
  .hero-demo-note { max-width: 20rem; line-height: 1.7; }
  .hero-actions { gap: .7rem 1rem; margin-top: 1.4rem; }
  .hero-pricing-link { font-size: .85rem; }
  .product-preview { margin-top: 2rem; border-radius: 12px; }
  .product-preview__heading { padding: 1rem; font-size: .85rem; }
  .product-preview figcaption { padding: .75rem 1rem; flex-wrap: wrap; gap: .25rem; }
  .product-preview figcaption a { display: inline-flex; align-items: center; min-height: 44px; }
  .buyer-faq-section, .pricing-section { padding-block: 3.5rem; }
  .migration-section { padding-block: 2.5rem; }
  .plan-comparison > summary { padding: 1.25rem; }
  .plan-comparison > summary strong { font-size: 1rem; }
  .plan-comparison > summary small { font-size: .8rem; line-height: 1.6; }
  .plan-comparison__content { padding-inline: 1rem; }
  .closing-section { padding-block: 3.5rem; }
}
@media (max-width: 359px) {
  #modules .catalogue-apps { grid-template-columns: 1fr; }
}

/* User controlled product galleries. Without JS, every screenshot stays visible. */
.product-gallery { min-width: 0; }
.screen-stack { display: grid; gap: 1.5rem; }
.is-interactive .screen-stack { padding: 116px 68px 0 0; isolation: isolate; }
.is-interactive .screen-card { grid-area: 1 / 1; position: relative; transition: transform .3s ease, box-shadow .3s ease; }
.is-interactive .screen-card.is-front { z-index: 2; transform: translate(0, 0); }
.is-interactive .screen-card.is-back { z-index: 1; transform: translate(calc(var(--screen-depth, 1) * 18px), calc(var(--screen-depth, 1) * -42px)) rotate(calc(var(--screen-depth, 1) * 2.5deg)); box-shadow: 0 8px 25px rgba(24,40,68,.08); }
.screen-bring-forward { position: absolute; inset: 0; width: 100%; height: 100%; cursor: pointer; background: transparent; }
.screen-controls { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; }
.screen-controls button { min-height: 44px; padding: .65rem 1rem; background: var(--surface); border: 1px solid var(--border); border-radius: 8px; font-size: .8rem; font-weight: 700; cursor: pointer; }
.screen-controls button[aria-pressed="true"] { background: var(--domain-tint, #eaf3ff); border-color: var(--domain-edge, #97c5ff); color: var(--domain-ink, #075bbb); }
.screen-controls button:hover { border-color: var(--domain-accent, var(--accent-blue)); }
.product-gallery .product-preview__heading > span { font-size: .68rem; }
html.product-image-modal-open { overflow: hidden; scrollbar-gutter: stable; }
.product-image-modal { position: fixed; inset: 0; width: min(1440px, calc(100% - 48px)); max-width: none; max-height: calc(100dvh - 48px); margin: auto; padding: 0; overflow: auto; overscroll-behavior: contain; color: var(--foreground); background: var(--background); border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 28px 90px rgba(15, 19, 30, .25); }
.product-image-modal::backdrop { background: rgba(15, 19, 30, .65); backdrop-filter: blur(4px); }
.product-image-modal__header { position: sticky; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .65rem 1rem; background: var(--background); border-bottom: 1px solid var(--border); }
.product-image-modal__header h2 { font-family: var(--font-display); font-size: 1rem; font-weight: 600; line-height: 1.4; }
.product-image-modal__close { display: grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px; border: 1px solid var(--border); border-radius: 50%; background: var(--surface); font-size: 1.7rem; line-height: 1; cursor: pointer; }
.product-image-modal__close:hover { background: #e9ebee; }
.product-image-modal__image { background: var(--surface); }
.product-image-modal__image img { display: block; width: 100%; height: auto; max-height: calc(100dvh - 190px); object-fit: contain; }
.product-image-modal > p { padding: .85rem 1rem; border-top: 1px solid var(--border); color: var(--muted-foreground); font-size: .8rem; line-height: 1.5; }
@media (max-width: 599px) {
  .product-image-modal { width: calc(100% - 24px); max-height: calc(100dvh - 24px); border-radius: 12px; }
  .product-image-modal__header { padding: .5rem .75rem; }
  .product-image-modal__header h2 { font-size: .85rem; }
  .product-image-modal > p { padding: .75rem; font-size: .75rem; }
}
.pricing-teaser { padding-block: 3.5rem; border-top: 1px solid var(--border); background: #f3f8ff; }
.pricing-teaser__inner { display: flex; gap: 2rem; align-items: center; justify-content: space-between; }
.pricing-teaser h2 { margin: .7rem 0; font-family: var(--font-display); font-size: clamp(1.5rem, 2.5vw, 2rem); line-height: 1.35; letter-spacing: -.04em; }
.pricing-teaser p:last-child { color: var(--muted-foreground); line-height: 1.7; font-size: .9rem; }
.pricing-teaser .button-dark { flex-shrink: 0; min-height: 48px; font-size: .9rem; }
.pricing-page { padding-top: 2rem; }
.pricing-breadcrumbs { display: flex; align-items: center; gap: .65rem; margin-bottom: 2rem; color: var(--muted-foreground); font-size: .75rem; }
.pricing-breadcrumbs a { display: inline-flex; align-items: center; min-height: 44px; }
.pricing-breadcrumbs a:hover { color: var(--accent-blue); text-decoration: underline; text-underline-offset: 4px; }
@media (min-width: 981px) {
  .pricing-page .price-card { display: grid; grid-template-rows: subgrid; grid-row: span 3; row-gap: 2rem; }
  .pricing-page .price-card > ul { align-self: start; }
  .pricing-page .price-card > a { align-self: end; }
}
.pricing-heading h1 { margin: 1rem 0 1.4rem; font-family: var(--font-display); font-size: clamp(2.1rem, 4vw, 3.5rem); font-weight: 600; line-height: 1.2; letter-spacing: -.045em; }
.pricing-catalogue { margin-top: 4rem; padding-top: 3rem; border-top: 1px solid var(--border); }
.pricing-catalogue > .section-introduction { max-width: 44rem; }
.plan-explorer-controls { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1.25rem; margin-top: 2rem; }
.plan-selector { display: flex; padding: .3rem; gap: .25rem; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
.plan-selector button { min-height: 46px; padding: .65rem 1.15rem; font-size: .9rem; font-weight: 700; border-radius: 8px; cursor: pointer; }
.plan-selector button[aria-pressed="true"] { background: var(--foreground); color: #fff; box-shadow: 0 3px 8px rgba(24,40,68,.1); }
.plan-filter { display: flex; gap: .65rem; align-items: center; min-height: 44px; font-size: .85rem; cursor: pointer; }
.plan-filter input { width: 18px; height: 18px; accent-color: var(--accent-blue); }
.plan-explorer-status { margin: 1.5rem 0 2rem; font-size: .85rem; color: var(--muted-foreground); line-height: 1.6; }
.pricing-catalogue .catalogue-app { min-height: 76px; transition: background-color .2s ease; }
.pricing-catalogue .app-mark { opacity: 1; filter: grayscale(0); transition: opacity .32s ease, filter .32s ease; }
.pricing-catalogue .catalogue-app > span:last-child { opacity: 1; transition: opacity .32s ease; }
.pricing-catalogue .app-availability { transition: color .32s ease; }
.app-availability { display: block; margin-top: .3rem; font-size: .7rem; font-weight: 500; line-height: 1.4; color: #19633b; }
.is-excluded .app-mark { filter: grayscale(1); opacity: .4; }
.pricing-catalogue .is-excluded .catalogue-app,
.pricing-catalogue .is-excluded .app-availability { color: var(--foreground); }
.pricing-catalogue .is-excluded .catalogue-app > span:last-child { opacity: .6; }
@media (prefers-reduced-motion: reduce) {
  .is-interactive .screen-card { transition: none; }
  .pricing-catalogue .catalogue-app,
  .pricing-catalogue .catalogue-app > span:last-child,
  .pricing-catalogue .app-mark,
  .pricing-catalogue .app-availability { transition: none; }
}
@media (max-width: 760px) {
  .pricing-teaser__inner { flex-direction: column; align-items: flex-start; }
  .pricing-page { padding-top: 1.25rem; }
  .pricing-breadcrumbs { margin-bottom: 1.25rem; }
  .pricing-page .pricing-grid { margin-top: 2rem; }
  .pricing-page .price-card { padding: 1.25rem; gap: 1.25rem; }
  .pricing-page .price-card h2 { margin-top: .5rem; }
  .pricing-page .price { min-height: 0; margin-top: .85rem; }
  .pricing-page .price-card ul { gap: .65rem; }
  .plan-selector { width: 100%; }
  .plan-selector button { flex: 1; padding-inline: .5rem; font-size: .8rem; }
}
@media (max-width: 599px) {
  .is-interactive .screen-stack { padding-top: 104px; padding-right: 44px; }
  .is-interactive .screen-card.is-back { transform: translate(calc(var(--screen-depth, 1) * 12px), calc(var(--screen-depth, 1) * -40px)) rotate(calc(var(--screen-depth, 1) * 2deg)); }
  .screen-controls { gap: .4rem; }
  .screen-controls button { font-size: .75rem; padding-inline: .75rem; }
  .workflow-story .product-preview__heading { padding: .75rem; font-size: .75rem; }
  .product-gallery .product-preview figcaption { padding: .5rem .75rem; font-size: .65rem; }
}
