.elementor-1411 .elementor-element.elementor-element-1534726{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:6px 6px;--row-gap:6px;--column-gap:6px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:180px;--padding-bottom:180px;--padding-left:20px;--padding-right:20px;}.elementor-1411 .elementor-element.elementor-element-1534726:not(.elementor-motion-effects-element-type-background), .elementor-1411 .elementor-element.elementor-element-1534726 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://2pimindmath.com/wp-content/uploads/2026/08/Frame-75-1-1.webp");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-1411 .elementor-element.elementor-element-2f0d102{width:var( --container-widget-width, 65% );max-width:65%;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--container-widget-width:65%;--container-widget-flex-grow:0;}.elementor-1411 .elementor-element.elementor-element-2f0d102 .elementor-heading-title{font-family:"Nunito", Sans-serif;font-weight:900;color:var( --e-global-color-cwhite );}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-1411 .elementor-element.elementor-element-4c80dd6{width:var( --container-widget-width, 56% );max-width:56%;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:18px 0px 0px 0px;--container-widget-width:56%;--container-widget-flex-grow:0;font-family:"Montserrat", Sans-serif;font-size:20px;font-weight:500;line-height:28px;color:var( --e-global-color-accent );}.elementor-1411 .elementor-element.elementor-element-37c67f0{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:36px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );line-height:var( --e-global-typography-accent-line-height );}.elementor-1411 .elementor-element.elementor-element-a705416 .elementor-button{background-color:#00A539;font-family:"Montserrat", Sans-serif;font-size:16px;font-weight:600;line-height:26px;fill:#FFFFFF;color:#FFFFFF;box-shadow:-3px 3px 0px 1px #FFFFFF;border-style:solid;border-width:2px 2px 2px 2px;border-color:#00A539;border-radius:200px 200px 200px 200px;padding:14px 32px 14px 32px;}.elementor-1411 .elementor-element.elementor-element-a705416 .elementor-button:hover, .elementor-1411 .elementor-element.elementor-element-a705416 .elementor-button:focus{background-color:#FFFFFF;color:#00A539;border-color:#FFFFFF;box-shadow:-3px 3px 0px 1px #00A539;}.elementor-1411 .elementor-element.elementor-element-a705416.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor-1411 .elementor-element.elementor-element-a705416 .elementor-button:hover svg, .elementor-1411 .elementor-element.elementor-element-a705416 .elementor-button:focus svg{fill:#00A539;}.elementor-1411 .elementor-element.elementor-element-a3e74a7{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:50px 50px;--row-gap:50px;--column-gap:50px;}.elementor-1411 .elementor-element.elementor-element-20b2693{text-align:center;}.elementor-1411 .elementor-element.elementor-element-20b2693 .elementor-heading-title{font-family:"Nunito", Sans-serif;font-size:48px;font-weight:900;line-height:50px;letter-spacing:0.48px;color:var( --e-global-color-primary );}.elementor-1411 .elementor-element.elementor-element-3260396{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:32px 32px;--row-gap:32px;--column-gap:32px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1411 .elementor-element.elementor-element-f73b852{--display:flex;--min-height:830px;--border-radius:20px 20px 20px 20px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1411 .elementor-element.elementor-element-f73b852:not(.elementor-motion-effects-element-type-background), .elementor-1411 .elementor-element.elementor-element-f73b852 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://2pimindmath.com/wp-content/uploads/2026/08/Final-CTA-Photo-1.webp");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-1411 .elementor-element.elementor-element-b2bbbaf{--display:flex;--overlay-opacity:0.5;border-style:solid;--border-style:solid;border-width:1px 1px 1px 1px;--border-top-width:1px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:#E6E6E6;--border-color:#E6E6E6;--border-radius:20px 20px 20px 20px;box-shadow:0px 8px 32px 0px rgba(0, 0, 0, 0.0784313725490196);--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:43px;--padding-bottom:43px;--padding-left:40px;--padding-right:40px;}.elementor-1411 .elementor-element.elementor-element-b2bbbaf::before, .elementor-1411 .elementor-element.elementor-element-b2bbbaf > .elementor-background-video-container::before, .elementor-1411 .elementor-element.elementor-element-b2bbbaf > .e-con-inner > .elementor-background-video-container::before, .elementor-1411 .elementor-element.elementor-element-b2bbbaf > .elementor-background-slideshow::before, .elementor-1411 .elementor-element.elementor-element-b2bbbaf > .e-con-inner > .elementor-background-slideshow::before, .elementor-1411 .elementor-element.elementor-element-b2bbbaf > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{--background-overlay:'';}:root{--page-title-display:none;}@media(max-width:1024px){.elementor-1411 .elementor-element.elementor-element-1534726:not(.elementor-motion-effects-element-type-background), .elementor-1411 .elementor-element.elementor-element-1534726 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:center left;}.elementor-1411 .elementor-element.elementor-element-1534726{--padding-top:140px;--padding-bottom:140px;--padding-left:20px;--padding-right:20px;}.elementor-1411 .elementor-element.elementor-element-2f0d102{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--container-widget-width:92%;--container-widget-flex-grow:0;width:var( --container-widget-width, 92% );max-width:92%;}.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-1411 .elementor-element.elementor-element-4c80dd6{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:18px 0px 0px 0px;--container-widget-width:95%;--container-widget-flex-grow:0;width:var( --container-widget-width, 95% );max-width:95%;}.elementor-widget-button .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-1411 .elementor-element.elementor-element-a3e74a7{--gap:40px 40px;--row-gap:40px;--column-gap:40px;}.elementor-1411 .elementor-element.elementor-element-20b2693 .elementor-heading-title{font-size:36px;line-height:37px;}.elementor-1411 .elementor-element.elementor-element-3260396{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:30px 30px;--row-gap:30px;--column-gap:30px;}.elementor-1411 .elementor-element.elementor-element-f73b852{--min-height:800px;}}@media(max-width:767px){.elementor-1411 .elementor-element.elementor-element-1534726:not(.elementor-motion-effects-element-type-background), .elementor-1411 .elementor-element.elementor-element-1534726 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://2pimindmath.com/wp-content/uploads/2026/08/FAQ-Item-1-Set-1-1.webp");background-position:center center;}.elementor-1411 .elementor-element.elementor-element-1534726{--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:100px;--padding-bottom:300px;--padding-left:20px;--padding-right:20px;}.elementor-1411 .elementor-element.elementor-element-2f0d102{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--container-widget-width:100%;--container-widget-flex-grow:0;width:var( --container-widget-width, 100% );max-width:100%;}.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-1411 .elementor-element.elementor-element-4c80dd6{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:10px 0px 0px 0px;font-size:18px;line-height:24px;}.elementor-1411 .elementor-element.elementor-element-37c67f0{--gap:16px 16px;--row-gap:16px;--column-gap:16px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:20px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-button .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-1411 .elementor-element.elementor-element-a705416 .elementor-button{font-size:14px;line-height:24px;padding:12px 20px 12px 20px;}.elementor-1411 .elementor-element.elementor-element-a3e74a7{--gap:30px 30px;--row-gap:30px;--column-gap:30px;}.elementor-1411 .elementor-element.elementor-element-20b2693 .elementor-heading-title{font-size:30px;line-height:31px;}.elementor-1411 .elementor-element.elementor-element-3260396{--gap:25px 25px;--row-gap:25px;--column-gap:25px;}.elementor-1411 .elementor-element.elementor-element-f73b852{--min-height:440px;}}@media(min-width:768px){.elementor-1411 .elementor-element.elementor-element-f73b852{--width:40%;}.elementor-1411 .elementor-element.elementor-element-b2bbbaf{--width:60%;}}@media(max-width:1024px) and (min-width:768px){.elementor-1411 .elementor-element.elementor-element-f73b852{--width:100%;}.elementor-1411 .elementor-element.elementor-element-b2bbbaf{--width:100%;}}/* Start custom CSS for shortcode, class: .elementor-element-8d11f13 *//* Removes the hazy blue ring around Submit on a mouse click, while keeping
   it for real keyboard (Tab) navigation for accessibility. */
#gform_submit_button_1:focus:not(:focus-visible) {
	outline: none !important;
}/* End custom CSS */
/* Start custom CSS */div#gform_confirmation_message_1 {
    color: #00A539;
}


/* Bold text typed into the single-line/email/phone inputs */
body #gform_wrapper_1.uv-contact-form_wrapper input[type="text"],
body #gform_wrapper_1.uv-contact-form_wrapper input[type="email"],
body #gform_wrapper_1.uv-contact-form_wrapper input[type="tel"],
body #gform_wrapper_1.uv-contact-form_wrapper input[type="number"] {
	--gf-ctrl-font-weight: 400;
	font-weight: 600;
}

body #gform_wrapper_1.uv-contact-form_wrapper textarea {
	font-weight: 600;
}
body #gform_wrapper_1.uv-contact-form_wrapper select {
	font-weight: 600;
}

/* === Contact page enrollment form — Figma node 1199:6702 ================
   Gravity Forms #1, dropped on this page through a shortcode widget, so
   nothing here is reachable from an Elementor control panel — it has to be
   CSS. Hooked on `uv-contact-form`, the CSS class already on the <form>, so
   the styling travels with the form if the shortcode is reused elsewhere.
   The white card (radius 20, 1px #E6E6E6, 0 8px 32px shadow) is the
   Elementor container; only its responsive padding is touched, at the end.

   SPECIFICITY: Gravity Forms prints a per-form <style> in the *body* that
   sets every --gf-* token at `#gform_wrapper_1[data-form-index="0"]
   .gform-theme` = (1,2,0). This file is enqueued in the head, so source
   order loses. The leading `body` is what lifts these to (1,2,1) and wins.
   Do not drop it.
   ===================================================================== */

body #gform_wrapper_1.uv-contact-form_wrapper.gform-theme {
	/* Grid. Figma runs two 304px columns inside the 630px content width
	   (22px between them) and repeats every field row on a 23px rhythm. */
	--gf-form-gap-x: 22px;
	--gf-form-gap-y: 23px;

	/* Field labels: 16/26 Montserrat SemiBold in the brand navy, 4px above
	   the control. */
	--gf-ctrl-label-color-primary: #29166F;
	--gf-ctrl-label-font-family-primary: "Montserrat", sans-serif;
	--gf-ctrl-label-font-size-primary: 16px;
	--gf-ctrl-label-font-weight-primary: 600;
	--gf-ctrl-label-line-height-primary: 26px;
	--gf-label-space-primary: 4px;

	/* Text inputs, select and textarea: 48px tall, radius 10, 1.5px #D8D8DE
	   on white, 18px side padding, 14px Montserrat. */
	--gf-ctrl-size: 48px;
	--gf-ctrl-radius: 10px;
	--gf-ctrl-textarea-radius: 10px;
	--gf-ctrl-textarea-height: 110px;
	--gf-ctrl-bg-color: #FFFFFF;
	--gf-ctrl-bg-color-hover: #FFFFFF;
	--gf-ctrl-bg-color-focus: #FFFFFF;
	--gf-ctrl-border-style: solid;
	--gf-ctrl-border-width: 1.5px;

	/* One border colour in every state. The theme darkens the edge on hover
	   and focus; that reads as the field changing shape under the cursor, so
	   hover and focus are pinned back to the resting #D8D8DE. Keyboard focus
	   is carried by the outline below instead, which does not move anything. */
	--gf-ctrl-border-color: #D8D8DE;
	--gf-ctrl-border-color-hover: #D8D8DE;
	--gf-ctrl-border-color-focus: #D8D8DE;

	--gf-ctrl-padding-x: 18px;
	--gf-ctrl-font-family: "Montserrat", sans-serif;
	--gf-ctrl-font-size: 14px;
	--gf-ctrl-color: #1F1F2C;
	--gf-ctrl-placeholder-color: #595961;
	--gf-ctrl-placeholder-font-family: "Montserrat", sans-serif;
	--gf-ctrl-placeholder-font-size: 14px;
	--gf-ctrl-placeholder-font-weight: 400;
	--gf-ctrl-placeholder-opacity: 1;

	/* The focus ring is the only keyboard affordance left once the border
	   stops reacting, so it stays — tinted navy rather than the theme's
	   default #204ce5, which belongs to no palette on this site. */
	--gf-ctrl-outline-color-focus: rgba(41, 22, 111, .28);
	--gf-ctrl-outline-width-focus: 3px;

	/* Checkbox squares: 20px, radius 5, same 1.5px #D8D8DE stroke. */
	--gf-ctrl-choice-size: 20px;
	--gf-ctrl-checkbox-check-radius: 5px;
	--gf-ctrl-checkbox-check-size: 13px;
	--gf-ctrl-choice-check-color: #FFFFFF;

	/* Select chevron. GF ships a slate one; Figma draws it navy. Same path,
	   recoloured — inner attributes are single-quoted so the outer url("…")
	   string does not terminate early. */
	--gf-icon-ctrl-select: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0.292893 0.292893C0.683417 -0.097631 1.31658 -0.097631 1.70711 0.292893L5 3.58579L8.29289 0.292893C8.68342 -0.0976311 9.31658 -0.0976311 9.70711 0.292893C10.0976 0.683417 10.0976 1.31658 9.70711 1.70711L5.70711 5.70711C5.31658 6.09763 4.68342 6.09763 4.29289 5.70711L0.292893 1.70711C-0.0976311 1.31658 -0.0976311 0.683418 0.292893 0.292893Z' fill='%2329166F'/%3E%3C/svg%3E");
	--gf-ctrl-select-icon-size: 12px;

	/* Submit sits 21px under the message box. */
	--gf-form-footer-margin-y-start: 21px;
}

/* Empty heading block that GF prints above the fields — with the form title
   turned off it is a bare <p>, but it still carries the theme's paragraph
   margin and pushes the first row off the card's top padding. */
body #gform_wrapper_1.uv-contact-form_wrapper .gform_heading {
	display: none;
}

/* Figma prints no required markers, so the "(Required)" suffix is dropped.
   Server-side validation is untouched — this is the label text only. */
body #gform_wrapper_1.uv-contact-form_wrapper .gfield_required {
	display: none;
}

/* Label-to-control gap for the three fields Figma spaces differently from
   the 4px used on the text inputs. */
body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-radio > .gfield_label {
	margin-block-end: 12px;
}
body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-checkbox > .gfield_label {
	margin-block-end: 14px;
}
body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-textarea > .gfield_label {
	margin-block-end: 8px;
}

/* Textarea. The height comes from --gf-ctrl-textarea-height above, but the
   field carries rows="10" and browsers size from that attribute when the
   computed height resolves to auto, so it is pinned here as well. */
body #gform_wrapper_1.uv-contact-form_wrapper textarea {
	block-size: 110px;
	min-block-size: 110px;
	padding-block: 12px;
	resize: vertical;
}

/* === Student Grade dropdown ===========================================
   A native <select> popup is drawn by the OS, not the page, so the list in
   the Figma frame — white card, radius 10, its own rows — cannot be reached
   with ordinary CSS. `appearance: base-select` hands the popup back to CSS.
   It is Chromium-only today, and the whole block is behind @supports: any
   browser without it keeps the OS list, and the closed field looks identical
   either way. Nothing here changes the closed control's box.
   ===================================================================== */
@supports (appearance: base-select) {
	body #gform_wrapper_1.uv-contact-form_wrapper select {
		appearance: base-select;
		/* base-select supplies its own ::picker-icon, so GF's background
		   chevron would otherwise print a second arrow beside it */
		background-image: none;
		/* base-select resets the control to a button; the resting box is
		   restated so the closed field is unchanged from the native path */
		display: flex;
		align-items: center;
		justify-content: space-between;
		inline-size: 100%;
		block-size: 48px;
		padding: 0 18px;
		border: 1.5px solid #D8D8DE;
		border-radius: 10px;
		background-color: #FFFFFF;
		font-family: "Montserrat", sans-serif;
		font-size: 14px;
		color: #1F1F2C;
		text-align: start;
	}
	body #gform_wrapper_1.uv-contact-form_wrapper select:hover,
	body #gform_wrapper_1.uv-contact-form_wrapper select:open {
		border-color: #D8D8DE;
	}
	/* the chevron, flipping to point up while the list is open */
	body #gform_wrapper_1.uv-contact-form_wrapper select::picker-icon {
		color: #29166F;
		transition: transform .2s ease-out;
	}
	body #gform_wrapper_1.uv-contact-form_wrapper select:open::picker-icon {
		transform: rotate(180deg);
	}
	/* the list itself */
	body #gform_wrapper_1.uv-contact-form_wrapper select::picker(select) {
		appearance: base-select;
		margin-block-start: 6px;
		padding: 0;
		border: 1px solid #E6E6E6;
		border-radius: 10px;
		background: #FFFFFF;
		box-shadow: 0 8px 24px rgba(0, 0, 0, .10);
		max-block-size: 280px;
		overflow-y: auto;
	}
	body #gform_wrapper_1.uv-contact-form_wrapper select option {
		display: block;
		padding: 11px 18px;
		border-block-end: 1px solid #F0F0F3;
		background: #FFFFFF;
		font-family: "Montserrat", sans-serif;
		font-size: 14px;
		line-height: 20px;
		color: #595961;
		cursor: pointer;
	}
	body #gform_wrapper_1.uv-contact-form_wrapper select option:last-of-type {
		border-block-end: 0;
	}
	body #gform_wrapper_1.uv-contact-form_wrapper select option:hover,
	body #gform_wrapper_1.uv-contact-form_wrapper select option:focus {
		background: #F4F6FA;
		color: #29166F;
	}
	body #gform_wrapper_1.uv-contact-form_wrapper select option:checked {
		color: #29166F;
		font-weight: 600;
	}
	/* base-select reserves a gutter on every row for a tick beside the
	   selected option; the Figma list has no such column */
	body #gform_wrapper_1.uv-contact-form_wrapper select option::checkmark {
		display: none;
	}
}

/* === Enrollment Option — radios drawn as pills =========================
   Figma replaces the radio dots with two pills. In-Center Learning is the
   form's default choice so it renders filled; the other fills green on
   hover. The input is taken out of the layout rather than display:none'd so
   it stays focusable and screen readers still announce the group.
   ===================================================================== */
body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-radio .gfield_radio {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 16px;
}
/* flex, not block. The markup puts a newline between the (absolutely
   positioned) input and its label; in a block container that renders as a
   real space and indented the first pill past the label above it. A flex
   container drops whitespace-only children, so the row starts flush. */
body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-radio .gchoice {
	display: flex;
	position: relative;
}
body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-radio input[type="radio"] {
	position: absolute;
	inset-inline-start: 0;
	inset-block-start: 0;
	inline-size: 1px;
	block-size: 1px;
	margin: 0;
	opacity: 0;
	pointer-events: none;
}
body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-radio label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 10px 16px;
	border: 2px solid #00A539;
	border-radius: 200px;
	background: #FFFFFF;
	color: #00A539;
	font-family: "Montserrat", sans-serif;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color .2s ease-out, color .2s ease-out;
}
/* selected — and hovering the selected pill changes nothing, so the filled
   state does not flicker when the cursor crosses it */
body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-radio input[type="radio"]:checked + label {
	background: #00A539;
	color: #FFFFFF;
}
/* unselected fills on hover */
body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-radio label:hover {
	background: #00A539;
	color: #FFFFFF;
}
/* The pill is the only visible target, so the focus ring has to be drawn on
   it — the input it belongs to has no box left to outline. */
body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-radio input[type="radio"]:focus-visible + label {
	outline: 3px solid rgba(0, 165, 57, .45);
	outline-offset: 2px;
}

/* === Program(s) of Interest — 3-up checkbox grid ======================= */
body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-checkbox .gfield_checkbox {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px 16px;
}
body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-checkbox .gchoice {
	display: grid;
	grid-template-columns: 20px auto;
	column-gap: 10px;
	align-items: center;
}
body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-checkbox label {
	margin: 0;
	font-family: "Montserrat", sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	color: #5A5A5C;
	cursor: pointer;
}
/* Checked square goes solid green. --gf-local-bg-color is the variable the
   framework's own rule reads for background-color, so it is redefined here
   as well as the literal property — the plugin swaps between the two across
   releases and setting both survives either. */
body #gform_wrapper_1.uv-contact-form_wrapper input[type="checkbox"]:checked {
	--gf-local-bg-color: #00A539;
	--gf-local-border-color: #00A539;
	background-color: #00A539;
	border-color: #00A539;
}

/* === Submit ============================================================
   Copied off `pi-btn-primary pi-on-light`, the sitewide primary button, so
   this matches "Call (469) 334-2556" and "Read All Testimonials" exactly.
   Those are Elementor button widgets; .gform_button is not one, so none of
   that styling reaches here and every value is restated.

   The offset pill behind the button is a BOX-SHADOW (-5px 4px 0 0), not a
   border — an earlier pass here built it out of border-width and got the
   geometry subtly wrong.

   Hover swaps the two brand colours: green face + navy offset becomes navy
   face + green offset. That is the client's call for this button — the
   sitewide primary goes to a white face instead — and it is the same swap
   `pi-prog-more` already makes, so it is not a one-off in the system. The
   3px lift and the child theme's .25s ease-out are kept, so the motion
   still matches every other button.
   ===================================================================== */
/* === Submit — updated body.elementor-page-1411 for button element === */
body #gform_wrapper_1.uv-contact-form_wrapper .gform_footer input[type="submit"].gform_button,
body #gform_wrapper_1.uv-contact-form_wrapper .gform_footer button.gform_button {
	inline-size: auto;
	padding: 14px 32px;
	background-color: #00A539;
	color: #FFFFFF;
	font-family: "Montserrat", sans-serif;
	font-size: 16px;
	font-weight: 600;
	line-height: 26px;
	border: 2px solid #00A539;
	border-radius: 200px;
	box-shadow: -3px 3px 0 1px #29166F;
	cursor: pointer;
	transition: transform .25s ease-out, background-color .3s ease-out,
	            color .3s ease-out, border-color .3s ease-out,
	            box-shadow .3s ease-out;
	will-change: transform;
}
body #gform_wrapper_1.uv-contact-form_wrapper .gform_footer input[type="submit"].gform_button:hover,
body #gform_wrapper_1.uv-contact-form_wrapper .gform_footer input[type="submit"].gform_button:focus,
body #gform_wrapper_1.uv-contact-form_wrapper .gform_footer button.gform_button:hover,
body #gform_wrapper_1.uv-contact-form_wrapper .gform_footer button.gform_button:focus {
	background-color: #29166F;
	color: #FFFFFF;
	box-shadow: -3px 3px 0 1px #00A539;
	border: 2px solid #29166F;
	border-radius: 200px;
	transform: translateY(-3px);
}
@media (prefers-reduced-motion: reduce) {
	body #gform_wrapper_1.uv-contact-form_wrapper .gform_footer input[type="submit"].gform_button:hover,
	body #gform_wrapper_1.uv-contact-form_wrapper .gform_footer input[type="submit"].gform_button:focus,
	body #gform_wrapper_1.uv-contact-form_wrapper .gform_footer button.gform_button:hover,
	body #gform_wrapper_1.uv-contact-form_wrapper .gform_footer button.gform_button:focus {
		transform: none;
	}
}

/* the shadow sits 5px to the left of the button, so the row needs that back
   as padding or the offset clips against the card's inner edge */
body #gform_wrapper_1.uv-contact-form_wrapper .gform_footer {
	justify-content: flex-start;
	padding-inline-start: 5px;
}

/* === Laptop / small desktop ============================================
   Between 1025 and 1200 the card is still sharing the row with the photo,
   so the two field columns are at their narrowest. The 22px gutter is the
   first thing that can go.
   ===================================================================== */
@media (max-width: 1200px) and (min-width: 1025px) {
	body #gform_wrapper_1.uv-contact-form_wrapper.gform-theme {
		--gf-form-gap-x: 16px;
	}
	body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-checkbox .gfield_checkbox {
		gap: 14px 10px;
	}
}

/* === Tablet ============================================================
   Elementor stacks the card under the photo at 1024px and it goes full
   width, so the two-column field rows still read; the six checkboxes are
   what stop fitting three across at this text size.
   ===================================================================== */
@media (max-width: 1024px) {
	body #gform_wrapper_1.uv-contact-form_wrapper.gform-theme {
		--gf-form-gap-x: 20px;
		--gf-form-gap-y: 20px;
	}
	body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-checkbox .gfield_checkbox {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	/* the card's own inset, which the Elementor container holds at 40px */
	body .elementor-1411 .elementor-element-b2bbbaf {
		padding: 36px 32px;
	}
}

/* === Mobile ============================================================ */
@media (max-width: 767px) {
	body #gform_wrapper_1.uv-contact-form_wrapper.gform-theme {
		--gf-form-gap-x: 0px;
		--gf-form-gap-y: 18px;
		--gf-ctrl-label-font-size-primary: 15px;
		--gf-ctrl-size: 46px;
		--gf-ctrl-padding-x: 16px;
	}
	/* every field goes full width — GF's own half-width breakpoint sits
	   lower than the point at which two columns stop reading here */
	body #gform_wrapper_1.uv-contact-form_wrapper .gform_fields > .gfield {
		grid-column: 1 / -1;
	}
	@supports (appearance: base-select) {
		body #gform_wrapper_1.uv-contact-form_wrapper select {
			block-size: 46px;
			padding: 0 16px;
		}
	}
	body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-checkbox .gfield_checkbox {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px 10px;
	}
	body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-radio .gfield_radio {
		gap: 10px;
	}
	body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-radio label {
		padding: 9px 14px;
		font-size: 14px;
	}
	body #gform_wrapper_1.uv-contact-form_wrapper textarea {
		block-size: 100px;
		min-block-size: 100px;
	}
	/* same mobile step-down the button widgets take sitewide */
/* inside @media (max-width: 767px) { ... } */
body #gform_wrapper_1.uv-contact-form_wrapper .gform_footer input[type="submit"].gform_button,
body #gform_wrapper_1.uv-contact-form_wrapper .gform_footer button.gform_button {
	padding: 12px 20px;
	font-size: 14px;
	line-height: 24px;
}
	body .elementor-1411 .elementor-element-b2bbbaf {
		padding: 28px 22px;
	}
}

/* === Small phones ======================================================
   Two checkbox columns stop fitting once "Competition Training" has to wrap,
   and the card inset has to give up more room to the fields themselves.
   ===================================================================== */
@media (max-width: 480px) {
	body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-checkbox .gfield_checkbox {
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
	}
	/* the two pills go full width rather than one wrapping under a half-row */
	body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-radio .gchoice {
		flex: 1 1 100%;
	}
	body #gform_wrapper_1.uv-contact-form_wrapper .gfield--type-radio label {
		inline-size: 100%;
	}
	/* the button keeps its natural width here — every other primary button
	   on the site does, and at 14px/20px padding it fits a 320px screen */
	body .elementor-1411 .elementor-element-b2bbbaf {
		padding: 24px 16px;
	}
}/* End custom CSS */