/* ========================================================================
   Dovix Pro v1.9.17.89 — Android/iOS mobile performance correction
   Presentation only: does not change booking, inspection or finance logic.
   ===================================================================== */

.dovix-mobile-appbar,
.dovix-mobile-menu-backdrop,
.dovix-mobile-menu__head,
.dovix-mobile-menu__actions {
	display: none;
}

@media (max-width: 820px) {
	:root {
		--dovix-appbar-height: 72px;
		--dovix-mobile-header-height: 64px;
	}

	html {
		scroll-padding-top: calc(var(--dovix-mobile-header-height) + 12px);
	}

	body.dovix-mobile-webapp {
		padding-bottom: calc(var(--dovix-appbar-height) + env(safe-area-inset-bottom, 0px)) !important;
		background: var(--dovix-gray-50);
		overscroll-behavior-y: auto;
	}

	body.dovix-mobile-webapp.dovix-app-menu-open {
		overflow: hidden !important;
	}

	body.dovix-mobile-webapp .topbar {
		display: none !important;
	}

	body.dovix-mobile-webapp .site-header {
		top: 0;
		z-index: 150;
		overflow: visible;
		isolation: isolate;
		border-bottom: 1px solid rgba(128, 0, 128, .09);
		box-shadow: 0 3px 14px rgba(27, 14, 31, .075);
		background: var(--dovix-white);
	}

	body.dovix-mobile-webapp.dovix-app-menu-open .site-header {
		z-index: 220;
	}

	body.dovix-mobile-webapp.dovix-webapp-standalone .site-header {
		padding-top: env(safe-area-inset-top, 0px);
	}

	body.admin-bar.dovix-mobile-webapp .site-header {
		top: 46px;
	}

	body.dovix-mobile-webapp .site-header__inner {
		min-height: var(--dovix-mobile-header-height);
		padding: 8px 14px !important;
		gap: 9px !important;
		flex-wrap: nowrap !important;
	}

	body.dovix-mobile-webapp .site-branding {
		flex: 0 1 auto;
		min-width: 0;
	}

	body.dovix-mobile-webapp .site-branding .custom-logo-link,
	body.dovix-mobile-webapp .site-branding .site-title {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}

	body.dovix-mobile-webapp .custom-logo,
	body.dovix-mobile-webapp .site-logo-fallback {
		width: auto;
		max-width: 116px;
		max-height: 44px;
		object-fit: contain;
	}

	body.dovix-mobile-webapp .site-header__cta {
		order: initial !important;
		width: auto !important;
		margin-left: auto !important;
		justify-content: flex-end !important;
		gap: 8px !important;
	}

	/* The global app bar owns the primary booking action on mobile. */
	body.dovix-mobile-webapp .site-header__cta > .btn {
		display: none !important;
	}

	body.dovix-mobile-webapp .language-switcher {
		min-height: 40px;
		padding: 4px 8px;
		gap: 5px;
		border: 1px solid var(--dovix-gray-100);
		border-radius: 999px;
		background: var(--dovix-gray-50);
	}

	body.dovix-mobile-webapp .language-switcher__link {
		display: grid;
		place-items: center;
		min-width: 26px;
		min-height: 30px;
		padding: 0 4px;
		border-radius: 999px;
		font-size: 12px !important;
		line-height: 1;
		text-decoration: none !important;
	}

	body.dovix-mobile-webapp .language-switcher__link.is-active {
		background: var(--dovix-white);
		color: var(--dovix-primary);
		box-shadow: 0 1px 4px rgba(27, 14, 31, .12);
	}

	body.dovix-mobile-webapp .language-switcher__sep {
		display: none;
	}

	body.dovix-mobile-webapp .menu-toggle {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		min-width: 44px;
		margin: 0 !important;
		padding: 10px !important;
		gap: 5px;
		border: 1px solid var(--dovix-gray-100);
		border-radius: 14px;
		background: var(--dovix-white);
		box-shadow: 0 2px 8px rgba(27, 14, 31, .07);
		position: relative;
		z-index: 4;
	}

	body.dovix-mobile-webapp .menu-toggle__bar {
		width: 21px;
		height: 2px;
		border-radius: 99px;
		transition: transform .18s ease, opacity .18s ease;
	}

	body.dovix-mobile-webapp.dovix-app-menu-open .menu-toggle__bar:nth-of-type(2) {
		transform: translateY(7px) rotate(45deg);
	}
	body.dovix-mobile-webapp.dovix-app-menu-open .menu-toggle__bar:nth-of-type(3) {
		opacity: 0;
	}
	body.dovix-mobile-webapp.dovix-app-menu-open .menu-toggle__bar:nth-of-type(4) {
		transform: translateY(-7px) rotate(-45deg);
	}

	/* App-style navigation drawer. */
	body.dovix-mobile-webapp .main-nav {
		position: fixed !important;
		inset: 0 0 0 auto !important;
		width: min(92vw, 430px) !important;
		max-width: 100vw !important;
		height: 100vh;
		height: 100svh;
		max-height: 100vh;
		max-height: 100svh;
		padding: 0 16px calc(24px + env(safe-area-inset-bottom, 0px)) !important;
		background: var(--dovix-white) !important;
		box-shadow: -14px 0 34px rgba(27, 14, 31, .16);
		transform: translate3d(100%, 0, 0) !important;
		transition: transform .2s cubic-bezier(.22, .61, .36, 1) !important;
		z-index: 3 !important;
		overflow-x: hidden;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-y: contain;
		touch-action: pan-y;
		backface-visibility: hidden;
	}

	body.dovix-mobile-webapp .main-nav.is-open {
		transform: translate3d(0, 0, 0) !important;
	}

	body.admin-bar.dovix-mobile-webapp .main-nav {
		padding-top: 46px !important;
	}

	body.dovix-mobile-webapp .dovix-mobile-menu__head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		position: sticky;
		top: 0;
		z-index: 3;
		min-height: 82px;
		padding: calc(12px + env(safe-area-inset-top, 0px)) 0 12px;
		background: var(--dovix-white);
		border-bottom: 1px solid var(--dovix-gray-100);
	}

	body.admin-bar.dovix-mobile-webapp .dovix-mobile-menu__head {
		padding-top: 12px;
	}

	.dovix-mobile-menu__brand {
		display: flex;
		align-items: center;
		gap: 10px;
		min-width: 0;
	}

	.dovix-mobile-menu__brand img {
		width: 44px;
		height: 44px;
		padding: 3px;
		border-radius: 13px;
		background: var(--dovix-white);
		box-shadow: 0 2px 9px rgba(27, 14, 31, .11);
		object-fit: contain;
	}

	.dovix-mobile-menu__brand span {
		display: flex;
		flex-direction: column;
		min-width: 0;
	}

	.dovix-mobile-menu__brand strong {
		font-family: var(--font-heading);
		font-size: 16px;
		line-height: 1.2;
	}

	.dovix-mobile-menu__brand small {
		max-width: 235px;
		margin-top: 2px;
		color: var(--dovix-gray-600);
		font-size: 11px;
		line-height: 1.25;
	}

	.dovix-mobile-menu__close {
		display: grid;
		place-items: center;
		width: 44px;
		height: 44px;
		min-width: 44px;
		padding: 0;
		border: 1px solid var(--dovix-gray-100);
		border-radius: 14px;
		background: var(--dovix-gray-50);
		color: var(--dovix-dark);
		cursor: pointer;
	}

	.dovix-mobile-menu__close svg {
		width: 22px;
		height: 22px;
	}

	body.dovix-mobile-webapp .main-nav__menu {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		width: 100%;
		gap: 7px !important;
		padding: 16px 0 !important;
	}

	body.dovix-mobile-webapp .main-nav__menu > li {
		width: 100%;
	}

	body.dovix-mobile-webapp .main-nav__menu > li > a {
		display: flex !important;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		min-height: 52px;
		padding: 12px 14px !important;
		border: 1px solid var(--dovix-gray-100);
		border-radius: 14px;
		background: var(--dovix-white);
		font-size: 15px;
		font-weight: 700;
		box-shadow: 0 2px 8px rgba(27, 14, 31, .045);
	}

	body.dovix-mobile-webapp .main-nav__menu > li.current-menu-item > a,
	body.dovix-mobile-webapp .main-nav__menu > li.current-menu-ancestor > a {
		border-color: rgba(128, 0, 128, .28);
		background: rgba(128, 0, 128, .055);
		color: var(--dovix-primary);
	}

	body.dovix-mobile-webapp .main-nav__menu .sub-menu {
		position: static !important;
		display: none;
		visibility: visible !important;
		opacity: 1 !important;
		transform: none !important;
		min-width: 0;
		margin: 6px 0 2px 14px;
		padding: 4px 0 4px 12px;
		border-left: 2px solid var(--dovix-gray-100);
		border-radius: 0;
		box-shadow: none !important;
	}

	body.dovix-mobile-webapp .main-nav__menu li.is-expanded > .sub-menu,
	body.dovix-mobile-webapp .main-nav__menu li.current-menu-ancestor > .sub-menu {
		display: block;
	}

	body.dovix-mobile-webapp .main-nav__menu .sub-menu a {
		display: flex;
		align-items: center;
		min-height: 44px;
		padding: 9px 10px !important;
		border-radius: 10px;
		font-size: 14px;
	}

	body.dovix-mobile-webapp .dovix-mobile-menu__actions {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 10px;
		padding: 4px 0 10px;
	}

	.dovix-mobile-menu__primary,
	.dovix-mobile-menu__secondary,
	.dovix-mobile-menu__install {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		min-height: 50px;
		padding: 10px 12px;
		border-radius: 14px;
		font-size: 14px;
		font-weight: 800;
		text-align: center;
	}

	.dovix-mobile-menu__primary {
		background: var(--dovix-primary);
		color: var(--dovix-white);
	}

	.dovix-mobile-menu__secondary {
		border: 1px solid rgba(128, 0, 128, .22);
		background: var(--dovix-white);
		color: var(--dovix-primary);
	}

	.dovix-mobile-menu__install {
		grid-column: 1 / -1;
		width: 100%;
		border: 1px solid var(--dovix-gray-100);
		background: var(--dovix-gray-50);
		color: var(--dovix-dark);
		cursor: pointer;
	}

	.dovix-mobile-menu__primary svg,
	.dovix-mobile-menu__secondary svg,
	.dovix-mobile-menu__install svg {
		width: 20px;
		height: 20px;
	}

	.dovix-mobile-menu__ios-help {
		grid-column: 1 / -1;
		margin: 0;
		padding: 10px 12px;
		border-radius: 12px;
		background: #fff8e7;
		color: #665016;
		font-size: 12px;
		line-height: 1.45;
	}

	.dovix-mobile-menu-backdrop {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 2;
		width: 100%;
		height: 100vh;
		height: 100svh;
		padding: 0;
		border: 0;
		background: rgba(27, 14, 31, .46);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		touch-action: manipulation;
		transition: opacity .16s ease, visibility .16s ease;
	}

	body.dovix-mobile-webapp.dovix-app-menu-open .dovix-mobile-menu-backdrop {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}

	/* Fixed app navigation with an emphasized booking action. */
	.dovix-mobile-appbar {
		display: grid;
		grid-template-columns: repeat(5, minmax(0, 1fr));
		align-items: end;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 140;
		min-height: calc(var(--dovix-appbar-height) + env(safe-area-inset-bottom, 0px));
		padding: 7px max(8px, env(safe-area-inset-left, 0px)) calc(7px + env(safe-area-inset-bottom, 0px)) max(8px, env(safe-area-inset-right, 0px));
		border-top: 1px solid rgba(128, 0, 128, .11);
		background: var(--dovix-white);
		box-shadow: 0 -6px 20px rgba(27, 14, 31, .11);
		transform: translate3d(0, 0, 0);
		transition: transform .18s ease, opacity .14s ease;
	}

	.dovix-mobile-appbar__item {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: flex-end;
		gap: 3px;
		min-width: 0;
		min-height: 57px;
		padding: 4px 2px 2px;
		border-radius: 13px;
		color: var(--dovix-gray-600);
		font-size: 10.5px;
		font-weight: 750;
		line-height: 1.1;
		text-align: center;
		-webkit-tap-highlight-color: transparent;
	}

	.dovix-mobile-appbar__item:not(.dovix-mobile-appbar__item--book).is-active {
		background: rgba(128, 0, 128, .07);
		color: var(--dovix-primary);
	}

	.dovix-mobile-appbar__icon {
		display: grid;
		place-items: center;
		width: 30px;
		height: 30px;
		border-radius: 10px;
	}

	.dovix-mobile-appbar__icon svg {
		width: 22px;
		height: 22px;
	}

	.dovix-mobile-appbar__label {
		display: block;
		max-width: 100%;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.dovix-mobile-appbar__item--book {
		position: relative;
		color: var(--dovix-primary);
		font-weight: 850;
	}

	.dovix-mobile-appbar__item--book .dovix-mobile-appbar__icon {
		width: 52px;
		height: 52px;
		margin-top: -18px;
		border: 4px solid var(--dovix-white);
		border-radius: 18px;
		background: linear-gradient(145deg, var(--dovix-accent), var(--dovix-primary));
		color: var(--dovix-white);
		box-shadow: 0 8px 20px rgba(128, 0, 128, .32);
		transition: transform .18s ease, box-shadow .18s ease;
	}

	.dovix-mobile-appbar__item--book .dovix-mobile-appbar__icon svg {
		width: 25px;
		height: 25px;
	}

	.dovix-mobile-appbar__item--book.is-active .dovix-mobile-appbar__icon {
		transform: translateY(-2px) scale(1.04);
		box-shadow: 0 10px 24px rgba(128, 0, 128, .42);
	}

	body.dovix-mobile-keyboard-open .dovix-mobile-appbar,
	body.dovix-app-menu-open .dovix-mobile-appbar {
		transform: translate3d(0, 110%, 0);
		opacity: 0;
		pointer-events: none;
	}

	/* Remove the older local-page-only booking bar to avoid duplicate CTAs. */
	body.dovix-mobile-webapp .dovix-local-mobile-bookbar {
		display: none !important;
	}

	/* Avoid repaint-heavy live blur effects on mobile Chromium/WebView. */
	body.dovix-mobile-webapp .hero__slider-dots,
	body.dovix-mobile-webapp .dovix-contact-map__open {
		backdrop-filter: none !important;
		-webkit-backdrop-filter: none !important;
	}

	/* Touch-friendly global controls. */
	body.dovix-mobile-webapp .site-main input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
	body.dovix-mobile-webapp .site-main select,
	body.dovix-mobile-webapp .site-main textarea {
		font-size: 16px !important;
	}

	body.dovix-mobile-webapp .site-main button,
	body.dovix-mobile-webapp .site-main .btn,
	body.dovix-mobile-webapp .site-footer .btn {
		min-height: 48px;
	}

	body.dovix-mobile-webapp .site-main > section,
	body.dovix-mobile-webapp .site-main > article {
		scroll-margin-top: calc(var(--dovix-mobile-header-height) + 12px);
	}

	body.dovix-mobile-webapp .hero__inner {
		padding-block: 2.1rem 2.65rem;
		gap: 1.25rem;
	}

	body.dovix-mobile-webapp .hero__media {
		padding: 0 0 .85rem;
	}

	body.dovix-mobile-webapp .hero__content {
		text-align: left;
	}

	body.dovix-mobile-webapp .hero__actions,
	body.dovix-mobile-webapp .dovix-page-hero__actions,
	body.dovix-mobile-webapp .dovix-contact-actions {
		display: grid;
		grid-template-columns: 1fr;
		width: 100%;
		gap: 9px;
	}

	body.dovix-mobile-webapp .hero__actions .btn,
	body.dovix-mobile-webapp .dovix-page-hero__actions .btn,
	body.dovix-mobile-webapp .dovix-contact-actions .btn {
		width: 100%;
		justify-content: center;
	}

	body.dovix-mobile-webapp .dovix-booking-hero,
	body.dovix-mobile-webapp .dovix-contact-hero,
	body.dovix-mobile-webapp .dovix-page-hero,
	body.dovix-mobile-webapp .dovix-pricing-hero {
		padding-top: 2rem;
		padding-bottom: 1.8rem;
	}

	body.dovix-mobile-webapp .dovix-booking-page,
	body.dovix-mobile-webapp .dovix-quickbook-page,
	body.dovix-mobile-webapp .dovix-contact-page,
	body.dovix-mobile-webapp .dovix-page-section,
	body.dovix-mobile-webapp .page-content {
		padding-top: 1.25rem;
		padding-bottom: 2.5rem;
	}

	body.dovix-mobile-webapp .dovix-booking-mode-panel,
	body.dovix-mobile-webapp .dovix-quickbook-panel,
	body.dovix-mobile-webapp .dovix-booking-step,
	body.dovix-mobile-webapp .dovix-contact-card,
	body.dovix-mobile-webapp .dovix-contact-form-card,
	body.dovix-mobile-webapp .dovix-info-card,
	body.dovix-mobile-webapp .dovix-plan-card {
		border-radius: 18px;
		box-shadow: 0 5px 18px rgba(27, 14, 31, .065);
	}

	body.dovix-mobile-webapp .dovix-booking-mode-panel,
	body.dovix-mobile-webapp .dovix-quickbook-panel,
	body.dovix-mobile-webapp .dovix-booking-step {
		padding: 1rem;
	}

	body.dovix-mobile-webapp .dovix-quickbook-panel__head {
		align-items: flex-start;
		flex-direction: column;
		gap: 8px;
	}

	body.dovix-mobile-webapp .dovix-quickbook-panel__head .dovix-link-button {
		align-self: flex-start;
	}

	body.dovix-mobile-webapp .dovix-time-slots {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body.dovix-mobile-webapp .dovix-time-slot {
		min-height: 50px;
	}

	body.dovix-mobile-webapp .site-footer {
		padding-top: 2.5rem;
	}

	body.dovix-mobile-webapp .footer__grid {
		gap: 1.4rem;
	}

	body.dovix-mobile-webapp :focus-visible {
		outline: 3px solid rgba(232, 24, 216, .35);
		outline-offset: 3px;
	}

	@media (prefers-reduced-motion: reduce) {
		body.dovix-mobile-webapp .main-nav,
		body.dovix-mobile-webapp .dovix-mobile-menu-backdrop,
		body.dovix-mobile-webapp .dovix-mobile-appbar,
		body.dovix-mobile-webapp .menu-toggle__bar {
			transition: none !important;
		}
	}
}

@media (min-width: 783px) and (max-width: 820px) {
	body.admin-bar.dovix-mobile-webapp .site-header {
		top: 32px;
	}
	body.admin-bar.dovix-mobile-webapp .main-nav {
		padding-top: 32px !important;
	}
}

@media (max-width: 560px) {
	body.dovix-mobile-webapp .main-nav {
		width: 100vw !important;
	}

	body.dovix-mobile-webapp .container {
		padding-left: 14px !important;
		padding-right: 14px !important;
	}

	body.dovix-mobile-webapp .dovix-mobile-menu__actions {
		grid-template-columns: 1fr;
	}

	.dovix-mobile-menu__install,
	.dovix-mobile-menu__ios-help {
		grid-column: auto;
	}

	.dovix-mobile-appbar__item {
		font-size: 10px;
	}

	.dovix-mobile-appbar__item--book .dovix-mobile-appbar__icon {
		width: 50px;
		height: 50px;
	}
}

@media (max-width: 370px) {
	body.dovix-mobile-webapp .site-header__inner {
		padding-left: 10px !important;
		padding-right: 10px !important;
	}

	body.dovix-mobile-webapp .custom-logo,
	body.dovix-mobile-webapp .site-logo-fallback {
		max-width: 96px;
	}

	body.dovix-mobile-webapp .language-switcher {
		padding-inline: 5px;
	}

	.dovix-mobile-appbar {
		padding-left: 4px;
		padding-right: 4px;
	}

	.dovix-mobile-appbar__label {
		font-size: 9px;
	}
}

@media (max-width: 820px) {
	body.dovix-mobile-webapp.dovix-app-menu-open .menu-toggle {
		opacity: 0;
		pointer-events: none;
	}
}

@media print {
	.dovix-mobile-appbar,
	.dovix-mobile-menu-backdrop,
	.dovix-mobile-menu__head,
	.dovix-mobile-menu__actions {
		display: none !important;
	}
	body.dovix-mobile-webapp {
		padding-bottom: 0 !important;
	}
}
