/*
 * IperionX client-only overrides (ipx-* classes).
 * Rule: nothing here may be required for a component to be structurally recognisable.
 */

::selection { background: var(--cmp-accent-soft); color: var(--cmp-surface-dark); }

body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }

/* Balanced headings, no orphans in body copy. */
.elementor-heading-title { text-wrap: balance; }
.elementor-widget-text-editor p { text-wrap: pretty; }

/*
 * Brand rule: square geometry everywhere. No rounded corners on any section, column, card, image,
 * input or button; enforced globally so Elementor defaults cannot reintroduce a radius.
 */
body *, body *::before, body *::after { border-radius: 0 !important; }

/*
 * Heading scale skins (Customizer > IperionX skin). "classic" = original sizes (no overrides).
 * "compact" lowers every display size: Elementor kit globals (via their CSS variables) and the
 * AICS widget headings. Remove the body class to revert; nothing else depends on it.
 */
body.ipx-scale-compact {
	--e-global-typography-ipxtdxl-font-size: clamp(38px, 4.4vw, 60px);
	--e-global-typography-ipxtdl-font-size: clamp(30px, 3.2vw, 44px);
	--e-global-typography-ipxtdm-font-size: clamp(22px, 2vw, 26px);
	--e-global-typography-ipxtnum-font-size: clamp(36px, 3.6vw, 50px);
}
body.ipx-scale-compact .cmp-title { font-size: clamp(30px, 3.2vw, 46px); }
body.ipx-scale-compact .cmp-hx__title { font-size: clamp(38px, 4.3vw, 66px); }
body.ipx-scale-compact .cmp-kx .cmp-title { font-size: clamp(32px, 3.4vw, 50px); }
body.ipx-scale-compact :is(.cmp-sx__title, .cmp-px__title, .cmp-tx__title) { font-size: clamp(24px, 2.2vw, 32px); }
body.ipx-scale-compact .cmp-dx__quote p { font-size: clamp(22px, 2.1vw, 30px); }
body.ipx-scale-compact .cmp-ix__quote p { font-size: clamp(21px, 1.9vw, 27px); }
body.ipx-scale-compact .cmp-ix--s3 .cmp-ix__quote p { font-size: clamp(30px, 3vw, 44px); }
body.ipx-scale-compact .cmp-px__big { font-size: clamp(80px, 8.5vw, 132px); }
body.ipx-scale-compact .cmp-hx__v { font-size: clamp(26px, 2.5vw, 38px); }

/*
 * Footer reveal (Customizer > IperionX skin, pattern P10): the footer waits underneath and the
 * page content slides up off it. CSS only; gated by a fit check (body.ipx-footer-fits) on desktop.
 */
@media (min-width: 1025px) {
	body.ipx-footer-reveal.ipx-footer-fits > .elementor-location-footer { position: sticky; bottom: 0; z-index: 0; }
	body.ipx-footer-reveal.ipx-footer-fits > .elementor:not(.elementor-location-header):not(.elementor-location-footer) { position: relative; z-index: 1; background: var(--cmp-surface); box-shadow: 0 40px 60px -30px rgba(0, 0, 0, .5); }
}
