/* Fixes from the mobile audit (2026-11-06). Loaded last, on every page. Elementor's per-widget
   rules are very specific, hence the !important on sizes. */

.corpo-demo-cta { margin: 20px 0 0; text-align: center; }
.corpo-demo-cta .elementor-button { background: #27367a; color: #fff; border-radius: 8px; padding: 14px 28px; font-weight: 700; }

[id] { scroll-margin-top: 80px; }

@media (max-width: 767px) {
	/* ---- overflow ---- */
	h1.elementor-heading-title { font-size: clamp(34px, 11.5vw, 46px) !important; line-height: 1.05 !important; }
	h1.elementor-headline, h1.elementor-headline span { font-size: clamp(34px, 11.5vw, 46px) !important; line-height: 1.05 !important; }
	h2.elementor-heading-title { font-size: clamp(26px, 8.5vw, 34px) !important; line-height: 1.15 !important; }
	.elementor-heading-title { overflow-wrap: break-word; }
	.elementor-toggle-title { font-size: 22px !important; line-height: 1.25 !important; }
	.elementor-widget-text-editor, .elementor-widget-theme-post-content { overflow-wrap: anywhere; }

	/* ---- home hero: the first button was two screens down ---- */
	.elementor-element-40ff3ea3 img, .elementor-element-261e5f81 img { max-height: 240px; width: auto; margin-inline: auto; }

	/* ---- burger menu: a full-width panel under the header ---- */
	.elementor-widget-nav-menu nav.elementor-nav-menu--dropdown[aria-hidden="false"] {
		position: fixed !important; left: 0; right: 0; top: var(--corpo-menu-top, 70px);
		width: 100% !important; max-height: calc(100dvh - var(--corpo-menu-top, 70px)); overflow-y: auto;
		background: #fff; box-shadow: 0 12px 24px rgba(0, 0, 0, .15); z-index: 9990; margin: 0 !important;
	}
	.elementor-widget-nav-menu nav.elementor-nav-menu--dropdown ul { width: 100%; }
	.elementor-widget-nav-menu nav.elementor-nav-menu--dropdown li { border-bottom: 1px solid #eef0f4; }
	.elementor-widget-nav-menu nav.elementor-nav-menu--dropdown a.elementor-item {
		display: flex !important; align-items: center; justify-content: flex-start !important;
		min-height: 52px; padding: 12px 24px !important; margin: 0 !important;
		text-align: left !important; line-height: 1.3 !important; white-space: normal !important;
	}

	/* ---- touch targets ---- */
	.elementor-menu-toggle { min-width: 44px; min-height: 44px; }
	a[chat] { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
	a[chat] img { width: 40px; max-width: 100%; height: auto; }
	.elementor-element-99664b1 > .elementor-element-populated { padding-inline: 2px !important; }
	.elementor-post__read-more { display: inline-block; padding: 12px 0; }
	.elementor-field-type-radio input, .elementor-field-type-checkbox input { width: 20px; height: 20px; flex: none; }
	.elementor-field-type-radio .elementor-field-option, .elementor-field-type-checkbox .elementor-field-option { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; }
	.elementor-field-type-radio label, .elementor-field-type-checkbox label { display: inline; }

	/* ---- testimonials: one column (slides set by carousel.ts), usable arrows ---- */
	.elementor-widget-testimonial-carousel .elementor-swiper-button { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; }

	/* ---- reCAPTCHA's fixed 304px box overflows the smallest phones ---- */
	@media (max-width: 359px) {
		.elementor-g-recaptcha, .g-recaptcha { transform: scale(.82); transform-origin: 0 0; width: 250px; overflow: visible; }
	}

	/* ---- popup: inside the screen, with a close button a thumb can reach ---- */
	.elementor-popup-modal .dialog-widget-content { position: relative !important; left: auto !important; top: auto !important; width: calc(100vw - 24px) !important; max-width: 420px; max-height: 88dvh; overflow-y: auto; margin: auto; }
	.elementor-popup-modal .dialog-message { width: 100% !important; }
	.elementor-popup-modal .dialog-close-button { position: absolute; top: 4px !important; right: 4px !important; left: auto !important; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; font-size: 18px; z-index: 2; margin: 0 !important; }
	.elementor-popup-modal .dialog-close-button svg { width: 18px; height: 18px; }
	.elementor-popup-modal { justify-content: center !important; align-items: center !important; }
}
