.ninou-form-slot {
	margin-block: clamp(2rem, 5vw, 5rem);
}

.ninou-form-privacy-note {
	max-inline-size: 48rem;
	margin-block-end: 1rem;
}

/* The theme gives every input a full width. Keep consent checkboxes compact. */
.ninou-form .ninou-checkbox input[type="checkbox"] {
	block-size: 1.25rem;
	flex: 0 0 1.25rem;
	inline-size: 1.25rem;
	max-inline-size: 1.25rem;
}

.ninou-form .ninou-checkbox span {
	flex: 1 1 auto;
	min-inline-size: 0;
	overflow-wrap: anywhere;
}

/* Inputs sit on a white surface, so their boundary must meet 3:1 non-text
 * contrast even before focus. The focus outline remains the stronger cue. */
.ninou-form input:not([type="checkbox"]):not([type="radio"]),
.ninou-form select,
.ninou-form textarea {
	border-color: #737f95;
}

.ninou-form-privacy-note a,
.ninou-legal-footer a,
.ninou-breadcrumb a,
[data-ninou-error-links] a {
	text-decoration: underline;
	text-underline-offset: 0.16em;
}

.ninou-form-privacy-note a:focus-visible,
.ninou-legal-footer a:focus-visible,
.ninou-breadcrumb a:focus-visible,
[data-ninou-error-links] a:focus-visible {
	outline: 3px solid #5271a8;
	outline-offset: 3px;
}

.ninou-breadcrumb {
	font-size: 0.95rem;
	margin-block-end: 1.5rem;
}

.ninou-legal-footer {
	background: #0e1a36;
	box-sizing: border-box;
	color: #fff;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
	inline-size: 100%;
	justify-content: center;
	padding: 1rem clamp(1rem, 4vw, 3rem);
}

.ninou-legal-footer a,
.ninou-consent-link {
	color: inherit;
}

.ninou-consent-link {
	appearance: none;
	background: transparent;
	border: 0;
	cursor: pointer;
	font: inherit;
	padding: 0;
	text-decoration: underline;
	text-underline-offset: 0.16em;
}

.ninou-consent-banner {
	background: #fff;
	border-block-start: 2px solid #0e1a36;
	box-shadow: 0 -0.25rem 1rem rgb(14 26 54 / 18%);
	box-sizing: border-box;
	color: #0e1a36;
	inset-block-end: 0;
	inset-inline: 0;
	max-block-size: min(70vh, 32rem);
	overflow: auto;
	padding: clamp(1rem, 3vw, 1.5rem);
	position: fixed;
	z-index: 100000;
}

.ninou-consent-banner[hidden] {
	display: none;
}

.ninou-consent-banner__content,
.ninou-consent-dialog__content {
	margin-inline: auto;
	max-inline-size: 64rem;
}

.ninou-consent-banner h2,
.ninou-consent-dialog h2 {
	font-size: clamp(1.25rem, 2.5vw, 1.65rem);
	margin-block: 0 0.5rem;
}

.ninou-consent-banner p,
.ninou-consent-dialog p {
	margin-block: 0 1rem;
}

.ninou-consent-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.ninou-consent-action {
	background: #0e1a36;
	border: 2px solid #0e1a36;
	border-radius: 0.35rem;
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-weight: 700;
	min-block-size: 2.75rem;
	padding: 0.55rem 1rem;
}

.ninou-consent-action:hover {
	background: #24365f;
}

.ninou-consent-action:focus-visible,
.ninou-consent-link:focus-visible,
.ninou-consent-categories input:focus-visible {
	outline: 3px solid #5271a8;
	outline-offset: 3px;
}

.ninou-consent-dialog {
	background: #fff;
	border: 2px solid #0e1a36;
	border-radius: 0.5rem;
	box-sizing: border-box;
	color: #0e1a36;
	inline-size: min(44rem, calc(100% - 2rem));
	max-block-size: calc(100vh - 2rem);
	padding: clamp(1rem, 4vw, 2rem);
}

.ninou-consent-dialog::backdrop {
	background: rgb(14 26 54 / 65%);
}

.ninou-consent-categories {
	display: grid;
	gap: 0.75rem;
	margin-block: 1rem 1.5rem;
}

.ninou-consent-categories label {
	align-items: flex-start;
	border: 1px solid #737f95;
	border-radius: 0.35rem;
	display: flex;
	gap: 0.75rem;
	padding: 0.75rem;
}

.ninou-consent-categories input {
	block-size: 1.25rem;
	flex: 0 0 1.25rem;
	inline-size: 1.25rem;
	margin-block-start: 0.15rem;
}

[data-ninou-error-links] {
	margin-block: 0.5rem 0;
}

@media (max-width: 30rem) {
	.ninou-form-slot {
		margin-block: 2rem;
	}

	.ninou-consent-actions,
	.ninou-consent-action {
		inline-size: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ninou-form-slot *,
	.ninou-consent-banner *,
	.ninou-consent-dialog * {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

/*
 * Keep Hostinger's Kodee widget unchanged everywhere except active NINOU form
 * routes on narrow screens. Form-slot presence is stable across migrations and
 * avoids coupling the rule to environment-specific WordPress page IDs.
 */
@media (max-width: 767px) {
	body:has([data-ninou-form-slot="seller_lead"]) .kodee-fab,
	body:has([data-ninou-form-slot="buyer_lead"]) .kodee-fab,
	body:has([data-ninou-form-slot="general_contact"]) .kodee-fab {
		display: none !important;
	}
}

/* NINOU production visual polish V1 — E: public form presentation only. */
.ninou-form {
	display: grid;
	gap: 1rem;
}
.ninou-form .ninou-honeypot {
	block-size: 1px;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	inline-size: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	white-space: nowrap;
}
.ninou-form .ninou-checkbox {
	align-items: flex-start;
	cursor: pointer;
	display: flex;
	gap: 0.75rem;
	min-block-size: 2.75rem;
	padding-block: 0.5rem;
}
.ninou-form .ninou-checkbox input[type="checkbox"] {
	accent-color: var(--wp--preset--color--brand-primary, #183b78);
	block-size: 1.25rem;
	flex: 0 0 1.25rem;
	inline-size: 1.25rem;
	margin: 0.2rem 0 0;
	max-inline-size: 1.25rem;
	min-block-size: 1.25rem;
	padding: 0;
}
.ninou-form .ninou-checkbox span {
	flex: 1 1 auto;
	line-height: 1.55;
	min-inline-size: 0;
	overflow-wrap: anywhere;
}
.ninou-form .ninou-checkbox input[type="checkbox"]:focus-visible {
	outline: 3px solid #5271a8;
	outline-offset: 3px;
}
.ninou-form [data-ninou-submit] {
	margin-block-start: 0.5rem;
}
.ninou-form-slot {
	margin-block-end: 0;
	padding-block-end: clamp(4rem, 8vw, 6rem);
}
@media (max-width: 30rem) {
	.ninou-form-slot {
		margin-block: 2rem 0;
		padding-block-end: 4rem;
	}
}
