/* Stewart Strategies — business survey. */
.ssb-survey {
	--sv-navy: #0f2344;
	--sv-navy-soft: #1b3560;
	--sv-gold: #d1b47e;
	--sv-gold-light: #e6d3ac;
	--sv-gold-ink: #87672f;
	--sv-cream: #f8f4ec;
	--sv-line: #e7e1d5;
	--sv-muted: #4a5a76;
	background: #fff;
	border: 1px solid var(--sv-line);
	border-radius: 20px;
	padding: 30px;
	box-shadow: 0 30px 60px -45px rgba(9,24,50,.45);
	color: var(--sv-navy);
	margin-top: 28px;
}
.ssb-survey *, .ssb-survey *::before, .ssb-survey *::after { box-sizing: border-box; }
.ssb-survey [hidden] { display: none !important; }

.ssb-sv-progress { height: 6px; border-radius: 6px; background: var(--sv-cream); overflow: hidden; }
.ssb-sv-bar { display: block; height: 100%; background: var(--sv-gold); border-radius: 6px; transition: width .35s ease; }
.ssb-sv-count { margin: 10px 0 18px !important; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--sv-gold-ink); }

.ssb-sv-step { border: 0; padding: 0; margin: 0; min-width: 0; }
.ssb-sv-title { font-family: "Inter Tight", Inter, system-ui, sans-serif; font-weight: 800; font-size: 26px; letter-spacing: -0.02em; color: var(--sv-navy); padding: 0; margin: 0; }
.ssb-sv-intro { margin: 6px 0 22px !important; color: var(--sv-muted); }

.ssb-sv-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.ssb-sv-field { grid-column: 1 / -1; margin: 0 !important; }
.ssb-sv-field.is-half { grid-column: auto; }
.ssb-sv-field > label, .ssb-sv-label { display: block; font-weight: 600; font-size: 15px; margin-bottom: 7px; color: var(--sv-navy); }
.ssb-sv-req { color: #b3412f; }
.ssb-sv-help { margin: -3px 0 8px !important; font-size: 13px; color: var(--sv-muted); }
.ssb-sv-field input[type=text], .ssb-sv-field input[type=email], .ssb-sv-field input[type=tel], .ssb-sv-field textarea, .ssb-sv-field select {
	width: 100%; padding: 12px 14px; border: 1px solid #cfd6e1; border-radius: 10px; font: inherit; font-size: 16px; color: var(--sv-navy); background: #fff;
}
.ssb-sv-field textarea { resize: vertical; min-height: 104px; }
.ssb-sv-field input:focus, .ssb-sv-field textarea:focus, .ssb-sv-field select:focus { outline: none; border-color: var(--sv-navy); box-shadow: 0 0 0 3px rgba(209,180,126,.45); }

/* Pill choices for radio + checkbox questions */
.ssb-sv-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.ssb-sv-choice { position: relative; display: inline-flex; margin: 0; cursor: pointer; }
.ssb-sv-choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ssb-sv-choice span { display: inline-block; padding: 10px 16px; border: 1px solid var(--sv-line); border-radius: 999px; background: #fff; font-size: 15px; font-weight: 500; line-height: 1.3; transition: border-color .15s, background .15s, color .15s; }
.ssb-sv-choice:hover span { border-color: var(--sv-gold); }
.ssb-sv-choice input:checked + span { background: var(--sv-navy); border-color: var(--sv-navy); color: #fff; }
.ssb-sv-checkbox .ssb-sv-choice input:checked + span::before { content: "\2713"; margin-right: 6px; color: var(--sv-gold); font-weight: 700; }
.ssb-sv-choice input:focus-visible + span { box-shadow: 0 0 0 3px rgba(209,180,126,.6); }

.ssb-sv-field.has-error input, .ssb-sv-field.has-error textarea, .ssb-sv-field.has-error select { border-color: #b3412f; }
.ssb-sv-field.has-error .ssb-sv-choice span { border-color: #e2b4ad; }
.ssb-sv-field-error { margin: 6px 0 0 !important; font-size: 14px; color: #a3311f; }
.ssb-sv-error { margin-top: 18px; background: #fdf0ef; border-left: 4px solid #b3412f; color: #7a2418; border-radius: 0 10px 10px 0; padding: 12px 16px; font-size: 15px; }

.ssb-sv-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.ssb-sv-nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 26px; }
.ssb-sv-nav button {
	font-family: "Inter Tight", Inter, system-ui, sans-serif; font-weight: 700; font-size: 14px; letter-spacing: .06em; text-transform: uppercase;
	padding: 15px 26px; border-radius: 10px; border: 2px solid transparent; cursor: pointer; transition: background .15s, transform .15s, border-color .15s;
}
.ssb-sv-nav button:hover:not(:disabled) { transform: translateY(-1px); }
.ssb-sv-nav button:disabled { opacity: .6; cursor: wait; }
.ssb-sv-back { background: transparent; border-color: var(--sv-line) !important; color: var(--sv-navy); }
.ssb-sv-back:hover { border-color: var(--sv-gold) !important; }
.ssb-sv-next, .ssb-sv-submit { margin-left: auto; background: var(--sv-gold); color: var(--sv-navy); }
.ssb-sv-next:hover, .ssb-sv-submit:hover { background: var(--sv-gold-light); }
.ssb-sv-next::after, .ssb-sv-submit::after { content: " \2192"; }
.ssb-sv-privacy { margin: 16px 0 0 !important; font-size: 13px; color: var(--sv-muted); }

/* Thank-you screen */
.ssb-sv-done { outline: none; }
.ssb-sv-check { width: 56px; height: 56px; border-radius: 50%; background: var(--sv-gold); color: var(--sv-navy); display: grid; place-items: center; font-size: 28px; font-weight: 800; margin-bottom: 16px; }
.ssb-sv-done h3 { font-family: "Inter Tight", Inter, system-ui, sans-serif; font-size: 28px; font-weight: 800; margin: 0 0 10px; color: var(--sv-navy); }
.ssb-sv-done p { color: var(--sv-muted); margin: 0 0 12px !important; }
.ssb-sv-rec { margin-top: 22px; background: var(--sv-cream); border-left: 4px solid var(--sv-gold); border-radius: 0 14px 14px 0; padding: 18px 22px; }
.ssb-sv-rec-label { font-size: 14px; margin: 0 0 4px !important; }
.ssb-sv-rec-name { font-family: "Inter Tight", Inter, system-ui, sans-serif; font-size: 22px; font-weight: 800; color: var(--sv-navy) !important; margin: 0 0 14px !important; }
.ssb-sv-book { display: inline-block; background: var(--sv-navy); color: #fff !important; text-decoration: none; font-weight: 700; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; padding: 13px 22px; border-radius: 10px; }
.ssb-sv-book:hover { background: var(--sv-navy-soft); }
.ssb-sv-book::after { content: " \2192"; }

@media (max-width: 600px) {
	.ssb-survey { padding: 22px 16px; border-radius: 16px; }
	.ssb-sv-fields { grid-template-columns: minmax(0, 1fr); }
	.ssb-sv-field.is-half { grid-column: 1 / -1; }
	.ssb-sv-title { font-size: 22px; }
	.ssb-sv-nav button { padding: 14px 18px; }
}
