/* ═══════════════════════════════════════════════════════════
   SeyChizz — clean & playful
   Soft tonal blocks · big radii · no borders · lots of air
   ═══════════════════════════════════════════════════════════ */

:root {
  /* Ink & surfaces */
  --ink: #1B1B1F;
  --ink-2: #5F6169;
  --line: #E9E6E0;
  --surface: #FFFFFF;
  --surface-2: #FAF8F5;

  /* Tonal containers — the playful part */
  --sun: #FFE99A;
  --sun-deep: #FFC61A;
  --sky: #DCE8FF;
  --leaf: #D5F0DC;
  --blush: #FFDDE5;

  /* Shape */
  --r-xl: 36px;
  --r-lg: 28px;
  --r-md: 18px;
  --r-sm: 12px;
  --r-pill: 999px;

  --shadow-soft: 0 1px 2px rgba(20, 20, 25, .05), 0 10px 30px rgba(20, 20, 25, .06);
  --shadow-lift: 0 2px 4px rgba(20, 20, 25, .06), 0 18px 40px rgba(20, 20, 25, .10);

  --font: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --wrap: 1140px;
  --nav-h: 79px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  background: var(--surface);
  color: var(--ink);
  font-family: var(--font);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
picture { display: block; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; -webkit-tap-highlight-color: transparent; }

:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; border-radius: 6px; }
::selection { background: var(--sun); color: var(--ink); }

/* Stop iOS auto-linking numbers in blue */
a[x-apple-data-detectors] { color: inherit !important; text-decoration: none !important; font-weight: inherit !important; }

/* ───────── Type ───────── */
h1, h2, h3, h4 {
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -.022em;
  text-wrap: balance;
}

.h-hero { font-size: clamp(36px, 6.2vw, 68px); letter-spacing: -.032em; }
.h-1 { font-size: clamp(32px, 4.4vw, 50px); letter-spacing: -.028em; }
.h-2 { font-size: clamp(24px, 3vw, 34px); }

.lead {
  font-size: clamp(17px, 1.5vw, 20px);
  color: var(--ink-2);
  line-height: 1.55;
  text-wrap: pretty;
  max-width: 620px;
}
.lead-center { margin-left: auto; margin-right: auto; }

.eyebrow {
  display: inline-block;
  font-size: 14px;
  font-weight: 500;
  color: var(--ink-2);
  background: var(--surface-2);
  border-radius: var(--r-pill);
  padding: 7px 16px;
  margin-bottom: 20px;
}

/* ───────── Layout ───────── */
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 24px; }
.section { padding: 96px 0; }
.section-tight { padding: 60px 0; }
.section-warm { background: var(--surface-2); }
.center { text-align: center; }
.head { max-width: 700px; margin: 0 auto 56px; text-align: center; }

/* ───────── Buttons ───────── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  font-weight: 500;
  font-size: 16px;
  padding: 14px 26px;
  border: none;
  border-radius: var(--r-pill);
  background: var(--surface-2);
  color: var(--ink);
  cursor: pointer;
  transition: background .18s ease, box-shadow .18s ease, transform .18s ease;
  white-space: nowrap;
}
.btn:hover { background: #F0EDE7; }
.btn:active { transform: scale(.98); }

.btn-primary { background: var(--ink); color: #fff; }
.btn-primary:hover { background: #33333A; box-shadow: var(--shadow-lift); }

.btn-sun { background: var(--sun-deep); color: var(--ink); }
.btn-sun:hover { background: #FFD450; box-shadow: var(--shadow-lift); }

.btn-quiet { background: transparent; }
.btn-quiet:hover { background: var(--surface-2); }

.btn-lg { font-size: 17px; padding: 17px 32px; }

.btn-text {
  display: inline-flex; align-items: center; gap: 7px;
  font-weight: 500; color: var(--ink);
  border-bottom: 2px solid var(--sun-deep);
  padding-bottom: 2px;
  transition: gap .18s ease;
}
.btn-text:hover { gap: 12px; }

/* ───────── Nav ───────── */
.nav {
  position: sticky; top: 0; z-index: 90;
  background: rgba(255, 255, 255, .88);
  backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--line);
}
.nav-inner {
  max-width: var(--wrap); margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; padding: 12px 24px;
}
.brand { display: flex; align-items: center; gap: 9px; font-weight: 700; font-size: 20px; letter-spacing: -.02em; }
.brand img { height: 30px; width: auto; }
.nav-links { display: flex; align-items: center; gap: 2px; list-style: none; }
.nav-links a {
  display: block; font-size: 15px; font-weight: 500;
  padding: 9px 14px; border-radius: var(--r-pill);
  transition: background .15s ease;
}
.nav-links a:hover { background: var(--surface-2); }
.nav-links a.active { background: var(--sun); }
.nav-right { display: flex; align-items: center; gap: 10px; }
.nav-toggle {
  display: none; background: var(--surface-2); border: none;
  border-radius: var(--r-pill); width: 42px; height: 42px;
  cursor: pointer; align-items: center; justify-content: center;
}

.has-drop { position: relative; }
.drop {
  position: absolute; top: calc(100% + 8px); left: 0;
  background: var(--surface); border-radius: var(--r-md);
  box-shadow: var(--shadow-lift); padding: 8px; min-width: 250px;
  display: none; flex-direction: column; gap: 2px;
}
.has-drop:hover .drop { display: flex; }
.drop a { display: flex; align-items: center; gap: 11px; padding: 11px 14px; border-radius: var(--r-sm); font-size: 15px; }
.drop a:hover { background: var(--surface-2); }
.drop a .ico { width: 19px; height: 19px; color: var(--ink-2); }

/* ───────── Hero ─────────
   White field; the shape elements carry it. */
.hero {
  position: relative;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  min-height: 560px;
  padding: 72px 0;
  text-align: center;
  background: var(--surface);
}
.hero > .wrap { position: relative; z-index: 1; width: 100%; }
/* home only: fill what is left of the viewport under the nav */
.hero-full { min-height: calc(100svh - var(--nav-h)); }
.hero .h-hero { max-width: 820px; margin: 0 auto 20px; }
.hero .lead { margin: 0 auto 30px; }
.hero-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.hero-note {
  display: flex; justify-content: center; flex-wrap: wrap;
  gap: 8px 32px; margin-top: 24px;
  font-size: 15px; color: var(--ink-2);
}

/* ───────── Photo strip ─────────
   The work itself, edge to edge. No frame, no chrome, no captions on top. */
.strip { margin-top: 52px; }
.strip-row {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 10px;
  padding: 0 10px;
}
.strip-row img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: var(--r-sm);
}
.strip-note { margin-top: 24px; font-size: 15px; color: var(--ink-2); }

/* ───────── Dashboard shot ───────── */
.shot {
  border-radius: var(--r-lg); overflow: hidden;
  box-shadow: var(--shadow-lift);
  background: var(--surface);
}

/* ───────── Context pills ───────── */
.hero-contexts { margin-top: 44px; }
.contexts-label { font-size: 15px; color: var(--ink-2); margin-bottom: 16px; }
.pill-row { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.pill {
  display: inline-flex; align-items: center; gap: 8px;
  border-radius: var(--r-pill); padding: 9px 20px;
  background: var(--surface-2); font-size: 15px; font-weight: 500;
}
.pill .ico { width: 17px; height: 17px; color: var(--ink-2); }
.pill:nth-child(4n+1) { background: var(--sun); }
.pill:nth-child(4n+2) { background: var(--sky); }
.pill:nth-child(4n+3) { background: var(--leaf); }
.pill:nth-child(4n+4) { background: var(--blush); }

/* ───────── Cards / bento ───────── */
.bento { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.card {
  background: var(--surface-2);
  border-radius: var(--r-lg);
  padding: 32px 28px;
  transition: transform .22s cubic-bezier(.2, .8, .2, 1), box-shadow .22s ease;
}
.card-hover:hover { transform: translateY(-4px); box-shadow: var(--shadow-lift); }
.card h3 { font-size: 20px; margin-bottom: 9px; }
.card p { color: var(--ink-2); font-size: 16px; }

.card-sun { background: var(--sun); }
.card-sky { background: var(--sky); }
.card-leaf { background: var(--leaf); }
.card-blush { background: var(--blush); }

.card-icon {
  width: 52px; height: 52px; border-radius: 50%;
  background: rgba(255, 255, 255, .75);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 22px;
}
.card-icon .ico { width: 25px; height: 25px; }

/* ───────── Steps ───────── */
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.step-num {
  width: 42px; height: 42px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 17px; margin-bottom: 20px;
}
/* :where() keeps specificity at 0 so an explicit tint (.card-ink, .card-yellow)
   still wins over the step-card default. */
:where(.section-warm .steps) .card { background: var(--surface); }
.steps .card:nth-child(1) .step-num { background: var(--sun); }
.steps .card:nth-child(2) .step-num { background: var(--sky); }
.steps .card:nth-child(3) .step-num { background: var(--leaf); }

/* ───────── Feature rows ───────── */
.feature-row { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.feature-row + .feature-row { margin-top: 120px; }
.feature-row h2 { font-size: clamp(28px, 3.4vw, 42px); margin-bottom: 16px; }
.feature-row p { color: var(--ink-2); font-size: 18px; margin-bottom: 26px; }
.feature-row.flip .feature-visual { order: -1; }
.feature-visual {
  border-radius: var(--r-xl); overflow: hidden;
  background: var(--sky); padding: 34px;
  display: flex; align-items: center; justify-content: center;
}
.feature-visual.tone-sun { background: var(--sun); }
.feature-visual.tone-leaf { background: var(--leaf); }
.feature-visual .shot, .feature-visual img { border-radius: var(--r-md); }

.phone-shot {
  max-width: 250px; border-radius: 30px; overflow: hidden;
  box-shadow: var(--shadow-lift); background: var(--surface);
}
.phone-shot img { width: 100%; }

/* ───────── Stats ───────── */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; text-align: center; }
.stat .num { font-size: clamp(38px, 5vw, 56px); font-weight: 500; letter-spacing: -.04em; line-height: 1; }
.stat .desc { color: var(--ink-2); font-size: 15px; margin-top: 12px; }

/* ───────── Quote ───────── */
.quote {
  background: var(--sun); border-radius: var(--r-xl);
  padding: 72px 44px; text-align: center;
}
.quote p {
  font-size: clamp(24px, 3.2vw, 38px); font-weight: 500;
  letter-spacing: -.025em; line-height: 1.25;
  max-width: 780px; margin: 0 auto 26px;
}
.quote cite { font-style: normal; font-size: 16px; color: #6B5B1E; }

/* ───────── FAQ ───────── */
.faq-item { border-bottom: 1px solid var(--line); }
.faq-q {
  width: 100%; text-align: left; background: none; border: none; cursor: pointer;
  padding: 26px 4px; font-size: 19px; font-weight: 500;
  display: flex; justify-content: space-between; align-items: center; gap: 20px;
}
.faq-q .ico {
  flex: none; width: 30px; height: 30px; border-radius: 50%;
  background: var(--surface-2); display: flex; align-items: center; justify-content: center;
  font-size: 19px; font-weight: 400; transition: transform .25s ease, background .2s ease;
}
.faq-item.open .faq-q .ico { transform: rotate(45deg); background: var(--sun); }
.faq-a { max-height: 0; overflow: hidden; transition: max-height .3s ease; }
.faq-a-inner { padding: 0 4px 26px; color: var(--ink-2); font-size: 17px; max-width: 660px; }

/* ───────── CTA ───────── */
.cta {
  background: var(--ink); color: #fff;
  border-radius: var(--r-xl); padding: 84px 44px; text-align: center;
  position: relative; overflow: hidden;
}
.cta h2 { font-size: clamp(30px, 4.2vw, 50px); margin-bottom: 16px; }
.cta p { color: #B9B9C0; font-size: 18px; max-width: 500px; margin: 0 auto 32px; }
.cta > * { position: relative; z-index: 1; }

/* ───────── Footer ───────── */
.footer { background: var(--surface-2); padding: 76px 0 32px; }
.footer-grid { display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: 44px; }
.footer h4 { font-size: 14px; font-weight: 500; color: var(--ink-2); margin-bottom: 16px; }
.footer ul { list-style: none; display: flex; flex-direction: column; gap: 11px; }
.footer a { font-size: 15px; color: var(--ink); }
.footer a:hover { color: var(--ink-2); }
.footer .brand { margin-bottom: 14px; }
.footer-tagline { color: var(--ink-2); max-width: 300px; font-size: 15px; }
.footer-bottom {
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px; flex-wrap: wrap;
  margin-top: 56px; padding-top: 26px;
  border-top: 1px solid var(--line);
  color: var(--ink-2); font-size: 14px;
}

/* ───────── Icons ───────── */
.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.ico {
  width: 1.15em; height: 1.15em; display: inline-block; vertical-align: -.2em; flex: none;
  fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}
.nav-toggle .ico { width: 22px; height: 22px; }
.nav-toggle .ico-x { display: none; }
.nav-toggle.open .ico-bars { display: none; }
.nav-toggle.open .ico-x { display: inline-block; }

/* ───────── Reveal ───────── */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .55s ease, transform .55s cubic-bezier(.2, .8, .2, 1); }
.reveal.in { opacity: 1; transform: none; }

/* ───────── Responsive ───────── */
@media (max-width: 1000px) {
  .bento { grid-template-columns: repeat(2, 1fr); }
  .steps { grid-template-columns: 1fr; }
  .feature-row { grid-template-columns: 1fr; gap: 36px; }
  .feature-row.flip .feature-visual { order: 0; }
  .feature-row + .feature-row { margin-top: 80px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .strip-row { grid-template-columns: repeat(6, 1fr); }
}
@media (max-width: 900px) {
  .nav-links { display: none; }
  .nav-toggle { display: flex; }
  .nav-inner { position: relative; }
  .nav-links.open {
    display: flex; flex-direction: column; align-items: stretch;
    position: absolute; top: calc(100% + 12px); left: 0; right: 0;
    background: var(--surface); border-radius: var(--r-lg);
    box-shadow: var(--shadow-lift); padding: 12px; gap: 2px; z-index: 95;
  }
  .nav-links.open li { width: 100%; list-style: none; }
  .nav-links.open a { padding: 13px 16px; border-radius: var(--r-sm); }
  .nav-links.open .has-drop > a { pointer-events: none; font-size: 13px; color: var(--ink-2); padding: 12px 16px 4px; }
  .nav-links.open .drop { position: static; display: flex; box-shadow: none; padding: 0 0 0 8px; min-width: 0; }
}
@media (max-width: 720px) {
  body { font-size: 16px; }
  .br-wide { display: none; }
  .h-hero { font-size: clamp(40px, 11vw, 56px); }
  .nav-inner { padding: 10px 16px; gap: 10px; }
  .nav-right .btn { padding: 10px 16px; font-size: 14px; }
  .brand { font-size: 18px; }
  .brand img { height: 26px; }
  .section { padding: 72px 0; }
  .section-tight { padding: 52px 0; }
  :root { --nav-h: 64px; }
  .hero { min-height: 440px; padding: 48px 0; }
  /* media queries add no specificity, so restate the modifier here */
  .hero-full { min-height: calc(100svh - var(--nav-h)); }
  /* let buttons size to their text instead of stretching full-width */
  .btn-lg { font-size: 16px; padding: 14px 24px; }
  .btn { font-size: 15px; padding: 12px 20px; }
  .hero-note { gap: 6px 18px; font-size: 14px; }
  .head { margin-bottom: 40px; }
  .strip { margin-top: 36px; }
  .strip-row { grid-template-columns: repeat(4, 1fr); gap: 7px; padding: 0 7px; }
  .stats { grid-template-columns: repeat(2, 1fr); gap: 36px 20px; }
  .quote { padding: 48px 26px; }
  .cta, .cta-band { padding: 56px 24px; }
  .cta-band h2 { font-size: clamp(26px, 7vw, 34px); }
  .cta-band p { font-size: 16px; }
  .feature-visual { padding: 22px; }
  .footer-grid { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 420px) {
  .bento { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
  .reveal { opacity: 1; transform: none; }
}

/* ═══════════════════════════════════════════════════════════
   Shared components for the inner pages
   ═══════════════════════════════════════════════════════════ */

/* Eyebrow labels — the old .tag / .sticker / .plans-label all read as one thing */
.tag, .tag-light, .sticker, .post-cat {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 500;
  color: var(--ink-2); background: var(--surface-2);
  border-radius: var(--r-pill); padding: 7px 16px;
  margin-bottom: 20px;
}
.tag .ico, .sticker .ico { width: 17px; height: 17px; }
.plans-label {
  font-size: 15px; color: var(--ink-2);
  text-align: center; margin-bottom: 24px;
}

/* Highlighted words in headings */
.mark {
  background: var(--sun);
  padding: 0 .16em; border-radius: 8px;
  box-decoration-break: clone; -webkit-box-decoration-break: clone;
}

/* Card tints carried over from the old palette */
.card-yellow { background: var(--sun); }
.card-paper  { background: var(--surface-2); }
.card-coral  { background: var(--blush); }
.card-mint   { background: var(--leaf); }
.card-ink    { background: var(--ink); color: #fff; }
.card-ink h1, .card-ink h2, .card-ink h3, .card-ink h4 { color: #fff; }
.card-ink p { color: #B9B9C0; }
.card-ink .card-icon { background: rgba(255, 255, 255, .12); }

/* Buttons carried over */
.btn-ink { background: var(--ink); color: #fff; }
.btn-ink:hover { background: #33333A; box-shadow: var(--shadow-lift); }
.btn-coral { background: var(--blush); }
.btn-ghost { background: transparent; padding-left: 8px; padding-right: 8px; }
.btn-ghost:hover { background: var(--surface-2); }

/* Old full-width tinted band */
.band { background: var(--surface-2); }

/* Old CTA band name */
.cta-band {
  background: var(--ink); color: #fff;
  border-radius: var(--r-xl); padding: 84px 44px; text-align: center;
}
.cta-band h2 { font-size: clamp(30px, 4.2vw, 50px); margin-bottom: 16px; color: #fff; }
.cta-band p { color: #B9B9C0; font-size: 18px; max-width: 500px; margin: 0 auto 32px; }

/* ───────── Check list ───────── */
.checks { list-style: none; display: flex; flex-direction: column; gap: 13px; margin-bottom: 28px; }
.checks li { display: flex; gap: 12px; align-items: flex-start; font-size: 16px; }
.checks li::before {
  content: ''; flex: none;
  width: 20px; height: 20px; margin-top: 3px;
  border-radius: 50%; background: var(--leaf);
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B7A45' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7'/%3E%3C/svg%3E");
  background-size: 13px; background-repeat: no-repeat; background-position: center;
}

/* ───────── Comparison table ───────── */
.compare {
  width: 100%; border-collapse: separate; border-spacing: 0;
  background: var(--surface); font-size: 16px;
}
.compare thead th:first-child { border-top-left-radius: var(--r-md); }
.compare thead th:last-child { border-top-right-radius: var(--r-md); }
.compare tbody tr:last-child td:first-child { border-bottom-left-radius: var(--r-md); }
.compare tbody tr:last-child td:last-child { border-bottom-right-radius: var(--r-md); }
.compare th, .compare td { padding: 17px 22px; text-align: left; border-bottom: 1px solid var(--line); }
.compare thead th { background: var(--surface-2); font-weight: 500; font-size: 14px; color: var(--ink-2); }
.compare thead th.us { background: var(--sun); color: var(--ink); }
.compare tbody td:first-child { font-weight: 500; }
.compare td.us { background: rgba(255, 233, 154, .28); font-weight: 500; }
.compare tr:last-child td { border-bottom: none; }
.compare .yes { color: #1B7A45; font-weight: 500; }
.compare .no  { color: #9A9AA2; }
@media (max-width: 620px) { .compare th, .compare td { padding: 12px 13px; font-size: 14px; } }

/* ───────── Pricing ───────── */
.price-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: stretch; }
.price-card {
  display: flex; flex-direction: column;
  background: var(--surface-2); border-radius: var(--r-lg); padding: 34px 30px;
}
.price-card.featured { background: var(--sun); }
.price-name { font-weight: 500; font-size: 20px; margin-bottom: 4px; }
.price-amt { font-size: 46px; font-weight: 500; letter-spacing: -.04em; margin: 12px 0; }
.price-amt small { font-size: 16px; font-weight: 400; color: var(--ink-2); letter-spacing: 0; }
.price-list { list-style: none; display: flex; flex-direction: column; gap: 11px; margin: 22px 0; flex: 1; }
.price-list li { display: flex; gap: 10px; font-size: 15px; }
.price-list li::before { content: '+'; color: var(--ink-2); }
.price-list li.off { color: #9A9AA2; }
.price-list li.off::before { content: '–'; }

.free-card {
  display: grid; grid-template-columns: 1.5fr 1fr; gap: 34px; align-items: center;
  background: var(--sun); border-radius: var(--r-xl);
  padding: 44px 44px; margin-bottom: 40px;
}
.free-card h2 { font-size: clamp(24px, 3vw, 34px); margin: 12px 0; }
.free-card p { color: #6B5B1E; font-size: 16px; }
.free-card .checks { margin: 20px 0 0; }
.free-card .checks li::before { background-color: rgba(255, 255, 255, .9); }
.free-card-cta {
  text-align: center; background: var(--surface);
  border-radius: var(--r-lg); padding: 30px 26px;
}
.free-card-cta .price-amt { font-size: 50px; margin: 0 0 6px; }
.free-card-cta .btn { width: 100%; }
@media (max-width: 820px) {
  .price-grid { grid-template-columns: 1fr; }
  .free-card { grid-template-columns: 1fr; gap: 26px; padding: 32px 24px; text-align: center; }
  .free-card .checks { display: inline-flex; text-align: left; }
}

/* ───────── Blog cards ───────── */
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.post-card {
  display: flex; flex-direction: column; overflow: hidden;
  background: var(--surface-2); border-radius: var(--r-lg); padding: 0;
}
.post-thumb {
  aspect-ratio: 16/10; background: var(--sky);
  display: flex; align-items: center; justify-content: center;
}
.post-thumb .ico { width: 52px; height: 52px; color: var(--ink); opacity: .55; stroke-width: 1.6; }
.post-card:nth-child(3n+2) .post-thumb { background: var(--sun); }
.post-card:nth-child(3n+3) .post-thumb { background: var(--leaf); }
.post-body { padding: 26px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.post-body .post-cat { margin-bottom: 0; align-self: flex-start; background: var(--surface); }
.post-card h3 { font-size: 20px; }
.post-meta { margin-top: auto; font-size: 14px; color: var(--ink-2); }
@media (max-width: 900px) { .post-grid { grid-template-columns: 1fr; } }

/* ───────── Long-form article ───────── */
.article { max-width: 720px; margin: 0 auto; }
.article h2 { font-size: clamp(26px, 3.2vw, 34px); margin: 48px 0 16px; }
.article h3 { font-size: 22px; margin: 34px 0 12px; }
.article p { font-size: 18px; line-height: 1.72; margin-bottom: 20px; color: #3A3B42; }
.article ul, .article ol { margin: 0 0 22px 20px; color: #3A3B42; }
.article li { font-size: 18px; line-height: 1.7; margin-bottom: 9px; }
.article blockquote {
  border-left: 3px solid var(--sun-deep);
  padding: 4px 0 4px 24px; margin: 30px 0;
  font-size: 20px; color: var(--ink);
}
.article img { border-radius: var(--r-lg); margin: 30px 0; }
.article a:not(.btn) { border-bottom: 2px solid var(--sun-deep); }
.article a:not(.btn):hover { background: var(--sun); }

/* Pricing card details */
.price-card .tag, .price-card .sticker { align-self: flex-start; }
.price-card .btn { background: var(--surface); }
.price-card .btn:hover { background: #F0EDE7; }
.price-card .btn-primary, .price-card .btn-ink { background: var(--ink); color: #fff; }
.price-card .btn-primary:hover, .price-card .btn-ink:hover { background: #33333A; }

/* Legacy variable names still referenced by inline styles on the inner pages.
   Mapped onto the new palette so nothing resolves to an empty value. */
:root {
  --muted: var(--ink-2);
  --white: var(--surface);
  --paper: var(--surface);
  --paper-2: var(--surface-2);
  --cheese: var(--sun);
  --cheese-deep: var(--sun-deep);
  --coral: #E86A85;
  --mint: var(--leaf);
  --font-display: var(--font);
  --font-body: var(--font);
  --font-mono: var(--font);
}

/* Light buttons on the dark CTA panel */
/* Secondary first, accent second: same specificity, so source order decides. */
.cta .btn, .cta-band .btn { background: rgba(255, 255, 255, .14); color: #fff; }
.cta .btn:hover, .cta-band .btn:hover { background: rgba(255, 255, 255, .22); }
.cta .btn-ink, .cta .btn-primary, .cta .btn-sun,
.cta-band .btn-ink, .cta-band .btn-primary, .cta-band .btn-sun {
  background: var(--sun-deep); color: var(--ink);
}
.cta .btn-ink:hover, .cta .btn-primary:hover, .cta .btn-sun:hover,
.cta-band .btn-ink:hover, .cta-band .btn-primary:hover, .cta-band .btn-sun:hover { background: #FFD450; }

/* Contrast fixes: a white icon tile vanishes on the off-white card background,
   so untinted cards get a tinted tile and tinted cards get the white one. */
.card-icon { background: var(--sky); }
.card-sun .card-icon, .card-sky .card-icon, .card-leaf .card-icon, .card-blush .card-icon,
.card-yellow .card-icon, .card-coral .card-icon, .card-mint .card-icon {
  background: rgba(255, 255, 255, .85);
}
.card-ink .card-icon { background: rgba(255, 255, 255, .14); }
.card-ink .card-icon .ico { color: var(--sun-deep); }

/* A max-width block does not centre itself */
.phone-shot { margin-left: auto; margin-right: auto; }

/* The 3-column comparison cannot fit a phone; let it scroll in place
   instead of being clipped by body{overflow-x:hidden}. */
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (max-width: 620px) {
  .compare { min-width: 520px; }
  .table-scroll { margin: 0 -24px; padding: 0 24px; }
}

/* The hero field is surface-2, so the secondary button needs to lift off it */



/* ───────── Home hero: floating shapes ─────────
   Circles, arcs, rings, capsules and squircles in the tonal palette.
   Pure CSS, no assets. They sit behind the copy and clear of it. */
.hero-shapes { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.hero-shapes span { position: absolute; }

/* quarter circle, bottom left */
.sh-1 { width: 260px; height: 260px; left: -60px; bottom: -70px;
        background: var(--sun); border-radius: 0 100% 0 0; }
/* ring, upper left */
.sh-2 { width: 132px; height: 132px; left: 52px; top: 11%;
        border: 26px solid var(--sky); border-radius: 50%; }
/* capsule, mid left */
.sh-3 { width: 74px; height: 176px; left: 84px; top: 44%;
        background: var(--leaf); border-radius: 999px; }
/* squircle, upper right */
.sh-4 { width: 136px; height: 136px; right: 48px; top: 13%;
        background: var(--blush); border-radius: 38%; transform: rotate(-12deg); }
/* half circle, bottom right */
.sh-5 { width: 196px; height: 98px; right: 112px; bottom: 0;
        background: var(--sky); border-radius: 196px 196px 0 0; }
/* leaf, right */
.sh-6 { width: 84px; height: 84px; right: 46px; top: 45%;
        background: var(--sun-deep); border-radius: 0 60% 0 60%; opacity: .55; }
/* small dot, lower left */
.sh-7 { width: 54px; height: 54px; left: 296px; bottom: 17%;
        background: var(--blush); border-radius: 50%; }

@media (max-width: 1180px) {
  .sh-2, .sh-4, .sh-7 { display: none; }
  .sh-3 { left: 24px; }
  .sh-6 { right: 20px; }
}
@media (max-width: 720px) {
  /* five shapes, each sitting whole in the margins rather than
     cropped by the viewport edge */
  .sh-1 { width: 96px;  height: 96px; left: 0; bottom: 0; }
  .sh-2 { display: block; width: 46px; height: 46px; border-width: 14px;
          left: 18px; top: 26px; }
  .sh-4 { display: block; width: 58px; height: 58px; right: 18px; top: 20px; }
  .sh-5 { width: 92px; height: 46px; right: 22px; bottom: 0; }
  .sh-7 { display: block; width: 30px; height: 30px; left: 34px; bottom: 96px; }
  .sh-3, .sh-6 { display: none; }
}
.hero-note span { display: inline-flex; align-items: center; gap: 7px; }
.hero-note .ico { width: 17px; height: 17px; color: var(--sun-deep); }

/* ───────── Home hero: small photos ringing the title ─────────
   left/top are each photo's centre; negative margins do the centring. */
.hero-ring { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.hero-ring img {
  position: absolute;
  width: 120px; height: 120px;
  object-fit: cover;
  border-radius: 20px;
  border: 5px solid var(--surface);
  box-shadow: 0 14px 32px rgba(20, 20, 25, .16);
  margin: -60px 0 0 -60px;
}
/* each tilted along the arc it sits on, so the six read as one circle */
.hero-ring img:nth-child(1) { left: calc(50% - 430px); top: 70%; transform: rotate(10deg); }
.hero-ring img:nth-child(2) { left: calc(50% - 465px); top: 50%; transform: rotate(-6deg); }
.hero-ring img:nth-child(3) { left: calc(50% - 430px); top: 30%; transform: rotate(-14deg); }
.hero-ring img:nth-child(4) { left: calc(50% + 430px); top: 70%; transform: rotate(-10deg); }
.hero-ring img:nth-child(5) { left: calc(50% + 465px); top: 50%; transform: rotate(6deg); }
.hero-ring img:nth-child(6) { left: calc(50% + 430px); top: 30%; transform: rotate(14deg); }
/* shapes are anchored to the viewport edges, photos to the centre, so
   they converge as the window narrows. Below this they would collide. */
@media (max-width: 1400px) { .hero-ring { display: none; } }
