/*
 * Supplio v2 — Landing page styles
 * Spec: src/design_handoff_supplio_v3/README.md §4-§5 (17 sections)
 * Depends on: css/v2-tokens.css (must be loaded first)
 * Canvas width: 800px (mobile-first responsive, max-width 800)
 */

/* ============================================================
   Header / Navigation (§4)
   ============================================================ */
.v2-nav {
  border-bottom: 1px solid var(--v2-hair);
  background: var(--v2-paper);
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.v2-nav__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 14px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.v2-nav__brand {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: inherit;
}

.v2-logo-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: var(--v2-ink);
  color: var(--v2-mint-soft);
  border-radius: 7px;
  font-family: var(--v2-font-body);
  font-weight: 800;
  font-size: 15px;
  line-height: 1;
}

.v2-nav__name {
  font-family: var(--v2-font-body);
  font-weight: 800;
  font-size: 16px;
  letter-spacing: -0.02em;
  color: var(--v2-ink);
}

.v2-nav__ver {
  font-family: var(--v2-font-mono);
  font-size: 9.5px;
  color: var(--v2-mute);
  margin-left: 2px;
}

.v2-nav__menu {
  display: flex;
  align-items: center;
  gap: 22px;
}

.v2-nav__link {
  font-size: 13px;
  font-weight: 500;
  color: var(--v2-soft);
  text-decoration: none;
  transition: color var(--v2-trans-fast);
}

.v2-nav__link:hover { color: var(--v2-ink); }

.v2-lang-toggle {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 10px;
  background: transparent;
  border: 1px solid var(--v2-hair);
  border-radius: 6px;
  cursor: pointer;
  font-family: var(--v2-font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: var(--v2-soft);
  transition: border-color var(--v2-trans-fast), background var(--v2-trans-fast);
}
.v2-lang-toggle:hover { border-color: var(--v2-mint); background: var(--v2-mint-bg); }
.v2-lang-toggle__opt { color: var(--v2-mute); transition: color var(--v2-trans-fast); }
.v2-lang-toggle__opt--active { color: var(--v2-ink); font-weight: 700; }
.v2-lang-toggle__sep { color: var(--v2-hair); }

@media (max-width: 720px) {
  .v2-nav__menu { gap: 14px; }
  .v2-nav__link:not(.v2-nav__cta) { display: none; }
  .v2-nav__link[data-keep-mobile] { display: inline; }
  .v2-lang-toggle { padding: 4px 8px; font-size: 10px; }
}

/* ============================================================
   §5.1 Live counter strip
   ============================================================ */
.v2-counter {
  border-bottom: 1px solid var(--v2-hair-soft);
  background: var(--v2-paper);
}

.v2-counter__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 10px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: nowrap;
  font-size: 11px;
  overflow-x: auto;
  white-space: nowrap;
}

@media (max-width: 720px) {
  .v2-counter__inner { flex-wrap: wrap; justify-content: flex-start; gap: 12px; }
}

/* Mobile (< 600px): collapse counter strip to single line — keep LIVE indicator AND
   the '3.2M firm' stat (founder wants firm count visible), hide the middle
   'sprawdzeń · 30 dni' stat. Update 2026-05-25 v2. */
@media (max-width: 600px) {
  .v2-counter__inner {
    flex-wrap: nowrap;
    justify-content: center;
    gap: 10px;
    padding: 8px 12px;
    overflow-x: hidden;
    font-size: 10px;
  }
  /* Hide ONLY the middle 'sprawdzeń · ostatnie 30 dni' stat. Note: HTML has 3
     siblings as <span>, so :first-of-type does NOT match v2-counter__stat
     (LIVE span is first-of-type). Use nth-child(2) — the middle one. */
  .v2-counter__stat:nth-child(2) { display: none; }
  /* Shorten 'polskich firm w bazie' → 'firm' so the line fits on 320-414px viewports */
  .v2-counter__stat:nth-child(3) .v2-counter__label {
    font-size: 0;
  }
  .v2-counter__stat:nth-child(3) .v2-counter__label::before {
    content: 'firm';
    font-size: 10px;
    color: var(--v2-soft);
    margin-left: 4px;
  }
}

.v2-counter__live {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--v2-font-mono);
  font-weight: 600;
  color: var(--v2-mint);
}

.v2-counter__live::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--v2-mint);
}

.v2-counter__stat {
  font-family: var(--v2-font-mono);
}

.v2-counter__num {
  color: var(--v2-ink);
  font-weight: 700;
}

.v2-counter__label {
  color: var(--v2-soft);
  margin-left: 4px;
}

.v2-counter__link {
  font-family: var(--v2-font-mono);
  font-weight: 600;
  color: var(--v2-mint);
  text-decoration: none;
}

/* ============================================================
   §5.2 Hero
   ============================================================ */
.v2-hero {
  position: relative;
  padding: 64px 24px 56px;
  text-align: center;
  background: radial-gradient(ellipse at top, var(--v2-mint-bg) 0%, transparent 60%);
}

.v2-hero__inner {
  max-width: 1180px;
  margin: 0 auto;
}

.v2-hero__pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  background: var(--v2-mint-bg);
  color: var(--v2-mint);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  margin-bottom: 24px;
}

.v2-hero__pill::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: currentColor;
}

.v2-hero h1 {
  font-size: clamp(36px, 6vw, 54px);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.03em;
  max-width: 680px;
  margin: 0 auto 18px;
  color: var(--v2-ink);
}

.v2-hero h1 .v2-mint-text { color: var(--v2-mint); }

.v2-hero__sub {
  font-size: 17px;
  color: var(--v2-soft);
  max-width: 540px;
  margin: 0 auto 32px;
  line-height: 1.5;
}

/* NIP form card */
.v2-nip-card {
  background: var(--v2-paper);
  padding: 8px;
  border-radius: var(--v2-radius-xl);
  box-shadow: var(--v2-shadow-lift);
  border: 1px solid var(--v2-hair-soft);
  max-width: 560px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
}

.v2-nip-card__input-wrap {
  flex: 1;
  position: relative;
}

.v2-nip-card__icon {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--v2-mute);
  pointer-events: none;
}

.v2-nip-card__label {
  position: absolute;
  left: 44px;
  top: 8px;
  font-size: 10px;
  color: var(--v2-mute);
  font-weight: 600;
  letter-spacing: 0.02em;
  pointer-events: none;
}

.v2-nip-card input {
  width: 100%;
  border: none;
  background: transparent;
  padding: 22px 14px 8px 44px;
  font-family: var(--v2-font-body);
  font-size: 15px;
  font-weight: 600;
  color: var(--v2-ink);
  outline: none;
}

.v2-nip-card input::placeholder {
  color: var(--v2-mute);
  font-weight: 400;
}

/* Mobile (< 600px): floating label "NIP · 10 cyfr lub nazwa firmy" overlaps the placeholder
   text on narrow viewports and makes the input look cluttered. Hide the label, reduce input
   padding-top, and shorten the placeholder via JS attr swap. Founder feedback 2026-05-25. */
@media (max-width: 600px) {
  .v2-nip-card__label { display: none; }
  .v2-nip-card input {
    padding: 14px 14px 14px 44px;
    font-size: 16px; /* 16px+ prevents iOS auto-zoom on focus */
  }
}

.v2-hero__note {
  font-size: 11.5px;
  color: var(--v2-mute);
  margin: 14px auto 0;
  max-width: 520px;
}

/* Source pills */
.v2-hero__sources {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  max-width: 640px;
  margin: 36px auto 0;
}
@media (min-width: 540px) {
  .v2-hero__sources { grid-template-columns: repeat(6, 1fr); }
}

.v2-source-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  color: var(--v2-soft);
}

.v2-source-pill__num {
  font-family: var(--v2-font-mono);
  font-size: 10px;
  font-weight: 700;
  color: var(--v2-mint);
}

/* ============================================================
   Section base
   ============================================================ */
.v2-section {
  padding: 64px 28px;
}

.v2-section--tight  { padding: 40px 28px; }
.v2-section--bg-alt { background: var(--v2-paper-alt); }

.v2-section__inner { max-width: 1180px; margin: 0 auto; }
.v2-section__inner--wide { max-width: 1280px; }
.v2-section__inner--narrow { max-width: 800px; margin: 0 auto; }

.v2-section__caps {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-mute);
  margin-bottom: 8px;
}

.v2-section__caps--red { color: var(--v2-red); }
.v2-section__caps--mint { color: var(--v2-mint); }

.v2-section h2 {
  font-size: clamp(22px, 3.5vw, 32px);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin: 0 0 24px;
  color: var(--v2-ink);
  max-width: 720px;
}

.v2-section h2 .v2-mint-text { color: var(--v2-mint); }

.v2-section__sub {
  font-size: 14px;
  color: var(--v2-soft);
  max-width: 560px;
  margin: 0 0 32px;
  line-height: 1.55;
}

/* ============================================================
   §5.3 Decision card demo
   ============================================================ */
.v2-demo-frame {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--v2-shadow-cta);
  max-width: 720px;
  margin: 0 auto;
}

.v2-demo-titlebar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  background: var(--v2-paper-alt);
  border-bottom: 1px solid var(--v2-hair);
  font-family: var(--v2-font-mono);
  font-size: 11px;
  color: var(--v2-mute);
}

.v2-demo-dots {
  display: inline-flex;
  gap: 6px;
}

.v2-demo-dot {
  width: 11px; height: 11px; border-radius: 999px;
  background: var(--v2-hair);
}

.v2-demo-titlebar__url { flex: 1; text-align: center; }

.v2-demo-verdict-bar {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 22px;
  background: var(--v2-red-bg);
  border-bottom: 1px solid var(--v2-hair);
  color: var(--v2-red);
}

.v2-demo-verdict-bar__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px; height: 24px;
  background: var(--v2-red);
  color: var(--v2-paper);
  border-radius: 6px;
  flex-shrink: 0;
}

.v2-demo-verdict-bar__text {
  flex: 1;
  font-weight: 700;
  font-size: 14px;
}

.v2-demo-verdict-bar__text .label {
  font-family: var(--v2-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-right: 8px;
  opacity: 0.7;
}

.v2-demo-verdict-bar__score {
  font-family: var(--v2-font-mono);
  font-weight: 700;
  font-size: 12px;
}

.v2-demo-body {
  display: grid;
  grid-template-columns: 1fr 240px;
  gap: 24px;
  padding: 22px;
}

@media (max-width: 640px) {
  .v2-demo-body { grid-template-columns: 1fr; }
}

.v2-demo-company {
  font-size: 18px;
  font-weight: 800;
  color: var(--v2-ink);
  margin: 0 0 4px;
  letter-spacing: -0.01em;
}

.v2-demo-ids {
  font-family: var(--v2-font-mono);
  font-size: 11px;
  color: var(--v2-mute);
  margin-bottom: 16px;
}

.v2-demo-metrics {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.v2-demo-metric {
  background: var(--v2-paper-alt);
  border: 1px solid var(--v2-hair-soft);
  border-radius: 8px;
  padding: 10px 12px;
}

.v2-demo-metric__label {
  font-family: var(--v2-font-mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-mute);
  margin-bottom: 4px;
}

.v2-demo-metric__value {
  font-family: var(--v2-font-mono);
  font-size: 15px;
  font-weight: 700;
  color: var(--v2-ink);
}

.v2-demo-gauge {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.v2-demo-gauge__num {
  font-family: var(--v2-font-mono);
  font-size: 44px;
  font-weight: 800;
  color: var(--v2-red);
  letter-spacing: -0.02em;
  margin-top: -36px;
}

.v2-demo-gauge__of {
  font-family: var(--v2-font-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-mute);
  margin-bottom: 10px;
}

.v2-demo-tags {
  padding: 14px 22px;
  background: var(--v2-paper-alt);
  border-top: 1px solid var(--v2-hair);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.v2-demo-tags__label {
  font-family: var(--v2-font-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-mute);
  margin-right: 4px;
}

.v2-demo-tag {
  font-family: var(--v2-font-mono);
  font-size: 11px;
  padding: 3px 8px;
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 999px;
  color: var(--v2-soft);
}

/* ============================================================
   §5.4 How it works — 3 steps with mint connector
   ============================================================ */
.v2-how {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  text-align: center;
  margin-top: 32px;
}

@media (max-width: 640px) {
  .v2-how { grid-template-columns: 1fr; gap: 24px; }
  .v2-how::before { display: none; }
}

.v2-how::before {
  content: '';
  position: absolute;
  top: 29px;
  left: 16.66%;
  right: 16.66%;
  height: 1px;
  background: var(--v2-mint);
  opacity: 0.3;
  z-index: 0;
}

.v2-how__step {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.v2-how__icon {
  width: 58px;
  height: 58px;
  border-radius: 999px;
  background: var(--v2-paper);
  border: 2px solid var(--v2-mint);
  color: var(--v2-mint);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 6px var(--v2-bg), 0 0 0 7px var(--v2-mint-bg);
  margin-bottom: 16px;
}

.v2-how__num {
  font-family: var(--v2-font-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-mint);
  margin-bottom: 4px;
}

.v2-how__title {
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 8px;
  letter-spacing: -0.01em;
  color: var(--v2-ink);
}

.v2-how__desc {
  font-size: 12.5px;
  color: var(--v2-soft);
  line-height: 1.55;
  margin: 0 0 14px;
}

.v2-how__meta {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 999px;
  font-family: var(--v2-font-mono);
  font-size: 10px;
  color: var(--v2-soft);
}

/* ============================================================
   §5.5 The problem — 4 stat tiles
   ============================================================ */
.v2-problem {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 16px;
}

@media (max-width: 720px) {
  .v2-problem { grid-template-columns: repeat(2, 1fr); }
}

.v2-stat-tile {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 12px;
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.v2-stat-tile__icon {
  width: 32px; height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  flex-shrink: 0;
}

.v2-stat-tile--red .v2-stat-tile__icon { background: var(--v2-red-bg); color: var(--v2-red); }
.v2-stat-tile--amber .v2-stat-tile__icon { background: var(--v2-amber-bg); color: var(--v2-amber); }
.v2-stat-tile--mint .v2-stat-tile__icon { background: var(--v2-mint-bg); color: var(--v2-mint); }

.v2-stat-tile__num {
  font-family: var(--v2-font-mono);
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--v2-ink);
}

.v2-stat-tile--red .v2-stat-tile__num { color: var(--v2-red); }
.v2-stat-tile--amber .v2-stat-tile__num { color: var(--v2-amber); }
.v2-stat-tile--mint .v2-stat-tile__num { color: var(--v2-mint); }

.v2-stat-tile__label {
  font-size: 12px;
  color: var(--v2-soft);
  line-height: 1.4;
}

.v2-problem-source {
  margin-top: 18px;
  font-family: var(--v2-font-mono);
  font-size: 10.5px;
  color: var(--v2-mute);
  letter-spacing: 0.04em;
}

/* ============================================================
   §5.6 ROI calculator
   ============================================================ */
.v2-roi {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: start;
}

@media (max-width: 720px) {
  .v2-roi { grid-template-columns: 1fr; }
}

.v2-roi-slider {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  padding: 22px;
}

.v2-roi-slider__label {
  font-family: var(--v2-font-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-mute);
  margin-bottom: 8px;
}

.v2-roi-slider__value {
  font-family: var(--v2-font-mono);
  font-size: 38px;
  font-weight: 800;
  color: var(--v2-mint);
  letter-spacing: -0.02em;
  margin-bottom: 18px;
  line-height: 1;
}

.v2-roi-slider__value span { color: var(--v2-mute); font-size: 16px; font-weight: 600; }

.v2-roi-slider input[type="range"] {
  width: 100%;
  height: 6px;
  -webkit-appearance: none;
  appearance: none;
  background: var(--v2-bg);
  border-radius: 999px;
  outline: none;
  margin-bottom: 8px;
}

.v2-roi-slider input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 18px; height: 18px;
  background: var(--v2-paper);
  border: 3px solid var(--v2-mint);
  border-radius: 999px;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.v2-roi-slider input[type="range"]::-moz-range-thumb {
  width: 18px; height: 18px;
  background: var(--v2-paper);
  border: 3px solid var(--v2-mint);
  border-radius: 999px;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.v2-roi-slider__ticks {
  display: flex;
  justify-content: space-between;
  font-family: var(--v2-font-mono);
  font-size: 10px;
  color: var(--v2-mute);
}

.v2-roi-table {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  overflow: hidden;
}

.v2-roi-row {
  display: grid;
  grid-template-columns: 1.4fr 1fr 0.8fr;
  gap: 12px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--v2-hair-soft);
  align-items: center;
}

.v2-roi-row:last-child { border-bottom: none; }

.v2-roi-row--highlight {
  background: var(--v2-mint-bg);
}

.v2-roi-row__name {
  font-size: 13px;
  font-weight: 600;
  color: var(--v2-ink);
}

.v2-roi-row__formula {
  font-family: var(--v2-font-mono);
  font-size: 11px;
  color: var(--v2-soft);
}

.v2-roi-row__cost {
  font-family: var(--v2-font-mono);
  font-size: 14px;
  font-weight: 700;
  color: var(--v2-ink);
  text-align: right;
}

.v2-roi-row--highlight .v2-roi-row__cost { color: var(--v2-mint); }

.v2-roi-dark {
  margin-top: 16px;
  background: var(--v2-ink);
  border-radius: 14px;
  padding: 22px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.v2-roi-dark__label {
  font-family: var(--v2-font-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-mint-soft);
  margin-bottom: 4px;
  opacity: 0.8;
}

.v2-roi-dark__num {
  font-family: var(--v2-font-mono);
  font-size: 26px;
  font-weight: 800;
  color: var(--v2-mint-soft);
  letter-spacing: -0.02em;
  line-height: 1;
}

.v2-roi-footnote {
  margin-top: 12px;
  font-family: var(--v2-font-mono);
  font-size: 10.5px;
  color: var(--v2-mute);
}

/* ============================================================
   §5.7 Three modules
   ============================================================ */
.v2-modules {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 16px;
}

@media (max-width: 720px) {
  .v2-modules { grid-template-columns: 1fr; }
}

.v2-module {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  padding: 24px;
  position: relative;
}

.v2-module__num {
  position: absolute;
  top: 24px; right: 24px;
  font-family: var(--v2-font-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--v2-mute);
}

.v2-module__icon {
  width: 44px; height: 44px;
  background: var(--v2-mint-bg);
  color: var(--v2-mint);
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}

.v2-module__title {
  font-size: 16px;
  font-weight: 800;
  color: var(--v2-ink);
  margin: 0 0 8px;
  letter-spacing: -0.01em;
}

.v2-module__desc {
  font-size: 12.5px;
  color: var(--v2-soft);
  line-height: 1.55;
  margin: 0 0 14px;
}

/* ============================================================
   §5.8 Benchmark teaser
   ============================================================ */
.v2-benchmark {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  overflow: hidden;
}

.v2-benchmark__head {
  padding: 14px 22px;
  background: var(--v2-paper-alt);
  border-bottom: 1px solid var(--v2-hair-soft);
  font-family: var(--v2-font-mono);
  font-size: 11px;
  color: var(--v2-soft);
  font-weight: 600;
}

.v2-benchmark__metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}

@media (max-width: 640px) {
  .v2-benchmark__metrics { grid-template-columns: repeat(2, 1fr); }
}

.v2-benchmark__metric {
  padding: 22px 18px;
  border-right: 1px solid var(--v2-hair-soft);
}

.v2-benchmark__metric:last-child { border-right: none; }

.v2-benchmark__metric-label {
  font-family: var(--v2-font-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-mute);
  margin-bottom: 6px;
}

.v2-benchmark__metric-value {
  font-family: var(--v2-font-mono);
  font-size: 22px;
  font-weight: 800;
  color: var(--v2-ink);
  letter-spacing: -0.01em;
}

.v2-benchmark__quote {
  padding: 14px 22px;
  background: var(--v2-paper-alt);
  border-top: 1px solid var(--v2-hair-soft);
  font-size: 12px;
  font-style: italic;
  color: var(--v2-soft);
}

.v2-benchmark-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 14px;
}

.v2-benchmark-chip {
  display: inline-flex;
  align-items: center;
  padding: 7px 14px;
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 999px;
  font-family: var(--v2-font-body);
  font-size: 12px;
  font-weight: 600;
  color: var(--v2-soft);
  cursor: pointer;
  transition: all var(--v2-trans-fast);
}

.v2-benchmark-chip:hover {
  border-color: var(--v2-mint);
  color: var(--v2-mint);
}

.v2-benchmark-chip.is-active {
  background: var(--v2-mint-bg);
  border-color: var(--v2-mint);
  color: var(--v2-mint);
}

/* ============================================================
   §5.9 Case studies
   ============================================================ */
.v2-cases {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

@media (max-width: 720px) {
  .v2-cases { grid-template-columns: 1fr; }
}

.v2-case {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.v2-case__quote {
  font-size: 17px;
  font-weight: 500;
  line-height: 1.45;
  color: var(--v2-ink);
  margin: 0;
}

.v2-case__quote::before { content: '"'; color: var(--v2-mint); font-weight: 800; margin-right: 2px; }
.v2-case__quote::after  { content: '"'; color: var(--v2-mint); font-weight: 800; margin-left: 2px; }

.v2-case__foot {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--v2-hair-soft);
}

.v2-case__person {
  font-family: var(--v2-font-mono);
  font-size: 11px;
  color: var(--v2-soft);
  line-height: 1.5;
}

.v2-case__person strong { color: var(--v2-ink); display: block; font-family: var(--v2-font-body); font-size: 13px; font-weight: 700; }

.v2-case__stat {
  text-align: right;
}

.v2-case__stat-num {
  font-family: var(--v2-font-mono);
  font-size: 26px;
  font-weight: 800;
  color: var(--v2-mint);
  letter-spacing: -0.01em;
  line-height: 1;
}

.v2-case__stat-cap {
  font-family: var(--v2-font-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-mute);
  margin-top: 4px;
}

/* ============================================================
   §5.10 Compliance quiz
   ============================================================ */
.v2-quiz {
  background: var(--v2-bg);
  border-radius: 14px;
  padding: 24px;
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 24px;
  align-items: start;
}

@media (max-width: 640px) {
  .v2-quiz { grid-template-columns: 1fr; }
}

.v2-quiz__step-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 80px; height: 80px;
  background: var(--v2-mint);
  color: var(--v2-paper);
  border-radius: 14px;
  font-family: var(--v2-font-mono);
  font-size: 36px;
  font-weight: 800;
}

.v2-quiz__question {
  font-size: 18px;
  font-weight: 700;
  color: var(--v2-ink);
  margin: 0 0 28px;
}

.v2-quiz__options {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 28px;
}

.v2-quiz__option {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px 10px 14px;
  background: var(--v2-paper);
  border: 1.5px solid var(--v2-hair);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  color: var(--v2-ink);
  cursor: pointer;
  transition: all var(--v2-trans-fast);
}

/* Radio-dot before option text — makes click affordance obvious */
.v2-quiz__option::before {
  content: '';
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 999px;
  background: var(--v2-paper);
  border: 1.5px solid var(--v2-hair);
  flex-shrink: 0;
  transition: all var(--v2-trans-fast);
}

.v2-quiz__option:hover {
  border-color: var(--v2-mint);
  color: var(--v2-mint);
  background: var(--v2-mint-bg);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(13, 138, 106, 0.10);
}

.v2-quiz__option:hover::before {
  border-color: var(--v2-mint);
}

.v2-quiz__option.is-selected {
  background: var(--v2-mint-bg);
  border-color: var(--v2-mint);
  color: var(--v2-mint);
  transform: translateY(-1px);
}

.v2-quiz__option.is-selected::before {
  background: var(--v2-mint);
  border-color: var(--v2-mint);
  box-shadow: inset 0 0 0 3px var(--v2-paper);
}

/* Result screen */
.v2-quiz__result {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  padding: 24px;
  color: var(--v2-ink);
  margin-top: 24px;
}

.v2-quiz__result-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--v2-hair-soft);
  margin-bottom: 18px;
}

.v2-quiz__result-score {
  font-family: var(--v2-font-mono);
  font-size: 44px;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--v2-mint);
}

.v2-quiz__result-score--amber { color: var(--v2-amber); }
.v2-quiz__result-score--red   { color: var(--v2-red); }

.v2-quiz__result-tier {
  background: var(--v2-mint-bg);
  border: 1px solid var(--v2-mint);
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 18px;
}

.v2-quiz__result-gaps {
  margin: 0 0 18px;
  padding: 0;
  list-style: none;
}

.v2-quiz__result-gap {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--v2-hair-soft);
}

.v2-quiz__result-gap:last-child { border-bottom: none; }

.v2-quiz__result-gap-icon {
  width: 28px;
  height: 28px;
  background: var(--v2-amber-bg);
  color: var(--v2-amber);
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.v2-quiz__result-gap-title {
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 4px;
}

.v2-quiz__result-gap-cap {
  font-family: var(--v2-font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-mute);
  margin-bottom: 4px;
}

.v2-quiz__result-gap-fix {
  font-size: 12.5px;
  color: var(--v2-soft);
  line-height: 1.5;
}

.v2-quiz__result-cta {
  background: var(--v2-paper-alt);
  border: 1px solid var(--v2-hair-soft);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 14px;
}

.v2-quiz__result-cta-row {
  display: flex;
  gap: 8px;
  align-items: stretch;
  margin-top: 10px;
}

.v2-quiz__result-cta-row input {
  flex: 1;
}

.v2-quiz__progress {
  display: flex;
  gap: 4px;
  margin-bottom: 22px;
}

.v2-quiz__progress-seg {
  flex: 1;
  height: 4px;
  background: var(--v2-hair);
  border-radius: 999px;
  transition: background var(--v2-trans-fast);
}

.v2-quiz__progress-seg.is-active { background: var(--v2-mint); }

.v2-quiz__result {
  background: var(--v2-mint-bg);
  border: 1px solid var(--v2-mint);
  border-radius: 12px;
  padding: 18px;
  color: var(--v2-ink);
}

.v2-quiz__result-label {
  font-family: var(--v2-font-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-mint);
  margin-bottom: 8px;
}

.v2-quiz__result-title {
  font-size: 18px;
  font-weight: 800;
  margin-bottom: 6px;
}

/* ============================================================
   §5.11 Comparison table
   ============================================================ */
.v2-compare {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  overflow: hidden;
}

.v2-compare table {
  width: 100%;
  border-collapse: collapse;
}

.v2-compare th,
.v2-compare td {
  padding: 14px 20px;
  text-align: left;
  border-bottom: 1px solid var(--v2-hair-soft);
}

.v2-compare th {
  font-family: var(--v2-font-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-mute);
  background: var(--v2-paper-alt);
}

.v2-compare tr:last-child td { border-bottom: none; }

.v2-compare td:not(:first-child),
.v2-compare th:not(:first-child) {
  text-align: center;
  font-family: var(--v2-font-mono);
}

.v2-compare th.v2-compare__pick { color: var(--v2-mint); background: var(--v2-mint-bg); }
.v2-compare td.v2-compare__pick { background: var(--v2-mint-bg); color: var(--v2-mint); font-weight: 700; }

.v2-compare-check { color: var(--v2-mint); }
.v2-compare-x { color: var(--v2-mute); }

/* ============================================================
   §5.12 Integrations
   ============================================================ */
.v2-integrations {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 8px;
}

@media (max-width: 720px) {
  .v2-integrations { grid-template-columns: repeat(3, 1fr); }
}

.v2-integration {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 10px;
  padding: 14px 10px;
  text-align: center;
  font-size: 11px;
  font-weight: 600;
  color: var(--v2-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  position: relative;
}

.v2-integration::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: 999px;
  background: var(--v2-mint);
  flex-shrink: 0;
}

.v2-integration--amber::before { background: var(--v2-amber); }

.v2-integrations-foot {
  margin-top: 16px;
  text-align: center;
  font-family: var(--v2-font-mono);
  font-size: 11px;
  color: var(--v2-mute);
}

.v2-integrations-foot a { color: var(--v2-mint); }

/* ============================================================
   §5.13 Pricing — billing toggle + promo note
   ============================================================ */
.v2-billing-toggle {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 12px;
  margin: 0 0 12px;
}

.v2-billing-tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  background: transparent;
  border: none;
  border-radius: 8px;
  font-family: var(--v2-font-body);
  font-size: 13px;
  font-weight: 700;
  color: var(--v2-soft);
  cursor: pointer;
  transition: all var(--v2-trans-fast);
}

.v2-billing-tab:hover { color: var(--v2-ink); }

.v2-billing-tab.is-active {
  background: var(--v2-ink);
  color: var(--v2-paper);
}

.v2-billing-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  background: var(--v2-mint);
  color: var(--v2-paper);
  border-radius: 999px;
  font-family: var(--v2-font-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.v2-billing-tab:not(.is-active) .v2-billing-badge {
  background: var(--v2-mint-bg);
  color: var(--v2-mint);
}

/* p.v2-promo-note specificity (0,1,1) ties with `.v2 p { margin: 0 }`
   reset; source-order makes this rule win → 24px gap below promo before
   pricing cards (founder catch: blocks merged with 0 gap). */
p.v2-promo-note,
.v2 .v2-promo-note {
  margin: 0 0 24px;
  padding: 12px 16px;
  background: var(--v2-mint-bg);
  border: 1px dashed var(--v2-mint);
  border-radius: 10px;
  font-size: 13px;
  color: var(--v2-ink);
}

.v2-promo-note code {
  font-family: var(--v2-font-mono);
  font-weight: 700;
  background: var(--v2-paper);
  padding: 2px 6px;
  border-radius: 4px;
  color: var(--v2-mint);
}

.v2-plan__discount {
  margin: -4px 0 8px;
  padding: 8px 10px;
  background: var(--v2-mint-bg);
  border-radius: 8px;
  font-size: 11.5px;
  color: var(--v2-ink);
  line-height: 1.4;
}

.v2-plan__discount code {
  font-family: var(--v2-font-mono);
  font-weight: 700;
  color: var(--v2-mint);
}

.v2-pricing {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

@media (max-width: 980px) {
  .v2-pricing { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 540px) {
  .v2-pricing { grid-template-columns: 1fr; }
}

.v2-plan {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: relative;
}

.v2-plan--featured {
  border: 2px solid var(--v2-mint);
  box-shadow: var(--v2-shadow-lift);
}

.v2-plan--featured::before {
  content: '★ RECOMMENDED';
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--v2-mint);
  color: var(--v2-paper);
  font-family: var(--v2-font-mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  padding: 4px 10px;
  border-radius: 999px;
}

.v2-plan__caps {
  font-family: var(--v2-font-body);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.01em;
  text-transform: none;
  color: var(--v2-ink);
}

.v2-plan--featured .v2-plan__caps { color: var(--v2-mint); }

/* Quiz-driven recommendation — overrides .v2-plan--featured if both present.
   When user completed compliance quiz, this card gets a stronger highlight
   + a personalized badge above default "★ RECOMMENDED". */
.v2-plan--recommended {
  border: 2px solid var(--v2-mint);
  box-shadow: 0 12px 32px -10px rgba(13, 138, 106, 0.35), var(--v2-shadow-lift);
  position: relative;
  z-index: 2;
  background: linear-gradient(180deg, var(--v2-mint-bg) 0%, var(--v2-paper) 22%);
}
.v2-plan--recommended::before {
  display: none; /* hide default "★ RECOMMENDED" — quiz badge replaces it */
}
.v2-plan__quiz-badge {
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--v2-ink);
  color: var(--v2-paper);
  font-family: var(--v2-font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 6px 14px;
  border-radius: 999px;
  white-space: nowrap;
  box-shadow: 0 6px 16px -6px rgba(15, 23, 42, 0.45);
}
.v2-plan__quiz-badge-pct {
  color: var(--v2-mint);
  font-weight: 800;
}
.v2-plan__quiz-note {
  font-size: 12px;
  color: var(--v2-soft);
  background: var(--v2-mint-bg);
  border-left: 3px solid var(--v2-mint);
  padding: 8px 12px;
  border-radius: 0 6px 6px 0;
  margin: 6px 0 14px;
  line-height: 1.5;
}
.v2-plan__quiz-note em { font-style: normal; font-weight: 700; color: var(--v2-mint); font-family: var(--v2-font-mono); font-size: 10px; letter-spacing: 0.08em; display: inline-block; margin-right: 4px; text-transform: uppercase; }
.v2-plan__quiz-note strong { color: var(--v2-ink); font-weight: 700; }

.v2-plan__price {
  font-family: var(--v2-font-mono);
  font-size: 36px;
  font-weight: 800;
  color: var(--v2-ink);
  letter-spacing: -0.02em;
  line-height: 1;
}

/* Inner price-period suffix (/ mies., / rok) — ONLY the deepest span, not the
   data-price-monthly/annual wrapper which inherits parent's font size + ink color */
.v2-plan__price > span > span {
  font-size: 14px;
  font-weight: 500;
  color: var(--v2-mute);
  letter-spacing: 0;
  margin-left: 4px;
}

.v2-plan__desc {
  font-size: 12.5px;
  color: var(--v2-soft);
  line-height: 1.5;
}

.v2-plan__features {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.v2-plan__features li {
  font-size: 12px;
  color: var(--v2-ink);
  display: flex;
  align-items: flex-start;
  gap: 8px;
  line-height: 1.45;
}

.v2-plan__features li::before {
  content: '✓';
  color: var(--v2-mint);
  font-weight: 800;
  flex-shrink: 0;
}

/* ============================================================
   §5.14 FAQ accordion
   ============================================================ */
.v2-faq__item {
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 8px;
}

.v2-faq__q {
  padding: 16px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  color: var(--v2-ink);
  letter-spacing: -0.01em;
  user-select: none;
}

.v2-faq__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px; height: 26px;
  border: 1px solid var(--v2-hair);
  border-radius: 6px;
  color: var(--v2-soft);
  font-size: 14px;
  font-weight: 700;
  flex-shrink: 0;
}

.v2-faq__item.is-open .v2-faq__toggle { background: var(--v2-mint); color: var(--v2-paper); border-color: var(--v2-mint); }

.v2-faq__a {
  display: none;
  padding: 0 20px 18px;
  font-size: 13px;
  color: var(--v2-soft);
  line-height: 1.6;
}

.v2-faq__item.is-open .v2-faq__a { display: block; }

/* ============================================================
   §5.15 Blog teasers
   ============================================================ */
.v2-blog-teasers {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 16px;
  margin-top: 32px;
}

@media (max-width: 900px) {
  .v2-blog-teasers { grid-template-columns: 1fr; }
}

.v2-blog-teaser {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 22px;
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 14px;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.v2-blog-teaser:hover {
  border-color: var(--v2-mint);
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(13, 138, 106, 0.08);
}

.v2-blog-teaser__num {
  font-family: var(--v2-font-mono);
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--v2-hair);
  line-height: 1;
  flex-shrink: 0;
  transition: color 0.18s ease;
}

.v2-blog-teaser:hover .v2-blog-teaser__num { color: var(--v2-mint); }

.v2-blog-teaser__body { flex: 1; min-width: 0; }

.v2-blog-teaser__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.v2-blog-teaser__tag {
  font-family: var(--v2-font-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 3px 8px;
  background: var(--v2-mint-bg);
  color: var(--v2-mint);
  border-radius: 999px;
}

.v2-blog-teaser__min {
  font-family: var(--v2-font-mono);
  font-size: 10.5px;
  font-weight: 600;
  color: var(--v2-mute);
  letter-spacing: 0.04em;
}

.v2-blog-teaser__title {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.015em;
  color: var(--v2-ink);
  margin: 0 0 8px;
}

.v2-blog-teaser__excerpt {
  font-size: 13px;
  line-height: 1.55;
  color: var(--v2-mute);
  margin: 0;
}

.v2-blog-teaser__arrow {
  font-family: var(--v2-font-mono);
  font-size: 16px;
  font-weight: 700;
  color: var(--v2-mute);
  flex-shrink: 0;
  transition: transform 0.18s ease, color 0.18s ease;
  margin-top: 2px;
}

.v2-blog-teaser:hover .v2-blog-teaser__arrow {
  transform: translateX(4px);
  color: var(--v2-mint);
}

.v2-blog-teasers__more {
  text-align: center;
  margin: 24px 0 0;
}

.v2-blog-teasers__more-link {
  font-family: var(--v2-font-mono);
  font-size: 12px;
  font-weight: 700;
  color: var(--v2-mint);
  letter-spacing: 0.04em;
  text-decoration: none;
  text-transform: uppercase;
}

.v2-blog-teasers__more-link:hover { text-decoration: underline; }

/* ============================================================
   Blog index page (blog-v2.html) — full article list
   ============================================================ */
.v2-blog-list {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--v2-hair);
  margin-top: 16px;
}

.v2-blog-item {
  display: flex;
  align-items: flex-start;
  gap: 22px;
  padding: 28px 0;
  border-bottom: 1px solid var(--v2-hair);
  text-decoration: none;
  color: inherit;
  transition: background 0.18s ease, padding 0.18s ease, margin 0.18s ease, border-radius 0.18s ease;
}

a.v2-blog-item:hover {
  background: var(--v2-mint-bg);
  margin: 0 -16px;
  padding: 28px 16px;
  border-radius: 12px;
  border-bottom-color: transparent;
}

.v2-blog-item__num {
  font-family: var(--v2-font-mono);
  font-size: 42px;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: var(--v2-hair);
  line-height: 1;
  min-width: 58px;
  flex-shrink: 0;
  transition: color 0.18s ease;
}

a.v2-blog-item:hover .v2-blog-item__num { color: var(--v2-mint); }

.v2-blog-item__num--emoji {
  font-family: var(--v2-font-body);
  font-size: 26px;
  line-height: 1.2;
  font-weight: 400;
}

.v2-blog-item__body { flex: 1; min-width: 0; }

.v2-blog-item__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
  font-family: var(--v2-font-mono);
  font-size: 10.5px;
  color: var(--v2-mute);
  letter-spacing: 0.04em;
}

.v2-blog-item__tag {
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 3px 8px;
  background: var(--v2-mint-bg);
  color: var(--v2-mint);
  border-radius: 999px;
  font-size: 9.5px;
}

.v2-blog-item__tag--changelog {
  background: rgba(148, 163, 184, 0.14);
  color: var(--v2-mute);
}

.v2-blog-item__date,
.v2-blog-item__min { font-weight: 600; }

.v2-blog-item__title {
  font-size: 19px;
  font-weight: 700;
  line-height: 1.32;
  letter-spacing: -0.015em;
  color: var(--v2-ink);
  margin: 0 0 6px;
}

.v2-blog-item__excerpt {
  font-size: 14px;
  line-height: 1.6;
  color: var(--v2-mute);
  margin: 0;
}

.v2-blog-item__arrow {
  font-family: var(--v2-font-mono);
  font-size: 18px;
  font-weight: 700;
  color: var(--v2-mute);
  flex-shrink: 0;
  margin-top: 8px;
  transition: transform 0.18s ease, color 0.18s ease;
}

a.v2-blog-item:hover .v2-blog-item__arrow {
  transform: translateX(4px);
  color: var(--v2-mint);
}

.v2-blog-item--changelog { opacity: 0.92; }

@media (max-width: 640px) {
  .v2-blog-item { flex-direction: column; gap: 10px; padding: 22px 0; }
  a.v2-blog-item:hover { margin: 0 -12px; padding: 22px 12px; }
  .v2-blog-item__num { font-size: 28px; min-width: auto; }
  .v2-blog-item__arrow { display: none; }
}

/* Active state for navbar link on blog pages */
.v2-nav__link--active {
  color: var(--v2-mint) !important;
  font-weight: 700;
}

/* ============================================================
   Article (blog-v2/<entry>.html) — long-form reading layout
   ============================================================ */
.v2-article {
  max-width: 720px;
  margin: 0 auto;
  padding: 96px 24px 80px;
}

.v2-article__breadcrumb {
  font-family: var(--v2-font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--v2-mute);
  margin-bottom: 18px;
  text-transform: uppercase;
}

.v2-article__breadcrumb a {
  color: var(--v2-mute);
  text-decoration: none;
}

.v2-article__breadcrumb a:hover { color: var(--v2-mint); }

.v2-article h1 {
  font-size: clamp(28px, 4.5vw, 44px);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.025em;
  color: var(--v2-ink);
  margin: 0 0 18px;
}

.v2-article__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
  font-family: var(--v2-font-mono);
  font-size: 12px;
  color: var(--v2-mute);
  letter-spacing: 0.04em;
  padding-bottom: 24px;
  margin-bottom: 32px;
  border-bottom: 1px solid var(--v2-hair);
}

.v2-article__meta .v2-blog-item__tag { padding: 4px 10px; }

.v2-article h2 {
  font-size: 22px;
  font-weight: 700;
  color: var(--v2-ink);
  letter-spacing: -0.015em;
  margin: 44px 0 14px;
  line-height: 1.3;
}

.v2-article h3 {
  font-size: 17px;
  font-weight: 700;
  color: var(--v2-ink);
  margin: 28px 0 10px;
  line-height: 1.35;
}

.v2-article p {
  font-size: 16px;
  line-height: 1.75;
  color: var(--v2-ink);
  margin: 0 0 16px;
}

.v2-article ul,
.v2-article ol {
  margin: 0 0 18px 22px;
  color: var(--v2-ink);
  line-height: 1.7;
  font-size: 16px;
}

.v2-article li { margin-bottom: 6px; }

.v2-article strong { font-weight: 700; color: var(--v2-ink); }

.v2-article a {
  color: var(--v2-mint);
  text-decoration: none;
  border-bottom: 1px solid var(--v2-mint-bg);
}

.v2-article a:hover {
  border-bottom-color: var(--v2-mint);
}

.v2-article__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 28px 0;
  padding: 14px 26px;
  background: var(--v2-mint);
  color: var(--v2-paper) !important;
  border: 0 !important;
  border-radius: 10px;
  font-weight: 700;
  font-size: 15px;
  text-decoration: none !important;
  transition: background 0.15s, transform 0.15s;
}

.v2-article__cta:hover {
  background: var(--v2-mint-deep, #096a52);
  transform: translateY(-1px);
}

.v2-article__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 56px;
  padding-top: 28px;
  border-top: 1px solid var(--v2-hair);
  font-family: var(--v2-font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.v2-article__nav a {
  color: var(--v2-mint);
  text-decoration: none;
  border-bottom: 0;
}

.v2-article__nav a:hover { text-decoration: underline; }

.v2-article blockquote {
  margin: 24px 0;
  padding: 18px 22px;
  background: var(--v2-paper-soft, var(--v2-mint-bg));
  border-left: 3px solid var(--v2-mint);
  border-radius: 6px;
  font-style: italic;
  color: var(--v2-ink);
}

/* Inline code in article body — subtle paper-bg pill so URLs / paths don't
   blend into surrounding prose. Fixes founder catch where two adjacent
   <code> blocks separated only by " zamiast " visually glued together. */
.v2-article code {
  display: inline-block;
  padding: 1px 7px;
  background: var(--v2-paper);
  border: 1px solid var(--v2-hair);
  border-radius: 4px;
  font-family: var(--v2-font-mono);
  font-size: 0.9em;
  color: var(--v2-ink);
  word-break: break-all;
  vertical-align: baseline;
  margin: 0 1px;
}

.v2-article table {
  width: 100%;
  border-collapse: collapse;
  margin: 24px 0;
  font-size: 14px;
}

.v2-article table th,
.v2-article table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--v2-hair);
  text-align: left;
}

.v2-article table th {
  font-family: var(--v2-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--v2-mute);
  background: var(--v2-mint-bg);
}

/* ============================================================
   §5.16 Dark CTA footer
   ============================================================ */
.v2-cta-dark {
  background: var(--v2-ink);
  background: radial-gradient(ellipse at top right, rgba(13, 138, 106, 0.18) 0%, var(--v2-ink) 50%);
  color: var(--v2-paper);
  padding: 56px 32px;
  text-align: center;
  border-radius: 18px;
}

.v2-cta-dark h2 {
  font-size: clamp(28px, 4.5vw, 44px);
  font-weight: 800;
  margin: 0 0 24px;
  letter-spacing: -0.025em;
  color: var(--v2-paper);
  line-height: 1.1;
}

.v2-cta-dark h2 .v2-mint-text { color: var(--v2-mint-soft); }

/* ============================================================
   §5.17 Mini footer
   ============================================================ */
.v2-mini-footer {
  padding: 22px 24px 40px;
  text-align: center;
  font-family: var(--v2-font-mono);
  font-size: 11px;
  color: var(--v2-mute);
  letter-spacing: 0.04em;
}

.v2-mini-footer a { color: var(--v2-mute); text-decoration: none; }
.v2-mini-footer a:hover { color: var(--v2-mint); }

/* ============================================================
   Utility — error states for NIP form
   ============================================================ */
.v2-nip-error {
  margin-top: 12px;
  padding: 10px 14px;
  background: var(--v2-red-bg);
  border: 1px solid var(--v2-red);
  border-radius: 8px;
  font-size: 12.5px;
  color: var(--v2-red);
  text-align: left;
  display: none;
}

.v2-nip-error.is-visible { display: block; }
