/* ==========================================================================
   Black Trucking Lawyers — theme styles for Elementor Pro

   Colors, fonts, spacing, and most sizes are set in Elementor (Site Settings
   and each widget), so they stay editable. This file adds only what
   Elementor has no control for, targeted by the CSS classes set on each
   element (Advanced → CSS Classes):

   1 Base + fonts · 2 Header · 3 Buttons · 4 Motion utilities · 5 Hero
   6 About/Stats · 7 Case types (stacking) · 8 Stories · 9 Team · 10 FAQ
   11 Deadline/Map/Forms · 12 Contact · 13 Review · 14 Footer
   15 Fallback header/footer + WordPress pages · 16 Reduced motion
   Breakpoints follow Elementor: mobile ≤767px, tablet ≤1024px.
   ========================================================================== */

/* 1. Base + fonts ----------------------------------------------------------- */

@font-face {
	font-family: "Inter";
	src: url("../fonts/inter-latin-var.woff2") format("woff2");
	font-weight: 400 800;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Manrope";
	src: url("../fonts/manrope-latin-var.woff2") format("woff2");
	font-weight: 400 700;
	font-style: normal;
	font-display: swap;
}

:root {
	--bt-header-h: 88px;
	--bt-purple: var(--e-global-color-primary, #7e32c9);
	--bt-purple-bright: var(--e-global-color-accent, #9d5ce6);
	--bt-ink: var(--e-global-color-secondary, #000811);
	--bt-line: var(--e-global-color-bt_line, #1b2430);
	--bt-muted: var(--e-global-color-bt_muted, #a1a8b3);
	--bt-surface: var(--e-global-color-bt_surface, #13161a);
	--bt-yellow: var(--e-global-color-bt_yellow, #eacc00);
	--bt-arrow-grey: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 17 17 7M9 7h8v8' fill='none' stroke='%233A3A3A' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	--bt-circle-dark: #fff; /* arrow circle on the yellow buttons */
	--bt-arrow-black: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	--bt-ease: cubic-bezier(0.44, 0, 0.56, 1);
	--bt-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--bt-gutter: clamp(1.25rem, 0.5rem + 3.5vw, 2.5rem);
	--bt-arrow-white: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 17 17 7M9 7h8v8' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: #000;
	color: #fff;
	font-family: Manrope, "Helvetica Neue", Arial, sans-serif;
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: clip;
}

h1, h2, h3, h4, h5, h6 {
	font-family: Inter, "Helvetica Neue", Arial, sans-serif;
	letter-spacing: -0.02em;
}

::selection {
	background: var(--bt-purple);
	color: #fff;
}

:focus-visible {
	outline: 2px solid var(--bt-purple-bright);
	outline-offset: 3px;
}

[id] {
	scroll-margin-top: calc(var(--bt-header-h) + 1rem);
}

img,
video {
	max-width: 100%;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.bt-skip-link:focus {
	clip: auto;
	width: auto;
	height: auto;
	top: 8px;
	left: 8px;
	z-index: 1000;
	padding: 10px 16px;
	background: #fff;
	color: #000;
	border-radius: 6px;
}

/* Text Editor paragraphs: no trailing gap inside widgets. */
.elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}

.elementor-widget-text-editor p {
	margin-top: 0;
}

.bt-accent {
	color: var(--bt-purple);
}

/* 2. Header ----------------------------------------------------------------- */

.bt-header-shell {
	position: fixed;
	top: var(--wp-admin--admin-bar--height, 0px);
	left: 0;
	right: 0;
	z-index: 100;
	border-bottom: 1px solid transparent;
	transition:
		background-color 0.4s var(--bt-ease),
		border-color 0.4s var(--bt-ease),
		transform 0.45s var(--bt-ease-out);
}

.bt-header-shell.is-scrolled {
	background-color: rgba(0, 0, 0, 0.72);
	border-bottom-color: rgba(255, 255, 255, 0.06);
	-webkit-backdrop-filter: blur(16px) saturate(140%);
	backdrop-filter: blur(16px) saturate(140%);
}

.bt-header-shell.is-hidden {
	transform: translateY(-100%);
}

/* Until JS runs, keep the Elementor header out of the page flow too. */
.elementor-location-header {
	position: fixed;
	top: var(--wp-admin--admin-bar--height, 0px);
	left: 0;
	right: 0;
	z-index: 100;
}

.elementor-editor-active .elementor-location-header,
.elementor-editor-active .bt-header-shell {
	position: relative;
	top: auto;
	transform: none;
}

.bt-header {
	transition: padding 0.35s var(--bt-ease);
}

.is-scrolled .bt-header {
	--padding-top: 8px;
	--padding-bottom: 8px;
}

.bt-logo img {
	display: block;
	height: auto;
	transition: opacity 0.3s var(--bt-ease);
}

.bt-logo a:hover img,
a.bt-logo:hover img {
	opacity: 0.85;
}

/* Nav Menu widget: purple underline on hover (set in the widget's Pointer
   options) and a menu item only for the mobile dropdown. */
.bt-nav .elementor-nav-menu--main .bt-mobile-only {
	display: none;
}

.bt-nav .elementor-nav-menu--main .elementor-item {
	opacity: 0.88;
	transition: opacity 0.25s var(--bt-ease);
}

.bt-nav .elementor-nav-menu--main .elementor-item:hover,
.bt-nav .elementor-nav-menu--main .elementor-item:focus-visible {
	opacity: 1;
}

.bt-nav .elementor-nav-menu--dropdown {
	padding: 1rem var(--bt-gutter) 1.5rem;
	background: #000;
	border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.bt-nav .elementor-nav-menu--dropdown .elementor-item {
	padding-block: 14px !important;
	font-family: Inter, sans-serif;
	font-size: 26px;
	font-weight: 700;
	letter-spacing: -0.03em;
}

@media (max-width: 420px) {
	.bt-header__cta .elementor-button {
		padding: 9px 14px;
		font-size: 13px;
	}
}

@media (max-width: 359px) {
	.bt-header__cta {
		display: none;
	}
}

/* 3. Buttons ---------------------------------------------------------------- */

.elementor-button {
	transition:
		background-color 0.3s var(--bt-ease),
		color 0.3s var(--bt-ease),
		transform 0.3s var(--bt-ease-out),
		box-shadow 0.3s var(--bt-ease) !important;
}

.elementor-button:active {
	transform: scale(0.97);
}

/* Pill + purple circular arrow. Colors come from the Button widget. */
.bt-btn-arrow .elementor-button,
.bt-pill--arrow {
	white-space: nowrap;
	display: inline-flex;
	align-items: center;
	gap: 0.9rem;
	padding: 5px 5px 5px 20px;
	line-height: 1.2;
}

/* Never squeeze an arrow button in a flex row; the heading beside it wraps instead. */
.e-con > .elementor-widget.bt-btn-arrow,
.e-con > .e-con-inner > .elementor-widget.bt-btn-arrow {
	flex-shrink: 0;
}

.bt-btn-arrow .elementor-button::after,
.bt-pill--arrow::after {
	content: "";
	flex: none;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--bt-purple) var(--bt-arrow-white) center / 14px no-repeat;
	transition:
		transform 0.5s var(--bt-ease-out),
		background-color 0.3s var(--bt-ease);
}

.bt-btn-arrow .elementor-button:hover,
.bt-pill--arrow:hover {
	box-shadow: 0 10px 30px -10px rgba(157, 92, 230, 0.55);
}

.bt-btn-arrow .elementor-button:hover::after,
.bt-pill--arrow:hover::after {
	transform: rotate(45deg);
	background-color: var(--bt-purple-bright);
}

.bt-btn-ghost .elementor-button {
	border: 1px solid rgba(255, 255, 255, 0.08);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

/* Plain links styled as pills (fallback templates, 404). */
.bt-pill {
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
}

.bt-pill--arrow {
	background: #fff;
	color: #000;
}

.bt-pill--ghost {
	padding: 12px 20px;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
}

/* 4. Motion utilities (driven by theme.js) ---------------------------------- */

/* Above-the-fold fade-up that needs no JavaScript to start (used in heroes
   instead of Elementor entrance animations, so key content never waits). */
.bt-delay-1 { --bt-delay: 1; }
.bt-delay-2 { --bt-delay: 2; }
.bt-delay-3 { --bt-delay: 3; }
.bt-delay-4 { --bt-delay: 4; }

.bt-fade-up {
	animation: bt-fade-up 0.8s var(--bt-ease-out) both;
	animation-delay: calc(0.35s + var(--bt-delay, 0) * 140ms);
}

@keyframes bt-fade-up {
	from {
		opacity: 0;
		transform: translate3d(0, 20px, 0);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

.elementor-editor-active .bt-fade-up {
	animation: none;
}

/* Headline words blur in. */
.bt-split .bt-word {
	display: inline-block;
	white-space: pre;
}

.bt-js .bt-split.is-split .bt-word {
	opacity: 0;
	filter: blur(6px);
	transform: scale(1.4);
	transform-origin: 50% 70%;
	transition:
		opacity 0.6s var(--bt-ease),
		filter 0.8s var(--bt-ease),
		transform 0.9s var(--bt-ease-out);
	transition-delay: calc(var(--bt-i, 0) * 70ms + 150ms);
}

.bt-js .bt-split.is-inview .bt-word {
	opacity: 1;
	filter: blur(0);
	transform: none;
}

/* Stars flip in. */
.bt-stars p {
	font-size: 20px;
	line-height: 1;
	letter-spacing: 0.12em;
	perspective: 400px;
}

.bt-stars--gold p {
	font-size: 24px;
}

.bt-stars .bt-star {
	display: inline-block;
}

.bt-js .bt-stars.is-split .bt-star {
	opacity: 0;
	transform: rotateY(90deg);
	transition:
		opacity 0.4s var(--bt-ease),
		transform 0.7s var(--bt-ease-out);
	transition-delay: calc(var(--bt-i, 0) * 90ms + 900ms);
}

.bt-js .bt-stars.is-inview .bt-star {
	opacity: 1;
	transform: none;
}

/* Words light up with scroll. */
.bt-scroll-reveal .bt-word {
	transition: opacity 0.35s linear;
}

.bt-js .bt-scroll-reveal.is-split .bt-word {
	opacity: 0.14;
}

.bt-js .bt-scroll-reveal.is-split .bt-word.is-lit {
	opacity: 1;
}

/* Small uppercase label above headings. */
.bt-eyebrow p,
p.bt-eyebrow {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 5px;
}

.bt-eyebrow--plain p {
	text-decoration: none;
	letter-spacing: 0.04em;
}

/* Sticks below the header while its column scrolls. Elementor containers
   set position through --position, so override the variable as well. */
.bt-sticky,
.e-con.bt-sticky {
	--position: sticky;
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--bt-header-h) + 2rem);
	align-self: flex-start;
}

@media (max-width: 767px) {
	.bt-sticky,
	.e-con.bt-sticky {
		--position: static;
		position: static;
	}
}

/* 5. Hero ------------------------------------------------------------------- */

.bt-hero {
	min-height: 100svh !important;
	background-color: #000;
}

.bt-hero__lead p {
	font-size: 15px;
	line-height: 1.6;
	opacity: 0.86;
}

.bt-rating__text p {
	font-size: 14px;
	opacity: 0.86;
}

/* Parallax: theme.js sets --bt-parallax as the page scrolls. */
.bt-hero .elementor-background-video-container,
.bt-hero > .e-con-inner > :not(.elementor-background-video-container) {
	translate: 0 var(--bt-parallax, 0px);
	will-change: translate;
}

.bt-no-hero-video .bt-hero .elementor-background-video-container {
	display: none;
}

/* Hero actions + trust indicators. */
.bt-hero__actions {
	gap: 12px;
}

.bt-btn-ghost--lg .elementor-button {
	border: 1px solid rgba(255, 255, 255, 0.14);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	white-space: nowrap;
}

.bt-trust--hero {
	max-width: 860px;
}

.bt-trust--hero .bt-stat {
	--padding-top: 18px;
	padding-top: 18px !important;
	border-top-color: rgba(157, 92, 230, 0.7) !important;
}

/* Text counters (bt-count). Size is set here so one class styles every counter. */
.bt-count p {
	font-family: Manrope, sans-serif;
	font-size: clamp(40px, 1.8rem + 1.6vw, 52px);
	font-weight: 500;
	line-height: 1;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
}

.bt-count__title p {
	font-size: 14px;
	opacity: 0.78;
}

.bt-trust--hero .bt-count p {
	font-size: clamp(30px, 1.6rem + 1.2vw, 40px);
}

.bt-trust__label p {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

@media (max-width: 767px) {
	.bt-trust--hero {
		grid-template-columns: 1fr !important;
	}

	.bt-hero__actions .elementor-widget,
	.bt-hero__actions .elementor-button {
		width: 100%;
		justify-content: space-between;
	}

	.bt-btn-ghost--lg .elementor-button {
		justify-content: center;
	}
}

/* Statement ("Representation That Understands What's at Stake"). */
.bt-statement-section .elementor-heading-title {
	text-wrap: balance;
}

.bt-statement p {
	line-height: 1.45;
	text-wrap: pretty;
}

.bt-cta__serves p {
	font-size: 13px;
	opacity: 0.8;
}

/* 6. About + Stats ------------------------------------------------------------ */

.bt-about__media img {
	width: 100%;
	aspect-ratio: 5 / 3;
	object-fit: cover;
	display: block;
}

.bt-counter .elementor-counter {
	display: flex;
	flex-direction: column-reverse;
	align-items: flex-start;
	gap: 12px;
}

.bt-counter .elementor-counter-number-wrapper {
	justify-content: flex-start;
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.02em;
}

.bt-counter .elementor-counter-title {
	justify-content: flex-start;
	text-align: left;
}

/* 7. Case types: stacking cards ---------------------------------------------- */

.bt-case__num p {
	font-size: 14px;
	color: var(--bt-muted);
	font-variant-numeric: tabular-nums;
	margin-top: 6px;
	transition: color 0.3s var(--bt-ease);
}

.bt-case__text p {
	max-width: 30rem;
	font-size: 14px;
	line-height: 1.6;
}

.bt-case__media {
	overflow: hidden;
	border-radius: 10px;
}

.bt-case__media img {
	display: block;
	width: 100%;
	aspect-ratio: 17 / 10;
	object-fit: cover;
	filter: saturate(0.9);
	transition:
		transform 1.1s var(--bt-ease-out),
		filter 0.6s var(--bt-ease);
}

.bt-case:hover .bt-case__media img {
	transform: scale(1.05);
	filter: saturate(1.05);
}

.bt-case:hover .bt-case__num p {
	color: var(--bt-purple-bright);
}

/* Every screen size: each card sticks a step lower than the one before, so
   the pile finishes lined up like a list. theme.js measures the step and
   sets margins so every card releases together. */
@media all {
	.bt-cases.is-stacking {
		--bt-stack-top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--bt-header-h) + 2rem);
	}

	.bt-cases.is-stacking .bt-sticky {
		top: var(--bt-stack-top);
	}

	.bt-cases.is-stacking .bt-case {
		--position: sticky;
		position: sticky;
		top: calc(var(--bt-stack-top) + var(--bt-stack-offset, calc(var(--bt-stack-i, 0) * 72px)));
	}

	/* Slimmer headline strips so all nine cards keep a real image. */
	.e-con.bt-cases.is-stacking .bt-case {
		--padding-top: 12px;
		padding-top: 12px !important;
	}

	.bt-cases.is-stacking .bt-case__media img {
		aspect-ratio: 2 / 1;
		/* Set per card by theme.js so the image is never cut off by the screen. */
		max-height: var(--bt-case-media-max, none);
	}

	.bt-cases.is-stacking .bt-cases__list {
		padding-bottom: 12vh !important;
	}
}

/* 8. Client story videos: hover to expand ------------------------------------ */

.bt-story {
	position: relative;
	overflow: hidden;
	border-radius: 16px;
	background: var(--bt-surface);
	isolation: isolate;
}

.bt-story .elementor-wrapper {
	height: 100%;
	aspect-ratio: auto !important;
	--video-aspect-ratio: auto;
}

.bt-story video,
.bt-story .elementor-custom-embed-image-overlay {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	background-size: cover !important;
	background-position: center !important;
}

.bt-story .elementor-custom-embed-image-overlay {
	transition: transform 1.1s var(--bt-ease-out);
}

/* Purple play button, bottom right. */
.bt-story .elementor-custom-embed-play {
	top: auto !important;
	left: auto !important;
	right: 20px;
	bottom: 20px;
	transform: none !important;
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border-radius: 100px;
	background: var(--bt-purple);
	transition:
		transform 0.5s var(--bt-ease-out),
		opacity 0.4s var(--bt-ease),
		background-color 0.3s var(--bt-ease);
}

.bt-story .elementor-custom-embed-play svg,
.bt-story .elementor-custom-embed-play i {
	width: 24px !important;
	height: 24px !important;
	font-size: 24px !important;
	fill: #fff;
	color: #fff;
	margin-left: 3px;
	filter: none !important;
	opacity: 1 !important;
}

.bt-story:hover .elementor-custom-embed-play {
	background: var(--bt-purple-bright);
}

/* Phones: swipeable row of portrait cards. Selectors include Elementor's own
   classes because its container CSS loads after this file. */
.e-con.bt-stories__track {
	display: flex !important;
	--flex-direction: row;
	--flex-wrap: nowrap;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}

.e-con.bt-stories__track::-webkit-scrollbar {
	display: none;
}

.e-con.bt-stories__track > .elementor-widget.bt-story {
	flex: 0 0 72%;
	width: auto;
	aspect-ratio: 5 / 8;
	scroll-snap-align: start;
}

@media (min-width: 768px) and (max-width: 1024px) {
	.e-con.bt-stories__track > .elementor-widget.bt-story {
		flex-basis: 40%;
	}
}

/* Desktop with a mouse: horizontal accordion like the Framer design. */
@media (min-width: 1025px) and (hover: hover) and (pointer: fine) {
	.e-con.bt-stories__track {
		--height: clamp(22rem, 52vh, 28rem);
		height: clamp(22rem, 52vh, 28rem);
		overflow: visible;
	}

	.e-con.bt-stories__track > .elementor-widget.bt-story {
		flex: 1 1 0;
		min-width: 0;
		aspect-ratio: auto;
		height: 100%;
		transition: flex-grow 0.7s var(--bt-ease-out);
	}

	.e-con.bt-stories__track > .elementor-widget.bt-story:hover,
	.e-con.bt-stories__track > .elementor-widget.bt-story:focus-within,
	.e-con.bt-stories__track.has-playing > .elementor-widget.bt-story.is-playing {
		flex-grow: 3.5;
	}

	.e-con.bt-stories__track.has-playing:not(:hover) > .elementor-widget.bt-story:not(.is-playing) {
		flex-grow: 1;
	}

	.bt-stories__track .bt-story .elementor-custom-embed-play {
		opacity: 0;
		transform: scale(0.6) !important;
	}

	.bt-stories__track .bt-story:hover .elementor-custom-embed-play,
	.bt-stories__track .bt-story:focus-within .elementor-custom-embed-play {
		opacity: 1;
		transform: none !important;
		transition-delay: 0.2s;
	}

	.bt-stories__track .bt-story:hover .elementor-custom-embed-image-overlay {
		transform: scale(1.03);
	}
}

/* Focal point for portrait-cropped story cards (class bt-focus-NN = NN% from left). */
.bt-focus-30 video, .bt-focus-30 .elementor-custom-embed-image-overlay { object-position: 30% 50% !important; background-position: 30% 50% !important; }
.bt-focus-40 video, .bt-focus-40 .elementor-custom-embed-image-overlay { object-position: 40% 50% !important; background-position: 40% 50% !important; }
.bt-focus-50 video, .bt-focus-50 .elementor-custom-embed-image-overlay { object-position: 50% 50% !important; background-position: 50% 50% !important; }
.bt-focus-60 video, .bt-focus-60 .elementor-custom-embed-image-overlay { object-position: 60% 50% !important; background-position: 60% 50% !important; }
.bt-focus-70 video, .bt-focus-70 .elementor-custom-embed-image-overlay { object-position: 70% 50% !important; background-position: 70% 50% !important; }

/* Results page: every story in a grid of portrait cards (play button always shown). */
.e-con.bt-stories__grid > .elementor-widget.bt-story {
	aspect-ratio: 5 / 8;
	width: 100%;
	min-width: 0;
}

.bt-stories__disclosure p {
	max-width: 760px;
	font-size: 12px;
	line-height: 1.6;
	font-style: italic;
}

/* "Watch … Story" button on attorney bios. */
.bt-btn-video .elementor-button {
	border: 1px solid rgba(255, 255, 255, 0.14);
	white-space: nowrap;
}

.bt-btn-video .elementor-button-icon {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--bt-purple);
	transition: transform 0.4s var(--bt-ease-out), background-color 0.3s var(--bt-ease);
}

.bt-btn-video .elementor-button-icon svg {
	width: 11px;
	height: 11px;
	fill: #fff;
	margin-left: 2px;
}

.bt-btn-video .elementor-button:hover .elementor-button-icon {
	transform: scale(1.08);
	background: var(--bt-purple-bright);
}

/* Video pop-up player. */
.bt-video-modal {
	width: min(92vw, 1100px);
	max-width: none;
	max-height: none;
	padding: 0;
	border: 0;
	border-radius: 16px;
	background: #000;
	color: #fff;
	overflow: visible;
	box-shadow: 0 40px 120px -20px rgba(0, 0, 0, 0.9);
}

.bt-video-modal::backdrop {
	background: rgba(0, 0, 0, 0.82);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.bt-video-modal[open] {
	animation: bt-modal-in 0.4s var(--bt-ease-out);
}

@keyframes bt-modal-in {
	from { opacity: 0; transform: scale(0.96); }
	to { opacity: 1; transform: none; }
}

.bt-video-modal__frame {
	overflow: hidden;
	border-radius: 16px;
}

.bt-video-modal video {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #000;
}

.bt-video-modal__close {
	position: absolute;
	top: -52px;
	right: 0;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	cursor: pointer;
	transition: background-color 0.25s var(--bt-ease);
}

.bt-video-modal__close:hover,
.bt-video-modal__close:focus-visible {
	background: var(--bt-purple);
}

html.bt-modal-open {
	overflow: hidden;
}

/* 9. Team: sticky cross-fading portrait -------------------------------------- */

.bt-member {
	padding-bottom: clamp(3rem, 8vw, 4.5rem);
}

.bt-member__photo {
	overflow: hidden;
	border-radius: 12px;
}

.bt-member__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.bt-member__role p {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.bt-member__bio p {
	font-family: Inter, sans-serif;
	font-size: clamp(16px, 0.95rem + 0.3vw, 18px);
	line-height: 1.6;
}

@media (min-width: 768px) {
	/* Without JS (and on tablets): alternating two-column rows. */
	.bt-member {
		--flex-direction: row !important;
		flex-direction: row !important;
		align-items: center;
		gap: clamp(2.5rem, 6vw, 5rem) !important;
	}

	.bt-member > * {
		flex: 1 1 0;
	}

	.bt-member__photo {
		order: 2;
	}
}

@media (min-width: 1025px) {
	/* Enhanced by theme.js: bios scroll past one sticky portrait. */
	.bt-team__list.is-enhanced {
		display: grid !important;
		grid-template-columns: 1fr minmax(0, 28rem);
		column-gap: clamp(3rem, 9vw, 9rem);
	}

	/* Even breathing room above and below every bio, so a long bio never
	   runs into the next attorney's name. */
	.bt-team__list.is-enhanced > .bt-member {
		grid-column: 1;
		min-height: 78vh;
		padding-block: clamp(48px, 7vh, 80px) !important;
	}

	.bt-team__list.is-enhanced .bt-member__photo {
		display: none;
	}

	.bt-team__list.is-enhanced .bt-member__body {
		opacity: 0.3;
		transition: opacity 0.6s var(--bt-ease);
	}

	.bt-team__list.is-enhanced .bt-member.is-active .bt-member__body {
		opacity: 1;
	}

	.bt-team__stage {
		grid-column: 2;
	}

	.bt-team__stage-inner {
		position: sticky;
		top: calc(50vh - min(18.75rem, 36vh) + var(--bt-header-h) / 2);
		aspect-ratio: 3 / 4;
		max-height: 72vh;
		margin-inline: auto;
		overflow: hidden;
		border-radius: 12px;
		background: var(--bt-surface);
	}

	.bt-team__list .bt-team__stage-inner img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		opacity: 0;
		transform: scale(1.06);
		transition:
			opacity 0.7s var(--bt-ease),
			transform 1.2s var(--bt-ease-out);
	}

	.bt-team__list .bt-team__stage-inner img.is-active {
		opacity: 1;
		transform: none;
	}
}

/* 10. FAQ (Toggle widget) ----------------------------------------------------- */

.bt-faq .elementor-toggle-item {
	border-bottom: 1px solid #e6e6e6;
	margin: 0 !important;
}

.bt-faq .elementor-tab-title {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	border: 0 !important;
	cursor: pointer;
}

.bt-faq .elementor-toggle-title {
	order: 1;
	transition: color 0.25s var(--bt-ease);
}

.bt-faq .elementor-toggle-icon {
	order: 2;
	flex: none;
	display: grid !important;
	place-items: center;
	width: 32px !important;
	height: 32px;
	margin: 0 !important;
	border-radius: 50%;
	background: #efe6fa;
	color: var(--bt-purple);
	line-height: 0;
	transition:
		transform 0.45s var(--bt-ease-out),
		background-color 0.3s var(--bt-ease);
}

.bt-faq .elementor-toggle-icon {
	position: relative;
}

.bt-faq .elementor-toggle-icon > span {
	position: absolute !important;
	inset: 0;
	display: grid !important;
	place-items: center;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 0;
}

.bt-faq .elementor-tab-title.elementor-active .elementor-toggle-icon-opened {
	display: none !important;
}

.bt-faq .elementor-toggle-icon svg,
.bt-faq .elementor-toggle-icon i {
	display: block;
	width: 12px;
	height: 12px;
	margin: 0 !important;
	fill: var(--bt-purple) !important;
	color: var(--bt-purple) !important;
}

.bt-faq .elementor-tab-title.elementor-active .elementor-toggle-icon {
	transform: rotate(135deg);
	background: #e2d2f5;
}

.bt-faq .elementor-tab-title.elementor-active .elementor-toggle-icon-closed {
	display: grid !important; /* stay centred in the circle when open */
}

.bt-faq .elementor-tab-title.elementor-active .elementor-toggle-icon-opened {
	display: none !important;
}

.bt-faq .elementor-tab-title:hover .elementor-toggle-title {
	color: var(--bt-purple) !important;
}

.bt-faq .elementor-tab-content {
	border: 0 !important;
	max-width: 62ch;
}

/* 11. Deadline panel, map, forms --------------------------------------------- */

.bt-map {
	position: relative;
	margin: 12px 0 0;
	padding: 12px;
	border-radius: 20px;
	border: 1px solid rgba(120, 128, 126, 0.24);
	background: radial-gradient(ellipse at 50% 40%, rgba(38, 40, 44, 0.8) 0%, #141518 55%, #0c0d0f 100%);
	color: #d8ddd9;
}

.bt-map__label {
	position: absolute;
	top: 22px;
	left: 26px;
	z-index: 2;
	margin: 0;
	font-family: "SF Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #93a098;
	opacity: 0.85;
	pointer-events: none;
}

.bt-map__canvas {
	position: relative;
}

.bt-map__svg {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 8px;
	background: #111417;
	color: #d8ddd9;
}

.bt-map__state {
	fill: #2b2e33;
	stroke: #111417;
	stroke-width: 0.8;
	stroke-linejoin: round;
	transition: fill 0.25s var(--bt-ease);
}

.bt-map__state:hover {
	fill: #373b41;
}

.bt-map__state--served {
	fill: #3a2a4f;
}

.bt-map__state--served:hover {
	fill: #4a3466;
}

.bt-map__dot {
	fill: var(--bt-purple-bright);
	stroke: #fff;
	stroke-width: 1.5;
}

.bt-map__pulse {
	fill: none;
	stroke: var(--bt-purple-bright);
	stroke-width: 2;
	transform-box: fill-box;
	transform-origin: center;
	animation: bt-pulse 2.6s var(--bt-ease-out) infinite;
}

.bt-map__pulse {
	animation-delay: var(--bt-pin-delay, 0s);
}

.bt-map__pulse--late {
	animation-delay: calc(var(--bt-pin-delay, 0s) + 1.3s);
}

@keyframes bt-pulse {
	0% { transform: scale(0.6); opacity: 0.9; }
	100% { transform: scale(4); opacity: 0; }
}

.bt-map__pin-label {
	position: absolute;
	left: var(--bt-pin-x, 73%);
	top: var(--bt-pin-y, 66%);
	transform: translate(-100%, -50%) translateX(-18px);
	padding: 4px 8px;
	border-radius: 6px;
	border: 1px solid rgba(157, 92, 230, 0.45);
	background: rgba(8, 8, 12, 0.75);
	font-family: "SF Mono", ui-monospace, Menlo, monospace;
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	white-space: nowrap;
	color: #e9e3f5;
	pointer-events: none;
}

/* BT Consultation Form widget. */
.bt-cform__form {
	margin: 0;
}

.bt-cform__hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.bt-cform__grid {
	display: grid;
	gap: 22px;
}

.bt-cform__field {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
}

.bt-cform label {
	font-size: 14px;
	font-weight: 500;
	color: #fff;
}

.bt-cform__optional {
	color: var(--bt-muted);
	font-weight: 400;
}

.bt-cform input,
.bt-cform select,
.bt-cform textarea {
	width: 100%;
	margin: 0;
	font: inherit;
	font-size: 15px;
	color: #fff;
	-webkit-appearance: none;
	appearance: none;
	transition:
		border-color 0.25s var(--bt-ease),
		box-shadow 0.25s var(--bt-ease),
		background-color 0.25s var(--bt-ease);
}

.bt-cform input::placeholder,
.bt-cform textarea::placeholder {
	color: rgba(255, 255, 255, 0.4);
}

.bt-cform textarea {
	min-height: 7rem;
	resize: vertical;
}

.bt-cform input:focus,
.bt-cform select:focus,
.bt-cform textarea:focus {
	outline: none;
}

.bt-cform .is-invalid input,
.bt-cform .is-invalid textarea {
	border-color: #ff6b6b !important;
}

/* Underlined fields (dark sections). */
.bt-cform--underline label {
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bt-muted);
}

.bt-cform--underline .bt-cform__optional {
	text-transform: none;
	letter-spacing: 0;
}

.bt-cform--underline input,
.bt-cform--underline textarea {
	padding: 6px 0 12px;
	border: 0;
	border-bottom: 1px solid var(--bt-line);
	border-radius: 0;
	background: transparent;
}

.bt-cform--underline input:focus,
.bt-cform--underline textarea:focus {
	border-bottom-color: var(--bt-purple-bright);
	box-shadow: 0 1px 0 0 var(--bt-purple-bright);
}

/* Filled fields (card). */
@media (min-width: 600px) {
	.bt-cform--card .bt-cform__grid {
		grid-template-columns: 1fr 1fr;
		gap: 20px 16px;
	}

	.bt-cform--card .bt-cform__field--full {
		grid-column: 1 / -1;
	}
}

.bt-cform--card input,
.bt-cform--card select,
.bt-cform--card textarea {
	padding: 12px 14px;
	border: 1px solid transparent;
	border-radius: 8px;
	background: #262626;
}

.bt-cform--card input:focus,
.bt-cform--card select:focus,
.bt-cform--card textarea:focus {
	border-color: var(--bt-purple-bright);
	box-shadow: 0 0 0 4px rgba(157, 92, 230, 0.2);
	background: #2b2b2b;
}

.bt-cform__select {
	position: relative;
	display: block;
}

.bt-cform__select::after {
	content: "";
	position: absolute;
	right: 15px;
	top: 50%;
	width: 7px;
	height: 7px;
	border-right: 1.5px solid var(--bt-muted);
	border-bottom: 1.5px solid var(--bt-muted);
	transform: translateY(-70%) rotate(45deg);
	pointer-events: none;
}

.bt-cform select {
	padding-right: 36px;
	cursor: pointer;
}

.bt-cform select option {
	color: #000;
}

.bt-cform__submit {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	min-height: 46px;
	margin-top: 28px;
	padding: 6px 52px;
	border: 0;
	border-radius: 999px;
	background: #fff;
	color: #000;
	font: inherit;
	font-size: 15px;
	font-weight: 500;
	cursor: pointer;
	transition:
		transform 0.3s var(--bt-ease-out),
		box-shadow 0.3s var(--bt-ease);
}

.bt-cform__submit:hover {
	box-shadow: 0 12px 34px -12px rgba(157, 92, 230, 0.6);
}

.bt-cform__submit:active {
	transform: scale(0.985);
}

.bt-cform__submit-icon {
	position: absolute;
	right: 5px;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #000;
	color: #fff;
	transition: transform 0.5s var(--bt-ease-out);
}

.bt-cform--underline .bt-cform__submit {
	border-radius: 4px;
}

.bt-cform--underline .bt-cform__submit-icon {
	position: static;
	width: auto;
	height: auto;
	background: none;
	color: #000;
}

.bt-cform__submit:hover .bt-cform__submit-icon {
	transform: rotate(45deg);
}

.bt-cform__submit.is-loading {
	pointer-events: none;
	color: transparent;
}

.bt-cform__submit.is-loading .bt-cform__submit-icon {
	opacity: 0;
}

.bt-cform__submit.is-loading::after {
	content: "";
	position: absolute;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 2px solid rgba(0, 0, 0, 0.2);
	border-top-color: #000;
	animation: bt-spin 0.7s linear infinite;
}

@keyframes bt-spin {
	to { transform: rotate(360deg); }
}

.bt-cform__note {
	margin: 14px 0 0;
	font-size: 12px;
	color: var(--bt-muted);
}

.bt-cform__notice {
	margin: 0 0 20px;
	padding: 12px 14px;
	border-radius: 10px;
	font-size: 14px;
	line-height: 1.5;
}

.bt-cform__notice--success {
	border: 1px solid rgba(74, 222, 128, 0.35);
	background: rgba(74, 222, 128, 0.1);
	color: #c7f5d6;
}

.bt-cform__notice--error {
	border: 1px solid rgba(255, 107, 107, 0.4);
	background: rgba(255, 107, 107, 0.1);
	color: #ffd1d1;
}

/* 12. Contact hero ------------------------------------------------------------- */

.bt-form-card {
	box-shadow: 0 40px 100px -40px rgba(126, 50, 201, 0.35);
}

.bt-contact-hero__text {
	max-width: 23rem;
}

.bt-contact-list .elementor-icon-list-text {
	background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
	transition: background-size 0.4s var(--bt-ease-out), color 0.25s var(--bt-ease);
}

.bt-contact-list a:hover .elementor-icon-list-text {
	background-size: 100% 1px;
}

/* 13. Review --------------------------------------------------------------------- */

.bt-review__quote p {
	text-wrap: balance;
}

/* 14. Footer ---------------------------------------------------------------------- */

.bt-footer__about p {
	max-width: 19rem;
	font-size: 14px;
}

.bt-footer__legal p {
	font-size: 13px;
	opacity: 0.82;
}

.bt-footer__legal a {
	color: inherit;
	text-decoration: none;
}

.bt-footer__legal a:hover {
	color: var(--bt-purple-bright);
}

.bt-footer__heading .elementor-heading-title {
	font-size: 16px !important;
	letter-spacing: 0;
}

.bt-footer__nav .elementor-icon-list-item a {
	transition: transform 0.35s var(--bt-ease-out);
}

.bt-footer__nav .elementor-icon-list-item a:hover {
	transform: translateX(3px);
}

@media (min-width: 768px) {
	.bt-footer__links {
		align-items: flex-end !important;
	}

	.bt-footer__links > * {
		min-width: 10rem;
	}
}

/* 14b. Interior pages -------------------------------------------------------------- */

.bt-page-hero .bt-eyebrow p {
	color: rgba(255, 255, 255, 0.78);
}

.bt-prose-block p + p {
	margin-top: 1em;
}

.bt-prose-block p {
	font-size: 16px;
	line-height: 1.7;
	opacity: 0.88;
}

.bt-split-section__media img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
}

/* Feature / cause cards. */
.bt-feature {
	transition:
		border-color 0.35s var(--bt-ease),
		transform 0.5s var(--bt-ease-out),
		background-color 0.35s var(--bt-ease);
}

.bt-feature:hover {
	border-color: rgba(157, 92, 230, 0.55) !important;
	transform: translateY(-4px);
}

.bt-card-num p {
	font-size: 13px;
	letter-spacing: 0.08em;
	font-variant-numeric: tabular-nums;
}

.bt-card-title .elementor-heading-title {
	font-size: 20px !important;
}

.bt-card-text p {
	font-size: 14px;
	line-height: 1.65;
}

/* Checklist (who can be liable): check centered in a purple circle.
   Elementor pads icon-list icons on one side, so clear that first. */
.bt-check-list .elementor-icon-list-icon {
	display: flex !important;
	align-items: center;
	justify-content: center;
	flex: 0 0 26px;
	width: 26px !important;
	height: 26px;
	padding: 0 !important;
	margin: 0 !important;
	border-radius: 50%;
	background: rgba(126, 50, 201, 0.16);
	text-align: center;
	top: 0 !important;
}

.bt-check-list .elementor-icon-list-icon svg,
.bt-check-list .elementor-icon-list-icon i {
	display: block;
	width: 12px !important;
	height: 12px !important;
	margin: 0 !important;
	font-size: 12px !important;
	line-height: 1;
}

/* Text 2pt smaller; each check is centred on the first line of its text. */
.bt-check-list .elementor-icon-list-item {
	align-items: flex-start !important;
}

.bt-check-list .elementor-icon-list-text {
	font-size: 14px !important;
	line-height: 26px !important;
	align-self: flex-start;
}

/* Steps. */
.bt-step__num p {
	font-size: 14px !important;
	letter-spacing: 0.08em;
}

/* Related practice areas. */
.bt-related__media {
	overflow: hidden;
	border-radius: 10px;
}

.bt-related__media img,
.bt-pa-card__media img {
	display: block;
	width: 100%;
	object-fit: cover;
	transition: transform 1s var(--bt-ease-out);
}

.bt-related__media img {
	aspect-ratio: 4 / 3;
}

.bt-related__title .elementor-heading-title {
	font-size: 17px !important;
	line-height: 1.3;
}

.bt-related__title a,
.bt-case__title a,
.bt-pa-card .elementor-heading-title a {
	color: inherit;
	transition: color 0.25s var(--bt-ease);
}

.bt-related__card:hover img,
.bt-pa-card:hover .bt-pa-card__media img {
	transform: scale(1.05);
}

.bt-related__card:hover .bt-related__title a,
.bt-case__title a:hover,
.bt-pa-card:hover .elementor-heading-title a {
	color: var(--bt-purple-bright);
}

/* Practice Areas overview cards. */
.bt-pa-card {
	transition: border-color 0.35s var(--bt-ease);
}

.bt-pa-card:hover {
	border-color: rgba(157, 92, 230, 0.55) !important;
}

/* Keep "Learn more" aligned along the bottom of every card in a row. */
.e-con.bt-pa-card > .bt-text-link {
	margin-top: auto;
}

.bt-pa-card__media {
	overflow: hidden;
	border-radius: 10px;
}

.bt-pa-card__media img {
	aspect-ratio: 16 / 10;
}

.bt-text-link .elementor-button {
	padding: 0 !important;
	transition: color 0.25s var(--bt-ease), gap 0.35s var(--bt-ease-out) !important;
}

.bt-text-link .elementor-button-content-wrapper {
	gap: 8px;
}

.bt-text-link .elementor-button:hover .elementor-button-icon {
	transform: translateX(4px);
}

.bt-text-link .elementor-button-icon {
	transition: transform 0.35s var(--bt-ease-out);
}

/* Results. */
.bt-result__amount p {
	font-variant-numeric: tabular-nums;
}

.bt-result__kind p {
	font-size: 12px !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.bt-disclaimer-note p {
	font-size: 12px;
	line-height: 1.6;
}

/* Legal pages. */
.bt-legal {
	font-size: 16px;
	line-height: 1.75;
}

.bt-legal h2 {
	margin: 2.25em 0 0.6em;
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: #fff;
}

.bt-legal p,
.bt-legal li {
	color: rgba(255, 255, 255, 0.84);
}

.bt-legal p {
	margin: 0 0 1em;
}

.bt-legal ul {
	margin: 0 0 1em;
	padding-left: 1.25em;
}

.bt-legal li + li {
	margin-top: 0.4em;
}

.bt-legal a {
	color: var(--bt-purple-bright);
}

.bt-legal em {
	color: var(--bt-muted);
}

.bt-legal__updated p {
	font-size: 13px;
}

/* Footer bottom row. */
.bt-footer__legal-links p {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
	font-size: 13px;
}

.bt-footer__legal-links a {
	color: var(--bt-muted);
	text-decoration: none;
	transition: color 0.25s var(--bt-ease);
}

.bt-footer__legal-links a:hover {
	color: #fff;
}

/* Nav Menu dropdown (Practice Areas). */
.bt-nav .elementor-nav-menu--main .sub-menu {
	min-width: 260px;
	padding: 8px;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 12px;
	background: rgba(8, 10, 14, 0.96) !important;
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	box-shadow: 0 24px 60px -24px rgba(0, 0, 0, 0.9);
}

.bt-nav .elementor-nav-menu--main .sub-menu .elementor-sub-item {
	padding: 10px 12px !important;
	border-radius: 8px;
	color: rgba(255, 255, 255, 0.86) !important;
	font-size: 14px;
	background: transparent !important;
}

.bt-nav .elementor-nav-menu--main .sub-menu .elementor-sub-item:hover {
	background: rgba(126, 50, 201, 0.18) !important;
	color: #fff !important;
}

.bt-nav .elementor-nav-menu--dropdown .sub-menu .elementor-sub-item {
	padding-left: 24px !important;
	font-family: Manrope, sans-serif;
	font-size: 17px;
	font-weight: 500;
	letter-spacing: 0;
	color: rgba(255, 255, 255, 0.8) !important;
}

/* 15. Fallback header/footer + WordPress-editor pages ---------------------------- */

.bt-fallback__bar,
.bt-fallback-footer__inner {
	display: flex;
	align-items: center;
	gap: 24px;
	box-sizing: border-box;
	max-width: 1248px; /* 1200px content + 24px side padding, same grid as the page sections */
	margin: 0 auto;
	padding: 14px 24px;
}

@media (max-width: 767px) {
	.bt-fallback__bar,
	.bt-fallback-footer__inner {
		padding-inline: 20px;
	}
}

.bt-fallback .bt-logo img {
	width: 190px;
	height: auto;
}

.bt-fallback__nav {
	margin-left: auto;
}

.bt-fallback__menu {
	display: flex;
	gap: 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bt-fallback__menu a {
	position: relative;
	color: #fff;
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
	opacity: 0.88;
}

.bt-fallback__menu a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -6px;
	height: 2px;
	border-radius: 2px;
	background: var(--bt-purple);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.45s var(--bt-ease-out);
}

.bt-fallback__menu a:hover {
	opacity: 1;
}

.bt-fallback__menu a:hover::after,
.bt-fallback__menu a:focus-visible::after {
	transform: scaleX(1);
	transform-origin: left;
}

.bt-fallback__menu .bt-mobile-only {
	display: none;
}

.bt-fallback__menu > li {
	position: relative;
}

.bt-fallback__menu .sub-menu {
	position: absolute;
	top: calc(100% + 14px);
	left: -12px;
	min-width: 260px;
	margin: 0;
	padding: 8px;
	list-style: none;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 12px;
	background: rgba(8, 10, 14, 0.96);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity 0.25s, transform 0.3s var(--bt-ease-out), visibility 0.25s;
}

.bt-fallback__menu > li:hover > .sub-menu,
.bt-fallback__menu > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.bt-fallback__menu .sub-menu a {
	display: block;
	padding: 10px 12px;
	border-radius: 8px;
	font-size: 14px;
}

.bt-fallback__menu .sub-menu a::after {
	display: none;
}

.bt-fallback__menu .sub-menu a:hover {
	background: rgba(126, 50, 201, 0.18);
}

.bt-fallback__cta {
	padding: 10px 18px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.08);
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	font-size: 14px;
	text-decoration: none;
	white-space: nowrap;
}

.bt-fallback__cta:hover {
	background: rgba(255, 255, 255, 0.22);
	color: #fff;
}

.bt-fallback__toggle {
	display: none;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	background: none;
	color: #fff;
	cursor: pointer;
}

.bt-fallback__burger,
.bt-fallback__burger::before,
.bt-fallback__burger::after {
	display: block;
	width: 24px;
	height: 2px;
	margin: 0 auto;
	border-radius: 2px;
	background: currentColor;
	transition: transform 0.35s var(--bt-ease-out), opacity 0.2s;
}

.bt-fallback__burger {
	position: relative;
}

.bt-fallback__burger::before,
.bt-fallback__burger::after {
	content: "";
	position: absolute;
	left: 0;
}

.bt-fallback__burger::before { top: -7px; }
.bt-fallback__burger::after { top: 7px; }

.bt-fallback.is-open .bt-fallback__burger { background: transparent; }
.bt-fallback.is-open .bt-fallback__burger::before { transform: translateY(7px) rotate(45deg); }
.bt-fallback.is-open .bt-fallback__burger::after { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 767px) {
	.bt-fallback .bt-logo img {
		width: 140px;
	}

	.bt-fallback__toggle {
		display: block;
	}

	.bt-fallback__cta {
		margin-left: auto;
		padding: 9px 14px;
		font-size: 13px;
	}

	.bt-fallback__nav {
		position: fixed;
		inset: calc(var(--wp-admin--admin-bar--height, 0px) + 68px) 0 auto;
		margin: 0;
		padding: 1rem var(--bt-gutter) 2rem;
		background: #000;
		border-top: 1px solid rgba(255, 255, 255, 0.06);
		transform: translateY(-8px);
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s, transform 0.3s var(--bt-ease-out), visibility 0.3s;
	}

	.bt-fallback.is-open .bt-fallback__nav {
		opacity: 1;
		visibility: visible;
		transform: none;
	}

	.bt-fallback__menu {
		flex-direction: column;
		gap: 18px;
	}

	.bt-fallback__menu .bt-mobile-only {
		display: list-item;
	}

	.bt-fallback__menu .sub-menu {
		position: static;
		min-width: 0;
		margin-top: 10px;
		padding: 0 0 0 16px;
		border: 0;
		background: none;
		opacity: 1;
		visibility: inherit; /* follow the menu panel, so a closed menu can't catch taps */
		transform: none;
	}

	.bt-fallback__menu .sub-menu a {
		padding: 6px 0;
		font-family: Manrope, sans-serif;
		font-size: 17px;
		font-weight: 500;
		letter-spacing: 0;
		color: rgba(255, 255, 255, 0.8);
	}

	.bt-fallback__nav {
		max-height: calc(100svh - 80px);
		overflow-y: auto;
	}

	.bt-fallback__menu a {
		font-family: Inter, sans-serif;
		font-size: 30px;
		font-weight: 700;
		letter-spacing: -0.03em;
		opacity: 1;
	}
}

@media (max-width: 359px) {
	.bt-fallback__cta {
		display: none;
	}
}

.bt-fallback-footer {
	border-top: 1px solid rgba(255, 255, 255, 0.06);
	background: #000;
}

.bt-fallback-footer__inner {
	align-items: flex-start;
	justify-content: space-between;
	flex-wrap: wrap;
	padding-block: 64px 48px;
}

.bt-fallback-footer__about {
	max-width: 19rem;
	color: var(--bt-muted);
	font-size: 14px;
}

.bt-fallback-footer__legal {
	font-size: 13px;
	opacity: 0.82;
}

.bt-fallback-footer__legal a {
	color: inherit;
}

.bt-fallback-footer__legal-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	font-size: 13px;
}

.bt-fallback-footer__legal-links a {
	color: var(--bt-muted);
	text-decoration: none;
}

.bt-fallback-footer__legal-links a:hover {
	color: #fff;
}

.bt-fallback-footer__links h2 {
	margin: 12px 0 18px;
	font-family: Manrope, sans-serif;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0;
}

.bt-fallback-footer__links ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bt-fallback-footer__links li + li {
	margin-top: 14px;
}

.bt-fallback-footer__links a {
	color: var(--bt-muted);
	font-size: 14px;
	text-decoration: none;
}

.bt-fallback-footer__links a:hover {
	color: #fff;
}

.bt-main {
	padding-top: calc(var(--bt-header-h) + clamp(2.5rem, 6vw, 4.5rem));
	padding-bottom: clamp(4.5rem, 3rem + 6vw, 8.5rem);
	padding-inline: var(--bt-gutter);
}

.bt-main--readable {
	max-width: 760px;
	margin: 0 auto;
}

.bt-main--listing {
	max-width: 1120px;
	margin: 0 auto;
}

.bt-page-title {
	margin: 0 0 2rem;
	font-size: clamp(2.125rem, 1.4rem + 2.6vw, 3.25rem);
	line-height: 1.15;
	letter-spacing: -0.04em;
}

.bt-post-meta {
	font-size: 13px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--bt-muted);
}

.bt-featured img {
	width: 100%;
	height: auto;
	border-radius: 12px;
}

.bt-prose {
	font-size: 17px;
	line-height: 1.75;
	color: rgba(255, 255, 255, 0.88);
}

.bt-prose a {
	color: var(--bt-purple-bright);
}

.bt-archive {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
	gap: 2.5rem 1.5rem;
}

.bt-card__media img {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 12px;
}

.bt-card__date {
	margin: 1rem 0 0.25rem;
	font-size: 13px;
	color: var(--bt-muted);
}

.bt-card__title {
	margin: 0 0 0.5rem;
	font-size: 22px;
}

.bt-card__title a {
	color: #fff;
	text-decoration: none;
}

.bt-card__title a:hover {
	color: var(--bt-purple-bright);
}

.bt-card__excerpt {
	font-size: 15px;
	color: var(--bt-muted);
}

.bt-404 {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 80svh;
	text-align: center;
	background: radial-gradient(50% 40% at 50% 60%, rgba(126, 50, 201, 0.18), transparent 70%);
}

.bt-404 h1 {
	margin: 0 0 1rem;
	font-size: clamp(2.625rem, 1.6rem + 4vw, 4.5rem);
	letter-spacing: -0.05em;
}

.bt-404__text {
	max-width: 30rem;
	color: var(--bt-muted);
}

.bt-404__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-top: 1.5rem;
}

/* 16. Reduced motion ---------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		transition-delay: 0s !important;
	}

	.bt-js .bt-split.is-split .bt-word,
	.bt-js .bt-stars.is-split .bt-star,
	.bt-js .bt-scroll-reveal.is-split .bt-word {
		opacity: 1;
		filter: none;
		transform: none;
	}

	.bt-hero .elementor-background-video-container,
	.bt-hero > .e-con-inner > * {
		translate: none !important;
	}

	.bt-fade-up {
		animation: none;
	}
}


/* 16. Client feedback round (Oct 2026) ------------------------------------------
   Palette: black / navy foundation, white contrast, yellow = branded secondary
   accent (CTAs, figures, checks, pins), purple = selective accent (headline
   words, hover states). */

.bt-accent-yellow {
	color: var(--bt-yellow);
}

/* Logo: about 25% larger than before in the header, more presence in the footer. */
.bt-header .bt-logo img {
	width: 190px;
	max-width: 42vw;
}

.is-scrolled .bt-header .bt-logo img {
	width: 160px;
}

.bt-footer .bt-logo img {
	width: 230px;
	max-width: 70vw;
}

@media (max-width: 767px) {
	.bt-header .bt-logo img,
	.is-scrolled .bt-header .bt-logo img {
		width: 140px;
	}
}

/* CTA system: primary (yellow), secondary (call), supporting line. */
.bt-btn-call .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.7rem;
	min-height: 46px;
	padding: 12px 22px;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
}

/* Primary CTA: the original pill with the circular arrow, in brand yellow,
   with a white circle and grey arrow that turns on hover. */
.bt-btn-primary .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.9rem;
	padding: 5px 5px 5px 22px;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
}

.bt-btn-primary .elementor-button::after {
	content: "";
	flex: none;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--bt-circle-dark) var(--bt-arrow-grey) center / 14px no-repeat;
	transition: transform 0.5s var(--bt-ease-out);
}

.bt-btn-primary .elementor-button:hover {
	box-shadow: 0 10px 30px -10px rgba(234, 204, 0, 0.6);
}

.bt-btn-primary .elementor-button:hover::after {
	transform: rotate(45deg);
}

.bt-btn-call .elementor-button {
	border: 1px solid rgba(255, 255, 255, 0.16);
}

.bt-btn-call--light .elementor-button {
	border-color: rgba(0, 0, 0, 0.16);
}

.bt-btn-call .elementor-button-icon svg {
	width: 14px;
	height: 14px;
	fill: currentColor;
}

.bt-header__cta .elementor-button {
	min-height: 0;
	padding: 11px 18px;
	font-size: 14px;
}

.bt-footer__ctas .bt-btn-call .elementor-button {
	min-height: 46px;
	padding: 10px 18px;
	font-size: 14px;
}

.bt-footer__ctas .bt-btn-primary .elementor-button {
	font-size: 14px;
}

.e-con > .elementor-widget.bt-btn-primary,
.e-con > .elementor-widget.bt-btn-call,
.e-con > .e-con-inner > .elementor-widget.bt-btn-primary,
.e-con > .e-con-inner > .elementor-widget.bt-btn-call {
	flex-shrink: 0;
}

.bt-cta-note p {
	margin: 0;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.04em;
	opacity: 0.8;
}

@media (max-width: 767px) {
	.bt-cta-row .elementor-widget,
	.bt-cta-row .elementor-button {
		width: 100%;
	}
}

@media (max-width: 479px) {
	.bt-header__cta,
	.bt-fallback__cta {
		display: none !important;
	}

	.bt-fallback__toggle {
		margin-left: auto;
	}
}

/* Yellow details. */
.bt-stat {
	border-top-color: var(--bt-yellow) !important;
}

.bt-stats .bt-count p,
.bt-result__amount p,
.bt-result__feature p {
	color: var(--bt-yellow);
}

.bt-result__feature p {
	font-size: clamp(56px, 2rem + 4vw, 96px);
}

.bt-trust__attribution p {
	max-width: none;
	font-size: 13px;
	line-height: 1.6;
	opacity: 0.85;
}

.bt-check-list .elementor-icon-list-icon {
	background: rgba(234, 204, 0, 0.16);
}

.bt-light .bt-check-list .elementor-icon-list-icon {
	background: #000;
}

.bt-map__dot {
	fill: var(--bt-yellow);
	stroke: #000;
}

.bt-map__pulse {
	stroke: var(--bt-yellow);
}

.bt-map__pin-label {
	border-color: rgba(234, 204, 0, 0.5);
}

.bt-map__pin-label--right {
	transform: translate(0, -50%) translateX(14px);
}

.bt-stars--gold p,
.bt-stars p {
	color: var(--bt-yellow);
}

/* Light sections: intentional breaks in the dark page. */
.bt-light {
	color: #000;
}

.bt-light .bt-accent {
	color: var(--bt-purple);
}

.bt-light .bt-eyebrow p {
	color: #5f5f5f;
}

.bt-light .bt-prose-block p {
	color: #1d1d1f;
}

.bt-light .bt-cta-note p {
	color: #000;
}

/* Attorney cards (home, city pages). */
.bt-attorney {
	height: 100%;
}

.bt-attorney__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center 20%;
	transition: transform 0.8s var(--bt-ease-out);
}

.bt-attorney__photo {
	overflow: hidden;
	border-radius: 14px;
}

.bt-attorney:hover .bt-attorney__photo img {
	transform: scale(1.03);
}

.bt-attorney__name .elementor-heading-title {
	font-size: 24px !important;
}

.bt-attorney__role p {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.bt-attorney__diff p {
	font-size: 16px;
	line-height: 1.6;
}

.bt-text-link--dark .elementor-button {
	color: #000 !important;
}

.bt-text-link--dark .elementor-button:hover {
	color: var(--bt-purple) !important;
}

@media (max-width: 1024px) and (min-width: 768px) {
	.bt-attorney__diff p {
		font-size: 15px;
	}
}

/* Portrait media (human imagery in split sections). */
.bt-portrait img {
	aspect-ratio: 4 / 5 !important;
	object-position: center 30%;
}

/* Why section pillars. */
.bt-why__pillars {
	margin-top: 8px;
}

/* Inline link lists (Areas We Serve, city pages). */
.bt-inline-links .elementor-icon-list-item a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #fff !important;
	font-weight: 500;
	text-decoration: none;
	transition: color 0.25s var(--bt-ease);
}

.bt-inline-links .elementor-icon-list-item a::after {
	content: "\2192";
	transition: transform 0.3s var(--bt-ease-out);
}

.bt-inline-links .elementor-icon-list-item a:hover {
	color: var(--bt-purple-bright) !important;
}

.bt-inline-links .elementor-icon-list-item a:hover::after {
	transform: translateX(4px);
}

.bt-light .bt-inline-links .elementor-icon-list-item a {
	color: #000 !important;
}

.bt-light .bt-inline-links .elementor-icon-list-item a:hover {
	color: var(--bt-purple) !important;
}

/* Nested menu groups (Practice Areas → By Accident Type / By Cause & Injury). */
.bt-nav .elementor-nav-menu--main .sub-menu .sub-menu {
	margin-left: 8px !important;
}

.bt-fallback__menu .sub-menu .sub-menu {
	position: static;
	display: block;
	min-width: 0;
	margin: 0 0 4px 10px;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	/* Follow the parent dropdown: hidden until the nav item is hovered. */
	opacity: inherit;
	visibility: inherit;
	transform: none;
}

.bt-fallback-footer .bt-logo img {
	width: 230px;
	height: auto;
}

.bt-portrait--right img {
	object-position: 68% 30%;
}

.bt-city-card .bt-text-link .elementor-button {
	justify-content: flex-start;
	text-align: left;
	white-space: normal;
}

.bt-city-card .bt-text-link .elementor-button:hover {
	color: var(--bt-yellow) !important;
}

/* Header CTA (sits over the hero): glass pill, bold yellow text on hover. */
.bt-header__cta .elementor-button,
.bt-fallback__cta {
	border: 1px solid rgba(255, 255, 255, 0.12);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	transition: color 0.25s var(--bt-ease), background-color 0.25s var(--bt-ease), font-weight 0.25s var(--bt-ease);
}

.bt-header__cta .elementor-button:hover,
.bt-header__cta .elementor-button:focus-visible,
.bt-fallback__cta:hover,
.bt-fallback__cta:focus-visible {
	color: var(--bt-yellow) !important;
	/* Bold look without changing the width (so the menu beside it doesn't shift). */
	-webkit-text-stroke: 0.6px currentColor;
	text-shadow: 0 0 0.4px currentColor;
}

.bt-header__cta .elementor-button::after {
	content: none;
}

/* "Watch … Story": text centred on the play circle. */
.bt-btn-video .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
}

.bt-btn-video .elementor-button-text {
	display: flex;
	align-items: center;
	line-height: 1.2;
}

/* Why section: photo top-aligned with the copy; the photo takes whatever height
   is left so the strengths end on the same line as the copy on the left. */
.bt-why__aside .bt-split-section__media img {
	aspect-ratio: 4 / 3;
}

@media (min-width: 768px) {
	.bt-why__aside > .bt-split-section__media {
		flex: 1 1 0;
		min-height: 220px;
	}

	.bt-why__aside > .bt-split-section__media img {
		height: 100% !important;
		aspect-ratio: auto;
	}
}

/* Where We Help: boxes and map share the same top and bottom lines. */
.e-con.bt-areas__grid {
	grid-auto-rows: 1fr;
	align-content: stretch;
}

.bt-city-card .bt-card-text p {
	font-size: 13px;
	line-height: 1.5;
}

.bt-areas__map > .elementor-widget,
.bt-areas__map .bt-map-widget,
.bt-areas__map .elementor-shortcode {
	height: 100%;
}

.bt-areas__map .bt-map {
	display: flex;
	align-items: center;
	height: 100%;
	margin: 0;
	box-sizing: border-box;
}

.bt-areas__map .bt-map__canvas {
	width: 100%;
}

/* Attribution under the figures: a single line on desktop. */
@media (min-width: 1025px) {
	.bt-trust__attribution p {
		white-space: nowrap;
	}
}

/* Legal pages: readable column that starts on the logo line. */
.bt-legal-hero .elementor-widget,
.bt-legal-body .elementor-widget {
	width: 100%;
	max-width: 760px;
}

/* Attorney cards: the action row sits on the same line in every card,
   whether or not the attorney has a video button. */
.e-con.bt-attorney__body {
	--flex-grow: 1;
	flex-grow: 1 !important;
}

.e-con.bt-attorney__actions {
	margin-top: auto;
	min-height: 54px;
	align-items: center !important;
	/* When rows are made equal height (theme.js), keep the links at the bottom. */
	align-content: flex-end !important;
}

.e-con.bt-attorneys__grid > .e-con.bt-attorney {
	display: flex;
}

/* Checklist boxes start level with the headline, not the eyebrow above it. */
@media (min-width: 768px) {
	.e-con.bt-liability__list {
		margin-top: 40px;
	}
}

/* Contact: half black (intro) / half white (form). */
@media (max-width: 767px) {
	/* Stacked: black intro, then a full-width white band behind the form. */
	.e-con.bt-contact-hero--split {
		background-image: none !important;
		background-color: #000 !important;
		--padding-bottom: 0;
		padding-bottom: 0 !important;
	}

	.e-con.bt-form-light {
		margin-inline: -20px;
		padding: 40px 20px 56px !important;
		background: #fff;
		width: auto !important;
		max-width: none !important;
	}
}

.bt-form-light .bt-cform label {
	color: #000;
}

.bt-form-light .bt-cform__optional,
.bt-form-light .bt-cform__note {
	color: #5f5f5f;
}

.bt-form-light .bt-cform input,
.bt-form-light .bt-cform select,
.bt-form-light .bt-cform textarea {
	border: 1px solid #e4e1d9;
	background: #f4f3ef;
	color: #000;
}

.bt-form-light .bt-cform input:focus,
.bt-form-light .bt-cform select:focus,
.bt-form-light .bt-cform textarea:focus {
	border-color: var(--bt-purple);
	background: #fff;
	box-shadow: 0 0 0 4px rgba(126, 50, 201, 0.14);
}

.bt-form-light .bt-cform input::placeholder,
.bt-form-light .bt-cform textarea::placeholder {
	color: rgba(0, 0, 0, 0.42);
}

.bt-form-light .bt-cform select option {
	background: #fff;
	color: #000;
}

.bt-form-light .bt-cform__select::after {
	border-color: #000;
	color: #000;
}

.bt-form-light .bt-cform__submit {
	background: var(--bt-yellow);
	color: #000;
	font-weight: 600;
}

.bt-form-light .bt-cform__submit:hover {
	box-shadow: 0 12px 32px -12px rgba(234, 204, 0, 0.7);
}

/* Over the half-white Contact hero the header needs its own solid bar. */
body:has(.bt-contact-hero--split) .bt-header-shell,
body:has(.bt-contact-hero--split) .bt-fallback {
	background: #000 !important;
}

/* Contact split: the black intro column stays in view while a tall form scrolls. */
@media (min-width: 1025px) {
	.e-con.bt-contact-hero--split,
	.bt-contact-hero--split > .e-con-inner {
		align-items: flex-start !important;
	}

	/* Boxed containers wrap the columns in .e-con-inner; full-width ones don't. */
	.bt-contact-hero--split > :is(.bt-contact-hero__intro, .e-con:first-child),
	.bt-contact-hero--split > .e-con-inner > :is(.bt-contact-hero__intro, .e-con:first-child) {
		position: sticky;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--bt-header-h) + 2rem);
		align-self: flex-start;
	}
}

/* Form submit buttons match the primary CTA. */
.bt-cform__submit {
	background: var(--bt-yellow) !important;
	color: #000 !important;
	font-weight: 600;
}

.bt-cform__submit-icon {
	background: var(--bt-circle-dark) !important;
	color: #3a3a3a !important;
}

.bt-cform__submit:hover {
	box-shadow: 0 10px 30px -10px rgba(234, 204, 0, 0.6);
}


/* ==========================================================================
   Mobile pass (phones)
   ========================================================================== */

@media (max-width: 767px) {
	:root {
		--bt-header-h: 78px;
	}

	/* Easier-to-read small text. */
	.bt-prose-block p,
	.bt-hero__lead p,
	.bt-cards__intro p,
	.bt-card-text p,
	.bt-case__text p,
	.bt-member__bio p,
	.bt-attorney__diff p,
	.bt-faq .elementor-tab-content,
	.bt-legal p,
	.bt-legal li {
		font-size: 16px !important;
		line-height: 1.65 !important;
	}

	.bt-city-card .bt-card-text p,
	.bt-check-list .elementor-icon-list-text,
	.bt-footer__about p,
	.bt-footer__nav .elementor-icon-list-text,
	.bt-count__title p,
	.bt-cform label,
	.bt-cform__note {
		font-size: 15px !important;
	}

	.bt-eyebrow p,
	p.bt-eyebrow,
	.bt-cta-note p,
	.bt-trust__attribution p,
	.bt-stories__disclosure p,
	.bt-disclaimer-note p,
	.bt-attorney__role p,
	.bt-member__role p,
	.bt-trust__label p,
	.bt-footer__legal p,
	.bt-footer__legal-links p {
		font-size: 13px !important;
	}

	.bt-trust__attribution p {
		white-space: normal;
	}

	/* Larger headings (the Global Fonts set the base sizes). */
	.bt-card-title .elementor-heading-title,
	.bt-attorney__name .elementor-heading-title {
		font-size: 24px !important;
	}

	/* Interior heroes fill the phone screen; the copy stays at the bottom. */
	.e-con.bt-page-hero {
		--min-height: 100svh;
		min-height: 100svh !important;
	}

	/* Every button runs edge to edge. */
	.bt-btn-primary,
	.bt-btn-call,
	.bt-btn-video,
	.bt-btn-ghost,
	.bt-footer__ctas > .elementor-widget {
		width: 100% !important;
		max-width: 100% !important;
	}

	.bt-btn-primary .elementor-button,
	.bt-btn-call .elementor-button,
	.bt-btn-video .elementor-button,
	.bt-btn-ghost .elementor-button {
		width: 100%;
		justify-content: center;
	}

	/* Same pill as desktop (height, padding, type, arrow circle), just full width:
	   label on the left, arrow circle at the right end. */
	.bt-btn-primary .elementor-button {
		justify-content: space-between;
		padding: 5px 5px 5px 22px;
		white-space: nowrap;
	}

	.e-con.bt-attorney__actions,
	.e-con.bt-footer__ctas,
	.bt-stories__head {
		flex-direction: column !important;
		align-items: stretch !important;
	}

	/* Attorney cards: stacked, with a large photo. */
	.bt-attorney__photo img {
		aspect-ratio: 1 / 1;
		object-position: center 18%;
	}

	.e-con.bt-attorneys__grid {
		row-gap: 56px !important;
	}

	.e-con.bt-attorney__actions {
		min-height: 0;
		gap: 14px !important;
		margin-top: 10px;
	}

	.bt-attorney .bt-text-link {
		align-self: flex-start;
	}

	/* About: room between one attorney's bio (or video button) and the next photo. */
	.e-con.bt-member {
		padding-bottom: 72px !important;
		gap: 24px !important;
	}

	.bt-member .bt-btn-video {
		margin-top: 12px;
	}

	/* Map: the whole country (nationwide reach); the box fits the map. */
	.bt-areas__map > .elementor-widget,
	.bt-areas__map .bt-map-widget,
	.bt-areas__map .elementor-shortcode,
	.bt-areas__map .bt-map {
		height: auto;
	}

	.bt-map {
		overflow: hidden;
	}

	.bt-map__pin-label {
		padding: 2px 4px;
		font-size: 8px;
		border-radius: 3px;
	}

	.bt-map__label {
		display: none;
	}

	.e-con.bt-areas__row {
		gap: 24px !important;
	}

	.bt-areas__outro {
		margin-top: 28px !important;
	}

	/* Services: cards stack as you scroll; compact strips so all nine fit
	   between the header and the bottom menu. */
	.bt-cases.is-stacking {
		/* Just below the floating menu pill (scrolling down hides the pill,
		   so the pile can use the top of the screen). */
		--bt-stack-top: calc(var(--wp-admin--admin-bar--height, 0px) + 16px);
	}

	.bt-cases.is-stacking .bt-case {
		--padding-top: 12px;
		padding-top: 12px !important;
	}

	.bt-cases.is-stacking .bt-case__head {
		align-items: center !important;
	}

	.bt-cases .bt-case__title .elementor-heading-title {
		font-size: 19px !important;
		line-height: 1.25 !important;
	}

	.bt-cases .bt-case__num p {
		font-size: 12px;
	}

	/* Stories carousel: one centred card with the next ones peeking. */
	.e-con.bt-stories__track {
		gap: 12px !important;
		margin-inline: -20px;
		padding-inline: 20px !important;
		scroll-padding-inline: 20px;
	}

	.e-con.bt-stories__track > .elementor-widget.bt-story {
		flex: 0 0 84%;
		scroll-snap-align: center;
		aspect-ratio: 4 / 5;
	}

	.e-con.bt-faq-section {
		--row-gap: 28px;
		--gap: 28px 28px;
	}

	/* FAQ: question text and the + circle line up neatly. */
	.bt-faq .elementor-tab-title {
		gap: 1rem;
	}

	/* Footer: centred. */
	.bt-footer,
	.bt-footer .elementor-widget,
	.bt-footer .elementor-heading-title,
	.bt-footer p {
		text-align: center !important;
	}

	.e-con.bt-footer__brand,
	.e-con.bt-footer__links,
	.e-con.bt-footer__bottom {
		align-items: center !important;
	}

	.bt-footer .bt-logo {
		align-self: center;
	}

	.bt-footer .bt-logo img {
		margin-inline: auto;
	}

	.bt-footer__nav .elementor-icon-list-items {
		align-items: center;
	}

	.bt-footer__nav .elementor-icon-list-item {
		justify-content: center !important;
	}

	.bt-footer__legal-links p {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 8px 18px;
	}

	.e-con.bt-footer__links {
		padding-top: 32px !important;
	}

	.bt-fallback-footer__inner {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.bt-fallback-footer__about {
		max-width: none;
	}

	.bt-fallback-footer__links ul,
	.bt-fallback-footer__legal-links {
		justify-content: center;
	}
}

/* Carousel controls (phones and tablets; desktop uses the hover row). */
.bt-carousel-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-top: 20px;
}

.bt-carousel-nav__btn {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.06);
	color: #fff;
	cursor: pointer;
}

.bt-carousel-nav__btn svg {
	width: 20px;
	height: 20px;
}

.bt-carousel-nav__btn:disabled {
	opacity: 0.35;
	cursor: default;
}

.bt-carousel-nav__dots {
	display: flex;
	gap: 8px;
}

.bt-carousel-nav__dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.3);
	cursor: pointer;
	transition: width 0.3s var(--bt-ease-out), background-color 0.3s;
}

.bt-carousel-nav__dot[aria-current="true"] {
	width: 24px;
	background: var(--bt-yellow);
}

@media (min-width: 1025px) and (hover: hover) and (pointer: fine) {
	.bt-carousel-nav {
		display: none;
	}
}


/* ==========================================================================
   Phone and tablet navigation: floating pill at the top (inc/bottom-nav.php)
   ========================================================================== */

.bt-bnav {
	display: none;
}

@media (max-width: 1024px) {
	/* The pill replaces the header below desktop size. */
	.elementor-location-header,
	.bt-site-header {
		display: none !important;
	}

	.bt-bnav {
		display: block;
		position: fixed;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + 12px);
		left: 0;
		right: 0;
		z-index: 120;
		padding: 0 12px;
		pointer-events: none;
	}

	/* Dim the page behind the open menu. */
	.bt-bnav::before {
		content: "";
		position: fixed;
		inset: 0;
		background: rgba(0, 0, 0, 0.6);
		-webkit-backdrop-filter: blur(4px);
		backdrop-filter: blur(4px);
		opacity: 0;
		transition: opacity 0.35s var(--bt-ease);
	}

	.bt-bnav.is-open::before {
		opacity: 1;
		pointer-events: auto;
	}

	.bt-bnav__bar {
		transition: transform 0.4s var(--bt-ease-out), opacity 0.3s var(--bt-ease);
		pointer-events: auto;
		position: relative;
		z-index: 2;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 18px;
		margin: 0 auto;
		padding: 8px 8px 8px 18px;
		border: 1px solid rgba(255, 255, 255, 0.1);
		border-radius: 18px;
		background: rgba(12, 12, 14, 0.82);
		-webkit-backdrop-filter: blur(16px) saturate(140%);
		backdrop-filter: blur(16px) saturate(140%);
		box-shadow: 0 18px 40px -16px rgba(0, 0, 0, 0.7);
	}

	.bt-bnav__logo img {
		display: block;
		width: 112px;
		height: auto;
	}

	.bt-bnav__toggle {
		display: grid;
		place-items: center;
		width: 48px;
		height: 48px;
		padding: 0;
		border: 0;
		border-radius: 14px;
		background: var(--bt-yellow);
		color: #000;
		cursor: pointer;
		transition: transform 0.3s var(--bt-ease-out);
	}

	.bt-bnav__toggle:active {
		transform: scale(0.94);
	}

	.bt-bnav__lines,
	.bt-bnav__lines::before {
		display: block;
		width: 20px;
		height: 2px;
		border-radius: 2px;
		background: currentColor;
		transition: transform 0.35s var(--bt-ease-out);
	}

	.bt-bnav__lines {
		position: relative;
		transform: translateY(-3px);
	}

	.bt-bnav__lines::before {
		content: "";
		position: absolute;
		left: 0;
		top: 6px;
	}

	/* Open: the two lines merge into a single "minus". */
	.bt-bnav.is-open .bt-bnav__lines {
		transform: none;
	}

	.bt-bnav.is-open .bt-bnav__lines::before {
		transform: translateY(-6px);
	}

	/* Hidden while scrolling down. */
	.bt-bnav.is-hidden .bt-bnav__bar {
		opacity: 0;
		transform: translateY(calc(-100% - 24px));
		pointer-events: none;
	}

	.bt-bnav.is-open .bt-bnav__bar {
		border-color: transparent;
		background: transparent;
		box-shadow: none;
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}

	/* The sheet drops down from the pill. */
	.bt-bnav__sheet {
		pointer-events: none;
		position: absolute;
		top: 0;
		left: 12px;
		right: 12px;
		z-index: 1;
		display: flex;
		flex-direction: column;
		max-height: calc(100svh - 24px - var(--wp-admin--admin-bar--height, 0px));
		padding: 92px 22px 26px;
		overflow-y: auto;
		border: 1px solid rgba(255, 255, 255, 0.08);
		border-radius: 22px;
		background: #0c0c0e;
		box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.9);
		opacity: 0;
		transform: translateY(-12px) scale(0.98);
		transform-origin: top center;
		visibility: hidden;
		transition: opacity 0.3s var(--bt-ease), transform 0.45s var(--bt-ease-out), visibility 0.3s;
	}

	.bt-bnav.is-open .bt-bnav__sheet {
		pointer-events: auto;
		opacity: 1;
		transform: none;
		visibility: visible;
	}

	.bt-bnav__menu {
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.bt-bnav__menu li {
		opacity: 0;
		transform: translateY(-8px);
		transition: opacity 0.35s var(--bt-ease), transform 0.5s var(--bt-ease-out);
	}

	.bt-bnav.is-open .bt-bnav__menu li {
		opacity: 1;
		transform: none;
	}

	.bt-bnav.is-open .bt-bnav__menu li:nth-child(2) { transition-delay: 0.04s; }
	.bt-bnav.is-open .bt-bnav__menu li:nth-child(3) { transition-delay: 0.08s; }
	.bt-bnav.is-open .bt-bnav__menu li:nth-child(4) { transition-delay: 0.12s; }
	.bt-bnav.is-open .bt-bnav__menu li:nth-child(5) { transition-delay: 0.16s; }

	.bt-bnav__menu a {
		display: inline-flex;
		align-items: center;
		gap: 10px;
		padding: 6px 0;
		font-family: Inter, sans-serif;
		font-size: 34px;
		font-weight: 600;
		line-height: 1.15;
		letter-spacing: -0.02em;
		color: #fff;
		text-decoration: none;
	}

	/* Dropdowns: Practice Areas and Areas We Serve open in place. */
	.bt-bnav__menu > li {
		position: relative;
	}

	.bt-bnav__expand {
		position: absolute;
		top: 8px;
		right: 0;
		display: grid;
		place-items: center;
		width: 40px;
		height: 40px;
		padding: 0;
		border: 1px solid rgba(255, 255, 255, 0.14);
		border-radius: 50%;
		background: transparent;
		color: #fff;
		cursor: pointer;
		transition: transform 0.35s var(--bt-ease-out), background-color 0.3s;
	}

	.bt-bnav__expand svg {
		width: 16px;
		height: 16px;
	}

	.bt-bnav__menu li.is-expanded > .bt-bnav__expand {
		transform: rotate(180deg);
		background: rgba(255, 255, 255, 0.08);
	}

	/* Collapsed dropdowns are fully hidden: no padding on the collapsing box
	   (padding can't shrink to zero, which let the first link peek through). */
	.bt-bnav__menu .sub-menu {
		display: grid;
		grid-template-rows: 0fr;
		margin: 0;
		padding: 0;
		list-style: none;
		overflow: hidden;
		visibility: hidden;
		transition: grid-template-rows 0.4s var(--bt-ease-out), visibility 0s linear 0.4s;
	}

	.bt-bnav__menu .sub-menu > * {
		min-height: 0;
	}

	.bt-bnav__menu > li.is-expanded > .sub-menu {
		grid-template-rows: 1fr;
		visibility: visible;
		transition: grid-template-rows 0.4s var(--bt-ease-out), visibility 0s;
	}

	.bt-bnav__menu .sub-menu-inner {
		overflow: hidden;
		padding: 0;
	}

	.bt-bnav__menu .sub-menu-inner > li:first-child {
		margin-top: 4px;
	}

	.bt-bnav__menu .sub-menu-inner > li:last-child {
		margin-bottom: 12px;
	}

	.bt-bnav__menu .sub-menu li {
		opacity: 1;
		transform: none;
	}

	.bt-bnav__menu .sub-menu a {
		padding: 7px 0;
		font-family: Manrope, sans-serif;
		font-size: 17px;
		font-weight: 500;
		letter-spacing: 0;
		color: rgba(255, 255, 255, 0.82);
	}

	/* Group labels ("By Accident Type") with their links underneath. */
	.bt-bnav__menu .sub-menu .menu-item-has-children > a {
		margin-top: 10px;
		padding: 4px 0;
		font-size: 12px;
		font-weight: 600;
		letter-spacing: 0.14em;
		text-transform: uppercase;
		color: var(--bt-yellow);
	}

	.bt-bnav__menu .sub-menu .sub-menu {
		display: block;
		padding-left: 0;
	}

	.bt-bnav__menu .current-menu-item > a,
	.bt-bnav__menu a:hover {
		color: var(--bt-purple-bright);
	}

	/* Contact: brand yellow with an arrow. */
	.bt-bnav__menu .bt-mobile-only > a {
		color: var(--bt-yellow);
	}

	.bt-bnav__menu .bt-mobile-only > a::after {
		content: "";
		width: 18px;
		height: 18px;
		background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 17 17 7M9 7h8v8' fill='none' stroke='%23EACC00' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	}

	/* Call: black text on yellow. */
	.bt-bnav .bt-bnav__call,
	.bt-bnav .bt-bnav__call:hover,
	.bt-bnav .bt-bnav__call:visited {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		min-height: 52px;
		margin-top: 28px;
		border-radius: 999px;
		background: var(--bt-yellow);
		color: #000 !important;
		font-family: Manrope, sans-serif;
		font-size: 16px;
		font-weight: 600;
		text-decoration: none;
	}

	.bt-bnav__call svg {
		width: 16px;
		height: 16px;
		color: #000;
	}

	.bt-bnav__note {
		margin: 12px 0 0;
		text-align: center;
		font-size: 13px;
		color: var(--bt-muted);
	}

	html.bt-bnav-open {
		overflow: hidden;
	}
}

@media (prefers-reduced-motion: reduce) {
	.bt-bnav__sheet,
	.bt-bnav__bar,
	.bt-bnav__menu li {
		transition: none !important;
	}
}

/* ==========================================================================
   Loading intro (inc/intro.php)
   ========================================================================== */

.bt-intro {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: grid;
	place-items: center;
	background: #000811;
	color: #fff;
	cursor: pointer;
	/* Curved lift-away: the bottom edge bows as the screen slides up. */
	border-radius: 0 0 50% 50% / 0 0 0 0;
	transition:
		transform 0.95s cubic-bezier(0.76, 0, 0.24, 1),
		border-radius 0.95s cubic-bezier(0.76, 0, 0.24, 1);
}

.bt-intro.is-done {
	transform: translateY(-110%);
	border-radius: 0 0 50% 50% / 0 0 22vh 22vh;
	pointer-events: none;
}

.bt-intro__stage {
	width: min(240px, 58vw);
	transition: opacity 0.3s;
}

.bt-intro.is-done .bt-intro__stage {
	opacity: 0;
}

.bt-intro__truck {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

/* Gentle road bounce on the body. */
.bt-intro__body {
	animation: bt-intro-bounce 0.36s ease-in-out infinite alternate;
}

@keyframes bt-intro-bounce {
	from { transform: translateY(0); }
	to { transform: translateY(-1.4px); }
}

.bt-intro__wheel {
	animation: bt-intro-spin 0.45s linear infinite;
}

@keyframes bt-intro-spin {
	to { transform: rotate(360deg); }
}

/* Yellow lane dashes streaming past. */
.bt-intro__lane {
	stroke: var(--bt-yellow);
	stroke-width: 3;
	stroke-dasharray: 16 14;
	animation: bt-intro-lane 0.4s linear infinite;
}

@keyframes bt-intro-lane {
	to { stroke-dashoffset: 30; }
}

.bt-intro__speed {
	stroke-width: 2.4;
	opacity: 0.6;
	animation: bt-intro-speed 0.5s linear infinite;
}

@keyframes bt-intro-speed {
	from { transform: translateX(6px); opacity: 0; }
	40% { opacity: 0.7; }
	to { transform: translateX(-10px); opacity: 0; }
}

.bt-intro__status {
	position: absolute;
	left: 0;
	right: 0;
	bottom: calc(28px + env(safe-area-inset-bottom, 0px));
	margin: 0;
	text-align: center;
	font-family: Inter, sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.85);
	transition: opacity 0.16s, transform 0.16s;
}

.bt-intro__status.is-swapping {
	opacity: 0;
	transform: translateY(4px);
}

.bt-intro__bar {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 3px;
	background: rgba(255, 255, 255, 0.08);
}

.bt-intro__bar span {
	display: block;
	height: 100%;
	width: 0;
	background: var(--bt-yellow);
	animation: bt-intro-progress 2.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes bt-intro-progress {
	to { width: 100%; }
}

/* Hold the page's own entrance animations until the intro is over. */
html.bt-intro-active,
html.bt-intro-active body {
	overflow: hidden;
}

html.bt-intro-active .bt-fade-up {
	animation-play-state: paused;
}

/* Footer column headings: purple and bold. */
.bt-footer__heading .elementor-heading-title,
.bt-fallback-footer__links h2 {
	color: var(--bt-purple-bright) !important;
	font-weight: 700 !important;
}

@media (max-width: 767px) {
	/* Footer logo centred on phones. */
	.bt-footer .bt-logo,
	.bt-fallback-footer__brand,
	.bt-fallback-footer .bt-logo {
		display: flex !important;
		justify-content: center;
		width: 100%;
		margin-inline: auto;
		text-align: center;
	}

	.bt-footer .bt-logo img,
	.bt-fallback-footer .bt-logo img {
		margin-inline: auto;
	}

	.bt-fallback-footer__brand {
		flex-direction: column;
		align-items: center;
	}
}

/* ==========================================================================
   Page transition (inc/page-transition.php): the next page opens under a navy
   screen with a yellow bar on its bottom edge, which slides up once.
   ========================================================================== */

.bt-pt {
	position: fixed;
	inset: 0;
	z-index: 99999;
	background: #000811;
	border-bottom: 4px solid var(--bt-yellow);
	pointer-events: none;
	transform: translateY(100%);
	visibility: hidden;
}

/* Arriving: start covering the page. */
html.bt-pt-arriving .bt-pt {
	visibility: visible;
	transform: translateY(0);
}

/* Lifting: slide up and off the screen. */
.bt-pt.is-lifting {
	visibility: visible;
	transform: translateY(-100%);
	transition: transform 0.75s cubic-bezier(0.76, 0, 0.24, 1);
}

@media (prefers-reduced-motion: reduce) {
	.bt-pt {
		display: none !important;
	}
}

/* Nationwide map: every state lit, GA/OH a step brighter. */
.bt-map--national .bt-map__state {
	fill: #2c2140;
}

.bt-map--national .bt-map__state:hover {
	fill: #3a2a4f;
}

.bt-map--national .bt-map__state--served {
	fill: #4a3466;
}

/* Our Promise: Andre's clip cropped like the portrait photos. */
.bt-portrait-video {
	overflow: hidden;
	border-radius: 12px;
}

.bt-portrait-video .elementor-wrapper,
.bt-portrait-video .e-hosted-video {
	--video-aspect-ratio: 0.8;
	aspect-ratio: 4 / 5 !important;
	height: auto !important;
}

.bt-portrait-video video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 68% 30%;
	border-radius: 12px;
}

/* Pause/play control for looping muted video (hero background, Our Promise clip). */
.bt-hero,
.bt-play-in-view {
	position: relative;
}

.bt-video-pause {
	position: absolute;
	right: 20px;
	bottom: 20px;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.35);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	color: #fff;
	opacity: 0.7;
	cursor: pointer;
	transition: opacity 0.25s var(--bt-ease), background-color 0.25s var(--bt-ease);
}

.bt-video-pause:hover,
.bt-video-pause:focus-visible {
	opacity: 1;
	background: rgba(0, 0, 0, 0.55);
}

.bt-video-pause svg {
	width: 14px;
	height: 14px;
}

@media (max-width: 767px) {
	.bt-video-pause {
		right: 16px;
		bottom: 16px;
	}
}
