/**
 * Responsive Visibility Utility Classes
 * Uses Gutenberg's "Stack on mobile" breakpoint (782px)
 * Compatible with WordPress/Gutenberg CSS custom properties
 * Uses --breakpoint-lg from theme.css (782px)
 */

/* Show on mobile/tablet (below 782px), hide on desktop */
.show-mobile-tablet {
	display: block;
}

@media (width >= 782px) {
	.show-mobile-tablet {
		display: none !important;
	}
}

/* Hide on mobile/tablet (below 782px), show on desktop */
.hide-mobile-tablet {
	display: none;
}

@media (width >= 782px) {
	.hide-mobile-tablet {
		display: block;
	}
}

/* Show only on mobile (below 782px) */
.show-mobile {
	display: block;
}

@media (width >= 782px) {
	.show-mobile {
		display: none !important;
	}
}

/* Hide on mobile (below 782px) */
.hide-mobile {
	display: none;
}

@media (width >= 782px) {
	.hide-mobile {
		display: block;
	}
}

/* Show only on desktop (782px and above) */
.show-desktop {
	display: none;
}

@media (width >= 782px) {
	.show-desktop {
		display: block;
	}
}

/* Hide on desktop (782px and above) */
.hide-desktop {
	display: block;
}

@media (width >= 782px) {
	.hide-desktop {
		display: none !important;
	}
}

/* Flex variants */
.show-mobile-tablet-flex {
	display: flex;
}

@media (width >= 782px) {
	.show-mobile-tablet-flex {
		display: none !important;
	}
}

.hide-mobile-tablet-flex {
	display: none;
}

@media (width >= 782px) {
	.hide-mobile-tablet-flex {
		display: flex;
	}
}

.show-desktop-flex {
	display: none;
}

@media (width >= 782px) {
	.show-desktop-flex {
		display: flex;
	}
}

.hide-desktop-flex {
	display: flex;
}

@media (width >= 782px) {
	.hide-desktop-flex {
		display: none !important;
	}
}

/* Grid variants */
.show-mobile-tablet-grid {
	display: grid;
}

@media (width >= 782px) {
	.show-mobile-tablet-grid {
		display: none !important;
	}
}

.hide-mobile-tablet-grid {
	display: none;
}

@media (width >= 782px) {
	.hide-mobile-tablet-grid {
		display: grid;
	}
}

.show-desktop-grid {
	display: none;
}

@media (width >= 782px) {
	.show-desktop-grid {
		display: grid;
	}
}

.hide-desktop-grid {
	display: grid;
}

@media (width >= 782px) {
	.hide-desktop-grid {
		display: none !important;
	}
}

/**
 * Gravity Forms theme overrides – aligned with theme.json and site inputs
 * (facetwp-search-field, elements.textInput, elements.button).
 * Uses only --wp--preset--* and --wp--custom--* from theme.
 */
 .gform-theme .gfield .ginput_container_text input {
	padding-block: 3px 0px !important;
}

.gform-theme .gfield .checkbox-wrapper input[type="checkbox"] {
	margin-right: 8px !important;
	--gf-local-border-color: var(--gf-ctrl-accent-color) !important;
    --gf-local-border-width: 3px !important;
}

.gform-theme .gfield .form-field-wrapper {
	margin-top: var(--gf-form-gap-x) !important;
}

.gform-theme input[type="submit"],
.gform-theme button[type="submit"].gform_button {
	--gf-local-width: 100% !important;
	--gf-ctrl-btn-font-weight: 700 !important;
    --gf-local-font-size: var(--wp--preset--font-size--md) !important;
	padding-block: 3px 0px !important;
}

.gform-theme button[type="submit"].gform_button,
#gform_submit_button_2 {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
}

.gform_button_text {
	padding-top: 3px;
}

/* Ensure submit button arrow SVG is visible */
.gform_button .gform_button_arrow,
#gform_submit_button_2 .gform_button_arrow {
	display: inline-block !important;
	flex-shrink: 0 !important;
	width: 20px !important;
	height: 20px !important;
	vertical-align: middle !important;
}

:root,
.gform-theme--api,
.gform-theme--framework {
	--gf-form-gap-y: 14px !important;
	--gf-label-space-primary: 2px !important;
    --gf-ctrl-border-color-focus: var(--wp--preset--color--twilight-indigo) !important;
    --gf-ctrl-outline-color-focus: var(--wp--preset--color--twilight-indigo) !important;
	--gf-ctrl-btn-bg-color-primary: var(--wp--preset--color--twilight-indigo) !important;

}



/* Vendor styles */

/* Responsive visibility utilities */

/* Global styles (no layer - highest specificity) */
*, *::after, *::before {
  box-sizing: inherit;
}

/* Base layer - for element defaults */
html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

