.grwid-button {
	align-items: center;
	background: var(--grwid-button-bg, #155eef);
	border: var(--grwid-button-border-width, 2px) solid var(--grwid-button-border-color, #155eef);
	border-radius: var(--grwid-button-border-radius, 6px);
	color: var(--grwid-button-color, #fff);
	cursor: pointer;
	display: inline-flex;
	font-family: var(--grwid-button-font-family, inherit);
	font-size: var(--grwid-button-font-size, 16px);
	font-weight: var(--grwid-button-font-weight, 700);
	gap: 0.5rem;
	justify-content: center;
	line-height: 1.2;
	min-height: var(--grwid-button-min-height, 44px);
	padding: var(--grwid-button-padding-y, 12px) var(--grwid-button-padding-x, 16px);
	text-decoration: none;
}

.grwid-button:hover,
.grwid-button:focus {
	background: var(--grwid-button-hover-bg, #0f47b8);
	border-color: var(--grwid-button-hover-bg, #0f47b8);
	color: var(--grwid-button-hover-color, #fff);
	outline: var(--grwid-button-outline-width, 3px) solid var(--grwid-button-outline-color, rgba(21, 94, 239, 0.28));
	outline-offset: var(--grwid-button-outline-offset, 2px);
}

.grwid-button--native-motion {
	transition: transform var(--grwid-button-transition-duration, 300ms) ease;
}

.grwid-button--native-motion:hover {
	transform: translateY(var(--grwid-button-hover-translate-y, 0));
}

/*
 * Divi applies a high-specificity, important hover color to links. The public
 * cancellation control is an anchor, so explicitly preserve its configured
 * hover color without affecting regular theme links.
 */
a.grwid-button.grwid-button--cancellation:hover,
a.grwid-button.grwid-button--cancellation:focus,
html body #page-container a.grwid-button.grwid-button--cancellation:hover,
html body #page-container a.grwid-button.grwid-button--cancellation:focus {
	color: var(--grwid-button-hover-color, #fff) !important;
	-webkit-text-fill-color: var(--grwid-button-hover-color, #fff) !important;
}

.grwid-widget {
	display: inline-block;
}

.grwid-modal {
	inset: 0;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	transition: opacity 220ms ease, visibility 220ms ease;
	visibility: hidden;
	z-index: 2147483000;
}

.grwid-modal.is-open {
	opacity: 1;
	pointer-events: auto;
	visibility: visible;
}

.grwid-modal__backdrop {
	background: rgba(0, 0, 0, 0.58);
	inset: 0;
	position: absolute;
	transition: opacity 220ms ease;
}

.grwid-modal__panel {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.28);
	box-sizing: border-box;
	left: 50%;
	max-height: min(780px, calc(100vh - 40px));
	max-width: min(720px, calc(100vw - 32px));
	overflow: auto;
	opacity: 0;
	padding: 1.5rem;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -47%) scale(0.98);
	transition: opacity 220ms ease, transform 220ms ease;
	width: 100%;
}

.grwid-modal.is-open .grwid-modal__panel {
	opacity: 1;
	transform: translate(-50%, -50%) scale(1);
}

.grwid-modal__close {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 4px;
	color: #1d2327;
	cursor: pointer;
	display: inline-flex;
	font-size: 2rem;
	height: 40px;
	justify-content: center;
	line-height: 1;
	padding: 0;
	position: absolute;
	right: 0.75rem;
	top: 0.75rem;
	width: 40px;
}

.grwid-modal__close:focus {
	outline: 3px solid rgba(21, 94, 239, 0.28);
	outline-offset: 2px;
}

.grwid-modal__title {
	font-size: 1.4rem;
	line-height: 1.25;
	margin: 0 3rem 1rem 0;
}

.grwid-modal p {
	font-size: 15px;
	line-height: 1.4;
}

.grwid-form-wrap {
	max-width: 720px;
}

.grwid-standalone-form,
.grwid-cancellation-page {
	background: #fff;
	border: 1px solid #dfe3e8;
	border-radius: 14px;
	box-shadow: 0 14px 40px rgba(23, 32, 51, 0.08);
	box-sizing: border-box;
	margin: 1.5rem auto;
	max-width: 760px;
	padding: clamp(1.25rem, 4vw, 2.5rem);
	width: 100%;
}

.grwid-standalone-form > h2,
.grwid-cancellation-page > h2 {
	color: #172033;
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.15;
	margin: 0 0 1.75rem;
	text-align: left;
}

.grwid-cancellation-page,
.grwid-cancellation-page * {
	box-sizing: border-box;
}

.grwid-cancellation-page {
	color: #172033;
	font-size: 16px;
	line-height: 1.5;
	text-align: left !important;
}

.grwid-cancellation-page .grwid-cancellation-form {
	align-items: stretch;
	display: grid !important;
	gap: 1.25rem;
	margin: 0 !important;
	max-width: none !important;
	padding: 0 !important;
	width: 100% !important;
}

.grwid-cancellation-page .grwid-field,
.grwid-cancellation-page .grwid-submit,
.grwid-cancellation-page .grwid-withdrawal-text {
	float: none !important;
	margin: 0 !important;
	max-width: none !important;
	position: static !important;
	text-align: left !important;
	width: 100% !important;
}

.grwid-cancellation-page .grwid-field > label {
	color: #172033 !important;
	display: block !important;
	float: none !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	margin: 0 0 0.45rem !important;
	max-width: none !important;
	padding: 0 !important;
	position: static !important;
	text-align: left !important;
	transform: none !important;
	width: auto !important;
}

.grwid-cancellation-page .grwid-field input[type="text"],
.grwid-cancellation-page .grwid-field input[type="email"],
.grwid-cancellation-page .grwid-field input[type="date"],
.grwid-cancellation-page .grwid-field textarea {
	appearance: auto;
	background: #fff !important;
	border: 1px solid #9aa4b2 !important;
	border-radius: 8px !important;
	box-shadow: none !important;
	color: #172033 !important;
	display: block !important;
	float: none !important;
	font: inherit !important;
	line-height: 1.5 !important;
	margin: 0 !important;
	max-width: none !important;
	min-height: 48px;
	padding: 0.75rem 0.875rem !important;
	position: static !important;
	text-align: left !important;
	width: 100% !important;
}

.grwid-cancellation-page .grwid-field textarea {
	min-height: 120px;
	resize: vertical;
}

.grwid-cancellation-page .grwid-field input:focus,
.grwid-cancellation-page .grwid-field textarea:focus {
	border-color: #155eef !important;
	box-shadow: 0 0 0 3px rgba(21, 94, 239, 0.16) !important;
	outline: 0 !important;
}

.grwid-cancellation-page [data-grwid-reason-field][hidden],
.grwid-cancellation-page [data-grwid-date-field][hidden] {
	display: none !important;
}

.grwid-form {
	display: grid;
	gap: 1rem;
}

.grwid-field {
	display: grid;
	gap: 0.4rem;
	margin: 0;
}

.grwid-field label {
	font-weight: 700;
}

.grwid-field input[type="text"],
.grwid-field input[type="email"],
.grwid-field input[type="date"],
.grwid-field textarea {
	border: 1px solid #8c8f94;
	border-radius: 4px;
	box-sizing: border-box;
	font: inherit;
	padding: 0.7rem 0.8rem;
	width: 100%;
}

.grwid-fieldset {
	border: 1px solid #dfe3e8 !important;
	border-radius: 10px !important;
	display: grid !important;
	float: none !important;
	gap: 0.65rem;
	height: auto !important;
	margin: 0 !important;
	max-width: none !important;
	min-inline-size: 0 !important;
	padding: 1rem !important;
	position: static !important;
	width: 100% !important;
}

.grwid-fieldset legend {
	color: #172033 !important;
	float: none !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	margin: 0 !important;
	padding: 0 0.35rem !important;
	position: static !important;
	text-align: left !important;
	width: auto !important;
}

.grwid-cancellation-page .grwid-fieldset .grwid-choice {
	align-items: center !important;
	background: #f8fafc;
	border: 1px solid transparent;
	border-radius: 8px;
	color: #172033 !important;
	cursor: pointer;
	display: grid !important;
	float: none !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	gap: 0.7rem;
	grid-template-columns: 20px minmax(0, 1fr);
	height: auto !important;
	line-height: 1.4 !important;
	margin: 0 !important;
	max-width: none !important;
	min-height: 46px;
	padding: 0.7rem 0.8rem !important;
	position: static !important;
	text-align: left !important;
	transform: none !important;
	white-space: normal !important;
	width: 100% !important;
	word-break: normal !important;
}

.grwid-cancellation-page .grwid-fieldset .grwid-choice:hover {
	background: #f1f5f9;
	border-color: #cbd5e1;
}

.grwid-cancellation-page .grwid-fieldset .grwid-choice span {
	display: block !important;
	min-width: 0 !important;
	overflow-wrap: normal !important;
	width: auto !important;
	word-break: normal !important;
}

.grwid-cancellation-page .grwid-fieldset input[type="radio"] {
	appearance: auto !important;
	display: block !important;
	float: none !important;
	height: 18px !important;
	margin: 0 !important;
	max-width: 18px !important;
	min-height: 18px !important;
	min-width: 18px !important;
	opacity: 1 !important;
	padding: 0 !important;
	position: static !important;
	transform: none !important;
	visibility: visible !important;
	width: 18px !important;
}

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

.grwid-checkbox {
	box-sizing: border-box;
	display: block;
	grid-column: 1 / -1;
	margin: 0;
	width: 100%;
}

.grwid-checkbox label {
	align-items: flex-start;
	box-sizing: border-box;
	display: flex;
	font-weight: 400;
	gap: 0.55rem;
	line-height: 1.45;
	margin: 0;
	max-width: 100%;
	width: 100%;
}

.grwid-checkbox input[type="checkbox"] {
	box-sizing: border-box;
	flex: 0 0 auto;
	height: auto;
	margin-top: 0.2em;
	max-width: none;
	min-width: 0;
	width: auto;
}

.grwid-checkbox span {
	display: block;
	flex: 1 1 auto;
	min-width: 0;
}

.grwid-checkbox a {
	overflow-wrap: anywhere;
	word-break: normal;
}

.grwid-privacy-note {
	color: #50575e;
	font-size: 0.95rem;
	line-height: 1.45;
	margin: 0;
}

.grwid-privacy-note a {
	overflow-wrap: anywhere;
}

.grwid-withdrawal-text {
	background: #f6f7f7;
	border-left: 4px solid #155eef;
	margin: 0;
	padding: 0.85rem 1rem;
}

.grwid-required-note {
	color: #50575e;
	display: block;
	font-size: 0.82rem;
	font-weight: 500;
	line-height: 1.4;
	margin-top: 0.6rem;
}

.grwid-submit {
	margin: 0;
}

.grwid-notice {
	border-radius: 4px;
	margin-bottom: 1rem;
	padding: 0.85rem 1rem;
}

.grwid-notice-success {
	background: #edfaef;
	border: 1px solid #68de7c;
}

.grwid-notice-error {
	background: #fff1f0;
	border: 1px solid #ff8f85;
}

.grwid-receipt pre {
	background: #f6f7f7;
	border: 1px solid #dcdcde;
	border-radius: 6px;
	box-sizing: border-box;
	overflow: auto;
	padding: 1rem;
	white-space: pre-wrap;
}

body.grwid-modal-open {
	overflow: hidden;
}

.grwid-modal[hidden] {
	display: none;
}

@media (prefers-reduced-motion: reduce) {

	.grwid-modal,
	.grwid-modal__backdrop,
	.grwid-modal__panel {
		transition: none;
	}

	.grwid-button--native-motion,
	.grwid-button--native-motion:hover {
		transform: none;
		transition: none;
	}
}

@media (max-width: 600px) {
	.grwid-modal__panel {
		max-height: calc(100vh - 24px);
		max-width: calc(100vw - 24px);
		padding: 1.25rem;
	}
}
