/*
 * Premium DVC theme system
 * Central colour tokens and compatibility aliases for every DVC surface.
 * Keep component-specific layout rules in their existing stylesheets.
 */
:root {
  --dvc-primary: #6D28D9;
  --dvc-deep-purple: #3B0764;
  --dvc-secondary: #E11D48;
  --dvc-magenta: #DB2777;
  --dvc-soft-purple: #A855F7;
  --dvc-bg-dark: #0D0712;
  --dvc-bg-secondary: #171020;
  --dvc-card-bg: #21152C;
  --dvc-light-bg: #FAF7FC;
  --dvc-light-surface: #FFFFFF;
  --dvc-light-accent: #F3E8FF;
  --dvc-text-light: #F9F7FC;
  --dvc-text-dark: #211524;
  --dvc-text-muted: #B8AFC2;
  --dvc-text-muted-light: #675C70;
  --dvc-border: rgba(109, 40, 217, 0.20);
  --dvc-border-strong: rgba(225, 29, 72, 0.45);
  --dvc-border-dark: rgba(168, 85, 247, 0.30);
  --dvc-primary-soft: rgba(109, 40, 217, 0.10);
  --dvc-secondary-soft: rgba(225, 29, 72, 0.10);
  --dvc-glow: rgba(168, 85, 247, 0.22);
  --dvc-gradient: linear-gradient(135deg, #6D28D9 0%, #DB2777 100%);
  --dvc-gradient-hover: linear-gradient(135deg, #5B21B6 0%, #E11D48 100%);
  --dvc-gradient-dark: linear-gradient(145deg, #0D0712 0%, #171020 54%, #21152C 100%);
  --dvc-shadow-sm: 0 8px 22px rgba(59, 7, 100, 0.10);
  --dvc-shadow: 0 18px 42px rgba(59, 7, 100, 0.16);
  --dvc-focus-ring: 0 0 0 0.24rem rgba(168, 85, 247, 0.30);
  --dvc-success: #15803D;
  --dvc-success-soft: #DCFCE7;
  --dvc-warning: #9A3412;
  --dvc-warning-soft: #FFF7ED;
  --dvc-danger: #E11D48;
  --dvc-danger-soft: #FFF1F2;

  /* Bootstrap-compatible theme values. */
  --bs-primary: #6D28D9;
  --bs-primary-rgb: 109, 40, 217;
  --bs-secondary: #675C70;
  --bs-danger: #E11D48;
  --bs-link-color: #6D28D9;
  --bs-link-hover-color: #DB2777;
  --bs-body-color: #211524;
  --bs-body-bg: #FAF7FC;
  --bs-border-color: rgba(109, 40, 217, 0.20);

  /* Existing page tokens, retained as aliases while the palette is unified. */
  --dvc-navy: var(--dvc-deep-purple);
  --dvc-navy-mid: var(--dvc-bg-secondary);
  --dvc-navy-soft: rgba(59, 7, 100, 0.58);
  --dvc-gold: var(--dvc-primary);
  --dvc-gold-deep: var(--dvc-secondary);
  --dvc-gold-glow: rgba(168, 85, 247, 0.32);
  --dvc-cream: var(--dvc-light-bg);
  --dvc-cream-soft: rgba(249, 247, 252, 0.30);
  --dvc-white: var(--dvc-text-light);
  --dvc-text-soft: rgba(249, 247, 252, 0.86);
  --dvc-text-muted: #B8AFC2;
  --dvc-wa-green: var(--dvc-primary);

  --pi-bg-deep: var(--dvc-bg-dark);
  --pi-navy: var(--dvc-bg-secondary);
  --pi-navy-mid: var(--dvc-card-bg);
  --pi-form-bg: rgba(33, 21, 44, 0.95);
  --pi-gold: var(--dvc-soft-purple);
  --pi-gold-light: var(--dvc-soft-purple);
  --pi-gold-dark: var(--dvc-primary);
  --pi-gold-border: rgba(168, 85, 247, 0.50);
  --pi-white: var(--dvc-text-light);
  --pi-muted: var(--dvc-text-muted);
  --pi-input-bg: rgba(13, 7, 18, 0.74);
  --pi-input-border: rgba(168, 85, 247, 0.38);

  --sf-bg-deep: var(--dvc-bg-dark);
  --sf-navy: var(--dvc-bg-secondary);
  --sf-form-bg: rgba(33, 21, 44, 0.95);
  --sf-gold: var(--dvc-soft-purple);
  --sf-gold-light: var(--dvc-soft-purple);
  --sf-gold-dark: var(--dvc-primary);
  --sf-gold-border: rgba(168, 85, 247, 0.50);
  --sf-white: var(--dvc-text-light);
  --sf-muted: var(--dvc-text-muted);
  --sf-input-bg: rgba(13, 7, 18, 0.74);
  --sf-input-border: rgba(168, 85, 247, 0.38);

  --si-bg-deep: var(--dvc-bg-dark);
  --si-navy: var(--dvc-bg-secondary);
  --si-navy-mid: var(--dvc-card-bg);
  --si-card-bg: rgba(33, 21, 44, 0.96);
  --si-gold: var(--dvc-soft-purple);
  --si-gold-light: var(--dvc-soft-purple);
  --si-gold-dark: var(--dvc-primary);
  --si-gold-border: rgba(168, 85, 247, 0.50);
  --si-white: var(--dvc-text-light);
  --si-muted: var(--dvc-text-muted);
  --si-input-bg: rgba(13, 7, 18, 0.74);
  --si-input-border: rgba(168, 85, 247, 0.38);

  --opt-bg-deep: var(--dvc-bg-dark);
  --opt-navy: var(--dvc-bg-secondary);
  --opt-blue: var(--dvc-card-bg);
  --opt-card-bg: rgba(33, 21, 44, 0.94);
  --opt-gold: var(--dvc-soft-purple);
  --opt-gold-light: var(--dvc-soft-purple);
  --opt-gold-border: rgba(168, 85, 247, 0.50);
  --opt-white: var(--dvc-text-light);
  --opt-muted: var(--dvc-text-muted);

  --site-bg: var(--dvc-light-bg);
}

html {
  accent-color: var(--dvc-primary);
  scroll-behavior: smooth;
}

body:not(.dvc-public-card) {
  color: var(--dvc-text-dark);
}

body:not(.pi-page):not(.si-page):not(.opt-page):not(.dvc-public-card) {
  background: var(--dvc-light-bg);
}

body.pi-page,
body.si-page,
body.opt-page {
  color: var(--dvc-text-light);
  background: var(--dvc-bg-dark);
}

body:not(.dvc-public-card) ::selection {
  color: var(--dvc-text-light);
  background: var(--dvc-primary);
}

body:not(.dvc-public-card) :focus-visible {
  outline: 3px solid rgba(168, 85, 247, 0.62);
  outline-offset: 3px;
}

body:not(.dvc-public-card) a {
  color: var(--dvc-primary);
}

body.pi-page a,
body.si-page a,
body.opt-page a,
.dvc-footer a,
.dvc-hero a {
  color: var(--dvc-text-light);
}

body:not(.dvc-public-card) a:hover {
  color: var(--dvc-magenta);
}

/* Public landing page: restrained accents on a soft light surface. */
.dvc-header {
  background: rgba(250, 247, 252, 0.94) !important;
  border-bottom-color: var(--dvc-border) !important;
  box-shadow: 0 1px 10px rgba(59, 7, 100, 0.07) !important;
}

.dvc-nav-link {
  color: var(--dvc-text-dark) !important;
}

.dvc-nav-link:hover,
.dvc-nav-link:focus-visible,
.dvc-nav-link.is-active,
.dvc-nav-menu .nav-link.active {
  color: var(--dvc-primary) !important;
  background: var(--dvc-primary-soft) !important;
}

.dvc-nav-link.is-active::after,
.dvc-nav-menu .nav-link.active::after {
  background: var(--dvc-gradient) !important;
}

.dvc-login-dropdown,
.dvc-mobile-menu {
  background: var(--dvc-gradient-dark) !important;
  border-color: var(--dvc-border-dark) !important;
  box-shadow: var(--dvc-shadow) !important;
}

.dvc-hero,
.dvc-hero::before {
  border-color: var(--dvc-border-dark);
}

.dvc-cta-primary,
.dvc-btn-signup,
.pc-btn--gold,
.sp-cta-btn,
.dvc-footer-wa-btn {
  color: var(--dvc-text-light) !important;
  background: var(--dvc-gradient) !important;
  border-color: transparent !important;
  box-shadow: 0 10px 24px rgba(109, 40, 217, 0.22);
}

.dvc-cta-primary:hover,
.dvc-btn-signup:hover,
.pc-btn--gold:hover,
.sp-cta-btn:hover,
.dvc-footer-wa-btn:hover {
  color: var(--dvc-text-light) !important;
  background: var(--dvc-gradient-hover) !important;
  box-shadow: 0 14px 28px rgba(225, 29, 72, 0.20);
}

.dvc-cta-secondary,
.dvc-btn-login {
  color: var(--dvc-primary) !important;
  background: rgba(250, 247, 252, 0.80) !important;
  border-color: rgba(109, 40, 217, 0.35) !important;
}

.dvc-cta-secondary:hover,
.dvc-btn-login:hover {
  color: var(--dvc-deep-purple) !important;
  background: #FFFFFF !important;
  border-color: var(--dvc-primary) !important;
}

.kf-section,
.pc-section,
.pf-section,
.sp-section,
#pricing {
  background: var(--dvc-light-bg) !important;
}

.kf-heading,
.pc-title,
.pf-heading,
.sp-title,
.main-title,
#pricing h2,
#contact h2 {
  color: var(--dvc-deep-purple) !important;
}

.kf-heading span,
.pc-title-gold,
.pf-heading span,
.sp-title-accent,
.main-title span {
  color: var(--dvc-primary) !important;
}

.kf-card,
.pc-card,
.pf-card,
.sp-card,
.product-type-card,
.pricing-card {
  background: var(--dvc-light-surface) !important;
  border-color: var(--dvc-border) !important;
  box-shadow: var(--dvc-shadow-sm) !important;
}

.kf-card:hover,
.pc-card:hover,
.pf-card:hover,
.sp-card:hover,
.product-type-card:hover,
.pricing-card:hover {
  border-color: var(--dvc-border-strong) !important;
  box-shadow: var(--dvc-shadow) !important;
}

.kf-card-icon,
.pf-card-icon,
.sp-icon,
.pc-icon {
  color: var(--dvc-primary) !important;
}

.dvc-preview-modal,
.dvc-preview-modal .modal-header,
.dvc-preview-modal .modal-body {
  color: var(--dvc-text-dark);
  background: var(--dvc-light-bg);
}

.dvc-preview-modal {
  border: 1px solid var(--dvc-border-strong) !important;
  box-shadow: var(--dvc-shadow) !important;
}

.dvc-footer,
body > footer.dvc-footer {
  color: var(--dvc-text-light) !important;
  background: var(--dvc-gradient-dark) !important;
}

.dvc-footer h1,
.dvc-footer h2,
.dvc-footer h3,
.dvc-footer h4,
.dvc-footer h5,
.dvc-footer h6,
.dvc-footer a,
.dvc-footer .dvc-footer-logo-text {
  color: var(--dvc-text-light) !important;
}

.dvc-footer p,
.dvc-footer .dvc-footer-copy,
.dvc-footer .dvc-footer-link {
  color: var(--dvc-text-muted) !important;
}

/* Auth, signup, and ordering flows. */
.pi-bg,
.si-bg,
.opt-bg {
  background:
    radial-gradient(ellipse 72% 58% at 52% 42%, rgba(109, 40, 217, 0.24) 0%, transparent 66%),
    radial-gradient(ellipse 50% 45% at 82% 72%, rgba(225, 29, 72, 0.12) 0%, transparent 70%),
    var(--dvc-gradient-dark) !important;
}

.pi-form-card,
.form-wrapper.pi-form-card,
.si-card,
.opt-card,
.dvc-order-contact-form .dvc-order-card,
.dvc-order-page .dvc-order-card {
  background: rgba(33, 21, 44, 0.96) !important;
  border-color: var(--dvc-border-dark) !important;
  box-shadow: 0 18px 48px rgba(13, 7, 18, 0.55), inset 0 1px 0 rgba(249, 247, 252, 0.05) !important;
}

.pi-form-title,
.si-title,
.opt-title,
.dvc-order-title,
.dvc-order-page h1,
.dvc-order-page h2,
.dvc-order-page h3 {
  color: var(--dvc-text-light) !important;
}

.pi-product-label,
.si-kicker,
.opt-kicker,
.dvc-order-kicker,
.page-indicator,
.service-badge {
  color: var(--dvc-soft-purple) !important;
}

.pi-form-card label,
.form-wrapper.pi-form-card label,
.si-card label,
.opt-card label,
.dvc-order-card label {
  color: var(--dvc-text-light) !important;
}

.pi-form-card input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.pi-form-card select,
.pi-form-card textarea,
.si-card input:not([type="checkbox"]):not([type="radio"]),
.si-card select,
.si-card textarea,
.opt-card input:not([type="checkbox"]):not([type="radio"]),
.opt-card select,
.opt-card textarea,
.dvc-order-card input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.dvc-order-card select,
.dvc-order-card textarea {
  color: var(--dvc-text-light) !important;
  background: rgba(13, 7, 18, 0.74) !important;
  border-color: rgba(168, 85, 247, 0.38) !important;
}

.pi-form-card input::placeholder,
.pi-form-card textarea::placeholder,
.si-card input::placeholder,
.si-card textarea::placeholder,
.opt-card input::placeholder,
.opt-card textarea::placeholder,
.dvc-order-card input::placeholder,
.dvc-order-card textarea::placeholder {
  color: #B8AFC2 !important;
  opacity: 0.76;
}

.pi-form-card input:focus,
.pi-form-card select:focus,
.pi-form-card textarea:focus,
.si-card input:focus,
.si-card select:focus,
.si-card textarea:focus,
.opt-card input:focus,
.opt-card select:focus,
.opt-card textarea:focus,
.dvc-order-card input:focus,
.dvc-order-card select:focus,
.dvc-order-card textarea:focus {
  border-color: var(--dvc-soft-purple) !important;
  box-shadow: var(--dvc-focus-ring) !important;
}

.submit-btn,
.si-btn-login,
.opt-btn--gold,
.opt-btn--blue,
.btn-next,
.btn-submit,
.dvc-order-btn--primary,
.dvc-select-nfc-btn {
  color: var(--dvc-text-light) !important;
  background: var(--dvc-gradient) !important;
  border-color: transparent !important;
}

.submit-btn:hover:not(:disabled),
.si-btn-login:hover:not(:disabled),
.opt-btn--gold:hover,
.opt-btn--blue:hover,
.btn-next:hover,
.btn-submit:hover,
.dvc-order-btn--primary:hover,
.dvc-select-nfc-btn:hover {
  color: var(--dvc-text-light) !important;
  background: var(--dvc-gradient-hover) !important;
}

.submit-btn:disabled,
.si-btn-login:disabled,
.btn-next:disabled,
.btn-submit:disabled,
.dvc-order-btn:disabled,
.dvc-select-nfc-btn:disabled {
  color: rgba(249, 247, 252, 0.74) !important;
  background: #5E5367 !important;
  border-color: #5E5367 !important;
  box-shadow: none !important;
  opacity: 0.72;
}

.pi-alert-error,
.si-alert-error,
.dvc-order-error,
.invalid-feedback,
.text-danger {
  color: var(--dvc-danger) !important;
}

.pi-alert-success,
.si-alert-success,
.dvc-order-success,
.valid-feedback,
.text-success {
  color: var(--dvc-success) !important;
}

/* Material Dashboard and Bootstrap administration surfaces. */
body.g-sidenav-show,
body.g-sidenav-show .main-content,
body.g-sidenav-show .bg-gray-100,
body.g-sidenav-show .bg-gray-200 {
  color: var(--dvc-text-dark) !important;
  background-color: var(--dvc-light-bg) !important;
}

body.g-sidenav-show .sidenav,
body.g-sidenav-show .bg-gradient-dark {
  background: var(--dvc-gradient-dark) !important;
}

body.g-sidenav-show .sidenav .navbar-nav .nav-link.active,
body.g-sidenav-show .sidenav .navbar-nav .nav-link:hover {
  color: var(--dvc-text-light) !important;
  background: rgba(168, 85, 247, 0.20) !important;
}

body.g-sidenav-show .card,
body.g-sidenav-show .modal-content,
body.g-sidenav-show .dropdown-menu {
  color: var(--dvc-text-dark);
  background: var(--dvc-light-surface) !important;
  border: 1px solid var(--dvc-border) !important;
  box-shadow: var(--dvc-shadow-sm) !important;
}

body.g-sidenav-show .form-control,
body.g-sidenav-show .form-select {
  color: var(--dvc-text-dark) !important;
  background-color: #FFFFFF !important;
  border-color: rgba(109, 40, 217, 0.28) !important;
}

body.g-sidenav-show .form-control:focus,
body.g-sidenav-show .form-select:focus {
  border-color: var(--dvc-primary) !important;
  box-shadow: var(--dvc-focus-ring) !important;
}

.btn-primary,
.btn.bg-gradient-primary,
.bg-gradient-primary {
  color: var(--dvc-text-light) !important;
  background: var(--dvc-gradient) !important;
  border-color: transparent !important;
}

.btn-primary:hover,
.btn.bg-gradient-primary:hover {
  color: var(--dvc-text-light) !important;
  background: var(--dvc-gradient-hover) !important;
  border-color: transparent !important;
}

.btn-outline-primary {
  color: var(--dvc-primary) !important;
  border-color: var(--dvc-primary) !important;
}

.btn-outline-primary:hover {
  color: var(--dvc-text-light) !important;
  background: var(--dvc-gradient) !important;
  border-color: transparent !important;
}

.text-primary {
  color: var(--dvc-primary) !important;
}

.border-primary {
  border-color: var(--dvc-primary) !important;
}

.badge.bg-primary,
.badge-primary {
  color: var(--dvc-text-light) !important;
  background: var(--dvc-gradient) !important;
}

.alert-success {
  color: #14532D !important;
  background: var(--dvc-success-soft) !important;
  border-color: rgba(21, 128, 61, 0.26) !important;
}

.alert-danger,
.alert-error {
  color: #9F1239 !important;
  background: var(--dvc-danger-soft) !important;
  border-color: rgba(225, 29, 72, 0.25) !important;
}

.alert-warning {
  color: #7C2D12 !important;
  background: var(--dvc-warning-soft) !important;
  border-color: rgba(154, 52, 18, 0.24) !important;
}

.spinner-border,
.spinner-grow,
.loading-spinner {
  color: var(--dvc-primary) !important;
}

@media (max-width: 991.98px) {
  .dvc-header {
    background: var(--dvc-light-bg) !important;
  }

  .dvc-nav-menu {
    border-color: var(--dvc-border-dark) !important;
  }

  .dvc-nav-menu .dvc-nav-link {
    color: var(--dvc-text-dark) !important;
    font-weight: 600;
  }

  .dvc-nav-menu .dvc-nav-link:hover,
  .dvc-nav-menu .dvc-nav-link:focus-visible {
    color: var(--dvc-primary) !important;
    background: rgba(109, 40, 217, 0.08) !important;
  }
}

/* Contact action & Social media brand colors */
.action-icons a.icon-website i, .icon-website i, i.fa-globe { color: #2563EB !important; }
.action-icons a.icon-whatsapp i, .icon-whatsapp i, i.fa-whatsapp { color: #25D366 !important; }
.action-icons a.icon-phone i, .icon-phone i, i.fa-phone { color: #10B981 !important; }
.action-icons a.icon-email i, .icon-email i, i.fa-envelope { color: #EA4335 !important; }
.action-icons a.icon-contact i, .icon-contact i, i.fa-address-card, i.fa-id-card { color: #8B5CF6 !important; }

.social-icons a.social-facebook i, .social-facebook i, .social-icons i.fa-facebook, .social-icons i.fa-facebook-f, i.fa-facebook, i.fa-facebook-f { color: #1877F2 !important; }
.social-icons a.social-instagram i, .social-instagram i, .social-icons i.fa-instagram, i.fa-instagram { color: #E4405F !important; }
.social-icons a.social-twitter i, .social-twitter i, .social-icons i.fa-twitter, .social-icons i.fa-x-twitter, i.fa-twitter, i.fa-x-twitter { color: #1DA1F2 !important; }
.social-icons a.social-linkedin i, .social-linkedin i, .social-icons i.fa-linkedin, .social-icons i.fa-linkedin-in, i.fa-linkedin, i.fa-linkedin-in { color: #0A66C2 !important; }
.social-icons a.social-youtube i, .social-youtube i, .social-icons i.fa-youtube, i.fa-youtube { color: #FF0000 !important; }
.social-icons a.social-telegram i, .social-telegram i, .social-icons i.fa-telegram, .social-icons i.fa-telegram-plane, i.fa-telegram, i.fa-telegram-plane { color: #229ED9 !important; }
.social-icons a.social-google i, .social-google i, .social-icons i.fa-google, i.fa-google { color: #EA4335 !important; }
