:root {
  --background: oklch(1 0 0);
  --foreground: oklch(0.145 0 0);
  --primary: oklch(0.44 0.14 255);
  --primary-hover: oklch(0.38 0.14 255);
  --primary-foreground: oklch(0.99 0.005 255);
  --muted: oklch(0.97 0 0);
  --muted-foreground: oklch(0.556 0 0);
  --accent: oklch(0.95 0.035 255);
  --accent-foreground: oklch(0.32 0.09 255);
  --border: oklch(0.922 0 0);
  --ring: oklch(0.52 0.11 255);
  --success: oklch(0.51 0.12 165);
  --navy: #0e1c37;
  --cyan: #0bb4d3;
  --radius: 0.625rem;
}

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
}

body {
  font-family: "Geist", ui-sans-serif, system-ui, sans-serif;
  color: var(--foreground);
  background: var(--background);
}

::selection {
  background: color-mix(in oklch, var(--primary) 28%, transparent);
}

[id] {
  scroll-margin-top: 5.5rem;
}
/* Pages with a sticky section index below the header */
body:has([data-section-nav]) main [id] {
  scroll-margin-top: 9rem;
}
[data-section-nav] a[aria-current="true"] {
  border-color: color-mix(in oklch, var(--primary) 40%, transparent);
  background: var(--accent);
  color: var(--primary);
}

/* Placeholders to fill in: [ASÍ] */
.ph {
  background: #fef3c7;
  color: #854d0e;
  box-shadow: inset 0 -1px 0 #fcd34d;
  border-radius: 0.25rem;
  padding: 0 0.2em;
  font-weight: inherit;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.ph-block {
  background: #fffbeb;
  color: #854d0e;
  border: 1px dashed #f59e0b;
  border-radius: var(--radius);
  padding: 1.25rem 1.5rem;
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  height: 2.75rem;
  padding: 0 1.25rem;
  border-radius: var(--radius);
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  border: 1px solid transparent;
  transition: background-color 0.15s, color 0.15s, border-color 0.15s, box-shadow 0.15s;
}
.btn:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}
.btn-sm {
  height: 2.25rem;
  padding: 0 0.875rem;
  font-size: 0.875rem;
}
.btn-lg {
  height: 3rem;
  padding: 0 1.5rem;
  font-size: 1rem;
}
.btn-primary {
  background: var(--primary);
  color: var(--primary-foreground);
  box-shadow: 0 1px 2px rgb(14 28 55 / 0.15);
}
.btn-primary:hover {
  background: var(--primary-hover);
}
.btn-outline {
  background: #fff;
  color: var(--foreground);
  border-color: var(--border);
  box-shadow: 0 1px 2px rgb(0 0 0 / 0.04);
}
.btn-outline:hover {
  background: var(--muted);
}
.btn-ghost {
  color: var(--foreground);
}
.btn-ghost:hover {
  background: var(--muted);
}
.btn-light {
  background: #fff;
  color: var(--primary);
}
.btn-light:hover {
  background: var(--accent);
}

/* App Store / Google Play badges (markup from site.js) */
.store-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  height: 3rem;
  padding: 0 1.125rem 0 0.875rem;
  border-radius: 0.75rem;
  background: #000;
  color: #fff;
  border: 1px solid #000;
  box-shadow: 0 1px 2px rgb(14 28 55 / 0.15);
  transition: background-color 0.15s, box-shadow 0.15s;
}
.store-badge:hover {
  background: #1f1f1f;
}
.store-badge:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}
.store-badge svg {
  width: 1.5rem;
  height: 1.5rem;
  flex-shrink: 0;
}
.store-badge-text {
  display: flex;
  flex-direction: column;
  text-align: left;
  white-space: nowrap;
}
.store-badge-text small {
  font-size: 0.625rem;
  line-height: 0.875rem;
  letter-spacing: 0.01em;
  opacity: 0.85;
}
.store-badge-text strong {
  font-size: 1.0625rem;
  line-height: 1.25rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}
@media (max-width: 420px) {
  .store-badge {
    gap: 0.5rem;
    padding: 0 0.875rem 0 0.75rem;
  }
  .store-badge-text strong {
    font-size: 1rem;
  }
}

/* Inline SVG icons (Lucide style) */
svg.icon {
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}

.icon-tile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: var(--radius);
  background: var(--accent);
  color: var(--primary);
  flex-shrink: 0;
}
.icon-tile svg {
  width: 1.375rem;
  height: 1.375rem;
}

/* Plan tags */
.plan-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  border-radius: 999px;
  padding: 0.125rem 0.625rem;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.25rem;
  white-space: nowrap;
  background: var(--accent);
  color: var(--accent-foreground);
  vertical-align: middle;
}
.plan-tag.is-free {
  background: color-mix(in oklch, var(--success) 12%, white);
  color: oklch(0.38 0.09 165);
}
.plan-tag.is-full {
  background: var(--navy);
  color: #fff;
}

/* Check list */
.checklist {
  display: grid;
  gap: 0.75rem;
}
.checklist > li {
  position: relative;
  padding-left: 1.75rem;
  line-height: 1.55;
}
.checklist > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 999px;
  background-color: color-mix(in oklch, var(--primary) 12%, white);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d4f9c' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  background-size: 0.7rem;
  background-position: center;
  background-repeat: no-repeat;
}
.checklist.on-dark > li::before {
  background-color: rgb(255 255 255 / 0.15);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}

/* Hero backdrop */
.hero-bg {
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(60rem 30rem at 85% -10%, color-mix(in oklch, var(--cyan) 14%, transparent), transparent 60%),
    radial-gradient(50rem 30rem at 0% 0%, color-mix(in oklch, var(--primary) 10%, transparent), transparent 60%),
    linear-gradient(to bottom, oklch(0.985 0.008 255), #fff);
}
.hero-bg::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image:
    linear-gradient(to right, rgb(14 28 55 / 0.045) 1px, transparent 1px),
    linear-gradient(to bottom, rgb(14 28 55 / 0.045) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: radial-gradient(ellipse at 50% 0%, black 30%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 0%, black 30%, transparent 75%);
}

/* Hero eyebrow badge */
.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  border-radius: 999px;
  border: 1px solid color-mix(in oklch, var(--primary) 20%, transparent);
  background: rgb(255 255 255 / 0.8);
  padding: 0.3125rem 1.125rem 0.3125rem 0.3125rem;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5rem;
  white-space: nowrap;
  color: var(--primary);
  box-shadow: 0 1px 2px rgb(14 28 55 / 0.06), 0 2px 8px -2px rgb(14 28 55 / 0.08);
}
.hero-badge-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: color-mix(in oklch, var(--primary) 10%, white);
  flex-shrink: 0;
}
.hero-badge-icon svg {
  width: 1.125rem;
  height: 1.125rem;
}
@media (min-width: 640px) {
  .hero-badge {
    font-size: 1.0625rem;
  }
}

/* Closing CTA band */
.cta-band {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(40rem 20rem at 100% 0%, color-mix(in oklch, var(--cyan) 35%, transparent), transparent 60%),
    linear-gradient(135deg, var(--primary), var(--navy));
  color: #fff;
}
.cta-band .ph {
  background: #fef3c7;
}

/* Header */
.site-header {
  backdrop-filter: saturate(180%) blur(10px);
  -webkit-backdrop-filter: saturate(180%) blur(10px);
  background: rgb(255 255 255 / 0.85);
}
.nav-link {
  border-radius: var(--radius);
  padding: 0.5rem 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  white-space: nowrap;
  color: oklch(0.4 0 0);
  transition: color 0.15s, background-color 0.15s;
}
.nav-link:hover {
  color: var(--foreground);
  background: var(--muted);
}
.nav-link[aria-current="page"],
.nav-link.is-active {
  color: var(--primary);
  background: var(--accent);
}
.nav-link:focus-visible,
.nav-menu-item:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}
.nav-link[aria-current="page"] .icon-tile {
  background: #fff;
}

/* Header dropdown (markup from site.js) */
.nav-dropdown[data-open] > .nav-link:not(.is-active) {
  color: var(--foreground);
  background: var(--muted);
}
.nav-chevron {
  opacity: 0.7;
  transition: transform 0.2s;
}
.nav-dropdown[data-open] .nav-chevron {
  transform: rotate(180deg);
}
.nav-dropdown-panel {
  position: absolute;
  top: 100%;
  left: 50%;
  z-index: 50;
  padding-top: 0.625rem;
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 0.25rem);
  transition: opacity 0.15s, transform 0.15s, visibility 0s linear 0.15s;
}
.nav-dropdown[data-open] .nav-dropdown-panel {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
  transition: opacity 0.15s, transform 0.15s, visibility 0s;
}
.nav-menu-item {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  border-radius: 0.75rem;
  padding: 0.75rem;
  transition: background-color 0.15s;
}
.nav-menu-item:hover {
  background: var(--muted);
}
.nav-menu-item .icon-tile {
  width: 2.5rem;
  height: 2.5rem;
}
.nav-menu-item .icon-tile svg {
  width: 1.25rem;
  height: 1.25rem;
}
.nav-menu-item[aria-current="page"] {
  background: var(--accent);
}
.nav-menu-item[aria-current="page"] .icon-tile {
  background: #fff;
}
.nav-menu-item[aria-current="page"] .nav-menu-label {
  color: var(--primary);
}
.icon-tile-sm {
  width: 2rem;
  height: 2rem;
  border-radius: 0.5rem;
}
.icon-tile-sm svg {
  width: 1.125rem;
  height: 1.125rem;
}

/* Industry skins: same tile, a color and motif that belong to the business. */
.nav-menu-item[data-skin],
.nav-link[data-skin] {
  --skin: var(--primary);
  --skin-ink: var(--primary);
  --skin-soft: var(--accent);
  --skin-motif: none;
  --skin-motif-size: 10px 10px;
}
.nav-menu-item[data-skin="shop"],
.nav-link[data-skin="shop"] {
  --skin: oklch(0.68 0.14 72);
  --skin-ink: oklch(0.46 0.12 55);
  --skin-soft: oklch(0.96 0.032 85);
  --skin-motif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Crect width='8' height='3.2' fill='%23d97706' fill-opacity='.24'/%3E%3C/svg%3E");
  --skin-motif-size: 8px 8px;
}
.nav-menu-item[data-skin="services"],
.nav-link[data-skin="services"] {
  --skin: oklch(0.48 0.12 275);
  --skin-ink: oklch(0.4 0.12 275);
  --skin-soft: oklch(0.96 0.02 275);
  --skin-motif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='7'%3E%3Ccircle cx='1.1' cy='1.1' r='.75' fill='%234338ca' fill-opacity='.32'/%3E%3C/svg%3E");
  --skin-motif-size: 7px 7px;
}
.nav-menu-item[data-skin="clinic"],
.nav-link[data-skin="clinic"] {
  --skin: oklch(0.55 0.09 190);
  --skin-ink: oklch(0.42 0.08 192);
  --skin-soft: oklch(0.965 0.022 190);
  --skin-motif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none'%3E%3Cpath d='M6 2.6v6.8M2.6 6h6.8' stroke='%230f766e' stroke-opacity='.3' stroke-width='1.15' stroke-linecap='round'/%3E%3C/svg%3E");
  --skin-motif-size: 12px 12px;
}
.nav-menu-item[data-skin="field"],
.nav-link[data-skin="field"] {
  --skin: oklch(0.55 0.12 150);
  --skin-ink: oklch(0.4 0.1 152);
  --skin-soft: oklch(0.96 0.03 150);
  --skin-motif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='8' fill='none'%3E%3Cpath d='M0 6c2.6-3.4 5.4-3.4 8 0s5.4 3.4 8 0' stroke='%23166534' stroke-opacity='.34' stroke-width='1'/%3E%3C/svg%3E");
  --skin-motif-size: 16px 8px;
}
.nav-menu-item[data-skin="cargo"],
.nav-link[data-skin="cargo"] {
  --skin: oklch(0.45 0.13 252);
  --skin-ink: oklch(0.38 0.13 255);
  --skin-soft: oklch(0.94 0.035 250);
  --skin-motif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' fill='none'%3E%3Crect x='.7' y='.7' width='9.6' height='9.6' stroke='%231e3a8a' stroke-opacity='.38' stroke-width='.85'/%3E%3Cpath d='M.7 5.5h9.6M5.5.7v9.6' stroke='%231e3a8a' stroke-opacity='.28' stroke-width='.6'/%3E%3C/svg%3E");
  --skin-motif-size: 11px 11px;
}
.nav-menu-item[data-skin="ledger"],
.nav-link[data-skin="ledger"] {
  --skin: oklch(0.32 0.05 262);
  --skin-ink: oklch(0.28 0.045 262);
  --skin-soft: oklch(0.955 0.012 262);
  --skin-motif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='5' fill='none'%3E%3Cpath d='M0 4.55h12' stroke='%230e1c37' stroke-opacity='.24' stroke-width='.5'/%3E%3Cpath d='M1.7 0v5' stroke='%23b91c1c' stroke-opacity='.42' stroke-width='.45'/%3E%3C/svg%3E");
  --skin-motif-size: 12px 5px;
}
.nav-menu-item[data-skin] {
  background-image: linear-gradient(
    105deg,
    color-mix(in oklch, var(--skin) 9%, white),
    white 64%
  );
}
.nav-menu-item[data-skin]:hover {
  background-color: color-mix(in oklch, var(--skin) 6%, white);
  background-image: linear-gradient(
    105deg,
    color-mix(in oklch, var(--skin) 16%, white),
    color-mix(in oklch, var(--skin) 4%, white) 72%
  );
}
.nav-menu-item[data-skin] .icon-tile,
.nav-link[data-skin] .icon-tile {
  background-color: var(--skin-soft);
  background-image: var(--skin-motif);
  background-size: var(--skin-motif-size);
  color: var(--skin-ink);
  box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--skin) 26%, transparent);
}
.nav-menu-item[data-skin][aria-current="page"] {
  background-color: color-mix(in oklch, var(--skin) 10%, white);
  background-image: linear-gradient(
    105deg,
    color-mix(in oklch, var(--skin) 18%, white),
    color-mix(in oklch, var(--skin) 6%, white) 78%
  );
}
.nav-menu-item[data-skin][aria-current="page"] .icon-tile,
.nav-link[data-skin][aria-current="page"] .icon-tile {
  background-color: #fff;
  color: var(--skin-ink);
}
.nav-menu-item[data-skin][aria-current="page"] .nav-menu-label {
  color: var(--skin-ink);
}


/* FAQ accordions */
details.faq {
  border-bottom: 1px solid var(--border);
}
details.faq > summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.125rem 0;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.5;
}
/* Question text is one flex item; the chevron (::after) is the other.
   A rewritten ™ must stay inside this box, not become its own item. */
details.faq > summary > .tm-inline {
  flex: 1;
  min-width: 0;
}
details.faq > summary::-webkit-details-marker {
  display: none;
}
details.faq > summary::after {
  content: "";
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 0.15rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-size: contain;
  transition: transform 0.2s;
}
details.faq[open] > summary::after {
  transform: rotate(180deg);
}
details.faq > summary:hover {
  color: var(--primary);
}
details.faq > div {
  padding: 0 2.25rem 1.25rem 0;
  color: oklch(0.4 0 0);
  line-height: 1.65;
}

/* Pricing toggle */
.billing-toggle button[aria-pressed="true"] {
  background: #fff;
  color: var(--foreground);
  box-shadow: 0 1px 3px rgb(0 0 0 / 0.1), 0 0 0 1px var(--border);
}

/* Comparison table */
.compare th,
.compare td {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border);
  font-size: 0.875rem;
}
.compare td:not(:first-child),
.compare th:not(:first-child) {
  text-align: center;
}
.compare tr.group-row td {
  background: var(--muted);
  font-weight: 600;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: oklch(0.35 0 0);
  text-align: left;
}
.compare td.yes {
  color: var(--primary);
  font-weight: 600;
}
.compare td.no {
  color: oklch(0.75 0 0);
}
.compare .col-hl {
  background: color-mix(in oklch, var(--accent) 55%, white);
}
.compare tr.group-row td.col-hl {
  background: color-mix(in oklch, var(--accent) 80%, var(--muted));
}

/* Form controls */
.field {
  width: 100%;
  height: 2.75rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: #fff;
  padding: 0 0.875rem;
  font-size: 0.9375rem;
  transition: border-color 0.15s, box-shadow 0.15s;
}
textarea.field {
  height: auto;
  min-height: 8rem;
  padding: 0.75rem 0.875rem;
  resize: vertical;
}
select.field {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 2.5rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 1rem;
}
.field:focus {
  outline: none;
  border-color: var(--ring);
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--ring) 25%, transparent);
}
.field[aria-invalid="true"] {
  border-color: #b91c1c;
}
.field[aria-invalid="true"]:focus {
  box-shadow: 0 0 0 3px rgb(185 28 28 / 0.18);
}
.field-error {
  margin-top: 0.375rem;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: #b91c1c;
}
.contact-alert {
  border-radius: var(--radius);
  border: 1px solid #fecaca;
  background: #fef2f2;
  padding: 0.75rem 0.875rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #991b1b;
}
.btn:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}
.hp-field {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

/* Legal prose */
.legal h2 {
  margin-top: 2.5rem;
  margin-bottom: 0.75rem;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--foreground);
}
.legal p,
.legal li {
  line-height: 1.75;
  color: oklch(0.32 0 0);
}
.legal p + p {
  margin-top: 0.75rem;
}
.legal ul {
  margin-top: 0.5rem;
  padding-left: 1.25rem;
  list-style: disc;
}
.legal ul li + li {
  margin-top: 0.375rem;
}
.legal ul li::marker {
  color: var(--primary);
}

/* Trademark beside the raster wordmark (the PNG itself has no mark).
   Sized to the cap height of the word in the 2rem logo. */
.brand-lockup {
  display: inline-flex;
  align-items: flex-start;
  line-height: 0;
}
.brand-tm {
  margin-left: 0.0625rem;
  margin-top: 0.22rem;
  font-size: 0.65rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em;
  color: var(--navy);
}

/* The script wraps each rewritten ™ run in one inline box. Flex and grid
   parents then keep the sentence together; the <sup> stays in inline flow. */
.tm-inline {
  display: inline;
}

/* Inline brand mark. Geist's ™ glyph is wide and semibold, so each visible
   mark is a superscript at ~0.45em, one step lighter than headings, sitting
   on the cap line. top is in the superscript's own em. */
sup.tm {
  display: inline;
  font-size: 0.45em;
  font-weight: 500;
  line-height: 0;
  letter-spacing: 0.02em;
  text-transform: none;
  font-style: normal;
  vertical-align: baseline;
  position: relative;
  top: -0.87em;
  margin-left: 0.12em;
  white-space: nowrap;
}
