/* Shared Petrocore CTA treatment */
.petrocore-button,
.petrocore-home-hero__button,
.petrocore-home-about__button,
.petrocore-home-hse__button,
.petrocore-home-contact-cta__button {
	--petrocore-button-color: #f15a24;
	--petrocore-button-hover: #003f51;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 44px;
	padding: 4px 5px 4px 19px;
	border: 0;
	border-radius: 999px;
	background: var(--petrocore-button-color);
	color: #fff;
	font-size: .9rem;
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
	text-transform: none;
	transition: color .25s ease, transform .25s ease;
}

.petrocore-button::after,
.petrocore-home-hero__button::after,
.petrocore-home-about__button::after,
.petrocore-home-hse__button::after,
.petrocore-home-contact-cta__button::after {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #fff;
	color: var(--petrocore-button-color);
	content: '→';
	font-size: 1.15rem;
	font-weight: 400;
	line-height: 1;
	transition: transform .25s ease, background-color .25s ease, color .25s ease;
}

.petrocore-button:hover,
.petrocore-button:focus-visible,
.petrocore-home-hero__button:hover,
.petrocore-home-hero__button:focus-visible,
.petrocore-home-about__button:hover,
.petrocore-home-about__button:focus-visible,
.petrocore-home-hse__button:hover,
.petrocore-home-hse__button:focus-visible,
.petrocore-home-contact-cta__button:hover,
.petrocore-home-contact-cta__button:focus-visible {
	border-color: transparent;
	background: var(--petrocore-button-hover) !important;
	color: #fff;
	transform: translateY(-2px);
}

.petrocore-button:hover::after,
.petrocore-button:focus-visible::after,
.petrocore-home-hero__button:hover::after,
.petrocore-home-hero__button:focus-visible::after,
.petrocore-home-about__button:hover::after,
.petrocore-home-about__button:focus-visible::after,
.petrocore-home-hse__button:hover::after,
.petrocore-home-hse__button:focus-visible::after,
.petrocore-home-contact-cta__button:hover::after,
.petrocore-home-contact-cta__button:focus-visible::after {
	background: var(--petrocore-button-color);
	color: #fff;
	transform: rotate(-45deg);
}

.petrocore-button--secondary { --petrocore-button-color: #003f51; --petrocore-button-hover: #f15a24; }
.petrocore-home-hero__button, .petrocore-home-hse__button, .petrocore-home-contact-cta__button { --petrocore-button-color: #f15a24; }

/* Action buttons can replace the navigation arrow with a matching symbol. */
.petrocore-button--download::after { display: none; }
.petrocore-button--download .petrocore-button__action-icon { display: grid; flex: 0 0 32px; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #fff; color: var(--petrocore-button-color); transition: background-color .25s ease, color .25s ease; }
.petrocore-button--download .petrocore-button__action-icon svg { width: 17px; height: 17px; }
.petrocore-button--download:hover .petrocore-button__action-icon, .petrocore-button--download:focus-visible .petrocore-button__action-icon { background: var(--petrocore-button-color); color: #fff; }

/* Header CTA uses the same control at a more compact scale. */
#masthead .header-button,
#masthead .mobile-header-button {
	--petrocore-button-color: #003f51;
	--petrocore-button-hover: #f15a24;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-height: 40px;
	padding: 4px 5px 4px 15px;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--petrocore-button-color) !important;
	color: #fff !important;
	font-size: .82rem;
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
	text-transform: none;
	transition: background-color .25s ease, transform .25s ease;
}

#masthead .header-button::after,
#masthead .mobile-header-button::after {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #fff;
	color: var(--petrocore-button-color);
	content: '→';
	font-size: 1.05rem;
	font-weight: 400;
	transition: transform .25s ease, background-color .25s ease, color .25s ease;
}

#masthead .header-button:hover,
#masthead .header-button:focus-visible,
#masthead .mobile-header-button:hover,
#masthead .mobile-header-button:focus-visible { background: var(--petrocore-button-hover) !important; color: #fff !important; transform: translateY(-1px); }

#masthead .header-button:hover::after,
#masthead .header-button:focus-visible::after,
#masthead .mobile-header-button:hover::after,
#masthead .mobile-header-button:focus-visible::after { background: #fff; color: var(--petrocore-button-hover); transform: rotate(-45deg); }

.petrocore-button:focus-visible,
.petrocore-home-hero__button:focus-visible,
.petrocore-home-about__button:focus-visible,
.petrocore-home-hse__button:focus-visible,
.petrocore-home-contact-cta__button:focus-visible { outline: 3px solid rgba(241, 90, 36, .45); outline-offset: 3px; }

@media (max-width: 640px) {
	.petrocore-button,
	.petrocore-home-hero__button,
	.petrocore-home-about__button,
	.petrocore-home-hse__button,
	.petrocore-home-contact-cta__button { min-height: 42px; padding-left: 17px; gap: 10px; font-size: .84rem; }
	.petrocore-button::after,
	.petrocore-home-hero__button::after,
	.petrocore-home-about__button::after,
	.petrocore-home-hse__button::after,
	.petrocore-home-contact-cta__button::after { width: 30px; height: 30px; font-size: 1.05rem; }
}

@media (prefers-reduced-motion: reduce) {
	.petrocore-button, .petrocore-home-hero__button, .petrocore-home-about__button, .petrocore-home-hse__button, .petrocore-home-contact-cta__button,
	.petrocore-button::after, .petrocore-home-hero__button::after, .petrocore-home-about__button::after, .petrocore-home-hse__button::after, .petrocore-home-contact-cta__button::after { transition: none; }
}

/* Mobile navigation: a calm, modern white drawer. */
@media (max-width: 1024px) {
	#mobile-drawer .drawer-inner {
		background: #fff;
		box-shadow: 0 18px 50px rgba(10, 34, 52, .16);
	}

	#mobile-drawer .drawer-header {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		min-height: 74px;
		padding: 14px 22px;
		border-bottom: 1px solid #e8eef0;
	}

	#mobile-drawer .drawer-header .menu-toggle-close {
		display: grid;
		place-items: center;
		width: 40px;
		height: 40px;
		padding: 0;
		border: 1px solid #d7e1e5;
		border-radius: 50%;
		background: #fff;
		color: #003f51;
	}

	#mobile-drawer .drawer-header .menu-toggle-close:hover,
	#mobile-drawer .drawer-header .menu-toggle-close:focus-visible {
		border-color: #f15a24;
		background: #fff4ef;
		color: #f15a24;
	}

	#mobile-drawer .drawer-content {
		padding: 18px 22px 34px;
		background: #fff;
	}

	#mobile-drawer .mobile-navigation ul.menu {
		margin: 0;
		padding: 0;
		border-top: 1px solid #e8eef0;
	}

	#mobile-drawer .mobile-navigation ul.menu > li {
		margin: 0;
		border-bottom: 1px solid #e8eef0;
	}

	#mobile-drawer .mobile-navigation ul li > a,
	#mobile-drawer .mobile-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrap {
		display: flex;
		align-items: center;
		min-height: 56px;
		padding: 12px 0;
		color: #111a2a;
		font-size: 1rem;
		font-weight: 500;
		letter-spacing: 0;
	}

	#mobile-drawer .mobile-navigation ul li > a:hover,
	#mobile-drawer .mobile-navigation ul li > a:focus-visible,
	#mobile-drawer .mobile-navigation ul li.current-menu-item > a,
	#mobile-drawer .mobile-navigation ul li.current-menu-ancestor > a,
	#mobile-drawer .mobile-navigation ul li.current-menu-item > .drawer-nav-drop-wrap {
		color: #f15a24;
	}

	#mobile-drawer .mobile-navigation .drawer-nav-drop-wrap button,
	#mobile-drawer .mobile-navigation .drawer-nav-drop-wrap .drawer-sub-toggle {
		width: 36px;
		height: 36px;
		margin-left: auto;
		border: 1px solid #d7e1e5;
		border-radius: 50%;
		background: #fff;
		color: #003f51;
	}

	#mobile-drawer .mobile-navigation ul.sub-menu {
		margin: 0 0 12px;
		padding: 4px 0 4px 16px;
		border-left: 1px solid rgba(241, 90, 36, .35);
	}

	#mobile-drawer .mobile-navigation ul.sub-menu li { border: 0; }
	#mobile-drawer .mobile-navigation ul.sub-menu li > a { min-height: 44px; color: #526174; font-size: .92rem; }

	#mobile-drawer .mobile-header-button {
		display: flex;
		justify-content: space-between;
		width: 100%;
		margin-top: 28px;
	}
}

/* End-of-page CTAs: restrained technical linework, without adding another image. */
.petrocore-home-contact-cta,
.petrocore-services-cta,
.petrocore-contact-final-cta {
	--petrocore-cta-line: rgba(0, 63, 81, .07);
	--petrocore-ring-blue: rgba(20, 86, 160, .065);
	--petrocore-ring-orange: rgba(241, 90, 36, .045);
	position: relative;
	isolation: isolate;
	overflow: hidden;
}

.petrocore-home-contact-cta::before,
.petrocore-services-cta::before,
.petrocore-contact-final-cta::before {
	position: absolute;
	z-index: -1;
	width: 430px;
	height: 430px;
	border: 1px solid var(--petrocore-cta-line);
	border-radius: 50%;
	background:
		radial-gradient(circle at 74% 35%, #f15a24 0 4px, transparent 5px),
		radial-gradient(circle, transparent 0 18%, var(--petrocore-ring-blue) 18.3% 18.7%, transparent 19.1% 34%, var(--petrocore-cta-line) 34.3% 34.7%, transparent 35.1% 51%, var(--petrocore-ring-orange) 51.3% 51.7%, transparent 52.1%);
	box-shadow: 0 0 0 32px var(--petrocore-ring-blue), 0 0 0 70px var(--petrocore-ring-orange);
	content: '';
	left: -126px;
	bottom: -250px;
}

.petrocore-home-contact-cta::after,
.petrocore-services-cta::after,
.petrocore-contact-final-cta::after {
	position: absolute;
	z-index: -1;
	width: 350px;
	height: 350px;
	border: 1px solid var(--petrocore-cta-line);
	border-radius: 50%;
	background:
		radial-gradient(circle at 28% 67%, #f15a24 0 3px, transparent 4px),
		radial-gradient(circle, transparent 0 20%, var(--petrocore-ring-orange) 20.3% 20.7%, transparent 21.1% 39%, var(--petrocore-cta-line) 39.3% 39.7%, transparent 40.1% 58%, var(--petrocore-ring-blue) 58.3% 58.7%, transparent 59.1%);
	box-shadow: 0 0 0 30px var(--petrocore-ring-orange), 0 0 0 64px var(--petrocore-ring-blue);
	content: '';
	right: -112px;
	top: -210px;
}

.petrocore-home-contact-cta__inner,
.petrocore-services-cta__inner,
.petrocore-contact-final-cta .petrocore-contact-shell { position: relative; z-index: 1; }

.petrocore-contact-final-cta { --petrocore-cta-line: rgba(255, 255, 255, .09); --petrocore-ring-blue: rgba(20, 86, 160, .09); --petrocore-ring-orange: rgba(241, 90, 36, .065); }

@media (max-width: 640px) {
	.petrocore-home-contact-cta::before,
	.petrocore-services-cta::before,
	.petrocore-contact-final-cta::before { width: 290px; height: 290px; left: -110px; bottom: -180px; }
	.petrocore-home-contact-cta::after,
	.petrocore-services-cta::after,
	.petrocore-contact-final-cta::after { width: 240px; height: 240px; right: -94px; top: -145px; }
}
