/* =========================================================================
   Go Play Abroad – forms (Fluent Forms)
   One stylesheet for every form on the site. Loaded only on pages with a form
   (see wp-content/mu-plugins/goplayabroad.php, section 3).
   Colours and fonts come from Elementor's global Kit variables
   (Site Settings > Global Colors / Global Fonts); hex values are fallbacks only.
   Selectors start with ".fluentform .frm-fluent-form" so they win over the
   Fluent Forms default stylesheet without !important.

   Structure
   1. Tokens
   2. Labels, inputs, textarea, field icons
   3. Custom dropdown (built by gpa-forms.js from the native <select>)
   4. Number stepper (gpa-forms.js, fields with container class "gpa-stepper")
   5. Step titles (Fluent "Section break" with class "gpa-step")
   6. Privacy checkbox, submit button, reply note, errors
   7. Form card layout (Elementor container with CSS class "gpa-form-card")
   8. Success panel (Fluent confirmation message, class "gpa-success")
   ========================================================================= */

/* 1. Tokens -------------------------------------------------------------- */
.fluentform,
.gpa-form-card {
	--gpa-navy: var(--e-global-color-primary, #0B1A33);
	--gpa-gold: var(--e-global-color-secondary, #F5B659);
	--gpa-gold-hover: #F8C77A;
	--gpa-navy-2: #1A2C4E;
	--gpa-text: var(--e-global-color-text, #4A5468);
	--gpa-accent: var(--e-global-color-accent, #96600E);
	--gpa-cream: var(--e-global-color-a1b2c02, #FAF8F4);
	--gpa-light: var(--e-global-color-a1b2c03, #EFF1F5);
	--gpa-border: var(--e-global-color-a1b2c04, #E3E7EE);
	--gpa-white: var(--e-global-color-a1b2c05, #FFFFFF);
	--gpa-border-strong: #C5CCD8;
	--gpa-placeholder: #8A93A5;
	--gpa-error: #B42318;
	--gpa-font: var(--e-global-typography-text-font-family, "Montserrat"), sans-serif;
	--gpa-font-head: var(--e-global-typography-primary-font-family, "Palanquin Dark"), sans-serif;
	--gpa-pad-x: 36px;
	--gpa-pad-y: 30px;
	--gpa-field-h: 54px;
}
@media (max-width: 767px) {
	.fluentform,
	.gpa-form-card { --gpa-pad-x: 18px; --gpa-pad-y: 24px; }
}

/* 2. Labels, inputs, textarea, field icons -------------------------------- */
.fluentform .frm-fluent-form { font-family: var(--gpa-font); color: var(--gpa-navy); }
.fluentform .frm-fluent-form .ff-el-group { margin-bottom: 18px; }
.fluentform .frm-fluent-form .ff-t-container { gap: 20px; }
.fluentform .frm-fluent-form .ff-t-cell { padding: 0 !important; }
.fluentform .frm-fluent-form .ff-el-input--label { margin-bottom: 7px; }
.fluentform .frm-fluent-form .ff-el-input--label label {
	font-family: var(--gpa-font); font-size: 11px; font-weight: 700; line-height: 1.3;
	letter-spacing: .12em; text-transform: uppercase; color: var(--gpa-navy); margin: 0;
}
.fluentform .frm-fluent-form .ff-el-input--label.ff-el-is-required.asterisk-right label::after { color: var(--gpa-accent); margin-left: 4px; }
.fluentform .frm-fluent-form .ff-el-form-control {
	height: var(--gpa-field-h); width: 100%; padding: 0 16px; border: 1.5px solid var(--gpa-border); border-radius: 0;
	background: var(--gpa-white); font-family: var(--gpa-font); font-size: 15px; line-height: 1.4; color: var(--gpa-navy);
	box-shadow: none; transition: border-color .15s, box-shadow .15s;
}
.fluentform .frm-fluent-form .ff-el-form-control::placeholder { color: var(--gpa-placeholder); opacity: 1; }
.fluentform .frm-fluent-form .ff-el-form-control:hover { border-color: var(--gpa-border-strong); }
.fluentform .frm-fluent-form .ff-el-form-control:focus {
	border-color: var(--gpa-navy); box-shadow: inset 0 -3px 0 var(--gpa-gold); outline: none;
}
.fluentform .frm-fluent-form textarea.ff-el-form-control { height: 116px; padding: 14px 16px; line-height: 1.6; resize: vertical; }

/* Field icons: one mask per field name, colour from the tokens. */
.fluentform .frm-fluent-form .ff-el-input--content { position: relative; }
.fluentform .frm-fluent-form .ff-el-input--content:has(> input[name="organisation_name"], > input[name="country"], > input[name="your_role"], > input[name="staff_guests"], > input[name="dates"], > input[name="full_name"], > input[name="email"], > input[name="phone"])::before {
	content: ""; position: absolute; left: 16px; top: calc(var(--gpa-field-h) / 2 - 9px); width: 18px; height: 18px;
	background: var(--gpa-placeholder); -webkit-mask: var(--gpa-ico) center / contain no-repeat; mask: var(--gpa-ico) center / contain no-repeat;
	pointer-events: none; z-index: 1;
}
.fluentform .frm-fluent-form .ff-el-input--content > input:is([name="organisation_name"], [name="country"], [name="your_role"], [name="staff_guests"], [name="dates"], [name="full_name"], [name="email"], [name="phone"]) { padding-left: 46px; }
.fluentform .frm-fluent-form .ff-el-input--content:has(> input[name="organisation_name"]) { --gpa-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V5l8-2v18M12 8h8v13M8 8v.01M8 12v.01M8 16v.01M16 12v.01M16 16v.01'/%3E%3C/svg%3E"); }
.fluentform .frm-fluent-form .ff-el-input--content:has(> input[name="country"]) { --gpa-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18'/%3E%3C/svg%3E"); }
.fluentform .frm-fluent-form .ff-el-input--content:has(> input[name="your_role"], > input[name="full_name"]) { --gpa-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E"); }
.fluentform .frm-fluent-form .ff-el-input--content:has(> input[name="staff_guests"]) { --gpa-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Ccircle cx='17' cy='9' r='2.5'/%3E%3Cpath d='M3 20a6 6 0 0 1 12 0M14 20a5 5 0 0 1 7-4.5'/%3E%3C/svg%3E"); }
.fluentform .frm-fluent-form .ff-el-input--content:has(> input[name="dates"]) { --gpa-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='1'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E"); }
.fluentform .frm-fluent-form .ff-el-input--content:has(> input[name="email"]) { --gpa-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='1'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E"); }
.fluentform .frm-fluent-form .ff-el-input--content:has(> input[name="phone"]) { --gpa-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E"); }

/* 3. Custom dropdown ------------------------------------------------------- */
.fluentform .frm-fluent-form select.gpa-dd-native {
	position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important;
	overflow: hidden; clip: rect(0 0 0 0); border: 0 !important; opacity: 0;
}
.fluentform .frm-fluent-form .gpa-dd { position: relative; }
.fluentform .frm-fluent-form .gpa-dd__btn {
	display: flex; align-items: center; gap: 12px; width: 100%; height: var(--gpa-field-h); padding: 0 16px;
	border: 1.5px solid var(--gpa-border); border-radius: 0; background: var(--gpa-white); color: var(--gpa-navy);
	font-family: var(--gpa-font); font-size: 15px; font-weight: 400; line-height: 1.4; letter-spacing: 0; text-transform: none;
	text-align: left; cursor: pointer; box-shadow: none; transition: border-color .15s, box-shadow .15s;
}
.fluentform .frm-fluent-form .gpa-dd__btn:hover { border-color: var(--gpa-border-strong); background: var(--gpa-white); color: var(--gpa-navy); }
.fluentform .frm-fluent-form .gpa-dd.is-open .gpa-dd__btn,
.fluentform .frm-fluent-form .gpa-dd__btn:focus-visible { border-color: var(--gpa-navy); box-shadow: inset 0 -3px 0 var(--gpa-gold); outline: none; }
.fluentform .frm-fluent-form .gpa-dd__lead { display: flex; flex-shrink: 0; color: var(--gpa-navy); }
.fluentform .frm-fluent-form .gpa-dd__lead:empty { display: none; }
.fluentform .frm-fluent-form .gpa-dd__lead svg { width: 20px; height: 20px; }
.fluentform .frm-fluent-form .gpa-dd__value { flex-grow: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fluentform .frm-fluent-form .gpa-dd__value.is-placeholder { color: var(--gpa-placeholder); }
.fluentform .frm-fluent-form .gpa-dd__btn::after {
	content: ""; flex-shrink: 0; width: 20px; height: 20px; background: var(--gpa-navy);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .2s;
}
.fluentform .frm-fluent-form .gpa-dd.is-open .gpa-dd__btn::after { transform: rotate(180deg); }
.fluentform .frm-fluent-form .gpa-dd__list {
	display: none; position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 30; max-height: 340px; overflow: auto;
	margin: 0; padding: 8px; list-style: none; background: var(--gpa-white); border: 1px solid var(--gpa-border);
	box-shadow: 0 22px 50px rgba(11, 26, 51, .18);
}
.fluentform .frm-fluent-form .gpa-dd.is-open .gpa-dd__list { display: block; }
.fluentform .frm-fluent-form .gpa-dd__cap {
	padding: 8px 12px 10px; font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gpa-placeholder);
}
.fluentform .frm-fluent-form .gpa-dd__opt {
	display: grid; grid-template-columns: 36px minmax(0, 1fr) 20px; gap: 12px; align-items: center; margin: 0;
	padding: 9px 12px; border-left: 3px solid transparent; cursor: pointer;
}
.fluentform .frm-fluent-form .gpa-dd__opt.is-simple { grid-template-columns: minmax(0, 1fr) 20px; padding: 12px 14px; }
.fluentform .frm-fluent-form .gpa-dd__ic { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; background: var(--gpa-light); color: var(--gpa-navy); }
.fluentform .frm-fluent-form .gpa-dd__ic svg { width: 20px; height: 20px; }
.fluentform .frm-fluent-form .gpa-dd__tx { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.fluentform .frm-fluent-form .gpa-dd__tx b { font-size: 14px; font-weight: 700; color: var(--gpa-navy); }
.fluentform .frm-fluent-form .gpa-dd__tx small { font-size: 12px; line-height: 1.4; color: var(--gpa-text); }
.fluentform .frm-fluent-form .gpa-dd__opt::after {
	content: ""; width: 20px; height: 20px; background: var(--gpa-accent); visibility: hidden;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.fluentform .frm-fluent-form .gpa-dd__opt:hover,
.fluentform .frm-fluent-form .gpa-dd__opt.is-active { background: var(--gpa-cream); }
.fluentform .frm-fluent-form .gpa-dd__opt[aria-selected="true"] { background: rgba(245, 182, 89, .16); border-left-color: var(--gpa-gold); }
.fluentform .frm-fluent-form .gpa-dd__opt[aria-selected="true"]::after { visibility: visible; }
.fluentform .frm-fluent-form .gpa-dd__opt[aria-selected="true"] .gpa-dd__ic { background: var(--gpa-navy); color: var(--gpa-gold); }

/* 4. Number stepper -------------------------------------------------------- */
.fluentform .frm-fluent-form .gpa-num {
	display: grid; grid-template-columns: 54px minmax(0, 1fr) 54px; height: var(--gpa-field-h);
	border: 1.5px solid var(--gpa-border); background: var(--gpa-white);
}
.fluentform .frm-fluent-form .gpa-num:focus-within { border-color: var(--gpa-navy); box-shadow: inset 0 -3px 0 var(--gpa-gold); }
.fluentform .frm-fluent-form .gpa-num button {
	display: flex; align-items: center; justify-content: center; height: 100%; padding: 0; border: 0; border-radius: 0;
	background: var(--gpa-light); color: var(--gpa-navy); font-family: var(--gpa-font); font-size: 22px; font-weight: 600; line-height: 1; cursor: pointer;
}
.fluentform .frm-fluent-form .gpa-num button:hover { background: var(--gpa-border); color: var(--gpa-navy); }
.fluentform .frm-fluent-form .gpa-num .ff-el-form-control {
	height: 100%; border: 0; box-shadow: none; text-align: center; font-family: var(--gpa-font-head); font-size: 22px; -moz-appearance: textfield;
}
.fluentform .frm-fluent-form .gpa-num .ff-el-form-control::-webkit-inner-spin-button,
.fluentform .frm-fluent-form .gpa-num .ff-el-form-control::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

/* 5. Step titles ------------------------------------------------------------ */
.fluentform .frm-fluent-form fieldset { counter-reset: gpa-step; }
.fluentform .frm-fluent-form .ff-el-section-break.gpa-step {
	counter-increment: gpa-step; display: flex; align-items: center; gap: 12px; margin: 12px 0 18px; padding: 0 0 16px;
	border-bottom: 1px solid var(--gpa-border);
}
.fluentform .frm-fluent-form .ff-el-section-break.gpa-step:first-of-type { margin-top: 0; }
.fluentform .frm-fluent-form .ff-el-section-break.gpa-step .ff-el-section-title {
	display: flex; align-items: center; gap: 12px; margin: 0; padding: 0; font-family: var(--gpa-font-head);
	font-size: 21px; font-weight: 500; line-height: 1.2; color: var(--gpa-navy);
}
.fluentform .frm-fluent-form .ff-el-section-break.gpa-step .ff-el-section-title::before {
	content: counter(gpa-step); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
	width: 30px; height: 30px; border-radius: 50%; background: var(--gpa-navy); color: var(--gpa-gold);
	font-family: var(--gpa-font); font-size: 13px; font-weight: 700;
}
.fluentform .frm-fluent-form .ff-el-section-break.gpa-step .ff-section_break_desk { margin: 0 0 0 auto; font-size: 12px; font-weight: 600; color: var(--gpa-text); }
.fluentform .frm-fluent-form .ff-el-section-break.gpa-step hr { display: none; }

/* 6. Privacy checkbox, submit button, reply note, errors -------------------- */
.fluentform .frm-fluent-form .ff-el-tc .ff_tc_label { display: flex; gap: 12px; align-items: flex-start; margin: 0; cursor: pointer; }
.fluentform .frm-fluent-form .ff-el-tc .ff_t_c { font-size: 13px; line-height: 1.5; color: var(--gpa-text); }
.fluentform .frm-fluent-form .ff-el-tc .ff_t_c a { color: var(--gpa-navy); text-decoration: underline; }
.fluentform .frm-fluent-form .ff-el-tc input[type="checkbox"] {
	appearance: none; -webkit-appearance: none; display: grid; place-content: center; width: 22px; height: 22px; margin: 0;
	border: 1.5px solid var(--gpa-border-strong); border-radius: 0; background: var(--gpa-white); cursor: pointer;
}
.fluentform .frm-fluent-form .ff-el-tc input[type="checkbox"]:checked { background: var(--gpa-navy); border-color: var(--gpa-navy); }
.fluentform .frm-fluent-form .ff-el-tc input[type="checkbox"]:checked::after {
	content: ""; width: 10px; height: 6px; border-left: 2px solid var(--gpa-gold); border-bottom: 2px solid var(--gpa-gold);
	transform: rotate(-45deg) translate(1px, -1px);
}
.fluentform .frm-fluent-form .ff-el-tc input[type="checkbox"]:focus-visible { outline: 2px solid var(--gpa-gold); outline-offset: 2px; }
.fluentform .frm-fluent-form .ff-btn-submit {
	display: inline-flex; align-items: center; gap: 14px; height: 58px; padding: 0 14px 0 30px; border: 0; border-radius: 0;
	background: var(--gpa-gold); color: var(--gpa-navy); font-family: var(--gpa-font); font-size: 13px; font-weight: 700;
	letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; box-shadow: none; opacity: 1; transition: background .15s;
}
.fluentform .frm-fluent-form .ff-btn-submit:hover,
.fluentform .frm-fluent-form .ff-btn-submit:focus { background: var(--gpa-gold-hover); color: var(--gpa-navy); opacity: 1; }
/* Arrow badge: navy circle (primary global colour) (::before, flex item after the label) + gold arrow masked on top (::after). */
.fluentform .frm-fluent-form .ff-btn-submit { position: relative; }
.fluentform .frm-fluent-form .ff-btn-submit::before {
	content: ""; order: 2; flex: 0 0 30px; width: 30px; height: 30px; border-radius: 50%; background: var(--gpa-navy);
}
.fluentform .frm-fluent-form .ff-btn-submit::after {
	content: ""; position: absolute; top: 50%; right: 14px; width: 30px; height: 30px; margin-top: -15px; background: var(--gpa-gold);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 18px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 18px no-repeat;
}
.fluentform .frm-fluent-form .gpa-form-note {
	display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin: 0; font-size: 12px; font-weight: 600; color: var(--gpa-text);
}
.fluentform .frm-fluent-form .gpa-form-note p { margin: 0; }
.fluentform .frm-fluent-form .gpa-form-note::before {
	content: ""; width: 16px; height: 16px; flex-shrink: 0; background: var(--gpa-accent);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center / contain no-repeat;
}
.fluentform .frm-fluent-form .ff-el-is-error .ff-el-form-control,
.fluentform .frm-fluent-form .ff-el-is-error .gpa-dd__btn,
.fluentform .frm-fluent-form .ff-el-is-error .gpa-num,
.fluentform .frm-fluent-form .ff-el-is-error .ff-el-tc input[type="checkbox"] { border-color: var(--gpa-error); }
.fluentform .frm-fluent-form .ff-el-is-error .text-danger,
.fluentform .frm-fluent-form .error.text-danger { margin-top: 6px; font-size: 12px; font-weight: 600; color: var(--gpa-error); }

/* 7. Form card layout ------------------------------------------------------- */
.gpa-form-card .fluentform { padding: var(--gpa-pad-y) var(--gpa-pad-x) 0; }
.gpa-form-card .fluentform:has(.ff-message-success) { padding: 0; }
.gpa-form-card:has(.ff-message-success) .gpa-form-pkg { display: none; }
/* Footer band: privacy (left) | button + reply note (right), cream background edge to edge. */
.gpa-form-card .frm-fluent-form fieldset { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 0; }
.gpa-form-card .frm-fluent-form fieldset > * { grid-column: 1 / -1; }
.gpa-form-card .frm-fluent-form fieldset > .ff-el-group:has(.ff-el-tc),
.gpa-form-card .frm-fluent-form fieldset > .ff_submit_btn_wrapper,
.gpa-form-card .frm-fluent-form fieldset > .gpa-form-note { background: var(--gpa-cream); margin-bottom: 0; }
.gpa-form-card .frm-fluent-form fieldset > .ff-el-group:has(.ff-el-tc) {
	order: 1; grid-column: 1; grid-row: span 2; align-self: stretch; display: flex; align-items: center;
	margin: 12px 0 0 calc(-1 * var(--gpa-pad-x)); padding: 24px 24px 24px var(--gpa-pad-x); border-top: 1px solid var(--gpa-border);
}
.gpa-form-card .frm-fluent-form fieldset > .ff-el-group:has(.ff-el-tc) .ff-el-tc { max-width: 420px; }
.gpa-form-card .frm-fluent-form fieldset > .ff_submit_btn_wrapper {
	order: 2; grid-column: 2; margin: 12px calc(-1 * var(--gpa-pad-x)) 0 0; padding: 24px var(--gpa-pad-x) 10px 0; border-top: 1px solid var(--gpa-border);
	text-align: right;
}
.gpa-form-card .frm-fluent-form fieldset > .gpa-form-note { order: 3; grid-column: 2; margin: 0 calc(-1 * var(--gpa-pad-x)) 0 0; padding: 0 var(--gpa-pad-x) 24px 0; }
@media (max-width: 767px) {
	.fluentform .frm-fluent-form .ff-t-container { flex-direction: column; gap: 0; }
	.fluentform .frm-fluent-form .ff-el-section-break.gpa-step .ff-el-section-title { font-size: 19px; }
	.fluentform .frm-fluent-form .ff-el-section-break.gpa-step .ff-section_break_desk { display: none; }
	.gpa-form-card .frm-fluent-form fieldset { grid-template-columns: minmax(0, 1fr); }
	.gpa-form-card .frm-fluent-form fieldset > .ff-el-group:has(.ff-el-tc),
	.gpa-form-card .frm-fluent-form fieldset > .ff_submit_btn_wrapper,
	.gpa-form-card .frm-fluent-form fieldset > .gpa-form-note {
		grid-column: 1; grid-row: auto; margin-left: calc(-1 * var(--gpa-pad-x)); margin-right: calc(-1 * var(--gpa-pad-x));
		padding-left: var(--gpa-pad-x); padding-right: var(--gpa-pad-x);
	}
	.gpa-form-card .frm-fluent-form fieldset > .ff-el-group:has(.ff-el-tc) { padding-top: 20px; padding-bottom: 16px; }
	.gpa-form-card .frm-fluent-form fieldset > .ff_submit_btn_wrapper { margin-top: 0; padding-top: 0; border-top: 0; }
	.gpa-form-card .frm-fluent-form fieldset > .gpa-form-note { justify-content: flex-start; padding-top: 4px; }
	.fluentform .frm-fluent-form .ff-btn-submit { width: 100%; justify-content: space-between; }
}

/* 8. Success panel (confirmation message) ----------------------------------- */
.fluentform .ff-message-success { margin: 0; padding: 0; border: 0; box-shadow: none; background: none; }
.gpa-success {
	position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 22px; padding: 52px 48px 44px;
	background: var(--gpa-navy); color: var(--gpa-white); font-family: var(--gpa-font); border-top: 4px solid var(--gpa-gold);
	animation: gpa-fade .4s ease-out both;
}
.gpa-form-card .gpa-success { border-top: 0; }
.gpa-success::after {
	content: ""; position: absolute; right: -60px; top: -60px; width: 300px; height: 300px; background: rgba(255, 255, 255, .05);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-25 -25 50 50' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle r='21'/%3E%3Cpath d='M0-7L6.7-2.2 4.1 5.7H-4.1L-6.7-2.2Z'/%3E%3Cpath d='M0-7V-15M6.7-2.2L14-5M4.1 5.7L9 13M-4.1 5.7L-9 13M-6.7-2.2L-14-5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-25 -25 50 50' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle r='21'/%3E%3Cpath d='M0-7L6.7-2.2 4.1 5.7H-4.1L-6.7-2.2Z'/%3E%3Cpath d='M0-7V-15M6.7-2.2L14-5M4.1 5.7L9 13M-4.1 5.7L-9 13M-6.7-2.2L-14-5'/%3E%3C/svg%3E") center / contain no-repeat; pointer-events: none;
}
.gpa-success > * { position: relative; margin: 0; }
.gpa-success__badge {
	width: 84px; height: 84px; border-radius: 50%; background: var(--gpa-gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 40px no-repeat;
	box-shadow: 0 0 0 10px rgba(245, 182, 89, .16), 0 0 0 22px rgba(245, 182, 89, .07); animation: gpa-pop .5s cubic-bezier(.2, 1.4, .4, 1) both;
}
.gpa-success__script { font-family: "Mansalva", cursive; font-size: 30px; line-height: 1.1; color: var(--gpa-gold); }
.gpa-success__title { font-family: var(--gpa-font-head); font-size: 38px; font-weight: 700; line-height: 1.05; color: var(--gpa-white); }
.gpa-success__text { max-width: 620px; font-size: 16px; line-height: 1.7; color: rgba(255, 255, 255, .86); }
.gpa-success__text strong { color: var(--gpa-white); }
.gpa-success__sum { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; background: var(--gpa-navy-2); }
.gpa-success__sum div { display: flex; flex-direction: column; gap: 3px; padding: 16px 20px; border-left: 1px solid rgba(255, 255, 255, .1); }
.gpa-success__sum div:first-child { border-left: 0; }
.gpa-success__sum dt { font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gpa-gold); }
.gpa-success__sum dd { margin: 0; font-size: 15px; font-weight: 700; color: var(--gpa-white); }
.gpa-success__sum dd:empty::before { content: attr(data-empty); }
.gpa-success__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; counter-reset: gpa-next; }
.gpa-success__steps li { position: relative; display: flex; flex-direction: column; gap: 6px; padding-top: 44px; counter-increment: gpa-next; }
.gpa-success__steps li::before {
	content: counter(gpa-next); position: absolute; left: 0; top: 0; display: flex; align-items: center; justify-content: center;
	width: 32px; height: 32px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .35); background: var(--gpa-navy);
	font-size: 13px; font-weight: 700; color: var(--gpa-white); box-sizing: border-box; z-index: 1;
}
.gpa-success__steps li.is-done::before { content: ""; border-color: var(--gpa-gold); background: var(--gpa-gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 16px no-repeat; }
.gpa-success__steps li::after { content: ""; position: absolute; left: 34px; right: -16px; top: 15px; border-top: 2px dashed rgba(255, 255, 255, .25); }
.gpa-success__steps li:last-child::after { display: none; }
.gpa-success__when { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gpa-gold); }
.gpa-success__steps b { font-size: 16px; color: var(--gpa-white); }
.gpa-success__steps span:last-child { font-size: 13px; line-height: 1.5; color: rgba(255, 255, 255, .75); }
.gpa-success__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding-top: 6px; }
.gpa-success__actions a {
	display: inline-flex; align-items: center; gap: 10px; height: 52px; padding: 0 24px; font-family: var(--gpa-font); font-size: 12px;
	font-weight: 700; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; cursor: pointer;
}
.gpa-success__actions a::before { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--gpa-ico) center / contain no-repeat; mask: var(--gpa-ico) center / contain no-repeat; }
.gpa-success__actions .is-pdf { --gpa-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7 10l5 5 5-5M5 20h14'/%3E%3C/svg%3E"); background: var(--gpa-gold); color: var(--gpa-navy); }
.gpa-success__actions .is-pdf:hover { background: var(--gpa-gold-hover); color: var(--gpa-navy); }
.gpa-success__actions .is-whatsapp { --gpa-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20l1.3-4A8 8 0 1 1 8 18.7z'/%3E%3Cpath d='M9 9.5c.3 2 1.8 3.8 4 4.5l1.2-1.2 2 1-.4 1.6c-3.8.2-7.4-3.4-7.2-7.2l1.6-.4 1 2z'/%3E%3C/svg%3E"); border: 1.5px solid rgba(255, 255, 255, .6); color: var(--gpa-white); }
.gpa-success__actions .is-whatsapp:hover { background: rgba(255, 255, 255, .1); color: var(--gpa-white); }
@keyframes gpa-pop { from { transform: scale(.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@keyframes gpa-fade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .gpa-success, .gpa-success__badge { animation: none; } }
@media (max-width: 767px) {
	.gpa-success { padding: 38px 22px 32px; gap: 18px; }
	.gpa-success__title { font-size: 32px; }
	.gpa-success__text { font-size: 15px; }
	.gpa-success__sum { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gpa-success__sum div:nth-child(3) { border-left: 0; }
	.gpa-success__sum div:nth-child(n+3) { border-top: 1px solid rgba(255, 255, 255, .1); }
	.gpa-success__steps { grid-template-columns: minmax(0, 1fr); gap: 18px; }
	.gpa-success__steps li { min-height: 32px; padding: 0 0 0 48px; }
	.gpa-success__steps li::after { left: 15px; right: auto; top: 34px; bottom: -16px; border-top: 0; border-left: 2px dashed rgba(255, 255, 255, .25); }
	.gpa-success__actions a { width: 100%; justify-content: center; }
}
