/*
Theme Name:  Autovio Child Theme
Description: Child theme for the Autovio theme
Author:      ThemetechMount
Author URI:  https://www.themetechmount.com/
Template:    autovio
Version:     0.3
Tags:        light, white, two-columns, three-columns, four-columns, right-sidebar, left-sidebar, responsive, retina
*/


/* NOTE: Main theme's style.css file is already added in head tag. */

/* =Theme customization starts here
-------------------------------------------------------------- */

/* Preserve the source category spelling, e.g. "Крылья для AUDI". */
.tax-product_cat .tm-titlebar .breadcrumb-wrapper,
.tax-product_cat .tm-titlebar .breadcrumb-wrapper a,
.tax-product_cat .tm-titlebar .breadcrumb-wrapper span {
	text-transform: none;
}

/* This is a call-to-order catalogue, so no cart or mini-cart is exposed. */
body .site-header .headercart,
body .site-header .tm-header-wc-cart-link,
body .site-header .themetechmount-header-cart-link-wrapper,
body .headercart.headercart-block,
body .headercart .toggle .widget.widget_shopping_cart,
body .widget_shopping_cart,
body .woocommerce-mini-cart,
body .add_to_cart_button,
body .ajax_add_to_cart,
body .single_add_to_cart_button {
	display: none !important;
}

.main-holder .site-content ul.products li.product .tm-shop-icon .ap-product-details,
.ap-product-details {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 0 19px;
	border: 1px solid var(--tm-skincolor, #fdb819);
	border-radius: 0;
	background: transparent;
	color: #1c2024 !important;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none !important;
	transition: background-color .18s ease, color .18s ease, transform .18s ease;
}

.main-holder .site-content ul.products li.product .tm-shop-icon .ap-product-details:hover,
.ap-product-details:hover {
	background: var(--tm-skincolor, #fdb819);
	color: #16191d !important;
	transform: translateY(-1px);
}

.woocommerce div.product .summary .ap-call-button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 52px;
	margin-top: 22px;
	padding: 0 23px;
	border: 0;
	border-radius: 0;
	background: var(--tm-skincolor, #fdb819);
	color: #181b1e !important;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .03em;
	text-decoration: none !important;
	transition: background-color .18s ease, transform .18s ease;
}

.woocommerce div.product .summary .ap-call-button:hover {
	background: #e7a700;
	color: #181b1e !important;
	transform: translateY(-1px);
}

.woocommerce div.product .summary .ap-call-number {
	padding-left: 10px;
	border-left: 1px solid rgba(0, 0, 0, .22);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0;
}

/* A 16:9 shell is present initially; the YouTube iframe itself is created only
 * when the visitor opens the product's Video tab. */
.woocommerce div.product .woocommerce-tabs .ap-product-video {
	position: relative;
	width: min(100%, 900px);
	aspect-ratio: 16 / 9;
	margin: 12px 0;
	background: #171a1d;
}

.woocommerce div.product .woocommerce-tabs .ap-product-video iframe,
.woocommerce div.product .woocommerce-tabs .ap-product-video__placeholder {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.woocommerce div.product .woocommerce-tabs .ap-product-video__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	color: #fff;
	font-size: 14px;
	text-align: center;
}

/* The related-products heading is deliberately a paragraph for document
 * outline semantics; give it the exact presentation of product H3 headings
 * such as «Характеристики». */
.single .main-holder .related.products .related-products-heading {
	margin-top: 20px;
	margin-bottom: 10px;
	font-family: "Poppins", Arial, Helvetica, sans-serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 24px;
	color: #000;
}

/* Desktop catalogue: dropdown layer, never a block that pushes page content. */
@media (min-width: 1200px) {
	#site-header-menu,
	#site-header-menu .tm-stickable-header,
	#site-header-menu .tm-container-for-header,
	#site-navigation,
	#verticalmenu-wrapper {
		overflow: visible;
	}

	#site-header-menu #verticalmenu-wrapper {
		position: relative;
		z-index: 1002;
	}

	#site-header-menu #verticalmenu-wrapper .vertical-menu-category .title {
		cursor: pointer;
		user-select: none;
	}

	#site-header-menu #verticalmenu-wrapper .vertical-nav-menu {
		position: absolute;
		top: 100%;
		left: 0;
		z-index: 1003;
		width: 270px;
	}

	#site-header-menu #verticalmenu-wrapper .vertical-nav-menu > .nav-menu {
		display: block !important;
		visibility: hidden;
		opacity: 0;
		pointer-events: none;
		transform: translateY(-6px);
		margin: 0;
		background: #fff;
		box-shadow: 0 14px 28px rgba(0, 0, 0, 0.18);
		transition: opacity 160ms ease, transform 160ms ease, visibility 0s linear 160ms;
	}

	#site-header-menu #verticalmenu-wrapper.is-catalog-open .vertical-nav-menu > .nav-menu {
		visibility: visible;
		opacity: 1;
		pointer-events: auto;
		transform: translateY(0);
		transition-delay: 0s;
	}
}

/* Layout 3-inspired storefront composition for Autoplastic. */
.autoplastic-home {
	--ap-ink: #16191d;
	--ap-steel: #303840;
	--ap-accent: #fdb819;
	--ap-muted: #f3f5f6;
	color: var(--ap-ink);
	background: #fff;
}

.autoplastic-home .ap-container {
	width: min(1170px, calc(100% - 40px));
	margin: 0 auto;
}

.autoplastic-home .ap-hero {
	position: relative;
	min-height: 575px;
	display: flex;
	align-items: center;
	overflow: hidden;
	background: #15191d url('assets/images/autoplastic-hero-workshop.png') center center / cover no-repeat;
}

.autoplastic-home .ap-hero:before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(11, 14, 17, .96) 0%, rgba(12, 15, 18, .75) 43%, rgba(12, 15, 18, .12) 74%, rgba(12, 15, 18, .18) 100%);
}

.autoplastic-home .ap-hero-copy {
	position: relative;
	max-width: 620px;
	padding: 80px 0;
	color: #fff;
}

.autoplastic-home .ap-kicker {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 18px;
	color: var(--ap-accent);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.autoplastic-home .ap-kicker:before {
	content: '';
	width: 34px;
	height: 2px;
	background: currentColor;
}

.autoplastic-home .ap-hero h1 {
	margin: 0 0 20px;
	color: #fff;
	font-size: clamp(38px, 5vw, 64px);
	line-height: 1.05;
	font-weight: 700;
	letter-spacing: -.035em;
}

.autoplastic-home .ap-hero p {
	max-width: 520px;
	margin: 0 0 30px;
	font-size: 18px;
	line-height: 1.65;
	color: rgba(255, 255, 255, .82);
}

.autoplastic-home .ap-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.autoplastic-home .ap-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 27px;
	border: 2px solid var(--ap-accent);
	background: var(--ap-accent);
	color: #17191b !important;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	text-decoration: none !important;
	transition: transform .2s ease, background .2s ease, color .2s ease;
}
.autoplastic-home .ap-button:hover { transform: translateY(-2px); background: #fff; border-color: #fff; color: #15191d !important; }
.autoplastic-home .ap-button.ap-button-ghost { background: transparent; color: #fff !important; border-color: rgba(255, 255, 255, .6); }
.autoplastic-home .ap-button.ap-button-ghost:hover { background: #fff; border-color: #fff; color: #15191d !important; }

.autoplastic-home .ap-benefits {
	position: relative;
	z-index: 2;
	margin-top: -1px;
	background: var(--ap-accent);
}
.autoplastic-home .ap-benefit-grid { display: grid; grid-template-columns: repeat(5, 1fr); }
.autoplastic-home .ap-benefit {
	position: relative;
	display: flex;
	gap: 12px;
	align-items: center;
	min-height: 112px;
	padding: 20px;
	color: #16191d;
}
.autoplastic-home .ap-benefit + .ap-benefit:before { content: ''; position: absolute; left: 0; top: 26px; bottom: 26px; width: 1px; background: rgba(0, 0, 0, .16); }
.autoplastic-home .ap-benefit-icon { flex: 0 0 34px; font-size: 30px; line-height: 1; }
.autoplastic-home .ap-benefit strong { display: block; font-size: 14px; line-height: 1.3; font-weight: 700; }
.autoplastic-home .ap-benefit span { display: block; margin-top: 3px; font-size: 12px; line-height: 1.35; opacity: .72; }

.autoplastic-home .ap-section { padding: 104px 0; }
.autoplastic-home .ap-section-muted { background: var(--ap-muted); }
.autoplastic-home .ap-eyebrow { margin: 0 0 10px; color: #c78900; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.autoplastic-home .ap-heading { max-width: 690px; margin: 0; font-size: clamp(30px, 3vw, 42px); line-height: 1.16; color: var(--ap-ink); font-weight: 700; }
.autoplastic-home .ap-heading-wrap { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin-bottom: 44px; }
.autoplastic-home .ap-text-link { color: var(--ap-ink) !important; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; text-decoration: none !important; border-bottom: 2px solid var(--ap-accent); }

.autoplastic-home .ap-story { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(40px, 7vw, 100px); align-items: center; }
.autoplastic-home .ap-story-media { position: relative; }
.autoplastic-home .ap-story-media img { display: block; width: 100%; min-height: 430px; object-fit: cover; }
.autoplastic-home .ap-story-media:after { content: ''; position: absolute; width: 64%; height: 72%; left: -18px; bottom: -18px; border: 3px solid var(--ap-accent); z-index: -1; }
.autoplastic-home .ap-story-copy p { margin: 22px 0 0; color: #5e656b; font-size: 16px; line-height: 1.75; }
.autoplastic-home .ap-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 15px 22px; margin: 32px 0; padding: 0; list-style: none; }
.autoplastic-home .ap-checks li { position: relative; padding-left: 26px; font-size: 14px; font-weight: 600; color: #262b30; }
.autoplastic-home .ap-checks li:before { content: '✓'; position: absolute; left: 0; top: -1px; color: #bf8500; font-weight: 800; }

.autoplastic-home .ap-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.autoplastic-home .ap-product-card { display: flex; flex-direction: column; min-width: 0; background: #fff; box-shadow: 0 8px 23px rgba(23, 28, 32, .06); transition: transform .2s ease, box-shadow .2s ease; }
.autoplastic-home .ap-product-card:hover { transform: translateY(-5px); box-shadow: 0 16px 30px rgba(23, 28, 32, .13); }
.autoplastic-home .ap-product-image { display: block; aspect-ratio: 1 / .82; overflow: hidden; background: #fff; }
.autoplastic-home .ap-product-image img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; transition: transform .35s ease; }
.autoplastic-home .ap-product-card:hover .ap-product-image img { transform: scale(1.045); }
.autoplastic-home .ap-product-copy { display: flex; flex: 1 1 auto; flex-direction: column; align-items: flex-start; padding: 21px 20px 19px; }
.autoplastic-home .ap-product-copy h3 { min-height: 47px; margin: 0 0 12px; font-size: 15px; line-height: 1.45; font-weight: 600; }
.autoplastic-home .ap-product-copy h3 a { color: #22282d !important; text-decoration: none !important; }
.autoplastic-home .ap-product-price { margin-bottom: 15px; color: #16191d; font-size: 18px; font-weight: 700; }
.autoplastic-home .ap-product-price ins { text-decoration: none; }
.autoplastic-home .ap-product-more { margin-top: auto; color: #a57300 !important; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; text-decoration: none !important; }
.autoplastic-home .ap-product-more span { padding-left: 4px; font-size: 16px; }

.autoplastic-home .ap-catalog-cta {
	position: relative;
	padding: 94px 0;
	overflow: hidden;
	background: #22272b url('assets/images/autoplastic-fiberglass-workshop.png') center / cover no-repeat;
	color: #fff;
}
.autoplastic-home .ap-catalog-cta:before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(13, 17, 20, .94), rgba(13, 17, 20, .64) 53%, rgba(13, 17, 20, .14)); }
.autoplastic-home .ap-catalog-cta .ap-container { position: relative; max-width: 1170px; }
.autoplastic-home .ap-catalog-cta h2 { max-width: 570px; margin: 0 0 18px; color: #fff; font-size: clamp(32px, 3.7vw, 52px); line-height: 1.08; font-weight: 700; }
.autoplastic-home .ap-catalog-cta p { max-width: 505px; margin: 0 0 28px; color: rgba(255,255,255,.82); font-size: 17px; line-height: 1.65; }

.autoplastic-home .ap-contact { display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: center; padding: 55px 0; }
.autoplastic-home .ap-contact h2 { margin: 0 0 8px; font-size: 31px; line-height: 1.2; color: var(--ap-ink); }
.autoplastic-home .ap-contact p { margin: 0; color: #626a70; font-size: 16px; }
.autoplastic-home .ap-phone { color: var(--ap-ink) !important; font-size: 27px; font-weight: 700; text-decoration: none !important; }

@media (max-width: 991px) {
	.autoplastic-home .ap-hero { min-height: 520px; background-position: 62% center; }
	.autoplastic-home .ap-hero:before { background: linear-gradient(90deg, rgba(11,14,17,.96), rgba(11,14,17,.72) 72%, rgba(11,14,17,.34)); }
	.autoplastic-home .ap-benefit-grid { grid-template-columns: repeat(3, 1fr); }
	.autoplastic-home .ap-benefit:nth-child(4):before { display: none; }
	.autoplastic-home .ap-story { grid-template-columns: 1fr; }
	.autoplastic-home .ap-story-media { max-width: 680px; }
	.autoplastic-home .ap-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
	.autoplastic-home .ap-container { width: min(100% - 30px, 1170px); }
	.autoplastic-home .ap-hero { min-height: 510px; background-position: 68% center; }
	.autoplastic-home .ap-hero-copy { padding: 62px 0; }
	.autoplastic-home .ap-hero h1 { font-size: 39px; }
	.autoplastic-home .ap-hero p { font-size: 16px; }
	.autoplastic-home .ap-benefit-grid { grid-template-columns: 1fr; }
	.autoplastic-home .ap-benefit { min-height: 82px; padding: 15px 4px; }
	.autoplastic-home .ap-benefit + .ap-benefit:before { left: 0; right: 0; top: 0; bottom: auto; width: auto; height: 1px; }
	.autoplastic-home .ap-section { padding: 68px 0; }
	.autoplastic-home .ap-heading-wrap { display: block; margin-bottom: 30px; }
	.autoplastic-home .ap-text-link { display: inline-block; margin-top: 18px; }
	.autoplastic-home .ap-checks { grid-template-columns: 1fr; }
	.autoplastic-home .ap-story-media img { min-height: 280px; }
	.autoplastic-home .ap-product-grid { grid-template-columns: 1fr 1fr; gap: 13px; }
	.autoplastic-home .ap-product-copy { padding: 15px 13px; }
	.autoplastic-home .ap-product-copy h3 { min-height: 0; font-size: 13px; }
	.autoplastic-home .ap-contact { grid-template-columns: 1fr; padding: 44px 0; }
	.autoplastic-home .ap-phone { font-size: 23px; }
}

/* Editable WPBakery replacement for the first Revolution Slider slide. */
.ap-static-hero-row,
.ap-static-hero-row .vc_column_container,
.ap-static-hero-row .vc_column-inner {
	margin: 0 !important;
	padding: 0 !important;
}
.ap-static-hero-row {
	position: relative;
	left: 50%;
	width: 100vw !important;
	max-width: 100vw !important;
	margin-left: -50vw !important;
	margin-right: -50vw !important;
}
.ap-static-hero-row .wpb_wrapper > :last-child { margin-bottom: 0; }
.ap-static-hero {
	position: relative;
	left: 50%;
	margin-left: -50vw;
	display: flex;
	align-items: center;
	min-height: clamp(540px, 25vw, 640px);
	overflow: hidden;
	background: linear-gradient(100deg, #f7f7f6 0%, #fff 52%, #eceeed 100%);
	color: #202020;
	width: 100vw;
}
.ap-static-hero__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(255, 255, 255, .96) 0%, rgba(255, 255, 255, .78) 36%, rgba(255, 255, 255, .12) 69%);
}
.ap-static-hero__visual {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 0;
	width: min(57vw, 1100px);
	line-height: 0;
}
.ap-static-hero__visual img {
	display: block;
	width: 100%;
	height: auto;
}
.ap-static-hero__content {
	position: relative;
	z-index: 1;
	width: 100%;
	margin: 0;
	padding: 55px 15%;
}
.ap-static-hero__kicker {
	margin: 0 0 11px;
	color: rgba(32, 32, 32, .25);
	font-size: clamp(13px, 1.25vw, 17px);
	font-weight: 500;
	line-height: 1.35;
}
.ap-static-hero h1 {
	max-width: 700px;
	margin: 0 0 22px;
	color: #202020;
	font-family: Georgia, 'Times New Roman', serif;
	font-size: clamp(31px, 3vw, 44px);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.15;
	text-transform: none;
}
.ap-static-hero__button {
	display: inline-block;
	padding: 10px 20px;
	border: 0;
	background: #f7b719;
	color: #171a1d !important;
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1;
	text-decoration: none !important;
	text-transform: uppercase;
}
.ap-static-hero__button:hover,
.ap-static-hero__button:focus {
	border-color: #fff;
	background: #fff;
	color: #171a1d !important;
}
.ap-static-hero__phone {
	margin-left: 9px;
	padding-left: 9px;
	border-left: 1px solid rgba(23, 26, 29, .28);
	font-weight: 700;
	letter-spacing: .02em;
	white-space: nowrap;
}
@media (max-width: 1400px) {
	.ap-static-hero { min-height: 460px; }
	.ap-static-hero__content { padding-top: 36px; padding-bottom: 36px; }
}
@media (max-width: 900px) {
	.ap-static-hero { min-height: 420px; }
	.ap-static-hero__content { padding-left: 9%; padding-right: 9%; }
	.ap-static-hero h1 { max-width: 490px; font-size: clamp(30px, 4.2vw, 38px); }
	.ap-static-hero__visual { width: min(57vw, 590px); }
}
@media (max-width: 767px) {
	.ap-static-hero {
		display: flex;
		flex-direction: column;
		min-height: 0;
		padding: 38px 0 0;
		overflow: hidden;
	}
	.ap-static-hero__shade { background: linear-gradient(90deg, rgba(255, 255, 255, .98), rgba(255, 255, 255, .86) 80%, rgba(255, 255, 255, .55)); }
	.ap-static-hero__content {
		order: 1;
		width: 100%;
		padding: 0 30px;
	}
	.ap-static-hero h1 { max-width: 330px; margin-bottom: 20px; font-size: clamp(28px, 8vw, 34px); }
	.ap-static-hero__visual {
		order: 2;
		position: relative;
		right: auto;
		bottom: auto;
		width: 100%;
		margin-top: 30px;
		aspect-ratio: 4 / 3;
		background: center / contain no-repeat url('assets/autoplastic-mobile-hero-logo.png');
	}
	.ap-static-hero__visual img { display: none; }
}

/* Front-page brand carousel, contained intentionally to contrast the full-bleed hero. */
.ap-brand-carousel {
	max-width: 1170px;
	margin: 0 auto 36px;
	padding: 0 15px;
}
.ap-brand-carousel__heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 18px;
}
.ap-brand-carousel__eyebrow {
	margin: 0 0 5px;
	color: #b98100;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.ap-brand-carousel h2 {
	margin: 0;
	color: #202326;
	font-size: clamp(23px, 2vw, 30px);
	line-height: 1.2;
}
.ap-brand-carousel__controls { display: flex; gap: 7px; }
.ap-brand-carousel__controls {
	justify-content: center;
	margin-top: 17px;
}
.ap-brand-carousel__control {
	width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 0 2px;
	border: 1px solid #e2e3e4;
	border-radius: 0;
	background: #fff;
	color: #202326;
	font-size: 27px;
	font-weight: 300;
	line-height: 1;
}
.ap-brand-carousel__control:hover,
.ap-brand-carousel__control:focus { border-color: #f7b719; background: #f7b719; outline: none; }
.ap-brand-carousel__viewport {
	overflow-x: auto;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.ap-brand-carousel__viewport::-webkit-scrollbar { display: none; }
.ap-brand-carousel__track { display: flex; gap: 14px; padding: 1px 0 4px; }
.ap-brand-carousel__item {
	flex: 0 0 calc((100% - 56px) / 5);
	min-width: 178px;
	display: block;
	overflow: hidden;
	border: 1px solid #e7e5df;
	background: #fff;
	color: #202326 !important;
	scroll-snap-align: start;
	text-decoration: none !important;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ap-brand-carousel__item:hover,
.ap-brand-carousel__item:focus { transform: translateY(-3px); border-color: #f7b719; box-shadow: 0 10px 24px rgba(20, 24, 28, .12); outline: none; }
.ap-brand-carousel__image { display: block; height: 138px; background: #f4f1ea; }
.ap-brand-carousel__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ap-brand-carousel__name { display: block; padding: 11px 12px 2px; font-size: 15px; font-weight: 700; line-height: 1.2; }
.ap-brand-carousel__label { display: block; padding: 0 12px 12px; color: #777d82; font-size: 11px; line-height: 1.3; }
@media (max-width: 767px) {
	.ap-brand-carousel { margin-bottom: 26px; padding: 0 15px; }
	.ap-brand-carousel__heading { align-items: center; margin-bottom: 14px; }
	.ap-brand-carousel__controls { display: flex; margin-top: 14px; }
	.ap-brand-carousel__item { flex-basis: 156px; min-width: 156px; }
	.ap-brand-carousel__image { height: 124px; }
}

/* Fixed mobile quick navigation. It is intentionally a single horizontal row:
 * overflow remains touch-scrollable but the browser scrollbar is hidden. */
.ap-mobile-quick-menu {
	display: none;
}

/* Search control in the mobile header. It is injected immediately before the
 * parent theme's menu toggle, so desktop navigation remains completely intact. */
.ap-mobile-header-search {
	display: none;
}

@media (max-width: 767px) {
	/* The parent theme absolutely positions the hamburger relative to the
	 * navigation. Anchor both controls to that same reference, otherwise the
	 * absolutely positioned hamburger overlaps an inline search control. */
	#site-header-menu #site-navigation {
		position: relative;
	}

	#site-header-menu #site-navigation .menu-toggle {
		top: 0 !important;
		right: 0 !important;
		left: auto !important;
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		width: 51px;
		height: 51px;
		margin: 0;
		padding: 0;
		border: 0;
		border-left: 1px solid rgba(28, 32, 36, .08);
		background: #fff;
	}

	.ap-mobile-header-search {
		position: absolute;
		top: 0;
		right: 51px;
		z-index: 11;
		display: block;
		width: 51px;
		height: 51px;
	}

	.ap-mobile-header-search__toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 51px;
		height: 51px;
		margin: 0;
		padding: 0;
		border: 0;
		border-left: 1px solid rgba(28, 32, 36, .08);
		background: #fff;
		color: #1c2024;
		cursor: pointer;
		-webkit-tap-highlight-color: transparent;
	}

	.ap-mobile-header-search__toggle svg {
		width: 21px;
		height: 21px;
		fill: none;
		stroke: currentColor;
		stroke-linecap: round;
		stroke-width: 2;
	}

	.ap-mobile-header-search__toggle:hover,
	.ap-mobile-header-search__toggle:focus,
	.ap-mobile-header-search.is-open .ap-mobile-header-search__toggle {
		background: #fdb819;
		color: #1c2024;
		outline: none;
	}

	.ap-mobile-header-search__toggle:focus-visible {
		outline: 2px solid #1c2024;
		outline-offset: -4px;
	}

	.ap-mobile-header-search__form {
		position: absolute;
		top: calc(100% + 8px);
		right: -51px;
		z-index: 1002;
		display: grid;
		grid-template-columns: minmax(0, 1fr) 92px;
		gap: 7px;
		width: min(calc(100vw - 24px), 360px);
		padding: 7px;
		border: 1px solid #e4e6e8;
		background: #fff;
		box-shadow: 0 12px 26px rgba(20, 27, 32, .16);
		transform-origin: top right;
		animation: ap-mobile-search-reveal .16s ease-out;
	}

	.ap-mobile-header-search__form[hidden] {
		display: none;
	}

	.ap-mobile-header-search__field {
		width: 100% !important;
		min-width: 0;
		height: 42px;
		margin: 0;
		padding: 0 12px;
		border: 1px solid #d9dcdf;
		border-radius: 0;
		color: #1c2024;
		font: inherit;
		font-size: 14px;
	}

	.ap-mobile-header-search__field:focus {
		border-color: #fdb819;
		outline: none;
	}

	.ap-mobile-header-search__submit {
		width: 92px !important;
		min-width: 0;
		height: 42px;
		margin: 0;
		padding: 0;
		border: 1px solid #fdb819;
		border-radius: 0;
		background: #fdb819;
		color: #1c2024;
		font: inherit;
		font-size: 12px;
		font-weight: 700;
		letter-spacing: .02em;
		text-transform: uppercase;
	}

	@keyframes ap-mobile-search-reveal {
		from { opacity: 0; transform: translateY(-5px) scale(.98); }
		to { opacity: 1; transform: translateY(0) scale(1); }
	}
}

@media (max-width: 767px) {
	/* Homepage service benefits: keep two compact items per row on phones.
	 * Flex centring makes an unpaired final benefit sit in the middle. */
	body.home .tm-row.tm-responsive-custom-65618356 {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
	}

	body.home .tm-row.tm-responsive-custom-65618356 > .wpb_column.vc_col-sm-1\/5 {
		float: none;
		flex: 0 0 50%;
		width: 50%;
	}

	body.home .tm-row.tm-responsive-custom-65618356 > .wpb_column .vc_column-inner {
		border-right: 0 !important;
	}

	body.home .tm-row.tm-responsive-custom-65618356 .tm-vc_cta3,
	body.home .tm-row.tm-responsive-custom-65618356 .tm-vc_cta3-icons,
	body.home .tm-row.tm-responsive-custom-65618356 .tm-vc_cta3_content-container,
	body.home .tm-row.tm-responsive-custom-65618356 .tm-vc_cta3-content,
	body.home .tm-row.tm-responsive-custom-65618356 .tm-vc_cta3-content-header,
	body.home .tm-row.tm-responsive-custom-65618356 .tm-vc_cta3-headers {
		display: block !important;
		width: 100%;
		padding: 0 !important;
		text-align: center;
	}

	body.home .tm-row.tm-responsive-custom-65618356 .tm-vc_cta3 {
		display: flex !important;
		flex-direction: column;
		align-items: center;
	}

	body.home .tm-row.tm-responsive-custom-65618356 .tm-vc_cta3-icons {
		display: flex !important;
		justify-content: center;
		margin-bottom: 6px;
	}

	body.home .tm-row.tm-responsive-custom-65618356 .tm-vc_cta3-content {
		text-align: center;
	}

	body {
		padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px));
	}

	/* Keep the existing return-to-top control 20–30px above the quick menu. */
	#totop {
		bottom: calc(104px + env(safe-area-inset-bottom, 0px)) !important;
	}

	.ap-mobile-quick-menu {
		position: fixed;
		z-index: 9999;
		right: 0;
		bottom: 0;
		left: 0;
		display: block;
		padding-bottom: env(safe-area-inset-bottom, 0px);
		border-top: 1px solid #e3e6e8;
		background: rgba(255, 255, 255, .98);
		box-shadow: 0 -7px 20px rgba(25, 31, 36, .11);
		-webkit-backdrop-filter: blur(10px);
		backdrop-filter: blur(10px);
	}

	.ap-mobile-quick-menu__scroll {
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scroll-behavior: smooth;
		scroll-snap-type: x proximity;
		scrollbar-width: none;
	}

	.ap-mobile-quick-menu__scroll::-webkit-scrollbar {
		display: none;
	}

	.ap-mobile-quick-menu__items {
		display: flex;
		width: max-content;
		min-width: 100%;
		padding: 9px 8px 8px;
	}

	.ap-mobile-quick-menu__item {
		flex: 0 0 76px;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 5px;
		min-width: 0;
		padding: 0 5px;
		color: #3a4349 !important;
		scroll-snap-align: start;
		text-decoration: none !important;
		-webkit-tap-highlight-color: transparent;
	}

	.ap-mobile-quick-menu__icon-frame {
		position: relative;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 35px;
		height: 35px;
		color: #e3a600;
	}

	/* Top and bottom are continuous; the split vertical strokes form the
	 * requested open-sided square around the icon. */
	.ap-mobile-quick-menu__icon-frame:before {
		position: absolute;
		inset: 0;
		content: '';
		background:
			linear-gradient(currentColor, currentColor) left top / 100% 1px no-repeat,
			linear-gradient(currentColor, currentColor) left bottom / 100% 1px no-repeat,
			linear-gradient(currentColor, currentColor) left top / 1px 10px no-repeat,
			linear-gradient(currentColor, currentColor) left bottom / 1px 10px no-repeat,
			linear-gradient(currentColor, currentColor) right top / 1px 10px no-repeat,
			linear-gradient(currentColor, currentColor) right bottom / 1px 10px no-repeat;
	}

	.ap-mobile-quick-menu__icon-frame i {
		position: relative;
		z-index: 1;
		font-size: 17px;
		line-height: 1;
	}

	.ap-mobile-quick-menu__label {
		display: block;
		width: 100%;
		overflow: hidden;
		color: inherit;
		font-size: 10px;
		font-weight: 600;
		line-height: 14px;
		text-align: center;
		text-overflow: ellipsis;
		text-transform: none;
		white-space: nowrap;
	}

	.ap-mobile-quick-menu__item:active .ap-mobile-quick-menu__icon-frame,
	.ap-mobile-quick-menu__item:focus .ap-mobile-quick-menu__icon-frame {
		color: #c78900;
	}

	.ap-mobile-quick-menu__item:focus {
		outline: none;
	}

	.ap-mobile-quick-menu__item:focus-visible {
		outline: 2px solid #e3a600;
		outline-offset: -2px;
	}
}
