/* ==========================================================================
   Optional UI scale mode (Paide Vesi seaded → Lehe suurendus)
   Activated via body.pv-site-scale-110. Does not use zoom/transform on the page.

   CSS fallback (no JS): 1.10, or 1.06 at ≤430px.
   With assets/js/site-scale.js: widths >1920px interpolate linearly to 1.375
   (capped at ≥2560px; ~10% above the previous 1.25 large-screen cap).
   At ≤1920px the discrete values stay 1.06 / 1.10 unchanged.
   ========================================================================== */

body.pv-site-scale-110 {
	--pv-ui-scale: 1.1;
}

/* Slightly softer on very narrow phones so controls stay comfortable. */
@media (max-width: 430px) {
	body.pv-site-scale-110 {
		--pv-ui-scale: 1.06;
	}
}

/*
 * theme.json presets are rem/px and would not follow --pv-ui-scale otherwise.
 * Multiply once when scale mode is on (html root font-size stays 100%).
 */
body.pv-site-scale-110 {
	--wp--preset--font-size--h1: calc(clamp(3rem, 5vw + 1rem, 5.75rem) * var(--pv-ui-scale));
	--wp--preset--font-size--h2: calc(clamp(2.25rem, 3.5vw + 1rem, 3.875rem) * var(--pv-ui-scale));
	--wp--preset--font-size--h3: calc(clamp(1.875rem, 2.5vw + 1rem, 3rem) * var(--pv-ui-scale));
	--wp--preset--font-size--h4: calc(clamp(1.5rem, 1.5vw + 1rem, 2rem) * var(--pv-ui-scale));
	--wp--preset--font-size--h5: calc(1.375rem * var(--pv-ui-scale));
	--wp--preset--font-size--body-l: calc(1.125rem * var(--pv-ui-scale));
	--wp--preset--font-size--body-m: calc(1rem * var(--pv-ui-scale));
	--wp--preset--font-size--body-s: calc(0.875rem * var(--pv-ui-scale));

	--wp--preset--spacing--4: calc(4px * var(--pv-ui-scale));
	--wp--preset--spacing--8: calc(8px * var(--pv-ui-scale));
	--wp--preset--spacing--12: calc(12px * var(--pv-ui-scale));
	--wp--preset--spacing--16: calc(16px * var(--pv-ui-scale));
	--wp--preset--spacing--20: calc(20px * var(--pv-ui-scale));
	--wp--preset--spacing--24: calc(24px * var(--pv-ui-scale));
	--wp--preset--spacing--32: calc(32px * var(--pv-ui-scale));
	--wp--preset--spacing--40: calc(40px * var(--pv-ui-scale));
	--wp--preset--spacing--48: calc(48px * var(--pv-ui-scale));
	--wp--preset--spacing--58: calc(58px * var(--pv-ui-scale));
	--wp--preset--spacing--64: calc(64px * var(--pv-ui-scale));
	--wp--preset--spacing--80: calc(80px * var(--pv-ui-scale));
	--wp--preset--spacing--96: calc(96px * var(--pv-ui-scale));
	--wp--preset--spacing--120: calc(120px * var(--pv-ui-scale));

	/* Grow content measure with UI; still capped by parent/viewport gutters. */
	--wp--style--global--content-size: min(calc(1280px * var(--pv-ui-scale)), 100%);
	--wp--style--global--wide-size: min(calc(1440px * var(--pv-ui-scale)), 100%);
}

/*
 * Scale mode keeps CSS viewport width unchanged (unlike browser zoom), so some
 * desktop layouts get cramped earlier. Nudge only the header nav breakpoint.
 * Must mirror header.css mobile panel rules — otherwise the hamburger appears
 * between 769px–1180px but .is-mobile-open never becomes visible.
 */
@media (max-width: 1180px) {
	body.pv-site-scale-110 .site-header__toggle {
		display: flex;
	}

	body.pv-site-scale-110 .pv-header-nav {
		align-items: stretch;
		background: #fff;
		bottom: 0;
		display: none;
		flex-direction: column;
		gap: 0;
		left: 0;
		overflow-y: auto;
		padding: calc(16px * var(--pv-ui-scale)) calc(24px * var(--pv-ui-scale));
		position: fixed;
		right: 0;
		top: var(--pv-site-header-height, calc(60px * var(--pv-ui-scale)));
		z-index: 99;
	}

	body.pv-site-scale-110 .pv-header-nav.is-mobile-open {
		display: flex;
	}

	body.pv-site-scale-110 .pv-header-nav__item {
		border-bottom: 1px solid #f0f2f5;
	}

	body.pv-site-scale-110 .pv-header-nav__link {
		border-radius: 0;
		justify-content: space-between;
		padding: calc(16px * var(--pv-ui-scale)) 0;
		width: 100%;
	}

	body.pv-site-scale-110 .pv-header-nav__link:hover {
		background: transparent;
	}

	body.pv-site-scale-110 .pv-header-nav__dropdown {
		border-radius: 0;
		box-shadow: none;
		min-width: unset;
		padding: 0 0 calc(12px * var(--pv-ui-scale)) calc(16px * var(--pv-ui-scale));
		position: static;
	}

	body.pv-site-scale-110 .pv-header-nav__dropdown-link {
		padding: calc(10px * var(--pv-ui-scale)) calc(12px * var(--pv-ui-scale));
	}

	body.pv-site-scale-110 .pv-header-nav__submenu {
		border-radius: 0;
		box-shadow: none;
		min-width: unset;
		padding: 0 0 calc(8px * var(--pv-ui-scale)) calc(16px * var(--pv-ui-scale));
		position: static;
	}

	body.pv-site-scale-110 .pv-header-nav__submenu-link {
		padding: calc(8px * var(--pv-ui-scale)) calc(12px * var(--pv-ui-scale));
	}

	body.pv-site-scale-110 .pv-header-nav__chevron {
		transition: transform 0.2s ease;
	}

	body.pv-site-scale-110 .pv-header-nav__dropdown-item--has-children > .pv-header-nav__dropdown-link .pv-header-nav__submenu-arrow {
		transition: transform 0.2s ease;
	}

	body.pv-site-scale-110 .pv-header-nav__dropdown-item--has-children.is-submenu-open > .pv-header-nav__dropdown-link .pv-header-nav__submenu-arrow {
		transform: rotate(90deg);
	}

	body.pv-site-scale-110 .pv-header-nav__item--cookie {
		display: block;
		margin-top: auto;
		border-bottom: none;
		border-top: 1px solid #f0f2f5;
	}
}

@media (max-width: 1180px) and (min-width: 769px) {
	body.pv-site-scale-110 .site-header {
		padding-left: calc(40px * var(--pv-ui-scale));
		padding-right: calc(40px * var(--pv-ui-scale));
	}
}

/*
 * Mobile viewport gutters and fixed layout tracks stay absolute CSS px so a
 * 1.06–1.1 scale cannot push content past the screen edge.
 */
@media (max-width: 768px) {
	body.pv-site-scale-110 {
		--wp--style--root--padding-left: 20px;
		--wp--style--root--padding-right: 20px;
	}

	body.pv-site-scale-110 .site-header {
		padding-left: 24px;
		padding-right: 24px;
	}

	body.pv-site-scale-110 .pv-history__item {
		grid-template-columns: 52px minmax(0, 1fr);
	}

	body.pv-site-scale-110 .pv-history__header,
	body.pv-site-scale-110 .pv-history__body,
	body.pv-site-scale-110 .pv-history__card-title,
	body.pv-site-scale-110 .pv-history__year {
		min-width: 0;
		max-width: 100%;
		overflow-wrap: break-word;
	}

	body.pv-site-scale-110 .pv-history__timeline::before {
		left: 26px;
	}

	body.pv-site-scale-110 .pv-history__header,
	body.pv-site-scale-110 .pv-history__body {
		padding-left: 16px;
	}

	body.pv-site-scale-110 .pv-history-page__body,
	body.pv-site-scale-110 .pv-history-hero__inner {
		padding-left: 16px;
		padding-right: 16px;
	}

	body.pv-site-scale-110 .faq-block__wrapper,
	body.pv-site-scale-110 .pv-pricing-page,
	body.pv-site-scale-110 .pv-section-page__layout,
	body.pv-site-scale-110 .pv-contact-page,
	body.pv-site-scale-110 .page-content,
	body.pv-site-scale-110 .home-dashboard__inner {
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		padding-left: 16px;
		padding-right: 16px;
	}

	body.pv-site-scale-110 .faq-main,
	body.pv-site-scale-110 .faq-accordion__header,
	body.pv-site-scale-110 .faq-accordion__question,
	body.pv-site-scale-110 .faq-heading {
		min-width: 0;
		max-width: 100%;
		overflow-wrap: break-word;
	}
}

@media (max-width: 375px) {
	body.pv-site-scale-110 {
		--wp--style--root--padding-left: 16px;
		--wp--style--root--padding-right: 16px;
	}
}
