/* Julia Villa's — brand details Elementor free can't express natively.
   Applied via each widget's Advanced > CSS Classes field, so every element
   stays fully editable inside Elementor. */

:root {
  --jv-accent: #6366F1;
  --jv-accent-hover: #4F46E5;
  --jv-accent-soft: #EEF0FF;
  --jv-highlight: #20970B;
  --jv-text: #0A0A0A;
  --jv-muted: #5B5B63;
  --jv-subtle: #8A8A93;
  --jv-border: #E8E8EC;
  --jv-surface: #FFFFFF;
  --jv-alt: #F4F4F2;
}

/* Accent italic inside headings: "cheap, clean and safe" */
.jv-em em {
  font-style: italic;
  color: var(--jv-accent);
  font-weight: 700;
}

/* Chips / tags */
.jv-chip .elementor-heading-title {
  display: inline-block;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 4px;
  background: var(--jv-alt);
  color: var(--jv-muted);
  line-height: 1.4;
}
.jv-chip--accent .elementor-heading-title {
  background: var(--jv-accent-soft);
  color: var(--jv-accent);
}

/* Stat blocks: big number + label */
.jv-stat .elementor-heading-title {
  font-family: "General Sans", system-ui, sans-serif;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.05;
}
.jv-stat-star { color: var(--jv-highlight); }

/* Card hover lift */
.jv-card {
  transition: transform .2s cubic-bezier(.4,0,.2,1), box-shadow .2s cubic-bezier(.4,0,.2,1);
}
.jv-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(0,0,0,0.08);
}

/* Numbered process timeline */
.jv-step { counter-increment: jv-step-counter; position: relative; }
.jv-steps { counter-reset: jv-step-counter; }
.jv-step::before {
  content: counter(jv-step-counter);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 9999px;
  background: var(--jv-accent);
  color: #fff;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 14px;
}

/* Comparison table (native Elementor markup is not available for tables) */
.jv-compare table { width: 100%; border-collapse: collapse; font-size: 15px; }
.jv-compare th, .jv-compare td {
  padding: 14px 16px;
  text-align: left;
  border-bottom: 1px solid var(--jv-border);
}
.jv-compare thead th {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--jv-subtle);
  font-weight: 600;
}
.jv-compare tbody th { font-weight: 600; color: var(--jv-text); }
.jv-compare td { color: var(--jv-muted); }
.jv-compare .col-featured { background: var(--jv-accent-soft); }
.jv-compare .yes { color: var(--jv-highlight); font-weight: 600; }
.jv-compare .no { color: var(--jv-subtle); }

/* Footer link columns */
.jv-footer-links ul { list-style: none; margin: 0; padding: 0; }
.jv-footer-links li + li { margin-top: 10px; }
.jv-footer-links a { color: var(--jv-muted); text-decoration: none; font-size: 15px; }
.jv-footer-links a:hover { color: var(--jv-accent); }

/* WPForms: match the design's field styling */
.jv-form .wpforms-field { padding: 8px 0; }
.jv-form .wpforms-field-label {
  font-family: "DM Sans", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--jv-text);
  margin-bottom: 6px;
}
.jv-form input[type=text],
.jv-form input[type=email],
.jv-form input[type=number],
.jv-form select,
.jv-form textarea {
  border: 1px solid var(--jv-border) !important;
  border-radius: 6px !important;
  background: var(--jv-surface) !important;
  font-size: 15px !important;
  padding: 11px 13px !important;
}
.jv-form input:focus,
.jv-form select:focus,
.jv-form textarea:focus {
  border-color: var(--jv-accent) !important;
  box-shadow: 0 0 0 4px rgba(99,102,241,0.14) !important;
  outline: none !important;
}
.jv-form .wpforms-submit {
  background: var(--jv-accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 6px !important;
  padding: 13px 24px !important;
  font-family: "DM Sans", system-ui, sans-serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  cursor: pointer;
}
.jv-form .wpforms-submit:hover { background: var(--jv-accent-hover) !important; }

/* Sticky header offset */
.xtb-header-sticky { position: sticky; top: 0; z-index: 99; }
