/*
 * DhishaAI - content protection styles (public front end only).
 *
 * Scope is deliberately narrow: images only. Body text stays selectable so
 * visitors can still copy a phone number or an address, and so screen readers,
 * translation tools and find-in-page keep working.
 *
 * Nothing here sets pointer-events, and nothing overlays the image with a
 * transparent element. Both are common "image protection" tricks that break
 * clickable images, Elementor lightboxes, Modula galleries, sliders and links.
 */

/* Stop the browser's native image drag ghost, and the drag-to-desktop save. */
img,
picture,
figure > img,
.elementor-image img,
.elementor-widget-image img,
.elementor-widget-theme-post-featured-image img {
	-webkit-user-drag: none;
	-khtml-user-drag: none;
	-moz-user-drag: none;
	-o-user-drag: none;
	user-drag: none;
}

/*
 * Images are not text, so removing them from selection costs nothing in
 * accessibility but does stop "select the page, copy, paste" from carrying the
 * image across into a document.
 */
img,
picture {
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;

	/* iOS/Android: suppress the long-press "Save Image / Copy" callout. */
	-webkit-touch-callout: none;
}

/*
 * ---------------------------------------------------------------------------
 * v2: static marketing text is no longer casually selectable.
 * ---------------------------------------------------------------------------
 *
 * The selectors below were taken from the LIVE DOM, not guessed. This site is a
 * hybrid: older pages use classic Elementor widgets, newer ones use the v4
 * atomic markup, so both families are listed. Measured across the home, about,
 * services, industries, careers, insights and contact pages:
 *
 *   .elementor-widget-text-editor  138    .e-paragraph-base  262
 *   .elementor-widget-heading      114    .e-heading-base    117
 *   .elementor-heading-title       114
 *   .elementor-icon-list-text       21
 *
 * That covers essentially every heading and body paragraph on the public site.
 *
 * Note what is NOT here: body, .e-con, .e-flexbox-base and
 * .elementor-widget-container. Those are layout wrappers that also contain
 * forms, menus and buttons, so blanketing them would have swept up the 749 form
 * controls on those same pages.
 */
.elementor-widget-heading,
.elementor-widget-text-editor,
.elementor-widget-icon-list,
.elementor-heading-title,
.elementor-icon-list-text,
.e-heading-base,
.e-paragraph-base {
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

/*
 * ---------------------------------------------------------------------------
 * Everything interactive is put back, unconditionally.
 * ---------------------------------------------------------------------------
 *
 * !important is deliberate and load-bearing: a control nested inside protected
 * content must still win the cascade. The whole subtree of any form is
 * re-enabled - not just the controls - so labels, hints, validation messages
 * and the consent text all behave exactly as they did before.
 *
 * Links and buttons are re-enabled too, so double-clicking a phone number or an
 * email address in the footer still selects it.
 */
input,
textarea,
select,
option,
button,
a,
label,
[contenteditable],
[contenteditable="true"],
form,
form *,
.e-form-base,
.e-form-base *,
.elementor-form,
.elementor-form *,
.elementor-edit-area,
.elementor-edit-area *,
#wpadminbar,
#wpadminbar *,
.dhishaai-allow-select,
.dhishaai-allow-select * {
	-webkit-user-select: text !important;
	-moz-user-select: text !important;
	-ms-user-select: text !important;
	user-select: text !important;
}

/* Images inside those areas keep their normal drag/callout behaviour. */
input img,
textarea img,
[contenteditable] img,
[contenteditable] picture,
.elementor-edit-area img,
#wpadminbar img,
.dhishaai-allow-select img,
.dhishaai-allow-select picture {
	-webkit-user-drag: auto;
	user-drag: auto;
	-webkit-touch-callout: default;
}
