/**
 * Niramay Admin Dashboard - frontend primitives + [niramay_contact_form] styles.
 *
 * The `--nrm-*` variables are printed inline just before this file by
 * Niramay_Design_Tokens::frontend_css(), so the published site uses exactly the palette of the
 * dashboard (Settings > Branding). Every rule below is scoped under `.niramay-front`, which both
 * shortcode wrappers carry: this file never restyles the host theme.
 *
 * Class names are intentionally generic (.nrm-*) but always nested, so they cannot leak.
 */

.niramay-front {
	font-family: var(--nrm-font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
	color: var(--nrm-text, #171c26);
	line-height: 1.55;
	font-size: var(--nrm-font-base, 14px);
}

.niramay-front *,
.niramay-front *::before,
.niramay-front *::after {
	box-sizing: border-box;
}

/* ---------------------------------------------------------------- contact form. */

.niramay-front.niramay-contact-wrap {
	max-width: 640px;
	margin: 0 auto;
	background: var(--nrm-surface, #fff);
	border: 1px solid var(--nrm-border, #ebeaf1);
	border-radius: var(--nrm-radius-lg, 11px);
	box-shadow: var(--nrm-shadow-sm, 0 2px 7px rgba(72, 72, 110, .07));
	padding: var(--nrm-space-7, 32px);
}

.niramay-contact-wrap .niramay-contact-title {
	margin: 0 0 var(--nrm-space-2, 8px);
	font-family: var(--nrm-font-display, var(--nrm-font-sans, sans-serif));
	font-size: var(--nrm-font-xl, 22px);
	font-weight: 600;
	line-height: 1.25;
	color: var(--nrm-text, #171c26);
}

.niramay-contact-wrap .niramay-contact-intro {
	margin: 0 0 var(--nrm-space-6, 24px);
	color: var(--nrm-text-muted, #5c6474);
	font-size: var(--nrm-font-sm, 13px);
}

.niramay-contact-wrap .nrm-field {
	display: flex;
	flex-direction: column;
	gap: var(--nrm-space-2, 8px);
	margin-bottom: var(--nrm-space-4, 16px);
}

.niramay-contact-wrap label,
.niramay-contact-wrap .nrm-field-label {
	font-size: var(--nrm-font-sm, 13px);
	font-weight: 600;
	color: var(--nrm-text-secondary, #3f4757);
}

.niramay-contact-wrap .nrm-required {
	color: var(--nrm-error-ink, #a43636);
	margin-left: 3px;
}

.niramay-contact-wrap .nrm-input,
.niramay-contact-wrap .nrm-textarea,
.niramay-contact-wrap select.nrm-input {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid var(--nrm-border-strong, #dddbe7);
	border-radius: var(--nrm-radius, 7px);
	background: var(--nrm-surface, #fff);
	color: var(--nrm-text, #171c26);
	font-size: var(--nrm-font-base, 14px);
	font-family: inherit;
	line-height: 1.4;
	transition: border-color var(--nrm-transition, 160ms ease), box-shadow var(--nrm-transition, 160ms ease);
}

.niramay-contact-wrap .nrm-textarea {
	min-height: 130px;
	resize: vertical;
}

.niramay-contact-wrap select.nrm-input {
	appearance: none;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235c6474' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	padding-right: 38px;
}

.niramay-contact-wrap .nrm-input:hover,
.niramay-contact-wrap .nrm-textarea:hover,
.niramay-contact-wrap select.nrm-input:hover {
	border-color: var(--nrm-text-muted, #5c6474);
}

.niramay-contact-wrap .nrm-input:focus,
.niramay-contact-wrap .nrm-textarea:focus,
.niramay-contact-wrap select.nrm-input:focus,
.niramay-contact-wrap .nrm-choice input:focus-visible {
	outline: none;
	border-color: var(--nrm-brand, #d17839);
	box-shadow: var(--nrm-shadow-focus, 0 0 0 3px rgba(209, 120, 57, .24));
}

.niramay-contact-wrap .nrm-input[type="file"] {
	padding: 10px 12px;
	background: var(--nrm-surface-2, #fbf9f6);
	border-style: dashed;
	cursor: pointer;
}

.niramay-contact-wrap .nrm-input[type="file"]::file-selector-button {
	margin-right: 12px;
	padding: 7px 14px;
	border: 1px solid var(--nrm-border-strong, #dddbe7);
	border-radius: var(--nrm-radius-sm, 5px);
	background: var(--nrm-surface, #fff);
	color: var(--nrm-text-secondary, #3f4757);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.niramay-contact-wrap .nrm-choice-list {
	display: flex;
	flex-direction: column;
	gap: var(--nrm-space-1, 4px);
}

.niramay-contact-wrap .nrm-choice {
	display: flex;
	align-items: flex-start;
	gap: var(--nrm-space-3, 12px);
	margin: 0;
	padding: 9px 12px;
	border: 1px solid transparent;
	border-radius: var(--nrm-radius, 7px);
	background: var(--nrm-surface-2, #fbf9f6);
	font-size: var(--nrm-font-base, 14px);
	font-weight: 500;
	color: var(--nrm-text, #171c26);
	cursor: pointer;
	transition: background var(--nrm-transition, 160ms ease), border-color var(--nrm-transition, 160ms ease);
}

.niramay-contact-wrap .nrm-choice:hover {
	background: var(--nrm-brand-soft, #f2ebe1);
	border-color: var(--nrm-border-strong, #dddbe7);
}

.niramay-contact-wrap .nrm-choice input {
	width: 16px;
	height: 16px;
	margin: 2px 0 0;
	flex: 0 0 auto;
	accent-color: var(--nrm-brand-strong, #ac4d1c);
}

.niramay-contact-wrap .nrm-field-hint {
	font-size: var(--nrm-font-xs, 12px);
	color: var(--nrm-text-muted, #5c6474);
}

.niramay-contact-wrap .nrm-field-error {
	display: none;
	margin: 0 0 var(--nrm-space-4, 16px);
	padding: 11px 14px;
	border: 1px solid var(--nrm-error-soft, #fbecec);
	border-radius: var(--nrm-radius, 7px);
	background: var(--nrm-error-soft, #fbecec);
	color: var(--nrm-error-ink, #a43636);
	font-size: var(--nrm-font-sm, 13px);
}

.niramay-contact-wrap .nrm-field-error.nrm-is-success {
	border-color: var(--nrm-success-soft, #e7f6ef);
	background: var(--nrm-success-soft, #e7f6ef);
	color: var(--nrm-success-ink, #1c6f52);
}

/* The button is a *shared* primitive, not a contact-form rule: everything public that lives inside
   .niramay-front can use it — the form's submit, the PDF reader's Download and its error/fallback
   links. Scoping it to the form was why those links fell back to the theme's link colour. */
.niramay-front .nrm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--nrm-space-2, 8px);
	padding: 12px 24px;
	border: 1px solid transparent;
	border-radius: var(--nrm-radius, 7px);
	background: var(--nrm-brand-strong, #ac4d1c);
	color: var(--nrm-text-on-brand, #fff);
	font-family: inherit;
	font-size: var(--nrm-font-base, 14px);
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	cursor: pointer;
	transition: background var(--nrm-transition, 160ms ease), transform var(--nrm-transition, 160ms ease);
}

.niramay-front .nrm-btn:hover {
	background: var(--nrm-brand-ink, #9a4614);
	color: var(--nrm-text-on-brand, #fff);
}

.niramay-front .nrm-btn:active {
	transform: translateY(1px);
}

.niramay-front .nrm-btn[disabled] {
	opacity: .65;
	cursor: progress;
}

.niramay-front .nrm-btn:focus-visible,
.niramay-contact-wrap a:focus-visible {
	outline: 2px solid var(--nrm-brand, #d17839);
	outline-offset: 2px;
}

/* Empty / notice state shown when the form has nothing to render. */
.niramay-front.niramay-nl-empty,
.niramay-front .niramay-contact-notice {
	padding: var(--nrm-space-7, 32px) var(--nrm-space-5, 20px);
	border: 1px dashed var(--nrm-border-strong, #dddbe7);
	border-radius: var(--nrm-radius-lg, 11px);
	background: var(--nrm-surface-2, #fbf9f6);
	color: var(--nrm-text-muted, #5c6474);
	text-align: center;
}

/* ------------------------------------------------- booking ([niramay_calendly]). */

.niramay-front.nrm-front-booking {
	max-width: 960px;
	margin: 0 auto;
}

.nrm-front-booking .nrm-front-booking-title {
	margin: 0 0 var(--nrm-space-2, 8px);
	font-family: var(--nrm-font-display, var(--nrm-font-sans, sans-serif));
	font-size: var(--nrm-font-xl, 22px);
	font-weight: 600;
	line-height: 1.25;
	color: var(--nrm-text, #171c26);
}

.nrm-front-booking .nrm-front-booking-intro {
	margin: 0 0 var(--nrm-space-5, 20px);
	color: var(--nrm-text-muted, #5c6474);
	font-size: var(--nrm-font-sm, 13px);
}

/* The card look the dashboard uses; the iframe itself is Calendly's own frame. */
.nrm-front-booking .nrm-front-booking-frame {
	background: var(--nrm-surface, #fff);
	border: 1px solid var(--nrm-border, #ebeaf1);
	border-radius: var(--nrm-radius-lg, 11px);
	box-shadow: var(--nrm-shadow-sm, 0 2px 7px rgba(72, 72, 110, .07));
	overflow: hidden;
}

.nrm-front-booking .nrm-front-booking-iframe {
	display: block;
	width: 100%;
	min-height: 320px;
	border: 0;
	background: var(--nrm-surface, #fff);
}

.nrm-front-booking .nrm-front-booking-cta {
	margin: var(--nrm-space-4, 16px) 0 0;
	text-align: center;
}

.niramay-front .nrm-btn.nrm-btn-secondary {
	background: var(--nrm-surface, #fff);
	border-color: var(--nrm-border-strong, #dddbe7);
	color: var(--nrm-brand-ink, #9a4614);
}

.niramay-front .nrm-btn.nrm-btn-secondary:hover {
	background: var(--nrm-brand-soft, #f2ebe1);
	color: var(--nrm-brand-ink, #9a4614);
}

@media (max-width: 640px) {
	.niramay-front.niramay-contact-wrap {
		padding: var(--nrm-space-5, 20px);
	}
	.nrm-front-booking .nrm-front-booking-title {
		font-size: var(--nrm-font-lg, 18px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.niramay-front * {
		transition: none !important;
	}
}
