/**
 * PullaraLaw Original — Phase 1 a11y foundations
 * Pure #f00 on white ≈ 4.0:1 (fails AA). Darker red + footer/hero fixes.
 */

/* Skip link */
.pl-skip-link {
	position: absolute;
	left: 0.5rem;
	top: -100px;
	z-index: 100000;
	padding: 0.75rem 1rem;
	background: #111;
	color: #fff !important;
	font-weight: 700;
	text-decoration: none;
	border-radius: 0 0 4px 4px;
}
.pl-skip-link:focus {
	top: 0;
	outline: 3px solid #ffbf47;
	outline-offset: 2px;
}

/* Visible keyboard focus — include Divi mobile menu */
.pl-a11y-foundation a:focus-visible,
.pl-a11y-foundation button:focus-visible,
.pl-a11y-foundation input:focus-visible,
.pl-a11y-foundation select:focus-visible,
.pl-a11y-foundation textarea:focus-visible,
.pl-a11y-foundation .et_pb_button:focus-visible,
.pl-a11y-foundation .et-menu a:focus-visible,
.pl-a11y-foundation .et_mobile_menu a:focus-visible,
.pl-a11y-foundation .mobile_nav .mobile_menu_bar:focus-visible,
.pl-a11y-foundation .mobile_nav .mobile_menu_bar:focus,
.pl-a11y-foundation #mobile_menu1 a:focus,
.pl-a11y-foundation #mobile_menu2 a:focus,
.pl-a11y-foundation .et_mobile_menu a:focus {
	outline: 3px solid #005fcc !important;
	outline-offset: 2px;
	box-shadow: none;
}
/* Make focused mobile menu row obvious on gray panel */
.pl-a11y-foundation .et_mobile_menu a:focus,
.pl-a11y-foundation .et_mobile_menu a:focus-visible {
	background-color: #cfe3ff !important;
	color: #111 !important;
}

/* Main landmark target for skip link */
#main-content:focus {
	outline: none;
}

/*
 * Content / body links on light backgrounds
 * #9B0000 on white ≈ 8.9:1 (WCAG AA/AAA for normal text)
 */
#et-main-area .entry-content a,
#et-main-area #content a,
#et-main-area .et_pb_text a,
#et-main-area .et_pb_post_content a,
#et-boc .et_pb_text a {
	color: #9b0000;
}
#et-main-area .entry-content a:hover,
#et-main-area #content a:hover,
#et-main-area .et_pb_text a:hover,
#et-boc .et_pb_text a:hover {
	color: #7a0000;
}

/* Tel / mailto often wrapped in <strong> with inline red */
#et-main-area a[href^="tel"],
#et-main-area a[href^="mailto"],
#et-main-area a[href^="tel"] strong,
#et-main-area a[href^="mailto"] strong {
	color: #9b0000 !important;
}

/*
 * Footer / dark chrome — red on dark teal fails; use light links + underline
 * Theme Builder footer uses .et_pb_section_*_tb_footer
 */
#main-footer a,
#et-footer-nav a,
.et-l--footer a,
footer.et-l a,
.office-page-link,
.flfooterlink a,
.et_pb_section_0_tb_footer a,
[class*="tb_footer"] a,
.et-l--footer .et_pb_text a,
.et-l--footer .et_pb_module a,
.et_pb_text_1_tb_footer a,
.fl-footer-tag a,
.et_pb_text_tb_footer a,
#et-boc .et_pb_section_0_tb_footer a,
#et-boc .et_pb_text_1_tb_footer a,
/* Beat Divi TB inline: .et-db #et-boc .et-l .et_pb_text_1_tb_footer.et_pb_text a */
.et-db #et-boc .et-l .et_pb_text_1_tb_footer.et_pb_text a,
.et-db #et-boc .et-l .et_pb_text_1_tb_footer a,
.et-db #et-boc .et-l .et_pb_section_0_tb_footer a,
/* 404 / non-TB footers still use .flfooterlink */
body.error404 .flfooterlink a,
body.error404 #main-footer a,
body.error404 .et_pb_section_0_tb_footer a,
body.error404 .et_pb_text_1_tb_footer a,
body.error404 a[href*="findlaw.com"],
body.error404 a[href*="/disclaimer"],
body.error404 a[href*="/privacy"],
.et_pb_section.et_pb_with_background .flfooterlink a {
	color: #ffffff !important;
	text-decoration: underline;
	text-underline-offset: 2px;
}
#main-footer a:hover,
#et-footer-nav a:hover,
.et-l--footer a:hover,
.office-page-link:hover,
.flfooterlink a:hover,
.et_pb_section_0_tb_footer a:hover,
[class*="tb_footer"] a:hover {
	color: #ffe0e0 !important;
}

/*
 * Hero banner text over photo — need AA contrast on variable backgrounds.
 * Lighten cyan + dark translucent plate + text-shadow so scanners/real vision pass.
 */
.fl-banner-home .et_pb_text_0 .et_pb_text_inner,
.fl-banner .et_pb_text_0 .et_pb_text_inner {
	color: #eaf9ff !important;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.85), 0 0 8px rgba(0, 0, 0, 0.45);
}
.fl-banner-home .et_pb_text_1 .et_pb_text_inner,
.fl-banner .et_pb_text_1 .et_pb_text_inner,
.fl-banner-home .et_pb_text_1 .et_pb_text_inner span,
.fl-banner .et_pb_text_1 .et_pb_text_inner span {
	color: #ffffff !important;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.9), 0 0 10px rgba(0, 0, 0, 0.5);
}
.fl-banner-home .et_pb_column_0 .et_pb_text,
.fl-banner .et_pb_column_0 .et_pb_text {
	background: rgba(2, 56, 76, 0.72);
	padding: 0.55rem 0.75rem;
	border-radius: 2px;
}

/*
 * Mobile CONTACT bar — Divi sets:
 * body #page-container .et_pb_section .et_pb_button_0_tb_header { color:#b91717 !important }
 * #b91717 on #d9d9d9 ≈ 3.7:1 (fails AA). Match/beat that specificity.
 */
body #page-container .et_pb_section a.et_pb_button.et_pb_button_0_tb_header.fl-mobile-contact,
body #page-container .et_pb_section a.et_pb_button.et_pb_button_0_tb_header.fl-mobile-contact:hover,
body #page-container .et_pb_section a.et_pb_button.et_pb_button_0_tb_header.fl-mobile-contact:focus,
body #page-container .et_pb_section a.et_pb_button.et_pb_button_0_tb_header.fl-mobile-contact:visited,
a.et_pb_button.fl-mobile-contact,
a.et_pb_button.fl-mobile-contact:hover,
a.et_pb_button.fl-mobile-contact:focus {
	color: #6b0000 !important;
}
body #page-container .et_pb_section .et_pb_button_0_tb_header.fl-mobile-contact::before,
body #page-container .et_pb_section .et_pb_button_0_tb_header.fl-mobile-contact::after {
	color: #6b0000 !important;
}

/*
 * WCAG 2.2 target-size (24×24) — ES Contact map link was ~19px tall
 */
a.map-link-sp,
a.map-link {
	display: inline-block;
	min-height: 24px;
	padding: 0.25rem 0;
	line-height: 1.4;
	box-sizing: border-box;
}

/*
 * Spanish Theme Builder header stacks MENU + CONTACT as 1/2 + 1/2 columns.
 * Divi keeps column gutters when stacked → MENU inset-left / CONTACT inset-right.
 * English header cancels this (col3 no pad + button wrap margin-left:-7px).
 * Force full-width aligned bars to match English collapsed mobile chrome.
 */
@media only screen and (max-width: 980px) {
	.et_pb_row_2_tb_header.et_pb_row--with-menu > .et_pb_column_3_tb_header,
	.et_pb_row_2_tb_header.et_pb_row--with-menu > .et_pb_column_4_tb_header {
		padding-left: 0 !important;
		padding-right: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.et_pb_row_2_tb_header .et_pb_menu_1_tb_header.fl-mobile-menu,
	.et_pb_row_2_tb_header .et_pb_menu_1_tb_header.fl-mobile-menu .et_pb_menu_inner_container,
	.et_pb_row_2_tb_header .et_pb_button_0_tb_header_wrapper,
	.et_pb_row_2_tb_header .et_pb_button_0_tb_header.fl-mobile-contact {
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		box-sizing: border-box;
	}

	.et_pb_row_2_tb_header .et_pb_button_0_tb_header.fl-mobile-contact,
	.et_pb_row_2_tb_header .et_pb_button_0_tb_header.fl-mobile-contact:hover {
		padding-left: 2px !important;
	}

	/* Spanish header lacks EN’s built-in gap between stacked bars */
	.pl-lang-es .et_pb_row_2_tb_header.et_pb_row--with-menu > .et_pb_column_3_tb_header {
		padding-bottom: 22px !important;
	}

	/* Spanish mobile chrome — MENU label is CSS ::after (Divi/FindLaw pattern) */
	.pl-lang-es .fl-mobile-menu .mobile_menu_bar:after {
		content: "MENÚ" !important;
		font-weight: 700;
	}

	/* MENU / CONTACT chrome — PT Sans Bold (Cinzel experiment reverted) */
	.fl-mobile-menu .mobile_menu_bar:after {
		font-weight: 700;
	}
	.et_pb_button.fl-mobile-contact {
		font-weight: 700 !important;
	}
}

/*
 * Spanish header — match English contact stack (CTA + phone + email).
 * Hide FindLaw “EN INGLÉS” button module; phone-only module is merged via JS.
 */
.pl-lang-es .et-l--header .fl-espanol-button,
.pl-lang-es header .fl-espanol-button,
.pl-lang-es .fl-espanol-button,
.fl-espanol-button[hidden],
.fl-espanol-button[aria-hidden="true"],
body.et-db #et-boc .et-l .fl-espanol-button[hidden],
body.et-db #page-container .fl-espanol-button[hidden],
body.et-db #et-boc .et-l .fl-espanol-button[aria-hidden="true"],
body.et-db #page-container .fl-espanol-button[aria-hidden="true"] {
	display: none !important;
	visibility: hidden !important;
}

/* Hidden / aria-hidden modules must not keep focusable children in the tab order */
[aria-hidden="true"] a,
[aria-hidden="true"] button,
[hidden] a,
[hidden] button {
	visibility: hidden;
}

/* Spanish main nav — match EN gaps (FindLaw forced width:163px + margin:0) */
body.et-db #page-container .fl-espanol-menu ul > li,
.pl-lang-es .fl-espanol-menu .et-menu > li {
	width: auto !important;
	margin: 0 55px 0 0 !important;
}
body.et-db #page-container .fl-espanol-menu ul > li:last-child,
.pl-lang-es .fl-espanol-menu .et-menu > li:last-child {
	margin-right: 0 !important;
}
.pl-lang-es .fl-espanol-menu .et-menu > li > a {
	white-space: nowrap;
}
/* Phone-only module in contact column is merged via JS — do not hide brand (.fl-brand) */
.pl-lang-es .et-l--header .et_pb_column_1_tb_header .et_pb_text[hidden] {
	display: none !important;
}

/* Visually hidden #close target wrapper (landmark for axe region rule) */
.pl-a11y-close-target {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	border: 0;
}

/* Contact form helpers */
.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;
	width: 1px;
	word-wrap: normal !important;
}
.nf-form-cont .nf-error-msg,
.nf-form-cont .nf-error-field-errors {
	color: #9b0000;
}
.nf-form-cont label .ninja-forms-req-symbol,
.pl-contact-required-note .ninja-forms-req-symbol {
	color: #9b0000 !important;
	font-weight: 700;
	margin: 0 0.12em;
	/* NF often ships .ninja-forms-req-symbol { display:none } until JS; keep the note asterisk visible */
	display: inline !important;
	visibility: visible !important;
}

/* Page-level “fields marked…” note — keep modest gap before the form title */
.pl-contact-required-note {
	margin: 1rem 0 0.75rem;
	padding: 0;
	display: block;
}
.page-id-45927 .pl-contact-required-note,
.page-id-46076 .pl-contact-required-note {
	margin-bottom: 0.75rem;
}
.nf-form-cont {
	margin-top: 0.35rem;
}
/* Match EN/ES form title weight (NF renders a span, not a heading) */
.nf-form-cont .nf-form-title,
.nf-form-cont span.nf-form-title {
	display: block;
	font-weight: 700 !important;
	margin: 0.35rem 0 0;
	padding: 0;
}
/* Space above/below the in-form “fields marked…” line (under Contact Us / Contáctenos) */
.nf-form-cont .nf-form-fields-required {
	display: block;
	margin: 0.85rem 0 1.1rem;
	padding: 0.2rem 0;
	line-height: 1.45;
}

/* Honeypot — reinforce off-screen / non-interactive for assistive tech */
.nf-form-cont input[id*="nf-field-hp"],
.nf-form-cont input[name="nf-field-hp"] {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

/* Submit / fields — match foundation focus ring */
.nf-form-cont input:focus-visible,
.nf-form-cont textarea:focus-visible,
.nf-form-cont input[type="submit"]:focus,
.nf-form-cont input[type="submit"]:focus-visible {
	outline: 3px solid #005fcc !important;
	outline-offset: 2px;
}
