/* Owlsora Elements — Contact & Quote Form widget
 * Colors/sizes come from widget controls as CSS variables on .spc.
 */

.spc {
	--spc-bg-top: #0a3fcf;
	--spc-bg-bottom: #0b1a3d;
	--spc-max: 1200px;
	--spc-pad-y: 104px;
	--spc-pad-x: 16px;
	--spc-gap: 56px;
	--spc-wave-h: 56px;
	--spc-eyebrow: #5CC2FF;
	--spc-title: #f7fafd;
	--spc-pop: #5CC2FF;
	--spc-sub: #d2deee;
	--spc-phone: #5CC2FF;
	--spc-phone-shadow: #0B6BF0;
	--spc-hours: #cbd8ea;
	--spc-card-bg: #f7fafd;
	--spc-card-text: #2a3a66;
	--spc-card-title: #0B1A3D;
	--spc-card-radius: 28px;
	--spc-field-bg: #FFFFFF;
	--spc-field-border: rgba(6, 15, 36, .16);
	--spc-field-focus: #2d8cff;
	--spc-btn-bg: #0b6bf0;
	--spc-btn-bg-hover: #0B6BF0;
	--spc-btn-color: #FFFFFF;
	--spc-btn-edge: #0845b0;

	position: relative;
	z-index: 1;
	scroll-margin-top: 90px;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='80'%3E%3Cpath d='M0 40 Q30 28 60 40 T120 40 T180 40 T240 40' fill='none' stroke='%23ffffff' stroke-opacity='.06' stroke-width='2'/%3E%3Cpath d='M-30 70 Q0 58 30 70 T90 70 T150 70 T210 70 T270 70' fill='none' stroke='%23ffffff' stroke-opacity='.04' stroke-width='2'/%3E%3C/svg%3E"),
		radial-gradient(1200px 500px at 85% 0%, rgba(169, 211, 245, .16), transparent 60%),
		linear-gradient(180deg, var(--spc-bg-top) 0%, var(--spc-bg-bottom) 100%);
	color: var(--spc-title);
	font-size: 17px;
	line-height: 1.6;
	font-family: "Figtree", "Avenir Next", "Segoe UI", system-ui, sans-serif;
}
.spc *,
.spc *::before,
.spc *::after { box-sizing: border-box; }

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

.spc__wave {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(1px - var(--spc-wave-h));
	width: 100%;
	height: var(--spc-wave-h);
	display: block;
	fill: var(--spc-bg-top);
	pointer-events: none;
}

.spc__inner {
	max-width: var(--spc-max);
	margin: 0 auto;
	padding-top: var(--spc-pad-y);
	padding-bottom: var(--spc-pad-y);
	padding-left: max(var(--spc-pad-x), env(safe-area-inset-left, 0px));
	padding-right: max(var(--spc-pad-x), env(safe-area-inset-right, 0px));
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--spc-gap);
	align-items: center;
}
.spc--no-form .spc__inner { grid-template-columns: minmax(0, 1fr); text-align: center; }
.spc__copy { min-width: 0; }

/* text */
.spc__eyebrow { display: block; margin-bottom: 14px; color: var(--spc-eyebrow); font-size: 15px; font-weight: 800; letter-spacing: .01em; }
.spc .spc__title {
	margin: 0;
	padding: 0;
	color: var(--spc-title);
	font-family: "Anton", Impact, "Arial Narrow Bold", sans-serif;
	font-size: clamp(46px, 6vw, 84px);
	font-weight: 400;
	line-height: .98;
	text-transform: uppercase;
	text-wrap: balance;
}
.spc .spc__pop { color: var(--spc-pop); font-style: normal; }
.spc .spc__sub { margin: 22px 0 0; max-width: 30em; color: var(--spc-sub); font-size: 20px; line-height: 1.6; }
.spc--no-form .spc__sub { margin-left: auto; margin-right: auto; }
.spc .spc__phone {
	display: inline-block;
	margin-top: 30px;
	color: var(--spc-phone);
	font-family: "Anton", Impact, sans-serif;
	font-size: clamp(44px, 6vw, 72px);
	line-height: 1;
	text-shadow: 4px 4px 0 var(--spc-phone-shadow);
	text-decoration: none;
	transition: transform .15s ease;
}
.spc .spc__phone:hover,
.spc .spc__phone:focus-visible { color: var(--spc-phone); transform: translateY(-2px); }
.spc .spc__hours { list-style: none; margin: 24px 0 0; padding: 0; display: grid; gap: 8px; color: var(--spc-hours); font-size: 16px; }
.spc .spc__hours a { color: var(--spc-hours); text-decoration: none; }
.spc .spc__hours a:hover { color: var(--spc-pop); }
.spc--no-form .spc__hours { justify-items: center; }
.spc .spc__hours li { margin: 0; }
.spc .spc__hours b { color: var(--spc-title); }

/* form card */
.spc__card {
	min-width: 0;
	padding: 36px;
	background: var(--spc-card-bg);
	color: var(--spc-card-text);
	border-radius: var(--spc-card-radius);
	box-shadow: 0 24px 50px rgba(0, 0, 0, .25);
}
.spc .spc__card-title {
	margin: 0;
	padding: 0;
	color: var(--spc-card-title);
	font-family: "Anton", Impact, sans-serif;
	font-size: 34px;
	font-weight: 400;
	line-height: 1.05;
	text-transform: uppercase;
}
.spc__card-head { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 16px; }
.spc .spc__card-logo { width: 110px; max-width: 40%; height: auto; flex: none; }
.spc__form { display: grid; gap: 16px; margin: 0; }
.spc__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
.spc__field { display: grid; gap: 6px; min-width: 0; margin: 0; color: var(--spc-card-text); font-size: 14px; font-weight: 700; }
.spc .spc__field input,
.spc .spc__field select,
.spc .spc__field textarea {
	width: 100%;
	min-height: 0;
	margin: 0;
	padding: 13px 14px;
	background: var(--spc-field-bg);
	color: var(--spc-card-title);
	border: 2px solid var(--spc-field-border);
	border-radius: 12px;
	box-shadow: none;
	font: 500 16px/1.4 "Figtree", "Avenir Next", "Segoe UI", system-ui, sans-serif;
}
.spc .spc__field textarea { min-height: 110px; resize: vertical; }
.spc .spc__field input:focus,
.spc .spc__field select:focus,
.spc .spc__field textarea:focus { outline: none; border-color: var(--spc-field-focus); box-shadow: 0 0 0 3px rgba(45, 140, 255, .18); }
.spc__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.spc .spc__submit {
	width: 100%;
	margin-top: 4px;
	padding: 16px 28px;
	background: var(--spc-btn-bg);
	color: var(--spc-btn-color);
	border: 0;
	border-radius: 10px;
	box-shadow: 0 4px 0 var(--spc-btn-edge);
	font: 800 18px/1.6 "Figtree", "Avenir Next", "Segoe UI", system-ui, sans-serif;
	cursor: pointer;
	transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.spc .spc__submit:hover,
.spc .spc__submit:focus-visible { background: var(--spc-btn-bg-hover); color: var(--spc-btn-color); transform: translateY(-2px); box-shadow: 0 6px 0 var(--spc-btn-edge); }
.spc .spc__submit:focus-visible { outline: 3px solid var(--spc-field-focus); outline-offset: 3px; }
.spc .spc__submit:disabled { opacity: .7; cursor: progress; transform: none; }

.spc__msg { padding: 14px 16px; border-radius: 12px; font-size: 15px; font-weight: 600; line-height: 1.5; }
.spc__msg.is-ok { background: #e7f2fb; color: #0b1a3d; }
.spc__msg.is-error { background: #E3EFFF; color: #8A2A22; }
.spc__msg[hidden] { display: none; }
.spc .spc__note { margin: 14px 0 0; color: var(--spc-card-text); font-size: 13px; text-align: center; opacity: .85; }
.spc__shortcode { color: var(--spc-card-text); }

@media (max-width: 900px) {
	.spc__inner { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
	.spc__row { grid-template-columns: minmax(0, 1fr); }
	.spc__card { padding: 24px; }
}

@media (prefers-reduced-motion: reduce) {
	.spc * { 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-contact:only-child .owe-stretch),
.e-con:has(> .e-con-inner > .elementor-widget-ow-contact: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-contact:only-child .owe-stretch) { padding: 0 !important; }
.elementor-section:has(.elementor-widget-wrap > .elementor-widget-ow-contact:only-child .owe-stretch) { padding-top: 0; padding-bottom: 0; }
.elementor-widget-ow-contact:has(.owe-stretch) { margin-top: 0; margin-bottom: 0; --kit-widget-spacing: 0px; }
.e-con:has(> .elementor-widget-ow-contact .spc--wave),
.e-con:has(> .e-con-inner > .elementor-widget-ow-contact .spc--wave),
.elementor-section:has(.elementor-widget-ow-contact .spc--wave) { position: relative; z-index: 2; overflow: visible; }
