/* Base Theme Foundation: foundation.css. Core styles shared by every site: utility classes, accessibility,
   Gravity Forms (driven by Elementor's Theme Style), third-party fixes. Loads after hello.css and before the
   child theme's style.css, so the theme wins ties. Design choices (list styles, menu buttons, fonts, colours)
   belong in the child theme, not here. */

/* UTILITY CLASSES */

body {	
	display:block;
	max-width:100%;
	height:auto;
	overflow-x: hidden; }
.swiper-button-right, .swiper-button-next { text-align:right; }

.whiteText, .whiteText p, .whiteText h1, .whiteText h2, .whiteText h3, .whiteText h4, .whiteText li, .whiteText li:before, .whiteText a:not(.elementor-button), .whiteText a:not(.elementor-button):hover { color: #ffffff !important; }

.underlineLinks a:not(.elementor-button):hover, .alwaysUnderline a:not(.elementor-button) { text-decoration: underline; }
.noUnderline a:hover { text-decoration: none !important; }


ul.elementor-nav-menu--dropdown a, ul.elementor-nav-menu--dropdown a:focus, ul.elementor-nav-menu--dropdown a:hover {
    border-left: none;
}

.lastParagraph p:last-of-type {margin-bottom:0;}

@media (max-width:767px) {
	.mobileHide { display: none !important; }
	.desktopShow { display: none !important; }
	.menu-item-has-children .sub-menu .menu-item .elementor-sub-item {padding-left:2rem !important;}
}

@media (min-width:768px) {
	.mobileShow { display: none !important; }
}

@media (max-width: 640px) {
.wp-block-image figure {
	float: none;
	width: 100% !important;
	clear: both;
	text-align: center;
	}
}

.fullWidth {
	margin-left: -50vw;
	margin-right: -50vw;
	max-width: 100vw !important;
	position: relative;
	left: 50%;
	right: 50%;
	width: 100vw;
}

/* SPLIT SECTIONS: add to the image column (inner container) of a BOXED section so it bleeds
   to the viewport edge while the text column stays on the boxed grid. Desktop only; stacks below 1025px. */
@media (min-width: 1025px) {
	.fullWidthRight {
		width: calc(50% + (100vw - 100%) / 2) !important;
		max-width: none !important;
		margin-right: calc((100% - 100vw) / 2) !important;
	}
	.fullWidthLeft {
		width: calc(50% + (100vw - 100%) / 2) !important;
		max-width: none !important;
		margin-left: calc((100% - 100vw) / 2) !important;
	}
}

/* ACCESSIBILITY (skip-link / screen-reader-text styling is in the child theme, next to the header.php that prints them) */

@supports selector(:focus-visible) {
	:focus-visible { outline: 1px solid currentColor; outline-offset: 2px; } /* matches the text colour of whatever has focus */
}

/* Links inside running text are underlined, so they don't rely on colour alone (WCAG 1.4.1): Text Editor widgets, and
   block/classic post content (Elementor's Post Content widget, or Hello's own templates). Elementor-built content
   rendered through the Post Content widget (Theme Builder page templates) isn't touched, nor are buttons. To opt a
   widget or section out (e.g. a footer link list), give it the class noUnderline. */
.elementor-widget-text-editor a[href]:not(.elementor-button, .noUnderline *),
.elementor-widget-theme-post-content a[href]:not(.elementor-widget-theme-post-content .elementor *, .wp-block-button__link, .wp-element-button, .noUnderline *),
:is(.page-content, .entry-content) :is(p, li, dd, td, th, figcaption, blockquote) a[href]:not(.elementor *, .noUnderline *) {
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

/* FIX LIGHTBOX BUTTONS */

.fancybox-container .fancybox-button {
    display: inline-block;
    height: 44px;
    margin: 0;
    outline: 0;
    padding: 6px !important;
    vertical-align: top;
    width: 44px;
    color: #FFFFFF;
    background-color: #000000;
    border-color: #000000;
}

.fancybox-container .fancybox-button:hover, .fancybox-container .fancybox-navigation a:hover {
    color: #FFFFFF;
    background-color: #777777;
    border-color: #777777;
}

.fancybox-container .fancybox-button svg path {
    width: 24px;
}


/* GRAVITY FORMS
   Forms added by shortcode or block follow Elementor's Site Settings > Theme Style > Buttons and Form Fields, and look
   the same in either GF theme (Orbital or "Gravity Forms 2.5"). The plugin (gravity-forms.php) publishes
   those settings as --ows-btn-*, --ows-field-* and --ows-label-*; the fallbacks below are Hello Elementor's
   defaults, used for anything Theme Style leaves empty. Forms placed with UAE's Gravity Forms Styler are styled by UAE
   and skipped (:not(.uael-gf-style *)), apart from the spacing rules in the first block, which every form shares.
   Small text (sub-labels, descriptions, consent, .disclaimer) is 0.9rem. */

/* All forms, UAE-styled ones included: field spacing, label gap, italic descriptions */
.gform-theme--framework {
	--gf-form-gap-y: 1.25rem !important;
	--gf-label-space-primary: 0.25rem !important;
	--gf-label-choice-field-space-primary: 0.25rem !important;
	--gf-ctrl-desc-font-style: italic !important;
	--gf-ctrl-desc-font-style-error: normal !important;
}
body .gform_wrapper.gravity-theme .gform_fields {
	row-gap: 1.25rem;
}
body .gform_wrapper.gravity-theme .gfield_label {
	margin-bottom: 0.25rem;
}
body .gform_wrapper.gravity-theme .gfield_description:not(.validation_message) {
	font-style: italic;
}
body .gform_wrapper .gfield_consent_label,
body .gform_wrapper .gform_body .disclaimer {
	font-size: 0.9rem;
}

/* Orbital theme: point GF's own variables at Theme Style. GF prints its defaults inline on each form, hence !important. */
.gform-theme--framework:not(.uael-gf-style *) {
	--gf-color-primary: var(--e-global-color-primary) !important;
	--gf-color-primary-darker: var(--e-global-color-accent) !important;
	--gf-color-primary-lighter: var(--e-global-color-accent) !important;
	--gf-ctrl-choice-check-color: var(--e-global-color-primary) !important;
	--gf-ctrl-accent-color: var(--e-global-color-primary) !important;
	--gf-ctrl-outline-color-focus: var(--e-global-color-primary) !important;

	/* Buttons */
	--gf-ctrl-btn-bg-color-primary: var(--ows-btn-bg, var(--e-global-color-primary)) !important;
	--gf-ctrl-btn-bg-color-hover-primary: var(--ows-btn-bg-hover, var(--ows-btn-bg, var(--e-global-color-primary))) !important;
	--gf-ctrl-btn-bg-color-focus-primary: var(--ows-btn-bg-hover, var(--ows-btn-bg, var(--e-global-color-primary))) !important;
	--gf-ctrl-btn-color-primary: var(--ows-btn-color, #fff) !important;
	--gf-ctrl-btn-color-hover-primary: var(--ows-btn-color-hover, var(--ows-btn-color, #fff)) !important;
	--gf-ctrl-btn-color-focus-primary: var(--ows-btn-color-hover, var(--ows-btn-color, #fff)) !important;
	--gf-ctrl-btn-border-style-primary: var(--ows-btn-border-style, solid) !important;
	--gf-ctrl-btn-border-width-primary: var(--ows-btn-border-width, 0) !important;
	--gf-ctrl-btn-border-color-primary: var(--ows-btn-border-color, transparent) !important;
	--gf-ctrl-btn-border-color-hover-primary: var(--ows-btn-border-color-hover, var(--ows-btn-border-color, transparent)) !important;
	--gf-ctrl-btn-border-color-focus-primary: var(--ows-btn-border-color-hover, var(--ows-btn-border-color, transparent)) !important;
	--gf-ctrl-btn-radius: var(--ows-btn-radius, 3px) !important;
	--gf-ctrl-btn-size: auto !important;
	--gf-ctrl-btn-padding-y: var(--ows-btn-padding-y, 0.5rem) !important;
	--gf-ctrl-btn-padding-x: var(--ows-btn-padding-x, 1rem) !important;
	--gf-ctrl-btn-font-family: var(--ows-btn-font-family, var(--e-global-typography-text-font-family, sans-serif)) !important;
	--gf-ctrl-btn-font-size: var(--ows-btn-font-size, 1rem) !important;
	--gf-ctrl-btn-font-weight: var(--ows-btn-font-weight, 400) !important;
	--gf-ctrl-btn-font-style: var(--ows-btn-font-style, normal) !important;
	--gf-ctrl-btn-text-transform: var(--ows-btn-text-transform, none) !important;
	--gf-ctrl-btn-letter-spacing: var(--ows-btn-letter-spacing, normal) !important;
	--gf-ctrl-btn-line-height: var(--ows-btn-line-height, 1.5) !important;

	/* Fields */
	--gf-ctrl-color: var(--ows-field-color, var(--e-global-color-text, #333)) !important;
	--gf-ctrl-bg-color: var(--ows-field-bg, #fff) !important;
	--gf-ctrl-bg-color-hover: var(--ows-field-bg, #fff) !important;
	--gf-ctrl-bg-color-focus: var(--ows-field-bg-focus, var(--ows-field-bg, #fff)) !important;
	--gf-ctrl-border-style: var(--ows-field-border-style, solid) !important;
	--gf-ctrl-border-width: var(--ows-field-border-width, 1px) !important;
	--gf-ctrl-border-color: var(--ows-field-border-color, #666) !important;
	--gf-ctrl-border-color-hover: var(--ows-field-border-color, #666) !important;
	--gf-ctrl-border-color-focus: var(--ows-field-border-color-focus, var(--e-global-color-primary)) !important;
	--gf-ctrl-radius: var(--ows-field-radius, 3px) !important;
	--gf-ctrl-size: auto !important;
	--gf-ctrl-padding-y: var(--ows-field-padding-y, 0.5rem) !important;
	--gf-ctrl-padding-x: var(--ows-field-padding-x, 1rem) !important;
	--gf-ctrl-textarea-padding-y: var(--ows-field-padding-y, 0.5rem) !important;
	--gf-ctrl-font-family: var(--ows-field-font-family, var(--e-global-typography-text-font-family, sans-serif)) !important;
	--gf-ctrl-font-size: var(--ows-field-font-size, 1rem) !important;
	--gf-ctrl-font-weight: var(--ows-field-font-weight, 400) !important;
	--gf-ctrl-font-style: var(--ows-field-font-style, normal) !important;
	--gf-ctrl-letter-spacing: var(--ows-field-letter-spacing, normal) !important;
	--gf-ctrl-line-height: var(--ows-field-line-height, 1.5) !important;
	--gf-ctrl-placeholder-font-family: var(--ows-field-font-family, var(--e-global-typography-text-font-family, sans-serif)) !important;
	--gf-ctrl-placeholder-font-size: var(--ows-field-font-size, 1rem) !important;

	/* Labels (primary), choice labels (secondary), sub-labels (tertiary), required text, descriptions */
	--gf-ctrl-label-color-primary: var(--ows-label-color, var(--e-global-color-text, #333)) !important;
	--gf-ctrl-label-font-family-primary: var(--ows-label-font-family, var(--e-global-typography-text-font-family, sans-serif)) !important;
	--gf-ctrl-label-font-size-primary: var(--ows-label-font-size, 1rem) !important;
	--gf-ctrl-label-font-weight-primary: var(--ows-label-font-weight, 700) !important;
	--gf-ctrl-label-font-style-primary: var(--ows-label-font-style, normal) !important;
	--gf-ctrl-label-letter-spacing-primary: var(--ows-label-letter-spacing, normal) !important;
	--gf-ctrl-label-line-height-primary: var(--ows-label-line-height, 1.3) !important;
	--gf-ctrl-label-color-secondary: var(--ows-field-color, var(--e-global-color-text, #333)) !important;
	--gf-ctrl-label-font-family-secondary: var(--ows-field-font-family, var(--e-global-typography-text-font-family, sans-serif)) !important;
	--gf-ctrl-label-font-size-secondary: var(--ows-field-font-size, 1rem) !important;
	--gf-ctrl-label-font-weight-secondary: 400 !important;
	--gf-ctrl-label-color-tertiary: var(--ows-field-color, var(--e-global-color-text, #333)) !important;
	--gf-ctrl-label-font-family-tertiary: var(--ows-field-font-family, var(--e-global-typography-text-font-family, sans-serif)) !important;
	--gf-ctrl-label-font-size-tertiary: 0.9rem !important;
	--gf-ctrl-label-color-req: var(--ows-error-color, var(--e-global-color-db3c144, #c02b0a)) !important;
	--gf-ctrl-desc-color: var(--ows-field-color, var(--e-global-color-text, #333)) !important;
	--gf-ctrl-desc-font-family: var(--ows-field-font-family, var(--e-global-typography-text-font-family, sans-serif)) !important;
	--gf-ctrl-desc-font-size: 0.9rem !important;
}

/* Gravity Forms 2.5 theme: Theme Style already reaches its button, but GF's own sizes win on fields and labels */
.gform_wrapper.gravity-theme:not(.uael-gf-style *) input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"], [type="image"], [type="file"], [type="hidden"]),
.gform_wrapper.gravity-theme:not(.uael-gf-style *) select,
.gform_wrapper.gravity-theme:not(.uael-gf-style *) textarea {
	color: var(--ows-field-color, var(--e-global-color-text, #333));
	background-color: var(--ows-field-bg, #fff);
	border-style: var(--ows-field-border-style, solid);
	border-width: var(--ows-field-border-width, 1px);
	border-color: var(--ows-field-border-color, #666);
	border-radius: var(--ows-field-radius, 3px);
	padding: var(--ows-field-padding, 0.5rem 1rem);
	font-family: var(--ows-field-font-family, var(--e-global-typography-text-font-family, sans-serif));
	font-size: var(--ows-field-font-size, 1rem);
	font-weight: var(--ows-field-font-weight, 400);
	font-style: var(--ows-field-font-style, normal);
	letter-spacing: var(--ows-field-letter-spacing, normal);
	line-height: var(--ows-field-line-height, 1.5);
}
.gform_wrapper.gravity-theme:not(.uael-gf-style *) input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"], [type="image"], [type="file"], [type="hidden"]):focus,
.gform_wrapper.gravity-theme:not(.uael-gf-style *) select:focus,
.gform_wrapper.gravity-theme:not(.uael-gf-style *) textarea:focus {
	background-color: var(--ows-field-bg-focus, var(--ows-field-bg, #fff));
	border-color: var(--ows-field-border-color-focus, var(--e-global-color-primary));
}
.gform_wrapper.gravity-theme:not(.uael-gf-style *) .gfield_label,
.gform_wrapper.gravity-theme:not(.uael-gf-style *) legend.gfield_label {
	color: var(--ows-label-color, var(--e-global-color-text, #333));
	font-family: var(--ows-label-font-family, var(--e-global-typography-text-font-family, sans-serif));
	font-size: var(--ows-label-font-size, 1rem);
	font-weight: var(--ows-label-font-weight, 700);
	font-style: var(--ows-label-font-style, normal);
	letter-spacing: var(--ows-label-letter-spacing, normal);
	line-height: var(--ows-label-line-height, 1.3);
}
.gform_wrapper.gravity-theme:not(.uael-gf-style *) .gfield_required {
	color: var(--ows-error-color, var(--e-global-color-db3c144, #c02b0a));
}
/* Theme Style's label font reaches every <label>, so reset choice and sub-labels to the field font */
.gform_wrapper.gravity-theme:not(.uael-gf-style *) .gchoice label,
.gform_wrapper.gravity-theme:not(.uael-gf-style *) .gfield_consent_label,
.gform_wrapper.gravity-theme:not(.uael-gf-style *) .gform-field-label--type-sub,
.gform_wrapper.gravity-theme:not(.uael-gf-style *) .ginput_complex label {
	color: var(--ows-field-color, var(--e-global-color-text, #333));
	font-family: var(--ows-field-font-family, var(--e-global-typography-text-font-family, sans-serif));
	font-size: var(--ows-field-font-size, 1rem);
	font-weight: 400;
	font-style: normal;
	text-transform: none;
	letter-spacing: normal;
}
.gform_wrapper.gravity-theme:not(.uael-gf-style *) .gform-field-label--type-sub,
.gform_wrapper.gravity-theme:not(.uael-gf-style *) .ginput_complex label,
.gform_wrapper.gravity-theme:not(.uael-gf-style *) .gfield_consent_label,
.gform_wrapper.gravity-theme:not(.uael-gf-style *) .gfield_description {
	font-size: 0.9rem;
}
.gform_wrapper.gravity-theme:not(.uael-gf-style *) .gfield_description:not(.validation_message) {
	color: var(--ows-field-color, var(--e-global-color-text, #333));
}

/* Fields with an error keep a red border (Theme Style's field border would otherwise hide it), both themes */
body .gform_wrapper:not(.uael-gf-style *) .gfield_error :is(input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"]), select, textarea) {
	border-color: var(--ows-error-color, var(--e-global-color-db3c144, #c02b0a));
}

/* Confirmation message (both themes) */
.gform_confirmation_wrapper:not(.uael-gf-style *) .gform_confirmation_message {
	border: 1px solid var(--ows-confirm-border, var(--e-global-color-primary));
	background-color: var(--ows-confirm-bg, var(--e-global-color-44a143f, transparent));
	color: var(--ows-confirm-color, var(--e-global-color-text));
	padding: 1.25rem;
	text-align: center;
}

/* UAE Gravity Forms Styler: hide UAE's extra dropdown arrow (the browser's own arrow still shows) */
.uael-gf-style .uael-gf-select-custom::after {
	display: none;
}



/* SELECT2 STYLE FIXES */

.select2-search--dropdown, .select2-selection__rendered, .select2-search__field, .select2-results {
	background-color: #fff;
	cursor:pointer;
}

.select2-container--default .select2-selection--single .select2-selection__arrow b {
	border-color: #000 transparent transparent  !important;
}

.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
	border-color:  transparent transparent #888 !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	text-align:left;
	cursor:pointer;
}


/* BLOCK CONTENT */

.wp-block-heading strong {
	font-weight: inherit;
}
