/* RTT Site Enhancements - keeps the original design, improves usability.
   Brand: #004C78 blue, #015a91 link blue, #012f50 navy, #ffe400 yellow. */

/* ---------- Everywhere ---------- */
img { max-width: 100%; height: auto; }
.footercontacttxt { box-sizing: border-box; width: 100% !important; }
.footercontacttxt a { color: inherit; text-decoration: none; }

a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible {
	outline: 3px solid #ffe400;
	outline-offset: 2px;
}

/* Header phone is now a link; keep its existing look */
.header_phone a.rtt-header-call { color: inherit; text-decoration: none; display: block; }
.header_phone .rtt-num { font-size: 20px; font-weight: bold; white-space: nowrap; }
.header_phone a.rtt-header-call:hover .rtt-num { text-decoration: underline; }

/* Static service-area line (was a scrolling marquee) */
.scrolling-text .rtt-service-area {
	margin: 0;
	padding: 0 12px;
	color: #000;
	text-align: center;
	font-family: OpenSans-Regular, Arial, sans-serif;
	font-size: 14px;
	line-height: 1.4;
}

/* Resource circles: whole circle is clickable (see JS) */
.special_contaner [class^="specialbox"] { transition: transform .15s ease; }
.special_contaner [class^="specialbox"].rtt-clickable { cursor: pointer; }
.special_contaner [class^="specialbox"].rtt-clickable:hover { transform: translateY(-3px); }

/* Readability */
.mid_text, .right_text { font-size: 13px; }
.page_text p, .page_text li { font-size: 14px; }
.left_link ul li a:hover { color: #ffe400; }

/* Contact form polish (desktop keeps the original field artwork) */
.wpcf7-text:focus, .wpcf7-textarea:focus, .wpcf7-select:focus { box-shadow: 0 0 0 2px #ffe400; }
.wpcf7-submit { cursor: pointer; }
.wpcf7-textarea { box-sizing: border-box; }

/* Mobile-only pieces are hidden on larger screens */
.rtt-menu-toggle, .rtt-pa-toggle, .rtt-callbar { display: none; }
.rtt-footer-privacy { text-align: center; padding: 0 0 12px; clear: both; }
.rtt-footer-privacy a { color: #fff; font-size: 12px; text-decoration: none; }

/* ---------- Tablets (768-999px) ---------- */
@media (min-width: 768px) and (max-width: 999px) {
	.inner-part { width: 96%; }
	.sidebarbx { width: 30%; }
	.middle { width: 68% !important; max-width: none !important; }
	.rightside { float: left; width: 100% !important; max-width: none !important; }
	.right_text { max-width: none !important; width: 46% !important; margin: 20px 2% 0 !important; }
}

/* ---------- Phones (up to 767px) ---------- */
@media (max-width: 767px) {
	html, body { overflow-x: hidden; }
	body { padding-bottom: 64px; }

	/* Stack every column cleanly (old float layout overlapped on phones) */
	.middle, .middle_inner, .page_text, .sidebarbx, .rightside, .right_text,
	.traffic_part, .mid_heading, .mid_img, .mid_text, .avvo_badges {
		float: none !important; clear: both;
	}
	.middle, .middle_inner, .page_text, .mid_img, .mid_text { width: auto !important; max-width: none !important; margin-left: 0 !important; }
	.body_contaner, .inner-part, .leftside, .left_contact, .right_text, .middle, .middle_inner, .traffic_part { display: flow-root; }
	.inner-part { width: auto !important; padding: 0 12px; }
	.page_heading { padding: 12px 14px 0; font-size: 22px; line-height: 1.3; color: #015a91; }
	.mid_heading { margin: 18px 0 0 !important; max-width: none !important; }
	.mid_img { margin: 12px 0 0 !important; }
	.mid_text { margin: 14px 0 0 !important; }

	/* Header */
	.logo { float: none; width: auto; max-width: none; margin: 14px auto 0; text-align: center; }
	.logo img { display: block; width: auto !important; max-width: 86% !important; margin: 0 auto; padding-left: 0 !important; }
	.header_phone {
		float: none; width: auto !important; max-width: none;
		margin: 12px 12px 0 !important; padding: 0 !important;
		font-size: 17px; line-height: 1.35;
	}
	.header_phone a.rtt-header-call { padding: 10px 12px; }
	.scrolling-text { padding: 8px 0 !important; }
	.scrolling-text .rtt-service-area { font-size: 13px; }

	/* Menu: button + full-width list instead of the old dropdown */
	.menu_wraper { position: relative; z-index: 50; }
	.rtt-menu-toggle {
		display: flex; align-items: center; justify-content: center; gap: 10px;
		width: 100%; min-height: 48px; padding: 0 16px; border: 0;
		background: transparent; color: #fff; cursor: pointer;
		font: 700 15px/1 Arial, sans-serif; letter-spacing: .06em; text-transform: uppercase;
	}
	.rtt-burger, .rtt-burger span, .rtt-burger::before, .rtt-burger::after { display: block; width: 20px; height: 2px; background: #fff; border-radius: 2px; }
	.rtt-burger { position: relative; background: transparent; height: 14px; }
	.rtt-burger::before, .rtt-burger::after { content: ""; position: absolute; left: 0; transition: transform .2s ease, top .2s ease; }
	.rtt-burger::before { top: 0; }
	.rtt-burger span { position: absolute; top: 6px; left: 0; transition: opacity .2s ease; }
	.rtt-burger::after { top: 12px; }
	.rtt-nav-open .rtt-burger::before { top: 6px; transform: rotate(45deg); }
	.rtt-nav-open .rtt-burger::after { top: 6px; transform: rotate(-45deg); }
	.rtt-nav-open .rtt-burger span { opacity: 0; }

	select.responsiveMenuSelect,
	.responsiveSelectContainer select.responsiveMenuSelect { display: none !important; }
	.navigation ul.menu { display: none !important; }
	.navigation.rtt-nav-open ul.menu {
		display: block !important; width: 100%; background: #00304F; padding-bottom: 6px;
	}
	.navigation ul.menu li {
		float: none !important; width: 100% !important; padding: 0 !important;
		border-right: 0 !important; border-top: 1px solid rgba(255, 255, 255, .14);
	}
	.navigation ul.menu li a {
		font-size: 16px !important; text-align: left !important; padding: 14px 22px !important;
	}

	/* Hero slider: text sits under the photo instead of covering it */
	.banner_slide { margin-top: 0 !important; }
	.owl-item .item .content {
		position: static !important; padding: 14px 16px 44px !important; background: #012f50 !important;
	}
	.owl-item .item .content h2 { font-size: 22px !important; margin: 0 0 6px !important; }
	.owl-item .item .content p { font-size: 14px !important; line-height: 1.6 !important; margin: 0; }
	.owl-controls { top: -36px !important; margin-bottom: -36px !important; }
	.banner_shadow { display: none; }

	/* Body text */
	.mid_text, .contetn_part, .right_text, .right_text p { font-size: 15px !important; line-height: 1.7 !important; text-align: left !important; }
	.mid_heading { font-size: 20px !important; }
	.page_text, .middle_inner { box-sizing: border-box; padding: 0 14px; text-align: left !important; }
	.page_text p, .page_text li { font-size: 15px !important; line-height: 1.7 !important; }
	.page_text h1 { font-size: 24px !important; line-height: 1.3; }
	.page_text h2 { font-size: 20px !important; line-height: 1.35; }
	.page_text img { height: auto !important; }
	.cnti_left { width: auto !important; float: none !important; }

	/* Resource circles: centre the fifth one at the same size as the others */
	.specialbox5 { float: none !important; clear: both; display: flow-root; width: 42.5% !important; margin: 0 auto 10px !important; }

	/* Sidebar: collapsible practice areas, roomier links */
	.sidebarbx, .leftside, .left_contact { float: none !important; width: 100% !important; max-width: none !important; }
	.leftside > .leftheading { display: none; }
	.rtt-pa-toggle {
		display: flex; align-items: center; justify-content: space-between; width: 100%;
		padding: 14px 16px; border: 0; background: transparent; color: #fff; cursor: pointer;
		font-family: OpenSans-bold, Arial, sans-serif; font-size: 22px; text-align: left;
	}
	.rtt-chev { width: 10px; height: 10px; border-right: 3px solid #ffe400; border-bottom: 3px solid #ffe400; transform: rotate(45deg); transition: transform .2s ease; margin-right: 6px; }
	.rtt-pa-open .rtt-chev { transform: rotate(-135deg); }
	.leftside .left_link { display: none; max-width: none !important; }
	.leftside.rtt-pa-open .left_link { display: block; }
	.left_link ul { padding: 0 16px 12px !important; margin: 0; }
	.left_link ul li { max-width: none !important; }
	.left_link ul li a { display: block; font-size: 15px !important; line-height: 1.3 !important; padding: 9px 0; border-top: 1px solid rgba(255, 255, 255, .12); }

	/* Contact form */
	.left_contact { margin-top: 10px; }
	.left_contact .leftheading { float: none !important; display: block; width: auto !important; max-width: none !important; margin: 0 !important; padding: 14px 14px 8px; }
	.left_contact .submit, .left_contact .submit p { float: none !important; width: auto !important; display: block; margin: 0 14px 14px !important; }
	.left_contact .wpcf7-form > p { margin: 0 14px 12px !important; font-size: 15px; }
	.left_contact .wpcf7-form > p br { display: none; }
	.wpcf7-text, .wpcf7-textarea, .wpcf7-select, .wpcf7-quiz {
		box-sizing: border-box; width: 100% !important; max-width: none !important;
		min-height: 46px; margin-top: 6px; padding: 10px 12px !important;
		background: #fff !important; border: 1px solid #c9d6df !important; border-radius: 4px;
		color: #222 !important; font-size: 16px !important;
	}
	.wpcf7-textarea { min-height: 120px; }
	.page-id-332 .left_contact span textarea { max-width: none !important; }
	.wpcf7-submit {
		display: block !important; width: 100% !important; padding: 14px !important; margin: 4px 0 8px;
		background: #ffe400 !important; color: #012f50 !important; border-radius: 4px;
		font-size: 17px !important; font-weight: 700;
	}
	.wpcf7-not-valid-tip { position: static !important; width: auto !important; margin-top: 4px; }
	.wpcf7-response-output { margin: 0 14px 14px !important; padding: 12px !important; background-image: none !important; }

	/* Badges */
	.avvo_badges { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px; padding: 18px 8px; text-align: center; }
	.avvo_badges > * { float: none !important; width: auto !important; position: static !important; margin: 0 !important; padding: 0 !important; top: 0 !important; }
	.avvo_badges .arag, .avvo_badges .state-bar { max-width: 40%; }
	.avvo_badges .avvo_content { font-size: 13px; line-height: 1.5; }

	/* Right column (the theme fixes its height for desktop; let it grow on phones) */
	.rightside { float: none !important; width: 100% !important; max-width: none !important; }
	.right_text, #other_info_x, #blog_home { float: none !important; width: auto !important; max-width: none !important; height: auto !important; min-height: 0 !important; margin: 20px 14px 0 !important; }

	/* Contact page form */
	.contact_formw code { font: inherit; background: none; padding: 0; }
	.cnti_field_label, .cnti_field { float: none !important; width: auto !important; max-width: none !important; height: auto !important; min-height: 0 !important; line-height: 1.4 !important; display: block; margin: 0 !important; }
	.cnti_field_label { font-size: 15px; font-weight: 600; color: #012f50; padding-top: 10px; }
	.cnti_field_label br { display: none; }
	.submit2 { float: none !important; width: auto !important; margin: 10px 0 !important; }

	/* Footer */
	.footercontacttxt { font-size: 16px !important; padding: 18px 14px !important; line-height: 1.45; }
	.footer_link { float: none; width: 100%; max-width: none; box-sizing: border-box; padding: 18px 12px 4px; text-align: center; font-size: 14px; }
	.footer_link a { display: inline-block; padding: 6px 8px; font-size: 14px; }
	.foo-logo { display: none; }

	/* Sticky call bar */
	.rtt-callbar {
		display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
		background: #012f50; box-shadow: 0 -2px 10px rgba(0, 0, 0, .25);
		padding-bottom: env(safe-area-inset-bottom);
	}
	.rtt-callbar a {
		flex: 1; display: flex; align-items: center; justify-content: center; gap: 8px;
		min-height: 56px; font: 700 16px/1.1 Arial, sans-serif; text-decoration: none;
	}
	.rtt-callbar__call { background: #004C78; color: #fff; }
	.rtt-callbar__form { background: #ffe400; color: #012f50; }
	#chat-widget-container { bottom: 64px !important; }
}
