/* Generated from src/styles.css by site/build.ts. Do not edit here. */
:root {
  --radius: 1rem;
  /* Warm cream base */
  --background: oklch(0.98 0.012 85);
  --foreground: oklch(0.28 0.03 55);
  --card: oklch(1 0 0);
  --card-foreground: oklch(0.28 0.03 55);
  --popover: oklch(1 0 0);
  --popover-foreground: oklch(0.28 0.03 55);
  /*
   * Forest green, one hue family. Two primaries, not one: the handoff specifies
   * 0.58 for fills and 0.4 for ink, and a single token cannot be both — at the
   * fill's lightness a link on cream is 4.13:1 and fails.
   *
   * Every value here is asserted in lib/palette.test.ts. Changing one without
   * changing that file fails the build, which is the point.
   */
  --primary: oklch(0.52 0.08 152);
  --primary-foreground: oklch(0.98 0.01 155);
  /* Links, icons, focus rings. Darker than the fill, never used as a fill. */
  --primary-accent: oklch(0.4 0.06 155);
  --secondary: oklch(0.9 0.025 155);
  --secondary-foreground: oklch(0.3 0.05 155);
  --muted: oklch(0.95 0.015 80);
  --muted-foreground: oklch(0.5 0.02 60);
  --accent: oklch(0.9 0.06 70);
  --accent-foreground: oklch(0.32 0.04 55);
  --destructive: oklch(0.57 0.2 27);
  --destructive-foreground: oklch(0.98 0.012 85);
  --border: oklch(0.9 0.018 75);
  --input: oklch(0.92 0.015 75);
  --ring: oklch(0.4 0.06 155);
  /*
   * The next-dose card, the one saturated surface in the app.
   *
   * These replace --sage and --terracotta, which existed only as gradient
   * endpoints and are gone so they cannot be reached for again. The handoff's
   * 0.58 -> 0.68 could not carry white text at its light end (2.78:1, under
   * even the 3:1 large-text floor); this keeps the two-stop difference the flat
   * dark fill was rejected for lacking, at a lightness the text survives.
   */
  --hero-from: oklch(0.48 0.08 152);
  --hero-to: oklch(0.53 0.09 145);
  /*
   * Text and the pill ON the hero, as their own tokens.
   *
   * These were `text-primary-foreground` and `bg-white`, which made one token
   * do two unrelated jobs — "label on a filled button" and "text on the hero" —
   * and they only agreed because both surfaces happen to be dark. The choice
   * between a dark hero with light text and a light hero with dark ink now
   * lives in these three values instead of across twelve class names in three
   * files, so it can be made after the rest of the restyle rather than before.
   */
  --hero-ink: oklch(0.98 0.01 155);
  --hero-pill: oklch(1 0 0);
  --hero-pill-ink: oklch(0.4 0.06 155);
  --cream: oklch(0.96 0.02 85);
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
  --background: oklch(0.22 0.02 55);
  --foreground: oklch(0.96 0.015 85);
  --card: oklch(0.27 0.025 55);
  --card-foreground: oklch(0.96 0.015 85);
  --popover: oklch(0.27 0.025 55);
  --popover-foreground: oklch(0.96 0.015 85);
  --primary: oklch(0.64 0.08 155);
  --primary-foreground: oklch(0.19 0.02 155);
  --primary-accent: oklch(0.78 0.07 155);
  --secondary: oklch(0.32 0.03 155);
  --secondary-foreground: oklch(0.96 0.015 85);
  --muted: oklch(0.3 0.02 60);
  --muted-foreground: oklch(0.72 0.02 75);
  --accent: oklch(0.4 0.05 65);
  --accent-foreground: oklch(0.96 0.015 85);
  --destructive: oklch(0.67 0.19 27);
  --destructive-foreground: oklch(0.96 0.015 85);
  --border: oklch(1 0 0 / 10%);
  --input: oklch(1 0 0 / 15%);
  --hero-from: oklch(0.42 0.075 152);
  --hero-to: oklch(0.5 0.085 145);
  --hero-ink: oklch(0.98 0.01 155);
  --hero-pill: oklch(1 0 0);
  --hero-pill-ink: oklch(0.34 0.06 155);
  --ring: oklch(0.78 0.07 155);
    color-scheme: dark;
  }
}

/* Generated by scripts/fetch-fonts.mjs — do not edit by hand.
   Self-hosted so first paint never waits on a request to Google. */

/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/fraunces-400-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/fraunces-400-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/inter-400-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/inter-400-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/*
 * Components for canetasaude.com.
 *
 * No colour is defined here. build.ts prepends the app's own tokens, read from
 * src/styles.css (:root and .dark), so a palette change in the app reaches the
 * site on its next build. Radii follow the app's Tailwind scale: --radius is
 * 1rem, rounded-2xl is +8px, rounded-3xl is +16px.
 */

:root {
  --r-xl: calc(var(--radius) + 4px);
  --r-2xl: calc(var(--radius) + 8px);
  --r-3xl: calc(var(--radius) + 16px);
  --device: oklch(0.2 0.015 60);
  --font-display: "Fraunces", ui-serif, Georgia, serif;
  --font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;
}

* {
  box-sizing: border-box;
}
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
body {
  margin: 0;
  background: var(--background);
  color: var(--foreground);
  font: 400 16px/1.6 var(--font-sans);
  -webkit-font-smoothing: antialiased;
}
img,
svg {
  max-width: 100%;
}
h1,
h2,
h3,
h4 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.12;
  margin: 0;
  text-wrap: balance;
}
p {
  margin: 0;
}
a {
  color: var(--primary-accent);
}
:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
  border-radius: 4px;
}
.ic {
  width: 1em;
  height: 1em;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.muted {
  color: var(--muted-foreground);
}
.small {
  font-size: 0.82rem;
}
.eyebrow {
  font: 600 0.7rem/1.2 var(--font-sans);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted-foreground);
}
.skip {
  position: absolute;
  left: -9999px;
}
.skip:focus {
  left: 16px;
  top: 16px;
  z-index: 10;
  background: var(--card);
  padding: 8px 12px;
  border-radius: 8px;
}

.w {
  max-width: 1060px;
  margin-inline: auto;
  padding-left: max(20px, env(safe-area-inset-left, 0px));
  padding-right: max(20px, env(safe-area-inset-right, 0px));
}

/* BrandMark */
.bm {
  display: grid;
  place-items: center;
  flex: none;
  border-radius: 28%;
  background: var(--primary);
  color: var(--primary);
}
.bm svg {
  width: 68%;
  height: 68%;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font: 600 1.15rem/1 var(--font-display);
  color: var(--foreground);
  text-decoration: none;
}

/* Nav */
.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-block: 16px;
}
.nav-links {
  display: flex;
  gap: 24px;
  font-size: 0.92rem;
  font-weight: 500;
}
.nav-links a {
  color: var(--muted-foreground);
  text-decoration: none;
}
.nav-links a:hover,
.nav-links a[aria-current="page"] {
  color: var(--foreground);
}
@media (max-width: 720px) {
  .nav-links a:not([href="/suporte/"]) {
    display: none;
  }
}

/* Buttons: the app's rounded-full bg-primary font-semibold shadow-primary/20 */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 999px;
  background: var(--primary);
  color: var(--primary-foreground);
  font-weight: 600;
  font-size: 0.95rem;
  padding: 13px 24px;
  text-decoration: none;
  box-shadow: 0 10px 22px -8px color-mix(in oklch, var(--primary) 45%, transparent);
  white-space: nowrap;
}
.btn-soon {
  background: var(--secondary);
  color: var(--secondary-foreground);
  box-shadow: none;
  cursor: default;
}

/* Hero */
.hero {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 48px;
  align-items: center;
  padding-block: 32px 64px;
}
@media (max-width: 820px) {
  .hero {
    grid-template-columns: 1fr;
    gap: 40px;
    padding-block: 12px 48px;
  }
}
.hero-copy {
  display: grid;
  gap: 18px;
  min-width: 0;
}
.hero h1 {
  font-size: clamp(2.2rem, 5.6vw, 3.5rem);
  line-height: 1.06;
  letter-spacing: -0.015em;
}
.hero .lead {
  font-size: 1.1rem;
  color: var(--muted-foreground);
  max-width: 44ch;
}
.ctas {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
}
.trust {
  font-size: 0.82rem;
  color: var(--muted-foreground);
}

.chip {
  display: grid;
  place-items: center;
  flex: none;
  background: color-mix(in oklch, var(--primary) 10%, transparent);
  color: var(--primary);
}
.chip.s {
  width: 26px;
  height: 26px;
  border-radius: 10px;
  margin-top: 1px;
}
.chip.s .ic {
  font-size: 14px;
}
.chip.m {
  width: 40px;
  height: 40px;
  border-radius: 14px;
}
.chip.m .ic {
  font-size: 19px;
}
.benefits,
.also {
  list-style: none;
  margin: 4px 0 0;
  padding: 0;
  display: grid;
  gap: 12px;
}
.benefits li,
.also li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.benefits b,
.also b {
  display: block;
  font-size: 0.95rem;
  font-weight: 600;
}
.benefits span span,
.also span span {
  display: block;
  font-size: 0.84rem;
  color: var(--muted-foreground);
}

/* Device with the app's home screen */
.stage {
  position: relative;
  display: grid;
  place-items: center;
  padding-block: 8px;
}
.stage::before {
  content: "";
  position: absolute;
  width: min(82%, 420px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: color-mix(in oklch, var(--primary) 12%, transparent);
}
.device {
  position: relative;
  width: min(292px, 84%);
  aspect-ratio: 9 / 19.2;
  background: var(--device);
  border-radius: 46px;
  padding: 9px;
  box-shadow:
    0 0 0 1px var(--border),
    0 40px 70px -36px color-mix(in oklch, var(--device) 85%, transparent);
}
.screen {
  position: relative;
  height: 100%;
  border-radius: 38px;
  background: var(--background);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  font-size: 11px;
}
.island {
  position: absolute;
  top: 9px;
  left: 50%;
  translate: -50% 0;
  width: 78px;
  height: 22px;
  border-radius: 99px;
  background: var(--device);
}
/* The screen is a real 390x844 capture of the app at 3x (site/public/app). */
.screen .shot {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
}
.screen .island {
  z-index: 1;
}
/* iOS notification */
.notif {
  background: color-mix(in oklch, var(--card) 85%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 13px 14px;
  box-shadow: 0 14px 30px -18px color-mix(in oklch, var(--foreground) 50%, transparent);
  display: grid;
  gap: 4px;
}
.notif-h {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 0.64rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted-foreground);
}
.notif-h .bm {
  border-radius: 6px;
}
.notif-h em {
  margin-left: auto;
  font-style: normal;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 400;
}
.notif b {
  font-size: 0.88rem;
  font-weight: 600;
}
.notif p {
  font-size: 0.82rem;
  color: var(--muted-foreground);
}
.stage .notif {
  position: absolute;
  width: min(250px, 72%);
  right: 0;
  bottom: 18%;
}
@media (max-width: 820px) {
  .stage .notif {
    right: 2%;
    bottom: 16%;
  }
}
.caption {
  text-align: center;
  font-size: 0.74rem;
  color: var(--muted-foreground);
  margin-top: 10px;
}

/* Sections */
.sec {
  padding-block: 64px;
  display: grid;
  gap: 30px;
}
.sec-h {
  display: grid;
  gap: 10px;
  max-width: 58ch;
}
.sec-h h2 {
  font-size: clamp(1.75rem, 4vw, 2.4rem);
  line-height: 1.1;
}
.sec-h p {
  color: var(--muted-foreground);
}
.tiles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
@media (max-width: 900px) {
  .tiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .tiles {
    grid-template-columns: 1fr;
  }
}
.tile {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--r-2xl);
  padding: 20px;
  display: grid;
  gap: 10px;
  align-content: start;
}
.tile h3 {
  font-size: 1.08rem;
}
.tile p {
  font-size: 0.92rem;
  color: var(--muted-foreground);
}
.tile .fine {
  font-size: 0.78rem;
  color: var(--muted-foreground);
  display: flex;
  gap: 6px;
  align-items: flex-start;
}
.tile .fine .ic {
  font-size: 13px;
  margin-top: 3px;
}
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
}
@media (max-width: 820px) {
  .split {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}
.stack {
  display: grid;
  gap: 12px;
  max-width: 380px;
  width: 100%;
  justify-self: center;
}
.part {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 20px;
  box-shadow:
    0 0 0 1px var(--border),
    0 14px 30px -20px color-mix(in oklch, var(--foreground) 40%, transparent);
}

.priv {
  background: var(--secondary);
  color: var(--secondary-foreground);
  border-radius: var(--r-3xl);
  padding: clamp(24px, 5vw, 48px);
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 32px;
}
@media (max-width: 820px) {
  .priv {
    grid-template-columns: 1fr;
  }
}
.priv h2 {
  font-size: clamp(1.6rem, 3.8vw, 2.2rem);
}
.priv .intro {
  display: grid;
  gap: 12px;
  align-content: start;
}
.priv .intro p {
  opacity: 0.88;
}
.priv .intro a {
  color: inherit;
  font-weight: 600;
}
.priv ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 560px) {
  .priv ul {
    grid-template-columns: 1fr;
  }
}
.priv li {
  background: var(--card);
  color: var(--card-foreground);
  border-radius: 18px;
  padding: 14px;
  display: grid;
  gap: 6px;
  align-content: start;
}
.priv li .ic {
  font-size: 18px;
  color: var(--primary);
}
.priv li b {
  font-size: 0.94rem;
  font-weight: 600;
}
.priv li span {
  font-size: 0.84rem;
  color: var(--muted-foreground);
}

.steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  counter-reset: st;
}
@media (max-width: 820px) {
  .steps {
    grid-template-columns: 1fr;
  }
}
.steps li {
  counter-increment: st;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--r-2xl);
  padding: 20px;
  display: grid;
  gap: 6px;
  align-content: start;
}
.steps li::before {
  content: counter(st);
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--primary);
  color: var(--primary-foreground);
  font-weight: 700;
  font-size: 0.85rem;
  margin-bottom: 6px;
}
.steps b {
  font: 600 1.04rem/1.3 var(--font-display);
}
.steps span {
  color: var(--muted-foreground);
  font-size: 0.92rem;
}

.prices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 330px));
  gap: 14px;
}
@media (max-width: 640px) {
  .prices {
    grid-template-columns: 1fr;
  }
}
.price {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--r-2xl);
  padding: 22px;
  display: grid;
  gap: 8px;
  align-content: start;
}
.price.best {
  border: 2px solid var(--primary);
  background: color-mix(in oklch, var(--primary) 5%, var(--card));
}
.price .row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.price .tag {
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: 99px;
  background: var(--secondary);
  color: var(--secondary-foreground);
}
.price .amt {
  font: 600 2.1rem/1 var(--font-display);
  font-variant-numeric: tabular-nums;
}
.price .amt small {
  font: 400 0.92rem var(--font-sans);
  color: var(--muted-foreground);
}
.price p {
  font-size: 0.88rem;
  color: var(--muted-foreground);
}
.included {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 8px 20px;
  font-size: 0.9rem;
}
.included li {
  display: flex;
  gap: 8px;
  align-items: flex-start;
}
.included .ic {
  color: var(--primary);
  margin-top: 4px;
  font-size: 14px;
}
.disclose {
  font-size: 0.8rem;
  color: var(--muted-foreground);
  max-width: 78ch;
}

.faq {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--r-2xl);
  overflow: hidden;
}
.faq details + details {
  border-top: 1px solid var(--border);
}
.faq summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  font-weight: 600;
}
.faq summary::-webkit-details-marker {
  display: none;
}
.faq summary .ic {
  color: var(--muted-foreground);
  transition: rotate 0.2s;
}
.faq details[open] summary .ic {
  rotate: 180deg;
}
@media (prefers-reduced-motion: reduce) {
  .faq summary .ic {
    transition: none;
  }
}
.faq details > div {
  padding: 0 20px 18px;
  color: var(--muted-foreground);
  font-size: 0.93rem;
  max-width: 72ch;
  display: grid;
  gap: 8px;
}
/* Disclaimer.tsx */
.disc {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  background: color-mix(in oklch, var(--muted) 60%, transparent);
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 0.82rem;
  color: var(--muted-foreground);
}
.disc .ic {
  margin-top: 3px;
  font-size: 14px;
}

/* Footer */
.foot {
  border-top: 1px solid var(--border);
  background: var(--card);
  margin-top: 32px;
}
.foot .w {
  padding-block: 36px 28px;
  display: grid;
  gap: 24px;
}
.fcols {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 24px;
  font-size: 0.88rem;
}
@media (max-width: 760px) {
  .fcols {
    grid-template-columns: 1fr 1fr;
  }
}
.fcols div {
  display: grid;
  gap: 8px;
  align-content: start;
  min-width: 0;
  overflow-wrap: anywhere;
}
.fcols a {
  color: var(--foreground);
  text-decoration: none;
}
.fcols a:hover {
  text-decoration: underline;
}
.legal {
  display: grid;
  gap: 6px;
  font-size: 0.74rem;
  color: var(--muted-foreground);
  border-top: 1px solid var(--border);
  padding-top: 18px;
}

/* Text pages */
.doc {
  padding-block: 24px 48px;
  max-width: 760px;
  display: grid;
  gap: 14px;
}
.doc h1 {
  font-size: clamp(2rem, 5vw, 2.7rem);
}
.doc .lead {
  font-size: 1.08rem;
  color: var(--muted-foreground);
}
.updated {
  font-size: 0.84rem;
  color: var(--muted-foreground);
}
.back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  justify-self: start;
}
.prose {
  display: grid;
  gap: 14px;
  margin-top: 12px;
}
.prose h2 {
  font-size: 1.35rem;
  margin-top: 18px;
}
.prose h3 {
  font-size: 1.05rem;
  margin-top: 6px;
}
.prose ul,
.prose ol {
  margin: 0;
  padding-left: 1.3em;
  display: grid;
  gap: 6px;
}
.prose .box {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--r-2xl);
  padding: 18px 20px;
  display: grid;
  gap: 8px;
}
.prose .table {
  overflow-x: auto;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--r-2xl);
}
.prose table {
  border-collapse: collapse;
  width: 100%;
  min-width: 560px;
  font-size: 0.9rem;
}
.prose th,
.prose td {
  text-align: left;
  vertical-align: top;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border);
}
.prose th {
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted-foreground);
}
.prose tr:last-child td {
  border-bottom: 0;
}
.contact {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  font-size: 1.05rem;
}
.contact .ic {
  font-size: 18px;
}
