@media(max-width:1024px){.footer-grid{grid-template-columns:repeat(2,1fr)}.fallback-features{grid-template-columns:repeat(2,1fr)}.primary-navigation{position:absolute;top:100%;left:0;right:0;background:#fff;border-top:1px solid #eee;display:none;padding:10px 20px 20px;box-shadow:0 18px 40px rgba(7,22,55,.12)}.primary-navigation.is-open{display:block}.primary-navigation ul{display:block}.primary-navigation a{padding:12px 4px}.menu-toggle{display:block;margin-left:auto}.mainnav{position:relative}.header-icons{margin-left:0}.topbar-inner{flex-wrap:wrap;padding:8px 0}.topbar-actions{margin-left:auto}}
@media(max-width:680px){.container{width:min(100% - 28px,1280px)}.topbar-contact{gap:8px;flex-direction:column;align-items:flex-start}.topbar-actions span{display:none}.mainnav{height:68px;gap:10px}.site-branding{min-width:0;flex:1}.custom-logo{max-width:165px;max-height:45px}.header-icons>a:first-child{display:none}.page-hero{padding:52px 0}.fallback-hero{min-height:520px}.fallback-features{grid-template-columns:1fr;margin-top:20px}.footer-grid{grid-template-columns:1fr}.footer-bottom-inner{align-items:flex-start;flex-direction:column}.content-area{padding:35px 0}.content-card,.page-content{padding:22px}.payment-strip{max-width:100%}}

@media(max-width:900px){.header-switchers{gap:5px}.header-switchers .tdl-currency,.header-switchers .tdl-language{padding:0 5px}.header-switchers .tdl-language-provider{max-width:105px}}
@media(max-width:680px){.header-switchers .tdl-currency select{min-width:50px}.header-switchers .tdl-language{max-width:76px;min-height:38px}.header-switchers .tdl-language-provider{max-width:76px;overflow:hidden}.header-switchers .tdl-language select{max-width:58px;font-size:10px}.header-icons{gap:5px}.header-icons>a{width:38px;height:38px}.header-switchers .tdl-currency{min-height:38px}.header-account{display:none!important}.tdl-switcher-icon{display:none}}
@media(max-width:680px){.footer-utility{justify-content:flex-start}.footer-switcher .tdl-language-provider{max-width:140px;overflow:hidden}}


/* =========================================================
   3D-Lab v1.9.4 — mobile header / hamburger drawer
   ========================================================= */
@media(max-width:1024px){
	/* Keep desktop language/currency out of the cramped top row. */
	.header-icons>.header-switchers{display:none!important}

	.mainnav{
		position:relative;
		display:flex;
		align-items:center;
		gap:8px;
		min-width:0
	}
	.site-branding{
		order:1;
		flex:1 1 auto;
		min-width:0
	}
	.header-icons{
		order:2;
		flex:0 0 auto;
		display:flex;
		align-items:center;
		gap:7px;
		margin-left:auto
	}
	.header-icons .tdl-cart-popover{order:1}
	.header-icons .tdl-account-popover{order:2}
	.menu-toggle{
		order:3;
		flex:0 0 auto;
		display:block!important;
		margin-left:0!important;
		width:42px;
		height:42px;
		padding:7px;
		border:1px solid var(--tdl-border);
		border-radius:12px;
		background:#fff;
		cursor:pointer
	}
	.menu-toggle span:not(.screen-reader-text){
		width:22px;
		height:2px;
		margin:4px auto;
		border-radius:3px
	}

	/* Drawer sits directly beneath the sticky mobile header. */
	.primary-navigation{
		order:4;
		position:absolute!important;
		left:0!important;
		right:0!important;
		top:100%!important;
		display:none;
		padding:0!important;
		background:#fff;
		border:1px solid #e5e8f0;
		border-top:0;
		border-radius:0 0 18px 18px;
		box-shadow:0 22px 48px rgba(7,22,55,.17);
		overflow:hidden;
		z-index:100300
	}
	.primary-navigation.is-open{display:block}
	.tdl-mobile-menu-scroll{
		max-height:calc(100dvh - 92px);
		overflow-y:auto;
		overscroll-behavior:contain;
		padding:12px 18px 18px
	}
	.primary-navigation ul{
		display:block!important;
		margin:0!important;
		padding:0!important
	}
	.primary-navigation li{margin:0!important}
	.primary-navigation a{
		display:flex!important;
		align-items:center;
		min-height:45px;
		padding:10px 5px!important;
		border-bottom:1px solid #f0f2f6;
		font-size:14px
	}
	.primary-navigation li:last-child>a{border-bottom:0}

	/* Currency and language live here on mobile. */
	.tdl-mobile-menu-tools{
		display:block;
		margin-top:14px;
		padding:15px;
		border:1px solid #e5e8f0;
		border-radius:14px;
		background:linear-gradient(135deg,#faf9ff,#f7fbff)
	}
	.tdl-mobile-tools-title{
		display:block;
		margin-bottom:10px;
		color:#7a8498;
		font-size:10px;
		font-weight:900;
		letter-spacing:.11em;
		text-transform:uppercase
	}
	.tdl-mobile-tool-row{
		display:grid;
		grid-template-columns:90px minmax(0,1fr);
		align-items:center;
		gap:12px;
		min-height:48px
	}
	.tdl-mobile-tool-row+.tdl-mobile-tool-row{
		border-top:1px solid #e8ebf2
	}
	.tdl-mobile-tool-label{
		color:#26324d;
		font-size:12px;
		font-weight:850
	}
	.tdl-mobile-tool-control{
		display:flex;
		justify-content:flex-end;
		min-width:0
	}
	.tdl-mobile-tool-control>.tdl-currency,
	.tdl-mobile-tool-control>.tdl-language{
		width:auto;
		max-width:100%;
		min-height:38px;
		margin:0!important
	}
	.tdl-mobile-tool-control select{
		max-width:155px
	}

	/* Both customer icons remain visible. */
	.header-account,
	.header-cart{
		display:grid!important;
		width:42px!important;
		height:42px!important
	}

	/* Popovers align under their icon without breaking the header. */
	.tdl-header-popover{position:relative!important}
	.tdl-header-dropdown{
		top:calc(100% + 10px)!important;
		right:0!important;
		left:auto!important
	}
	.tdl-account-dropdown{width:min(285px,calc(100vw - 28px))!important}
	.tdl-cart-dropdown{width:min(370px,calc(100vw - 28px))!important}

	body.tdl-mobile-menu-open{overflow:hidden}
}

@media(max-width:680px){
	/* Keep the mobile header compact and clean. */
	.site-header .topbar{display:none!important}
	.mainnav-wrap{background:rgba(255,255,255,.985)!important}
	.mainnav{
		height:66px!important;
		gap:6px!important
	}
	.site-branding{max-width:calc(100% - 142px)}
	.custom-logo{
		display:block;
		width:auto;
		max-width:145px!important;
		max-height:43px!important
	}
	.header-icons{gap:5px!important}
	.header-account,
	.header-cart,
	.menu-toggle{
		width:39px!important;
		height:39px!important;
		min-width:39px!important
	}
	.menu-toggle span:not(.screen-reader-text){width:20px}

	.primary-navigation{
		left:-14px!important;
		right:-14px!important;
		border-left:0;
		border-right:0;
		border-radius:0 0 16px 16px
	}
	.tdl-mobile-menu-scroll{
		max-height:calc(100dvh - 66px);
		padding:10px 18px calc(18px + env(safe-area-inset-bottom))
	}
	.tdl-mobile-tool-row{grid-template-columns:78px minmax(0,1fr)}

	/* The GTranslate/TranslatePress control can expand naturally in the drawer. */
	.tdl-mobile-tool-control .tdl-language-gtranslate,
	.tdl-mobile-tool-control .tdl-language-translatepress{
		max-width:100%!important;
		overflow:visible!important
	}
	.tdl-mobile-tool-control .tdl-trp-menu{
		left:auto!important;
		right:0!important
	}
}


/* =========================================================
   3D-Lab v2.0 responsive header/footer
   ========================================================= */
@media(max-width:1180px){
	.tdl-site-header-v2 .header-icons>.header-switchers,
	.tdl-site-header-v2 .header-switchers{display:none!important}

	.tdl-site-header-v2 .mainnav{
		position:relative;
		height:72px!important;
		gap:8px;
	}
	.tdl-site-header-v2 .site-branding{
		order:1;
		flex:1 1 auto;
		max-width:none;
	}
	.tdl-site-header-v2 .custom-logo{max-width:200px;max-height:50px}

	.tdl-site-header-v2 .primary-navigation{
		position:absolute!important;
		left:0!important;
		right:0!important;
		top:100%!important;
		z-index:100500;
		display:none;
		padding:0!important;
		border:1px solid #e3e8ef;
		border-top:0;
		border-radius:0 0 16px 16px;
		background:#fff;
		box-shadow:0 22px 50px rgba(7,27,55,.16);
		overflow:hidden;
	}
	.tdl-site-header-v2 .primary-navigation.is-open{display:block}
	.tdl-site-header-v2 .primary-navigation ul{display:block!important}
	.tdl-site-header-v2 .primary-navigation a{
		display:flex!important;
		align-items:center;
		min-height:44px;
		padding:10px 7px!important;
		border-bottom:1px solid #edf1f5;
	}
	.tdl-site-header-v2 .primary-navigation .menu-item-quote>a{
		margin:8px 0 2px;
		justify-content:center;
		border-bottom:0;
	}
	.tdl-site-header-v2 .primary-navigation .menu-item-has-children>a:after{display:none}
	.tdl-site-header-v2 .primary-navigation .sub-menu{
		position:static;
		width:auto;
		margin:0;
		padding:0 0 4px 16px;
		border:0;
		border-radius:0;
		box-shadow:none;
		opacity:1;
		visibility:visible;
		transform:none;
		background:#f8fbfe;
	}
	.tdl-site-header-v2 .primary-navigation .sub-menu a{
		min-height:40px;
		font-size:12px;
		padding-left:14px!important;
	}
	.tdl-site-header-v2 .tdl-mobile-menu-scroll{
		max-height:calc(100dvh - 88px);
		overflow:auto;
		padding:11px 18px 18px;
	}
	.tdl-site-header-v2 .tdl-mobile-menu-tools{
		display:block;
		margin-top:14px;
		padding:14px;
		border:1px solid #e4e9f0;
		border-radius:13px;
		background:#f7faff;
	}
	.tdl-site-header-v2 .header-tools{
		order:2;
		margin-left:auto;
	}
	.tdl-site-header-v2 .header-icons{order:1}
	.tdl-site-header-v2 .tdl-cart-popover{order:1}
	.tdl-site-header-v2 .tdl-account-popover{order:2}
	.tdl-site-header-v2 .menu-toggle{
		order:3;
		display:block!important;
		width:42px;height:42px;
		margin-left:0!important;
		border:1px solid #e0e6ee;
		border-radius:11px;
		background:#fff;
	}
	.tdl-site-header-v2 .header-cart,
	.tdl-site-header-v2 .header-account{width:42px!important;height:42px!important}
	.tdl-footer-v2 .footer-grid-v2{grid-template-columns:1.35fr 1fr 1fr}
	.tdl-footer-v2 .footer-contact{grid-column:auto}
}

@media(max-width:820px){
	.tdl-site-header-v2 .topbar-actions .tdl-topbar-note{display:none}
	.tdl-footer-v2 .footer-grid-v2{grid-template-columns:1fr 1fr}
}

@media(max-width:680px){
	.tdl-site-header-v2 .topbar{display:none}
	.tdl-site-header-v2 .mainnav{height:66px!important}
	.tdl-header-container{width:min(100% - 28px,1440px)}
	.tdl-site-header-v2 .site-branding{max-width:calc(100% - 140px)}
	.tdl-site-header-v2 .custom-logo{max-width:150px;max-height:42px}
	.tdl-site-header-v2 .header-tools{gap:5px}
	.tdl-site-header-v2 .header-account,
	.tdl-site-header-v2 .header-cart,
	.tdl-site-header-v2 .menu-toggle{
		width:39px!important;height:39px!important;min-width:39px!important
	}
	.tdl-site-header-v2 .primary-navigation{
		left:-14px!important;
		right:-14px!important;
	}
	.tdl-site-header-v2 .tdl-mobile-menu-scroll{max-height:calc(100dvh - 66px)}
	.tdl-footer-v2 .footer-grid-v2{grid-template-columns:1fr}
	.tdl-footer-v2 .footer-bottom-inner,
	.tdl-footer-v2 .footer-bottom-copy,
	.tdl-footer-v2 .footer-bottom-links{
		align-items:flex-start;
		flex-direction:column;
	}
	.footer-logo-card{max-width:100%}
}


/* v2.0.1 managed-menu responsive behavior */
@media(max-width:1280px){
	.tdl-site-header-v201 .header-switchers{display:none!important}
	.tdl-site-header-v201 .mainnav{height:70px!important}
	.tdl-site-header-v201 .site-branding{
		flex:1 1 auto!important;
		min-width:0!important;
		max-width:none!important;
	}
	.tdl-site-header-v201 .custom-logo-link,
	.tdl-site-header-v201 .tdl-official-logo-fallback{height:60px!important}
	.tdl-site-header-v201 .custom-logo,
	.tdl-site-header-v201 .tdl-official-logo-fallback img{max-height:58px!important;max-width:145px!important}

	.tdl-site-header-v201 .primary-navigation{
		position:absolute!important;
		left:0!important;
		right:0!important;
		top:100%!important;
		z-index:1000020!important;
		display:none!important;
		padding:0!important;
		background:#fff!important;
		border:1px solid #e3e9f0!important;
		border-top:0!important;
		border-radius:0 0 16px 16px!important;
		box-shadow:0 20px 50px rgba(7,27,55,.17)!important;
	}
	.tdl-site-header-v201 .primary-navigation.is-open{display:block!important}
	.tdl-site-header-v201 .tdl-mobile-menu-scroll{
		max-height:calc(100dvh - 78px)!important;
		overflow:auto!important;
		padding:12px 18px 18px!important;
	}
	.tdl-site-header-v201 .tdl-managed-menu{
		display:block!important;
		width:100%!important;
	}
	.tdl-site-header-v201 .tdl-managed-menu>li>a{
		width:100%!important;
		min-height:43px!important;
		padding:10px 8px!important;
		border-bottom:1px solid #edf1f5!important;
		justify-content:space-between!important;
	}
	.tdl-site-header-v201 .tdl-managed-menu>.menu-item-quote>a{
		justify-content:center!important;
		margin:9px 0 3px!important;
		border-bottom:0!important;
	}
	.tdl-site-header-v201 .tdl-managed-menu .sub-menu{
		position:static!important;
		width:100%!important;
		padding:3px 0 6px 15px!important;
		border:0!important;
		box-shadow:none!important;
		border-radius:0!important;
		background:#f7faff!important;
		opacity:1!important;
		visibility:visible!important;
		pointer-events:auto!important;
		transform:none!important;
	}
	.tdl-site-header-v201 .tdl-managed-menu .sub-menu a{
		border-bottom:1px solid #edf1f5!important;
	}
	.tdl-site-header-v201 .menu-toggle{
		display:block!important;
		order:3!important;
		width:40px!important;height:40px!important;
		min-width:40px!important;
		border:1px solid #e0e6ee!important;
		border-radius:10px!important;
		background:#fff!important;
	}
	.tdl-site-header-v201 .header-icons{order:1!important}
	.tdl-site-header-v201 .tdl-cart-popover{order:1!important}
	.tdl-site-header-v201 .tdl-account-popover{order:2!important}
	.tdl-site-header-v201 .tdl-mobile-menu-tools{display:block!important}
}
@media(max-width:782px){
	body.admin-bar .tdl-site-header-v201{top:46px!important}
}
@media(max-width:680px){
	.tdl-site-header-v201 .topbar{display:none!important}
	.tdl-site-header-v201 .mainnav{height:64px!important}
	.tdl-site-header-v201 .custom-logo-link,
	.tdl-site-header-v201 .tdl-official-logo-fallback{height:54px!important}
	.tdl-site-header-v201 .custom-logo,
	.tdl-site-header-v201 .tdl-official-logo-fallback img{max-width:120px!important;max-height:52px!important}
	.tdl-site-header-v201 .tdl-mobile-menu-scroll{max-height:calc(100dvh - 64px)!important}
}


/* =========================================================
   3D-Lab v2.0.5 — GLOBAL MOBILE/TABLET VIEWPORT WIDTH REPAIR
   =========================================================
   A defensive site-shell repair for cases where a page/plugin/browser
   stylesheet causes the document itself to occupy only part of the
   emulated/mobile viewport.

   Unlike the earlier page-specific repairs, this applies to the shell:
   HTML/BODY → WP admin bar → header → main → footer.
   ========================================================= */

@media(max-width:1280px){

	/* The document must equal the real viewport — never a percentage of a
	   constrained parent. 100dvw is preferred; 100vw is the fallback. */
	html.tdl-viewport-width-repair,
	html.tdl-viewport-width-repair body{
		width:100vw!important;
		width:100dvw!important;
		min-width:0!important;
		max-width:100vw!important;
		max-width:100dvw!important;
		margin-left:0!important;
		margin-right:0!important;
		padding-left:0!important;
		padding-right:0!important;
		transform:none!important;
		zoom:1!important;
		overflow-x:clip!important;
	}

	/* WordPress' logged-in toolbar must not inherit a narrowed document box. */
	html.tdl-viewport-width-repair #wpadminbar{
		left:0!important;
		right:auto!important;
		width:100vw!important;
		width:100dvw!important;
		min-width:0!important;
		max-width:100vw!important;
		max-width:100dvw!important;
		transform:none!important;
	}

	/* Major theme shells. */
	html.tdl-viewport-width-repair .site-header,
	html.tdl-viewport-width-repair .site-main,
	html.tdl-viewport-width-repair #primary,
	html.tdl-viewport-width-repair .tdl-footer-v2,
	html.tdl-viewport-width-repair footer.site-footer{
		display:block;
		width:100vw!important;
		width:100dvw!important;
		min-width:0!important;
		max-width:100vw!important;
		max-width:100dvw!important;
		margin-left:0!important;
		margin-right:0!important;
		transform:none!important;
	}

	/* Header inner container is viewport-based so it cannot become half-width
	   if an outside .container rule is injected later. */
	html.tdl-viewport-width-repair .tdl-site-header-v201 .tdl-header-container{
		width:calc(100vw - 28px)!important;
		width:calc(100dvw - 28px)!important;
		min-width:0!important;
		max-width:calc(100vw - 28px)!important;
		max-width:calc(100dvw - 28px)!important;
		margin-left:auto!important;
		margin-right:auto!important;
	}

	html.tdl-viewport-width-repair .tdl-site-header-v201 .mainnav-wrap,
	html.tdl-viewport-width-repair .tdl-site-header-v201 .topbar{
		width:100vw!important;
		width:100dvw!important;
		min-width:0!important;
		max-width:100vw!important;
		max-width:100dvw!important;
	}

	html.tdl-viewport-width-repair .tdl-site-header-v201 .mainnav{
		width:100%!important;
		max-width:100%!important;
		min-width:0!important;
	}

	/* Keep branding and tools from creating an artificial minimum page width. */
	html.tdl-viewport-width-repair .tdl-site-header-v201 .site-branding,
	html.tdl-viewport-width-repair .tdl-site-header-v201 .header-tools,
	html.tdl-viewport-width-repair .tdl-site-header-v201 .header-icons,
	html.tdl-viewport-width-repair .tdl-site-header-v201 .tdl-header-popover{
		min-width:0!important;
		max-width:100%!important;
	}

	/* The AddiTech Store plugin owns these on /shop/. Make them explicitly
	   viewport-based instead of parent-percentage based. */
	html.tdl-viewport-width-repair body.woocommerce-shop .atl-store-shop-main,
	html.tdl-viewport-width-repair body.woocommerce-shop .atl-store-shop-banner{
		width:100vw!important;
		width:100dvw!important;
		min-width:0!important;
		max-width:100vw!important;
		max-width:100dvw!important;
		margin-left:0!important;
		margin-right:0!important;
	}

	html.tdl-viewport-width-repair body.woocommerce-shop .atl-store-shop-banner-inner,
	html.tdl-viewport-width-repair body.woocommerce-shop .atl-store-shop-page{
		width:calc(100vw - 28px)!important;
		width:calc(100dvw - 28px)!important;
		min-width:0!important;
		max-width:calc(100vw - 28px)!important;
		max-width:calc(100dvw - 28px)!important;
		margin-left:auto!important;
		margin-right:auto!important;
	}

	html.tdl-viewport-width-repair body.woocommerce-shop .woocommerce,
	html.tdl-viewport-width-repair body.woocommerce-shop .woocommerce-notices-wrapper,
	html.tdl-viewport-width-repair body.woocommerce-shop .atl-store-filter-wrap,
	html.tdl-viewport-width-repair body.woocommerce-shop .woocommerce-ordering,
	html.tdl-viewport-width-repair body.woocommerce-shop ul.products{
		width:100%!important;
		min-width:0!important;
		max-width:100%!important;
		box-sizing:border-box!important;
	}

	/* Single product / normal page defensive shell. */
	html.tdl-viewport-width-repair body.single-product .woo-container,
	html.tdl-viewport-width-repair .tdl-elementor-full-width,
	html.tdl-viewport-width-repair .tdl-elementor-page{
		min-width:0!important;
		max-width:100vw!important;
		max-width:100dvw!important;
	}

	/* Footer inner containers receive the same viewport-safe treatment. */
	html.tdl-viewport-width-repair .tdl-footer-v2 .container{
		width:calc(100vw - 28px)!important;
		width:calc(100dvw - 28px)!important;
		min-width:0!important;
		max-width:calc(100vw - 28px)!important;
		max-width:calc(100dvw - 28px)!important;
		margin-left:auto!important;
		margin-right:auto!important;
	}
}

/* Phones get slightly tighter gutters. */
@media(max-width:680px){
	html.tdl-viewport-width-repair .tdl-site-header-v201 .tdl-header-container,
	html.tdl-viewport-width-repair body.woocommerce-shop .atl-store-shop-banner-inner,
	html.tdl-viewport-width-repair body.woocommerce-shop .atl-store-shop-page,
	html.tdl-viewport-width-repair .tdl-footer-v2 .container{
		width:calc(100vw - 20px)!important;
		width:calc(100dvw - 20px)!important;
		max-width:calc(100vw - 20px)!important;
		max-width:calc(100dvw - 20px)!important;
	}
}
