/* Parkins & Rubio: navigation, utility type classes and layout extras (loads after style.css). */

/* Utility type classes: semantic tag stays h2/h3, visual size follows the Figma scale */
.pr-h1.elementor-widget-heading .elementor-heading-title { font-size: 60px; line-height: 72px; font-weight: 500; letter-spacing: -4px; }
.pr-h2.elementor-widget-heading .elementor-heading-title { font-size: 48px; line-height: 60px; font-weight: 600; letter-spacing: -3px; }
.pr-h3.elementor-widget-heading .elementor-heading-title { font-size: 32px; line-height: 44px; font-weight: 600; letter-spacing: -2px; }
.pr-h4.elementor-widget-heading .elementor-heading-title { font-size: 28px; line-height: 40px; font-weight: 600; letter-spacing: -2px; }
.pr-h5.elementor-widget-heading .elementor-heading-title { font-size: 24px; line-height: 36px; font-weight: 600; letter-spacing: -1px; }
@media (max-width: 1024px) {
	.pr-h1.elementor-widget-heading .elementor-heading-title { font-size: 48px; line-height: 58px; letter-spacing: -3px; }
	.pr-h2.elementor-widget-heading .elementor-heading-title { font-size: 40px; line-height: 50px; letter-spacing: -2px; }
}
@media (max-width: 767px) {
	.pr-h1.elementor-widget-heading .elementor-heading-title { font-size: 36px; line-height: 44px; letter-spacing: -1.5px; }
	.pr-h2.elementor-widget-heading .elementor-heading-title { font-size: 31px; line-height: 40px; letter-spacing: -1.5px; }
	.pr-h3.elementor-widget-heading .elementor-heading-title { font-size: 26px; line-height: 36px; letter-spacing: -1px; }
	.pr-h4.elementor-widget-heading .elementor-heading-title { font-size: 23px; line-height: 32px; letter-spacing: -1px; }
	.pr-h5.elementor-widget-heading .elementor-heading-title { font-size: 21px; line-height: 30px; letter-spacing: -.5px; }
}
.pr-memoriam-kicker .elementor-heading-title { font-family: var(--pr-heading); font-style: italic; font-weight: 500; font-size: 28px; line-height: 40px; letter-spacing: -1.5px; color: var(--pr-black); }

/* Primary navigation */
.pr-nav { display: flex; align-items: center; }
.pr-nav-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 24px; }
.pr-nav-menu > li { position: relative; margin: 0; }
.pr-nav-menu > li > a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px;
	font-family: var(--pr-heading);
	font-size: 16px;
	line-height: 24px;
	font-weight: 600;
	letter-spacing: -1px;
	color: var(--pr-white);
	text-decoration: none;
	position: relative;
}
.pr-nav-menu > li > a:hover, .pr-nav-menu > li > a:focus { color: var(--pr-white); opacity: .82; }
/* Six tabs since Staff got its own (Oct 2026): one line, and tighter on small laptops so Contact clears Get Started. */
@media (min-width: 1025px) {
	.pr-nav-menu > li > a { white-space: nowrap; }
}
@media (min-width: 1025px) and (max-width: 1199px) {
	.pr-nav-menu { gap: 6px; }
	.pr-nav-menu > li > a { padding: 10px 8px; font-size: 15px; }
	.pr-nav-menu > li > a::after { left: 8px !important; right: 8px !important; }
}
.pr-nav-menu > li.current-menu-item > a::after,
.pr-nav-menu > li.current-menu-ancestor > a::after,
.pr-nav-menu > li.current-page-ancestor > a::after,
.pr-nav-menu > li.current-menu-parent > a::after {
	content: "";
	position: absolute;
	left: 10px;
	right: 10px;
	bottom: 6px;
	height: 1px;
	background: currentColor;
}
.pr-nav-menu > li.menu-item-has-children > a::before {
	content: "";
	order: 2;
	width: 0;
	height: 0;
	border-left: 3.5px solid transparent;
	border-right: 3.5px solid transparent;
	border-bottom: 5px solid currentColor;
	margin-top: 4px;
}
.pr-nav-menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 8px 0;
	position: absolute;
	top: 100%;
	left: -12px;
	min-width: 270px;
	background: var(--pr-white);
	border-radius: var(--pr-radius);
	box-shadow: 0 20px 44px rgba(11, 42, 70, .2);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .2s ease, transform .2s ease, visibility .2s;
	z-index: 20;
}
.pr-nav-menu li:hover > .sub-menu,
.pr-nav-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.pr-nav-menu .sub-menu li { margin: 0; }
.pr-nav-menu .sub-menu a {
	display: block;
	padding: 10px 20px;
	font-family: var(--pr-body);
	font-size: 15px;
	line-height: 22px;
	letter-spacing: -.3px;
	color: var(--pr-black);
	text-decoration: none;
}
.pr-nav-menu .sub-menu a:hover, .pr-nav-menu .sub-menu .current-menu-item > a { background: var(--pr-accent); color: var(--pr-blue); }
.pr-nav-toggle { display: none; }
@media (max-width: 1024px) {
	.pr-nav-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		padding: 0;
		border: 1px solid rgba(255, 255, 255, .35);
		border-radius: var(--pr-radius-sm);
		background: transparent;
		cursor: pointer;
	}
	.pr-nav-bars, .pr-nav-bars::before, .pr-nav-bars::after { display: block; width: 20px; height: 2px; background: var(--pr-white); position: relative; transition: transform .2s ease, background-color .2s ease; }
	.pr-nav-bars::before, .pr-nav-bars::after { content: ""; position: absolute; left: 0; }
	.pr-nav-bars::before { top: -6px; }
	.pr-nav-bars::after { top: 6px; }
	.pr-nav.is-open .pr-nav-bars { background: transparent; }
	.pr-nav.is-open .pr-nav-bars::before { transform: translateY(6px) rotate(45deg); }
	.pr-nav.is-open .pr-nav-bars::after { transform: translateY(-6px) rotate(-45deg); }
	.pr-nav-menu {
		display: none;
		position: fixed;
		top: 96px;
		left: 0;
		right: 0;
		max-height: calc(100vh - 96px);
		overflow-y: auto;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 12px var(--pr-gutter) 28px;
		background: var(--pr-navy);
		box-shadow: 0 24px 40px rgba(0, 0, 0, .25);
	}
	.pr-nav.is-open .pr-nav-menu { display: flex; }
	.pr-nav-menu > li > a { width: 100%; padding: 14px 0; border-bottom: 1px solid rgba(255, 255, 255, .1); }
	.pr-nav-menu > li.current-menu-item > a::after,
	.pr-nav-menu > li.current-menu-ancestor > a::after,
	.pr-nav-menu > li.current-page-ancestor > a::after,
	.pr-nav-menu > li.current-menu-parent > a::after,
	.pr-nav-menu > li.menu-item-has-children > a::before { display: none; }
	.pr-nav-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; background: transparent; padding: 4px 0 8px 14px; min-width: 0; }
	.pr-nav-menu .sub-menu a { color: var(--pr-line); padding: 8px 0; }
	.pr-nav-menu .sub-menu a:hover, .pr-nav-menu .sub-menu .current-menu-item > a { background: transparent; color: var(--pr-white); }
	.pr-header-cta { display: none !important; }
}
@media (max-width: 767px) { .pr-nav-menu { top: 84px; max-height: calc(100vh - 84px); } }

/* Sticky profile column on wide screens */
@media (min-width: 1025px) { .pr-sticky { position: sticky !important; top: 132px; align-self: flex-start; } }

/* Chip list reset (text editor UL) */
ul.pr-chip-grid { list-style: none; margin: 0; padding: 0; }
ul.pr-chip-grid li { margin: 0; }

/* Industry card title */
.pr-industry-card .elementor-heading-title { text-align: center; }

/* Hero cutout (Figma: Charles cropped from the shared portrait and mirrored, 14px in from the
   1440 frame edge, running just past the hero floor) */
.pr-hero--home { overflow: hidden; }
.pr-hero--home .pr-hero-cutout {
	position: absolute !important;
	right: max(14px, calc(50% - 706px));
	bottom: -12px;
	width: min(586px, 40.7%) !important;
	max-width: none !important;
	z-index: 0;
	pointer-events: none;
}
.pr-hero--home .pr-hero-cutout img { width: 100%; }
@media (max-width: 1199px) { .pr-hero--home .pr-hero-cutout { display: none !important; } }
.pr-hero--home .pr-hero-main, .pr-hero--home .pr-hero-stats { position: relative; z-index: 1; }

/* Hero stats: content-width columns spread across the row */
.pr-hero-stats .pr-stat { --width: auto; width: auto !important; flex: 0 1 auto; min-width: min-content; }
@media (max-width: 767px) { .pr-hero-stats .pr-stat { width: 100% !important; } }

/* Light text on navy */
.pr-light, .pr-light p { color: var(--pr-line) !important; }

/* Footer: phone links follow the text colour */
.pr-footer-text a { color: var(--pr-line); text-decoration: none; }
.pr-footer-text a:hover { color: var(--pr-white); }

/* Home hero headline: Figma H2 (48/60, 600, -3px) in a 788px box, set on Figma's three lines.
   Down to 600px it scales so the same lines still fit (the first line is ~16.1em wide, plus room
   for a scrollbar); narrower phones let it wrap. */
.pr-hero-title.elementor-widget-heading .elementor-heading-title { font-size: 48px; line-height: 60px; letter-spacing: -3px; font-weight: 600; }
.pr-hero-title .pr-line { display: block; white-space: nowrap; }
.pr-nowrap { white-space: nowrap; }
@media (max-width: 1024px) { .pr-hero-title.elementor-widget-heading .elementor-heading-title { font-size: min(48px, calc((100vw - 2 * var(--pr-gutter)) / 16.9)); line-height: 1.25; letter-spacing: -.0625em; } }
@media (max-width: 599px) {
	.pr-hero-title.elementor-widget-heading .elementor-heading-title { font-size: 34px; line-height: 42px; letter-spacing: -1.5px; }
	.pr-hero-title .pr-line { display: inline; white-space: normal; }
}
.pr-profile-role .elementor-heading-title { font-weight: 600; }

/* Theme templates (posts, archives, 404) run edge to edge like the Elementor pages */
body.single-post .site-main,
body.archive .site-main,
body.error404 .site-main,
body.blog .site-main { max-width: none !important; width: 100%; padding: 0 !important; margin: 0 !important; }

/* Hello Elementor ships pink hover/focus states on buttons; keep the toggle neutral */
.pr-nav-toggle:hover, .pr-nav-toggle:focus, .pr-nav-toggle:active { background: rgba(255, 255, 255, .08) !important; border-color: rgba(255, 255, 255, .6) !important; color: var(--pr-white); }
.pr-nav-toggle:focus-visible { outline: 2px solid var(--pr-white); outline-offset: 2px; }
@media (max-width: 1024px) { .pr-nav-menu { top: var(--pr-header-h, 96px); max-height: calc(100vh - var(--pr-header-h, 96px)); } }
@media (max-width: 767px) { .pr-header .pr-logo img { width: 100px; } }

/* Role line under names (cards and staff pages) */
.pr-person-title, .pr-person-title p { color: var(--pr-blue) !important; text-transform: uppercase; font-size: 16px; line-height: 24px; letter-spacing: -.5px; }
