/* Derrick X – WordPress / WooCommerce additions. Uses the variables from style.css. */

/* Admin bar offset for the fixed navbar */
.admin-bar .navbar { top: 32px; }
@media (max-width: 782px) { .admin-bar .navbar { top: 46px; } }

/* Cart icon + count */
.dx-cart { position: relative; }
.dx-cart__n { position: absolute; top: -6px; right: -8px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; background: var(--gold); color: #fff; font-size: 10px; font-weight: 700; line-height: 17px; text-align: center; }

/* Product cards */
.products__media a { display: block; width: 100%; height: 100%; }
.products__name a { color: inherit; }
.products__price { font-size: 15px; font-weight: 700; margin: -6px 0 14px; color: var(--black); }
.products__price del { opacity: 0.45; font-weight: 400; margin-right: 6px; }
.products__price ins { text-decoration: none; }
.products__card .added_to_cart { display: none; }
.products__add.loading { opacity: 0.6; }
.products__add.added::after { content: " ✓"; }

/* Generic pages (cart, checkout, account, policies) */
.dx-page, .dx-woo-single { max-width: 1240px; margin: 0 auto; padding-top: 48px; }
.dx-content { line-height: 1.8; font-size: 15px; }
.dx-content h2, .dx-content h3 { font-family: var(--font-display); letter-spacing: 0.05em; margin: 28px 0 12px; }
.dx-content p { margin-bottom: 16px; }
.dx-content a:not(.button):not(.btn) { color: var(--gold); text-decoration: underline; }
.dx-post { margin-bottom: 32px; }
.dx-post h2 a:hover { color: var(--gold); }

/* WooCommerce buttons */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.wc-block-components-button:not(.is-link) {
  background: var(--black); color: #fff; border-radius: 2px; font-family: var(--font-body); font-size: 12px;
  font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; padding: 16px 32px; transition: all .25s;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover,
.wc-block-components-button:not(.is-link):hover { background: var(--gold); color: #fff; }
.woocommerce #payment #place_order, .woocommerce .checkout-button, .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { background: var(--gold) !important; color: #fff !important; }
.woocommerce #payment #place_order:hover, .woocommerce .checkout-button:hover { background: var(--gold-light) !important; }

/* Single product */
.single-product.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: start; }
.single-product.woocommerce div.product div.images, .single-product.woocommerce div.product div.summary { float: none; width: 100%; margin: 0; }
.single-product.woocommerce div.product .woocommerce-tabs, .single-product.woocommerce div.product .related, .single-product.woocommerce div.product .upsells { grid-column: 1 / -1; }
.single-product.woocommerce div.product .product_title { font-family: var(--font-display); font-size: 48px; letter-spacing: 0.04em; line-height: 1.05; margin-bottom: 12px; }
.single-product.woocommerce div.product p.price, .single-product.woocommerce div.product span.price { color: var(--black); font-size: 24px; font-weight: 700; margin-bottom: 18px; }
.single-product.woocommerce div.product .woocommerce-product-details__short-description { line-height: 1.8; margin-bottom: 24px; color: rgba(19,19,19,.75); }
.single-product.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; margin-bottom: 24px; }
.single-product.woocommerce div.product form.cart .variations { width: 100%; margin-bottom: 8px; }
.single-product.woocommerce div.product form.cart .variations select { padding: 12px 14px; border: 1px solid rgba(19,19,19,.2); min-width: 180px; }
.woocommerce .quantity .qty { padding: 14px 8px; border: 1px solid rgba(19,19,19,.2); width: 72px; text-align: center; }
.single-product.woocommerce div.product .product_meta { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: rgba(19,19,19,.55); display: grid; gap: 6px; }
.single-product.woocommerce div.product .product_meta a { color: var(--gold); }
.single-product.woocommerce div.product div.images img { width: 100%; height: auto; }
.single-product.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom-color: #fff; }
.single-product.woocommerce div.product .related > h2, .single-product.woocommerce div.product .upsells > h2 { font-family: var(--font-display); font-size: 36px; letter-spacing: .05em; margin: 40px 0 24px; text-align: center; }
.woocommerce span.onsale { background: var(--gold); border-radius: 2px; min-height: 0; min-width: 0; line-height: 1; padding: 8px 12px; font-size: 10px; letter-spacing: .15em; }

/* Cart / checkout / account forms */
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.select2-container--default .select2-selection--single { padding: 13px 14px; border: 1px solid rgba(19,19,19,.2); border-radius: 0; font-family: var(--font-body); height: auto; }
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus { border-color: var(--gold); outline: none; }
.woocommerce form .form-row label { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: rgba(19,19,19,.7); }
.woocommerce table.shop_table { border-radius: 0; border-color: rgba(19,19,19,.15); }
.woocommerce table.shop_table th { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.woocommerce-checkout h3, .woocommerce-cart .cart_totals h2, .woocommerce-account h2 { font-family: var(--font-display); font-size: 30px; letter-spacing: .05em; margin-bottom: 16px; }
.woocommerce-info, .woocommerce-message, .woocommerce-error { border-top-color: var(--gold); background: #f6f1e6; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--gold); }
.woocommerce-checkout #payment { background: #f6f6f6; border-radius: 0; }
.woocommerce-checkout #payment div.payment_box { background: #ececec; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #ececec; }
.woocommerce-pagination ul.page-numbers { border: 0; }
.woocommerce-pagination ul.page-numbers li { border: 0; margin: 0 3px; }
.woocommerce-pagination .page-numbers { border: 1px solid rgba(19,19,19,.25); }
.woocommerce-pagination .page-numbers.current { background: var(--black); color: #fff; }

@media (max-width: 860px) {
  .single-product.woocommerce div.product { grid-template-columns: 1fr; gap: 28px; }
  .single-product.woocommerce div.product .product_title { font-size: 36px; }
  .dx-page, .dx-woo-single { padding-top: 24px; }
}

/* Elementor-built header (Header Footer Elementor) */
.dx-hfe-header { position: fixed !important; top: 0; left: 0; right: 0; z-index: 999; box-shadow: 0 1px 0 rgba(0,0,0,.08); }
.admin-bar .dx-hfe-header { top: 32px; }
.dx-header-icons { display: flex; align-items: center; gap: 18px; }
.dx-hfe-header .elementor-icon-list-items { align-items: center; }
.dx-hfe-header .elementor-widget-shortcode, .dx-hfe-header .elementor-shortcode { display: flex; }
.hfe-footer a, .elementor-location-footer a { color: inherit; }
@media (max-width: 782px) { .admin-bar .dx-hfe-header { top: 46px; } }
@media (max-width: 767px) {
  .dx-hfe-header { position: relative !important; top: 0 !important; }
  body.dx-has-hfe { padding-top: 0; }
}
