/* ==========================================================================
   Pohst — Pleo theme layer over Bootstrap 5.3.3
   Strategy: override Bootstrap's own --bs-* CSS variables (color / type / radius
   / spacing) so the framework itself renders the Pleo aesthetic, then add a thin
   component layer for the signature pieces (pill buttons, dimensional cards,
   editorial type, dark sections). Loaded AFTER bootstrap.min.css.

   Aesthetic: pleo.io editorial monochrome — pure black ink, white + #F5F5F5
   surfaces, Inter heavy+tight, black pill buttons, bordered cards with hover
   lift. PURE MONOCHROME: purple lives only inside the logo. Not flat — depth via
   soft shadows + hover transforms.
   ========================================================================== */

/* ---- 1. Token overrides — repoint Bootstrap's variables --------------------
   Scoped to :root AND [data-bs-theme=light] to match/beat Bootstrap's own
   light-theme block specificity. */
:root,
[data-bs-theme="light"] {
  /* Ink / neutrals */
  --pohst-ink:        #000000;   /* headings / emphasis */
  --pohst-ink-2:      #1A1A1A;   /* body copy — high-contrast near-black */
  --pohst-ink-3:      #474747;   /* secondary (trust lines, labels) */
  --pohst-ink-4:      #6E6E6E;   /* muted (still clearly readable) */
  --pohst-bg:         #FFFFFF;
  --pohst-bg-warm:    #F5F5F5;   /* alt section */
  --pohst-bg-light:   #EFEFEF;
  --pohst-border:     #E5E5E5;
  --pohst-border-2:   #D8D8D8;
  --pohst-dark:       #000000;   /* dark sections */
  --pohst-dark-2:     #0E0E0E;
  --pohst-dark-hover: #1A1A1A;
  --pohst-clay:       #C9967A;
  --pohst-clay-2:     #A8775B;
  /* ---- Logo-derived purple. RESERVED for tiny illustration accents only
     (calendar highlight, queue bars, chart peaks) — never buttons/text/sections.
     Keep usage to a whisper so the site stays monochrome. ---- */
  --pohst-accent:      #7C3AED;   /* logo violet */
  --pohst-accent-2:    #CF2A94;   /* logo magenta */
  --pohst-accent-grad: linear-gradient(135deg, #7C3AED 0%, #CF2A94 100%);
  --pohst-accent-soft: rgba(124, 58, 237, .07);
  --pohst-accent-line: rgba(124, 58, 237, .22);
  --pohst-on-dark:    #FFFFFF;
  --pohst-on-dark-muted: #A3A3A3;
  --pohst-success:    #1A1A1A;   /* check ticks stay ink, not green */

  /* Spacing scale (used by our section/rhythm utilities) */
  --pohst-space-1: 4px;   --pohst-space-2: 8px;   --pohst-space-3: 12px;
  --pohst-space-4: 16px;  --pohst-space-5: 24px;  --pohst-space-6: 32px;
  --pohst-space-7: 48px;  --pohst-space-8: 64px;  --pohst-space-9: 96px;
  --pohst-space-10: 128px;

  /* Elevation — soft, low-chroma. Depth, never flat. */
  --pohst-shadow-xs: 0 1px 2px rgba(0,0,0,.05);
  --pohst-shadow-sm: 0 2px 8px rgba(0,0,0,.05);
  --pohst-shadow-md: 0 8px 24px rgba(0,0,0,.07);
  --pohst-shadow-lg: 0 16px 48px rgba(0,0,0,.10);
  --pohst-shadow-xl: 0 28px 70px rgba(0,0,0,.14);

  --pohst-ease: cubic-bezier(.22,.61,.36,1);

  /* ---- Bootstrap variable remaps ---- */
  --bs-body-font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --bs-body-font-size: 1.0625rem;      /* 17px */
  --bs-body-font-weight: 400;
  --bs-body-line-height: 1.6;
  --bs-body-color: var(--pohst-ink-2);
  --bs-body-color-rgb: 26, 26, 26;
  --bs-body-bg: var(--pohst-bg);
  --bs-body-bg-rgb: 255, 255, 255;
  --bs-emphasis-color: var(--pohst-ink);
  --bs-emphasis-color-rgb: 0, 0, 0;
  --bs-secondary-color: var(--pohst-ink-3);
  --bs-secondary-bg: var(--pohst-bg-warm);
  --bs-tertiary-color: var(--pohst-ink-4);
  --bs-tertiary-bg: var(--pohst-bg-light);
  --bs-heading-color: var(--pohst-ink);

  --bs-primary: #000000;
  --bs-primary-rgb: 0, 0, 0;
  --bs-dark: #000000;
  --bs-dark-rgb: 0, 0, 0;
  --bs-light: #F5F5F5;
  --bs-light-rgb: 245, 245, 245;

  --bs-border-color: var(--pohst-border);
  --bs-border-color-translucent: rgba(0,0,0,.10);

  --bs-link-color: var(--pohst-ink);
  --bs-link-color-rgb: 0, 0, 0;
  --bs-link-hover-color: var(--pohst-ink-2);
  --bs-link-hover-color-rgb: 77, 77, 77;
  --bs-link-decoration: none;

  /* Radius — Pleo uses generous soft corners + full pill */
  --bs-border-radius: .75rem;      /* 12px */
  --bs-border-radius-sm: .5rem;    /* 8px */
  --bs-border-radius-lg: 1.25rem;  /* 20px — cards */
  --bs-border-radius-xl: 1.5rem;   /* 24px */
  --bs-border-radius-xxl: 2rem;    /* 32px */
  --bs-border-radius-pill: 999px;

  /* Container gutter */
  --bs-gutter-x: 1.5rem;

  /* Anchor-landing offset for the sticky header is applied MANUALLY in app.js
     (window.scrollTo with a -92px offset), NOT via CSS scroll-padding-top. Reason:
     on Safari, scroll-padding-top makes the browser scroll the page whenever a
     dropdown toggle inside the sticky header receives focus — a visible jump on
     every menu open. And scroll-behavior is forced to `auto` (override Bootstrap's
     reboot smooth) so no native smooth-scroll surprises; app.js does smooth explicitly. */
  scroll-behavior: auto;
}

/* ---- 2. Base elements ---------------------------------------------------- */
body {
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  line-height: var(--bs-body-line-height);
  color: var(--pohst-ink-2);
  background: var(--pohst-bg);
  font-feature-settings: 'cv11' on, 'ss01' on, 'ss03' on;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--bs-body-font-family);
  color: var(--pohst-ink);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.1;
  font-feature-settings: 'cv11' on, 'ss01' on;
}

h1, .h1 { font-size: clamp(2.5rem, 4.6vw, 3.75rem); font-weight: 500; line-height: 1.04; letter-spacing: -0.032em; }
h2, .h2 { font-size: clamp(1.9rem, 3.4vw, 2.625rem); font-weight: 500; line-height: 1.1;  letter-spacing: -0.028em; }
h3, .h3 { font-size: clamp(1.4rem, 2.1vw, 1.625rem); font-weight: 600; line-height: 1.2;  letter-spacing: -0.02em; }
h4, .h4 { font-size: 1.25rem;  font-weight: 600; line-height: 1.3; letter-spacing: -0.015em; }
h5, .h5 { font-size: 1.0625rem; font-weight: 600; line-height: 1.4; letter-spacing: -0.01em; }
h6, .h6 { font-size: 1rem; font-weight: 600; letter-spacing: -0.01em; }

p { color: var(--pohst-ink-2); line-height: 1.6; }
strong, b { font-weight: 600; color: var(--pohst-ink); }
.text-ink   { color: var(--pohst-ink) !important; }
.text-ink-2 { color: var(--pohst-ink-2) !important; }
.text-ink-3 { color: var(--pohst-ink-3) !important; }
.text-muted-ink { color: var(--pohst-ink-4) !important; }
.fw-display { font-weight: 600; letter-spacing: -0.03em; }

/* Editorial lead paragraph under a hero heading */
.lead-pohst {
  font-size: clamp(1.0625rem, 1.4vw, 1.25rem);
  line-height: 1.55;
  color: var(--pohst-ink-2);
  letter-spacing: -0.005em;
}

/* Eyebrow / overline */
.eyebrow {
  display: inline-block;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pohst-ink-3);
  margin-bottom: var(--pohst-space-4);
}
.section--dark .eyebrow { color: var(--pohst-on-dark-muted); }

/* ---- 3. Layout rhythm ---------------------------------------------------- */
.section { padding-top: var(--pohst-space-9); padding-bottom: var(--pohst-space-9); }
.section-sm { padding-top: var(--pohst-space-8); padding-bottom: var(--pohst-space-8); }
.section--warm { background: var(--pohst-bg-warm); }
.section--light { background: var(--pohst-bg-light); }
.section--dark  { background: var(--pohst-dark); color: var(--pohst-on-dark); }
.section--dark h1, .section--dark h2, .section--dark h3, .section--dark h4,
.section--dark h5, .section--dark h6 { color: var(--pohst-on-dark); }
.section--dark p { color: var(--pohst-on-dark-muted); }
.container-narrow { max-width: 820px; margin-inline: auto; padding-inline: clamp(1.25rem, 5vw, 1.5rem); }
.container-tight  { max-width: 1120px; margin-inline: auto; padding-inline: clamp(1.25rem, 5vw, 1.5rem); }

@media (max-width: 768px) {
  .section    { padding-top: var(--pohst-space-8); padding-bottom: var(--pohst-space-8); }
  .section-sm { padding-top: var(--pohst-space-7); padding-bottom: var(--pohst-space-7); }
}

/* ---- 4. Buttons — solid black pill + outline pill (Pleo signature) -------- */
.btn {
  --bs-btn-font-family: var(--bs-body-font-family);
  --bs-btn-font-weight: 500;
  --bs-btn-border-radius: 999px;
  --bs-btn-padding-y: .8rem;
  --bs-btn-padding-x: 1.6rem;
  --bs-btn-font-size: 1rem;
  letter-spacing: -0.005em;
  transition: transform .18s var(--pohst-ease), background-color .18s var(--pohst-ease),
              border-color .18s var(--pohst-ease), box-shadow .18s var(--pohst-ease), color .18s var(--pohst-ease);
}
.btn-lg  { --bs-btn-padding-y: 1rem;   --bs-btn-padding-x: 2rem;   --bs-btn-font-size: 1.0625rem; }
.btn-sm  { --bs-btn-padding-y: .5rem;  --bs-btn-padding-x: 1.1rem; --bs-btn-font-size: .875rem; }

/* Primary = solid ink pill */
.btn-ink {
  --bs-btn-color: #fff; --bs-btn-bg: var(--pohst-ink); --bs-btn-border-color: var(--pohst-ink);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--pohst-dark-hover); --bs-btn-hover-border-color: var(--pohst-dark-hover);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--pohst-dark-hover); --bs-btn-active-border-color: var(--pohst-dark-hover);
  border-width: 1.5px;
}
.btn-ink:hover { transform: translateY(-1px); box-shadow: var(--pohst-shadow-md); }

/* Secondary = outline ink pill */
.btn-ink-outline {
  --bs-btn-color: var(--pohst-ink); --bs-btn-bg: transparent; --bs-btn-border-color: var(--pohst-ink);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--pohst-ink); --bs-btn-hover-border-color: var(--pohst-ink);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--pohst-ink); --bs-btn-active-border-color: var(--pohst-ink);
  border-width: 1.5px;
}
.btn-ink-outline:hover { transform: translateY(-1px); }

/* On dark sections → invert to white pill */
.btn-ink-invert {
  --bs-btn-color: var(--pohst-ink); --bs-btn-bg: #fff; --bs-btn-border-color: #fff;
  --bs-btn-hover-color: var(--pohst-ink); --bs-btn-hover-bg: var(--pohst-on-dark-muted); --bs-btn-hover-border-color: var(--pohst-on-dark-muted);
  --bs-btn-active-color: var(--pohst-ink); --bs-btn-active-bg: var(--pohst-on-dark-muted); --bs-btn-active-border-color: var(--pohst-on-dark-muted);
  border-width: 1.5px;
}
.btn-ink-invert:hover { transform: translateY(-1px); box-shadow: 0 12px 32px rgba(0,0,0,.35); }

.btn-ghost {
  --bs-btn-color: var(--pohst-ink); --bs-btn-bg: transparent; --bs-btn-border-color: transparent;
  --bs-btn-hover-color: var(--pohst-ink); --bs-btn-hover-bg: var(--pohst-bg-warm); --bs-btn-hover-border-color: transparent;
}
.section--dark .btn-ghost { --bs-btn-color: #fff; --bs-btn-hover-color:#fff; --bs-btn-hover-bg: var(--pohst-dark-hover); }

/* ---- 5. Cards — dimensional (border + hover lift + shadow) --------------- */
.card {
  --bs-card-bg: var(--pohst-bg);
  --bs-card-border-color: var(--pohst-border);
  --bs-card-border-radius: 1.25rem;   /* 20px */
  --bs-card-inner-border-radius: 1.1rem;
  --bs-card-spacer-y: 1.75rem;
  --bs-card-spacer-x: 1.75rem;
  border-width: 1px;
  box-shadow: var(--pohst-shadow-xs);
  transition: transform .24s var(--pohst-ease), box-shadow .24s var(--pohst-ease), border-color .24s var(--pohst-ease);
}
.card-hover:hover,
.card.is-interactive:hover {
  transform: translateY(-3px);
  border-color: var(--pohst-border-2);
  box-shadow: var(--pohst-shadow-md);
}
.card--flush { box-shadow: none; }
.card--elevated { box-shadow: var(--pohst-shadow-md); }

/* Soft surface tile (platform chips, feature tiles) */
.tile {
  background: var(--pohst-bg);
  border: 1px solid var(--pohst-border);
  border-radius: 1rem;
  box-shadow: var(--pohst-shadow-xs);
  transition: transform .22s var(--pohst-ease), box-shadow .22s var(--pohst-ease), border-color .22s var(--pohst-ease);
}
.tile:hover { transform: translateY(-3px); box-shadow: var(--pohst-shadow-md); border-color: var(--pohst-border-2); }

/* ---- 6. Badges / pills / eyebrow tags ------------------------------------ */
.badge-pohst {
  display: inline-flex; align-items: center; gap: .4rem;
  background: var(--pohst-bg-warm);
  color: var(--pohst-ink);
  border: 1px solid var(--pohst-border);
  font-weight: 500; font-size: .8125rem; letter-spacing: -0.005em;
  padding: .38rem .85rem; border-radius: 999px;
}
.badge-ink   { background: var(--pohst-ink); color:#fff; border-color: var(--pohst-ink); }
.badge-clay  { background: var(--pohst-clay); color:#fff; border-color: var(--pohst-clay); }
.section--dark .badge-pohst { background: rgba(255,255,255,.08); color:#fff; border-color: rgba(255,255,255,.16); }

/* Feature check row */
.check-item { display:flex; gap:.6rem; align-items:flex-start; color: var(--pohst-ink-2); }
.check-item svg, .check-item .tick { flex:0 0 auto; color: var(--pohst-ink); margin-top:.15rem; }

/* ---- 7. Header / navbar -------------------------------------------------- */
.site-header {
  position: sticky; top: 0; z-index: 1030;
  background: rgba(255,255,255,.82);
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid transparent;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.site-header.is-scrolled { border-bottom-color: var(--pohst-border); box-shadow: 0 1px 0 rgba(0,0,0,.02); }
.site-header .navbar-brand img { height: 60px; width: auto; display:block; }
.nav-link-pohst {
  font-weight: 500; font-size: .9375rem; letter-spacing: -0.005em;
  color: var(--pohst-ink); padding: .5rem 1.05rem; border-radius: 999px;
  transition: background-color .16s ease, color .16s ease;
}
.nav-link-pohst:hover,
.nav-link-pohst.show { background: var(--pohst-bg-warm); color: var(--pohst-ink); }
.nav-link-pohst.is-active { color: var(--pohst-ink); }
/* Clean focus: the bg-warm pill is the open/focus indicator — NO crude black outline.
   Scoped to .site-header so it overrides the global a/.btn:focus-visible outline rule;
   keyboard focus keeps only a soft, subtle ring. */
.site-header .nav-link-pohst:focus,
.site-header .dropdown-toggle:focus { outline: none; box-shadow: none; }
.site-header .nav-link-pohst:focus-visible,
.site-header .dropdown-toggle:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(0, 0, 0, .12); }

/* Caret → clean chevron that flips when open (replaces Bootstrap's solid triangle).
   Applied to every toggle in the header — nav links AND the Login/Sign Up buttons —
   so the whole bar is consistent. */
.site-header .dropdown-toggle::after {
  width: .42em; height: .42em; margin-left: .5em; vertical-align: middle;
  border: 0; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor;
  transform: rotate(45deg) translate(-1px, -2px); opacity: .55;
  transition: transform .18s var(--pohst-ease), opacity .18s ease;
}
.site-header .dropdown-toggle.show::after { transform: rotate(-135deg) translate(-1px, -1px); opacity: .9; }

/* ---- 7b. Dropdown menus — themed via Bootstrap's own --bs-dropdown-* vars ---- */
.dropdown-menu {
  --bs-dropdown-min-width: 12.5rem;
  --bs-dropdown-padding-x: .4rem;
  --bs-dropdown-padding-y: .4rem;
  --bs-dropdown-spacer: .55rem;
  --bs-dropdown-bg: var(--pohst-bg);
  --bs-dropdown-border-width: 1px;
  --bs-dropdown-border-color: rgba(0, 0, 0, .06);
  --bs-dropdown-border-radius: 16px;
  --bs-dropdown-font-size: .9375rem;
  --bs-dropdown-color: var(--pohst-ink-2);
  --bs-dropdown-link-color: var(--pohst-ink-2);
  --bs-dropdown-link-hover-color: var(--pohst-ink);
  --bs-dropdown-link-hover-bg: var(--pohst-bg-warm);
  --bs-dropdown-link-active-color: var(--pohst-ink);
  --bs-dropdown-link-active-bg: var(--pohst-bg-warm);
  --bs-dropdown-item-padding-x: .8rem;
  --bs-dropdown-item-padding-y: .58rem;
  box-shadow: 0 18px 44px -12px rgba(0, 0, 0, .18), 0 4px 12px -6px rgba(0, 0, 0, .10);
}
.dropdown-menu.show { animation: pohst-dd-fade .15s ease both; }
@keyframes pohst-dd-fade { from { opacity: 0; } to { opacity: 1; } }
.dropdown-item {
  border-radius: 10px; font-weight: 500; letter-spacing: -0.005em;
  transition: background-color .14s ease, color .14s ease;
}
.dropdown-item:active { color: var(--pohst-ink); }

/* Mobile (collapsed navbar): render dropdowns flat + inline, not as floating panels */
@media (max-width: 991.98px) {
  .navbar .dropdown-menu {
    box-shadow: none; border: 0; border-radius: 0; background: transparent;
    padding: .1rem 0 .35rem .35rem; margin: 0;
  }
  .navbar .dropdown-item { padding-left: 1rem; }
}

/* Announcement topbar (dark) */
.site-topbar {
  background: var(--pohst-ink); color:#fff;
  font-size: .8125rem; letter-spacing: -0.005em;
}
.site-topbar a { color:#fff; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(255,255,255,.5); }
.site-topbar a:hover { text-decoration-color:#fff; color:#fff; }

/* ---- 8. Footer (dark, monochrome) --------------------------------------- */
.site-footer { background: var(--pohst-ink); color: var(--pohst-on-dark-muted); }
.site-footer .footer-title { color:#fff; font-size:.8125rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.site-footer a { color: var(--pohst-on-dark-muted); text-decoration: none; transition: color .16s ease; }
.site-footer a:hover { color:#fff; }
.site-footer .footer-brand-desc { color: var(--pohst-on-dark-muted); font-size:.9rem; line-height:1.65; }
.site-footer hr { border-color: rgba(255,255,255,.12); opacity:1; }

/* ---- 9. Forms ------------------------------------------------------------ */
.form-control, .form-select {
  border: 1px solid var(--pohst-border);
  border-radius: .75rem;
  padding: .75rem 1rem;
  font-size: .9375rem;
  color: var(--pohst-ink);
  background: var(--pohst-bg);
}
.form-control:focus, .form-select:focus {
  border-color: var(--pohst-ink);
  box-shadow: 0 0 0 3px rgba(0,0,0,.06);
}

/* ---- 10. Pricing toggle + misc components ------------------------------- */
.price-toggle { display:inline-flex; align-items:center; gap:.75rem; }
.price-toggle .form-switch .form-check-input {
  width: 2.6rem; height: 1.45rem; cursor:pointer;
  background-color: var(--pohst-bg-light); border-color: var(--pohst-border);
}
.price-toggle .form-switch .form-check-input:checked { background-color: var(--pohst-ink); border-color: var(--pohst-ink); }
.price-toggle .form-switch .form-check-input:focus { box-shadow: 0 0 0 3px rgba(0,0,0,.06); border-color: var(--pohst-ink); }

/* Divider dot */
.dot-sep { width:4px; height:4px; border-radius:50%; background: var(--pohst-ink-4); display:inline-block; vertical-align:middle; }

/* Link with animated underline */
.link-underline-pohst {
  color: var(--pohst-ink); text-decoration: underline; text-decoration-thickness: 1px;
  text-underline-offset: 3px; text-decoration-color: var(--pohst-ink-4);
  transition: text-decoration-color .18s ease;
}
.link-underline-pohst:hover { text-decoration-color: var(--pohst-ink); color: var(--pohst-ink); }
.section--dark .link-underline-pohst { color:#fff; text-decoration-color: rgba(255,255,255,.5); }
.section--dark .link-underline-pohst:hover { text-decoration-color:#fff; color:#fff; }

/* Hairline separators between sections when both are white */
.section-hairline { border-top: 1px solid var(--pohst-border); }

/* Muted trust line */
.trust-line { color: var(--pohst-ink-3); font-size: .875rem; }

/* Subtle grid backdrop for hero depth (not flat) */
.hero-grid-bg {
  background-image:
    radial-gradient(60% 60% at 50% 0%, rgba(0,0,0,.035), transparent 70%),
    linear-gradient(var(--pohst-bg), var(--pohst-bg));
}

/* Accessibility: visible focus ring on keyboard nav */
a:focus-visible, .btn:focus-visible, .form-control:focus-visible, .form-check-input:focus-visible {
  outline: 2px solid var(--pohst-ink); outline-offset: 2px;
}

/* ==========================================================================
   11. Platform tiles (monochrome brand glyphs)
   ========================================================================== */
.platform-grid { --bs-gutter-x: .875rem; --bs-gutter-y: .875rem; }
.platform-tile {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .6rem; text-align: center;
  height: 100%; min-height: 104px; padding: 1.1rem .5rem;
  background: var(--pohst-bg);
  border: 1px solid var(--pohst-border);
  border-radius: 1rem;
  box-shadow: var(--pohst-shadow-xs);
  transition: transform .2s var(--pohst-ease), box-shadow .2s var(--pohst-ease), border-color .2s var(--pohst-ease);
}
.platform-tile:hover { transform: translateY(-3px); box-shadow: var(--pohst-shadow-md); border-color: var(--pohst-border-2); }
.platform-tile__icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 12px;
  background: var(--pohst-bg-warm);
  color: var(--pohst-ink);
  transition: background-color .2s var(--pohst-ease), color .2s var(--pohst-ease);
}
.platform-tile:hover .platform-tile__icon { background: var(--pohst-ink); color: #fff; }
.platform-tile__mono { font-weight: 700; font-size: 1.05rem; letter-spacing: -0.02em; }
.platform-tile__label { font-size: .8125rem; font-weight: 500; color: var(--pohst-ink-2); letter-spacing: -0.01em; }

/* Dark-section variant */
.section--dark .platform-tile { background: rgba(255,255,255,.035); border-color: rgba(255,255,255,.1); box-shadow:none; }
.section--dark .platform-tile__icon { background: rgba(255,255,255,.08); color:#fff; }
.section--dark .platform-tile:hover .platform-tile__icon { background:#fff; color: var(--pohst-ink); }
.section--dark .platform-tile__label { color: rgba(255,255,255,.72); }

/* ==========================================================================
   12. Numbered process steps
   ========================================================================== */
.step-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--pohst-ink); color: #fff;
  font-weight: 600; font-size: 1.05rem; letter-spacing: -0.02em;
}
.step-arrow { color: var(--pohst-ink-4); }

/* ==========================================================================
   13. Stat pill (product cards, pricing spec grid)
   ========================================================================== */
.stat-cell { text-align: center; padding: .75rem .5rem; background: var(--pohst-bg-warm); border-radius: .75rem; }
.stat-cell__num { font-weight: 600; font-size: 1.15rem; letter-spacing: -0.03em; color: var(--pohst-ink); line-height: 1; }
.stat-cell__label { font-size: .72rem; color: var(--pohst-ink-3); letter-spacing: .01em; margin-top: .25rem; }

/* ==========================================================================
   13b. Feature-category masonry (pricing "All features. Every plan." section)
   Auto-balancing columns so 3 or 5 categories of unequal length pack tightly —
   no orphan rows, no wasted vertical space. Each card is iconed + counted.
   ========================================================================== */
/* Explicit flex columns (NOT CSS multi-column) — WebKit/Safari re-balances a
   `columns` layout on any child :hover, which makes cards jitter. Flexbox columns
   never reflow on hover, so the lift stays smooth. Cards are distributed into
   .feature-cols__col groups in the markup for a masonry-like pack. */
.feature-cols { display: flex; gap: 1.5rem; align-items: flex-start; }
.feature-cols__col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 1.5rem; }
@media (max-width: 991.98px) { .feature-cols { flex-wrap: wrap; } .feature-cols__col { flex: 1 1 calc(50% - .75rem); } }
@media (max-width: 575.98px)  { .feature-cols__col { flex: 1 1 100%; } }
.feature-cat { margin: 0; }
.feature-cat .card-body { padding: 1.5rem; }
.feature-cat.card-hover:hover { box-shadow: var(--pohst-shadow-lg); }
.feature-cat__head { display: flex; align-items: center; gap: .8rem; margin-bottom: 1.1rem; padding-bottom: 1.1rem; border-bottom: 1px solid var(--pohst-border); }
.feature-cat__icon {
  flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 11px; background: var(--pohst-bg-warm); color: var(--pohst-ink);
  transition: background-color .24s var(--pohst-ease), color .24s var(--pohst-ease);
}
.feature-cat.card-hover:hover .feature-cat__icon { background: var(--pohst-ink); color: #fff; }
.feature-cat__title { font-size: 1.0625rem; font-weight: 600; letter-spacing: -0.015em; color: var(--pohst-ink); line-height: 1.1; }
.feature-cat__count { display: block; font-size: .78rem; font-weight: 500; color: var(--pohst-ink-3); margin-top: .15rem; }

/* ==========================================================================
   14. Pricing card
   ========================================================================== */
.price-card { display: flex; flex-direction: column; height: 100%; }
.price-card.is-featured {
  border-color: var(--pohst-ink);
  box-shadow: var(--pohst-shadow-lg);
}
.price-card .price-amount { font-size: 3rem; font-weight: 600; letter-spacing: -0.04em; line-height: 1; color: var(--pohst-ink); }
.price-card .price-currency { font-size: 1.25rem; font-weight: 600; vertical-align: super; }
.price-card .price-period { font-size: .9rem; color: var(--pohst-ink-3); font-weight: 500; }
.price-badge-top {
  position: absolute; top: -.75rem; left: 50%; transform: translateX(-50%);
  background: var(--pohst-ink); color: #fff; font-size: .7rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase; padding: .3rem .8rem; border-radius: 999px; white-space: nowrap;
}

/* ==========================================================================
   15. Hero mockup (dimensional browser card)
   ========================================================================== */
.mockup {
  background: var(--pohst-bg);
  border: 1px solid var(--pohst-border);
  border-radius: 1.25rem;
  box-shadow: var(--pohst-shadow-xl);
  overflow: hidden;
}
.mockup__bar { display: flex; align-items: center; gap: .4rem; padding: .85rem 1rem; border-bottom: 1px solid var(--pohst-border); background: var(--pohst-bg-warm); }
.mockup__dot { width: 11px; height: 11px; border-radius: 50%; background: var(--pohst-border-2); }
.cal-cell { position:relative; aspect-ratio: 1; border-radius: .5rem; padding:.35rem .45rem; font-size:.72rem; font-weight:600; color: var(--pohst-ink-3); background: var(--pohst-bg); border:1px solid var(--pohst-border); }
.cal-cell.is-weekend { background: var(--pohst-bg-warm); color: var(--pohst-ink-4); }
/* Scheduled day — light, with a whisper of the logo purple */
.cal-cell.is-post { background: var(--pohst-accent-soft); border-color: var(--pohst-accent-line); color: var(--pohst-ink); }
.cal-cell.is-post .cal-dots i { background: var(--pohst-accent); }
/* Single focal "campaign" day — the one bold, branded moment */
.cal-cell.is-accent { background: var(--pohst-accent-grad); border-color: transparent; color:#fff; box-shadow: 0 8px 20px rgba(124,58,237,.26); }
.cal-cell.is-accent .cal-dots i { background: rgba(255,255,255,.92); }
.cal-dots { position:absolute; left:.45rem; bottom:.42rem; display:flex; gap:3px; }
.cal-dots i { width:4px; height:4px; border-radius:50%; background: var(--pohst-accent); display:block; }
.cal-dow { font-size:.66rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color: var(--pohst-ink-4); text-align:center; }
.queue-row { display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.7rem .85rem; border:1px solid var(--pohst-border); border-radius:.7rem; background: var(--pohst-bg); }
.queue-bar { width:3px; align-self:stretch; border-radius:3px; background: var(--pohst-accent-grad); }

/* ==========================================================================
   16. Help / contact topic cards
   ========================================================================== */
.topic-icon {
  display:inline-flex; align-items:center; justify-content:center;
  width:48px; height:48px; border-radius:12px; background: var(--pohst-bg-warm); color: var(--pohst-ink);
}
.card-hover:hover .topic-icon { background: var(--pohst-ink); color:#fff; transition: background-color .24s var(--pohst-ease), color .24s var(--pohst-ease); }

/* Feature grid tiles keep left-aligned icon */
.feature-icon {
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:12px; background: var(--pohst-bg-warm); color: var(--pohst-ink); margin-bottom: 1rem;
}
.card-hover:hover .feature-icon { background: var(--pohst-ink); color:#fff; transition: background-color .24s var(--pohst-ease), color .24s var(--pohst-ease); }

/* Product card accent line */
.product-card { position: relative; overflow: hidden; }
.spec-list li { padding: .3rem 0; color: var(--pohst-ink-2); font-size: .95rem; }

.icon-box {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #7c3aed;
  background: rgba(124,58,237,.08);
}
.cmp-popular {
    position: relative;
}

.cmp-pop-tag {
    position: absolute;
    bottom: 45px;
    left: 50%;
    transform: translateX(-50%);
    background: #000;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    padding: 4px 8px;
    border-radius: 999px;
    white-space: nowrap;
    z-index: 5;
}
.cmp-planrow th {
    height: 64px;
    vertical-align: middle;
}
.cmp-planrow {
    overflow: visible;
}

table {
    overflow: visible;
    border-collapse: separate; /* overflow:visible doesn't work with border-collapse:collapse */
}
.cmp-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    position: relative;
}

/* Fade hint on right edge */
.cmp-wrap::after {
    content: '';
    position: absolute;
    top: 0; right: 0;
    width: 40px; height: 100%;
    background: linear-gradient(to right, transparent, white);
    pointer-events: none;
}

/* Sticky feature column */
.cmp-table .cmp-feat {
    position: sticky;
    left: 0;
    background: white;
    z-index: 2;
}