/* Owlsora Elements — Site Footer widget
 * Colors/sizes come from widget controls as CSS variables on .spf.
 */

.spf {
	--spf-bg: #071230;
	--spf-text: #C7D3E4;
	--spf-max: 1200px;
	--spf-pad-top: 72px;
	--spf-pad-x: 16px;
	--spf-gap: 40px;
	--spf-brand: 1.3fr;
	--spf-n: 3;
	--spf-logo-w: 210px;
	--spf-tagline: #5CC2FF;
	--spf-license: #FFFFFF;
	--spf-about: #C7D3E4;
	--spf-heading: #FFFFFF;
	--spf-link: #C7D3E4;
	--spf-link-hover: #5CC2FF;
	--spf-link-gap: 9px;
	--spf-icon: #5CC2FF;
	--spf-social: 42px;
	--spf-social-bg: transparent;
	--spf-social-border: rgba(255, 255, 255, .2);
	--spf-social-color: #FFFFFF;
	--spf-social-bg-hover: transparent;
	--spf-social-border-hover: #5CC2FF;
	--spf-social-color-hover: #FFFFFF;
	--spf-bottom: #93A6C2;
	--spf-divider: rgba(255, 255, 255, .12);
	--spf-wave-h: 48px;

	position: relative;
	background: var(--spf-bg);
	border-radius: var(--spf-radius, 0);
	color: var(--spf-text);
	font-family: "Figtree", "Avenir Next", "Segoe UI", system-ui, sans-serif;
	font-size: 15px;
	line-height: 1.6;
}
.spf *,
.spf *::before,
.spf *::after { box-sizing: border-box; }

/* wave rising over the section above */
.spf__wave {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(1px - var(--spf-wave-h));
	width: 100%;
	height: var(--spf-wave-h);
	display: block;
	fill: var(--spf-bg);
	pointer-events: none;
}

.spf__inner {
	max-width: var(--spf-max);
	margin: 0 auto;
	padding-top: var(--spf-pad-top);
	padding-bottom: 40px;
	padding-left: max(var(--spf-pad-x), env(safe-area-inset-left, 0px));
	padding-right: max(var(--spf-pad-x), env(safe-area-inset-right, 0px));
}

.spf--content-full .spf__inner { max-width: none; }
.spf.owe-stretch { width: 100vw; max-width: none; margin-left: calc(50% - 50vw); }

.spf__grid {
	display: grid;
	grid-template-columns: var(--spf-brand) repeat(var(--spf-n), minmax(0, 1fr));
	gap: var(--spf-gap);
}
.spf__col { min-width: 0; }

/* default stacking if Elementor's responsive values are not set */
@media (max-width: 900px) { .spf__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .spf__grid { grid-template-columns: minmax(0, 1fr); } }

/* brand column */
.spf__logo { display: inline-block; line-height: 0; }
.spf__logo img { width: var(--spf-logo-w); max-width: 100%; height: auto; display: block; }
.spf__tagline { margin: 16px 0 0; color: var(--spf-tagline); font-family: "Kaushan Script", "Brush Script MT", cursive; font-size: 24px; font-weight: 400; line-height: 1.3; }
.spf__license { margin: 14px 0 0; color: var(--spf-license); font-size: 14px; font-weight: 800; }
.spf__about { margin: 10px 0 0; color: var(--spf-about); max-width: 32em; }
.spf__hint { margin: 14px 0 0; font-size: 13px; opacity: .7; }

.spf__social { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.spf__social a {
	width: var(--spf-social);
	height: var(--spf-social);
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--spf-social-bg);
	border: 2px solid var(--spf-social-border);
	color: var(--spf-social-color);
	font-size: 18px;
	text-decoration: none;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}
.spf__social a:hover,
.spf__social a:focus-visible { background: var(--spf-social-bg-hover); border-color: var(--spf-social-border-hover); color: var(--spf-social-color-hover); }
.spf__social svg { width: 1em; height: 1em; fill: currentColor; }

/* link columns */
.spf__title {
	margin: 0 0 16px;
	padding: 0;
	color: var(--spf-heading);
	font-family: "Anton", Impact, "Arial Narrow Bold", sans-serif;
	font-size: 22px;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: .005em;
	text-transform: uppercase;
}
.spf__links { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--spf-link-gap); }
.spf__links li { margin: 0; padding: 0; }
.spf__links a,
.spf__links span { color: var(--spf-link); text-decoration: none; }
.spf__links a { transition: color .15s ease; }
.spf__links a:hover,
.spf__links a:focus-visible,
.spf__links .current-menu-item > a { color: var(--spf-link-hover); }

.spf a:focus-visible { outline: 2px solid var(--spf-link-hover); outline-offset: 3px; border-radius: 4px; }

/* contact column */
.spf__contact-item { display: inline-flex; align-items: flex-start; gap: 10px; }
.spf__contact-item.is-bold { font-weight: 800; }
.spf__icon { color: var(--spf-icon); width: 1.1em; flex: none; display: inline-flex; justify-content: center; padding-top: .2em; }
.spf__icon svg { width: 1em; height: 1em; fill: currentColor; }
.spf__contact-item.is-bold:hover { color: var(--spf-link-hover); }

/* bottom bar */
.spf__bottom {
	margin-top: 52px;
	padding-top: 24px;
	border-top: 1px solid var(--spf-divider);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 12px 24px;
	color: var(--spf-bottom);
	font-size: 14px;
}
.spf__bottom-right { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; }
.spf__bottom-links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 0; }
.spf__bottom-links li { margin: 0; }
.spf__bottom-links li + li::before { content: "·"; margin: 0 .35em; }
.spf__bottom-links a,
.spf__bottom-links span { color: inherit; text-decoration: none; }
.spf__bottom-links a:hover { color: var(--spf-link-hover); }

/* phone call bar */
.spf-callbar { display: none; }
@media (max-width: 640px) {
	.spf-callbar {
		--spf-callbar-bg: #0B6BF0;
		--spf-callbar-color: #FFFFFF;
		--spf-callbar-border: #0B1A3D;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 998;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		padding: 14px max(16px, env(safe-area-inset-right, 0px)) calc(14px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px));
		background: var(--spf-callbar-bg);
		color: var(--spf-callbar-color);
		border-top: 3px solid var(--spf-callbar-border);
		font-family: "Figtree", "Avenir Next", "Segoe UI", system-ui, sans-serif;
		font-size: 19px;
		font-weight: 800;
		line-height: 1.6;
		text-decoration: none;
	}
	.spf-callbar:hover,
	.spf-callbar:focus { color: var(--spf-callbar-color); }
	.spf-callbar svg { width: 20px; height: 20px; fill: currentColor; flex: none; }
	/* keep the bar from covering the end of the page */
	body:has(.spf-callbar:not(.spf-callbar--editor)) { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
	/* in the Elementor editor show it in place instead of floating */
	.spf-callbar--editor { position: static; }
}

@media (prefers-reduced-motion: reduce) {
	.spf * { transition: none !important; }
}

/* Full width: when this widget is alone in an Elementor container/column,
 * drop that container's padding so no gap shows above, below or beside it. */
.e-con:has(> .elementor-widget-ow-footer:only-child .owe-stretch),
.e-con:has(> .e-con-inner > .elementor-widget-ow-footer:only-child .owe-stretch) {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--margin-top: 0px;
	--margin-bottom: 0px;
	padding: 0;
}
.elementor-widget-wrap:has(> .elementor-widget-ow-footer:only-child .owe-stretch) { padding: 0 !important; }
.elementor-section:has(.elementor-widget-wrap > .elementor-widget-ow-footer:only-child .owe-stretch) { padding-top: 0; padding-bottom: 0; }
.elementor-widget-ow-footer:has(.owe-stretch) { margin-top: 0; margin-bottom: 0; --kit-widget-spacing: 0px; }
