/**
 * Area: AUTO CONTENT STYLING — anything an editor adds later looks like the rest of the site.
 *
 * Covers plain content typed or pasted into: page/post content (.entry-content), WPBakery text blocks
 * (.wpb_text_column), WoodMart text blocks (.wd-text-block), product short description + product tab
 * panels, category descriptions (.term-description) and HTML/CMS blocks (.cms-block).
 *
 * HOW THE SCOPE WORKS (CSS @scope, "donut" scope):
 *   @scope (<content roots>) to (<limits>) { ... }
 *   - roots inside the header, mega menu, off-canvas, footer, blog listing cards or any yb-* component are ignored
 *     (exception: .yb-autoarch-body, the single-post wrapper from auto-archives.php, is itself a content root);
 *   - everything inside a limit is left alone: our own components (any class containing "yb-", e.g. .yb-info,
 *     .yb-sec, .yb-page, .yb-hp, .yb-pdp-acc), WooCommerce blocks (cart/checkout/account, product grids,
 *     attribute tables, reviews) and WoodMart widgets (carousels, banners, tabs, sliders, menus, forms).
 *   => custom pages (help, size guide, contact, about, stores, gift cards...) render exactly as before.
 *   Classes this file / auto-content.js create use the "ybac-" prefix (NOT "yb-", which would end the scope).
 *
 * Specificity: rules start with ".yb :scope" (0,2,x). Area files that load later with the same
 * specificity still lose to a scoped rule (scope proximity), so component-level overrides should target
 * their own yb-* classes (which are outside this scope anyway).
 * Browsers without @scope (very old) simply keep the WoodMart defaults.
 *
 * Other auto modules: auto-emails-forms.css owns form labels/validation/notices and CF7/WPForms markup;
 * auto-archives.css owns single-post typography (its selectors are more specific, so they win there).
 *
 * Tokens: Hanken Grotesk, #000 text, #57585B muted, 4px radius, black buttons (red #D31334 is commerce-only
 * and never used here), #E3E3E3 table lines, #D5D5D5 accordion lines, white panels.
 */

@scope (:is(.entry-content, .wpb_text_column, .wd-text-block, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel, .term-description, .cms-block, .yb-autoarch-body):not([class*="yb-"]:not(.yb-autoarch-body), :not(body, .yb-autoarch-body)[class*="yb-"] *, .whb-header *, .wd-dropdown *, .wd-side-hidden *, .mobile-nav *, .footer-container *, .website-footer *, .blog-post-loop *, .wd-popup *, .mfp-content .product-quick-view *, #wpadminbar *))
	to ([class*="yb-"]:not(.yb-autoarch-body), .woocommerce, .products, .wd-products, .product-grid-item, .shop_table, .shop_attributes, .woocommerce-product-attributes, .variations, .group_table, #reviews, .woocommerce-Reviews, .comment-respond, .commentlist, .comments-area, .wd-carousel-container, .wd-carousel, .owl-carousel, .wd-slider, .rev_slider_wrapper, .promo-banner, .wd-banner, .wd-tabs, .wd-accordion, .wd-nav, .title-wrapper, .wd-social-icons, .wd-image-hotspot, .wd-instagram, .wd-blog-holder, .wd-portfolio-holder, .wd-countdown-timer, .wd-pricing-plan, .wd-team-member, .wd-testimonials, .testimonials, .wd-menu, .wd-info-box, .widget, .searchform, .wd-search-form, .vc_grid-container, .vc_images_carousel, .wpb_flexslider, .screen-reader-text, #wp-calendar) {

	/* ======================================================================
	   1. Typography rhythm
	   ====================================================================== */

	/* Headings: weight 600, no tracking (tokens), consistent spacing */
	.yb :scope :is(h1, h2, h3, h4, h5, h6) {
		font-family: var(--yb-font);
		font-weight: 600;
		letter-spacing: 0;
		text-transform: none;
	}
	.yb :scope h1 { margin: 48px 0 20px; font-size: 30px; line-height: 1.2; }
	.yb :scope h2 { margin: 48px 0 16px; font-size: 28px; line-height: 1.2; }
	.yb :scope h3 { margin: 40px 0 12px; font-size: 24px; line-height: 1.25; }
	.yb :scope h4 { margin: 32px 0 12px; font-size: 19px; line-height: 1.26; }
	.yb :scope h5 { margin: 24px 0 8px; font-size: 17px; line-height: 1.3; }
	/* h6 = Lulu "activity line" eyebrow */
	.yb :scope h6 { margin: 24px 0 8px; font-size: 14px; line-height: 20px; letter-spacing: 1.2px; text-transform: uppercase; }
	.yb :scope :is(h1, h2, h3, h4, h5, h6):first-child,
	.yb :scope :is(h1, h2, h3, h4, h5, h6) + :is(h1, h2, h3, h4, h5, h6) { margin-top: 0; }
	.yb :scope :is(h1, h2, h3, h4, h5, h6) a:not([class]) { color: inherit; text-decoration: none; }
	.yb :scope :is(h1, h2, h3, h4, h5, h6) a:not([class]):hover { text-decoration: underline; text-decoration-color: #D31334; text-underline-offset: 4px; }

	/* Paragraphs */
	.yb :scope p { margin: 0 0 16px; overflow-wrap: break-word; }
	.yb :scope:not(.woocommerce-product-details__short-description) p { line-height: 1.6; }
	.yb :scope p:empty { display: none; }

	/* Prose measure (~72ch) for text written straight into the content area */
	.yb :scope:not(.yb-autoarch-body) > :is(p, ul, ol, blockquote:not([class])),
	.yb :scope > .wpb_wrapper > :is(p, ul, ol, blockquote:not([class])) { max-width: 72ch; }
	.yb :scope:not(.yb-autoarch-body) > :is(p, ul, ol):is(.has-text-align-center, [style*="text-align: center"], [style*="text-align:center"]),
	.yb :scope > .wpb_wrapper > :is(p, ul, ol):is(.has-text-align-center, [style*="text-align: center"], [style*="text-align:center"]) { margin-left: auto; margin-right: auto; }
	.yb :scope:not(.yb-autoarch-body) > p:is(.has-text-align-right, [style*="text-align: right"], [style*="text-align:right"]),
	.yb :scope > .wpb_wrapper > p:is(.has-text-align-right, [style*="text-align: right"], [style*="text-align:right"]) { margin-left: auto; }
	.yb :scope .has-text-align-center { text-align: center; }
	.yb :scope .has-text-align-right { text-align: right; }

	/* Last element never adds space at the bottom of a block */
	.yb :scope:not(.yb-autoarch-body) > :last-child:is(p, ul, ol, blockquote, figure, table, hr, .wp-block-buttons, .ybac-scroll),
	.yb :scope > .wpb_wrapper > :last-child:is(p, ul, ol, blockquote, figure, table, .ybac-scroll) { margin-bottom: 0; }

	/* Lists (plain + Gutenberg list block) */
	.yb :scope :is(ul, ol):where(:not([class]), .wp-block-list) {
		margin: 0 0 16px;
		padding: 0 0 0 24px;
		line-height: 1.6;
	}
	.yb :scope ul:where(:not([class]), .wp-block-list) { list-style: disc outside; }
	.yb :scope ul:where(:not([class]), .wp-block-list) ul { list-style-type: circle; }
	.yb :scope ol:where(:not([class]), .wp-block-list) { list-style: decimal outside; }
	.yb :scope ol:where(:not([class]), .wp-block-list) ol { list-style-type: lower-alpha; }
	.yb :scope :is(ul, ol):where(:not([class]), .wp-block-list) > li { margin: 0 0 8px; padding: 0; overflow-wrap: break-word; }
	.yb :scope :is(ul, ol):where(:not([class]), .wp-block-list) > li::marker { color: #000; }
	.yb :scope :is(ul, ol):where(:not([class]), .wp-block-list) li > :is(ul, ol) { margin: 8px 0 0; }
	.yb :scope dl { margin: 0 0 16px; }
	.yb :scope dt { margin: 12px 0 4px; font-weight: 600; }
	.yb :scope dd { margin: 0 0 8px; }

	/* Blockquote + Gutenberg quote */
	.yb :scope blockquote:where(:not([class]), .wp-block-quote) {
		margin: 32px 0;
		padding: 0 0 0 24px;
		border: 0;
		border-left: 2px solid #000;
		background: none;
		font-size: 20px;
		font-style: normal;
		font-weight: 400;
		line-height: 1.4;
		quotes: none;
	}
	.yb :scope blockquote:where(:not([class]), .wp-block-quote)::before,
	.yb :scope blockquote:where(:not([class]), .wp-block-quote)::after { content: none; }
	.yb :scope blockquote:where(:not([class]), .wp-block-quote) p { margin: 0 0 12px; font-size: inherit; line-height: inherit; }
	.yb :scope blockquote:where(:not([class]), .wp-block-quote) > p:last-of-type { margin-bottom: 0; }
	.yb :scope blockquote :is(cite, footer),
	.yb :scope .wp-block-pullquote cite {
		display: block;
		margin-top: 12px;
		color: #57585B;
		font-size: 14px;
		font-style: normal;
		font-weight: 600;
		line-height: 20px;
		letter-spacing: 1.2px;
		text-transform: uppercase;
	}
	.yb :scope .wp-block-quote:is(.is-style-large, .is-large) { font-size: 24px; line-height: 1.3; }
	.yb :scope .wp-block-quote.has-text-align-center { padding: 0; border-left: 0; }

	/* Pullquote */
	.yb :scope .wp-block-pullquote {
		margin: 40px 0;
		padding: 40px 0;
		border: 0;
		border-top: 1px solid #000;
		border-bottom: 1px solid #000;
		text-align: center;
	}
	.yb :scope .wp-block-pullquote.has-background { padding: 40px 32px; border: 0; }
	.yb :scope .wp-block-pullquote blockquote { max-width: 760px; margin: 0 auto; padding: 0; border: 0; font-size: inherit; text-align: inherit; }
	.yb :scope .wp-block-pullquote :is(p, cite) { text-align: inherit; }
	.yb :scope .wp-block-pullquote.has-text-align-left { text-align: left; }
	.yb :scope .wp-block-pullquote p { margin: 0 0 12px; font-size: 28px; font-weight: 400; line-height: 1.25; }

	/* Separator / hr */
	.yb :scope hr:where(:not([class]), .wp-block-separator) {
		width: 100%;
		max-width: none;
		height: 0;
		margin: 40px 0;
		padding: 0;
		border: 0;
		border-top: 1px solid #CCC;
		background: none;
		opacity: 1;
	}
	.yb :scope hr.wp-block-separator:is(.has-background, .has-text-color) { border-top-color: currentColor; background: none; }
	.yb :scope hr.wp-block-separator.is-style-dots { height: auto; border: 0; text-align: center; line-height: 1; }
	.yb :scope hr.wp-block-separator.is-style-dots::before { content: "\00b7\00b7\00b7"; padding-left: 1em; color: currentColor; font-size: 28px; letter-spacing: 1em; }

	/* Inline text */
	.yb :scope :is(strong, b) { font-weight: 600; }
	.yb :scope small { font-size: 14px; line-height: 1.4; }
	.yb :scope mark:not([class]) { padding: 0 2px; background: #F2F2F2; color: inherit; }
	.yb :scope abbr[title] { text-decoration: underline dotted; cursor: help; }
	.yb :scope :is(sub, sup) { font-size: 75%; line-height: 0; }
	.yb :scope :is(code, kbd, samp) {
		padding: 2px 6px;
		border-radius: 4px;
		background: #F2F2F2;
		color: #000;
		font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
		font-size: 14px;
	}
	.yb :scope pre {
		max-width: 100%;
		margin: 0 0 24px;
		padding: 16px 20px;
		overflow: auto;
		border: 0;
		border-radius: 4px;
		background: #F2F2F2;
		color: #000;
		font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
		font-size: 14px;
		line-height: 1.5;
		white-space: pre;
	}
	.yb :scope pre code { padding: 0; background: none; }

	/* Links: 1px grey underline, red on hover (same as tokens for p/li, extended to every text context) */
	.yb :scope a:not([class], :has(img, picture, svg, video)) {
		color: #000;
		text-decoration: underline;
		text-decoration-thickness: 1px;
		text-decoration-color: #8D9196;
		text-underline-offset: 4px;
		overflow-wrap: anywhere;
		transition: text-decoration-color .15s ease-in-out;
	}
	.yb :scope a:not([class], :has(img, picture, svg, video)):hover { color: #000; text-decoration-color: #D31334; }
	.yb :scope a:has(> img) { display: inline-block; text-decoration: none; }

	/* ======================================================================
	   2. Media
	   ====================================================================== */

	.yb :scope img:not(.emoji, .wp-smiley, .wp-block-cover__image-background) { max-width: 100%; height: auto; border-radius: 0; }
	.yb :scope img.emoji { display: inline; width: 1em; height: 1em; margin: 0 .05em; vertical-align: -.1em; }
	.yb :scope :is(figure:not([class]), figure.wp-block-image, .wp-caption, .wpb_single_image) { max-width: 100%; margin: 0 0 32px; }
	.yb :scope :is(figure.wp-block-image, .wp-caption) img { display: block; }
	.yb :scope figure.wp-block-image > a { display: block; }
	.yb :scope :is(figcaption, .wp-caption-text, .wp-element-caption, .gallery-caption, .vc_figure-caption, .blocks-gallery-caption) {
		margin: 8px 0 0;
		padding: 0;
		color: #57585B;
		font-size: 14px;
		font-style: normal;
		line-height: 1.4;
		text-align: left;
	}

	/* WordPress alignment classes */
	.yb :scope .aligncenter { display: block; margin-left: auto; margin-right: auto; }
	.yb :scope figure.aligncenter { display: table; }
	.yb :scope figure.aligncenter > figcaption { display: table-caption; caption-side: bottom; }
	.yb :scope .alignleft { float: left; max-width: 50%; margin: 4px 24px 16px 0; }
	.yb :scope .alignright { float: right; max-width: 50%; margin: 4px 0 16px 24px; }
	.yb :scope :is(.alignwide, .alignfull) { width: 100%; max-width: 100%; }
	.yb :scope > :is(h1, h2, h3, hr, table, .ybac-scroll, .wp-block-columns, .wp-block-gallery, .gallery, .wp-block-cover, .wp-block-media-text) { clear: both; }
	.yb :scope .wp-block-image.is-style-rounded img { border-radius: 4px; }

	/* WPBakery single image */
	.yb :scope .wpb_single_image .vc_single_image-wrapper { max-width: 100%; }
	.yb :scope .wpb_single_image .vc_figure { max-width: 100%; }

	/* ---- Galleries: Gutenberg gallery (new + legacy), [gallery] shortcode, WPBakery image grid ---- */
	.yb :scope :is(.wp-block-gallery, .blocks-gallery-grid, .gallery) {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 20px;
		margin: 0 0 32px;
		padding: 0;
		list-style: none;
	}
	.yb :scope .wp-block-gallery > .blocks-gallery-grid { margin: 0; grid-column: 1 / -1; }
	.yb :scope :is(.wp-block-gallery, .blocks-gallery-grid).columns-1,
	.yb :scope .gallery.gallery-columns-1 { grid-template-columns: minmax(0, 1fr); }
	.yb :scope :is(.wp-block-gallery, .blocks-gallery-grid).columns-2,
	.yb :scope .gallery.gallery-columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.yb :scope :is(.wp-block-gallery, .blocks-gallery-grid).columns-4,
	.yb :scope .gallery.gallery-columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.yb :scope :is(.wp-block-gallery, .blocks-gallery-grid).columns-5,
	.yb :scope .gallery.gallery-columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
	.yb :scope :is(.wp-block-gallery, .blocks-gallery-grid):is(.columns-6, .columns-7, .columns-8),
	.yb :scope .gallery:is(.gallery-columns-6, .gallery-columns-7, .gallery-columns-8, .gallery-columns-9) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.yb :scope :is(.wp-block-gallery > figure, .blocks-gallery-item, .gallery .gallery-item) {
		position: relative;
		display: flex;
		flex-direction: column;
		width: auto !important; /* core + [gallery] write widths with ID selectors / inline CSS */
		max-width: none !important;
		margin: 0 !important;
		padding: 0;
		float: none !important;
		text-align: left;
	}
	.yb :scope :is(.wp-block-gallery > figure, .blocks-gallery-item, .gallery .gallery-item)::before { content: none; display: none; }
	.yb :scope :is(.wp-block-gallery > figure, .blocks-gallery-item figure, .gallery .gallery-icon) { margin: 0; }
	.yb :scope :is(.wp-block-gallery > figure, .blocks-gallery-item, .gallery .gallery-icon) > a { display: block; }
	.yb :scope :is(.wp-block-gallery, .blocks-gallery-grid, .gallery) img {
		display: block;
		width: 100%;
		height: auto;
		margin: 0;
		border: 0 !important; /* [gallery] inline CSS adds a grey 2px border */
		background: rgba(0, 0, 0, .05);
	}
	/* "Crop images" on (Gutenberg default) and [gallery] → 4:5 tiles like product cards; otherwise natural ratio */
	.yb :scope :is(.wp-block-gallery.is-cropped, .gallery) img { aspect-ratio: 4 / 5; object-fit: cover; }
	.yb :scope :is(.wp-block-gallery, .blocks-gallery-grid) figcaption:not(.blocks-gallery-caption) {
		position: static;
		max-height: none;
		margin: 8px 0 0;
		padding: 0;
		background: none;
		color: #57585B;
		font-size: 14px;
		text-align: left;
		text-shadow: none;
		overflow: visible;
	}
	.yb :scope :is(.wp-block-gallery, .gallery) > :is(.blocks-gallery-caption, figcaption.wp-element-caption) { grid-column: 1 / -1; margin-top: 0; }
	.yb :scope .gallery > br { display: none; }
	.yb :scope .gallery .gallery-caption { margin-top: 8px; }

	/* WPBakery "Image gallery" (grid type): replace the JS isotope positioning with a CSS grid */
	.yb :scope .wpb_gallery .wpb_image_grid_ul {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 20px;
		height: auto !important;
		margin: 0;
		padding: 0;
		list-style: none;
	}
	.yb :scope .wpb_gallery .wpb_image_grid_ul li {
		position: static !important;
		float: none;
		width: auto;
		margin: 0 !important;
		transform: none !important;
		left: auto !important;
		top: auto !important;
		opacity: 1 !important;
	}
	.yb :scope .wpb_gallery .wpb_image_grid_ul li a { display: block; }
	.yb :scope .wpb_gallery .wpb_image_grid_ul img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; background: rgba(0, 0, 0, .05); }

	/* ---- Embeds, video, iframes ---- */
	.yb :scope iframe { max-width: 100%; border: 0; }
	.yb :scope :is(.wp-block-embed, .wp-block-video, .wpb_video_widget) { margin: 0 0 32px; }
	.yb :scope .wp-block-embed__wrapper { position: relative; }
	.yb :scope .wp-block-embed__wrapper::before { content: none; display: none; }
	.yb :scope :is(.wp-block-embed.is-type-video iframe, iframe:is([src*="youtube.com"], [src*="youtube-nocookie.com"], [src*="youtu.be"], [src*="vimeo.com"], [src*="wistia"], [src*="loom.com"], [src*="dailymotion"])):not(.fluid-width-video-wrapper *, .wpb_video_wrapper *) {
		position: static;
		display: block;
		width: 100%;
		height: auto;
		aspect-ratio: 16 / 9;
	}
	.yb :scope .wp-embed-aspect-4-3 iframe { aspect-ratio: 4 / 3; }
	.yb :scope .wp-embed-aspect-1-1 iframe { aspect-ratio: 1 / 1; }
	.yb :scope .wp-embed-aspect-9-16 iframe { aspect-ratio: 9 / 16; max-width: 420px; }
	.yb :scope .wp-embed-aspect-21-9 iframe { aspect-ratio: 21 / 9; }
	.yb :scope iframe:is([src*="google.com/maps"], [src*="maps.google"]) { display: block; width: 100%; min-height: 320px; }
	.yb :scope video { display: block; max-width: 100%; height: auto; }
	.yb :scope .wp-block-video video { width: 100%; }
	.yb :scope :is(.wp-video, .wp-video .mejs-container, .wp-audio-shortcode) { max-width: 100%; }

	/* ======================================================================
	   3. Tables (Lulu size-guide look). auto-content.js wraps bare tables in .ybac-scroll.
	   ====================================================================== */

	.yb :scope table {
		width: 100%;
		max-width: 100%;
		margin: 0 0 32px;
		border: 0;
		border-collapse: collapse;
		border-spacing: 0;
		background: #fff;
		color: #000;
		font-size: 15px;
		line-height: 1.4;
		table-layout: auto;
	}
	.yb :scope :is(th, td) {
		padding: 14px 16px;
		border: 0;
		border-bottom: 1px solid #E3E3E3;
		background: transparent;
		color: inherit;
		font-size: inherit;
		text-align: left;
		vertical-align: top;
	}
	.yb :scope th { font-weight: 600; letter-spacing: 0; text-transform: none; }
	.yb :scope :is(thead th, thead td, tr:first-child > th:only-child) { background: #F2F2F2; font-weight: 600; white-space: nowrap; }
	.yb :scope table:not(:has(thead)) > tbody > tr:first-child:has(> th + th) > th { background: #F2F2F2; white-space: nowrap; }
	.yb :scope tbody th { background: #FAFAFA; }
	.yb :scope tfoot :is(td, th) { font-weight: 600; border-bottom: 0; }
	.yb :scope table caption { caption-side: bottom; padding: 8px 0 0; color: #57585B; font-size: 14px; text-align: left; }
	.yb :scope table :is(td, th) > :last-child { margin-bottom: 0; }
	.yb :scope table :is(td, th) p { max-width: none; }

	/* Gutenberg table block */
	.yb :scope figure.wp-block-table { margin: 0 0 32px; overflow-x: auto; }
	.yb :scope figure.wp-block-table table { margin: 0; }
	.yb :scope figure.wp-block-table thead { border-bottom: 0; }
	.yb :scope figure.wp-block-table tfoot { border-top: 0; }
	.yb :scope .wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: #FAFAFA; }
	.yb :scope .wp-block-table table.has-fixed-layout { table-layout: fixed; }

	/* Scroll container (added by JS) */
	.yb :scope .ybac-scroll {
		max-width: 100%;
		margin: 0 0 32px;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		background: #fff;
		scrollbar-width: thin;
		scrollbar-color: #C4C4C4 #F2F2F2;
	}
	.yb :scope .ybac-scroll::-webkit-scrollbar { height: 8px; }
	.yb :scope .ybac-scroll::-webkit-scrollbar-track { background: #F2F2F2; border-radius: 4px; }
	.yb :scope .ybac-scroll::-webkit-scrollbar-thumb { background: #C4C4C4; border-radius: 4px; }
	.yb :scope .ybac-scroll:focus-visible { outline: 2px solid #000; outline-offset: 2px; }
	.yb :scope .ybac-scroll > table { margin: 0; }
	.yb :scope figure.wp-block-table > .ybac-scroll { margin: 0; }

	/* ======================================================================
	   4. Buttons → site buttons (black solid / black outline, 4px, 16px uppercase 600)
	   ====================================================================== */

	/* Gutenberg buttons */
	.yb :scope .wp-block-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 24px 0 32px; }
	.yb :scope .wp-block-buttons.is-content-justification-center { justify-content: center; }
	.yb :scope .wp-block-buttons.is-content-justification-right { justify-content: flex-end; }
	.yb :scope .wp-block-buttons.is-content-justification-space-between { justify-content: space-between; }
	.yb :scope .wp-block-buttons.is-vertical { flex-direction: column; align-items: flex-start; }
	.yb :scope .wp-block-button { margin: 0; }
	.yb :scope :is(.wp-block-button__link, .wp-block-file .wp-block-file__button, button:not([class]), input:is([type="button"], [type="reset"])) {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 52px;
		padding: 15px 24px;
		border: 1px solid #000;
		border-radius: 4px;
		background-color: #000;
		box-shadow: none;
		color: #fff;
		font-family: var(--yb-font);
		font-size: 16px;
		font-weight: 600;
		line-height: 20px;
		letter-spacing: 1.2px;
		text-align: center;
		text-decoration: none;
		text-transform: uppercase;
		cursor: pointer;
		transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out;
	}
	.yb :scope :is(.wp-block-button__link, .wp-block-file .wp-block-file__button, button:not([class]), input:is([type="button"], [type="reset"])):hover {
		background-color: #fff;
		border-color: #000;
		color: #000;
	}
	.yb :scope :is(.wp-block-button__link, button:not([class])):focus-visible { outline: 2px solid #000; outline-offset: 2px; }
	/* Colours picked in the editor win */
	.yb :scope .wp-block-button__link.has-background { border-color: transparent; }
	.yb :scope .wp-block-button__link.has-background:hover { background-color: inherit; opacity: .85; }
	.yb :scope .wp-block-button__link.has-text-color:hover { color: inherit; }
	/* Outline style */
	.yb :scope :is(.wp-block-button.is-style-outline > .wp-block-button__link, .wp-block-button__link.is-style-outline, input[type="reset"]):not(.has-background) { background-color: #fff; }
	.yb :scope :is(.wp-block-button.is-style-outline > .wp-block-button__link, .wp-block-button__link.is-style-outline, input[type="reset"]):not(.has-text-color) { color: #000; }
	.yb :scope :is(.wp-block-button.is-style-outline > .wp-block-button__link, .wp-block-button__link.is-style-outline, input[type="reset"]):hover { background-color: #000; border-color: #000; color: #fff; }
	.yb :scope .wp-block-button:is(.has-custom-width, .wp-block-button__width-100) .wp-block-button__link { width: 100%; }
	.yb :scope .wp-block-button.wp-block-button__width-25 { width: calc(25% - 9px); }
	.yb :scope .wp-block-button.wp-block-button__width-50 { width: calc(50% - 6px); }
	.yb :scope .wp-block-button.wp-block-button__width-75 { width: calc(75% - 3px); }
	.yb :scope .wp-block-button.wp-block-button__width-100 { width: 100%; }

	/* WPBakery button (vc_btn3). "Custom" styles keep the colours typed in the editor. */
	.yb :scope .vc_btn3-container { margin-bottom: 24px; }
	.yb :scope .vc_btn3-container .vc_general.vc_btn3:not(.vc_btn3-style-custom, .vc_btn3-style-gradient-custom) {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 52px;
		padding-top: 15px;
		padding-bottom: 15px;
		border: 1px solid #000;
		border-radius: 4px;
		background: #000;
		box-shadow: none;
		color: #fff;
		font-family: var(--yb-font);
		font-size: 16px;
		font-weight: 600;
		line-height: 20px;
		letter-spacing: 1.2px;
		text-decoration: none;
		text-transform: uppercase;
		transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out;
	}
	.yb :scope .vc_btn3-container .vc_general.vc_btn3:not(.vc_btn3-style-custom, .vc_btn3-style-gradient-custom, .vc_btn3-icon-left, .vc_btn3-icon-right) { padding-left: 24px; padding-right: 24px; }
	.yb :scope .vc_btn3-container .vc_general.vc_btn3:not(.vc_btn3-style-custom, .vc_btn3-style-gradient-custom):is(:hover, :focus) { background: #fff; border-color: #000; color: #000; }
	.yb :scope .vc_btn3-container .vc_general.vc_btn3:is(.vc_btn3-style-outline, .vc_btn3-style-outline-custom) { background: #fff; color: #000; }
	.yb :scope .vc_btn3-container .vc_general.vc_btn3:is(.vc_btn3-style-outline, .vc_btn3-style-outline-custom):is(:hover, :focus) { background: #000; border-color: #000; color: #fff; }
	.yb :scope .vc_btn3-container .vc_general.vc_btn3:is(.vc_btn3-size-xs, .vc_btn3-size-sm) { min-height: 44px; padding-top: 11px; padding-bottom: 11px; font-size: 14px; letter-spacing: 1px; }
	.yb :scope .vc_btn3-container .vc_general.vc_btn3.vc_btn3-size-lg { min-height: 56px; padding-top: 17px; padding-bottom: 17px; }
	.yb :scope .vc_btn3-container .vc_general.vc_btn3.vc_btn3-block { display: flex; width: 100%; }
	.yb :scope .vc_btn3-container .vc_general.vc_btn3 .vc_btn3-icon { color: inherit; }

	/* WoodMart button element: shapes + sizes normalised, "alternative" colour kept black (red = commerce only) */
	.yb :scope .wd-button-wrapper .btn:is(.btn-shape-round, .btn-shape-semi-round) { border-radius: 4px; }
	.yb :scope .wd-button-wrapper .btn.btn-color-alt { background-color: #000; border-color: #000; color: #fff; }
	.yb :scope .wd-button-wrapper .btn.btn-color-alt:hover { background-color: #fff; border-color: #000; color: #000; }
	.yb :scope .wd-button-wrapper .btn.btn-size-small { min-height: 44px; padding: 11px 20px; font-size: 14px; letter-spacing: 1px; }
	.yb :scope .wd-button-wrapper .btn.btn-size-extra-small { min-height: 36px; padding: 7px 16px; font-size: 13px; letter-spacing: 1px; }
	.yb :scope .wd-button-wrapper .btn.btn-size-large { min-height: 56px; padding: 17px 32px; }
	.yb :scope .wd-button-wrapper .btn.btn-size-extra-large { min-height: 60px; padding: 19px 40px; }
	.yb :scope .wd-button-wrapper .btn.btn-full-width { width: 100%; }

	/* ======================================================================
	   5. Gutenberg blocks (block-library CSS is not loaded on this site, so layout is defined here)
	   ====================================================================== */

	/* Columns */
	.yb :scope .wp-block-columns { display: flex; flex-wrap: nowrap; align-items: normal; gap: 32px 40px; margin: 0 0 32px; }
	.yb :scope .wp-block-columns.are-vertically-aligned-center { align-items: center; }
	.yb :scope .wp-block-columns.are-vertically-aligned-top { align-items: flex-start; }
	.yb :scope .wp-block-columns.are-vertically-aligned-bottom { align-items: flex-end; }
	.yb :scope .wp-block-column { flex: 1 1 0; min-width: 0; overflow-wrap: break-word; }
	.yb :scope .wp-block-column[style*="flex-basis"] { flex-grow: 0; }
	.yb :scope .wp-block-column.is-vertically-aligned-center { align-self: center; }
	.yb :scope .wp-block-column > :last-child { margin-bottom: 0; }

	/* Group */
	.yb :scope .wp-block-group { margin: 0 0 32px; }
	.yb :scope .wp-block-group.has-background { padding: 32px; }
	.yb :scope .wp-block-group > :last-child,
	.yb :scope .wp-block-group__inner-container > :last-child { margin-bottom: 0; }
	.yb :scope .wp-block-group.is-layout-flex { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }

	/* Cover: image + readable white text on a dark wash */
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image) {
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 430px;
		margin: 0 0 32px;
		padding: 48px 32px;
		overflow: hidden;
		background-position: center;
		background-size: cover;
		color: #fff;
	}
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image) :is(.wp-block-cover__image-background, .wp-block-cover__video-background) {
		position: absolute;
		inset: 0;
		z-index: 0;
		width: 100%;
		height: 100%;
		max-width: none;
		max-height: none;
		margin: 0;
		padding: 0;
		border: 0;
		box-shadow: none;
		object-fit: cover;
	}
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image) .wp-block-cover__background { position: absolute; inset: 0; z-index: 1; opacity: .5; background-color: #000; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image) .wp-block-cover__background.has-background-dim-0 { opacity: 0; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image) .wp-block-cover__background:is(.has-background-dim-10) { opacity: .1; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image) .wp-block-cover__background:is(.has-background-dim-20) { opacity: .2; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image) .wp-block-cover__background:is(.has-background-dim-30) { opacity: .3; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image) .wp-block-cover__background:is(.has-background-dim-40) { opacity: .4; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image) .wp-block-cover__background:is(.has-background-dim-60) { opacity: .6; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image) .wp-block-cover__background:is(.has-background-dim-70) { opacity: .7; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image) .wp-block-cover__background:is(.has-background-dim-80) { opacity: .8; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image) .wp-block-cover__background:is(.has-background-dim-90) { opacity: .9; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image) .wp-block-cover__background:is(.has-background-dim-100) { opacity: 1; }
	/* No overlay chosen on a dark cover → add a soft bottom wash so white text stays readable */
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image):not(.is-light):not(:has(> .wp-block-cover__background:not(.has-background-dim-0)))::after {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 1;
		background: linear-gradient(0deg, rgba(0, 0, 0, .55), rgba(0, 0, 0, .15));
		pointer-events: none;
	}
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image) .wp-block-cover__inner-container { position: relative; z-index: 2; width: 100%; max-width: 760px; color: inherit; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image) .wp-block-cover__inner-container > :last-child { margin-bottom: 0; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image):not(.is-light) :is(h1, h2, h3, h4, h5, h6, p, li, blockquote, cite, figcaption):not(.has-text-color) { color: #fff; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image):not(.is-light) a:not([class]) { color: inherit; text-decoration-color: currentColor; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image).is-light { color: #000; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image):not(.is-light) .wp-block-button__link:not(.has-background) { background-color: #fff; border-color: #fff; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image):not(.is-light) .wp-block-button__link:not(.has-text-color) { color: #000; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image):not(.is-light) .wp-block-button__link:not(.has-background):hover { background-color: #000; border-color: #000; color: #fff; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image):not(.is-light) .is-style-outline > .wp-block-button__link:not(.has-background) { background-color: transparent; border-color: #fff; color: #fff; }
	.yb :scope :is(.wp-block-cover, .wp-block-cover-image):not(.is-light) .is-style-outline > .wp-block-button__link:not(.has-background):hover { background-color: #fff; color: #000; }
	/* Content position picker */
	.yb :scope .wp-block-cover.has-custom-content-position:is(.is-position-top-left, .is-position-top-center, .is-position-top-right) { align-items: flex-start; }
	.yb :scope .wp-block-cover.has-custom-content-position:is(.is-position-bottom-left, .is-position-bottom-center, .is-position-bottom-right) { align-items: flex-end; }
	.yb :scope .wp-block-cover.has-custom-content-position:is(.is-position-top-left, .is-position-center-left, .is-position-bottom-left) { justify-content: flex-start; }
	.yb :scope .wp-block-cover.has-custom-content-position:is(.is-position-top-right, .is-position-center-right, .is-position-bottom-right) { justify-content: flex-end; }

	/* Media & Text */
	.yb :scope .wp-block-media-text { display: grid; grid-template-columns: 50% 1fr; grid-template-rows: auto; align-items: center; margin: 0 0 32px; }
	.yb :scope .wp-block-media-text.has-media-on-the-right { grid-template-columns: 1fr 50%; }
	.yb :scope .wp-block-media-text.is-vertically-aligned-top { align-items: start; }
	.yb :scope .wp-block-media-text.is-vertically-aligned-bottom { align-items: end; }
	.yb :scope .wp-block-media-text__media { grid-column: 1; grid-row: 1; margin: 0; align-self: stretch; }
	.yb :scope .wp-block-media-text__media :is(img, video) { display: block; width: 100%; height: auto; }
	.yb :scope .wp-block-media-text:is(.is-image-fill, .is-image-fill-element) .wp-block-media-text__media { position: relative; min-height: 250px; background-size: cover; background-position: center; }
	.yb :scope .wp-block-media-text:is(.is-image-fill, .is-image-fill-element) .wp-block-media-text__media img { position: absolute; inset: 0; height: 100%; object-fit: cover; }
	.yb :scope .wp-block-media-text__content { grid-column: 2; grid-row: 1; padding: 32px 48px; overflow-wrap: break-word; }
	.yb :scope .wp-block-media-text.has-media-on-the-right .wp-block-media-text__media { grid-column: 2; }
	.yb :scope .wp-block-media-text.has-media-on-the-right .wp-block-media-text__content { grid-column: 1; }
	.yb :scope .wp-block-media-text__content > :last-child { margin-bottom: 0; }

	/* Details (Gutenberg "Details" block and any <details>) → FAQ accordion */
	.yb :scope details:where(:not([class]), .wp-block-details) {
		margin: 0;
		padding: 0;
		border: 0;
		border-bottom: 1px solid #D5D5D5;
		background: #fff;
	}
	.yb :scope details:where(:not([class]), .wp-block-details):not(details + details) { margin-top: 24px; border-top: 1px solid #D5D5D5; }
	.yb :scope details:where(:not([class]), .wp-block-details):not(:has(+ details)) { margin-bottom: 32px; }
	.yb :scope details:where(:not([class]), .wp-block-details):first-child { margin-top: 0; }
	.yb :scope details:where(:not([class]), .wp-block-details) > summary {
		position: relative;
		display: block;
		margin: 0;
		padding: 20px 56px 20px 24px;
		color: #000;
		font-size: 17px;
		font-weight: 600;
		line-height: 1.3;
		list-style: none;
		cursor: pointer;
	}
	.yb :scope details:where(:not([class]), .wp-block-details) > summary::-webkit-details-marker { display: none; }
	.yb :scope details:where(:not([class]), .wp-block-details) > summary::marker { content: ""; }
	.yb :scope details:where(:not([class]), .wp-block-details) > summary::after {
		content: "+";
		position: absolute;
		top: 50%;
		right: 24px;
		transform: translateY(-50%);
		font-size: 26px;
		font-weight: 300;
		line-height: 1;
	}
	.yb :scope details:where(:not([class]), .wp-block-details)[open] > summary::after { content: "\2212"; }
	.yb :scope details:where(:not([class]), .wp-block-details) > summary:focus-visible { outline: 2px solid #000; outline-offset: -2px; }
	.yb :scope details:where(:not([class]), .wp-block-details) > :not(summary) { max-width: none; margin-left: 24px; margin-right: 24px; }
	.yb :scope details:where(:not([class]), .wp-block-details)[open] { padding-bottom: 20px; }
	.yb :scope details:where(:not([class]), .wp-block-details) > :last-child:not(summary) { margin-bottom: 0; }

	/* File block */
	.yb :scope .wp-block-file { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 0 0 24px; padding: 16px 20px; border: 1px solid #E0E0E0; border-radius: 4px; background: #fff; font-size: 16px; }
	.yb :scope .wp-block-file > a:not(.wp-block-file__button) { font-weight: 600; }
	.yb :scope .wp-block-file .wp-block-file__button { min-height: 44px; margin-left: auto; padding: 11px 20px; font-size: 14px; letter-spacing: 1px; }
	.yb :scope .wp-block-file .wp-block-file__embed { order: -1; flex: 0 0 100%; width: 100%; margin: 0 0 8px; border: 1px solid #E0E0E0; }

	/* Search block */
	.yb :scope .wp-block-search { max-width: 560px; margin: 0 0 32px; }
	.yb :scope .wp-block-search__label { display: block; margin: 0 0 8px; font-size: 14px; font-weight: 600; }
	.yb :scope .wp-block-search__inside-wrapper { display: flex; gap: 8px; padding: 0; border: 0; background: none; }
	.yb :scope .wp-block-search .wp-block-search__input { flex: 1 1 auto; min-width: 0; height: 50px; margin: 0; padding: 0 16px; border: 1px solid #2C282E; border-radius: 4px; background: #fff; font-size: 16px; }
	.yb :scope .wp-block-search .wp-block-search__button {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 50px;
		margin: 0;
		padding: 0 24px;
		border: 1px solid #000;
		border-radius: 4px;
		background: #000;
		color: #fff;
		font-size: 16px;
		font-weight: 600;
		letter-spacing: 1.2px;
		text-transform: uppercase;
		white-space: nowrap;
	}
	.yb :scope .wp-block-search .wp-block-search__button:hover { background: #fff; color: #000; }
	.yb :scope .wp-block-search .wp-block-search__button.has-icon { padding: 0 14px; }
	.yb :scope .wp-block-search .wp-block-search__button svg { width: 20px; height: 20px; fill: currentColor; }
	.yb :scope .wp-block-search__button-inside .wp-block-search__inside-wrapper { padding: 4px; border: 1px solid #2C282E; border-radius: 4px; background: #fff; }
	.yb :scope .wp-block-search__button-inside .wp-block-search__input { height: 42px; border: 0; }
	.yb :scope .wp-block-search__button-inside .wp-block-search__button { min-height: 42px; }

	/* Spacer keeps its height; generic block spacing */
	.yb :scope .wp-block-spacer { margin: 0; }

	/* ======================================================================
	   6. WPBakery defaults
	   ====================================================================== */

	/* Standard content elements share one bottom rhythm */
	.yb :scope :is(.vc_separator, .vc_message_box, .vc_tta-container, .wpb_single_image, .wpb_gallery, .wpb_video_widget, .vc_cta3-container).wpb_content_element,
	.yb :scope .wpb_text_column.wpb_content_element:not(:has([class*="yb-"])) { margin-bottom: 32px; }
	.yb :scope > .wpb_wrapper > :last-child { margin-bottom: 0; }

	/* Separator */
	.yb :scope .vc_separator { margin-top: 40px; margin-bottom: 40px; }
	.yb :scope .vc_separator.vc_sep_color_grey .vc_sep_line { border-color: #CCC; }
	.yb :scope .vc_separator :is(h4, h2, h3) { margin: 0; padding: 0 16px; font-size: 14px; font-weight: 600; line-height: 20px; letter-spacing: 1.2px; text-transform: uppercase; }

	/* Toggle → FAQ accordion */
	.yb :scope .vc_toggle { margin: 0; padding: 0; border: 0; border-bottom: 1px solid #D5D5D5; background: #fff; font-size: 16px; }
	.yb :scope .vc_toggle:not(.vc_toggle + .vc_toggle) { margin-top: 24px; border-top: 1px solid #D5D5D5; }
	.yb :scope .vc_toggle:not(:has(+ .vc_toggle)) { margin-bottom: 32px; }
	.yb :scope .vc_toggle:first-child { margin-top: 0; }
	.yb :scope .vc_toggle .vc_toggle_title { position: relative; margin: 0; padding: 20px 56px 20px 24px; cursor: pointer; }
	.yb :scope .vc_toggle .vc_toggle_title > :is(h1, h2, h3, h4, h5, h6) { display: block; margin: 0; color: #000; font-size: 17px; font-weight: 600; line-height: 1.3; letter-spacing: 0; text-transform: none; }
	.yb :scope .vc_toggle .vc_toggle_title .vc_toggle_icon { display: none; }
	.yb :scope .vc_toggle .vc_toggle_title::after { content: "+"; position: absolute; top: 50%; right: 24px; transform: translateY(-50%); font-size: 26px; font-weight: 300; line-height: 1; }
	.yb :scope .vc_toggle.vc_toggle_active .vc_toggle_title::after { content: "\2212"; }
	.yb :scope .vc_toggle .vc_toggle_content { margin: 0; padding: 0 24px 20px; }
	.yb :scope .vc_toggle .vc_toggle_content > :last-child { margin-bottom: 0; }

	/* Tabs / tours / accordion (vc_tta) */
	.yb :scope .vc_tta-container { margin-bottom: 32px; }
	.yb :scope .vc_tta-container > h2 { margin: 0 0 16px; }
	.yb :scope .vc_tta.vc_general { font-size: 16px; }
	.yb :scope .vc_tta.vc_general .vc_tta-panels { border: 0; border-radius: 0; background: transparent; }
	/* accordion look (accordions everywhere; tabs on phones where WPBakery shows headings) */
	.yb :scope .vc_tta.vc_general .vc_tta-panel .vc_tta-panel-heading {
		margin: 0;
		border: 0;
		border-radius: 0;
		background: #fff;
		transition: none;
	}
	.yb :scope .vc_tta.vc_general .vc_tta-panel.vc_active .vc_tta-panel-heading,
	.yb :scope .vc_tta.vc_general .vc_tta-panel .vc_tta-panel-heading:hover { background: #fff; border: 0; }
	.yb :scope .vc_tta.vc_general .vc_tta-panel .vc_tta-panel-title { margin: 0; font-family: var(--yb-font); font-size: 17px; font-weight: 600; line-height: 1.3; letter-spacing: 0; text-transform: none; }
	.yb :scope .vc_tta.vc_general .vc_tta-panel .vc_tta-panel-title > a { position: relative; display: block; padding: 20px 56px 20px 24px; color: #000; text-decoration: none; }
	.yb :scope .vc_tta.vc_general .vc_tta-panel .vc_tta-panel-title > a .vc_tta-controls-icon { display: none; }
	.yb :scope .vc_tta.vc_general .vc_tta-panel .vc_tta-panel-title > a::after { content: "+"; position: absolute; top: 50%; right: 24px; transform: translateY(-50%); font-size: 26px; font-weight: 300; line-height: 1; }
	.yb :scope .vc_tta.vc_general .vc_tta-panel.vc_active .vc_tta-panel-title > a::after { content: "\2212"; }
	.yb :scope .vc_tta.vc_general .vc_tta-panel .vc_tta-panel-body { padding: 0 24px 20px; border: 0; border-radius: 0; background: #fff; }
	.yb :scope .vc_tta.vc_general .vc_tta-panel .vc_tta-panel-body > :last-child,
	.yb :scope .vc_tta.vc_general .vc_tta-panel .vc_tta-panel-body > .wpb_text_column:last-child { margin-bottom: 0; }
	.yb :scope .vc_tta.vc_general.vc_tta-accordion .vc_tta-panel { margin: 0; border-bottom: 1px solid #D5D5D5; background: #fff; }
	.yb :scope .vc_tta.vc_general.vc_tta-accordion .vc_tta-panel:first-child { border-top: 1px solid #D5D5D5; }
	/* tabs (desktop): pill buttons like the size-guide switcher, white panel below */
	.yb :scope .vc_tta.vc_general.vc_tta-tabs .vc_tta-tabs-container { margin: 0 0 20px; }
	.yb :scope .vc_tta.vc_general.vc_tta-tabs .vc_tta-tabs-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; border: 0; list-style: none; }
	.yb :scope .vc_tta.vc_general.vc_tta-tabs-position-left .vc_tta-tabs-list { flex-direction: column; }
	.yb :scope .vc_tta.vc_general.vc_tta-tabs .vc_tta-tabs-list .vc_tta-tab { margin: 0; }
	.yb :scope .vc_tta.vc_general.vc_tta-tabs .vc_tta-tabs-list .vc_tta-tab > a {
		display: block;
		margin: 0;
		padding: 10px 18px;
		border: 1px solid #000;
		border-radius: 4px;
		background: #fff;
		color: #000;
		font-family: var(--yb-font);
		font-size: 14px;
		font-weight: 600;
		line-height: 20px;
		letter-spacing: 1.2px;
		text-transform: uppercase;
		transition: color .15s ease-in-out, background-color .15s ease-in-out;
	}
	.yb :scope .vc_tta.vc_general.vc_tta-tabs .vc_tta-tabs-list .vc_tta-tab > a::before,
	.yb :scope .vc_tta.vc_general.vc_tta-tabs .vc_tta-tabs-list .vc_tta-tab > a::after { content: none; display: none; }
	.yb :scope .vc_tta.vc_general.vc_tta-tabs .vc_tta-tabs-list .vc_tta-tab:is(.vc_active, :hover) > a { border-color: #000; background: #000; color: #fff; }
	.yb :scope .vc_tta.vc_general.vc_tta-tabs .vc_tta-panel .vc_tta-panel-body { padding: 24px; }

	/* Message boxes → Lulu alerts */
	.yb :scope .vc_message_box {
		position: relative;
		margin: 0 0 24px;
		padding: 14px 16px 14px 52px;
		border: 1px solid #D5D5D5;
		border-radius: 4px;
		background: #fff;
		box-shadow: none;
		color: #000;
		font-size: 16px;
		line-height: 1.4;
	}
	.yb :scope .vc_message_box > p:last-child { margin-bottom: 0; }
	.yb :scope .vc_message_box .vc_message_box-icon { top: 0; bottom: 0; left: 0; width: 52px; background: transparent; color: inherit; font-size: 20px; }
	.yb :scope .vc_message_box .vc_message_box-icon > * { color: inherit; font-size: 20px; }
	.yb :scope .vc_message_box:is(.vc_color-info, .vc_color-alert-info, .vc_color-blue, .vc_color-sky) { border-color: #4A90E2; background: #D6E4F4; color: #000; }
	.yb :scope .vc_message_box:is(.vc_color-warning, .vc_color-alert-warning, .vc_color-orange, .vc_color-yellow) { border-color: #E3A21A; background: #FFF4E0; color: #000; }
	.yb :scope .vc_message_box:is(.vc_color-success, .vc_color-alert-success, .vc_color-green, .vc_color-turquoise) { border-color: #3C8D52; background: #EAF5EC; color: #000; }
	.yb :scope .vc_message_box:is(.vc_color-danger, .vc_color-alert-danger, .vc_color-red) { border-color: #D02435; background: #FAEBEA; color: #D02435; }

	/* Call to action → grey band with site button */
	.yb :scope .vc_cta3-container { margin-bottom: 32px; }
	.yb :scope .vc_cta3-container .vc_general.vc_cta3:not(.vc_cta3-style-custom) { border: 0; border-radius: 0; background: #F2F2F2; box-shadow: none; }
	.yb :scope .vc_cta3-container .vc_general.vc_cta3 { padding: 40px 32px; color: #000; font-size: 16px; }
	.yb :scope .vc_cta3-container .vc_cta3 h2 { margin: 0 0 8px; font-size: 28px; font-weight: 600; line-height: 1.2; }
	.yb :scope .vc_cta3-container .vc_cta3 h4 { margin: 0 0 12px; color: #57585B; font-size: 17px; font-weight: 400; line-height: 1.3; }
	.yb :scope .vc_cta3-container .vc_cta3 .vc_cta3-content > p:last-child { margin-bottom: 0; }
	.yb :scope .vc_cta3-container .vc_cta3 .vc_btn3-container { margin-bottom: 0; }

	/* ======================================================================
	   7. Forms placed in content — layout only. Field look comes from 00-tokens.css; labels, validation,
	      notices, checkboxes and plugin forms (Contact Form 7, WPForms, Fluent Forms) are owned by
	      auto-emails-forms.css, so plugin markup is deliberately not restyled here.
	   ====================================================================== */

	.yb :scope form :is(input:is([type="text"], [type="email"], [type="tel"], [type="url"], [type="password"], [type="number"], [type="date"], [type="search"]), select, textarea) { max-width: 100%; }
	.yb :scope form :is(p, label, div, span, li) > :is(input:is([type="text"], [type="email"], [type="tel"], [type="url"], [type="password"], [type="number"], [type="date"]), select, textarea) { width: 100%; }
	.yb :scope form:not(.wpcf7-form, .wpforms-form, .frm-fluent-form, .wp-block-search) label:not(:has(input:is([type="checkbox"], [type="radio"]))) { display: block; margin-bottom: 6px; font-size: 14px; font-weight: 600; line-height: 1.3; }
	.yb :scope form:not(.wpcf7-form, .wpforms-form, .frm-fluent-form) label:has(> input:is([type="checkbox"], [type="radio"])) { display: inline-flex; align-items: center; gap: 8px; margin: 0 20px 8px 0; cursor: pointer; }
	.yb :scope form p { max-width: none; }
	.yb :scope form:not(.wpcf7-form, .wpforms-form, .frm-fluent-form) p { margin: 0 0 20px; }
	.yb :scope form fieldset { margin: 0 0 24px; padding: 20px 24px; border: 1px solid #E0E0E0; border-radius: 4px; background: #fff; }
	.yb :scope form legend { padding: 0 8px; font-size: 17px; font-weight: 600; }
	.yb :scope form :is(input[type="submit"], button[type="submit"], button:not([class])) { margin-top: 4px; }
}

/* ==========================================================================
   Tablet
   ========================================================================== */
@media (max-width: 1024px) {
	@scope (:is(.entry-content, .wpb_text_column, .wd-text-block, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel, .term-description, .cms-block, .yb-autoarch-body):not([class*="yb-"]:not(.yb-autoarch-body), :not(body, .yb-autoarch-body)[class*="yb-"] *, .whb-header *, .wd-dropdown *, .wd-side-hidden *, .mobile-nav *, .footer-container *, .website-footer *, .blog-post-loop *, .wd-popup *, .mfp-content .product-quick-view *, #wpadminbar *))
		to ([class*="yb-"]:not(.yb-autoarch-body), .woocommerce, .products, .wd-products, .product-grid-item, .shop_table, .shop_attributes, .woocommerce-product-attributes, .variations, .group_table, #reviews, .woocommerce-Reviews, .comment-respond, .commentlist, .comments-area, .wd-carousel-container, .wd-carousel, .owl-carousel, .wd-slider, .rev_slider_wrapper, .promo-banner, .wd-banner, .wd-tabs, .wd-accordion, .wd-nav, .title-wrapper, .wd-social-icons, .wd-image-hotspot, .wd-instagram, .wd-blog-holder, .wd-portfolio-holder, .wd-countdown-timer, .wd-pricing-plan, .wd-team-member, .wd-testimonials, .testimonials, .wd-menu, .wd-info-box, .widget, .searchform, .wd-search-form, .vc_grid-container, .vc_images_carousel, .wpb_flexslider, .screen-reader-text, #wp-calendar) {
		.yb :scope .wpb_gallery .wpb_image_grid_ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
		.yb :scope :is(.wp-block-gallery, .blocks-gallery-grid):is(.columns-5, .columns-6, .columns-7, .columns-8),
		.yb :scope .gallery:is(.gallery-columns-5, .gallery-columns-6, .gallery-columns-7, .gallery-columns-8, .gallery-columns-9) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
		.yb :scope .wp-block-media-text__content { padding: 24px 32px; }
	}
}

/* ==========================================================================
   Mobile (≤767px): stacked columns, readable sizes, nothing wider than the screen
   ========================================================================== */
@media (max-width: 767px) {
	@scope (:is(.entry-content, .wpb_text_column, .wd-text-block, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel, .term-description, .cms-block, .yb-autoarch-body):not([class*="yb-"]:not(.yb-autoarch-body), :not(body, .yb-autoarch-body)[class*="yb-"] *, .whb-header *, .wd-dropdown *, .wd-side-hidden *, .mobile-nav *, .footer-container *, .website-footer *, .blog-post-loop *, .wd-popup *, .mfp-content .product-quick-view *, #wpadminbar *))
		to ([class*="yb-"]:not(.yb-autoarch-body), .woocommerce, .products, .wd-products, .product-grid-item, .shop_table, .shop_attributes, .woocommerce-product-attributes, .variations, .group_table, #reviews, .woocommerce-Reviews, .comment-respond, .commentlist, .comments-area, .wd-carousel-container, .wd-carousel, .owl-carousel, .wd-slider, .rev_slider_wrapper, .promo-banner, .wd-banner, .wd-tabs, .wd-accordion, .wd-nav, .title-wrapper, .wd-social-icons, .wd-image-hotspot, .wd-instagram, .wd-blog-holder, .wd-portfolio-holder, .wd-countdown-timer, .wd-pricing-plan, .wd-team-member, .wd-testimonials, .testimonials, .wd-menu, .wd-info-box, .widget, .searchform, .wd-search-form, .vc_grid-container, .vc_images_carousel, .wpb_flexslider, .screen-reader-text, #wp-calendar) {

		/* Type */
		.yb :scope h1 { margin: 36px 0 16px; font-size: 26px; }
		.yb :scope h2 { margin: 36px 0 12px; font-size: 24px; }
		.yb :scope h3 { margin: 32px 0 10px; font-size: 21px; }
		.yb :scope h4 { margin: 28px 0 10px; font-size: 18px; }
		.yb :scope :is(h1, h2, h3, h4, h5, h6):first-child { margin-top: 0; }
		.yb :scope blockquote:where(:not([class]), .wp-block-quote) { margin: 24px 0; padding-left: 16px; font-size: 18px; }
		.yb :scope .wp-block-quote:is(.is-style-large, .is-large) { font-size: 20px; }
		.yb :scope .wp-block-pullquote { margin: 32px 0; padding: 28px 0; }
		.yb :scope .wp-block-pullquote p { font-size: 22px; }
		.yb :scope hr:where(:not([class]), .wp-block-separator), .yb :scope .vc_separator { margin-top: 28px; margin-bottom: 28px; }

		/* Floats stop floating */
		.yb :scope :is(.alignleft, .alignright) { float: none; max-width: 100%; margin: 0 0 24px; }
		.yb :scope img.alignleft, .yb :scope img.alignright { display: block; }

		/* Galleries: 2 across (1 stays 1), tighter gutter */
		.yb :scope :is(.wp-block-gallery, .blocks-gallery-grid, .gallery):not(.columns-1, .gallery-columns-1) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
		.yb :scope .wpb_gallery .wpb_image_grid_ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }

		/* Tables */
		.yb :scope table { font-size: 14px; }
		.yb :scope :is(th, td) { padding: 12px; }
		.yb :scope .ybac-scroll :is(th, td) { min-width: 110px; }
		.yb :scope .ybac-scroll th { white-space: nowrap; }

		/* Columns + media/text stack */
		.yb :scope .wp-block-columns:not(.is-not-stacked-on-mobile) { flex-wrap: wrap; gap: 24px; }
		.yb :scope .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; flex-grow: 1; }
		.yb :scope .wp-block-columns.is-not-stacked-on-mobile { gap: 16px; }
		.yb :scope .wp-block-media-text.is-stacked-on-mobile { grid-template-columns: 100% !important; }
		.yb :scope .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__media { grid-column: 1; grid-row: 1; }
		.yb :scope .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content { grid-column: 1; grid-row: 2; padding: 20px 0 0; }
		.yb :scope .wp-block-media-text.is-stacked-on-mobile.has-background .wp-block-media-text__content { padding: 20px; }
		.yb :scope .wp-block-group.has-background { padding: 24px 20px; }

		/* Cover */
		.yb :scope :is(.wp-block-cover, .wp-block-cover-image) { min-height: 320px; padding: 32px 20px; }

		/* WPBakery columns: gap between stacked columns of plain rows */
		.yb :scope .vc_row.wpb_row:not([class*="vc_custom_"], :has([class*="yb-"], .wd-products, .products, .promo-banner, .wd-carousel-container)) > .vc_column_container:not(:last-child) { margin-bottom: 24px; }

		/* Buttons: a lone block button goes full width for thumbs */
		.yb :scope .wp-block-buttons:not(.is-content-justification-center, .is-content-justification-right) > .wp-block-button:only-child,
		.yb :scope .wp-block-buttons:not(.is-content-justification-center, .is-content-justification-right) > .wp-block-button:only-child .wp-block-button__link { width: 100%; }
		.yb :scope .wp-block-file .wp-block-file__button { width: 100%; margin-left: 0; }
		.yb :scope .wp-block-search__inside-wrapper { flex-wrap: wrap; }
		.yb :scope .wp-block-search:not(.wp-block-search__button-inside) .wp-block-search__button { flex: 1 1 100%; }

		/* Accordions / boxes */
		.yb :scope details:where(:not([class]), .wp-block-details) > summary,
		.yb :scope .vc_toggle .vc_toggle_title,
		.yb :scope .vc_tta.vc_general .vc_tta-panel .vc_tta-panel-title > a { padding: 18px 48px 18px 16px; }
		.yb :scope details:where(:not([class]), .wp-block-details) > summary::after,
		.yb :scope .vc_toggle .vc_toggle_title::after,
		.yb :scope .vc_tta.vc_general .vc_tta-panel .vc_tta-panel-title > a::after { right: 16px; }
		.yb :scope details:where(:not([class]), .wp-block-details) > :not(summary) { margin-left: 16px; margin-right: 16px; }
		.yb :scope .vc_toggle .vc_toggle_content,
		.yb :scope .vc_tta.vc_general .vc_tta-panel .vc_tta-panel-body { padding: 0 16px 18px; }
		.yb :scope .vc_tta.vc_general.vc_tta-tabs .vc_tta-panel { margin: 0; border-bottom: 1px solid #D5D5D5; background: #fff; }
		.yb :scope .vc_tta.vc_general.vc_tta-tabs .vc_tta-panel:first-child { border-top: 1px solid #D5D5D5; }
		.yb :scope .vc_tta.vc_general.vc_tta-tabs .vc_tta-panel .vc_tta-panel-body { padding: 0 16px 18px; }
		.yb :scope .vc_cta3-container .vc_general.vc_cta3 { padding: 28px 20px; }
		.yb :scope .vc_cta3-container .vc_cta3 h2 { font-size: 24px; }
		.yb :scope .vc_cta3-container .vc_cta3 .vc_cta3-actions { display: block; margin-top: 16px; }

		/* Nothing may push the page sideways */
		.yb :scope :is(pre, iframe, video, object, embed, .wp-block-embed, .wp-caption, .vc_single_image-wrapper) { max-width: 100%; }
		.yb :scope form fieldset { padding: 16px; }
	}
}

/* ==========================================================================
   New plain pages (body.yb-info-page, set by inc/areas/auto-pro.php for pages NOT built with WPBakery):
   grey ground + one white reading panel, page title added by inc/areas/auto-content.php when missing.
   ========================================================================== */
body.yb.yb-info-page,
.yb.yb-info-page .website-wrapper { background-color: #F9F9F9; }
.yb.yb-info-page .main-page-wrapper { background-color: transparent; padding-top: 40px; }
.yb.yb-info-page .site-content > article.page > .entry-content {
	max-width: 920px;
	margin: 0 auto 64px;
	padding: 56px 64px;
	background: #fff;
}
.yb.yb-info-page .site-content > article.page > .entry-content > h1:first-child {
	margin: 0 0 24px;
	font-size: 36px;
	font-weight: 600;
	line-height: 1.2;
}
.yb.yb-info-page .site-content > article.page > .entry-content > :is(.wp-block-cover, .alignfull):first-child { margin: -56px -64px 40px; max-width: none; width: auto; }
@media (max-width: 767px) {
	.yb.yb-info-page .main-page-wrapper { padding-top: 16px; }
	.yb.yb-info-page .site-content > article.page > .entry-content { margin-bottom: 40px; padding: 28px 16px; }
	.yb.yb-info-page .site-content > article.page > .entry-content > h1:first-child { font-size: 28px; }
	.yb.yb-info-page .site-content > article.page > .entry-content > :is(.wp-block-cover, .alignfull):first-child { margin: -28px -16px 28px; }
}
