/* demo.css — focused Book a Demo conversion page */

@layer modules {
	.demo-root,
	.demo-body {
		overflow-x: clip;
	}

	.demo-body {
		min-height: 100dvh;
		background: var(--marketing-ink);
		color: var(--marketing-ink);
	}

	.demo-shell {
		display: grid;
		grid-template-columns: minmax(0, 1.08fr) minmax(31rem, 0.92fr);
		min-height: calc(100dvh - 4.5rem);
	}

	.demo-story,
	.demo-form-panel {
		min-width: 0;
		padding: clamp(2rem, 5vw, 5rem);
	}

	.demo-story {
		display: flex;
		flex-direction: column;
		background: var(--marketing-paper);
	}

	.demo-logo {
		display: inline-flex;
		align-items: center;
		align-self: flex-start;
		gap: 0.65rem;
		color: var(--marketing-ink);
	}

	.demo-logo:hover {
		opacity: 1;
	}

	.demo-logo .breeze-logo-mark {
		width: 1.65rem;
		height: 1.6rem;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.13rem;
		color: currentColor;
	}

	.demo-logo .breeze-logo-mark span {
		display: block;
		width: 0.32rem;
		height: 1.25rem;
		border-radius: 50%;
		background: currentColor;
		transform: rotate(8deg);
	}

	.demo-logo .breeze-logo-mark span:nth-child(2) {
		height: 1.55rem;
		transform: rotate(-4deg);
	}

	.demo-logo .breeze-logo-mark span:nth-child(3) {
		height: 1.05rem;
		transform: rotate(7deg);
	}

	.demo-logo .breeze-logo-word {
		font-family: var(--font-display);
		font-size: 1.2rem;
		font-weight: 900;
		letter-spacing: -0.055em;
	}

	.demo-story-content {
		width: min(100%, 38rem);
		margin-top: clamp(3.5rem, 8vh, 7rem);
	}

	.demo-eyebrow,
	.demo-form-status,
	.demo-proof-card > p {
		margin: 0;
		font-size: 0.72rem;
		font-weight: 800;
		letter-spacing: 0.04em;
		line-height: 1.35;
		text-transform: uppercase;
	}

	.demo-eyebrow {
		margin-bottom: 1.2rem;
	}

	.demo-story h1 {
		max-width: 37rem;
		font-size: clamp(2.7rem, 5.1vw, 5.4rem);
		font-weight: 800;
		letter-spacing: -0.065em;
		line-height: 0.94;
		text-wrap: balance;
	}

	.demo-nowrap {
		white-space: nowrap;
	}

	.demo-benefits {
		display: grid;
		gap: 0.85rem;
		margin-top: 2.4rem;
		list-style: none;
	}

	.demo-benefits li {
		position: relative;
		padding-left: 2.3rem;
		font-size: clamp(1rem, 1.25vw, 1.14rem);
		line-height: 1.5;
	}

	.demo-benefits li::before {
		content: "✓";
		position: absolute;
		top: 0.05rem;
		left: 0;
		display: grid;
		width: 1.45rem;
		height: 1.45rem;
		place-items: center;
		border-radius: var(--radius-sm);
		background: var(--marketing-mist);
		font-size: 0.85rem;
		font-weight: 900;
	}

	.demo-proof-card {
		margin-top: 3.5rem;
		padding: clamp(1.7rem, 3vw, 2.5rem);
		background: var(--accent-primary);
	}

	.demo-proof-card > strong {
		display: block;
		margin-top: 0.35rem;
		font-family: var(--font-display);
		font-size: clamp(2.3rem, 4.2vw, 4.5rem);
		font-weight: 900;
		letter-spacing: -0.065em;
		line-height: 0.98;
	}

	.demo-proof-card > strong span {
		font-weight: 500;
	}

	.demo-proof-card blockquote {
		max-width: 31rem;
		margin-top: 2.3rem;
		font-family: var(--font-display);
		font-size: clamp(1.05rem, 1.45vw, 1.32rem);
		font-weight: 700;
		line-height: 1.35;
	}

	.demo-proof-card > div {
		display: grid;
		gap: 0.1rem;
		margin-top: 2.3rem;
	}

	.demo-proof-card > div span {
		font-weight: 800;
	}

	.demo-proof-card > div small {
		font-size: 0.83rem;
	}

	.demo-fit-notes {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2rem;
		margin-top: 3.2rem;
	}

	.demo-fit-notes article {
		display: flex;
		align-items: center;
		gap: 1rem;
		min-width: 0;
	}

	.demo-fit-mark {
		display: grid;
		width: 3.3rem;
		height: 3.3rem;
		flex: 0 0 auto;
		place-items: center;
		border: 1px solid var(--marketing-ink);
		border-radius: 50%;
		font-size: 0.7rem;
		font-weight: 900;
	}

	.demo-fit-notes p {
		display: grid;
		line-height: 1.3;
	}

	.demo-fit-notes strong {
		font-size: 0.92rem;
	}

	.demo-fit-notes small {
		margin-top: 0.2rem;
		color: var(--text-muted);
		font-size: 0.8rem;
	}

	.demo-form-panel {
		display: flex;
		align-items: flex-start;
		justify-content: center;
		background: var(--marketing-ink);
	}

	.demo-form-card {
		width: min(100%, 41rem);
		margin-top: 0;
		padding: clamp(1.7rem, 3.5vw, 3.25rem);
		background: var(--marketing-paper);
		animation: demo-card-enter 600ms cubic-bezier(0.22, 1, 0.36, 1) both;
	}

	.demo-form-intro {
		margin-bottom: 2rem;
	}

	.demo-form-status {
		display: inline-flex;
		margin-bottom: 1rem;
		padding: 0.35rem 0.55rem;
		background: var(--accent-primary);
	}

	.demo-form-intro h2 {
		font-size: clamp(1.75rem, 2.7vw, 2.65rem);
		font-weight: 800;
		letter-spacing: -0.045em;
		line-height: 1.02;
	}

	.demo-form-intro > p:last-child {
		max-width: 31rem;
		margin-top: 0.75rem;
		color: var(--text-muted);
		line-height: 1.55;
	}

	.demo-request-form {
		display: grid;
		gap: 1rem;
	}

	.demo-form-row {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.8rem;
	}

	.demo-field {
		display: grid;
		gap: 0.35rem;
		min-width: 0;
	}

	.demo-field label {
		font-size: 0.76rem;
		font-weight: 700;
		line-height: 1.4;
	}

	.demo-field input,
	.demo-field select,
	.demo-field textarea {
		width: 100%;
		min-height: 3.35rem;
		padding: 0.85rem 0.95rem;
		border: 1px solid transparent;
		border-radius: var(--radius-md);
		background: var(--marketing-mist);
		color: var(--marketing-ink);
		font: inherit;
		transition:
			border-color 200ms ease,
			background-color 200ms ease,
			box-shadow 200ms ease;
	}

	.demo-field textarea {
		min-height: 6.4rem;
		resize: vertical;
	}

	.demo-field input:hover,
	.demo-field select:hover,
	.demo-field textarea:hover {
		background: color-mix(
			in oklch,
			var(--marketing-mist),
			var(--marketing-paper) 28%
		);
	}

	.demo-field input:focus,
	.demo-field select:focus,
	.demo-field textarea:focus {
		border-color: var(--focus-ring);
		background: var(--marketing-paper);
		box-shadow: 0 0 0 3px
			color-mix(in oklch, var(--focus-ring), transparent 78%);
	}

	.demo-field textarea::placeholder {
		color: var(--text-muted);
		opacity: 0.72;
	}

	.demo-form-errors {
		padding: 0.9rem 1rem;
		border: 1px solid var(--danger);
		border-radius: var(--radius-md);
		background: var(--danger-10);
		color: var(--danger);
		font-size: 0.8rem;
		line-height: 1.45;
	}

	.demo-form-errors > p {
		font-weight: 800;
	}

	.demo-form-errors ul {
		margin: 0.35rem 0 0 1rem;
	}

	.demo-slot-picker {
		display: grid;
		gap: 0.75rem;
		margin-top: 0.35rem;
		padding: 0;
		border: 0;
	}

	.demo-slot-picker legend {
		margin: 0;
		font-family: var(--font-sans);
		font-size: 0.8rem;
		font-weight: 800;
	}

	.demo-slot-picker > p {
		margin-top: -0.4rem;
		color: var(--text-muted);
		font-size: 0.76rem;
		line-height: 1.45;
	}

	.demo-slot-groups {
		display: grid;
		max-height: 22rem;
		gap: 0.7rem;
		overflow-y: auto;
		padding-right: 0.25rem;
		overscroll-behavior: contain;
	}

	.demo-slot-day {
		display: grid;
		gap: 0.45rem;
	}

	.demo-slot-day h3 {
		font-family: var(--font-sans);
		font-size: 0.76rem;
		font-weight: 800;
	}

	.demo-slot-options {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.5rem;
	}

	.demo-slot-option {
		display: flex;
		min-width: 0;
		gap: 0.6rem;
		align-items: flex-start;
		padding: 0.75rem;
		border: 1px solid var(--border-color);
		border-radius: var(--radius-md);
		background: var(--marketing-paper);
		cursor: pointer;
		transition:
			border-color 200ms ease,
			background-color 200ms ease,
			transform 200ms ease;
	}

	.demo-slot-option:hover,
	.demo-slot-option:has(input:checked) {
		border-color: var(--focus-ring);
		background: color-mix(
			in oklch,
			var(--accent-primary),
			var(--marketing-paper) 82%
		);
		transform: translateY(-1px);
	}

	.demo-slot-option:has(input:focus-visible) {
		outline: 3px solid var(--focus-ring);
		outline-offset: 2px;
	}

	.demo-slot-option input {
		width: 1rem;
		height: 1rem;
		flex: 0 0 auto;
		margin-top: 0.12rem;
		accent-color: var(--focus-ring);
	}

	.demo-slot-option > span {
		display: grid;
		min-width: 0;
		gap: 0.15rem;
	}

	.demo-slot-option time {
		font-size: 0.8rem;
		font-weight: 800;
		line-height: 1.35;
	}

	.demo-slot-option small {
		color: var(--text-muted);
		font-size: 0.68rem;
		line-height: 1.35;
	}

	.demo-slot-empty {
		display: grid;
		gap: 0.35rem;
		padding: 1rem;
		border: 1px solid var(--border-color);
		border-radius: var(--radius-md);
		background: var(--marketing-mist);
	}

	.demo-slot-empty strong {
		font-size: 0.85rem;
	}

	.demo-slot-empty span,
	.demo-field-error {
		color: var(--text-muted);
		font-size: 0.74rem;
		line-height: 1.45;
	}

	.demo-field-error {
		color: var(--danger);
	}

	.demo-honeypot {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}

	.demo-success {
		display: grid;
		gap: 1.2rem;
	}

	.demo-success h2 {
		font-size: clamp(2rem, 3.4vw, 3.5rem);
		font-weight: 800;
		letter-spacing: -0.055em;
		line-height: 0.98;
	}

	.demo-success > p:not(.demo-form-status) {
		color: var(--text-muted);
		line-height: 1.55;
	}

	.demo-success-time {
		display: grid;
		gap: 0.35rem;
		padding: 1.2rem;
		border: 1px solid var(--border-color);
		background: var(--marketing-mist);
	}

	.demo-success-time > span {
		font-size: 0.68rem;
		font-weight: 800;
		letter-spacing: 0.05em;
		text-transform: uppercase;
	}

	.demo-success-time time {
		font-family: var(--font-display);
		font-size: 1.35rem;
		font-weight: 800;
		line-height: 1.2;
	}

	.demo-success-time small {
		color: var(--text-muted);
	}

	.demo-success-actions {
		display: flex;
		flex-wrap: wrap;
		gap: 0.7rem;
	}

	.demo-success-actions p {
		width: 100%;
		color: var(--text-muted);
		font-size: 0.8rem;
		line-height: 1.5;
	}

	.demo-back-link {
		justify-self: start;
		color: var(--marketing-ink);
		font-size: 0.8rem;
		font-weight: 800;
		text-decoration: underline;
		text-underline-offset: 0.2em;
	}

	.demo-privacy,
	.demo-form-note {
		color: var(--text-muted);
		font-size: 0.76rem;
		line-height: 1.55;
	}

	.demo-privacy {
		margin-top: 0.4rem;
	}

	.demo-submit {
		min-height: 3.2rem;
		margin-top: 0.55rem;
	}

	.demo-form-note {
		margin-top: -0.35rem;
		text-align: center;
	}

	.demo-footer {
		display: flex;
		min-height: 4.5rem;
		align-items: center;
		justify-content: space-between;
		gap: 1.5rem;
		padding: 1rem clamp(1.5rem, 2.5vw, 2rem);
		border-top: 1px solid
			color-mix(in oklch, var(--marketing-paper), transparent 82%);
		background: var(--marketing-ink);
		color: color-mix(in oklch, var(--marketing-paper), transparent 48%);
		font-size: 0.75rem;
	}

	.demo-footer nav {
		display: flex;
		flex-wrap: wrap;
		justify-content: flex-end;
		gap: 1.5rem;
	}

	.demo-footer a {
		color: inherit;
		text-decoration: underline;
		text-underline-offset: 0.2em;
	}

	.demo-story-content > * {
		animation: demo-story-enter 600ms cubic-bezier(0.22, 1, 0.36, 1) both;
	}

	.demo-story-content > :nth-child(2) {
		animation-delay: 60ms;
	}
	.demo-story-content > :nth-child(3) {
		animation-delay: 120ms;
	}
	.demo-story-content > :nth-child(4) {
		animation-delay: 180ms;
	}
	.demo-story-content > :nth-child(5) {
		animation-delay: 240ms;
	}

	@keyframes demo-story-enter {
		from {
			opacity: 0;
			transform: translateY(1rem);
		}
		to {
			opacity: 1;
			transform: none;
		}
	}

	@keyframes demo-card-enter {
		from {
			opacity: 0;
			transform: translateY(1.25rem);
		}
		to {
			opacity: 1;
			transform: none;
		}
	}

	@media (max-width: 67.5rem) {
		.demo-shell {
			grid-template-columns: 1fr;
		}

		.demo-story,
		.demo-form-panel {
			padding: clamp(2rem, 7vw, 4rem);
		}

		.demo-story-content {
			width: min(100%, 43rem);
			margin-top: 4rem;
		}

		.demo-form-card {
			margin: 0;
		}
	}

	@media (max-width: 40rem) {
		.demo-story,
		.demo-form-panel {
			padding: 1.5rem;
		}

		.demo-story-content {
			margin-top: 3.5rem;
		}

		.demo-story h1 {
			font-size: clamp(2.55rem, 13.5vw, 4.2rem);
		}

		.demo-benefits {
			margin-top: 2rem;
		}

		.demo-proof-card {
			margin-top: 2.75rem;
		}

		.demo-fit-notes,
		.demo-form-row,
		.demo-slot-options {
			grid-template-columns: 1fr;
		}

		.demo-fit-notes {
			gap: 1.25rem;
			margin-top: 2.5rem;
		}

		.demo-form-card {
			padding: 1.35rem;
		}

		.demo-footer {
			align-items: flex-start;
			flex-direction: column;
		}

		.demo-footer nav {
			justify-content: flex-start;
		}
	}

	@media (max-width: 23rem) {
		.demo-nowrap {
			white-space: normal;
		}
	}
}
