/* Buttons */
.elementor a.tvx-btn, a.tvx-btn{
  display:inline-block;padding:12px 18px;border-radius:999px;border:1px solid transparent;
  font-weight:700;letter-spacing:.2px;line-height:1.2;color:var(--tv-text);text-decoration:none;
  transition:transform .15s ease,opacity .15s ease,background .2s ease,color .2s ease,border-color .2s ease;
}
a.tvx-btn:active{transform:translateY(1px) scale(.98);}
a.tvx-btn--accent{background:var(--tv-accent);color:#000 !important;}
a.tvx-btn--accent:hover{background:color-mix(in srgb,var(--tv-accent) 92%, #000 8%);}
a.tvx-btn--ghost{background:transparent;border:1px solid var(--tv-border);color:#fff !important;}
a.tvx-btn--ghost:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.32);}
a.tvx-btn--outline{background:transparent;border:1px solid var(--tv-accent);color:var(--tv-accent) !important;}
a.tvx-btn--outline:hover{background:color-mix(in srgb,var(--tv-accent) 18%, #000 82%);color:#fff !important;}
a.tvx-btn:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--tv-accent) 40%, transparent);}

/* Cards / chips / ribbons */
.tvx-card{border:1px solid var(--tv-border);border-radius:16px;padding:18px;background:color-mix(in srgb,#000 68%, var(--tv-secondary) 32%);box-shadow:var(--tv-shadow-1);}
.tvx-card--accent{background:linear-gradient(180deg, color-mix(in srgb,var(--tv-accent) 10%, #000) 0%, color-mix(in srgb,var(--tv-primary) 28%, #000) 100%);border-color:color-mix(in srgb,var(--tv-accent) 40%, var(--tv-border));}
.tvx-card--has-ribbon{padding-top:44px;position:relative;}
.tvx-ribbon{position:absolute;top:10px;left:14px;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:800;background:color-mix(in srgb,var(--tv-accent) 22%, #000 78%);color:var(--tv-accent);border:1px solid color-mix(in srgb,var(--tv-accent) 40%, transparent);box-shadow:0 8px 18px rgba(0,0,0,.32);}
.tvx-ribbon--accent{background:color-mix(in srgb,var(--tv-accent) 36%, #000 64%);color:#000;border-color:color-mix(in srgb,var(--tv-accent) 50%, transparent);}
.tvx-badge,.tvx-chip{display:inline-block;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;color:var(--tv-accent);background:color-mix(in srgb,var(--tv-accent) 18%, #000 82%);border:1px solid color-mix(in srgb,var(--tv-accent) 40%, transparent);}

/* Checklist tiles (plain UL) */
.tv-list-check{margin:0;padding:0;display:grid;gap:10px;}
.tv-list-check li{list-style:none;position:relative;padding:10px 12px 10px 38px;border:1px solid var(--tv-border);border-radius:12px;background:color-mix(in srgb,#000 70%, var(--tv-primary) 30%);}
.tv-list-check li::before{content:"✓";position:absolute;left:12px;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:4px;display:grid;place-items:center;background:var(--tv-accent);color:#000;font-size:12px;font-weight:800;}
/* === Cards: breathing room + clean hover separation === */
.tvx-card{
  padding:20px;                /* was 18px */
  position:relative; z-index:0;
  transition: box-shadow .18s ease, transform .18s ease;
}
.tvx-card:hover{
  box-shadow: var(--tv-shadow-2);
  transform: translateY(-2px);
  z-index:1;                   /* sit above neighbors so shadows don't merge */
}

/* Inside cards: more space before CTAs, and between CTAs */
.tvx-card .tvx-cta{ margin-top:14px; gap:14px; }

/* Global CTA groups (outside cards) get a bit more gap too */
.tv-section .tvx-cta{ gap:14px; }
/* ===== v4.1 OVERRIDES — Buttons + Card breathing room ===== */

/* Ghost buttons: stronger hover contrast + keep text readable */
a.tvx-btn--ghost{
  background: transparent;
  border: 1px solid var(--tv-border);
  color: #fff !important;
}
a.tvx-btn--ghost:hover{
  background: rgba(255,255,255,.20);       /* was .12 */
  border-color: rgba(255,255,255,.50);     /* was .32 */
  color: #fff !important;
  text-shadow: 0 0 1px rgba(0,0,0,.45);
}

/* Outline hover: a touch fuller so it doesn’t vanish on gradients */
a.tvx-btn--outline:hover{
  background: color-mix(in srgb, var(--tv-accent) 22%, #000 78%);
  color: #fff !important;
}

/* Global CTA groups: more gap and reliable wrapping */
.tv-section .tvx-cta{ display:flex; flex-wrap:wrap; gap:16px; margin-top:16px; }
.tvx-card .tvx-cta{ margin-top:16px; gap:16px; }

/* Card breathing room + subtle lift on hover */
.tvx-card{
  padding:22px;                            /* was 18–20px */
  position:relative; z-index:0;
  transition: box-shadow .18s ease, transform .18s ease;
}
.tvx-card:hover{ box-shadow: var(--tv-shadow-2); transform: translateY(-2px); z-index:1; }

/* Tidy spacing between elements inside cards */
.tvx-card > * + *{ margin-top:10px; }
/* Headings scale for subheads */
.tv-h4{ font-size:clamp(16px,2.2vw,18px); line-height:1.35; margin:6px 0; font-weight:700; }
.tv-h5{ font-size:clamp(14px,2vw,16px);   line-height:1.4;  margin:4px 0; font-weight:700; color:var(--tv-muted, rgba(255,255,255,.82)); }

