/* WordPress additions to the generated template stylesheet (tbvs.css). */

/* Flatsome paints <html> dark when its CSS is loaded; keep the template canvas colour. */
html { background-color: var(--tb-bg); }

/* <main> plays the template's .container; it is not a tb-* element so native Flatsome content inside keeps its own styles. */
.tbvs-main { width: 100%; max-width: var(--tb-container); margin-inline: auto; padding-inline: var(--tb-gutter); background: transparent; }

/* Sticky elements below the WordPress admin bar. */
.admin-bar .tb-nav { top: 32px; }
.admin-bar .tb-shop__sidebar, .admin-bar .tb-blog__sidebar { top: 100px; }
@media (max-width: 991px) { .admin-bar .tb-shop__sidebar { top: 0; } }

/* Flyout heading is a <p> (heading order); same look as the template's h4. */
.tb-cat-menu__sub .tb-cat-menu__title { grid-column: 1 / -1; margin: 0 0 6px; font-size: 15px; font-weight: 700; line-height: 1.55; color: var(--tb-navy); }

/* Touch targets ≥ 24px without changing the layout: an invisible hit area around small links and dots. */
.tb-breadcrumb a, .tb-footer__links a, .tb-footer__mail, .tb-cat-card__more, .tb-read-more, .tb-widget--cta__link, .tb-slider__dots button { position: relative; }
.tb-breadcrumb a::after, .tb-footer__links a::after, .tb-footer__mail::after, .tb-cat-card__more::after, .tb-read-more::after, .tb-widget--cta__link::after { content: ""; position: absolute; inset: -4px 0; }
.tb-slider__dots button::after { content: ""; position: absolute; inset: -7px -4px; }

/* Product page: visit the showroom (same tokens as .tb-pd__offer / .tb-pd__trust). */
.tb-store-visit { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; padding: 14px 16px; border: 1px solid var(--tb-line); border-radius: var(--tb-radius); background: #f8fafc; }
.tb-store-visit__icon { display: grid; place-items: center; width: 44px; height: 44px; flex: none; border-radius: 12px; background: var(--tb-navy); color: #fff; }
.tb-store-visit__body { display: grid; gap: 2px; flex: 1; min-width: 0; }
.tb-store-visit__title { font-size: 15px; color: var(--tb-navy); }
.tb-store-visit__addr { display: inline-flex; align-items: flex-start; gap: 6px; font-weight: 600; color: var(--tb-text); transition: color .2s; }
.tb-store-visit__addr .tb-icon { margin-top: 2px; color: var(--tb-accent); }
.tb-store-visit__addr:hover { color: var(--tb-accent); }
.tb-store-visit__note { font-size: 13px; color: var(--tb-muted); }
.tb-store-visit__btn { flex: none; height: 38px; padding: 0 16px; font-size: 13px; }
@media (max-width: 767px) {
	.tb-store-visit { flex-wrap: wrap; align-items: flex-start; }
	.tb-store-visit__btn { flex-basis: 100%; }
}

/* Honeypot field of the lead forms. */
.tb-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

/* Filter form groups keep the sidebar rhythm. */
.tb-shop__form { display: grid; gap: var(--tb-gap); }
.js-shop-grid[aria-busy="true"] { opacity: .55; transition: opacity .2s; }

/* Post / page content written in the editor. */
.tb-prose a { color: var(--tb-accent-2); text-decoration: underline; text-underline-offset: 2px; }
.tb-prose h3 { margin: 22px 0 10px; font-size: 18px; line-height: 1.4; color: var(--tb-navy); }
.tb-prose img { max-width: 100%; height: auto; border-radius: var(--tb-radius-sm); }
.tb-prose figure { margin: 20px 0; }
.tb-prose figcaption { margin-top: 6px; font-size: 13px; color: var(--tb-muted); text-align: center; }
.tb-prose table { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: 14px; }
.tb-prose th, .tb-prose td { padding: 10px 14px; border: 1px solid var(--tb-line); text-align: left; }
.tb-prose th { background: #f8fafc; }
.tb-prose .aligncenter { margin-inline: auto; }
.tb-prose .alignleft { float: left; margin: 4px 20px 12px 0; }
.tb-prose .alignright { float: right; margin: 4px 0 12px 20px; }
.tb-prose > * + h2:first-child { margin-top: 0; }
.tb-page-article { margin-top: 24px; }

/* 404 */
.tb-404 { margin-top: 24px; }
.tb-404__search { width: 100%; max-width: 520px; box-shadow: none; border: 1px solid var(--tb-line); }

.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
