body { background: var(--vibo-bg); color: var(--vibo-text); }

/* Header */
.vibo-header { border-bottom: 1px solid var(--vibo-border); }
.vibo-header .wp-block-site-title a { text-decoration: none; color: var(--vibo-text); font-weight: 700; letter-spacing: -0.02em; }
.vibo-theme-toggle {
	display: inline-flex; align-items: center; justify-content: center;
	width: 2.5rem; height: 2.5rem; padding: 0; cursor: pointer;
	background: transparent; color: var(--vibo-text);
	border: 1px solid var(--vibo-border-strong); border-radius: 999px;
}
.vibo-theme-toggle:hover { border-color: var(--vibo-accent); }
.vibo-theme-toggle svg { width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.vibo-theme-toggle .vibo-icon-sun { display: none; }
:root[data-theme="dark"] .vibo-theme-toggle .vibo-icon-sun { display: block; }
:root[data-theme="dark"] .vibo-theme-toggle .vibo-icon-moon { display: none; }
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .vibo-theme-toggle .vibo-icon-sun { display: block; }
	:root:not([data-theme="light"]) .vibo-theme-toggle .vibo-icon-moon { display: none; }
}
.vibo-lang a { color: var(--vibo-muted); text-decoration: none; font-size: 0.875rem; }

/* Focus */
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--vibo-accent); outline-offset: 2px; }

/* Hero */
.vibo-hero { border-radius: var(--vibo-radius); background: var(--vibo-surface); border: 1px solid var(--vibo-border); }

/* Cards, forms and surfaces */
.wc-block-product, .wc-block-components-product-image { border-radius: var(--vibo-radius); }
.wc-block-components-text-input input, .wc-block-components-select select, input, select, textarea {
	background: var(--vibo-surface); color: var(--vibo-text); border-color: var(--vibo-border-strong);
}
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { color: var(--vibo-text); }
.wc-block-components-panel, .wc-block-components-totals-wrapper, .wc-block-components-order-summary { border-color: var(--vibo-border) !important; }
.wc-block-components-radio-control__option, .wc-block-components-checkbox__mark { color: var(--vibo-text); }
.wc-block-components-notice-banner { background: var(--vibo-surface); color: var(--vibo-text); }
details { border: 1px solid var(--vibo-border); border-radius: var(--vibo-radius); padding: 0.75rem 1rem; background: var(--vibo-surface); }
details + details { margin-top: 0.75rem; }
summary { cursor: pointer; font-weight: 600; }
table { border-color: var(--vibo-border); }
td, th { border-color: var(--vibo-border); }
hr, .wp-block-separator { border-color: var(--vibo-border); }

/* Product extras (see inc/product.php) */
.vibo-product-info { margin: 1.25rem 0; padding: 1rem; border: 1px solid var(--vibo-border); border-radius: var(--vibo-radius); background: var(--vibo-surface); display: grid; gap: 0.5rem; font-size: 0.9375rem; }
.vibo-product-info p { margin: 0; }
.vibo-product-info .vibo-label { color: var(--vibo-muted); }
.vibo-stock--in { color: var(--vibo-ok); }
.vibo-stock--low { color: var(--vibo-warn); }
.vibo-stock--out { color: var(--vibo-bad); }

/* Navigation (patterns/header.php, footer.php) */
.vibo-nav__list { display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; list-style: none; margin: 0; padding: 0; }
.vibo-nav__list a { color: var(--vibo-text); text-decoration: none; padding: 0.5rem 0; display: inline-block; min-height: 24px; }
.vibo-nav__list a:hover { color: var(--vibo-accent); }
.vibo-footer .vibo-nav__list a { color: var(--vibo-muted); }

/* Classic WooCommerce shortcodes (home page) */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .woocommerce-loop-category__title { color: var(--vibo-text); }
.woocommerce ul.products li.product .price ins { color: var(--vibo-text); background: transparent; }
.woocommerce ul.products li.product a.button { background: var(--vibo-accent); color: var(--vibo-on-accent); }
.woocommerce ul.products li.product img { border-radius: var(--vibo-radius); }
.woocommerce span.onsale { background: var(--vibo-accent); color: var(--vibo-on-accent); }
.woocommerce-message, .woocommerce-info { background: var(--vibo-surface); color: var(--vibo-text); border-color: var(--vibo-accent); }

/* Disabled add-to-cart (variation not chosen yet): keep the label readable. */
.single_add_to_cart_button.disabled, .single_add_to_cart_button:disabled {
	opacity: 1 !important; background: var(--vibo-border-strong); color: var(--vibo-text); cursor: not-allowed;
}

/* TranslatePress switcher: header shortcode follows the tokens; the floating copy is not used. */
.trp-floating-switcher { display: none !important; }
.trp-language-switcher, .trp-language-switcher-container {
	--bg: var(--vibo-surface); --text: var(--vibo-text); --bg-hover: var(--vibo-border); --text-hover: var(--vibo-text);
	--border-color: var(--vibo-border-strong);
}
.trp-language-switcher { border-color: var(--vibo-border-strong); color: var(--vibo-text); }
.trp-language-switcher .trp-language-item-name, .trp-language-switcher a { color: var(--vibo-text); }
