.gstudio-contract-form-wrap {
	max-width: 980px;
	margin: 0 auto;
	color: #18212f;
}

.gstudio-contract-form {
	display: grid;
	gap: 18px;
}

.gstudio-form-section {
	border: 1px solid #dce3ee;
	border-radius: 8px;
	padding: 20px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(20, 35, 60, 0.06);
}

.gstudio-form-section h2,
.gstudio-form-section h3,
.gstudio-form-section h4 {
	margin: 0 0 16px;
	color: #111827;
	letter-spacing: 0;
}

.gstudio-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.gstudio-step {
	display: grid;
	gap: 14px;
	margin-top: 18px;
}

.gstudio-step:first-of-type {
	margin-top: 0;
}

.gstudio-step-head {
	display: flex;
	align-items: center;
	gap: 10px;
}

.gstudio-step-head h3 {
	margin: 0;
}

.gstudio-step-number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 999px;
	background: #0f766e;
	color: #fff;
	font-weight: 800;
	box-shadow: 0 8px 18px rgba(15, 118, 110, 0.22);
}

.gstudio-choice-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.gstudio-choice-grid--courses,
.gstudio-choice-grid--payments {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.gstudio-choice-card {
	position: relative;
	display: grid !important;
	min-height: 126px;
	gap: 8px !important;
	align-content: start;
	padding: 18px;
	border: 1px solid #d7e0ec;
	border-radius: 12px;
	background: linear-gradient(180deg, #fff, #fbfdff);
	box-shadow: 0 12px 28px rgba(20, 35, 60, 0.06);
	cursor: pointer;
	overflow: hidden;
	transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.gstudio-choice-card:before {
	content: "";
	position: absolute;
	inset: auto -18px -48px auto;
	width: 92px;
	height: 92px;
	border-radius: 999px;
	background: rgba(247, 183, 51, 0.12);
	transition: transform 180ms ease, opacity 180ms ease;
}

.gstudio-choice-card:hover {
	transform: translateY(-3px);
	border-color: #f7b733;
	box-shadow: 0 18px 38px rgba(20, 35, 60, 0.12);
}

.gstudio-choice-card input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.gstudio-choice-card strong {
	position: relative;
	display: block;
	color: #111827;
	font-size: 17px;
	line-height: 1.25;
}

.gstudio-choice-card span,
.gstudio-choice-card em {
	position: relative;
	color: #526173;
	font-size: 13px;
	font-style: normal;
	line-height: 1.35;
}

.gstudio-choice-card em {
	color: #0f766e;
	font-weight: 800;
}

.gstudio-choice-check {
	position: absolute !important;
	top: 12px;
	right: 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 999px;
	background: #e8eef6;
	color: transparent !important;
	font-size: 14px !important;
	font-weight: 800;
	transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}

.gstudio-choice-card:has(input:checked) {
	border-color: #12b76a;
	background: linear-gradient(180deg, #f6fef9, #fff);
	box-shadow: 0 18px 38px rgba(18, 183, 106, 0.16);
}

.gstudio-choice-card:has(input:checked):before {
	transform: scale(1.28);
	opacity: 1;
}

.gstudio-choice-card:has(input:checked) .gstudio-choice-check {
	background: #12b76a;
	color: #fff !important;
	transform: scale(1.04);
}

.gstudio-choice-card--compact {
	min-height: 96px;
}

.gstudio-form-grid label,
.gstudio-contract-form label {
	display: grid;
	gap: 6px;
	font-weight: 600;
}

.gstudio-form-grid span,
.gstudio-check span {
	font-size: 14px;
}

.gstudio-contract-form input,
.gstudio-contract-form select,
.gstudio-contract-form textarea {
	width: 100%;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	padding: 11px 12px;
	background: #fff;
	color: #111827;
	font-size: 15px;
}

.gstudio-contract-form textarea {
	resize: vertical;
}

.gstudio-wide {
	grid-column: 1 / -1;
}

.gstudio-price-panel {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 18px;
	align-items: center;
	margin-top: 16px;
	padding: 14px;
	border-radius: 8px;
	background: #eef7f5;
	border: 1px solid #b9ded7;
}

.gstudio-check {
	display: flex !important;
	grid-template-columns: auto 1fr;
	flex-direction: row;
	align-items: flex-start;
	gap: 10px !important;
	margin: 10px 0;
	font-weight: 500 !important;
}

.gstudio-contract-form [hidden],
.gstudio-check[hidden],
.gstudio-field-error[hidden] {
	display: none !important;
}

.gstudio-check input {
	width: auto;
	margin-top: 4px;
}

.gstudio-submit,
.gstudio-secondary-button {
	border: 0;
	border-radius: 6px;
	cursor: pointer;
	font-weight: 700;
}

.gstudio-submit {
	justify-self: start;
	padding: 13px 20px;
	background: #0f766e;
	color: #fff;
}

.gstudio-secondary-button {
	padding: 10px 14px;
	background: #e8eef6;
	color: #142033;
}

.gstudio-contract-form small,
.gstudio-field-error {
	color: #b42318;
	font-weight: 600;
}

.gstudio-package-field.is-selected > span:first-child {
	color: #067647;
}

.gstudio-package-field.is-selected select {
	border-color: #12b76a;
	background: #f6fef9;
	box-shadow: 0 0 0 2px rgba(18, 183, 106, 0.12);
}

.gstudio-package-status {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: #067647;
	font-size: 13px;
	font-weight: 700;
}

.gstudio-package-status[hidden] {
	display: none;
}

.gstudio-contract-error,
.gstudio-contract-success {
	border-radius: 8px;
	padding: 14px 16px;
	font-weight: 700;
}

.gstudio-contract-error {
	background: #fff1f0;
	color: #a8071a;
	border: 1px solid #ffa39e;
}

.gstudio-contract-success {
	background: #ecfdf3;
	color: #027a48;
	border: 1px solid #abefc6;
}

.gstudio-student {
	margin: 14px 0;
	padding: 14px;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	background: #f8fafc;
}

.gstudio-student-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}

.gstudio-student-remove {
	border: 1px solid #fecaca;
	border-radius: 8px;
	padding: 8px 11px;
	background: #fff1f2;
	color: #b42318;
	font-weight: 800;
	cursor: pointer;
}

.gstudio-student-remove:hover {
	background: #ffe4e6;
}

.gstudio-student-remove[hidden] {
	display: none;
}

.gstudio-preview-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 14px;
	border-bottom: 1px solid #dce3ee;
}

.gstudio-preview-tabs button {
	border: 0;
	border-bottom: 3px solid transparent;
	background: transparent;
	padding: 10px 12px;
	cursor: pointer;
	font-weight: 700;
	color: #475569;
}

.gstudio-preview-tabs button.is-active {
	color: #0f766e;
	border-bottom-color: #0f766e;
}

.gstudio-preview-doc {
	max-height: 560px;
	overflow: auto;
	padding: 18px;
	border: 1px solid #dce3ee;
	border-radius: 8px;
	background: #fbfdff;
}

.gstudio-contract-doc {
	color: #111827;
	font-size: 14px;
	line-height: 1.55;
}

.gstudio-contract-logo {
	text-align: center;
	margin: 0 0 16px;
}

.gstudio-contract-logo img {
	max-width: 180px;
	height: auto;
}

.gstudio-contract-doc h2 {
	margin: 18px 0 10px;
	font-size: 20px;
}

.gstudio-contract-doc h3 {
	margin: 16px 0 8px;
	font-size: 16px;
}

.gstudio-contract-doc p {
	margin: 0 0 9px;
}

.gstudio-consent-note {
	margin: 0 0 12px;
	font-weight: 700;
}

.gstudio-contract-account {
	max-width: 980px;
	margin: 0 auto;
	color: #18212f;
}

.gstudio-account-card {
	margin: 0 0 18px;
	padding: 20px;
	border: 1px solid #dce3ee;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(20, 35, 60, 0.06);
}

.gstudio-account-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 14px;
	border-radius: 6px;
	background: #0f766e;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}

.gstudio-account-schedule {
	width: 100%;
	border-collapse: collapse;
	margin: 12px 0;
}

.gstudio-account-schedule th,
.gstudio-account-schedule td {
	border: 1px solid #dce3ee;
	padding: 9px;
	text-align: left;
}

.gstudio-account-schedule th {
	background: #f8fafc;
}

@media (max-width: 720px) {
	.gstudio-form-section {
		padding: 16px;
	}

	.gstudio-form-grid {
		grid-template-columns: 1fr;
	}

	.gstudio-choice-grid,
	.gstudio-choice-grid--courses,
	.gstudio-choice-grid--payments {
		grid-template-columns: 1fr;
	}

	.gstudio-choice-card {
		min-height: auto;
	}

	.gstudio-submit {
		width: 100%;
	}

	.gstudio-account-schedule {
		display: block;
		overflow-x: auto;
	}
}

.gstudio-contract-wizard {
	--gstudio-dark: #101827;
	--gstudio-gold: #f7b733;
	--gstudio-gold-soft: rgba(247, 183, 51, 0.16);
	--gstudio-red: #dc2626;
	--gstudio-green: #16a34a;
}

.gstudio-wizard-hero {
	background: radial-gradient(circle at 12% 0%, rgba(247, 183, 51, 0.2), transparent 34%), linear-gradient(135deg, #0f172a, #182235);
	color: #fff;
	border-color: rgba(247, 183, 51, 0.32);
}

.gstudio-wizard-hero h2,
.gstudio-wizard-hero p {
	color: #fff;
}

.gstudio-kicker {
	margin: 0 0 8px;
	color: #f7d488 !important;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0;
}

.gstudio-progress {
	display: grid;
	gap: 8px;
	margin-top: 18px;
	font-weight: 800;
}

.gstudio-progress > div {
	height: 10px;
	overflow: hidden;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.18);
}

.gstudio-progress i {
	display: block;
	width: 16%;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, #f7b733, #ffe3a1);
	transition: width 220ms ease;
}

.gstudio-wizard-step {
	display: none;
}

.gstudio-wizard-step.is-active {
	display: block;
	animation: gstudioStepIn 220ms ease both;
}

@keyframes gstudioStepIn {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.gstudio-choice-card--muted {
	opacity: 0.84;
}

.gstudio-info-box {
	padding: 16px;
	border: 1px solid #d9b45c;
	border-radius: 8px;
	background: #fff8e7;
	color: #553a03;
	font-weight: 800;
}

.gstudio-summary {
	display: grid;
	gap: 10px;
	margin-bottom: 16px;
}

.gstudio-summary div {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 14px;
	border: 1px solid #dce3ee;
	border-radius: 8px;
	background: #f8fafc;
}

.gstudio-summary span {
	color: #64748b;
	font-weight: 700;
}

.gstudio-summary strong {
	text-align: right;
	color: #111827;
}

.gstudio-wizard-nav {
	position: sticky;
	bottom: 0;
	z-index: 20;
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 0 0;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0), #fff 28%);
}

.gstudio-wizard-nav .gstudio-submit,
.gstudio-wizard-nav .gstudio-secondary-button {
	min-height: 48px;
	padding: 13px 22px;
	border-radius: 10px;
	font-size: 16px;
}

.gstudio-contract-form input.is-invalid,
.gstudio-contract-form select.is-invalid,
.gstudio-contract-form textarea.is-invalid {
	border-color: var(--gstudio-red);
	box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.16);
}

.gstudio-contract-form input.is-valid,
.gstudio-contract-form select.is-valid,
.gstudio-contract-form textarea.is-valid {
	border-color: var(--gstudio-green);
	box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.11);
}

.gstudio-choice-card.is-invalid,
.gstudio-check.is-invalid {
	border-color: var(--gstudio-red) !important;
	box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.14) !important;
}

.gstudio-check.is-invalid {
	border: 1px solid var(--gstudio-red);
	border-radius: 8px;
	padding: 10px;
}

.gstudio-validation-error {
	display: block;
	margin-top: 6px;
	color: var(--gstudio-red);
	font-size: 13px;
	font-weight: 800;
}

.gstudio-honeypot {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.gstudio-shake {
	animation: gstudioShake 360ms ease both;
}

@keyframes gstudioShake {
	0%,
	100% {
		transform: translateX(0);
	}
	20%,
	60% {
		transform: translateX(-5px);
	}
	40%,
	80% {
		transform: translateX(5px);
	}
}

@media (max-width: 720px) {
	.gstudio-contract-form-wrap {
		max-width: 100%;
		padding: 0 12px 96px;
	}

	.gstudio-wizard-hero h2 {
		font-size: 26px;
		line-height: 1.18;
	}

	.gstudio-step-head {
		align-items: flex-start;
	}

	.gstudio-step-head h3 {
		font-size: 22px;
		line-height: 1.2;
	}

	.gstudio-choice-card {
		padding: 18px 16px;
		border-radius: 14px;
	}

	.gstudio-contract-form input,
	.gstudio-contract-form select,
	.gstudio-contract-form textarea {
		min-height: 48px;
		font-size: 16px;
	}

	.gstudio-summary div {
		display: grid;
	}

	.gstudio-summary strong {
		text-align: left;
	}

	.gstudio-wizard-nav {
		margin: 0 -12px;
		padding: 12px;
		border-top: 1px solid #e2e8f0;
		background: #fff;
	}

	.gstudio-wizard-nav > * {
		flex: 1;
	}
}
