.grinity-contact-form {
	display: grid;
	gap: 18px;
}

.grinity-contact-form__field {
	margin: 0;
	min-width: 0;
}

.grinity-contact-form [hidden],
.grinity-review-form [hidden] { display: none !important; }
.grinity-review-form .review-form-receipt { grid-column: 1 / -1; margin: 0; padding: 16px; color: #caffda; background: rgba(0, 200, 83, .08); border: 1px solid rgba(0, 200, 83, .35); border-radius: 12px; }
.grinity-review-form > .comment-form-author:not([data-review-consent-name]),
.grinity-review-form > .comment-form-email { display: flex; flex-direction: column; min-width: 0; }
.grinity-review-form > .comment-form-author:not([data-review-consent-name]) input,
.grinity-review-form > .comment-form-email input { margin-top: auto; }
.grinity-contact-form__legal-note { margin: 0; color: var(--text-secondary, #c7cbc9); font-size: .8rem; line-height: 1.65; }
.grinity-legal-document { padding: clamp(20px, 4vw, 44px); border: 1px solid #283c2e; border-radius: 20px; background: linear-gradient(140deg, #15231a, #0b100d); }
.grinity-legal-document h2 { margin-top: 2em; color: #e9f3ec; }
.grinity-legal-document section { scroll-margin-top: 140px; }
.grinity-legal-document dt { margin-top: 22px; font-weight: 700; }
.grinity-legal-document dd { margin: 8px 0 0; }
.grinity-legal-document__meta { color: #a4b5aa; font-size: .85rem; }

.grinity-contact-form__field label {
	display: block;
	margin-bottom: 7px;
	color: var(--text-main, #e0e0e0);
	font-size: 0.95rem;
	font-weight: 650;
}

.grinity-contact-form__optional {
	color: var(--text-muted, #aaa);
	font-size: 0.86em;
	font-weight: 400;
}

.grinity-contact-form__field input,
.grinity-contact-form__field select,
.grinity-contact-form__field textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	padding: 11px 12px;
	color: var(--text-main, #e0e0e0);
	background: var(--bg-page, #0a0a0a);
	border: 1px solid #444;
	border-radius: 6px;
	font: inherit;
	line-height: 1.45;
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

.grinity-contact-form__field textarea {
	min-height: 118px;
	resize: vertical;
}

.grinity-contact-form__field input:focus,
.grinity-contact-form__field select:focus,
.grinity-contact-form__field textarea:focus {
	outline: 0;
	border-color: var(--accent-green, #00ff66);
	box-shadow: 0 0 0 3px rgba(0, 255, 102, 0.16);
}

.grinity-contact-form__field select {
	font: inherit;
	cursor: pointer;
}

.grinity-contact-form__audience-note {
	margin: 0;
	padding: 10px 12px;
	color: var(--text-secondary, #c7cbc9);
	background: rgba(255, 255, 255, 0.025);
	border: 1px solid var(--border-color, #333);
	border-radius: 8px;
	font-size: 0.9rem;
	line-height: 1.45;
}

.grinity-contact-form__audience-note.is-hidden {
	display: none;
}

.grinity-contact-form__field input[aria-invalid="true"],
.grinity-contact-form__field select[aria-invalid="true"],
.grinity-contact-form__field textarea[aria-invalid="true"] {
	border-color: #df6262;
	box-shadow: 0 0 0 3px rgba(223, 98, 98, 0.13);
}

.grinity-contact-form__privacy {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 14px 16px;
	color: var(--text-secondary, #c7cbc9);
	background: rgba(255, 255, 255, 0.025);
	border: 1px solid var(--border-color, #333);
	border-radius: 8px;
	font-size: 0.92rem;
	line-height: 1.5;
	cursor: pointer;
}

.grinity-contact-form__privacy input {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 3px 0 0;
	accent-color: var(--accent-green, #00ff66);
}

.grinity-contact-form__privacy a {
	color: var(--accent-green, #00ff66);
	font-weight: 650;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.grinity-contact-form__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 13px 18px;
}

.grinity-contact-form__submit {
	min-width: 172px;
	padding: 11px 22px;
	color: #07120b;
	background: var(--accent-green, #00ff66);
	border: 0;
	border-radius: 6px;
	font: inherit;
	font-weight: 750;
	cursor: pointer;
	transition: background-color 160ms ease, opacity 160ms ease, transform 160ms ease;
}

.grinity-contact-form__submit:hover {
	background: var(--accent-green-hover, #00db58);
	transform: translateY(-1px);
}

.grinity-contact-form__submit:focus-visible {
	outline: 2px solid var(--accent-green, #00ff66);
	outline-offset: 3px;
}

.grinity-contact-form__submit:disabled {
	opacity: 0.55;
	cursor: wait;
	transform: none;
}

.grinity-contact-form__status {
	flex: 1 1 260px;
	min-width: 0;
	color: var(--text-secondary, #c7cbc9);
	font-size: 0.92rem;
	line-height: 1.5;
}

.grinity-contact-form__status:empty {
	display: none;
}

.grinity-contact-form__status.is-success,
.grinity-contact-form__status.is-error {
	padding: 11px 13px;
	border-radius: 7px;
}

.grinity-contact-form__status.is-success {
	color: #c9f8d9;
	background: rgba(0, 200, 83, 0.12);
	border: 1px solid rgba(0, 255, 102, 0.28);
}

.grinity-contact-form__status.is-error {
	color: #ffd7d7;
	background: rgba(223, 82, 82, 0.1);
	border: 1px solid rgba(223, 82, 82, 0.34);
}

.grinity-contact-form__honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

@media (max-width: 560px) {
	.grinity-contact-form__actions {
		display: grid;
	}

	.grinity-contact-form__submit {
		width: 100%;
	}
}
