.ca-fold { margin-top: .25rem; margin-bottom: 1.6rem; }

.ca-lead {
	background: #fff;
	border: 1px solid #e9ecef;
	border-top: 4px solid #ea580c;
	border-radius: 12px;
	padding: 1.4rem 1.5rem 1.25rem;
	box-shadow: 0 4px 16px rgba(0,0,0,.05);
	position: sticky; top: 1rem;
}
.ca-lead h2 {
	font-size: 1.2rem; font-weight: 800;
	letter-spacing: -.01em;
	margin: 0 0 .15rem; color: #1a1d22;
}
.ca-lead .ca-lead-sub {
	color: #6c757d; font-size: .88rem;
	margin: 0 0 1rem; line-height: 1.45;
}
.ca-lead .form-control {
	border-radius: 8px; border: 1px solid #ced4da;
	font-size: .94rem;
}
.ca-lead .form-control:focus {
	border-color: #14b8a6;
	box-shadow: 0 0 0 3px rgba(20,184,166,.15);
}
.ca-lead small { color: #6c757d; font-size: .78rem; }
.ca-lead .quote-submit {
	display: inline-flex; align-items: center; justify-content: center;
	gap: .45rem;
	background: linear-gradient(135deg, #fb923c 0%, #ea580c 100%);
	color: #fff; border: 0; border-radius: 8px;
	padding: .7rem 1.2rem; font-weight: 700;
	font-size: .92rem; text-transform: uppercase; letter-spacing: .04em;
	box-shadow: 0 2px 6px rgba(234,88,12,.25), 0 6px 14px rgba(234,88,12,.18);
	transition: transform .12s ease, filter .12s ease;
	cursor: pointer; width: 100%;
}
.ca-lead .quote-submit:hover { transform: translateY(-1px); filter: brightness(1.05); color: #fff; }
.ca-lead .trust-list {
	list-style: none; padding: 0; margin: .9rem 0 0;
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .35rem .75rem;
	font-size: .8rem; color: #495057;
	border-top: 1px solid #f1f3f5; padding-top: .9rem;
}
.ca-lead .trust-list li { display: flex; align-items: center; gap: .4rem; }
.ca-lead .trust-list i { color: #14b8a6; font-size: .85rem; }

.ca-extra-field {
	position: absolute !important;
	left: -9999px; top: auto;
	width: 1px; height: 1px;
	overflow: hidden;
}

.ca-lead .quote-submit:disabled {
	opacity: .65; cursor: progress; transform: none; filter: none;
	box-shadow: none;
}
.ca-lead-error {
	background: #fef2f2; border: 1px solid #fecaca; color: #991b1b;
	border-radius: 8px; padding: .55rem .75rem;
	font-size: .85rem; margin-bottom: .75rem;
}
.ca-lead-confirm {
	text-align: center; padding: .5rem 0 .25rem;
}
.ca-lead-confirm .ca-check {
	width: 64px; height: 64px;
	margin: 0 auto .85rem;
	background: linear-gradient(135deg, #14b8a6 0%, #0f766e 100%);
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	color: #fff; font-size: 2rem;
	box-shadow: 0 6px 18px rgba(15,118,110,.25);
	animation: caCheckPop .4s cubic-bezier(.34,1.56,.64,1);
}
@keyframes caCheckPop {
	0%   { transform: scale(0);   opacity: 0; }
	60%  { transform: scale(1.15); opacity: 1; }
	100% { transform: scale(1);   opacity: 1; }
}
.ca-lead-confirm h3 {
	font-size: 1.2rem; font-weight: 800; color: #1a1d22;
	margin: 0 0 .5rem; letter-spacing: -.01em;
}
.ca-lead-confirm p {
	color: #495057; font-size: .92rem; line-height: 1.55;
	margin: 0 0 .65rem; max-width: 32ch; margin-left: auto; margin-right: auto;
}
.ca-lead-confirm .next-steps {
	background: #f0fdfa; border: 1px solid #99f6e4;
	border-radius: 8px;
	padding: .65rem .8rem;
	margin: .85rem 0;
	font-size: .85rem; color: #115e59;
	text-align: left;
}
.ca-lead-confirm .next-steps strong {
	display: block; font-weight: 800; color: #0f766e;
	font-size: .7rem; text-transform: uppercase; letter-spacing: .12em;
	margin-bottom: .25rem;
}
.ca-lead-confirm .send-another {
	background: transparent; border: 1px solid #ced4da; color: #495057;
	padding: .5rem 1.1rem; border-radius: 8px;
	font-size: .82rem; font-weight: 600;
	cursor: pointer; margin-top: .5rem;
	transition: border-color .12s ease, color .12s ease;
}
.ca-lead-confirm .send-another:hover { border-color: #14b8a6; color: #0f766e; }

.ca-id {
	background: #fff;
	border: 1px solid #e9ecef;
	border-radius: 12px;
	padding: 1.5rem 1.6rem 1.25rem;
	box-shadow: 0 4px 16px rgba(0,0,0,.04);
}
.ca-id .ca-id-eyebrow {
	display: inline-flex; align-items: center; gap: .35rem;
	font-size: .68rem; font-weight: 700;
	letter-spacing: .14em; text-transform: uppercase;
	color: #0f766e;
	background: #f0fdfa; border: 1px solid #99f6e4;
	border-radius: 999px; padding: .2rem .65rem;
	margin-bottom: .35rem;
}
/* "This carrier is no longer available" banner — shown on the stripped
   variant of the detail page when carriers.unavailable_at is non-null. */
.ca-unavail-banner {
	display: flex; align-items: flex-start; gap: .75rem;
	background: #fff7ed; border: 1px solid #fed7aa; border-left: 4px solid #f97316;
	border-radius: 6px;
	padding: .75rem .95rem;
	margin: 0 0 1rem;
	color: #7c2d12; font-size: .92rem; line-height: 1.4;
}
.ca-unavail-banner i { color: #f97316; font-size: 1.1rem; margin-top: .15rem; flex-shrink: 0; }
.ca-unavail-banner strong { color: #7c2d12; font-weight: 700; display: block; margin-bottom: .15rem; }
/* "Other carriers in this area" block — shown directly under the unavailable
   banner so the visitor has somewhere to go before they bounce. */
.ca-alternates {
	background: #fafbfc; border: 1px solid #e9ecef;
	border-radius: 8px;
	padding: .9rem 1rem 1rem;
	margin: 0 0 1.1rem;
}
.ca-alternates-hd {
	display: flex; align-items: baseline; justify-content: space-between;
	gap: 1rem; flex-wrap: wrap;
	margin-bottom: .65rem;
}
.ca-alternates-hd h2 {
	font-size: .92rem; font-weight: 700;
	color: #1a1d22; margin: 0;
	letter-spacing: -.005em;
}
.ca-alternates-more {
	font-size: .78rem; font-weight: 700;
	color: #0f766e; text-decoration: none;
	text-transform: uppercase; letter-spacing: .08em;
	white-space: nowrap;
}
.ca-alternates-more:hover, .ca-alternates-more:focus-visible { color: #0d5b54; text-decoration: underline; }
.ca-alternates-more i { font-size: .7rem; margin-left: .3rem; }
.ca-alternates-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: .5rem;
	list-style: none; padding: 0; margin: 0;
}
.ca-alternates-list li { margin: 0; }
.ca-alternates-list a {
	display: block;
	background: #fff; border: 1px solid #e9ecef;
	border-radius: 6px;
	padding: .55rem .7rem;
	text-decoration: none; color: #1a1d22;
	transition: border-color .15s, box-shadow .15s, transform .15s;
}
.ca-alternates-list a:hover, .ca-alternates-list a:focus-visible {
	border-color: #14b8a6;
	box-shadow: 0 4px 10px rgba(20,184,166,.12);
	transform: translateY(-1px);
}
.ca-alt-name {
	display: block;
	font-size: .92rem; font-weight: 700;
	color: #1a1d22; line-height: 1.25;
	margin-bottom: .2rem;
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ca-alt-meta {
	display: flex; flex-wrap: wrap; gap: .35rem .75rem;
	font-size: .75rem; color: #6c757d;
}
.ca-alt-loc i { color: #adb5bd; margin-right: .2rem; }
.ca-alt-pu { font-weight: 600; color: #495057; }
.ca-id h1 {
	font-size: clamp(1.45rem, 2.6vw, 1.95rem);
	font-weight: 800; letter-spacing: -.02em;
	margin: .25rem 0 .35rem; line-height: 1.15;
	color: #1a1d22;
}
.ca-id .ca-id-loc {
	color: #495057; font-size: .98rem;
	margin: 0 0 .7rem;
}
.ca-id .ca-id-loc i { color: #6c757d; margin-right: .25rem; }
.ca-id .ca-id-badges {
	display: flex; flex-wrap: wrap; gap: .35rem;
	margin: 0 0 1.1rem;
}
.ca-id-phone {
	display: flex; align-items: center;
	gap: .85rem;
	background: #f0fdfa;
	border: 1px solid #99f6e4;
	border-radius: 10px;
	padding: .7rem 1rem;
	margin: 0 0 1.1rem;
	color: #0f766e;
	text-decoration: none;
	transition: background .15s, border-color .15s, transform .15s;
}
.ca-id-phone:hover, .ca-id-phone:focus-visible {
	background: #ccfbf1; border-color: #14b8a6;
	color: #0f766e; transform: translateY(-1px);
	box-shadow: 0 6px 14px rgba(20,184,166,.18);
}
.ca-id-phone i.fa-phone {
	font-size: 1.05rem;
	background: #14b8a6; color: #fff;
	width: 32px; height: 32px;
	border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	flex-shrink: 0;
}
.ca-id-phone-num {
	font-size: 1.15rem; font-weight: 800;
	font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
	letter-spacing: -.005em;
	color: #1a1d22;
}
.ca-id-phone-cta {
	font-size: .68rem; text-transform: uppercase; letter-spacing: .12em;
	color: #0f766e; font-weight: 700;
	margin-left: auto;
}

.ca-id-keys {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: .55rem;
	margin: 0 0 1.1rem;
	padding: 0; list-style: none;
}
.ca-id-keys li {
	background: #fafbfc;
	border: 1px solid #e9ecef;
	border-left: 3px solid #14b8a6;
	padding: .5rem .75rem;
}
.ca-id-keys .key {
	display: block;
	font-size: .65rem; text-transform: uppercase; letter-spacing: .12em;
	color: #6c757d; font-weight: 700; margin-bottom: .15rem;
}
.ca-id-keys .val {
	font-size: 1rem; color: #1a1d22; font-weight: 700;
	font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
	letter-spacing: -.005em;
}
.ca-id-keys a.val { text-decoration: none; color: #1a1d22; }
.ca-id-keys a.val:hover { color: #0f766e; }

.ca-id-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: .6rem;
	margin: 0;
	padding: 0; list-style: none;
}
.ca-id-stats li {
	background: #fff;
	border: 1px solid #e9ecef;
	border-bottom: 3px solid #14b8a6;
	border-radius: 0px;
	padding: .65rem .85rem;
	text-align: left;
}
.ca-id-stats .num {
	font-size: 1.35rem; font-weight: 800;
	color: #1a1d22; line-height: 1.15;
	letter-spacing: -.01em;
}
.ca-id-stats .lbl {
	font-size: .7rem; text-transform: uppercase; letter-spacing: .1em;
	color: #6c757d; font-weight: 700; margin-top: .2rem;
}

.ca-id-about {
	background: #fafbfc;
	border: 1px solid #e9ecef;
	border-left: 3px solid #14b8a6;
	padding: .9rem 1.05rem;
	margin-top: 1.2rem;
}
.ca-id-about h3 {
	font-size: .68rem; text-transform: uppercase; letter-spacing: .12em;
	color: #0f766e; font-weight: 800;
	margin: 0 0 .5rem;
}
.ca-id-about p {
	font-size: .92rem; color: #495057; line-height: 1.6;
	margin: 0;
}
.ca-id-about p strong { color: #1a1d22; }
.ca-id-about .src {
	display: block;
	font-size: .75rem; color: #6c757d;
	margin-top: .55rem;
	padding-top: .55rem;
	border-top: 1px dashed #e9ecef;
}
.ca-id-about .src i { color: #14b8a6; margin-right: .3rem; }

.ca-refresh-loader {
	background: #f0fdfa;
	border: 1px solid #99f6e4;
	color: #115e59;
	padding: .6rem .85rem;
	border-radius: 8px;
	font-size: .9rem;
	margin-top: 1rem;
}
.ca-refresh-loader.is-error {
	background: #fef2f2; border-color: #fecaca; color: #991b1b;
}
.ca-refresh-loader small { display: block; opacity: .8; font-size: .78rem; margin-top: .15rem; }

.ca-section { margin: 2rem 0; }
.ca-section h2 {
	font-size: .82rem; font-weight: 700; color: #1a1d22;
	text-transform: uppercase; letter-spacing: .08em;
	padding-bottom: .5rem; border-bottom: 1px solid #e9ecef;
	margin: 0 0 .9rem;
}

.ca-facts {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: .65rem;
	margin: 0; padding: 0; list-style: none;
}
.ca-facts li {
	background: #fafbfc;
	border: 1px solid #e9ecef;
	border-radius: 6px;
	padding: .55rem .8rem;
}
.ca-facts .key {
	display: block;
	font-size: .68rem; text-transform: uppercase; letter-spacing: .12em;
	color: #6c757d; font-weight: 700; margin-bottom: .15rem;
}
.ca-facts .val {
	font-size: .92rem; color: #1a1d22; font-weight: 600;
	word-break: break-word;
}

.ca-chips {
	display: flex; flex-wrap: wrap; gap: .4rem;
	list-style: none; padding: 0; margin: 0;
}
.ca-chips li {
	background: #f0fdfa;
	border: 1px solid #99f6e4;
	color: #115e59;
	border-radius: 999px;
	padding: .3rem .75rem;
	font-size: .85rem;
	font-weight: 600;
	display: inline-flex; align-items: center; gap: .35rem;
}
.ca-chips li i { color: #14b8a6; font-size: .85em; }
.ca-chips-group { margin-bottom: .9rem; }
.ca-chips-group:last-child { margin-bottom: 0; }
.ca-chips-group-lbl {
	font-size: .65rem; text-transform: uppercase; letter-spacing: .12em;
	color: #6c757d; font-weight: 700;
	margin: 0 0 .4rem;
}

.ca-safety-grid { display: grid; gap: 1.4rem; }
@media (min-width: 992px) {
	.ca-safety-grid { grid-template-columns: 1.4fr 1fr; }
}
.ca-safety-block {
	background: #fff;
	border: 1px solid #e9ecef;
	border-radius: 10px;
	padding: 1rem 1.1rem;
}
.ca-safety-block h3 {
	font-size: .68rem; text-transform: uppercase; letter-spacing: .12em;
	color: #6c757d; font-weight: 800;
	margin: 0 0 .65rem;
}

.ca-inspect-grid {
	display: grid;
	grid-template-columns: minmax(110px, auto) repeat(4, 1fr);
	gap: 0;
	font-size: .85rem;
}
.ca-inspect-grid .h, .ca-inspect-grid .rl, .ca-inspect-grid .c {
	padding: .45rem .55rem;
	border-bottom: 1px solid #f1f3f5;
}
.ca-inspect-grid .h {
	font-size: .65rem; text-transform: uppercase; letter-spacing: .1em;
	color: #6c757d; font-weight: 700;
	background: #fafbfc;
	text-align: right;
}
.ca-inspect-grid .h:first-child { text-align: left; }
.ca-inspect-grid .rl {
	font-size: .8rem; font-weight: 700; color: #1a1d22;
	background: #fafbfc;
}
.ca-inspect-grid .c {
	text-align: right;
	font-variant-numeric: tabular-nums;
	color: #1a1d22; font-weight: 600;
}
.ca-inspect-grid .c.dim { color: #adb5bd; font-weight: 400; }
.ca-inspect-grid > *:nth-last-child(-n+5) { border-bottom: 0; }

.ca-inspect-grid .c.pct-good { color: #15803d; font-weight: 800; background: #f0fdf4; }
.ca-inspect-grid .c.pct-warn { color: #92400e; font-weight: 800; background: #fffbeb; }
.ca-inspect-grid .c.pct-bad  { color: #991b1b; font-weight: 800; background: #fef2f2; }
.ca-inspect-grid .c.pct-natl { color: #6c757d; font-style: italic; }

.ca-crashes-row {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: .55rem;
	margin: 0; padding: 0; list-style: none;
}
.ca-crashes-row li {
	background: #fafbfc;
	border: 1px solid #e9ecef;
	border-bottom: 3px solid #14b8a6;
	border-radius: 8px;
	padding: .65rem .5rem;
	text-align: center;
}
.ca-crashes-row li.has-fatal { border-bottom-color: #dc2626; }
.ca-crashes-row .num {
	font-size: 1.35rem; font-weight: 800;
	color: #1a1d22; line-height: 1.15;
}
.ca-crashes-row .lbl {
	font-size: .65rem; text-transform: uppercase; letter-spacing: .1em;
	color: #6c757d; font-weight: 700; margin-top: .2rem;
}

/* ──────────────────────────────────────────────────────────────────────
   SMS Safety Record section (new, replaces the dead inspections_json
   block). Reuses the .ca-safety-grid + .ca-crashes-row from above so the
   visual rhythm stays consistent with the rest of the carrier page.
   ────────────────────────────────────────────────────────────────────── */

.ca-sms-head {
	display: flex; flex-wrap: wrap; align-items: baseline;
	justify-content: space-between; gap: .65rem;
	margin-bottom: 1rem;
}
.ca-sms-head h2 { margin: 0; }
.ca-sms-meta {
	display: flex; flex-wrap: wrap; gap: .4rem; align-items: center;
	font-size: .82rem;
}
.ca-sms-rating, .ca-sms-flag {
	display: inline-flex; align-items: center; gap: .3rem;
	padding: .25rem .6rem; border-radius: 999px;
	font-weight: 700; font-size: .78rem;
	background: #f1f3f5; color: #495057;
}
.ca-sms-flag.flag-critical { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.ca-sms-flag.flag-severe   { background: #fffbeb; color: #92400e; border: 1px solid #fde68a; }
.ca-sms-stale { color: #6c757d; font-size: .78rem; }

.ca-sms-section .ca-safety-block { margin-top: 1rem; }
.ca-sms-section .ca-safety-block:first-of-type { margin-top: 0; }

.ca-oos-grid {
	display: grid; grid-template-columns: minmax(80px, auto) 1fr 1fr;
	gap: 0; font-size: .85rem;
}
.ca-oos-grid .h, .ca-oos-grid .rl, .ca-oos-grid .c {
	padding: .45rem .55rem; border-bottom: 1px solid #f1f3f5;
}
.ca-oos-grid .h {
	font-size: .65rem; text-transform: uppercase; letter-spacing: .1em;
	color: #6c757d; font-weight: 700; background: #fafbfc; text-align: right;
}
.ca-oos-grid .h:first-child { text-align: left; }
.ca-oos-grid .rl { font-size: .8rem; font-weight: 700; color: #1a1d22; background: #fafbfc; }
.ca-oos-grid .c {
	text-align: right; font-variant-numeric: tabular-nums;
	color: #1a1d22; font-weight: 600;
}
.ca-oos-grid .c.dim       { color: #adb5bd; font-weight: 400; }
.ca-oos-grid .c.pct-good  { color: #15803d; font-weight: 800; background: #f0fdf4; }
.ca-oos-grid .c.pct-warn  { color: #92400e; font-weight: 800; background: #fffbeb; }
.ca-oos-grid .c.pct-bad   { color: #991b1b; font-weight: 800; background: #fef2f2; }
.ca-oos-grid .c.pct-natl  { color: #6c757d; font-style: italic; font-weight: 500; }
.ca-oos-grid > *:nth-last-child(-n+3) { border-bottom: 0; }

.ca-basics-grid {
	display: grid; grid-template-columns: 1fr auto auto;
	gap: 0; font-size: .85rem;
}
.ca-basics-grid .h, .ca-basics-grid .rl, .ca-basics-grid .c {
	padding: .5rem .65rem; border-bottom: 1px solid #f1f3f5;
}
.ca-basics-grid .h {
	font-size: .65rem; text-transform: uppercase; letter-spacing: .1em;
	color: #6c757d; font-weight: 700; background: #fafbfc; text-align: right;
}
.ca-basics-grid .h:first-child { text-align: left; }
.ca-basics-grid .rl {
	font-size: .85rem; font-weight: 600; color: #1a1d22;
}
.ca-basics-grid .rl.has-viol { font-weight: 700; }
.ca-basics-grid .c { text-align: right; font-variant-numeric: tabular-nums; }
.ca-basics-grid .c .dim { color: #adb5bd; font-weight: 400; font-style: italic; }
.ca-basics-grid .ca-basic-num { font-weight: 700; color: #1a1d22; }
.ca-basics-grid .ca-basic-cnt {
	display: inline-block; min-width: 1.6rem;
	padding: .1rem .45rem; border-radius: 4px;
	background: #fef2f2; color: #991b1b; font-weight: 800;
}
.ca-basics-grid > *:nth-last-child(-n+3) { border-bottom: 0; }

.ca-inspsum-row {
	display: grid; grid-template-columns: repeat(3, 1fr);
	gap: .55rem; margin: 0; padding: 0; list-style: none;
}
.ca-inspsum-row li {
	background: #fafbfc; border: 1px solid #e9ecef;
	border-bottom: 3px solid #14b8a6; border-radius: 8px;
	padding: .65rem .5rem; text-align: center;
}
.ca-inspsum-row li.has-viol { border-bottom-color: #f59e0b; }
.ca-inspsum-row .num { font-size: 1.35rem; font-weight: 800; color: #1a1d22; line-height: 1.15; }
.ca-inspsum-row .lbl {
	font-size: .65rem; text-transform: uppercase; letter-spacing: .1em;
	color: #6c757d; font-weight: 700; margin-top: .2rem;
}
.ca-inspsum-window {
	margin: .65rem 0 0; font-size: .75rem; color: #6c757d; text-align: center;
}

/* Violations breakdown — grouped lists with "show more" lazyload */
.ca-violations-clean {
	margin: 0; padding: .85rem 1rem; border-radius: 8px;
	background: #f0fdf4; color: #15803d; font-weight: 600;
}
.ca-violations-clean i { margin-right: .35rem; }

.ca-violations-summary {
	font-size: .7rem; font-weight: 700; color: #6c757d;
	margin-left: .4rem; text-transform: none; letter-spacing: 0;
}

.ca-viol-group { margin-bottom: .9rem; }
.ca-viol-group:last-child { margin-bottom: 0; }
.ca-viol-group-title {
	display: flex; align-items: center; gap: .4rem;
	font-size: .78rem; font-weight: 800; color: #495057;
	text-transform: uppercase; letter-spacing: .08em;
	margin: 0 0 .45rem;
}
.ca-viol-group-title.is-critical { color: #991b1b; }
.ca-viol-group-title.is-critical i { color: #dc2626; }
.ca-viol-group-count {
	display: inline-block; min-width: 1.5rem;
	padding: .05rem .4rem; border-radius: 4px;
	background: #f1f3f5; color: #495057; font-size: .7rem;
}
.ca-viol-group-title.is-critical .ca-viol-group-count {
	background: #fee2e2; color: #991b1b;
}

.ca-viol-list { list-style: none; margin: 0; padding: 0; }
.ca-viol-row {
	display: grid;
	grid-template-columns: 8.5rem 1fr auto;
	gap: .65rem;
	padding: .55rem .75rem;
	border-bottom: 1px solid #f1f3f5;
	font-size: .85rem;
	align-items: center;
}
.ca-viol-row:last-child { border-bottom: 0; }
.ca-viol-row.is-critical { border-left: 3px solid #dc2626; padding-left: .55rem; background: #fffbfb; }
.ca-viol-row.is-hidden { display: none; }
.ca-viol-row .vc-code {
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: .78rem; font-weight: 700; color: #1a1d22;
	overflow-wrap: anywhere;
}
.ca-viol-row .vc-desc { color: #495057; line-height: 1.35; }
.ca-viol-row .vc-meta {
	display: inline-flex; gap: .35rem; align-items: center;
	font-variant-numeric: tabular-nums;
}
.ca-viol-row .vc-cnt {
	font-weight: 700; color: #1a1d22; font-size: .8rem;
}
.ca-viol-row .vc-oos {
	display: inline-block; padding: .12rem .4rem;
	border-radius: 4px; background: #fee2e2; color: #991b1b;
	font-weight: 800; font-size: .68rem;
}
.ca-viol-row .vc-sev {
	display: inline-block; padding: .12rem .4rem;
	border-radius: 4px; background: #f1f3f5; color: #495057;
	font-weight: 700; font-size: .68rem;
}
.ca-viol-row .vc-sev.sev-7,
.ca-viol-row .vc-sev.sev-8 { background: #fef3c7; color: #92400e; }
.ca-viol-row .vc-sev.sev-9,
.ca-viol-row .vc-sev.sev-10 { background: #fee2e2; color: #991b1b; }

.ca-violations-more {
	margin-top: .85rem; width: 100%;
	padding: .55rem .75rem;
	background: #f8f9fa; border: 1px dashed #ced4da; border-radius: 8px;
	font-size: .82rem; font-weight: 700; color: #495057;
	cursor: pointer;
	transition: background .12s ease, border-color .12s ease;
}
.ca-violations-more:hover { background: #fff; border-color: #14b8a6; color: #0f766e; }
.ca-violations-more .count { color: #1a1d22; }

.ca-sms-footer {
	margin-top: 1rem;
	padding-top: .75rem;
	border-top: 1px solid #f1f3f5;
	font-size: .75rem; color: #6c757d;
}
.ca-sms-footer a { color: #0f766e; text-decoration: none; font-weight: 600; }
.ca-sms-footer a:hover { text-decoration: underline; }

@media (max-width: 600px) {
	.ca-sms-head { flex-direction: column; align-items: flex-start; }
	.ca-viol-row {
		grid-template-columns: 1fr;
		gap: .25rem;
	}
	.ca-viol-row .vc-meta { justify-content: flex-start; flex-wrap: wrap; }
	.ca-basics-grid { grid-template-columns: 1fr auto auto; font-size: .8rem; }
	.ca-oos-grid { font-size: .78rem; }
	.ca-inspsum-row .num { font-size: 1.1rem; }
}

.ca-addr-grid {
	display: grid; gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
.ca-addr-card {
	background: #fff;
	border: 1px solid #e9ecef;
	border-left: 3px solid #14b8a6;
	padding: 1rem 1.15rem;
}
.ca-addr-card .lbl {
	font-size: .68rem; text-transform: uppercase; letter-spacing: .12em;
	color: #6c757d; font-weight: 700; margin-bottom: .35rem;
}
.ca-addr-card address {
	font-style: normal; margin: 0;
	font-size: .95rem; color: #1a1d22; line-height: 1.45;
}

.ca-map-wrap {
	position: relative; width: 100%; aspect-ratio: 16 / 10;
	border-radius: 10px; overflow: hidden;
	border: 1px solid #e9ecef; background: #f8f9fa;
}
.ca-map-wrap iframe { width: 100%; height: 100%; border: 0; display: block; }
.ca-map-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .65rem; }
.ca-map-actions a {
	display: inline-flex; align-items: center; gap: .35rem;
	font-size: .82rem; font-weight: 600; text-decoration: none;
	padding: .35rem .75rem; border-radius: 6px;
	color: #1a1d22; background: #f1f3f5; border: 1px solid #e9ecef;
	transition: background .12s ease, border-color .12s ease;
}
.ca-map-actions a:hover { background: #fff; border-color: #14b8a6; color: #0f766e; }


.related-block { margin-bottom: 1.6rem; }
.related-title { font-size: 1.05rem; font-weight: 700; color: #1a1d22; margin: 0 0 .25rem; }
.related-count {
	display: inline-block; background: #f1f3f5; color: #495057;
	font-size: .72rem; font-weight: 700;
	padding: .12rem .55rem; border-radius: 999px;
	margin-left: .35rem; vertical-align: middle;
}
.related-sub { color: #6c757d; font-size: .85rem; margin: 0 0 .75rem; }
.related-table { margin: 0; }
.related-table thead th {
	background: #fafbfc; color: #495057;
	font-size: .72rem; font-weight: 700;
	letter-spacing: .08em; text-transform: uppercase;
	border-bottom: 1px solid #e9ecef;
	padding: .65rem .75rem;
}
.related-table tbody td { padding: .8rem .75rem; font-size: .92rem; border-top: 1px solid #f1f3f5; vertical-align: middle; }
.related-table tbody tr:hover { background: #fafbfc; }
.related-name { font-weight: 700; color: #1a1d22; text-decoration: none; }
.related-name:hover { color: #4338ca; text-decoration: underline; }
.related-loc { font-size: .78rem; color: #868e96; margin-top: .15rem; }
.related-id { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: .88rem; color: #495057; }
.related-alt { font-size: .78rem; color: #495057; margin-top: .15rem; }
.related-alt-lbl { display: inline-block; font-size: .65rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #868e96; margin-right: .25rem; }

@media (max-width: 991.98px) {
	.ca-lead { position: static; margin-bottom: 1rem; }
}
@media (max-width: 575.98px) {
	.ca-lead { padding: 1.1rem 1.1rem 1rem; }
	.ca-id { padding: 1.1rem 1.15rem 1rem; }

	.ca-inspect-grid {
		grid-template-columns: minmax(80px, auto) repeat(4, 1fr);
		font-size: .78rem;
	}
	.ca-inspect-grid .h, .ca-inspect-grid .rl, .ca-inspect-grid .c {
		padding: .35rem .4rem;
	}
	.ca-inspect-grid .h { font-size: .58rem; letter-spacing: .06em; }
	.ca-inspect-grid .rl { font-size: .72rem; }

	.ca-id-keys  { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: .45rem; }
	.ca-id-stats { grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); gap: .5rem; }
	.ca-id-stats .num { font-size: 1.2rem; }

	.ca-crashes-row { gap: .4rem; }
	.ca-crashes-row li { padding: .55rem .35rem; }
	.ca-crashes-row .num { font-size: 1.2rem; }
	.ca-crashes-row .lbl { font-size: .6rem; letter-spacing: .06em; }
}
