/* TOA Self-Pay — shared styles. Fonts: Playfair Display (headings) + IBM Plex Sans (everything else) only. */
:root {
	--toa-navy: var(--e-global-color-primary, #0e2e4a);
	--toa-blue: var(--e-global-color-secondary, #027db6);
	--toa-text: var(--e-global-color-text, #212121);
	--toa-gray: var(--e-global-color-toa_gray, #ededed);
	--toa-border: var(--e-global-color-toa_border, #d8d8d8);
	--toa-serif: "Playfair Display", Georgia, serif;
	--toa-sans: "IBM Plex Sans", Arial, sans-serif;
	--toa-focus: 3px solid #ffbf47;
	--toa-gutter: 100px;
}
@media (max-width: 1024px) { :root { --toa-gutter: 40px; } }
@media (max-width: 767px) { :root { --toa-gutter: 16px; } }

body { font-family: var(--toa-sans); color: var(--toa-text); }
/* Override Hello Elementor reset link colors (#c36). */
body a { color: var(--toa-blue); }
body a:hover, body a:active { color: var(--toa-navy); }

/* Visible focus for keyboard users on every interactive element (WCAG 2.4.7 / 2.4.11). */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
.elementor-button:focus-visible { outline: var(--toa-focus); outline-offset: 2px; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px;
	overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}

/* ---------- Buttons ---------- */
.toa-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	padding: 12px 32px; border-radius: 4px; box-shadow: 0 0 10px 2px rgba(0, 0, 0, .1);
	font: 700 15px/24px var(--toa-sans); letter-spacing: -.005em; text-transform: uppercase;
	color: #fff; text-decoration: none; transition: filter .15s ease;
}
a.toa-btn:hover, a.toa-btn:focus, a.toa-btn:active { filter: brightness(1.12); color: #fff; }
.toa-btn--sm { padding: 8px 12px; font-size: 14px; letter-spacing: 0; white-space: nowrap; }
.toa-btn--navy { background: var(--toa-navy); }
.toa-btn--blue { background: var(--toa-blue); }

/* ---------- Header top bar ---------- */
.toa-topbar { display: flex; justify-content: flex-end; margin: 0; padding: 0; list-style: none; }
.toa-topbar li { border-left: 1px solid rgba(255, 255, 255, .4); }
.toa-topbar li:last-child { border-right: 1px solid rgba(255, 255, 255, .4); }
.toa-topbar a, .toa-topbar a:hover {
	display: flex; align-items: center; gap: 12px; padding: 6px 24px; color: #fff; text-decoration: none;
}
.toa-topbar a:hover .toa-topbar__main { text-decoration: underline; }
.toa-topbar svg { flex: none; width: 16px; height: 16px; color: var(--toa-blue); }
.toa-topbar__text { display: flex; flex-direction: column; text-align: left; }
.toa-topbar__kicker { font: 500 11px/14px var(--toa-sans); }
.toa-topbar__main { font: 700 13px/16px var(--toa-sans); text-transform: uppercase; }
@media (max-width: 767px) {
	.toa-topbar { flex-wrap: wrap; justify-content: center; }
	.toa-topbar li { flex: 1 1 50%; border: 0; }
	.toa-topbar a { padding: 8px 12px; }
}

/* ---------- Page hero (navy band + decorative arc) ---------- */
.toa-hero, .e-con.toa-hero { position: relative; overflow: hidden; --overflow: hidden; }
.toa-hero::after {
	content: ""; position: absolute; top: -7px; right: -104px; width: 270px; height: 304px; pointer-events: none;
	background: url("hero-arc.svg") no-repeat center / contain;
}
.toa-hero > * { position: relative; z-index: 1; }
@media (max-width: 767px) { .toa-hero::after { width: 140px; height: 158px; right: -60px; } }

/* ---------- Catalog (homepage grid) ---------- */
.toa-catalog__tools { display: flex; align-items: center; gap: 75px; margin-bottom: 50px; }
.toa-search { flex: 1; display: flex; margin: 0; }
.toa-search .toa-search__input {
	flex: 1; min-width: 0; border: 1px solid var(--toa-border); border-radius: 4px 0 0 4px; padding: 10px 20px;
	font: 400 15px/28px var(--toa-sans); color: #000; background: #fff;
}
.toa-search .toa-search__input::placeholder { color: #595959; }
.toa-search .toa-search__button, .toa-search .toa-search__button:hover, .toa-search .toa-search__button:focus {
	display: flex; align-items: center; padding: 10px 12.5px; border: 1px solid var(--toa-border);
	border-radius: 0 4px 4px 0; background: var(--toa-border); color: var(--toa-navy); cursor: pointer;
}
.toa-type { display: flex; align-items: center; gap: 10px; }
.toa-type__label { font: 600 17px/24px var(--toa-sans); color: var(--toa-navy); text-transform: uppercase; letter-spacing: .002em; }
.toa-type .toa-type__select {
	width: auto; field-sizing: content; border-radius: 0; text-transform: uppercase; letter-spacing: .002em;
	appearance: none; border: 0; background: transparent url("icon-chevron-down.svg") no-repeat right center / 12.69px 7.61px;
	padding: 4px 20px 4px 0; font: 600 17px/24px var(--toa-sans); color: var(--toa-navy); cursor: pointer;
}
.toa-catalog__status:empty { display: none; }
.toa-catalog__status { margin: -30px 0 20px; font: 400 15px/24px var(--toa-sans); }
.toa-catalog__grid {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 32px 35px;
	margin: 0; padding: 0; list-style: none;
}
.toa-card {
	display: flex; flex-direction: column; gap: 24px; padding: 36px 32px; border-radius: 12px; background: var(--toa-gray);
}
.toa-card[hidden] { display: none; }
.toa-catalog .toa-card__title { margin: 0; font: 600 25px/1.2 var(--toa-sans); color: var(--toa-text); }
.toa-card__price { margin: 0; font: 600 30px/1.2 var(--toa-sans); color: var(--toa-blue); letter-spacing: -.01em; }
.toa-card__actions { display: flex; flex-wrap: wrap; gap: 12px; padding: 2px 0; }
.toa-catalog__empty { font: 400 18px/28px var(--toa-sans); }
@media (max-width: 767px) {
	.toa-catalog__tools { flex-direction: column; align-items: stretch; gap: 16px; }
	.toa-catalog .toa-card__title { font-size: 22px; }
}

/* ---------- Footer ---------- */
.toa-footer-links { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; margin: 0; padding: 0; }
.toa-footer-links li { white-space: nowrap; }
.toa-footer-links ul { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 20px; margin: 0; padding: 0; list-style: none; }
.toa-footer-links a, .toa-footer-links a:hover { font: 400 14px/1.2 var(--toa-sans); color: var(--toa-text); text-decoration: none; }
.toa-footer-links a:hover { text-decoration: underline; }
@media (max-width: 767px) {
	.toa-footer-links, .toa-footer-links ul { align-items: center; justify-content: center; }
}

/* ---------- Shared: large/block buttons, page hero text ---------- */
.toa-btn--lg { padding: 14px 28px; font-size: 17px; }
.toa-btn--block { display: flex; width: 100%; }
button.toa-btn, button.toa-btn:hover, button.toa-btn:focus { border: 0; cursor: pointer; color: #fff; }
/* Hello's [type=submit] reset would otherwise blank our button backgrounds. */
button.toa-btn.toa-btn--blue, button.toa-btn.toa-btn--blue:hover, button.toa-btn.toa-btn--blue:focus { background: var(--toa-blue); }
button.toa-btn.toa-btn--navy, button.toa-btn.toa-btn--navy:hover, button.toa-btn.toa-btn--navy:focus { background: var(--toa-navy); }
button.toa-btn { border-radius: 4px; font-family: var(--toa-sans); }
.toa-page-hero { color: #fff; }
.toa-page-hero__title, .toa-product-hero__title { margin: 0 0 24px; font: 700 38px/48px var(--toa-serif); color: #fff; letter-spacing: -.002em; }
.toa-page-hero__subtitle, .toa-product-hero__subtitle { margin: 0; font: 400 24px/1.3 var(--toa-sans); color: #fff; }
.toa-page-hero--left { width: 100%; text-align: left; }
@media (max-width: 767px) {
	.toa-page-hero__title, .toa-product-hero__title { font-size: 30px; line-height: 38px; margin-bottom: 16px; }
	.toa-page-hero__subtitle, .toa-product-hero__subtitle { font-size: 19px; }
}

/* ---------- Product page ---------- */
.toa-product-hero { display: flex; align-items: center; justify-content: space-between; gap: 32px; width: 100%; }
.toa-product-hero__text { flex: 1 1 auto; max-width: 1100px; padding-bottom: 12px; }
.toa-product-hero__buy { flex: 0 0 253px; display: flex; flex-direction: column; align-items: center; gap: 21px; }
.toa-product-hero__price { margin: 0; font: 600 48px/1.2 var(--toa-sans); color: #fff; letter-spacing: -.01em; }
@media (max-width: 767px) {
	.toa-product-hero { flex-direction: column; align-items: flex-start; }
	.toa-product-hero__buy { flex-basis: auto; align-items: flex-start; }
}
.toa-breadcrumb ol { display: flex; flex-wrap: wrap; margin: 0 0 40px; padding: 0; list-style: none; font: 600 16px/20px var(--toa-sans); color: var(--toa-navy); }
.toa-breadcrumb li + li::before { content: "/"; margin: 0 .35em; }
.toa-breadcrumb a, .toa-breadcrumb a:hover { color: var(--toa-navy); }
.toa-product__desc { font: 400 20px/28px var(--toa-sans); color: #000; }
.toa-product__desc p { margin: 0 0 18px; }
.toa-product__desc.toa-product__desc h3 { margin: 0 0 6px; font: 700 20px/28px var(--toa-sans); color: #000; }
.toa-product__desc ul { margin: 0 0 18px; padding-left: 20px; }
.toa-product__gfe { margin: 40px 0 0; }
.toa-product__gfe .toa-btn--lg { padding: 17px 24px; letter-spacing: .002em; }

/* ---------- "Provider" select ---------- */
.toa-select__market + .toa-select__market { margin-top: 60px; }
.toa-select .toa-select__heading { margin: 0 0 40px; padding-bottom: 10px; text-align: center; font: 700 32px/36px var(--toa-serif); color: var(--toa-navy); }
.toa-select__grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 40px 44px; margin: 0; padding: 0; list-style: none; }
.toa-provider { display: flex; flex-direction: column; align-items: center; gap: 12px; width: 238px; padding-bottom: 4px; text-align: center; }
.toa-select .toa-provider__photo, .toa-select .toa-provider__placeholder { width: 238px; height: 320px; max-width: 100%; border-radius: 16px; object-fit: cover; object-position: center top; }
.toa-provider__placeholder { display: flex; align-items: center; justify-content: center; background: var(--toa-gray); font: 700 48px/1 var(--toa-serif); color: var(--toa-navy); }
.toa-select .toa-provider--location .toa-provider__placeholder { height: 140px; font-size: 32px; }
.toa-provider__name { margin: 0; font: 600 20px/28px var(--toa-sans); color: #000; letter-spacing: -.006em; }
.toa-select .toa-provider__select, .toa-select .toa-provider__select:hover, .toa-select .toa-provider__select:focus {
	padding: 0; border: 0; background: none; cursor: pointer; font: 700 16px/24px var(--toa-sans); color: var(--toa-navy);
	text-transform: uppercase; text-decoration: underline; text-underline-offset: 3px;
}
.toa-select__continue { display: flex; justify-content: center; }

/* ---------- Cart ---------- */
.toa-cart { display: flex; align-items: flex-start; gap: 110px; }
.toa-cart--empty { flex-direction: column; gap: 24px; font: 400 20px/28px var(--toa-sans); }
.toa-cart__table { flex: 1; border-collapse: collapse; margin: 5px 0 0; font: 400 18px/18px var(--toa-sans); color: #000; }
.toa-cart .toa-cart__table { width: auto; margin-bottom: 0; font-size: 18px; }
.toa-cart .toa-cart__table th, .toa-cart .toa-cart__table td { border: 0; background: none; line-height: 18px; }
.toa-cart .toa-cart__table th { padding: 0 0 15px; border-bottom: 1px solid #ccc; text-align: left; font: 700 18px/28px var(--toa-sans); }
.toa-cart .toa-cart__table td { padding: 15px 0 0; vertical-align: top; text-align: left; border: 0; }
.toa-cart .toa-cart__table th:first-child, .toa-cart .toa-cart__table td:first-child { width: 420px; padding-right: 60px; }
.toa-cart .toa-cart__table th:nth-child(2), .toa-cart .toa-cart__table td:nth-child(2) { padding-right: 60px; }
.toa-cart__table .toa-cart__service { font: 600 22px/20px var(--toa-sans); color: var(--toa-blue); text-decoration: none; }
.toa-cart__selected { margin: 12px 0 0; font: 400 18px/18px var(--toa-sans); color: var(--toa-text); }
.toa-cart__actions { display: flex; gap: 16px; margin: 14px 0 0; font: 400 15px/20px var(--toa-sans); }
.toa-cart__totals { flex: 0 0 424px; display: flex; flex-direction: column; gap: 25px; padding: 45px; border-radius: 20px; background: var(--toa-gray); }
.toa-cart .toa-cart__totals-title { margin: 0; font: 600 32px/1.2 var(--toa-sans); color: var(--toa-text); }
.toa-cart__totals dl { display: flex; flex-direction: column; gap: 5px; margin: 0; }
.toa-cart__totals dl > div { display: flex; justify-content: space-between; gap: 60px; font: 400 18px/28px var(--toa-sans); color: #000; }
.toa-cart__totals dl > div:first-child { padding-bottom: 7.5px; border-bottom: 1px solid #ccc; }
.toa-cart__totals dt { font-weight: 700; }
.toa-cart__totals dd { margin: 0; text-align: right; }
.toa-cart__totals .toa-btn + .toa-btn { margin-top: -10px; }
@media (max-width: 1024px) {
	.toa-cart { flex-direction: column; gap: 40px; }
	.toa-cart__totals { flex-basis: auto; width: 100%; max-width: 424px; }
}
@media (max-width: 767px) {
	.toa-cart__table thead { position: absolute; clip: rect(1px, 1px, 1px, 1px); }
	.toa-cart .toa-cart__table, .toa-cart .toa-cart__table tbody, .toa-cart .toa-cart__table tr, .toa-cart .toa-cart__table td { display: block; width: 100%; box-sizing: border-box; }
	.toa-cart .toa-cart__table th:first-child, .toa-cart .toa-cart__table td:first-child,
	.toa-cart .toa-cart__table th:nth-child(2), .toa-cart .toa-cart__table td:nth-child(2) { width: 100%; padding-right: 0; }
	.toa-cart__table td[data-label="Price"]::before, .toa-cart__table td[data-label="Subtotal"]::before { content: attr(data-label) ": "; font-weight: 700; }
	.toa-cart__totals { padding: 28px; box-sizing: border-box; }
}
.toa-notice { font: 400 20px/28px var(--toa-sans); }

/* ---------- Good Faith Estimate dialog + form ---------- */
dialog.toa-gfe { width: min(480px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 0; border: 0; border-radius: 16px; box-shadow: 0 20px 60px rgba(0, 0, 0, .3); color: var(--toa-text); }
dialog.toa-gfe::backdrop { background: rgba(14, 46, 74, .6); }
.toa-gfe__inner { position: relative; padding: 32px 28px 28px; }
.toa-gfe .toa-gfe__close, .toa-gfe .toa-gfe__close:hover, .toa-gfe .toa-gfe__close:focus {
	position: absolute; top: 14px; right: 14px; display: flex; padding: 8px; border: 0; border-radius: 4px; background: none; color: #555; cursor: pointer;
}
.toa-gfe .toa-gfe__title { margin: 0 32px 10px 0; font: 700 22px/1.25 var(--toa-sans); color: #000; }
.toa-gfe__intro { margin: 0 0 14px; font: 400 15px/1.5 var(--toa-sans); color: #444; }
.toa-gfe__service { margin: 0 0 18px; padding: 10px 14px; border-radius: 8px; background: var(--toa-gray); font: 400 15px/1.4 var(--toa-sans); }
.toa-gfe__service span { font-weight: 700; }
.toa-gfe .gform_wrapper .gform_fields { row-gap: 18px; }
.toa-gfe .gform_wrapper .gfield_label { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 4px; margin: 0 0 8px; font: 700 15px/1.3 var(--toa-sans); color: #000; }
.toa-gfe .gform_wrapper .gfield_required { color: #c02b0a; }
.toa-gfe .gform_wrapper input[type=text], .toa-gfe .gform_wrapper input[type=email], .toa-gfe .gform_wrapper input[type=tel], .toa-gfe .gform_wrapper select {
	width: 100%; min-height: 46px; padding: 10px 16px; border: 1px solid #d8d8d8; border-radius: 23px; background-color: #fff;
	font: 400 15px/1.4 var(--toa-sans); color: #000; box-shadow: none;
}
.toa-gfe .gform_wrapper select { appearance: none; padding-right: 40px; background: #fff url("icon-chevron-down.svg") no-repeat right 16px center / 12.69px 7.61px; }
.toa-gfe .gform_wrapper select:disabled { background-color: #f5f5f5; color: #595959; }
.toa-gfe .gform_wrapper input::placeholder { color: #767676; }
.toa-gfe .gform_wrapper input:focus, .toa-gfe .gform_wrapper select:focus { outline: var(--toa-focus); outline-offset: 1px; border-color: var(--toa-blue); }
.toa-gfe .gform_wrapper .gfield[hidden] { display: none; }
.toa-gfe .gform_wrapper .gform_footer { margin-top: 22px; padding: 0; }
.toa-gfe .gform_wrapper .gform_footer input[type=submit], .toa-gfe .gform_wrapper .gform_footer button {
	width: 100%; padding: 14px 22px; border: 0; border-radius: 4px; background: var(--toa-blue); box-shadow: 0 0 10px 2px rgba(0, 0, 0, .1);
	font: 700 17px/24px var(--toa-sans); color: #fff; text-transform: uppercase; cursor: pointer;
}
.toa-gfe .gform_wrapper .gform_footer input[type=submit]:hover { filter: brightness(1.12); }
.toa-gfe .gform_wrapper .gfield_validation_message, .toa-gfe .gform_wrapper .validation_message { margin-top: 6px; font: 400 14px/1.4 var(--toa-sans); color: #c02b0a; }
.toa-gfe__done { margin: 0; font: 400 16px/1.5 var(--toa-sans); }
/* Gravity Forms "Orbital" theme overrides, scoped to the GFE dialog. */
#request-gfe .gform_wrapper.gform-theme { --gf-color-primary: #027db6; --gf-ctrl-btn-bg-color-primary: #027db6; --gf-ctrl-border-color: #d8d8d8; --gf-ctrl-radius: 23px; --gf-ctrl-label-color-primary: #000; }
#request-gfe .gform_wrapper.gform-theme .gform_footer .gform_button {
	width: 100%; padding: 14px 22px; border: 0; border-radius: 4px; background: #027db6; box-shadow: 0 0 10px 2px rgba(0, 0, 0, .1);
	font: 700 17px/24px "IBM Plex Sans", Arial, sans-serif; color: #fff; text-transform: uppercase; letter-spacing: -.002em;
}
#request-gfe .gform_wrapper.gform-theme .gform_footer .gform_button:hover { background: #026a9b; }
#request-gfe .gform_wrapper.gform-theme .ginput_container_date input { width: 100%; max-width: none; inline-size: 100%; background-image: none; padding-inline-end: 16px; }
#request-gfe .gform_wrapper.gform-theme .ginput_container_date { width: 100%; inline-size: 100%; }
#request-gfe .gform_wrapper.gform-theme .ginput_container_date .ui-datepicker-trigger, #request-gfe .gform_wrapper.gform-theme .ginput_container_date::after { display: none; }
#request-gfe .gform_wrapper.gform-theme .gform_required_legend { margin: 0 0 14px; font: 400 13px/1.4 "IBM Plex Sans", Arial, sans-serif; color: #595959; }
