/*--------------------------------------------------------------
# Digital Twin ("Pick My Brain") page
# Uses tokens from this-site.css. The card FRAME (header, page
# copy, buttons) carries the site's brand — the chat PREVIEW
# content (avatar, bubble, chips, input bar) stays visually
# faithful to what Delphi actually renders, so there's no jarring
# switch when a visitor clicks through.
--------------------------------------------------------------*/

/* Override .hero's 100vh + vertical-centering — this page's content
   is taller than the homepage/boxercise hero, so centering it inside
   a fixed viewport pushed the top of the card up under the sticky
   header. Flow naturally instead.
   The fixed header's own height changes at the lg breakpoint: its
   140px logo is `d-none d-lg-block` (hidden below 992px), so the
   header is ~94px tall on mobile/tablet but ~164px at lg+ once the
   logo shows. Clearance below matches each case with a margin. */
#digital-twin.hero {
	min-height: auto;
	padding: 130px 0 80px;
}

@media (min-width: 992px) {
	#digital-twin.hero {
		padding-top: 190px;
	}
}

.twin-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--nav-font);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--accent-color);
	background: color-mix(in srgb, var(--accent-color), transparent 90%);
	padding: 8px 20px;
	border-radius: 50px;
	margin-bottom: 18px;
}

/* Mobile-first: stacked and centered, no dividers (a border-right
   pattern breaks once items wrap onto their own line). From 576px up
   there's reliably enough width for all three on one line, so it
   switches to a row with hairline dividers between them. */
.twin-stats {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	margin: 32px 0 36px;
	padding-top: 24px;
	border-top: 1px solid color-mix(in srgb, var(--accent-color), transparent 85%);
}

.twin-stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

@media (min-width: 576px) {
	.twin-stats {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		gap: 0;
	}

	.twin-stat {
		align-items: flex-start;
		text-align: left;
		padding: 0 28px;
	}

	.twin-stat:first-child {
		padding-left: 0;
	}

	.twin-stat:not(:last-child) {
		border-right: 1px solid color-mix(in srgb, var(--default-color), transparent 88%);
	}
}

@media (min-width: 992px) {
	.text-lg-start .twin-stats {
		justify-content: flex-start;
	}
}

.twin-stat strong {
	font-family: var(--heading-font);
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--heading-color);
	line-height: 1.2;
}

.twin-stat span {
	font-family: var(--nav-font);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--default-color), transparent 40%);
	margin-top: 4px;
}

.hero .twin-alt-cta {
	margin: 18px 0 0;
	font-size: 0.92rem;
	color: color-mix(in srgb, var(--default-color), transparent 30%);
}

.twin-alt-cta a {
	font-weight: 600;
}

/*----------------------------------
# Card frame — site-branded
----------------------------------*/
.twin-card {
	background: var(--surface-color);
	border-radius: 16px;
	box-shadow: 0px 0 20px rgba(0, 0, 0, 0.1);
	overflow: hidden;
	max-width: 460px;
	margin: 0 auto;
}

.twin-card-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid color-mix(in srgb, var(--default-color), transparent 90%);
}

.twin-card-header .who {
	display: flex;
	align-items: center;
	gap: 10px;
}

.twin-header-avatar {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	object-fit: cover;
}

.twin-card-header .name {
	font-family: var(--heading-font);
	font-weight: 700;
	font-size: 0.95rem;
	color: var(--heading-color);
	display: block;
}

.twin-card-header .status {
	font-size: 0.76rem;
	color: var(--accent-color);
	display: flex;
	align-items: center;
	gap: 5px;
}

.twin-card-header .status::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--accent-color);
}

.twin-card-header .live-badge {
	font-family: var(--nav-font);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--accent-color);
	background: color-mix(in srgb, var(--accent-color), transparent 90%);
	padding: 5px 10px;
	border-radius: 999px;
}

.hero .twin-card .twin-embed-footnote {
	text-align: center;
	font-size: 0.78rem;
	color: color-mix(in srgb, var(--default-color), transparent 45%);
	padding: 12px 0 18px;
	margin: 0;
}

/*----------------------------------
# Chat preview — faithful to Delphi's
# actual UI (do not brand these).
----------------------------------*/
.twin-launch {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 480px;
	padding: 26px 20px 14px;
	background: #f4f5fb;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	transition: background 0.2s ease;
}

.twin-launch:hover {
	background: #eef0fa;
}

.twin-launch:hover .twin-chat-inputbar {
	border-color: color-mix(in srgb, var(--accent-color), transparent 60%);
	box-shadow: 0 4px 14px -6px color-mix(in srgb, var(--accent-color), transparent 60%);
}

.twin-launch:hover .twin-chat-call {
	transform: scale(1.06);
}

.twin-chat-preview {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex: 1;
}

.twin-chat-avatar-row {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}

.twin-chat-avatar {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	object-fit: cover;
	box-shadow: 0 10px 24px -10px rgba(0, 0, 0, 0.35);
}

.twin-chat-name-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #fff;
	border-radius: 999px;
	padding: 8px 16px;
	font-family: var(--nav-font);
	font-weight: 500;
	font-size: 0.9rem;
	color: #444;
	box-shadow: 0 6px 16px -8px rgba(0, 0, 0, 0.25);
}

.twin-chat-name-pill i {
	color: #9298ac;
	font-size: 0.85rem;
}

.twin-chat-bubble-row {
	width: 100%;
	display: flex;
	justify-content: flex-end;
	margin-top: 24px;
}

.twin-chat-bubble {
	background: #e2622f;
	color: #fff;
	font-family: var(--nav-font);
	font-weight: 500;
	font-size: 0.92rem;
	padding: 12px 20px;
	border-radius: 999px;
	max-width: 70%;
}

.twin-chat-suggested {
	width: 100%;
	margin-top: auto;
	padding-top: 24px;
}

.twin-chat-suggested-label {
	display: flex;
	align-items: center;
	gap: 6px;
	font-family: var(--nav-font);
	font-size: 0.8rem;
	color: #9298ac;
	margin-bottom: 10px;
}

.twin-chat-chip {
	background: #eceef6;
	border-radius: 14px;
	padding: 11px 15px;
	font-size: 0.85rem;
	color: #444;
	margin-bottom: 8px;
	transition: background 0.2s ease;
}

.twin-launch:hover .twin-chat-chip {
	background: #e2e5f3;
}

.twin-chat-inputbar {
	display: flex;
	align-items: center;
	gap: 12px;
	background: #fff;
	border: 1px solid #e3e6f3;
	border-radius: 999px;
	padding: 10px 12px 10px 18px;
	margin-top: 16px;
	color: #6b7086;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.twin-chat-cta-text {
	flex: 1;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--nav-font);
	font-weight: 600;
	font-size: 0.92rem;
	color: var(--accent-color);
}

.twin-chat-cta-text i {
	font-size: 0.78rem;
	opacity: 0.75;
}

.twin-chat-call {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #2ecc71;
	color: #fff;
	font-size: 0.85rem;
	transition: transform 0.2s ease;
}

/*----------------------------------
# Responsive
----------------------------------*/
@media (max-width: 991px) {
	.twin-card {
		max-width: 420px;
	}
}

@media (max-width: 480px) {
	.twin-launch {
		min-height: 420px;
	}

	.twin-chat-avatar {
		width: 56px;
		height: 56px;
	}
}
