/* =========================================================================
   Sterling Design — project intake wizard  ([sterling_intake] shortcode)
   Denim step rail + sand question panel, ending in a brief above a Ninja
   Form. Loaded only on pages that use the shortcode.
   ========================================================================= */

.sd-intake {
	--sd-intake-ink: 27, 37, 50; /* denim, as rgb() parts for alpha tints */
	--sd-intake-sticky-top: 2.5rem; /* raise this if the theme has a fixed header */
	display: flex;
	align-items: stretch;
	min-height: 80vh;
	background: var(--sd-sand);
	color: var(--sd-denim);
	font-family: var(--sd-font-body);
	-webkit-font-smoothing: antialiased;
}
.sd-intake *,
.sd-intake *::before,
.sd-intake *::after { box-sizing: border-box; }
.sd-intake [hidden] { display: none !important; }

/* Shield the wizard's own buttons from theme button styles. */
.sd-intake__step,
.sd-intake__option,
.sd-intake__back,
.sd-intake__next,
.sd-intake__print {
	appearance: none;
	margin: 0;
	border: 0;
	border-radius: 3px;
	background: none;
	box-shadow: none;
	color: inherit;
	font-family: var(--sd-font-display);
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1.25;
	cursor: pointer;
}
.sd-intake button:focus-visible,
.sd-intake__title:focus-visible {
	outline: 2px solid var(--sd-blaze);
	outline-offset: 3px;
}
.sd-intake__title:focus { outline: none; }

/* ---- Rail ------------------------------------------------------------- */
.sd-intake__rail {
	flex: 0 0 308px;
	background: var(--sd-denim);
	color: var(--sd-sand);
	padding: 3.5rem 2.1rem;
}
.sd-intake__rail-inner {
	position: sticky;
	top: var(--sd-intake-sticky-top);
	display: flex;
	flex-direction: column;
	gap: 2.4rem;
}
.sd-intake__steps { list-style: none; margin: 0; padding: 0; }
.sd-intake__steps li { margin: 0; border-top: 1px solid rgba(201, 193, 179, 0.18); }
.sd-intake__step {
	display: flex;
	align-items: baseline;
	gap: 0.9rem;
	width: 100%;
	padding: 0.7rem 0;
	text-align: left;
	color: var(--sd-oatmeal);
	opacity: 0.32;
	transition: opacity 0.18s ease, color 0.18s ease;
}
.sd-intake__step:disabled { cursor: default; }
.sd-intake__step.is-done { opacity: 0.68; }
.sd-intake__step.is-current { opacity: 1; color: var(--sd-sand); }
.sd-intake__step:not(:disabled):hover { opacity: 1; }
.sd-intake__step-n { font-size: 0.72rem; letter-spacing: 0.14em; font-weight: 500; }
.sd-intake__step-label { font-size: 0.82rem; letter-spacing: 0.13em; font-weight: 500; }

.sd-intake__range {
	border-top: 1px solid rgba(201, 193, 179, 0.25);
	padding-top: 1.1rem;
}
.sd-intake__range .sd-intake__label { color: var(--sd-oatmeal); letter-spacing: 0.18em; margin-bottom: 0.5rem; }
.sd-intake__range-value {
	font-family: var(--sd-font-display);
	font-size: 1.3rem;
	letter-spacing: 0.02em;
}
.sd-intake__fine {
	margin: 0;
	font-size: 0.78rem;
	line-height: 1.65;
	color: var(--sd-oatmeal);
}
.sd-intake__fine a {
	display: inline-block;
	margin-top: 0.75rem;
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid rgba(201, 193, 179, 0.4);
}
.sd-intake__fine a:hover { color: var(--sd-sand); border-bottom-color: var(--sd-sand); }

/* ---- Main panel -------------------------------------------------------- */
.sd-intake__main {
	flex: 1 1 auto;
	min-width: 0;
	max-width: 920px;
	padding: 4rem 3.5rem 6rem;
}

.sd-intake__label,
.sd-intake__kicker {
	font-family: var(--sd-font-display);
	text-transform: uppercase;
	letter-spacing: 0.16em;
	font-size: 0.7rem;
	color: var(--sd-blaze);
	margin: 0 0 1rem;
}
.sd-intake__kicker {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	letter-spacing: 0.22em;
	font-weight: 600;
	font-size: 0.72rem;
	margin-bottom: 0.5rem;
}
.sd-intake__kicker::after {
	content: "";
	flex: 1 1 auto;
	height: 1px;
	background: rgba(var(--sd-intake-ink), 0.15);
}
.sd-intake__title {
	font-family: var(--sd-font-display);
	font-weight: 400;
	font-size: clamp(1.9rem, 4vw, 2.4rem);
	line-height: 1.15;
	letter-spacing: 0.01em;
	color: var(--sd-denim);
	margin: 0 0 0.75rem;
}
.sd-intake__lead {
	margin: 0 0 3rem;
	max-width: 58ch;
	font-size: 1.02rem;
	line-height: 1.65;
	color: rgba(var(--sd-intake-ink), 0.72);
}

/* ---- Questions --------------------------------------------------------- */
.sd-intake__field { margin-bottom: 2.9rem; }
.sd-intake__q {
	font-family: var(--sd-font-body);
	font-size: 1.18rem;
	font-weight: 500;
	line-height: 1.35;
	text-transform: none;
	letter-spacing: 0;
	color: var(--sd-denim);
	margin: 0 0 0.25rem;
}
.sd-intake__hint {
	margin: 0;
	font-size: 0.86rem;
	color: rgba(var(--sd-intake-ink), 0.55);
}
.sd-intake__options {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(232px, 1fr));
	gap: 10px;
	margin-top: 1.1rem;
}
.sd-intake__option {
	display: block;
	width: 100%;
	padding: 15px 17px;
	text-align: left;
	border: 1px solid rgba(var(--sd-intake-ink), 0.16);
	background: #fbfaf7;
	color: var(--sd-denim);
	transition: border-color 0.18s ease, background 0.18s ease;
}
.sd-intake__option:hover { border-color: var(--sd-denim); background: #fbfaf7; color: var(--sd-denim); }
.sd-intake__option.is-selected { border-color: var(--sd-blaze); background: #fff; }
.sd-intake__option-head { display: flex; align-items: baseline; gap: 9px; }
.sd-intake__dot {
	flex: 0 0 auto;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: rgba(var(--sd-intake-ink), 0.14);
	transition: background 0.18s ease;
}
.sd-intake__option.is-selected .sd-intake__dot { background: var(--sd-blaze); }
.sd-intake__option-title { font-size: 0.85rem; font-weight: 500; letter-spacing: 0.07em; }
.sd-intake__option-desc {
	display: block;
	margin: 6px 0 0 16px;
	font-family: var(--sd-font-body);
	font-size: 0.82rem;
	line-height: 1.5;
	text-transform: none;
	letter-spacing: 0;
	color: rgba(var(--sd-intake-ink), 0.6);
}
.sd-intake__note {
	margin-top: 1rem;
	padding: 14px 18px;
	max-width: 62ch;
	border-left: 2px solid var(--sd-blaze);
	background: rgba(201, 193, 179, 0.3);
	font-size: 0.88rem;
	line-height: 1.65;
}

/* ---- Brief ------------------------------------------------------------- */
.sd-intake__invest {
	background: var(--sd-denim);
	color: var(--sd-sand);
	padding: 2.1rem 2.25rem;
	border-radius: 3px;
	margin-bottom: 2.75rem;
}
.sd-intake__invest .sd-intake__label { color: var(--sd-oatmeal); letter-spacing: 0.2em; }
.sd-intake__invest-value {
	font-family: var(--sd-font-display);
	font-size: clamp(2rem, 5vw, 2.7rem);
	line-height: 1;
	letter-spacing: 0.01em;
}
.sd-intake__invest-note {
	margin: 1rem 0 0;
	max-width: 56ch;
	font-size: 0.86rem;
	line-height: 1.65;
	color: var(--sd-oatmeal);
}
.sd-intake__cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 2.5rem;
	margin-bottom: 3rem;
}
.sd-intake__rows,
.sd-intake__decisions { list-style: none; margin: 0; padding: 0; }
.sd-intake__row,
.sd-intake__decisions li {
	display: flex;
	gap: 1rem;
	margin: 0;
	padding: 10px 0;
	border-top: 1px solid rgba(var(--sd-intake-ink), 0.13);
	font-size: 0.9rem;
	line-height: 1.5;
}
.sd-intake__row dt { flex: 0 0 108px; margin: 0; font-weight: 400; color: rgba(var(--sd-intake-ink), 0.55); }
.sd-intake__row dd { flex: 1 1 auto; margin: 0; }
.sd-intake__decisions li { gap: 12px; line-height: 1.55; }
.sd-intake__decisions li::before {
	content: "";
	flex: 0 0 auto;
	width: 6px;
	height: 6px;
	margin-top: 8px;
	border: 1px solid rgba(var(--sd-intake-ink), 0.4);
}
.sd-intake__ideas {
	background: rgba(201, 193, 179, 0.32);
	padding: 2rem 2.1rem;
	border-radius: 3px;
	margin-bottom: 3.25rem;
}
.sd-intake__ideas ol {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.sd-intake__ideas li {
	display: flex;
	gap: 1rem;
	margin: 0;
	max-width: 68ch;
	font-size: 0.94rem;
	line-height: 1.65;
}
.sd-intake__idea-n {
	flex: 0 0 auto;
	padding-top: 2px;
	font-family: var(--sd-font-display);
	font-size: 0.8rem;
	letter-spacing: 0.1em;
	color: var(--sd-blaze);
}

/* ---- Contact (Ninja Form) --------------------------------------------- */
.sd-intake__contact {
	border-top: 1px solid rgba(var(--sd-intake-ink), 0.18);
	padding-top: 2.5rem;
}
.sd-intake__contact-title {
	font-family: var(--sd-font-display);
	font-weight: 400;
	font-size: 1.6rem;
	text-transform: none;
	letter-spacing: 0;
	color: var(--sd-denim);
	margin: 0 0 0.5rem;
}
.sd-intake__contact-lead {
	margin: 0 0 1.75rem;
	max-width: 56ch;
	font-size: 0.95rem;
	line-height: 1.65;
	color: rgba(var(--sd-intake-ink), 0.7);
}
.sd-intake.is-sent .sd-intake__contact-title,
.sd-intake.is-sent .sd-intake__contact-lead { display: none; }
.sd-intake__admin-note {
	padding: 14px 18px;
	border-left: 2px solid var(--sd-blaze);
	background: #fff;
	font-size: 0.9rem;
	line-height: 1.6;
}

/* Two-up fields; message, submit and errors run full width. */
.sd-intake .nf-form-fields-required { display: none; }
.sd-intake .nf-form-content { max-width: none; padding: 0; margin: 0; }
.sd-intake nf-fields-wrap {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 18px;
}
.sd-intake nf-fields-wrap > nf-field:has(.textarea-container),
.sd-intake nf-fields-wrap > nf-field:has(.submit-container) { grid-column: 1 / -1; }
.sd-intake nf-fields-wrap > nf-field:has(.hidden-container) { display: none; }
.sd-intake .nf-field-container { margin-bottom: 18px; }
.sd-intake .nf-field-container.hidden-container { margin: 0; height: 0; }
.sd-intake .nf-field-label { margin-bottom: 7px; }
.sd-intake .nf-field-label label,
.sd-intake .nf-field-label .nf-label-span {
	font-family: var(--sd-font-display);
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 0.66rem;
	font-weight: 400;
	color: rgba(var(--sd-intake-ink), 0.6);
}
.sd-intake .ninja-forms-req-symbol { color: var(--sd-blaze); }
.sd-intake .nf-field-element input:not([type="submit"]):not([type="button"]),
.sd-intake .nf-field-element textarea {
	width: 100%;
	height: auto;
	padding: 12px 14px;
	border: 1px solid rgba(var(--sd-intake-ink), 0.22);
	border-radius: 3px;
	background: #fbfaf7;
	box-shadow: none;
	color: var(--sd-denim);
	font-family: var(--sd-font-body);
	font-size: 1rem;
	line-height: 1.6;
}
.sd-intake .nf-field-element textarea { min-height: 7.5rem; resize: vertical; }
.sd-intake .nf-field-element input:focus,
.sd-intake .nf-field-element textarea:focus { outline: none; border-color: var(--sd-blaze); }
.sd-intake .nf-error .nf-field-element input,
.sd-intake .nf-error .nf-field-element textarea { border-color: var(--sd-blaze); }
.sd-intake .nf-error-msg { color: var(--sd-blaze); font-size: 0.82rem; }
.sd-intake .submit-container { margin: 8px 0 0; }
.sd-intake .submit-container .nf-element,
.sd-intake__next,
.sd-intake__print {
	width: auto;
	height: auto;
	padding: 15px 34px;
	font-family: var(--sd-font-display);
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	border: 0;
	border-radius: 3px;
	cursor: pointer;
	transition: background 0.18s ease, border-color 0.18s ease, opacity 0.18s ease;
}
.sd-intake .submit-container .nf-element { background: var(--sd-blaze); color: var(--sd-sand); }
.sd-intake .submit-container .nf-element:hover { background: var(--sd-denim); color: var(--sd-sand); }

/* Success message → the denim "Received" card. */
.sd-intake .nf-response-msg:not(:empty) {
	background: var(--sd-denim);
	color: var(--sd-oatmeal);
	padding: 2.25rem 2.4rem;
	border-radius: 3px;
	margin-bottom: 1.5rem;
}
.sd-intake .nf-response-msg h3 {
	font-family: var(--sd-font-display);
	font-weight: 400;
	font-size: 1.7rem;
	text-transform: none;
	letter-spacing: 0;
	color: var(--sd-sand);
	margin: 0 0 0.6rem;
}
.sd-intake .nf-response-msg p { margin: 0; max-width: 56ch; font-size: 0.95rem; line-height: 1.7; }
.sd-intake .nf-response-msg .sd-intake__received {
	font-family: var(--sd-font-display);
	text-transform: uppercase;
	letter-spacing: 0.2em;
	font-size: 0.68rem;
	margin-bottom: 0.75rem;
}

.sd-intake__print {
	margin-top: 0.5rem;
	padding: 14px 28px;
	border: 1px solid rgba(var(--sd-intake-ink), 0.3);
	color: var(--sd-denim);
}
.sd-intake__print:hover { border-color: var(--sd-denim); background: rgba(var(--sd-intake-ink), 0.05); color: var(--sd-denim); }

/* ---- Back / next -------------------------------------------------------- */
.sd-intake__nav {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	margin-top: 0.5rem;
	padding-top: 1.75rem;
	border-top: 1px solid rgba(var(--sd-intake-ink), 0.15);
}
.sd-intake__back {
	padding: 10px 0;
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.13em;
	color: rgba(var(--sd-intake-ink), 0.6);
}
.sd-intake__back:hover { color: var(--sd-denim); background: none; }
.sd-intake__next { margin-left: auto; padding: 15px 36px; background: var(--sd-denim); color: var(--sd-sand); }
.sd-intake__next:hover { background: var(--sd-blaze); color: var(--sd-sand); }
.sd-intake__next:disabled { opacity: 0.32; cursor: default; background: var(--sd-denim); }

/* ---- No JS: just the contact form -------------------------------------- */
.sd-intake:not(.is-ready) .sd-intake__rail,
.sd-intake:not(.is-ready) .sd-intake__nav,
.sd-intake:not(.is-ready) .sd-intake__print { display: none; }

/* ---- Narrow screens ------------------------------------------------------ */
@media (max-width: 900px) {
	.sd-intake { flex-direction: column; min-height: 0; }
	.sd-intake__rail { flex: 0 0 auto; padding: 1.5rem; }
	.sd-intake__rail-inner { position: static; gap: 1.1rem; }
	.sd-intake__steps { display: flex; flex-wrap: wrap; gap: 0 1.1rem; }
	.sd-intake__steps li { border-top: 0; }
	.sd-intake__step { width: auto; padding: 0.35rem 0; gap: 0.5rem; }
	.sd-intake__fine { display: none; }
	.sd-intake__main { padding: 2.25rem 1.5rem 4rem; }
}
@media (max-width: 600px) {
	.sd-intake nf-fields-wrap { grid-template-columns: 1fr; }
}

/* ---- Print: the brief on its own ---------------------------------------- */
@media print {
	.sd-intake-brief-open body * { visibility: hidden; }
	.sd-intake-brief-open .sd-intake__brief-body,
	.sd-intake-brief-open .sd-intake__brief-body * { visibility: visible; }
	.sd-intake-brief-open .sd-intake__brief-body {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		padding: 0 1rem;
	}
	.sd-intake__invest,
	.sd-intake__ideas { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
