/* Existing V4 tokens across the explicitly included customer journey.
   Framework grids, payment widgets, validation and Bauer remain independent. */
html.uv-v4-journey { color-scheme: light; }
html.uv-v4-journey body {
  margin: 0; padding-top: 0; padding-bottom: 0; display: block; height: auto; min-height: 100vh;
  background: var(--surface-100); color: var(--ink);
  font-family: var(--font-sans); -webkit-font-smoothing: antialiased;
  --bg: var(--surface-100); --bg2: var(--surface-200); --fg: var(--ink); --fg-muted: var(--ink-muted);
  --accent: var(--action); --accent-hover: var(--action-hover); --border: var(--line);
}
html.uv-v4-journey body :focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
html.uv-v4-journey body h1, html.uv-v4-journey body h2,
html.uv-v4-journey body h3 { font-family: var(--font-sans); letter-spacing: -.02em; }
html.uv-v4-journey body p { line-height: 1.6; }
html.uv-v4-journey body img { max-width: 100%; }
html.uv-v4-journey .uv-header { z-index: 1040; }
html.uv-v4-journey .uv-header a, html.uv-v4-journey .v3-footer a { text-decoration: none; }
html.uv-v4-journey .uv-header .uv-btn--primary { color: var(--on-action); }
html.uv-v4-journey .v3-footer { clear: both; margin-top: 40px; text-align: left; }
html.uv-v4-journey .v3-footer .v3-container { max-width: 1160px; }
html.uv-v4-journey .v3-footer p { color: var(--on-inverse-muted); }
html.uv-v4-journey .btn-primary, html.uv-v4-journey .btn--primary,
html.uv-v4-journey button[type="submit"], html.uv-v4-journey input[type="submit"] {
  background-color: var(--action); background-image: none; border-color: var(--action);
  color: var(--on-action); border-radius: var(--radius-pill); min-height: var(--tap-min);
}
html.uv-v4-journey .btn-primary:hover, html.uv-v4-journey button[type="submit"]:hover {
  background-color: var(--action-hover); border-color: var(--action-hover);
}
html.uv-v4-journey .form-control, html.uv-v4-journey textarea, html.uv-v4-journey select { border-radius: 10px; color: var(--ink); }
html.uv-v4-journey .card, html.uv-v4-journey .panel, html.uv-v4-journey .modal-content {
  border-color: var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-card);
}
html.uv-v4-journey .bg-dark { background-color: var(--brand-navy) !important; }
html.uv-v4-journey .bg-primary, html.uv-v4-journey .panel-primary>.panel-heading { background-color: var(--brand-navy); border-color: var(--brand-navy); color: #fff; }
html.uv-v4-journey .banner-tramite, html.uv-v4-journey .banner-footer,
html.uv-v4-journey .bg-gris { background-color: var(--surface-100); background-image: none; color: var(--ink); }
html.uv-v4-journey .banner-tramite, html.uv-v4-journey .checkout-activation { padding-top: 40px; }
html.uv-v4-journey .banner-footer { display: none; }
html.uv-v4-journey .blue { color: var(--ink); }
html.uv-v4-journey .theme-toggle { display: none; }
html.uv-v4-journey .v4-status { max-width: 960px; margin: 40px auto; padding: 0 20px; }
@media (max-width: 767px) {
  html.uv-v4-journey .v3-footer { margin-top: 24px; }
  html.uv-v4-journey .v4-status { margin: 24px auto; }
  html.uv-v4-journey .table-responsive { max-width: 100%; overflow-x: auto; }
}
@media (prefers-reduced-motion: reduce) {
  html.uv-v4-journey *, html.uv-v4-journey *::before, html.uv-v4-journey *::after {
    scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important;
  }
}

/* The existing public and panel components consume these inherited tokens. */
html.uv-v4-journey body {
 --primary: var(--action); --primary-dark: var(--action-hover); --primary-light: var(--action); --primary-lighter: #f2b4bf;
 --secondary: var(--brand-navy); --secondary-dark: #071832;
 --text-primary: var(--ink); --text-secondary: var(--ink-muted);
 --color-full-primary: var(--action); --color-full-secondary: var(--action-hover);
 --color-ds160-primary: var(--brand-navy); --color-ds160-secondary: #244374;
 --gradient-full: linear-gradient(135deg,#dc0326,#b8001f);
 --gradient-ds160: linear-gradient(135deg,#0a1f44,#244374);
 --bg-gray-50: var(--surface-100); --border-color: var(--line);
}
/* Explicit adapters preserve inverse-section contrast and existing form states. */
html.uv-v4-journey .v3-closing h2 { color: var(--on-inverse); }
html.uv-v4-journey .has-error .form-control,
html.uv-v4-journey .form-control.is-invalid,
html.uv-v4-journey input.has-error { border-color: var(--danger); }
html.uv-v4-journey .pricing-v4-card__badge--main,
html.uv-v4-journey .pricing-v4-card--full .pricing-v4-cta__button,
html.uv-v4-journey .pricing-v4-quantity__btn:hover { background: var(--action) !important; color: #fff; box-shadow: none; }
html.uv-v4-journey .pricing-v4-card--full .pricing-v4-cta__button:hover { background: var(--action-hover) !important; }
html.uv-v4-journey .pricing-v4-features__toggle,
html.uv-v4-journey .pricing-v4-card--full .pricing-v4-features__toggle { color: var(--action); }
html.uv-v4-journey .pricing-v4-hero { padding-top: 48px !important; }
html.uv-v4-journey .faq-hero, html.uv-v4-journey .testimonials-hero,
html.uv-v4-journey .svl-hero, html.uv-v4-journey .prt-hero,
html.uv-v4-journey .ta-hero, html.uv-v4-journey .about-hero,
html.uv-v4-journey .contact-hero { padding-top: 48px; }
html.uv-v4-journey .contact-info-icon.purple { background: var(--brand-navy); }
html.uv-v4-journey .auth-modal .modal-header { background: var(--brand-navy) !important; }
html.uv-v4-journey .auth-modal #authSubmitBtn { background: var(--action) !important; }
html.uv-v4-journey .management-header-modern,
html.uv-v4-journey .alert-dark.management-header { background: var(--brand-navy); }

/* Keyboard navigation stays visible above the sticky header and on inverse surfaces. */
html.uv-v4-journey body .v3-skip { z-index: 1050; }
html.uv-v4-journey body .v3-footer :focus-visible,
html.uv-v4-journey body .v3-closing :focus-visible,
html.uv-v4-journey body .management-header-modern :focus-visible { outline-color: #fff; }

/* Mobile payment cards use real columns rather than overlapping absolute prices. */
@media (max-width: 767px) {
 html.uv-v4-journey .payment-methods-grid-v2 .payment-card-v2 {
  display: grid !important; grid-template-columns: minmax(0, 1fr) max-content;
  column-gap: 10px; align-items: center;
 }
 html.uv-v4-journey .payment-card-v2 .card-header-v2 {
  grid-column: 1; min-width: 0; margin-right: 0 !important;
 }
 html.uv-v4-journey .payment-card-v2 .payment-title-v2 {
  max-width: 100%; white-space: normal; overflow-wrap: anywhere;
 }
 html.uv-v4-journey .payment-card-v2 .price-showcase {
  position: static !important; transform: none !important;
  grid-column: 2; grid-row: 1 / span 3; max-width: 145px;
 }
 html.uv-v4-journey .payment-card-v2 .card-badge-wrapper,
 html.uv-v4-journey .payment-card-v2 .compact-subtitle { grid-column: 1; min-width: 0; }
 html.uv-v4-journey .payment-card-v2 .collapsible-details { grid-column: 1 / -1; }
 html.uv-v4-journey body:has(#unified-payment-container) {
  padding-bottom: var(--checkout-bar-space, calc(220px + env(safe-area-inset-bottom)));
 }
 html.uv-v4-journey body:has(#unified-payment-container) .conten-fixed-wp {
  bottom: var(--checkout-bar-space, calc(220px + env(safe-area-inset-bottom))) !important;
 }
}

/* At phone widths, keep whole labels above their price instead of squeezing words. */
@media (max-width: 400px) {
 html.uv-v4-journey .payment-methods-grid-v2 .payment-card-v2 {
  grid-template-columns: minmax(0, 1fr); row-gap: 6px;
 }
 html.uv-v4-journey .payment-card-v2 .payment-title-v2 { overflow-wrap: normal; }
 html.uv-v4-journey .payment-card-v2 .price-showcase {
  grid-column: 1; grid-row: auto; max-width: 100%;
  justify-self: start; align-items: flex-start !important; text-align: left !important;
 }
 html.uv-v4-journey .payment-card-v2 .price-main { justify-content: flex-start !important; }
}
