/* Sydney Hudson Contact Form
 * ---------------------------
 * Self-contained styles. Scoped under .sh-contact-wrap so nothing leaks.
 * Adjust the CSS variables at the top to match brand updates.
 */

.sh-contact-wrap {
	--sh-bg-dark:    #0d2330;
	--sh-bg-light:   #f5f7f8;
	--sh-text-dark:  #0d2330;
	--sh-text-light: #ffffff;
	--sh-accent:     #3fc3a8;     /* teal CTA */
	--sh-accent-ink: #0d2330;
	--sh-muted:      #6b7a82;
	--sh-border:     #d9dee1;
	--sh-error-bg:   #fdecea;
	--sh-error-fg:   #b3261e;
	--sh-success-bg: #e6f6f1;
	--sh-success-fg: #0f6b54;
	--sh-radius:     6px;
	--sh-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
	           Oxygen, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;

	font-family: var(--sh-font);
	color: var(--sh-text-dark);
	box-sizing: border-box;
}

.sh-contact-wrap *,
.sh-contact-wrap *::before,
.sh-contact-wrap *::after {
	box-sizing: inherit;
}

/* Layout ------------------------------------------------------------ */

/* Form-only mode (default) — centred, max-width container */
.sh-contact-wrap:not(.sh-has-sidebar) {
	background: var(--sh-bg-light);
	padding: 48px 32px;
	border-radius: var(--sh-radius);
}

.sh-contact-wrap:not(.sh-has-sidebar) .sh-contact-main {
	max-width: 760px;
	margin: 0 auto;
	padding: 0;
}

/* Sidebar mode — two-column grid */
.sh-contact-wrap.sh-has-sidebar {
	display: grid;
	grid-template-columns: minmax(280px, 360px) 1fr;
	gap: 0;
	min-height: 100%;
	background: var(--sh-bg-light);
}

@media (max-width: 860px) {
	.sh-contact-wrap.sh-has-sidebar {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.sh-contact-wrap:not(.sh-has-sidebar) {
		padding: 24px 16px;
	}
}

/* Sidebar ----------------------------------------------------------- */

.sh-contact-sidebar {
	background: var(--sh-bg-dark);
	color: var(--sh-text-light);
	padding: 48px 40px;
}

.sh-eyebrow {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--sh-accent);
	margin: 0 0 20px;
}

.sh-steps {
	list-style: none;
	margin: 0 0 32px;
	padding: 0;
}

.sh-steps li {
	display: flex;
	gap: 16px;
	margin-bottom: 24px;
}

.sh-step-num {
	flex: 0 0 28px;
	height: 28px;
	width: 28px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--sh-accent);
	color: var(--sh-accent-ink);
	font-weight: 700;
	font-size: 14px;
	border-radius: 4px;
}

.sh-steps h3 {
	margin: 0 0 6px;
	font-size: 15px;
	font-weight: 600;
	color: var(--sh-text-light);
}

.sh-steps p {
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.75);
}

.sh-divider {
	border: 0;
	border-top: 1px solid var(--sh-accent);
	width: 60px;
	margin: 32px 0;
}

.sh-direct p {
	margin: 0 0 16px;
	font-size: 14px;
	line-height: 1.5;
}

.sh-direct strong {
	color: var(--sh-text-light);
	font-weight: 600;
}

.sh-direct a {
	color: var(--sh-accent);
	text-decoration: none;
}

.sh-direct a:hover {
	text-decoration: underline;
}

/* Main / form panel ------------------------------------------------- */

.sh-contact-main {
	padding: 48px 56px;
}

@media (max-width: 600px) {
	.sh-contact-sidebar,
	.sh-contact-main {
		padding: 32px 20px;
	}
}

/* Form -------------------------------------------------------------- */

.sh-contact-form {
	max-width: 760px;
}

.sh-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px 32px;
	margin-bottom: 32px;
}

.sh-field--full {
	grid-column: 1 / -1;
}

@media (max-width: 600px) {
	.sh-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}
}

.sh-field label {
	display: block;
	font-size: 15px;
	font-weight: 600;
	margin-bottom: 8px;
	color: var(--sh-text-dark);
}

.sh-req {
	font-weight: 400;
	color: var(--sh-muted);
	font-size: 14px;
}

.sh-field input[type="text"],
.sh-field input[type="email"],
.sh-field select,
.sh-field textarea {
	width: 100%;
	padding: 12px 14px;
	font: inherit;
	font-size: 15px;
	color: var(--sh-text-dark);
	background: #fff;
	border: 1px solid var(--sh-border);
	border-radius: var(--sh-radius);
	transition: border-color 0.15s, box-shadow 0.15s;
}

.sh-field textarea {
	resize: vertical;
	min-height: 140px;
	font-family: inherit;
}

.sh-field input:focus,
.sh-field select:focus,
.sh-field textarea:focus {
	outline: none;
	border-color: var(--sh-accent);
	box-shadow: 0 0 0 3px rgba(63, 195, 168, 0.2);
}

.sh-field input:invalid:not(:placeholder-shown) {
	border-color: var(--sh-error-fg);
}

/* Honeypot — visually hidden, accessibility-safe */
.sh-hp {
	position: absolute;
	left: -10000px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Button ------------------------------------------------------------ */

.sh-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 28px;
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	color: var(--sh-accent-ink);
	background: var(--sh-accent);
	border: 0;
	border-radius: var(--sh-radius);
	cursor: pointer;
	transition: transform 0.1s, background 0.15s, box-shadow 0.15s;
}

.sh-btn:hover {
	background: #36ad95;
	box-shadow: 0 4px 12px rgba(63, 195, 168, 0.3);
}

.sh-btn:active {
	transform: translateY(1px);
}

.sh-btn:focus-visible {
	outline: 3px solid rgba(63, 195, 168, 0.5);
	outline-offset: 2px;
}

/* Disclaimer -------------------------------------------------------- */

.sh-disclaimer {
	margin: 20px 0 0;
	font-size: 13px;
	color: var(--sh-muted);
	line-height: 1.5;
}

.sh-disclaimer a {
	color: var(--sh-text-dark);
	text-decoration: underline;
}

/* Alerts ------------------------------------------------------------ */

.sh-alert {
	padding: 14px 18px;
	border-radius: var(--sh-radius);
	margin-bottom: 24px;
	font-size: 15px;
	font-weight: 500;
}

.sh-alert--success {
	background: var(--sh-success-bg);
	color: var(--sh-success-fg);
	border: 1px solid rgba(15, 107, 84, 0.2);
}

.sh-alert--error {
	background: var(--sh-error-bg);
	color: var(--sh-error-fg);
	border: 1px solid rgba(179, 38, 30, 0.2);
}

.sh-link-arrow {
	display: inline-block;
}