/*
Theme Name: VWclub.bg Shop
Description: Тема за магазина на fanshop.vwclub.bg, в стила на новия сайт на клуба (светла и тъмна тема).
Version: 1.3.5
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: vwclub-shop
WC requires at least: 8.0
*/

/* ---------- Tokens (same values as the main site) ---------- */
:root,
[data-theme=light] {
	--bg-primary: #f2f2f2;
	--bg-secondary: #fff;
	--bg-card: #e8e8e8;
	--bg-input: #eaeaea;
	--text-primary: #1a1a1a;
	--text-secondary: #666;
	--accent: #b71c1c;
	--accent-hover: #9a1515;
	--accent-glow: #b71c1c26;
	--accent-text: #b71c1c;
	--border: #ccc;
	--border-input: #8a8a8a;
	--radius: 10px;
	--nav-bg: #ffffffd9;
	--success: #2e7d32;
	color-scheme: light;
}
[data-theme=dark] {
	--bg-primary: #0d0d0d;
	--bg-secondary: #1a1a1a;
	--bg-card: #1e1e1e;
	--bg-input: #2a2a2a;
	--text-primary: #f0f0f0;
	--text-secondary: #999;
	--accent: #b71c1c;
	--accent-hover: #d32f2f;
	--accent-glow: #b71c1c40;
	--accent-text: #ef5350;
	--border: #333;
	--border-input: #666;
	--nav-bg: #0d0d0dd9;
	--success: #66bb6a;
	color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { overflow-y: scroll; }
body {
	margin: 0;
	font-family: Inter, sans-serif;
	font-size: 16px;
	line-height: 1.6;
	background: var(--bg-primary);
	color: var(--text-primary);
	-webkit-font-smoothing: antialiased;
	transition: background .2s, color .2s;
}
a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-hover); }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4 { line-height: 1.25; font-weight: 700; color: var(--text-primary); }
.screen-reader-text { position: absolute !important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; overflow: hidden; }

.container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }

/* ---------- Header ---------- */
.site-header {
	position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
	background: var(--nav-bg);
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--border);
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
.site-header .container { display: flex; align-items: center; gap: 24px; height: 64px; }
.site-logo img { display: block; height: 28px; width: auto; }
.main-nav { flex: 1; }
.main-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 24px; align-items: center; }
.main-nav a {
	color: var(--text-primary); font-size: 14.5px; font-weight: 500; opacity: .85;
	padding: 6px 0; border-bottom: 2px solid transparent; white-space: nowrap;
}
.main-nav a:hover { opacity: 1; color: var(--text-primary); }
.main-nav .is-active a { color: var(--accent); border-bottom-color: var(--accent); opacity: 1; }
.main-nav .ext a::after { content: " \2197"; font-size: 12px; }
.header-actions { display: flex; align-items: center; gap: 10px; }
.icon-btn {
	display: inline-flex; align-items: center; justify-content: center; position: relative;
	width: 42px; height: 32px; border-radius: 8px; border: 1px solid var(--border);
	background: var(--bg-card); color: var(--text-primary); cursor: pointer; font-size: 16px; line-height: 1;
}
.icon-btn:hover { border-color: var(--accent); color: var(--text-primary); }
.icon-btn svg { width: 18px; height: 18px; }
.lang-switch { display: flex; height: 32px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg-card); overflow: hidden; }
.lang-switch a { display: flex; align-items: center; padding: 0 8px; font-size: 13px; font-weight: 600; color: var(--text-secondary); text-decoration: none; }
.lang-switch a:hover { color: var(--text-primary); }
.lang-switch a.is-current { background: var(--accent); color: #fff; }
.cart-count {
	position: absolute; top: -7px; right: -7px; min-width: 18px; height: 18px; padding: 0 5px;
	border-radius: 9px; background: var(--accent); color: #fff; font-size: 11px; font-weight: 700;
	display: flex; align-items: center; justify-content: center;
}
.cart-count:empty, .cart-count[data-count="0"] { display: none; }
.theme-toggle .when-dark, [data-theme=dark] .theme-toggle .when-light { display: none; }
[data-theme=dark] .theme-toggle .when-dark { display: inline; }
.menu-toggle { display: none; }

@media (max-width: 1100px) {
	.menu-toggle { display: inline-flex; }
	/* The header's backdrop blur makes it the containing block, so position against it. */
	.main-nav { position: absolute; top: 64px; left: 0; right: 0; height: calc(100vh - 64px); background: var(--bg-primary); display: none; padding: 16px 24px; overflow-y: auto; }
	.main-nav.open { display: block; }
	.main-nav ul { flex-direction: column; align-items: stretch; gap: 0; }
	.main-nav li { border-bottom: 1px solid var(--border); }
	.main-nav a { display: block; padding: 14px 0; font-size: 16px; border-bottom: 0; }
	.site-header .container { justify-content: space-between; }
}
@media (max-width: 480px) {
	.container { padding: 0 16px; }
	.site-logo img { height: 22px; }
}

/* ---------- Page layout ---------- */
.site-main { padding: 104px 0 64px; min-height: 70vh; }
.admin-bar .site-main { padding-top: 136px; }
.page-hero { margin-bottom: 24px; }
.page-hero h1, .woocommerce-products-header__title, .entry-title { font-size: clamp(28px, 4vw, 40px); margin: 0 0 8px; }
.page-hero p, .term-description { color: var(--text-secondary); margin: 0; }

.shop-cats { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 28px; padding: 0; list-style: none; }
.shop-cats a {
	display: inline-block; padding: 8px 18px; border-radius: 999px; border: 1px solid var(--border);
	background: var(--bg-secondary); color: var(--text-primary); font-size: 14px; font-weight: 500;
}
.shop-cats a:hover { border-color: var(--accent); color: var(--text-primary); }
.shop-cats .is-active a { background: var(--accent); border-color: var(--accent); color: #fff; }

/* ---------- Buttons & forms ---------- */
.button, button.button, input[type=submit], .wp-element-button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce #respond input#submit,
.wc-block-components-button:not(.is-link) {
	background: var(--accent) !important; color: #fff !important; border: 0 !important;
	border-radius: var(--radius) !important; padding: 12px 26px !important;
	font-family: inherit !important; font-weight: 600 !important; font-size: 15px !important; line-height: 1.3 !important;
	cursor: pointer; transition: background .15s, box-shadow .15s; text-decoration: none !important;
}
.button:hover, input[type=submit]:hover, .wp-element-button:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.wc-block-components-button:not(.is-link):hover {
	background: var(--accent-hover) !important; box-shadow: 0 0 0 4px var(--accent-glow);
}
.woocommerce .button:disabled, .woocommerce button.button:disabled[disabled] { opacity: .5; }

input[type=text], input[type=email], input[type=tel], input[type=number], input[type=password], input[type=search], textarea, select,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .select2-container .select2-selection {
	background: var(--bg-input) !important; color: var(--text-primary) !important;
	border: 1px solid var(--border-input) !important; border-radius: 8px !important; padding: 10px 12px; font: inherit;
}
input:focus, textarea:focus, select:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
.select2-dropdown { background: var(--bg-secondary); color: var(--text-primary); border-color: var(--border); }
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--text-primary); }

/* ---------- Product grid ---------- */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 24px; margin: 0; padding: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product {
	width: auto !important; margin: 0 !important; float: none !important;
	background: var(--bg-secondary); border: 1px solid var(--border); border-radius: var(--radius);
	overflow: hidden; display: flex; flex-direction: column; transition: transform .2s, border-color .2s;
}
.woocommerce ul.products li.product:hover { transform: translateY(-3px); border-color: var(--accent); }
.woocommerce ul.products li.product a img { margin: 0 !important; aspect-ratio: 1; object-fit: cover; background: var(--bg-card); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 14px 16px 4px !important; font-size: 16px !important; font-weight: 600; color: var(--text-primary);
}
.woocommerce ul.products li.product .price { padding: 0 16px; color: var(--accent) !important; font-weight: 700; font-size: 17px !important; }
.woocommerce ul.products li.product .price del { color: var(--text-secondary); font-weight: 400; }
.woocommerce ul.products li.product .button { margin: auto 16px 16px !important; text-align: center; }
.woocommerce ul.products li.product .added_to_cart { margin: -8px 16px 14px; font-size: 14px; }
.woocommerce span.onsale { background: var(--accent); border-radius: 999px; min-height: 0; min-width: 0; padding: 4px 12px; line-height: 1.4; top: 12px; right: 12px; left: auto; margin: 0; }

.woocommerce .woocommerce-result-count { color: var(--text-secondary); font-size: 14px; }
.woocommerce .woocommerce-ordering select { padding: 8px 12px; }
.woocommerce nav.woocommerce-pagination ul { border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0 3px; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
	border-radius: 8px; background: var(--bg-secondary); color: var(--text-primary); border: 1px solid var(--border); padding: 8px 14px;
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--accent); color: #fff; border-color: var(--accent); }

/* ---------- Single product ---------- */
.woocommerce div.product { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce div.product div.images img { border-radius: var(--radius); background: var(--bg-card); }
.woocommerce div.product .product_title { font-size: clamp(26px, 3vw, 34px); }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--accent); font-size: 26px; font-weight: 700; }
.woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related, .woocommerce div.product .upsells { grid-column: 1 / -1; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: var(--border); }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: var(--bg-card); border-color: var(--border); border-radius: 8px 8px 0 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--bg-secondary); border-bottom-color: var(--bg-secondary); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--text-primary); }
.woocommerce div.product form.cart .variations select { min-width: 160px; }
.woocommerce div.product form.cart div.quantity .qty { width: 72px; padding: 10px; text-align: center; }
.woocommerce div.product .stock { color: var(--success); }
.woocommerce div.product .out-of-stock { color: var(--accent); }
.product_meta { color: var(--text-secondary); font-size: 14px; }
.product_meta a { color: var(--text-primary); }
.product_meta .vwclub-manufacturer { display: block; margin-top: 6px; }
@media (max-width: 768px) { .woocommerce div.product { grid-template-columns: 1fr; gap: 24px; } }

/* ---------- Notices ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice {
	background: var(--bg-secondary) !important; color: var(--text-primary) !important;
	border: 1px solid var(--border) !important; border-left: 4px solid var(--accent) !important; border-radius: 8px;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--accent) !important; }

/* ---------- Classic cart / checkout / account ---------- */
.woocommerce table.shop_table { border-color: var(--border); border-radius: var(--radius); background: var(--bg-secondary); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color: var(--border) !important; }
#add_payment_method #payment, .woocommerce-cart #payment, .woocommerce-checkout #payment { background: var(--bg-secondary); border-radius: var(--radius); }
.woocommerce-checkout #payment div.payment_box { background: var(--bg-card); color: var(--text-primary); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--bg-card); }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; }
.woocommerce-MyAccount-navigation li a { display: block; padding: 10px 14px; border-radius: 8px; color: var(--text-primary); }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--accent); color: #fff; }

/* ---------- Block cart / checkout ---------- */
.wc-block-components-sidebar-layout, .wc-block-checkout, .wc-block-cart { color: var(--text-primary); }
.wc-block-components-text-input input, .wc-block-components-textarea, .wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select {
	background: var(--bg-input) !important; color: var(--text-primary) !important; border-color: var(--border) !important;
}
.wc-block-components-text-input label, .wc-block-components-combobox label, .wc-blocks-components-select__label { color: var(--text-secondary) !important; }
.wc-block-components-radio-control-accordion-option, .wc-block-components-radio-control__option,
.wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option,
.wc-block-components-totals-wrapper, .wc-block-components-order-summary, .wc-block-components-panel,
.wc-block-cart-items, .wc-block-cart-items td, .wc-block-cart-items th { border-color: var(--border) !important; }
.wc-block-checkout__payment-method .wc-block-components-radio-control__option-checked,
.wc-block-components-radio-control-accordion-option--checked-option-highlighted { box-shadow: inset 0 0 0 2px var(--accent) !important; }
.wc-block-components-radio-control__input:checked { border-color: var(--accent) !important; background: var(--accent) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked { background: var(--accent) !important; border-color: var(--accent) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] { background: var(--bg-input) !important; border-color: var(--border) !important; }
.wc-block-components-product-name, .wc-block-components-totals-item__label, .wc-block-components-formatted-money-amount { color: var(--text-primary); }
.wc-block-components-product-metadata, .wc-block-components-checkout-step__description { color: var(--text-secondary); }
.wc-block-components-quantity-selector { border-color: var(--border) !important; background: var(--bg-input); }
.wc-block-components-quantity-selector input, .wc-block-components-quantity-selector button { color: var(--text-primary) !important; background: transparent !important; }
.wc-block-cart__submit-container, .wc-block-components-sidebar .wc-block-components-panel { background: transparent; }
.wc-block-checkout__sidebar, .wp-block-woocommerce-checkout-order-summary-block {
	background: var(--bg-secondary); border-radius: var(--radius); border: 1px solid var(--border) !important;
}
.wc-block-components-notice-banner { background: var(--bg-secondary) !important; color: var(--text-primary) !important; border-color: var(--accent) !important; }
.wc-block-components-address-card { border-color: var(--border) !important; }
.wc-block-components-checkout-place-order-button { width: 100%; }
.wc-block-grid__product, .wc-block-components-product-image img { border-radius: var(--radius); }

/* Bank details on the thank-you page */
.woocommerce-bacs-bank-details, .wc-bacs-bank-details {
	background: var(--bg-secondary); border: 1px solid var(--border); border-left: 4px solid var(--accent);
	border-radius: var(--radius); padding: 16px 20px; margin: 24px 0;
}
.wc-bacs-bank-details { list-style: none; }
.wc-bacs-bank-details li { margin: 0 0 6px; }
.woocommerce-order-overview, .woocommerce-thankyou-order-details { color: var(--text-primary); }

/* ---------- Content pages ---------- */
.entry-content { max-width: 100%; }
.entry-content > * { max-width: 100%; }

/* ---------- Footer ---------- */
.site-footer { border-top: 1px solid var(--border); background: var(--bg-secondary); padding: 32px 0; color: var(--text-secondary); font-size: 14px; }
.site-footer .container { display: flex; flex-wrap: wrap; gap: 16px 32px; justify-content: space-between; align-items: center; }
.site-footer nav a { color: var(--text-secondary); margin-right: 18px; }
.site-footer nav a:hover { color: var(--accent); }
.footer-social { display: flex; gap: 14px; }
.footer-social a { color: var(--text-secondary); display: inline-flex; }
.footer-social a:hover { color: var(--accent); }
.footer-social svg { width: 20px; height: 20px; }
.payment-note { width: 100%; font-size: 13px; }
.woocommerce ul.products li.product .price ins, .woocommerce div.product p.price ins { text-decoration: none; }
input[type=radio], input[type=checkbox] { accent-color: var(--accent); }
.woocommerce-info::before, .woocommerce-message::before { top: 1em; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--text-primary); }
.woocommerce div.product .woocommerce-tabs ul.tabs li:not(.active) a { color: var(--text-secondary); }
.woocommerce ul.products li.product .onsale, .woocommerce div.product .onsale { top: 12px; right: 12px; left: auto; margin: 0; z-index: 2; }
.woocommerce ul.products li.product { position: relative; }
.price-tba { color: var(--text-secondary); font-weight: 500; font-size: 15px; }

/* ---------- QA fixes ---------- */
/* Red text needs a lighter shade on dark backgrounds to stay readable. */
a { color: var(--accent-text); }
a:hover { color: var(--accent-text); text-decoration: underline; }
.main-nav .is-active a { color: var(--accent-text); border-bottom-color: var(--accent); }
.woocommerce ul.products li.product .price, .woocommerce div.product p.price, .woocommerce div.product span.price,
.woocommerce div.product .out-of-stock, .woocommerce .woocommerce-error, .woocommerce form .form-row .required,
.woocommerce form .form-row.woocommerce-invalid label, .woocommerce a.remove { color: var(--accent-text) !important; }
.woocommerce a.remove:hover { background: var(--accent) !important; color: #fff !important; }
.woocommerce form .form-row.woocommerce-invalid input.input-text, .woocommerce form .form-row.woocommerce-invalid select { border-color: var(--accent-text) !important; }
.woocommerce ul.products li.product .button, .shop-cats a { text-decoration: none !important; }

/* Footer sits at the bottom on short pages. */
body { display: flex; flex-direction: column; min-height: 100vh; }
.site-main { flex: 1 0 auto; }
body.menu-open { overflow: hidden; }
.menu-toggle .icon-close, .menu-toggle[aria-expanded=true] .icon-menu { display: none; }
.menu-toggle[aria-expanded=true] .icon-close { display: block; }
html { scroll-padding-top: 88px; }

/* Dropdowns get an arrow back. */
select, .woocommerce div.product form.cart .variations select {
	-webkit-appearance: none; appearance: none; padding-right: 40px !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important; background-position: right 12px center !important; background-size: 18px !important;
}
.woocommerce div.product form.cart .variations { width: 100%; table-layout: fixed; }
.woocommerce div.product form.cart .variations th { width: 90px; vertical-align: middle; padding-right: 12px; }
.woocommerce div.product form.cart .variations td { vertical-align: middle; }
.woocommerce div.product form.cart .variations select { width: 100%; max-width: 100%; min-width: 0; }
.woocommerce div.product form.cart .reset_variations { display: inline-block; margin-top: 6px; }

/* Select2 (country/region) matches the theme. */
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--accent) !important; color: #fff !important; }
.select2-container--default .select2-selection--single .select2-selection__placeholder { color: var(--text-secondary) !important; }
.select2-container .select2-selection--single { height: 46px !important; display: flex; align-items: center; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 44px !important; }
.select2-search__field { background: var(--bg-input); color: var(--text-primary); }
/* Single shipping country shown as plain text. */
.woocommerce form .form-row .woocommerce-input-wrapper strong { display: block; font-weight: 600; padding: 10px 0; color: var(--text-primary); background: none; }

/* Notices: padding, no stray icon, no harsh focus ring. */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice, .woocommerce-notice--success {
	padding: 14px 18px !important; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 0 0 24px; list-style: none;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none !important; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; margin-left: auto; float: none !important; }
.woocommerce-message:focus, .woocommerce-info:focus, .woocommerce-error:focus, .woocommerce-notices-wrapper:focus, [tabindex="-1"]:focus { outline: none; }

/* Product cards: whole photo, buttons on one line. */
.woocommerce ul.products li.product a img { object-fit: contain !important; padding: 8px; }
.woocommerce ul.products li.product .button { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 14px !important; padding: 11px 14px !important; }
.woocommerce ul.products li.product .button.added::after { margin-left: 6px; }

/* Gallery thumbnails spacing. */
.woocommerce div.product div.images .flex-control-thumbs { display: flex; gap: 8px; margin-top: 8px; padding: 0; }
.woocommerce div.product div.images .flex-control-thumbs li { width: 72px !important; float: none !important; }
.woocommerce div.product div.images .flex-control-thumbs li img { border-radius: 6px; }
.woocommerce div.product div.images .woocommerce-product-gallery__image img { max-height: 70vh; object-fit: contain; width: 100%; }

/* Product tabs: one row, no repeated heading. */
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0 !important; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }

/* Cart thumbnails and thank-you page. */
.woocommerce-cart table.cart img { width: 64px !important; border-radius: 6px; background: #fff; }
.woocommerce ul.order_details { display: flex; flex-wrap: wrap; gap: 12px 0; padding: 0; }
.woocommerce ul.order_details li { border-right-color: var(--border); }
.woocommerce .woocommerce-customer-details .woocommerce-column { margin-bottom: 24px; }
.wc-bacs-bank-details { display: flex; flex-wrap: wrap; gap: 8px 0; padding: 12px 16px !important; }
@media (max-width: 600px) {
	.wc-bacs-bank-details li, .woocommerce ul.order_details li { border-right: 0 !important; width: 100%; }
	.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2 { width: 100%; float: none; }
}
/* Password eye icon visible in dark mode. */
[data-theme=dark] .show-password-input { filter: invert(1); }
/* Forms: labels above fields. */
.woocommerce form .form-row label, .comment-form label { display: block; margin-bottom: 4px; }
.woocommerce form.login .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 6px; margin-right: 12px; min-height: 44px; margin-bottom: 0; }
/* Phones: two products per row. */
@media (max-width: 600px) {
	.woocommerce ul.products { grid-template-columns: 1fr 1fr; gap: 12px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 14px !important; padding: 10px 10px 2px !important; }
	.woocommerce ul.products li.product .price { padding: 0 10px; font-size: 15px !important; }
	.woocommerce ul.products li.product .button { margin: auto 10px 10px !important; font-size: 12.5px !important; padding: 9px 8px !important; }
}
@media (max-width: 360px) { .header-actions { gap: 6px; } .icon-btn { width: 36px; } .lang-switch a { padding: 0 6px; } }

/* ---------- BG Couriers in the VWclub theme (append to the end of style.css; it loads after the plugin CSS) ---------- */

/* F1. Rate label: WooCommerce's `.woocommerce ul#shipping_method li label {display:inline}` beats the plugin's flex,
   so the logo sits on a line of its own above "Econt: ~4,66 €". */
.woocommerce ul#shipping_method > li > label { display: flex; align-items: center; flex-wrap: wrap; gap: 0 6px; }
/* keep "~" and the price together ("Econt: ~4,66 €"), as the cart showed it before */
.woocommerce ul#shipping_method > li > label > .woocommerce-Price-amount { order: 0; margin-left: -6px; }

/* F2. Only one courier -> WooCommerce prints input[type=hidden]; the plugin greys that label as "inactive"
   (#9aa0a6) and never gives the row its chosen-card look, while the hover colour #f4f6f9 floods the row
   (white card + white text in dark mode). */
ul#shipping_method > li:hover { background: var(--bg-card); }
ul#shipping_method > li:has(> input.shipping_method:checked),
ul#shipping_method > li:has(> input.shipping_method:checked):hover,
ul#shipping_method > li:has(> input[type=hidden].shipping_method),
ul#shipping_method > li:has(> input[type=hidden].shipping_method):hover {
	background: var(--bg-secondary); border-color: var(--border); box-shadow: none; cursor: default;
}
ul#shipping_method > li:has(> input[type=hidden].shipping_method) { padding: 7px 11px; margin: 4px 0 6px; }
ul#shipping_method > li:has(> input[type=hidden].shipping_method) > label { font-weight: 600; cursor: default; }
ul#shipping_method > li > input[type=hidden].shipping_method + label.bgc-rate-inactive,
ul#shipping_method > li > input[type=hidden].shipping_method + label.bgc-rate-inactive .woocommerce-Price-amount { color: var(--text-primary) !important; }
label.bgc-rate-inactive, label.bgc-rate-inactive .amount, label.bgc-rate-inactive .woocommerce-Price-amount { color: var(--text-secondary) !important; }
ul#shipping_method > li:has(> input.shipping_method:focus-visible) { outline-color: var(--accent); }
/* the plugin zeroes the cell padding, so the courier card's border sat on the table's own border */
tr.woocommerce-shipping-totals > td, tr.shipping > td { padding-left: 8px !important; padding-right: 8px !important; }

/* F3. "Интерактивна карта" button: `.woocommerce img {height:auto;max-width:100%}` beats `.bgc-allmap-mark`,
   so the Econt logo renders at its natural 180x180 px; the button is also white/Arial/blue in both themes. */
tr.bgc-allmap-open td { padding: 10px 12px !important; }
.bgc-allmap-btn {
	font: 600 14px/1.3 Inter, sans-serif; min-height: 42px; padding: 8px 14px;
	background: var(--bg-input); color: var(--text-primary); border: 1px solid var(--border); border-radius: 8px;
}
.bgc-allmap-btn:hover { border-color: var(--accent); color: var(--accent-text); }
.bgc-allmap-btn .bgc-allmap-mark { width: auto; height: 18px; max-width: 22px; }

/* F4. Delivery-type tabs: Arial 13.3px, white #fff boxes, WordPress-blue #2271b1 active state. */
.bgc-tab {
	font: 600 14px/1.3 Inter, sans-serif; background: var(--bg-input); color: var(--text-primary);
	border-color: var(--border); box-shadow: none;
}
.bgc-tab:hover { border-color: var(--accent); box-shadow: none; }
.bgc-tab.active { border-color: var(--accent); color: var(--accent-text); background: var(--accent-glow); box-shadow: inset 0 0 0 1px var(--accent); }
[data-theme=dark] .bgc-tab.active { background: var(--bg-secondary); } /* #ef5350 on the red tint is 4.3:1; on #1a1a1a it is 5:1 */
.bgc-tab.bgc-tab-na { background: var(--bg-card); color: var(--text-secondary); border-color: var(--border); opacity: .55; }
/* Inter is wider than Arial: keep the three tabs on one line in a phone-width column */
@container bgcfields (max-width: 360px) { .bgc-tab { font-size: 13px; padding: 10px 6px; gap: 5px; } }

/* F5. Field captions "Град / Офис / Автомат / Улица *": #555 -> 2.3:1 on the dark card. */
.bgc-field > label { color: var(--text-secondary); }

/* F6. Address inputs are 38px next to 46px select2 boxes, and inherit bold from the totals cell. */
.bgc-fields input:not([type=hidden]) { height: 46px; font-weight: 400; }

/* F7. "Карта" button: 38px next to the 46px office box; colour follows the row instead of the theme. */
.bgc-office-pick .bgc-map-btn { height: auto; min-height: 46px; align-self: stretch; color: var(--text-primary); border-color: var(--border); background: var(--bg-input); opacity: 1; font-weight: 600; }
.bgc-office-pick .bgc-map-btn:hover { border-color: var(--accent); color: var(--accent-text); background: var(--bg-input); }
.bgc-office-pick .bgc-map-btn:disabled { opacity: .45; }

/* F8. (i)/pay icon: white on #c3c8ce (1.7:1), turns WordPress-blue on hover; tooltip in system font. */
.bgc-info-tip { background: var(--text-secondary); color: var(--bg-secondary); }
.bgc-info-tip:hover, .bgc-info-tip:focus { background: var(--accent); color: #fff; }
.bgc-tipbox { font-family: Inter, sans-serif; }

/* F9. Courier logos (dark navy PNG) disappear on the dark card. */
[data-theme=dark] ul#shipping_method .bgc-ship-logo,
[data-theme=dark] .bgc-allmap-mark,
[data-theme=dark] .bgc-allmap-item img,
[data-theme=dark] .bgc-allmap-chip img { background: #fff; border-radius: 3px; padding: 1px; box-sizing: content-box; }

/* F10. Map dialog in dark mode: white #fff box + theme text #f0f0f0 = invisible title, office names, prices,
   city suggestions. */
[data-theme=dark] .bgc-allmap-box,
[data-theme=dark] .bgc-allmap-searchrow,
[data-theme=dark] .bgc-allmap-cityres,
[data-theme=dark] .bgc-allmap-switch { background: var(--bg-secondary); color: var(--text-primary); }
[data-theme=dark] .bgc-allmap-head, [data-theme=dark] .bgc-allmap-body, [data-theme=dark] .bgc-allmap-side,
[data-theme=dark] .bgc-allmap-searchrow, [data-theme=dark] .bgc-allmap-item, [data-theme=dark] .bgc-allmap-cityres { border-color: var(--border); }
[data-theme=dark] .bgc-allmap-close, [data-theme=dark] .bgc-allmap-wait, [data-theme=dark] .bgc-allmap-item .a,
[data-theme=dark] .bgc-allmap-kind, [data-theme=dark] .bgc-allmap-switch button { color: var(--text-secondary); }
[data-theme=dark] .bgc-allmap-item:hover, [data-theme=dark] .bgc-allmap-item.active, [data-theme=dark] .bgc-allmap-item.bgc-chosen { background: var(--bg-card); }
[data-theme=dark] .bgc-allmap-chip { background: var(--bg-card); border-color: var(--border); color: var(--text-secondary); }
[data-theme=dark] .bgc-allmap-chip.on { color: var(--text-primary); border-color: var(--text-secondary); }
[data-theme=dark] .bgc-allmap-busy { background: rgba(26, 26, 26, .75); }
[data-theme=dark] .bgc-map-locate { background-color: var(--bg-input) !important; border-color: var(--border) !important; }
[data-theme=dark] .bgc-allmap-near, [data-theme=dark] .bgc-allmap-dist, [data-theme=dark] .bgc-chip-d { background: var(--bg-card); border-color: var(--border); color: var(--text-primary); }
.bgc-allmap-overlay button, .bgc-allmap-chip { font-family: inherit; } /* "Карта / Списък (114)" pill and chips were Arial */
.bgc-allmap-cityopt:hover, .bgc-allmap-cityopt.is-active { background: var(--accent); color: #fff; }
.bgc-allmap-switch button.on { background: var(--accent); color: #fff; }
.bgc-allmap-item.active { border-left-color: var(--accent); }
/* "my location" button inside the town field (shown until the map loads) gets no styles from the plugin at all:
   a bare grey browser button with no icon. */
.bgc-allmap-citylocate { padding: 0; border: 1px solid var(--border); border-radius: 8px; cursor: pointer;
	background: var(--bg-secondary) no-repeat center / 16px 16px; }
/* "my location" buttons: WordPress-blue icon and focus ring -> theme red */
.bgc-map-searchrow .bgc-map-locate, .bgc-allmap-searchrow .bgc-map-locate, .bgc-allmap-citylocate {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b71c1c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 2v3M12 19v3M2 12h3M19 12h3'/%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3C/svg%3E") !important;
}
[data-theme=dark] .bgc-map-searchrow .bgc-map-locate, [data-theme=dark] .bgc-allmap-searchrow .bgc-map-locate, [data-theme=dark] .bgc-allmap-citylocate {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ef5350' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 2v3M12 19v3M2 12h3M19 12h3'/%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3C/svg%3E") !important;
}
.bgc-map-searchrow .bgc-map-locate:hover, .bgc-allmap-searchrow .bgc-map-locate:hover { border-color: var(--accent) !important; box-shadow: 0 0 0 3px var(--accent-glow); }
.bgc-allmap-side .bgc-allmap-search:focus { border-color: var(--accent) !important; }

/* F11. The theme's `input[type=text]{background:var(--bg-input)!important}` wipes the magnifier icon from the
   map's search box, leaving 32px of empty indent before "Търсене…". */
.bgc-allmap-side .bgc-allmap-searchrow .bgc-allmap-search {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important; background-position: 10px center !important; background-size: 14px 14px !important;
	border-color: var(--border) !important;
}

/* F12. Cart totals: stray ": " before the courier on phones (empty data-title), text glued to the table edge
   (plugin zeroes the cell padding), logo left / text right on phones. */
.woocommerce table.shop_table_responsive tr.woocommerce-shipping-totals td[data-title=""]::before,
.woocommerce-page table.shop_table_responsive tr.woocommerce-shipping-totals td[data-title=""]::before { content: none; display: none; }
.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals > td { text-align: left !important; }
.woocommerce-cart .cart_totals p.woocommerce-shipping-destination { margin: 6px 0 4px; padding: 0 12px; font-size: 14px; color: var(--text-secondary); }

/* F13. Phones: the plugin clamps a long office name to two lines and expects the box to grow, but the theme's
   `.select2-container .select2-selection--single{height:46px!important}` keeps it at 46px, so the text box is
   57px tall and the top of a third line ("Димитър ул. Резбарска") shows under the field. */
@container bgcfields (max-width: 360px) {
	.bgc-fields .bgc-office-row .select2-container .select2-selection--single { height: auto !important; min-height: 46px !important; padding-top: 7px; padding-bottom: 7px; }
	.bgc-fields .bgc-office-row .select2-selection__rendered { padding-top: 0 !important; padding-bottom: 0 !important; line-height: 1.3 !important; max-height: 2.6em; }
	.bgc-fields .bgc-office-row .select2-container--default .select2-selection--single .select2-selection__arrow { top: 0; bottom: 0; height: auto !important; }
}

/* F14. Thank-you delivery card: plugin paints it white with no text colour (white on white in dark mode),
   centred at 560px while the rest of the page is left-aligned. */
/* bgc-thankyou.css is printed in the footer, after this file, so these need one more level of specificity. */
body .bgc-ty-heading { text-align: left; }
body .bgc-ty-box { background: var(--bg-secondary); border-color: var(--border); color: var(--text-primary); box-shadow: none; margin-left: 0; }
body .bgc-ty-line { color: var(--text-primary); }
body .bgc-ty-qty, body .bgc-ty-note { color: var(--text-secondary); }
body .bgc-ty-row { border-bottom-color: var(--border); }
body .bgc-ty-row.bgc-ty-total { border-top-color: var(--border); }
[data-theme=dark] body .bgc-ty-logo { background: #fff; border-radius: 3px; padding: 1px; box-sizing: content-box; }

/* F15. "Delivery is not in the total" line under Общо (inc/couriers.php). */
tr.vwclub-delivery-note td { padding-top: 0 !important; font-size: 14px; line-height: 1.45; color: var(--text-secondary); text-align: left !important; }
tr.vwclub-delivery-note td::before { content: none !important; display: none !important; }

/* F16. Delivery row spans the whole order table (assets/theme.js removes its empty heading). */
td.vwclub-shipping-wide ul#shipping_method { max-width: 720px; }
.woocommerce table.shop_table tfoot tr.vwclub-delivery-note td, .woocommerce table.shop_table tr.vwclub-delivery-note td { font-weight: 400; }

/* F17. Recheck fixes. */
/* already-chosen option in an open dropdown: #f0f0f0 on #ddd in dark mode */
.select2-container--default .select2-results__option[aria-selected=true]:not(.select2-results__option--highlighted),
.select2-container--default .select2-results__option[data-selected=true]:not(.select2-results__option--highlighted) { background: var(--bg-input) !important; color: var(--text-primary) !important; font-weight: 600; }
/* red hover text on the dark buttons was 4.1:1 */
[data-theme=dark] .bgc-allmap-btn:hover, [data-theme=dark] .bgc-office-pick .bgc-map-btn:hover { color: var(--text-primary); }
.bgc-allmap-overlay input::placeholder { color: var(--text-secondary); opacity: 1; }
.bgc-fields .select2-container--default .select2-selection__clear { color: var(--text-secondary) !important; }
/* let the "Не е налично в този град" tooltip show on a disabled tab (it stays unclickable via aria-disabled) */
.bgc-tab.bgc-tab-na { pointer-events: auto; cursor: not-allowed; }
/* address inputs sat 3px lower than the street picker and lost 7px on the right */
.woocommerce ul#shipping_method li .bgc-fields input:not([type=hidden]) { margin: 0; }
/* note under Общо: left-aligned on phones too, not glued to the line above */
.woocommerce table.shop_table tr.vwclub-delivery-note td,
.woocommerce table.shop_table_responsive tr.vwclub-delivery-note td,
.woocommerce-page table.shop_table_responsive tr.vwclub-delivery-note td { border-top: 0 !important; text-align: left !important; }
/* map shortcut button lines up with the 720px delivery card */
tr.bgc-allmap-open td { padding-left: 8px !important; padding-right: 8px !important; }
tr.bgc-allmap-open .bgc-allmap-btn { max-width: 720px; }
/* office popup on the map fits a phone screen */
.bgc-allmap-overlay .leaflet-popup-content { max-width: calc(100vw - 130px); }

/* F18. Second recheck. */
/* inline field errors: WooCommerce's #aa0000 is 2.5:1 on the dark page */
.woocommerce-checkout .checkout .checkout-inline-error-message, .woocommerce form .form-row .checkout-inline-error-message { color: var(--accent-text); font-size: 13px; }
/* payment description box was invisible against the dark panel */
[data-theme=dark] .woocommerce-checkout #payment div.payment_box { background: var(--bg-input); }
[data-theme=dark] .woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--bg-input); }
/* show the whole office address on phones instead of two clipped lines */
@container bgcfields (max-width: 360px) {
	.bgc-fields .bgc-office-row .select2-selection__rendered { display: block; -webkit-line-clamp: unset; max-height: none; white-space: normal; }
}
/* the Карта/Списък switch covered the map credits on phones */
@media (max-width: 720px), (max-height: 520px) { .bgc-allmap-overlay .leaflet-bottom { bottom: 54px; } }
/* open office list separated from the page under it */
.select2-dropdown.bgc-drop { box-shadow: 0 8px 24px rgba(0, 0, 0, .18); }
[data-theme=dark] .select2-dropdown.bgc-drop { box-shadow: 0 8px 24px rgba(0, 0, 0, .6); }

/* F19. Country field. Only Bulgaria can be chosen, so WooCommerce turns the dropdown into fixed text, but the
   input styles above gave it a box with the text pressed against the left border. Show it as a fixed field
   lined up with the others: same width and inner space, no arrow, nothing to click. */
.woocommerce form .form-row select.country_to_state--single {
	width: 100%; padding: 10px 12px !important; font-weight: 400; line-height: inherit;
	background-image: none !important; pointer-events: none; cursor: default;
}

/* F20. Legal pages, the final price before the order button and the online withdrawal form. */
.vwclub-legal-page .entry-content { max-width: 760px; }
.vwclub-legal-page .entry-content h2 { font-size: 1.35rem; margin: 2em 0 .6em; }
.vwclub-legal-page .entry-content h3 { font-size: 1.1rem; margin: 1.5em 0 .5em; }
.vwclub-legal-page .entry-content p, .vwclub-legal-page .entry-content li { line-height: 1.6; }
.vwclub-legal-page .entry-content ul, .vwclub-legal-page .entry-content ol { padding-left: 1.4em; }
.vwclub-final-price { margin: 0 0 16px; padding: 12px 16px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg-secondary); }
.vwclub-final-price > div { display: flex; justify-content: space-between; gap: 16px; padding: 4px 0; }
.vwclub-final-price dt { color: var(--text-secondary); font-weight: 400; }
.vwclub-final-price dd { margin: 0; text-align: right; color: var(--text-primary); }
.vwclub-final-price .is-final { border-top: 1px solid var(--border); margin-top: 4px; padding-top: 8px; }
.vwclub-final-price .is-final dt, .vwclub-final-price .is-final dd { color: var(--text-primary); font-weight: 700; }
.woocommerce #payment #place_order { white-space: normal; line-height: 1.3; }
.vwclub-withdrawal { max-width: 560px; }
.woocommerce form.vwclub-withdrawal-form .form-row { margin: 0 0 16px; padding: 0; }
.vwclub-withdrawal-form label { display: block; margin-bottom: 6px; }
.vwclub-withdrawal-form .input-text { width: 100%; box-sizing: border-box; }
.vwclub-withdrawal-form .description { display: block; margin-top: 4px; font-size: 14px; color: var(--text-secondary); }
.vwclub-withdrawal-form .required { color: var(--accent-text); text-decoration: none; }
.vwclub-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.vwclub-withdrawal-summary { margin: 16px 0; }
.vwclub-withdrawal-summary th { width: 40%; text-align: left; font-weight: 600; }
