/* DARK MODE */
body.dark-mode {
  background-color: var(--bg-dark);
  color: var(--light);
}

body.dark-mode {
  --primary: #0e4bc4;
  --bs-primary: #0e4bc4;
  --bs-primary-rgb: 14, 75, 196;
  --secondary: #871a2d;
  --light: #eae6f2;
  --dark: #08000d;
  --bg-dark: #000000;
  --bg-darker: #140909;
}

/* Ensure template wrapper doesn't force light background */
body.dark-mode .bg-white {
  background-color: var(--bg-dark) !important;
  background: linear-gradient(
    120deg,
    color-mix(in srgb, var(--primary) 68%, transparent),
    color-mix(in srgb, #000 68%, transparent),
    color-mix(in srgb, var(--secondary) 68%, transparent)
  );
}

/*** Bootstrap "primary" overrides (bootstrap.min.css uses hard-coded colors) ***/
body.dark-mode .text-primary,
body.dark-mode .link-primary {
  color: var(--primary) !important;
}
body.dark-mode .bg-primary {
  background-color: var(--primary) !important;
}
body.dark-mode .border-primary {
  border-color: var(--primary) !important;
}
body.dark-mode .btn-primary {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
}
body.dark-mode .btn-outline-primary {
  color: var(--primary) !important;
  border-color: var(--primary) !important;
}
body.dark-mode .btn-outline-primary:hover,
body.dark-mode .btn-outline-primary:focus {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
}

body.dark-mode h1,
body.dark-mode h2,
body.dark-mode h3,
body.dark-mode h4,
body.dark-mode .h4,
body.dark-mode h5,
body.dark-mode h6 {
  color: var(--light);
}

body.dark-mode .bg-light {
  background-color: var(--dark) !important;
}
body.dark-mode .fa-bars,
body.dark-mode p.text-primary {
  color: var(--primary) !important;
}
body.dark-mode .navbar-toggler {
  border-color: var(--primary) !important;
}
body.dark-mode .accordion-button {
  background-color: var(--dark) !important;
}
body.dark-mode.accordion-button:not(.collapsed) {
  color: var(--primary) !important;
}

body.dark-mode .faq-text {
  color: var(--light) !important;
}

/*** Forms ***/
body.dark-mode .form-control {
  color: var(--light) !important;
  background-color: var(--bg-darker) !important;
  border-color: rgba(234, 230, 242, 0.2) !important;
}

body.dark-mode .form-control::placeholder {
  color: rgba(234, 230, 242, 0.6) !important;
}

body.dark-mode .form-control:focus {
  color: var(--light) !important;
  background-color: var(--bg-darker) !important;
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 0.2rem rgba(164, 0, 252, 0.25) !important;
  outline: 0;
}

/*** Profile page ***/
body.dark-mode .profile-page .card {
  background: rgba(16, 9, 20, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  color: var(--light);
}

body.dark-mode .profile-page .card.shadow-sm {
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.6) !important;
}

body.dark-mode .profile-page .form-label {
  color: rgba(234, 230, 242, 0.92);
}

body.dark-mode .profile-page .form-text {
  color: rgba(234, 230, 242, 0.72) !important;
}

body.dark-mode .profile-page .alert {
  background: rgba(0, 0, 0, 0.28);
  border-color: rgba(255, 255, 255, 0.14);
  color: var(--light);
}

body.dark-mode .profile-page .alert-danger {
  background: rgba(220, 53, 69, 0.16);
  border-color: rgba(220, 53, 69, 0.35);
}

body.dark-mode .profile-page .alert-success {
  background: rgba(25, 135, 84, 0.16);
  border-color: rgba(25, 135, 84, 0.35);
}

body.dark-mode .profile-page #generated-password-box {
  background: rgba(14, 75, 196, 0.14);
  border-color: rgba(14, 75, 196, 0.32);
}

body.dark-mode .profile-page #passwordAdvisor {
  background: rgba(0, 0, 0, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

/*** Admin page ***/
body.dark-mode .admin-page .bg-light {
  background: rgba(16, 9, 20, 0.92) !important;
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: var(--light);
}

body.dark-mode .admin-page .nav-tabs {
  border-bottom-color: rgba(255, 255, 255, 0.14);
}

body.dark-mode .admin-page .nav-tabs .nav-link {
  color: var(--light) !important;
  background: transparent;
  border-color: transparent;
}

body.dark-mode .admin-page .nav-tabs .nav-link:hover,
body.dark-mode .admin-page .nav-tabs .nav-link:focus {
  border-color: rgba(255, 255, 255, 0.18);
  color: var(--light);
}

body.dark-mode .admin-page .nav-tabs .nav-link.active {
  background: rgba(14, 75, 196, 0.16);
  border-color: rgba(255, 255, 255, 0.18);
  color: var(--light) !important;
}

body.dark-mode .admin-page .table {
  color: rgba(234, 230, 242, 0.88);
}

body.dark-mode .admin-page .table thead th,
body.dark-mode .admin-page .table thead th a,
body.dark-mode .admin-page .table thead th button {
  color: var(--light) !important;
}

body.dark-mode .admin-page .text-primary,
body.dark-mode .admin-page .link-primary,
body.dark-mode .admin-page .text-secondary,
body.dark-mode .admin-page .link-secondary {
  color: var(--light) !important;
}

body.dark-mode .admin-page .table > :not(caption) > * > * {
  border-color: rgba(255, 255, 255, 0.1);
}

body.dark-mode .admin-page .table-striped > tbody > tr:nth-of-type(odd) > * {
  background-color: rgba(255, 255, 255, 0.03);
  color: inherit;
}

body.dark-mode .admin-page .table-striped > tbody > tr:nth-of-type(even) > * {
  background-color: rgba(0, 0, 0, 0.08);
  color: inherit;
}

body.dark-mode .admin-page .table a {
  color: var(--light);
}

body.dark-mode .admin-page .text-muted {
  color: rgba(234, 230, 242, 0.62) !important;
}

body.dark-mode .admin-page .h5,
body.dark-mode .admin-page span.h5 {
  color: var(--light) !important;
}

body.dark-mode .admin-page .btn-outline-primary {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
  color: #ffffff !important;
}

body.dark-mode .admin-page .btn-outline-primary:hover,
body.dark-mode .admin-page .btn-outline-primary:focus {
  filter: brightness(1.05);
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
  color: #ffffff !important;
}

/*** Navbar ***/
body.dark-mode .navbar-light {
  background-color: transparent !important;
}
body.dark-mode .sticky-top.navbar-light {
  background-color: #000000ac !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
body.dark-mode .navbar .dropdown-menu {
  background: rgba(16, 9, 20, 0.96);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

body.dark-mode .navbar .dropdown-item {
  color: rgba(234, 230, 242, 0.9);
}

body.dark-mode .navbar .dropdown-item:hover,
body.dark-mode .navbar .dropdown-item:focus {
  background: rgba(14, 75, 196, 0.18);
  color: var(--light);
}

body.dark-mode .navbar .dropdown-item.active,
body.dark-mode .navbar .dropdown-item:active {
  background: var(--primary);
  color: #ffffff;
}

body.dark-mode .navbar .dropdown-divider {
  border-top-color: rgba(255, 255, 255, 0.12);
}
body.dark-mode .sticky-top.navbar-light .navbar-nav .nav-link {
  color: var(--light) !important;
}
body.dark-mode .navbar-light .navbar-nav .nav-link:not(.active) {
  color: var(--light) !important;
}
body.dark-mode .navbar-light .navbar-brand h1 {
  color: var(--light);
}
body.dark-mode .navbar-light .navbar-contact,
body.dark-mode .navbar-light .navbar-contact a {
  color: var(--light) !important;
}
body.dark-mode .navbar-light .btn {
  background-color: var(--secondary);
  color: var(--dark);
}

@media (max-width: 991.98px) {
  body.dark-mode .navbar-light .navbar-collapse {
    border-top: 1px solid rgba(234, 230, 242, 0.15);
  }
  body.dark-mode .navbar-light .navbar-nav .nav-link,
  body.dark-mode .sticky-top.navbar-light .navbar-nav .nav-link {
    color: var(--light) !important;
  }
  body.dark-mode .navbar-light .navbar-contact,
  body.dark-mode .navbar-light .navbar-contact a {
    color: var(--light) !important;
  }
  body.dark-mode .navbar-light .navbar-brand img {
    content: url("../img/logo-w.webp");
    margin: 0;
  }
}
/*** Hero Header ***/
body.dark-mode .hero-header {
  color: var(--light);
}

body.dark-mode .hero-header::after {
  background: rgba(0, 0, 0, 0.5);
}

body.dark-mode .hero-card {
  background-color: rgba(0, 0, 0, 0.18);
  box-shadow:
    inset 10px 12px 24px rgba(0, 0, 0, 0.72),
    inset -10px -12px 22px rgba(255, 255, 255, 0.06);
}

/*** Service Item ***/
body.dark-mode .service-item {
  background: var(--bg-darker);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: var(--light);
}
body.dark-mode .service-item p {
  color: #bbb;
}

body.dark-mode .service body.dark-mode .service-item:hover {
  background: var(--primary);
}
body.dark-mode .service-item:hover p,
body.dark-mode .service-item:hover h5 {
  color: var(--light);
}
body.dark-mode .text-dark {
  color: var(--light) !important;
}
body.dark-mode .service-item a.btn {
  color: var(--dark);
  background: var(--secondary);
}
body.dark-mode .service-card {
  background: var(--dark);
}

/*** Portfolio ***/
body.dark-mode #portfolio-flters li {
  color: var(--light);
}
body.dark-mode #portfolio-flters li:hover,
body.dark-mode #portfolio-flters li.active {
  color: var(--secondary);
  border-color: var(--secondary);
}
body.dark-mode .portfolio-item .portfolio-overlay {
  background: rgba(50, 20, 90, 0.85);
}

/*** Sekcje z blobami ***/
body.dark-mode .fact,
body.dark-mode .newsletter {
  background-color: var(--bg-darker);
  color: var(--light);
}

/*** Kroki procesu ***/
body.dark-mode .step {
  background: var(--bg-darker);
  border: 1px solid rgba(255, 255, 255, 0.08);
}
body.dark-mode .step p {
  color: #bbb;
}

/*** Testimonial ***/
body.dark-mode .testimonial-carousel .owl-nav .owl-prev,
body.dark-mode .testimonial-carousel .owl-nav .owl-next {
  color: var(--light);
  background: var(--bg-darker);
  border: 1px solid rgba(255, 255, 255, 0.1);
}
body.dark-mode .testimonial-carousel .owl-nav .owl-prev:hover,
body.dark-mode .testimonial-carousel .owl-nav .owl-next:hover {
  background: var(--primary);
  color: var(--dark);
}

/*** Footer ***/
body.dark-mode .footer::before {
  opacity: 0.08;
}
body.dark-mode .footer-divider path {
  fill: rgba(255, 255, 255, 0.04);
}
body.dark-mode .footer-cta {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
}
body.dark-mode .footer-link {
  color: rgba(255, 255, 255, 0.92);
  border-bottom-color: rgba(255, 255, 255, 0.16);
}
body.dark-mode .footer .btn.btn-social {
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--light);
}
body.dark-mode .footer .btn.btn-link {
  color: var(--light);
}
body.dark-mode .footer .btn.btn-link:hover {
  color: var(--secondary);
}
body.dark-mode .footer .copyright {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

body.dark-mode .home-section__lead {
  color: rgba(234, 230, 242, 0.75);
}

body.dark-mode .home-section__title {
  color: var(--light);
}

body.dark-mode .home-card {
  background: rgba(16, 9, 20, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow:
    inset 10px 12px 24px rgba(0, 0, 0, 0.65),
    inset -10px -12px 22px rgba(255, 255, 255, 0.05);
}

/* Home -> Services: inner-shadow cards should be dark-blue at 0.5 opacity (dark mode) */
body.dark-mode
  .home-services
  .home-card:not([data-service="wymiana-czesci"]):not([data-service="elektronika"]):not(
    [data-service="naprawy"]
  ):not([data-service="opony"]) {
  background: rgba(6, 16, 26, 0.5);
}

body.dark-mode .home-card__header {
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

body.dark-mode .home-card__icon {
  background: rgba(14, 75, 196, 0.18);
  color: var(--light);
}

body.dark-mode .home-card__text,
body.dark-mode .home-card__subtitle,
body.dark-mode .home-list li {
  color: rgba(234, 230, 242, 0.85);
}

body.dark-mode .home-list li::before {
  background: rgba(14, 75, 196, 0.22);
  color: var(--light);
}

body.dark-mode .home-services__logo--light {
  display: none;
}

body.dark-mode .home-services__logo--dark {
  display: block;
}

/* Home -> Services: cards without inner shadow should be transparent (dark mode) */
body.dark-mode .home-services .home-card[data-service="wymiana-czesci"],
body.dark-mode .home-services .home-card[data-service="elektronika"],
body.dark-mode .home-services .home-card[data-service="naprawy"],
body.dark-mode .home-services .home-card[data-service="opony"] {
  background: transparent;
  box-shadow: none;
  border: none;
}

body.dark-mode .home-services .home-card[data-service="wymiana-czesci"]:hover,
body.dark-mode
  .home-services
  .home-card[data-service="wymiana-czesci"]:focus-within,
body.dark-mode .home-services .home-card[data-service="elektronika"]:hover,
body.dark-mode
  .home-services
  .home-card[data-service="elektronika"]:focus-within,
body.dark-mode .home-services .home-card[data-service="naprawy"]:hover,
body.dark-mode .home-services .home-card[data-service="naprawy"]:focus-within,
body.dark-mode .home-services .home-card[data-service="opony"]:hover,
body.dark-mode .home-services .home-card[data-service="opony"]:focus-within {
  box-shadow: none;
}

/*** Bitrix24 embedded form (b24) ***/
body.dark-mode .b24-form-wrapper {
  background: rgba(16, 9, 20, 0.92) !important;
  border-color: rgba(255, 255, 255, 0.12) !important;
  color: var(--light) !important;
}

body.dark-mode .b24-form-wrapper .b24-form-header {
  background: transparent !important;
  border-bottom-color: rgba(255, 255, 255, 0.12) !important;
}

body.dark-mode .b24-form-wrapper .b24-form-header-title,
body.dark-mode .b24-form-wrapper .b24-form-progress-bar-title,
body.dark-mode .b24-form-wrapper label,
body.dark-mode .b24-form-wrapper p,
body.dark-mode .b24-form-wrapper span,
body.dark-mode .b24-form-wrapper div {
  color: inherit;
}

body.dark-mode .b24-form-wrapper .b24-form-content {
  background: transparent !important;
}

body.dark-mode .b24-form-wrapper .b24-form-control,
body.dark-mode .b24-form-wrapper input,
body.dark-mode .b24-form-wrapper textarea,
body.dark-mode .b24-form-wrapper select {
  color: var(--light) !important;
  background-color: var(--bg-darker) !important;
  border-color: rgba(234, 230, 242, 0.2) !important;
}

body.dark-mode .b24-form-wrapper .b24-form-control:focus,
body.dark-mode .b24-form-wrapper input:focus,
body.dark-mode .b24-form-wrapper textarea:focus,
body.dark-mode .b24-form-wrapper select:focus {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 0.2rem rgba(14, 75, 196, 0.25) !important;
  outline: 0;
}

body.dark-mode .b24-form-wrapper .b24-form-btn {
  background: var(--secondary) !important;
  color: var(--dark) !important;
  border-color: transparent !important;
}

body.dark-mode .b24-form-wrapper .b24-form-btn:hover,
body.dark-mode .b24-form-wrapper .b24-form-btn:focus {
  filter: brightness(1.05);
}

body.dark-mode .b24-form-wrapper .b24-form-progress-track {
  stroke: rgba(234, 230, 242, 0.18) !important;
}
body.dark-mode .b24-form-wrapper .b24-form-progress-bar {
  stroke: var(--primary) !important;
}

body.dark-mode .b24-form-wrapper .b24-form-control-list-selector-item {
  background: rgba(0, 0, 0, 0.18) !important;
  border-color: rgba(255, 255, 255, 0.12) !important;
}

body.dark-mode .b24-form-wrapper .b24-form-control-list-selector-item:hover,
body.dark-mode .b24-form-wrapper .b24-form-control-list-selector-item:focus-within {
  background: rgba(14, 75, 196, 0.18) !important;
}

body.dark-mode
  .b24-form-wrapper
  .b24-form-control-list-selector-item-title
  span,
body.dark-mode
  .b24-form-wrapper
  .b24-form-control-list-selector-item-price {
  color: var(--light) !important;
}

body.dark-mode .b24-form-wrapper .b24-window-popup,
body.dark-mode .b24-form-wrapper .b24-window-popup-wrapper,
body.dark-mode .b24-form-wrapper .b24-window-popup-body,
body.dark-mode .b24-form-wrapper .b24-window-popup-head {
  background: rgba(16, 9, 20, 0.96) !important;
  color: var(--light) !important;
}

body.dark-mode .b24-form-wrapper .b24-window-popup-title,
body.dark-mode .b24-form-wrapper .b24-form-sign-abuse-popup,
body.dark-mode .b24-form-wrapper .b24-form-sign-abuse-link {
  color: var(--light) !important;
}

body.dark-mode .b24-form-wrapper .b24-window-close {
  filter: invert(1) grayscale(1);
}
