/* Sonovio B2B application form. Uses the Sonovio theme's colors when present, with fallbacks for any theme. */
.sb2b {
	--sb2b-ink: var(--sv-ink, #2B2420);
	--sb2b-muted: var(--sv-muted, #5C5048);
	--sb2b-accent: var(--sv-accent, #8A5A40);
	--sb2b-rose: var(--sv-rose, #C49A7C);
	--sb2b-line: var(--sv-line, #E7DDD2);
	--sb2b-line-2: var(--sv-line-2, #D8CABB);
	--sb2b-sand: var(--sv-sand-2, #F4EEE7);
	--sb2b-ground: var(--sv-ground, #FBF8F4);
	--sb2b-serif: var(--sv-serif, "Cormorant Garamond", Georgia, serif);
	display: flex; gap: 72px; flex-wrap: wrap; align-items: flex-start;
	color: var(--sb2b-ink);
}
.sb2b *, .sb2b *::before, .sb2b *::after { box-sizing: border-box; }
.sb2b__main { flex: 999 1 560px; min-width: 0; }
.sb2b__aside { flex: 1 1 300px; max-width: 400px; display: flex; flex-direction: column; gap: 28px; }

.sb2b-form { display: flex; flex-direction: column; gap: 56px; }
.sb2b-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.sb2b-form legend {
	display: block; width: 100%; padding: 0 0 22px; margin-bottom: 6px; border-bottom: 1px solid var(--sb2b-line);
	font-family: var(--sb2b-serif); font-size: 30px; font-weight: 500; line-height: 1.2;
}
.sb2b-num { font-size: 18px; color: var(--sb2b-accent); margin-right: 12px; }
.sb2b-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 22px 24px; }
.sb2b-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.sb2b-field { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.sb2b-field--wide { grid-column: 1 / -1; }
.sb2b-field > span:first-child {
	font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--sb2b-muted);
}
.sb2b-field abbr { text-decoration: none; border: 0; color: var(--sb2b-accent); }
.sb2b-field input:not([type="checkbox"]):not([type="file"]),
.sb2b-field select,
.sb2b-field textarea {
	width: 100%; min-width: 0; min-height: 50px; padding: 0 16px;
	font: inherit; font-size: 15px; letter-spacing: 0; text-transform: none; color: var(--sb2b-ink);
	background: #fff; border: 1px solid var(--sb2b-line-2); border-radius: 0; box-shadow: none;
}
.sb2b-field textarea { padding: 14px 16px; resize: vertical; }
.sb2b-field input:focus, .sb2b-field select:focus, .sb2b-field textarea:focus {
	outline: 2px solid var(--sb2b-accent); outline-offset: 0; border-color: var(--sb2b-accent);
}
.sb2b-drop {
	display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center;
	border: 1px dashed var(--sb2b-rose); background: #fff; padding: 28px 20px; color: var(--sb2b-accent);
}
.sb2b-drop__hint { font-size: 13px; color: var(--sb2b-muted); letter-spacing: 0; text-transform: none; }
.sb2b-drop input[type="file"] { max-width: 100%; font: inherit; font-size: 13px; color: var(--sb2b-ink); }
.sb2b-checks { display: flex; flex-wrap: wrap; gap: 4px 28px; }
.sb2b-check { display: flex; align-items: center; gap: 10px; min-height: 40px; font-size: 14px; font-weight: 300; cursor: pointer; }
.sb2b-check--top { align-items: flex-start; }
.sb2b-check input { width: 16px; height: 16px; margin: 4px 0 0; accent-color: var(--sb2b-ink); flex-shrink: 0; }
.sb2b-check a { color: var(--sb2b-accent); }
.sb2b-hint { font-size: 13px; color: var(--sb2b-muted); margin: 0; }
.sb2b-hint a { color: var(--sb2b-accent); }
.sb2b-submit { display: flex; flex-direction: column; gap: 18px; border-top: 1px solid var(--sb2b-line); padding-top: 32px; }
.sb2b-submit__row { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; padding-top: 6px; }
.sb2b-btn, .sb2b button.sb2b-btn {
	display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 44px;
	background: var(--sb2b-ink); color: var(--sb2b-ground); border: 1px solid var(--sb2b-ink); border-radius: 0;
	font: inherit; font-size: 11.5px; letter-spacing: .26em; text-transform: uppercase; text-decoration: none; cursor: pointer;
}
.sb2b-btn:hover { background: var(--sb2b-accent); border-color: var(--sb2b-accent); color: var(--sb2b-ground); }
.sb2b-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.sb2b-errors {
	border: 1px solid #B42318; background: #FFF6F5; color: #7A1A12; padding: 18px 22px; margin-bottom: 32px; font-size: 14px;
}
.sb2b-errors p { margin: 0 0 6px; font-weight: 500; }
.sb2b-errors ul { margin: 0; padding-left: 18px; }
.sb2b-errors a { color: #7A1A12; }

.sb2b-done {
	border: 1px solid var(--sb2b-line-2); padding: 64px 40px; display: flex; flex-direction: column;
	align-items: center; text-align: center; gap: 18px;
}
.sb2b-done h2 { font-family: var(--sb2b-serif); font-weight: 400; font-size: 40px; line-height: 1.1; margin: 0; }
.sb2b-done p { margin: 0; max-width: 460px; color: var(--sb2b-muted); font-weight: 300; }
.sb2b-done__icon {
	width: 56px; height: 56px; border: 1px solid var(--sb2b-rose); border-radius: 50%;
	display: flex; align-items: center; justify-content: center; color: var(--sb2b-accent);
}

.sb2b-panel { border: 1px solid var(--sb2b-line); padding: 32px; display: flex; flex-direction: column; gap: 18px; }
.sb2b-panel--sand { background: var(--sb2b-sand); border-color: var(--sb2b-sand); padding: 36px 32px; }
.sb2b-eyebrow { font-size: 10.5px; letter-spacing: .26em; text-transform: uppercase; color: var(--sb2b-accent); }
.sb2b-benefits { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.sb2b-benefits li { position: relative; padding-left: 22px; display: flex; flex-direction: column; }
.sb2b-benefits li::before {
	content: ""; position: absolute; left: 0; top: 10px; width: 6px; height: 6px; background: var(--sb2b-rose); transform: rotate(45deg);
}
.sb2b-benefits strong { font-family: var(--sb2b-serif); font-size: 20px; font-weight: 500; line-height: 1.25; }
.sb2b-benefits span { font-size: 13px; color: var(--sb2b-muted); font-weight: 300; }
.sb2b-steps { margin: 0; padding: 0; list-style: none; counter-reset: sb2b; display: flex; flex-direction: column; gap: 16px; }
.sb2b-steps li { counter-increment: sb2b; display: flex; gap: 16px; font-size: 14px; font-weight: 300; }
.sb2b-steps li::before {
	content: counter(sb2b); font-family: var(--sb2b-serif); font-size: 22px; line-height: 1.1; color: var(--sb2b-accent); min-width: 20px;
}
.sb2b-contact { display: flex; flex-direction: column; gap: 8px; padding: 0 4px; font-size: 14px; font-weight: 300; }
.sb2b-contact strong { font-family: var(--sb2b-serif); font-size: 22px; font-weight: 500; }
.sb2b-contact a { text-decoration: none; color: var(--sb2b-ink); }
.sb2b-contact a:last-child { color: var(--sb2b-accent); }

@media (max-width: 700px) {
	.sb2b { gap: 48px; }
	.sb2b__aside { max-width: none; }
	.sb2b-form legend { font-size: 26px; }
	.sb2b-btn { width: 100%; }
}

.sb2b-ownernote {
	border: 1px dashed var(--sv-accent, #8A5A40); background: #FFFDF9; color: var(--sv-ink, #2B2420);
	padding: 14px 18px; margin: 0 0 32px; font-size: 14px;
}
.sb2b-ownernote a { color: var(--sv-accent, #8A5A40); font-weight: 500; }
