:root {
	--tb-black: #171717;
	--tb-ink: #363431;
	--tb-muted: #6b6862;
	--tb-red: #d91f35;
	--tb-red-dark: #b6162a;
	--tb-gold: #f5b63d;
	--tb-cream: #fff8ea;
	--tb-warm: #faf8f3;
	--tb-white: #fff;
	--tb-line: #e8e3da;
	--tb-radius-sm: 8px;
	--tb-radius: 14px;
	--tb-radius-lg: 18px;
	--tb-shadow-sm: 0 8px 28px rgba(26, 22, 17, .07);
	--tb-shadow-lg: 0 24px 64px rgba(26, 22, 17, .12);
	--tb-shell: min(1220px, calc(100% - 64px));
	--tb-section: clamp(72px, 8vw, 108px);
	--tb-header-height: 110px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--tb-header-height) + 20px); }
body {
	background: var(--tb-white);
	color: var(--tb-ink);
	font: 400 17px/1.65 "DM Sans", Arial, sans-serif;
	margin: 0;
	overflow-x: hidden;
}
body.tbwb-has-sticky-header { padding-top: var(--tb-header-height); }
body.admin-bar .tbwb-header { top: 32px; }
body.elementor-editor-active { padding-top: 0; }
body.elementor-editor-active .tbwb-header { position: relative; top: auto; }
img { height: auto; max-width: 100%; }
a, button, input, textarea, select { touch-action: manipulation; }
a { text-underline-offset: 3px; }
p { margin: 0 0 1.25em; }
.tbwb-shell { margin-inline: auto; width: var(--tb-shell); }
.tbwb-global-header-container, .tbwb-global-footer-container { margin: 0; max-width: none; padding: 0; width: 100%; }

/* Sticky header and navigation */
.tbwb-skip {
	background: var(--tb-white);
	border: 2px solid var(--tb-black);
	border-radius: var(--tb-radius-sm);
	color: var(--tb-black);
	font-weight: 700;
	left: 16px;
	padding: 11px 16px;
	position: fixed;
	top: -100px;
	z-index: 10001;
}
.tbwb-skip:focus { top: 16px; }
.tbwb-header {
	background: rgba(255, 255, 255, .98);
	border-bottom: 1px solid rgba(232, 227, 218, .95);
	box-shadow: 0 1px 0 rgba(0, 0, 0, .02);
	left: 0;
	position: fixed;
	right: 0;
	top: 0;
	transition: box-shadow .2s ease, background-color .2s ease;
	z-index: 1000;
}
.tbwb-header.is-scrolled { background: rgba(255, 255, 255, .995); box-shadow: 0 12px 36px rgba(26, 22, 17, .11); }
.tbwb-utility { background: var(--tb-black); color: #f5f1e9; font-size: 13px; }
.tbwb-utility .tbwb-shell { align-items: center; display: flex; justify-content: space-between; min-height: 34px; }
.tbwb-utility a { color: var(--tb-gold); font-weight: 700; text-decoration: none; }
.tbwb-nav-wrap { align-items: center; display: flex; gap: clamp(14px, 1.5vw, 24px); justify-content: space-between; min-height: 76px; }
.tbwb-brand { align-items: center; color: var(--tb-black); display: flex; flex: 0 0 auto; gap: 12px; text-decoration: none; }
.tbwb-brand strong { font: 800 18px/1.08 Manrope, Arial, sans-serif; max-width: 145px; }
.tbwb-brand .tbwb-logo { display: block; height: auto; max-height: 64px; max-width: 190px; object-fit: contain; width: auto; }
.tbwb-mark { background: linear-gradient(var(--tb-gold) 0 50%, var(--tb-red) 50%); border-radius: 16px; display: block; height: 48px; position: relative; width: 26px; }
.tbwb-mark::after { background: var(--tb-white); border-radius: 0 8px 8px 0; content: ""; height: 9px; left: 0; position: absolute; top: 20px; width: 19px; }
.tbwb-nav { align-items: center; display: flex; flex: 1 1 auto; gap: clamp(10px, 1vw, 16px); justify-content: flex-end; min-width: 0; }
.tbwb-nav ul { list-style: none; margin: 0; padding: 0; }
.tbwb-nav > .tbwb-menu-list { align-items: center; display: flex; gap: clamp(9px, 1.1vw, 18px); min-width: 0; }
.tbwb-nav li { margin: 0; position: relative; }
.tbwb-nav li > a, .tbwb-nav-phone {
	align-items: center;
	color: var(--tb-black);
	display: inline-flex;
	font-size: 14px;
	font-weight: 700;
	justify-content: flex-start;
	line-height: 1.3;
	min-height: 44px;
	position: relative;
	text-align: left;
	text-decoration: none;
	white-space: nowrap;
}
.tbwb-nav li > a::after { background: var(--tb-red); bottom: 4px; content: ""; height: 2px; left: 0; position: absolute; transform: scaleX(0); transform-origin: left; transition: transform .18s ease; width: 100%; }
.tbwb-nav li.current-menu-item > a, .tbwb-nav li.current-menu-ancestor > a, .tbwb-nav li > a:hover { color: var(--tb-red); }
.tbwb-nav li.current-menu-item > a::after, .tbwb-nav li.current-menu-ancestor > a::after, .tbwb-nav li > a:hover::after { transform: scaleX(1); }
.tbwb-nav-phone { font-variant-numeric: tabular-nums; padding-left: 18px; }
.tbwb-nav-phone::before { color: var(--tb-gold); content: "\260E"; font-size: 17px; margin-right: 7px; }
.tbwb-button, .elementor-widget-button .elementor-button {
	align-items: center;
	background: var(--tb-red);
	border: 2px solid var(--tb-red);
	border-radius: var(--tb-radius-sm);
	color: var(--tb-white);
	cursor: pointer;
	display: inline-flex;
	font-family: "DM Sans", Arial, sans-serif;
	font-size: 15px;
	font-weight: 700;
	justify-content: center;
	line-height: 1.25;
	min-height: 48px;
	padding: 11px 20px;
	text-decoration: none;
	transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.tbwb-button:hover, .elementor-widget-button .elementor-button:hover { background: var(--tb-red-dark); border-color: var(--tb-red-dark); box-shadow: 0 9px 24px rgba(183, 21, 41, .2); color: var(--tb-white); transform: translateY(-1px); }
.tbwb-nav-cta { flex: 0 0 auto; font-size: 13px; max-width: 230px; padding-inline: 15px; text-align: center; white-space: nowrap; }
.tbwb-nav-toggle, .tbwb-submenu-toggle { background: transparent; border: 0; color: var(--tb-black); cursor: pointer; }
.tbwb-nav-toggle { display: none; height: 48px; padding: 12px; width: 48px; }
.tbwb-nav-toggle span:not(.screen-reader-text) { background: currentColor; border-radius: 2px; display: block; height: 2px; margin: 5px 0; transition: transform .18s ease, opacity .18s ease; width: 24px; }
.tbwb-nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.tbwb-nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.tbwb-nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.tbwb-submenu-toggle { align-items: center; display: inline-flex; height: 32px; justify-content: center; margin-left: 2px; width: 28px; }
.tbwb-submenu-toggle::before { border-bottom: 2px solid currentColor; border-right: 2px solid currentColor; content: ""; height: 7px; transform: translateY(-2px) rotate(45deg); transition: transform .18s ease; width: 7px; }
.tbwb-submenu-toggle[aria-expanded="true"]::before { transform: translateY(2px) rotate(225deg); }
.tbwb-nav .menu-item-has-children { align-items: center; display: flex; }
.tbwb-nav .sub-menu {
	background: var(--tb-white);
	border: 1px solid var(--tb-line);
	border-radius: 12px;
	box-shadow: var(--tb-shadow-lg);
	display: grid;
	gap: 2px;
	left: -18px;
	min-width: 270px;
	opacity: 0;
	padding: 10px;
	pointer-events: none;
	position: absolute;
	top: calc(100% + 8px);
	transform: translateY(8px);
	transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
	visibility: hidden;
	z-index: 50;
}
.tbwb-nav .sub-menu::before { content: ""; height: 12px; left: 0; position: absolute; right: 0; top: -12px; }
.tbwb-nav .menu-item-has-children:hover > .sub-menu, .tbwb-nav .menu-item-has-children:focus-within > .sub-menu, .tbwb-nav .menu-item-has-children.is-submenu-open > .sub-menu { opacity: 1; pointer-events: auto; transform: translateY(0); visibility: visible; }
.tbwb-nav .sub-menu li { display: block; width: 100%; }
.tbwb-nav .sub-menu a { border-radius: 7px; display: flex; min-height: 42px; padding: 10px 12px; text-align: left; white-space: normal; width: 100%; }
.tbwb-nav .sub-menu a::after { display: none; }
.tbwb-nav .sub-menu a:hover, .tbwb-nav .sub-menu a:focus { background: var(--tb-cream); color: var(--tb-red); }

/* Shared layout and typography */
.tbwb-hero, .tbwb-page-hero, .tbwb-section, .tbwb-cta, .tbwb-trust { padding-inline: max(20px, calc((100% - 1220px) / 2)); }
.tbwb-section { padding-block: var(--tb-section); }
.tbwb-section h2, .tbwb-cta h2, .tbwb-contact h2, .tbwb-contact-form h2 {
	color: var(--tb-black);
	font: 800 clamp(32px, 4.1vw, 48px)/1.1 Manrope, Arial, sans-serif;
	letter-spacing: -.035em;
	margin: 0 0 20px;
	text-wrap: balance;
}
.intro-kicker, .services-kicker, .process-kicker, .why-kicker, .actions-kicker, .provider-kicker, .faq-kicker, .cta-kicker, .tbwb-kicker, .hero-kicker {
	color: var(--tb-red);
	font: 800 13px/1.35 Manrope, Arial, sans-serif;
	letter-spacing: .15em;
	margin-bottom: 12px;
	text-transform: uppercase;
}
.tbwb-section-header { align-items: end; display: grid; gap: 24px 56px; grid-template-columns: 1.15fr .85fr; margin-bottom: 38px; }
.tbwb-section-header .services-kicker, .tbwb-section-header .services-title { grid-column: 1; }
.tbwb-section-header .services-copy { grid-column: 2; grid-row: 1 / 3; }
.tbwb-section-header p { margin: 0; }

/* Homepage hero */
.tbwb-hero {
	background: linear-gradient(100deg, var(--tb-cream) 0 56%, #f7ddb0 56% 100%);
	min-height: min(720px, calc(100dvh - var(--tb-header-height)));
	overflow: hidden;
	padding-block: clamp(64px, 7vw, 96px);
	position: relative;
}
.tbwb-hero::before { border: 1px solid rgba(217, 31, 53, .13); border-radius: 50%; content: ""; height: 520px; position: absolute; right: -130px; top: -210px; width: 520px; }
.tbwb-hero { align-items: center; display: grid; gap: clamp(42px, 6vw, 84px); grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); }
.tbwb-hero-content { max-width: 690px; position: relative; z-index: 2; }
.tbwb-hero h1, .tbwb-page-hero h1 { color: var(--tb-black); font: 800 clamp(46px, 5vw, 64px)/1.03 Manrope, Arial, sans-serif; letter-spacing: -.048em; margin: 14px 0 22px; text-wrap: balance; }
.tbwb-hero .hero-copy { font-size: clamp(17px, 1.6vw, 20px); max-width: 630px; }
.tbwb-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 30px 0 22px; }
.tbwb-hero .hero-secondary .elementor-button { background: transparent; border-color: var(--tb-black); color: var(--tb-black); }
.tbwb-hero .hero-secondary .elementor-button:hover { background: var(--tb-black); color: var(--tb-white); }
.hero-phone a { color: var(--tb-black); font-size: 17px; font-weight: 800; text-decoration: none; }
.hero-phone small { color: var(--tb-muted); font-size: 13px; }
.tbwb-hero-media { position: relative; z-index: 1; }
.tbwb-hero-media::before { background: var(--tb-red); border-radius: 50%; content: ""; height: 54px; left: -20px; position: absolute; top: 36px; width: 54px; z-index: -1; }
.tbwb-hero-media img { aspect-ratio: 4/5; border-radius: 48% 48% 18px 18px; box-shadow: var(--tb-shadow-lg); display: block; max-height: 540px; object-fit: cover; width: 100%; }
.tbwb-hero--no-image { background: radial-gradient(circle at 84% 35%, rgba(245, 182, 61, .36), transparent 24%), var(--tb-cream); grid-template-columns: minmax(0, 780px); }

/* Homepage trust and editorial sections */
.tbwb-trust { background: var(--tb-cream); border-block: 1px solid #f0dfbc; display: grid; gap: 0; grid-template-columns: repeat(5, minmax(0, 1fr)); padding-block: 26px; }
.tbwb-trust .elementor-widget-icon-box { border-right: 1px solid #eadbbd; padding: 0 20px; }
.tbwb-trust .elementor-widget-icon-box:last-child { border-right: 0; }
.tbwb-trust .elementor-icon-box-wrapper { align-items: center; display: flex; gap: 12px; text-align: left; }
.tbwb-trust .elementor-icon { color: #c57f00; font-size: 24px; }
.tbwb-trust h3.elementor-icon-box-title { color: var(--tb-black); font: 800 14px/1.3 Manrope, Arial, sans-serif; margin: 0 0 3px; }
.tbwb-trust .elementor-icon-box-description { color: var(--tb-muted); font-size: 12px; line-height: 1.4; margin: 0; }
.tbwb-intro { align-items: center; background: var(--tb-white); display: grid; gap: clamp(42px, 7vw, 88px); grid-template-columns: minmax(0, .95fr) minmax(360px, 1.05fr); }
.tbwb-intro-content { max-width: 610px; }
.tbwb-intro-content .elementor-button { margin-top: 8px; }
.tbwb-intro-media img { aspect-ratio: 16/10; border-radius: var(--tb-radius-lg); box-shadow: var(--tb-shadow-sm); display: block; object-fit: cover; width: 100%; }
.tbwb-intro--no-image { grid-template-columns: minmax(0, 720px); }

/* Services */
.tbwb-services { background: var(--tb-warm); }
.tbwb-services-grid { display: grid; gap: 20px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tbwb-card { background: var(--tb-white); border: 1px solid var(--tb-line); border-radius: var(--tb-radius); display: flex; flex-direction: column; min-height: 300px; padding: 30px; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.tbwb-card:hover { border-color: #d9c18e; box-shadow: var(--tb-shadow-sm); transform: translateY(-3px); }
.tbwb-card .elementor-widget-icon { color: var(--tb-red); font-size: 34px; margin-bottom: 20px; }
.tbwb-card h3 { color: var(--tb-black); font: 800 21px/1.25 Manrope, Arial, sans-serif; margin: 0 0 12px; }
.tbwb-card p { color: var(--tb-muted); font-size: 15px; }
.tbwb-card .elementor-widget-button { margin-top: auto; }
.tbwb-card .elementor-button { background: transparent; border: 0; box-shadow: none; color: var(--tb-red); justify-content: flex-start; min-height: 44px; padding: 8px 0; }
.tbwb-card .elementor-button:hover { background: transparent; border: 0; box-shadow: none; color: var(--tb-red-dark); transform: none; }

/* Process, benefits, and calls to action */
.tbwb-process { background: var(--tb-black); color: #e9e5de; }
.tbwb-process-header { align-items: end; display: grid; gap: 24px 56px; grid-template-columns: 1.15fr .85fr; margin-bottom: 38px; }
.tbwb-process-header .process-kicker, .tbwb-process-header .process-title { grid-column: 1; }
.tbwb-process-header .process-copy { grid-column: 2; grid-row: 1/3; }
.tbwb-process h2 { color: var(--tb-white); }
.tbwb-process .process-kicker { color: var(--tb-gold); }
.tbwb-process p { color: #c9c4bb; }
.tbwb-process-steps { display: grid; gap: 16px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tbwb-step { background: #242321; border: 1px solid #3c3935; border-radius: 12px; min-height: 240px; padding: 26px; position: relative; }
.tbwb-step .step-number { align-items: center; background: var(--tb-gold); border-radius: 50%; color: var(--tb-black); display: flex; font: 800 16px/1 Manrope, Arial, sans-serif; height: 40px; justify-content: center; margin-bottom: 30px; width: 40px; }
.tbwb-step h3 { color: var(--tb-white); font: 800 19px/1.3 Manrope, Arial, sans-serif; margin: 0 0 12px; }
.tbwb-step p { font-size: 14px; margin: 0; }
.tbwb-why { align-items: center; background: var(--tb-white); display: grid; gap: clamp(44px, 8vw, 100px); grid-template-columns: 1fr 1fr; }
.tbwb-why-copy { max-width: 610px; }
.tbwb-why-benefits { background: var(--tb-warm); border: 1px solid var(--tb-line); border-radius: var(--tb-radius-lg); padding: clamp(28px, 4vw, 44px); }
.tbwb-why .elementor-icon-list-items { display: grid; gap: 18px; }
.tbwb-why .elementor-icon-list-item { align-items: flex-start; }
.tbwb-why .elementor-icon-list-icon { color: #b97800; font-size: 18px; margin-top: 4px; }
.tbwb-why .elementor-icon-list-text { color: var(--tb-black); font-weight: 600; }
.tbwb-patient-actions { background: var(--tb-cream); display: grid; gap: 12px; grid-template-columns: repeat(3, max-content); justify-content: center; text-align: center; }
.tbwb-patient-actions > .actions-kicker, .tbwb-patient-actions > .actions-title, .tbwb-patient-actions > .actions-copy { grid-column: 1/-1; }
.tbwb-patient-actions .actions-copy { margin: 0 auto 18px; max-width: 680px; }
.tbwb-patient-actions .actions-call .elementor-button, .tbwb-patient-actions .actions-services .elementor-button { background: transparent; border-color: var(--tb-black); color: var(--tb-black); }
.tbwb-patient-actions .actions-call .elementor-button:hover, .tbwb-patient-actions .actions-services .elementor-button:hover { background: var(--tb-black); color: var(--tb-white); }
.tbwb-provider { align-items: center; background: var(--tb-white); display: grid; gap: clamp(42px, 7vw, 88px); grid-template-columns: minmax(0, 1fr) minmax(360px, .85fr); }
.tbwb-provider > :not(.provider-image) { grid-column: 1; }
.tbwb-provider > .provider-image { grid-column: 2; grid-row: 1/5; }
.tbwb-provider .provider-copy { max-width: 680px; }
.tbwb-provider img { aspect-ratio: 4/3; border-radius: var(--tb-radius-lg); box-shadow: var(--tb-shadow-sm); object-fit: cover; width: 100%; }
.tbwb-provider--no-image { grid-template-columns: minmax(0, 760px); }

/* Contact, FAQ, and final CTA */
.tbwb-home-location, .tbwb-contact-page { align-items: stretch; background: var(--tb-warm); display: grid; gap: clamp(34px, 6vw, 72px); grid-template-columns: .9fr 1.1fr; }
.tbwb-contact { height: 100%; }
.tbwb-contact h2 { font-size: clamp(32px, 4vw, 46px); }
.tbwb-contact address { color: var(--tb-black); font-size: 19px; font-style: normal; margin-bottom: 22px; }
.tbwb-contact a { color: var(--tb-red); font-weight: 700; }
.tbwb-contact-links { font-variant-numeric: tabular-nums; }
.tbwb-contact-links a { font-family: Manrope, Arial, sans-serif; font-size: 21px; font-weight: 800; }
.tbwb-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0; }
.tbwb-button--outline { background: transparent; border-color: var(--tb-black); color: var(--tb-black); }
.tbwb-button--outline:hover { background: var(--tb-black); border-color: var(--tb-black); color: var(--tb-white); }
.tbwb-contact .tbwb-button--outline { color: var(--tb-black); font-family: "DM Sans", Arial, sans-serif; font-weight: 700; }
.tbwb-contact .tbwb-button--outline:hover { color: var(--tb-white); }
.tbwb-notice { border-left: 3px solid var(--tb-gold); color: var(--tb-muted); font-size: 14px; max-width: 560px; padding-left: 14px; }
.tbwb-home-location .elementor-widget-google_maps iframe, .tbwb-contact-page .elementor-widget-google_maps iframe { border: 0; border-radius: var(--tb-radius-lg); min-height: 460px; width: 100%; }
.tbwb-faq { background: var(--tb-white); }
.tbwb-faq .elementor-accordion { border-top: 1px solid var(--tb-line); margin-top: 30px; max-width: 980px; }
.tbwb-faq .elementor-tab-title { border-bottom: 1px solid var(--tb-line); color: var(--tb-black); font: 700 18px/1.45 Manrope, Arial, sans-serif; padding: 22px 4px; }
.tbwb-faq .elementor-tab-title:hover, .tbwb-faq .elementor-tab-title.elementor-active { color: var(--tb-red); }
.tbwb-faq .elementor-tab-content { border-bottom: 1px solid var(--tb-line); color: var(--tb-muted); padding: 0 44px 24px 4px; }
.tbwb-home-faq .faq-link { margin-top: 24px; }
.tbwb-home-faq .faq-link .elementor-button { background: transparent; border-color: var(--tb-black); color: var(--tb-black); }
.tbwb-cta { background: var(--tb-red); color: var(--tb-white); padding-block: clamp(56px, 7vw, 82px); text-align: center; }
.tbwb-cta .cta-kicker { color: #ffe1a3; }
.tbwb-cta h2 { color: var(--tb-white); }
.tbwb-cta p { font-size: 18px; margin-inline: auto; max-width: 650px; }
.tbwb-cta .elementor-widget-button { display: inline-block; margin: 10px 5px 0; width: auto; }
.tbwb-cta .cta-call .elementor-button { background: var(--tb-gold); border-color: var(--tb-gold); color: var(--tb-black); }
.tbwb-cta .cta-prescription .elementor-button { background: transparent; border-color: rgba(255,255,255,.75); color: var(--tb-white); }

/* Inner pages */
.tbwb-page-hero { background: linear-gradient(115deg, var(--tb-cream), #fff 74%); overflow: hidden; padding-block: clamp(64px, 7vw, 96px); position: relative; }
.tbwb-page-hero::after { border: 52px solid rgba(245, 182, 61, .16); border-radius: 50%; content: ""; height: 360px; position: absolute; right: -80px; top: -120px; width: 360px; }
.tbwb-page-hero-content { max-width: 850px; position: relative; z-index: 1; }
.tbwb-page-hero h1 { font-size: clamp(40px, 5vw, 60px); }
.tbwb-page-hero .breadcrumb { color: var(--tb-red); font: 800 12px/1.4 Manrope, Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.tbwb-page-hero .page-intro { font-size: clamp(18px, 2vw, 21px); max-width: 720px; }
.tbwb-editorial-image { background: var(--tb-white); padding-bottom: 26px; padding-top: 54px; }
.tbwb-editorial-image img { aspect-ratio: 16/7; border-radius: var(--tb-radius-lg); box-shadow: var(--tb-shadow-sm); display: block; object-fit: cover; width: 100%; }
.tbwb-generated-image { margin: 0; min-width: 0; width: 100%; }
.tbwb-generated-image img { background: #eee9df; }
.tbwb-content { background: var(--tb-white); border-bottom: 1px solid var(--tb-line); display: grid; gap: 24px 64px; grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr); }
.tbwb-content:nth-of-type(even) { background: var(--tb-warm); }
.tbwb-content > .section-title { grid-column: 1; grid-row: 1/3; }
.tbwb-content > .section-copy, .tbwb-content > .section-list { grid-column: 2; }
.tbwb-content h2 { font-size: clamp(30px, 3.6vw, 42px); }
.tbwb-content .elementor-icon-list-items { display: grid; gap: 12px; }
.tbwb-content .elementor-icon-list-icon { color: var(--tb-red); }
.tbwb-workflow { background: var(--tb-cream); display: grid; gap: 20px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tbwb-workflow > .workflow-title, .tbwb-workflow > .workflow-action, .tbwb-workflow > .privacy { grid-column: 1/-1; }
.tbwb-workflow .tbwb-step { background: var(--tb-white); border-color: var(--tb-line); color: var(--tb-ink); min-height: 220px; }
.tbwb-workflow .tbwb-step .step-number { background: var(--tb-red); color: var(--tb-white); }
.tbwb-workflow .tbwb-step p { color: var(--tb-muted); }
.tbwb-resources { background: var(--tb-warm); }

/* Working general inquiry form */
.tbwb-form-section { background: var(--tb-white); }
.tbwb-contact-form { background: var(--tb-warm); border: 1px solid var(--tb-line); border-radius: var(--tb-radius-lg); margin-inline: auto; max-width: 900px; padding: clamp(28px, 5vw, 56px); }
.tbwb-contact-form h2 { font-size: clamp(30px, 4vw, 44px); }
.tbwb-form-intro { color: var(--tb-muted); max-width: 680px; }
.tbwb-contact-form form { display: grid; gap: 20px; grid-template-columns: 1fr 1fr; margin-top: 30px; }
.tbwb-field { min-width: 0; }
.tbwb-field--full, .tbwb-contact-form .tbwb-consent, .tbwb-contact-form form > button { grid-column: 1/-1; }
.tbwb-field label { color: var(--tb-black); display: block; font-weight: 700; margin-bottom: 7px; }
.tbwb-field .required { color: var(--tb-red); }
.tbwb-field input, .tbwb-field textarea { background: var(--tb-white); border: 1px solid #cfc8bd; border-radius: var(--tb-radius-sm); color: var(--tb-black); font: inherit; min-height: 50px; padding: 11px 13px; width: 100%; }
.tbwb-field textarea { min-height: 150px; resize: vertical; }
.tbwb-field input:focus, .tbwb-field textarea:focus { border-color: var(--tb-red); box-shadow: 0 0 0 3px rgba(217, 31, 53, .13); outline: 0; }
.tbwb-consent label { align-items: flex-start; display: flex; font-size: 14px; gap: 10px; }
.tbwb-consent input { flex: 0 0 auto; height: 20px; margin-top: 2px; width: 20px; }
.tbwb-contact-form form > button { justify-self: start; }
.tbwb-contact-form form > button:disabled { cursor: wait; opacity: .58; transform: none; }
.tbwb-form-status { border-left: 4px solid; border-radius: 6px; margin-top: 20px; padding: 12px 14px; }
.tbwb-form-status--success { background: #edf8ef; border-color: #317a3f; color: #20582a; }
.tbwb-form-status--error { background: #fff0f2; border-color: var(--tb-red); color: #8f1524; }
.tbwb-honeypot { height: 1px; left: -10000px; overflow: hidden; position: absolute; width: 1px; }

/* Posts and footer */
.tbwb-home-hub { background: linear-gradient(135deg, #fff8ea 0%, #fff 64%, #f7ddb0 100%); }
.tbwb-hub-header { max-width: 820px; }
.tbwb-hub-header h2 { margin-bottom: 16px; }
.tbwb-hub-header > p:last-child { color: var(--tb-muted); font-size: clamp(17px, 1.7vw, 20px); margin-bottom: 0; }
.tbwb-hub-topics { display: flex; flex-wrap: wrap; gap: 10px; margin: 30px 0 40px; }
.tbwb-hub-topics span { background: var(--tb-white); border: 1px solid var(--tb-line); border-radius: 999px; color: var(--tb-black); font-size: 13px; font-weight: 700; padding: 8px 13px; }
.tbwb-archive--home .tbwb-post-grid, .tbwb-archive--hub .tbwb-post-grid { margin-top: 38px; }
.tbwb-post-grid { display: grid; gap: 24px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tbwb-post-card { background: var(--tb-white); border: 1px solid var(--tb-line); border-radius: var(--tb-radius); overflow: hidden; transition: box-shadow .18s ease, transform .18s ease; }
.tbwb-post-card:hover { box-shadow: var(--tb-shadow-sm); transform: translateY(-3px); }
.tbwb-post-card--featured { grid-column: span 2; }
.tbwb-post-card--featured:has(.tbwb-post-image) { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(280px, .92fr); }
.tbwb-post-card--featured .tbwb-post-image { aspect-ratio: auto; min-height: 100%; }
.tbwb-post-image { aspect-ratio: 16/10; background: var(--tb-cream); display: block; overflow: hidden; }
.tbwb-post-image img { height: 100%; object-fit: cover; width: 100%; }
.tbwb-post-body { padding: 28px; }
.tbwb-post-labels { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.tbwb-post-topic, .tbwb-evidence { border-radius: 999px; font-size: 11px; font-weight: 800; letter-spacing: .07em; line-height: 1.2; padding: 7px 9px; text-transform: uppercase; }
.tbwb-post-topic { background: var(--tb-cream); color: var(--tb-red-dark); }
.tbwb-evidence { background: #eef1f4; color: #343a40; }
.tbwb-evidence--established { background: #e7f4ea; color: #245e32; }
.tbwb-evidence--emerging { background: #fff0c9; color: #725000; }
.tbwb-evidence--investigational { background: #fbe7eb; color: #861a2a; }
.tbwb-evidence--innovation-watch { background: #e8eefb; color: #254b87; }
.tbwb-post-meta { color: var(--tb-red); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.tbwb-post-card h3 { font: 800 22px/1.3 Manrope, Arial, sans-serif; margin: 8px 0 12px; }
.tbwb-post-card h3 a { color: var(--tb-black); text-decoration: none; }
.tbwb-post-more { color: var(--tb-red); font-weight: 800; }
.tbwb-empty { background: var(--tb-cream); border: 1px solid var(--tb-line); border-radius: var(--tb-radius); padding: 36px; }
.tbwb-hub-cta { margin: 34px 0 0; }
.tbwb-hub-disclaimer { background: var(--tb-black); border-radius: var(--tb-radius); color: #ded9d0; margin-top: 48px; padding: clamp(24px, 4vw, 38px); }
.tbwb-hub-disclaimer strong { color: var(--tb-gold); display: block; font: 800 18px/1.3 Manrope, Arial, sans-serif; margin-bottom: 8px; }
.tbwb-hub-disclaimer p { margin: 0; max-width: 92ch; }
.tbwb-pagination ul { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; list-style: none; margin: 40px 0 0; padding: 0; }
.tbwb-pagination a, .tbwb-pagination span { align-items: center; border: 1px solid var(--tb-line); border-radius: var(--tb-radius-sm); color: var(--tb-black); display: flex; justify-content: center; min-height: 44px; min-width: 44px; padding: 8px; text-decoration: none; }
.tbwb-pagination .current { background: var(--tb-red); border-color: var(--tb-red); color: var(--tb-white); }
.tbwb-footer { background: var(--tb-black); color: #d0cbc2; padding-top: 68px; }
.tbwb-footer-grid { display: grid; gap: 48px; grid-template-columns: 1.35fr .8fr .9fr 1.15fr; padding-bottom: 56px; }
.tbwb-footer h2, .tbwb-footer h3 { color: var(--tb-white); font-family: Manrope, Arial, sans-serif; }
.tbwb-footer-brand h2 { font-size: clamp(22px, 2vw, 28px); line-height: 1.15; margin: 0 0 16px; }
.tbwb-footer-brand > p { margin: 0; max-width: 34ch; }
.tbwb-footer h3 { font-size: 13px; letter-spacing: .11em; text-transform: uppercase; }
.tbwb-footer a { color: #d0cbc2; display: block; margin: 8px 0; text-decoration: none; }
.tbwb-footer a:hover { color: var(--tb-gold); }
.tbwb-footer address { font-style: normal; }
.tbwb-social { display: flex; gap: 12px; margin-top: 24px; }
.tbwb-footer .tbwb-social-link { align-items: center; border: 1px solid rgba(255,255,255,.42); border-radius: 50%; color: var(--tb-gold); display: inline-flex; height: 46px; justify-content: center; margin: 0; transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease; width: 46px; }
.tbwb-social-link svg { display: block; fill: currentColor; height: 22px; width: 22px; }
.tbwb-footer .tbwb-social-link:hover { background: var(--tb-gold); border-color: var(--tb-gold); color: var(--tb-black); transform: translateY(-2px); }
.tbwb-footer .tbwb-social-link:focus-visible { background: var(--tb-gold); border-color: var(--tb-gold); color: var(--tb-black); outline: 3px solid var(--tb-white); outline-offset: 3px; }
.tbwb-footer-bottom { border-top: 1px solid #3a3733; display: flex; font-size: 14px; justify-content: space-between; padding-block: 22px; }
.tbwb-footer-bottom a { color: var(--tb-white); display: inline; }
.tbwb-mobile-bar { display: none; }

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, .elementor-button:focus-visible { outline: 3px solid var(--tb-gold); outline-offset: 3px; }

@media (max-width: 1400px) and (min-width: 1081px) {
	.tbwb-nav-phone { display: none; }
	.tbwb-nav-wrap { gap: 14px; }
	.tbwb-nav { gap: 10px; }
	.tbwb-nav > .tbwb-menu-list { gap: clamp(8px, .9vw, 13px); }
	.tbwb-nav li > a { font-size: 13px; }
	.tbwb-nav-cta { max-width: 205px; padding-inline: 12px; }
}

@media (max-width: 1080px) {
	:root { --tb-shell: min(100% - 48px, 960px); --tb-header-height: 104px; }
	body.tbwb-nav-open { overflow: hidden; }
	.tbwb-nav-toggle { display: block; margin-left: auto; }
	.tbwb-nav {
		align-items: stretch;
		background: var(--tb-white);
		border-top: 1px solid var(--tb-line);
		box-shadow: var(--tb-shadow-lg);
		display: none;
		left: 0;
		max-height: calc(100dvh - var(--tb-header-height));
		overflow-y: auto;
		padding: 20px 24px 28px;
		position: absolute;
		right: 0;
		top: 100%;
	}
	.tbwb-nav.is-open { display: grid; gap: 12px; }
	.tbwb-nav > .tbwb-menu-list { align-items: stretch; display: grid; gap: 2px; }
	.tbwb-nav li, .tbwb-nav .menu-item-has-children { align-items: center; display: grid; grid-template-columns: 1fr auto; width: 100%; }
	.tbwb-nav li > a { font-size: 16px; padding: 8px 4px; width: 100%; }
	.tbwb-nav li > a::after { display: none; }
	.tbwb-submenu-toggle { height: 44px; width: 44px; }
	.tbwb-nav .sub-menu { border: 0; border-left: 2px solid var(--tb-line); border-radius: 0; box-shadow: none; display: none; grid-column: 1/-1; margin: 2px 0 10px 12px; min-width: 0; opacity: 1; padding: 2px 0 2px 12px; pointer-events: auto; position: static; transform: none; visibility: visible; width: calc(100% - 12px); }
	.tbwb-nav .menu-item-has-children.is-submenu-open > .sub-menu { display: grid; }
	.tbwb-nav .sub-menu a { font-size: 15px; font-weight: 600; }
	.tbwb-nav-phone { border-top: 1px solid var(--tb-line); padding: 12px 4px 4px; }
	.tbwb-nav-cta { width: 100%; }
	.tbwb-trust { gap: 20px 0; grid-template-columns: repeat(3, 1fr); }
	.tbwb-trust .elementor-widget-icon-box:nth-child(3) { border-right: 0; }
	.tbwb-services-grid, .tbwb-process-steps { grid-template-columns: repeat(2, 1fr); }
	.tbwb-post-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
	:root { --tb-shell: calc(100% - 40px); --tb-header-height: 76px; --tb-section: 60px; }
	body { font-size: 16px; }
	body.tbwb-has-sticky-header { padding-bottom: 66px; }
	body.admin-bar .tbwb-header { top: 46px; }
	.tbwb-utility { display: none; }
	.tbwb-nav-wrap { min-height: 76px; }
	.tbwb-brand .tbwb-logo { max-height: 54px; max-width: 150px; }
	.tbwb-hero, .tbwb-page-hero, .tbwb-section, .tbwb-cta, .tbwb-trust { padding-inline: 20px; }
	.tbwb-hero { background: var(--tb-cream); gap: 36px; grid-template-columns: 1fr; min-height: 0; padding-block: 54px; }
	.tbwb-hero::before { display: none; }
	.tbwb-hero h1, .tbwb-page-hero h1 { font-size: clamp(36px, 10vw, 46px); letter-spacing: -.04em; }
	.tbwb-hero-actions { display: grid; }
	.tbwb-hero-actions .elementor-button { width: 100%; }
	.tbwb-hero-media img { aspect-ratio: 4/3; border-radius: var(--tb-radius-lg); max-height: none; }
	.tbwb-trust { grid-template-columns: 1fr 1fr; padding-block: 22px; }
	.tbwb-trust .elementor-widget-icon-box { border-right: 0; padding: 10px 12px; }
	.tbwb-trust .elementor-icon-box-wrapper { align-items: flex-start; }
	.tbwb-intro, .tbwb-why, .tbwb-provider, .tbwb-home-location, .tbwb-contact-page, .tbwb-content { grid-template-columns: 1fr; }
	.tbwb-intro, .tbwb-provider { gap: 34px; }
	.tbwb-intro-media { grid-row: 2; }
	.tbwb-section-header, .tbwb-process-header { display: block; }
	.tbwb-section-header .services-copy, .tbwb-process-header .process-copy { margin-top: 18px; }
	.tbwb-services-grid, .tbwb-process-steps, .tbwb-workflow, .tbwb-post-grid { grid-template-columns: 1fr; }
	.tbwb-post-card--featured { grid-column: auto; }
	.tbwb-post-card--featured:has(.tbwb-post-image) { display: block; }
	.tbwb-post-card--featured .tbwb-post-image { aspect-ratio: 16/10; min-height: 0; }
	.tbwb-card, .tbwb-step { min-height: 0; }
	.tbwb-patient-actions { display: grid; grid-template-columns: 1fr; }
	.tbwb-patient-actions > * { grid-column: 1; }
	.tbwb-patient-actions .elementor-button { width: 100%; }
	.tbwb-provider > :not(.provider-image), .tbwb-provider > .provider-image { grid-column: 1; grid-row: auto; }
	.tbwb-provider > .provider-image { grid-row: 5; }
	.tbwb-home-location .elementor-widget-google_maps iframe, .tbwb-contact-page .elementor-widget-google_maps iframe { min-height: 340px; }
	.tbwb-content > .section-title, .tbwb-content > .section-copy, .tbwb-content > .section-list { grid-column: 1; grid-row: auto; }
	.tbwb-workflow > * { grid-column: 1; }
	.tbwb-contact-form form { grid-template-columns: 1fr; }
	.tbwb-field, .tbwb-field--full, .tbwb-contact-form .tbwb-consent, .tbwb-contact-form form > button { grid-column: 1; }
	.tbwb-contact-form form > button { width: 100%; }
	.tbwb-footer-grid { grid-template-columns: 1fr 1fr; }
	.tbwb-footer-bottom { display: grid; gap: 8px; }
	.tbwb-mobile-bar { align-items: stretch; background: var(--tb-white); border-top: 1px solid var(--tb-line); bottom: 0; display: grid; grid-template-columns: repeat(2, 1fr); left: 0; padding-bottom: env(safe-area-inset-bottom); position: fixed; right: 0; z-index: 999; }
	.tbwb-mobile-bar a { align-items: center; color: var(--tb-black); display: flex; font-size: 13px; font-weight: 800; justify-content: center; min-height: 58px; text-decoration: none; }
	.tbwb-mobile-bar a:first-child { background: var(--tb-red); color: var(--tb-white); }
}

@media (max-width: 480px) {
	:root { --tb-shell: calc(100% - 36px); }
	.tbwb-hero, .tbwb-page-hero, .tbwb-section, .tbwb-cta, .tbwb-trust { padding-inline: 18px; }
	.tbwb-trust { grid-template-columns: 1fr; }
	.tbwb-trust .elementor-widget-icon-box { border-bottom: 1px solid #eadbbd; }
	.tbwb-trust .elementor-widget-icon-box:last-child { border-bottom: 0; }
	.tbwb-footer-grid { grid-template-columns: 1fr; }
	.tbwb-actions { display: grid; }
	.tbwb-actions .tbwb-button { width: 100%; }
	.tbwb-cta .elementor-widget-button { display: block; margin: 10px 0 0; }
	.tbwb-cta .elementor-button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { scroll-behavior: auto; transition-duration: .01ms; }
}

/* Elementor runtime enforcement.
 * Elementor's generated flex-container stylesheet is page-specific and can load
 * after component styles. These selectors preserve the authored grid system
 * without relying on brittle generated element IDs or !important declarations. */
body .elementor .elementor-element.e-con.tbwb-global-header-container,
body .elementor .elementor-element.e-con.tbwb-global-footer-container,
body .elementor .elementor-element.e-con.tbwb-hero,
body .elementor .elementor-element.e-con.tbwb-page-hero,
body .elementor .elementor-element.e-con.tbwb-section,
body .elementor .elementor-element.e-con.tbwb-cta,
body .elementor .elementor-element.e-con.tbwb-trust {
	max-width: none;
	width: 100%;
}
body .elementor .elementor-element.e-con.tbwb-hero,
body .elementor .elementor-element.e-con.tbwb-trust,
body .elementor .elementor-element.e-con.tbwb-intro,
body .elementor .elementor-element.e-con.tbwb-section-header,
body .elementor .elementor-element.e-con.tbwb-services-grid,
body .elementor .elementor-element.e-con.tbwb-process-header,
body .elementor .elementor-element.e-con.tbwb-process-steps,
body .elementor .elementor-element.e-con.tbwb-why,
body .elementor .elementor-element.e-con.tbwb-patient-actions,
body .elementor .elementor-element.e-con.tbwb-provider,
body .elementor .elementor-element.e-con.tbwb-home-location,
body .elementor .elementor-element.e-con.tbwb-contact-page,
body .elementor .elementor-element.e-con.tbwb-content,
body .elementor .elementor-element.e-con.tbwb-workflow,
body .elementor .elementor-element.e-con.tbwb-post-grid,
body .elementor .elementor-element.e-con.tbwb-footer-grid {
	display: grid;
}
body .elementor .elementor-element.e-con.tbwb-hero { grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); }
body .elementor .elementor-element.e-con.tbwb-trust { grid-template-columns: repeat(5, minmax(0, 1fr)); }
body .elementor .elementor-element.e-con.tbwb-intro { grid-template-columns: minmax(0, .95fr) minmax(360px, 1.05fr); }
body .elementor .elementor-element.e-con.tbwb-section-header,
body .elementor .elementor-element.e-con.tbwb-process-header { grid-template-columns: 1.15fr .85fr; }
body .elementor .elementor-element.e-con.tbwb-services-grid,
body .elementor .elementor-element.e-con.tbwb-process-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body .elementor .elementor-element.e-con.tbwb-why { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body .elementor .elementor-element.e-con.tbwb-patient-actions { grid-template-columns: repeat(3, max-content); }
body .elementor .elementor-element.e-con.tbwb-provider { grid-template-columns: minmax(0, 1fr) minmax(360px, .85fr); }
body .elementor .elementor-element.e-con.tbwb-home-location,
body .elementor .elementor-element.e-con.tbwb-contact-page { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
body .elementor .elementor-element.e-con.tbwb-content { grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr); }
body .elementor .elementor-element.e-con.tbwb-workflow { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body .elementor .elementor-element.e-con.tbwb-post-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body .elementor .elementor-element.e-con.tbwb-footer-grid { grid-template-columns: 1.35fr .8fr .9fr 1.15fr; }
body .elementor .elementor-element.e-con.tbwb-hero--no-image { grid-template-columns: minmax(0, 780px); }
body .elementor .elementor-element.e-con.tbwb-intro--no-image { grid-template-columns: minmax(0, 720px); }
body .elementor .elementor-element.e-con.tbwb-provider--no-image { grid-template-columns: minmax(0, 760px); }
body .elementor .elementor-element.e-con.tbwb-hero--logo { grid-template-columns: minmax(0, 1.1fr) minmax(300px, .7fr); }
body .elementor .tbwb-hero--logo .tbwb-hero-media {
	align-items: center;
	background: rgba(255, 255, 255, .7);
	border: 1px solid rgba(217, 31, 53, .12);
	border-radius: 40px 40px 18px 18px;
	display: flex;
	justify-content: center;
	min-height: 430px;
	padding: clamp(36px, 5vw, 70px);
}
body .elementor .tbwb-hero--logo .tbwb-hero-media::before { display: none; }
body .elementor .tbwb-hero--logo .tbwb-hero-media img {
	aspect-ratio: auto;
	border-radius: 0;
	box-shadow: none;
	max-height: 310px;
	object-fit: contain;
}
body .elementor .elementor-element.e-con.tbwb-services-grid > .e-con,
body .elementor .elementor-element.e-con.tbwb-process-steps > .e-con,
body .elementor .elementor-element.e-con.tbwb-workflow > .e-con {
	min-width: 0;
	width: auto;
}

@media (max-width: 1080px) {
	body .elementor .elementor-element.e-con.tbwb-trust { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	body .elementor .elementor-element.e-con.tbwb-services-grid,
	body .elementor .elementor-element.e-con.tbwb-process-steps,
	body .elementor .elementor-element.e-con.tbwb-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
	body .elementor .elementor-element.e-con.tbwb-hero,
	body .elementor .elementor-element.e-con.tbwb-hero--logo,
	body .elementor .elementor-element.e-con.tbwb-intro,
	body .elementor .elementor-element.e-con.tbwb-why,
	body .elementor .elementor-element.e-con.tbwb-provider,
	body .elementor .elementor-element.e-con.tbwb-home-location,
	body .elementor .elementor-element.e-con.tbwb-contact-page,
	body .elementor .elementor-element.e-con.tbwb-content { grid-template-columns: minmax(0, 1fr); }
	body .elementor .elementor-element.e-con.tbwb-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body .elementor .elementor-element.e-con.tbwb-section-header,
	body .elementor .elementor-element.e-con.tbwb-process-header { display: block; }
	body .elementor .elementor-element.e-con.tbwb-services-grid,
	body .elementor .elementor-element.e-con.tbwb-process-steps,
	body .elementor .elementor-element.e-con.tbwb-workflow,
	body .elementor .elementor-element.e-con.tbwb-post-grid,
	body .elementor .elementor-element.e-con.tbwb-patient-actions { grid-template-columns: minmax(0, 1fr); }
	body .elementor .elementor-element.e-con.tbwb-hero--logo .tbwb-hero-media { min-height: 280px; padding: 36px; }
}

@media (max-width: 480px) {
	body .elementor .elementor-element.e-con.tbwb-trust,
	body .elementor .elementor-element.e-con.tbwb-footer-grid { grid-template-columns: minmax(0, 1fr); }
}
