/*
 * Site-wide CSS overrides.
 *
 * Reserved for genuine one-off, page-specific tweaks going forward — anything that
 * applies to a widget/template everywhere should live in that widget's own file
 * instead (elementor-widgets/class-jp-*.php, or the relevant assets/css/sections/*.css
 * / inc/*.php template), not here. Everything that used to live in this file has been
 * folded into its widget's own default styling as of 2026-08-29.
 */

section.jp-about-window.jp-about-window--bio {
	padding-top: 50px !important;
}

@media (min-width: 1101px) {
	.page-id-1094 .jp-about-window__body {
		align-items: center !important;
	}
}

/* HubSpot cookie banner */
#hs-banner-parent,
#hs-banner-parent * {
	box-sizing: border-box;
}

#hs-banner-parent * {
	font-family: var(--jp-font-body) !important;
	font-size: var(--jp-b4-size) !important;
	font-weight: var(--jp-b4-weight) !important;
	line-height: var(--jp-b4-line) !important;
	letter-spacing: var(--jp-b4-spacing) !important;
	color: #434C5C;
}

#hs-eu-cookie-confirmation {
	max-width: 100%;
	border-radius: 12px !important;
	overflow: hidden;
	box-shadow: 0 8px 32px rgba(18, 24, 40, 0.14) !important;
}

#hs-eu-cookie-confirmation-inner {
	padding: 24px !important;
}

#hs-eu-cookie-confirmation #hs-eu-cookie-confirmation-inner p {
	margin-top: 0;
	margin-bottom: 0 !important;
	overflow-wrap: anywhere;
}

#hs-banner-parent a {
	color: #5603AD !important;
	text-decoration: underline;
	text-underline-offset: 3px;
	transition: color 0.2s ease;
}

#hs-banner-parent a:hover {
	color: var(--jp-c-purple-hover, #3D0280) !important;
}

button#hs-eu-confirmation-button,
button#hs-eu-decline-button {
	box-sizing: border-box;
	min-height: 46px;
	padding: 12px 22px !important;
	border-radius: 6px !important;
	font-family: var(--jp-font-button) !important;
	font-size: var(--jp-btn1-size) !important;
	font-weight: var(--jp-btn1-weight) !important;
	line-height: var(--jp-btn1-line) !important;
	letter-spacing: var(--jp-btn1-spacing) !important;
	text-align: center;
	cursor: pointer;
	outline: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

button#hs-eu-confirmation-button {
	color: #FFFFFF !important;
	background-color: #5603AD !important;
	border: 1px solid #5603AD !important;
}

#hs-eu-cookie-confirmation #hs-eu-confirmation-button:hover {
	background: #fff !important;
	border: 1px solid #5603AD !important;
	color: #5603AD !important;
	transform: translateY(-1px);
	box-shadow: none;
}

button#hs-eu-decline-button {
	color: #5603AD !important;
	background-color: #FFFFFF !important;
	border: 1px solid #5603AD !important;
}

#hs-eu-cookie-confirmation #hs-eu-decline-button:hover {
	color: #FFFFFF !important;
	background-color: #5603AD !important;
	border-color: #5603AD !important;
	transform: translateY(-1px);
}

#hs-eu-cookie-confirmation button:focus-visible,
#hs-banner-parent a:focus-visible {
	outline: 3px solid rgba(86, 3, 173, 0.35) !important;
	outline-offset: 3px;
}

@media screen and (max-width: 1024px) {
	#hs-eu-cookie-confirmation-inner {
		padding: 20px !important;
	}

	button#hs-eu-confirmation-button,
	button#hs-eu-decline-button {
		min-height: 44px;
		padding: 11px 18px !important;
	}
}

@media screen and (max-width: 767px) {
	#hs-eu-cookie-confirmation {
		width: 100% !important;
		max-width: 100% !important;
		border-radius: 10px !important;
	}

	#hs-eu-cookie-confirmation-inner {
		padding: 18px !important;
	}

	#hs-banner-parent * {
		overflow-wrap: anywhere;
	}

	#hs-eu-cookie-confirmation #hs-eu-cookie-confirmation-inner p {
		margin-bottom: 14px;
	}

	button#hs-eu-confirmation-button,
	button#hs-eu-decline-button {
		min-height: 44px;
		max-width: 100%;
		padding: 11px 16px !important;
		transform: none;
	}

	#hs-eu-cookie-confirmation #hs-eu-confirmation-button:hover,
	#hs-eu-cookie-confirmation #hs-eu-decline-button:hover {
		transform: none;
		box-shadow: none;
	}
}

@media screen and (max-width: 480px) {
	#hs-eu-cookie-confirmation-inner {
		padding: 16px !important;
	}

	button#hs-eu-confirmation-button,
	button#hs-eu-decline-button {
		min-height: 44px;
		padding: 10px 12px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	#hs-banner-parent *,
	#hs-banner-parent *::before,
	#hs-banner-parent *::after {
		transition: none !important;
		animation: none !important;
		scroll-behavior: auto !important;
	}
}
