:root {
  --m-bg: var(--drf-color-bg, #0b1220);
  --m-surface: var(--drf-color-surface, #111827);
  --m-surface-2: var(--drf-color-surface-2, #1f2937);
  --m-border: color-mix(in srgb, var(--drf-color-border, #94a3b8) 24%, transparent);
  --m-text: var(--drf-color-text, #e5e7eb);
  --m-muted: var(--drf-color-border, #94a3b8);
  --m-primary: var(--drf-color-primary, #7c3aed);
  --m-primary-2: var(--drf-color-primary-2, #a855f7);
  --m-info: #38bdf8;
  --m-success: #22c55e;
  --m-danger: #ef4444;
  --m-shadow: 0 14px 36px rgba(2, 6, 23, 0.5);
}

html, body {
  background: radial-gradient(circle at top, #111827, #060a14 65%) fixed;
  color: var(--m-text);
}

a { color: var(--drf-color-link, #7dd3fc); }
a:hover { color: var(--drf-color-link-hover, #bae6fd); }

.site-main,
.page-content,
.content-area,
#content {
  color: var(--m-text);
}

/* Только основной хедер/футер темы, без влияния на все header/footer на странице */
#site-header.site-header,
#site-footer.site-footer {
  background: rgba(10, 16, 30, 0.88);
  border-color: var(--m-border);
  backdrop-filter: blur(8px);
}

/* Единый цвет, когда футер хостится плагином */
#site-footer.site-footer.drf-host-footer {
  background: rgba(10, 16, 30, 0.88) !important;
}

/* Убираем наезд: принудительно фиксированный хедер переводим в sticky */
#site-header.site-header {
  position: sticky !important;
  top: 0;
  z-index: 1000;
}

/* prevent header/admin-bar overlap on product pages */
body.admin-bar #site-header.site-header {
  top: 32px;
}

body.single-product .site-main,
body.single-product #content,
body.single-product .content-area {
  padding-top: 24px;
}

body.single-product.woocommerce #content .page-header,
body.single-product.woocommerce .entry-header {
  position: relative;
  z-index: 1;
  margin-top: 28px;
}

body.single-product.woocommerce div.product {
  margin-top: 20px;
}

@media (max-width: 782px) {
  body.admin-bar #site-header.site-header {
    top: 46px;
  }
}

/* Generic cards/containers */
.elementor-widget-container,
.widget,
.post,
.page,
.woocommerce .woocommerce-notices-wrapper + * {
  color: var(--m-text);
}

/* Buttons */
button:not(.drf-qty-btn):not(.drf-quick-qty-btn):not(.drf-site-profile-btn):not(.drf-site-header-toggle),
input[type="submit"],
.button,
.wp-element-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  border: 1px solid rgba(255,255,255,0.12) !important;
  background: linear-gradient(135deg, var(--m-primary), var(--m-primary-2)) !important;
  color: #fff !important;
  border-radius: 12px !important;
  box-shadow: var(--m-shadow);
}

button:not(.drf-qty-btn):not(.drf-quick-qty-btn):not(.drf-site-profile-btn):not(.drf-site-header-toggle):hover,
input[type="submit"]:hover,
.button:hover,
.wp-element-button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
  transform: translateY(-1px);
  filter: brightness(1.06);
}

/* Header profile/toggle must keep neutral shell look (no purple gradient). */
.drf-site-profile-btn,
.drf-site-header-toggle {
  background: rgba(15, 23, 42, 0.72) !important;
  border: 1px solid rgba(148, 163, 184, 0.25) !important;
  box-shadow: none !important;
}

/* Inputs */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
textarea,
select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  background: #0f172a !important;
  color: var(--m-text) !important;
  border: 1px solid var(--m-border) !important;
  border-radius: 10px !important;
}

/* WooCommerce catalog cards */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  background: linear-gradient(170deg, #1f2937, #0f172a);
  border: 1px solid var(--m-border);
  border-radius: 16px;
  box-shadow: var(--m-shadow);
  padding: 14px;
  display: flex;
  flex-direction: column;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce div.product .product_title,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--m-text);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .price * {
  text-align: center;
  justify-content: center;
  width: 100%;
}

.woocommerce ul.products li.product .price {
  margin-top: auto;
}

.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product .added_to_cart {
  width: 100%;
  text-align: center;
  justify-content: center;
  display: inline-flex;
}

.woocommerce div.product .woocommerce-product-gallery,
.woocommerce div.product .summary {
  background: rgba(15, 23, 42, 0.55);
  border: 1px solid var(--m-border);
  border-radius: 16px;
  padding: 16px;
}

/* Отключение визуальных артефактов зума для карточки товара */
.woocommerce div.product div.images .woocommerce-product-gallery__image a,
.woocommerce div.product div.images img {
  cursor: default !important;
}

/* Cart & checkout surfaces */
.woocommerce table.shop_table,
.woocommerce form.checkout,
.woocommerce .cart_totals,
.woocommerce-checkout-review-order,
.woocommerce-checkout-payment,
#add_payment_method #payment,
.woocommerce-cart #payment,
.woocommerce-checkout #payment {
  background: #111827 !important;
  color: var(--m-text);
  border: 1px solid var(--m-border) !important;
  border-radius: 14px;
  box-shadow: var(--m-shadow);
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  border-color: rgba(148,163,184,.16);
  color: var(--m-text);
}

.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
  border-radius: 12px;
  border: 1px solid var(--m-border);
  background: #0f172a;
  color: var(--m-text);
}

.woocommerce .woocommerce-message { border-left: 4px solid var(--m-success); }
.woocommerce .woocommerce-info { border-left: 4px solid var(--m-info); }
.woocommerce .woocommerce-error { border-left: 4px solid var(--m-danger); }

/* Donate rewards sections harmonization */
.drf-section,
.drf-card,
.drf-case-container,
.drf-popup-card {
  box-shadow: var(--m-shadow) !important;
}

/* quantity input dark + hide native white arrows
   (не трогаем кастомный drf-qty-wrap на странице single product) */
.woocommerce .quantity:not(.drf-qty-wrap) input.qty,
body:not(.single-product) input.qty {
  background: #0f172a !important;
  color: var(--m-text) !important;
  border: 1px solid var(--m-border) !important;
  border-radius: 10px !important;
}

/* Keep plugin single-product related grid/tabs in control */
.single-product .related.products {
  width: 100% !important;
}

/* Footer legal block (SSR from plugin settings) */
.drf-site-footer-links {
  margin-top: 16px;
  border-top: 1px solid rgba(148, 163, 184, 0.2);
  padding-top: 14px;
}

.drf-site-footer-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.drf-site-footer-col p {
  margin: 0 0 10px;
  color: #dbe5f0;
  line-height: 1.55;
}

.drf-site-footer-pages {
  display: grid;
  gap: 8px;
}

.drf-site-footer-link {
  text-decoration: none;
}

.drf-site-footer-brand {
  font-weight: 700;
  letter-spacing: .2px;
}

.drf-site-footer-disclaimer,
.drf-site-footer-cookie {
  font-size: 13px;
  color: #b9c7d8;
}

.drf-site-footer-phone {
  color: #f1f5f9;
}

@media (max-width: 900px) {
  .drf-site-footer-grid {
    grid-template-columns: 1fr;
  }
}

.single-product .related.products ul.products,
.single-product .related.products ul.products li.product {
  float: none !important;
  width: auto !important;
  margin-right: 0 !important;
}

.single-product .related.products ul.products li.product:empty {
  display: none !important;
}

.single-product .woocommerce-tabs.wc-tabs-wrapper {
  background: linear-gradient(160deg, #111827, #0b1220) !important;
  border: 1px solid var(--m-border) !important;
  border-radius: 16px;
}

input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type=number] {
  -moz-appearance: textfield;
}

/* Canonical footer layout: always full-width shell + top spacing. */
body.drf-enhanced-shell #site-footer.site-footer {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  margin-top: 26px;
}