/*!
Theme Name: Complete Air System
Author: Admin
Description: Complete Air System theme is a blank canvas for your WordPress project.
Version: 1.0.0
Requires at least: 6.2
Tested up to: 7.0.2
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cas-wp
Domain Path: /languages
Tags: custom-background, custom-logo, custom-menu, featured-images, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.
*/

.svg-icons-list .icon-grid {
	display: grid;
	grid-template-columns: repeat(8, auto);
	list-style: none;
	padding-left: 0;
	gap: 1rem;
}


.svg-icons-list .icon-grid li {
	display: grid;
	align-items: center;
	/* justify-content: center; */
}

/* ==========================================================================
   Complete Air Systems - Unified Default Form Styles
   Apply class="cas-form" to any parent container (or uses .quote-panel__form-wrap / .quote-modal__form)
   Matches reference: https://complete-air-systems.lovable.app/
   ========================================================================== */
.cas-form form,
.cas-form .gform_wrapper,
.cas-form .frm-fluent-form,
.quote-panel__form-wrap form,
.quote-panel__form-wrap .gform_wrapper,
.quote-modal__form form,
.quote-modal__form .gform_wrapper {
	width: 100% !important;
	max-width: 100% !important;
}

/* Hide form heading since parent wrapper / block template provides the header */
.cas-form .gform_heading,
.quote-panel__form-wrap .gform_heading,
.quote-modal__form .gform_heading {
	display: none !important;
}

/* Hide red (REQUIRED) text */
.cas-form .gfield_required,
.cas-form .gfield_required_text,
.cas-form .ff-el-is-required,
.quote-panel__form-wrap .gfield_required,
.quote-modal__form .gfield_required,
.quote-panel__form-wrap .gfield_required_text,
.quote-modal__form .gfield_required_text {
	display: none !important;
}

/* Field labels - small, clean, uppercase-tracked style matching reference */
.cas-form label.gfield_label,
.cas-form .gfield_label,
.cas-form .ff-el-input--label label,
.quote-panel__form-wrap label.gfield_label,
.quote-panel__form-wrap .gfield_label,
.quote-panel__form-wrap .ff-el-input--label label,
.quote-modal__form label.gfield_label,
.quote-modal__form .gfield_label,
.quote-modal__form .ff-el-input--label label {
	display: block !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.08em !important;
	color: #64748b !important;
	margin-bottom: 6px !important;
}

/* Inputs, selects, and form controls (single-line: height 46px) */
.cas-form input[type="text"],
.cas-form input[type="email"],
.cas-form input[type="tel"],
.cas-form input[type="url"],
.cas-form input[type="number"],
.cas-form select,
.quote-panel__form-wrap input[type="text"],
.quote-panel__form-wrap input[type="email"],
.quote-panel__form-wrap input[type="tel"],
.quote-panel__form-wrap input[type="url"],
.quote-panel__form-wrap input[type="number"],
.quote-panel__form-wrap select,
.quote-modal__form input[type="text"],
.quote-modal__form input[type="email"],
.quote-modal__form input[type="tel"],
.quote-modal__form input[type="url"],
.quote-modal__form input[type="number"],
.quote-modal__form select {
	width: 100% !important;
	max-width: 100% !important;
	background-color: #f8fafc !important;
	color: #04193A !important;
	border: 1px solid rgba(226, 232, 240, 0.9) !important;
	border-radius: 12px !important;
	padding: 11px 16px !important;
	height: 46px !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	outline: none !important;
	box-shadow: none !important;
	transition: all 0.2s ease !important;
	box-sizing: border-box !important;
}

/* Multi-line Textareas (fixed 86px height overriding HTML rows="10") */
.cas-form textarea,
.cas-form textarea.large,
.cas-form .ginput_container_textarea textarea,
.cas-form .ff-el-form-control[rows],
.quote-panel__form-wrap textarea,
.quote-panel__form-wrap textarea.large,
.quote-panel__form-wrap .ginput_container_textarea textarea,
.quote-modal__form textarea,
.quote-modal__form textarea.large,
.quote-modal__form .ginput_container_textarea textarea {
	width: 100% !important;
	max-width: 100% !important;
	background-color: #f8fafc !important;
	color: #04193A !important;
	border: 1px solid rgba(226, 232, 240, 0.9) !important;
	border-radius: 12px !important;
	padding: 11px 16px !important;
	height: 86px !important;
	min-height: 86px !important;
	max-height: 240px !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 1.5 !important;
	outline: none !important;
	box-shadow: none !important;
	transition: all 0.2s ease !important;
	box-sizing: border-box !important;
	resize: vertical !important;
}

.cas-form select,
.quote-panel__form-wrap select,
.quote-modal__form select {
	appearance: none !important;
	-webkit-appearance: none !important;
	cursor: pointer !important;
	padding-right: 36px !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2364748b' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m19 9-7 7-7-7'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 14px center !important;
	background-size: 16px !important;
}

/* Radio Segmented Button Toggle Container (Yes / No) */
.cas-form .gfield_radio,
.cas-form .gfield_checkbox,
.cas-form .ff-el-form-check,
.cas-form .ginput_container_radio .gfield_radio,
.quote-panel__form-wrap .gfield_radio,
.quote-panel__form-wrap .gfield_checkbox,
.quote-panel__form-wrap .ff-el-form-check,
.quote-panel__form-wrap .ginput_container_radio .gfield_radio,
.quote-modal__form .gfield_radio,
.quote-modal__form .gfield_checkbox,
.quote-modal__form .ff-el-form-check,
.quote-modal__form .ginput_container_radio .gfield_radio {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 0 !important;
	background-color: #f8fafc !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 14px !important;
	overflow: hidden !important;
	padding: 0 !important;
	margin: 0 !important;
	list-style: none !important;
}

.cas-form .gfield_radio .gchoice,
.cas-form .gfield_checkbox .gchoice,
.cas-form .ff-el-form-check .ff-el-form-check-label,
.quote-panel__form-wrap .gfield_radio .gchoice,
.quote-panel__form-wrap .gfield_checkbox .gchoice,
.quote-panel__form-wrap .ff-el-form-check .ff-el-form-check-label,
.quote-modal__form .gfield_radio .gchoice,
.quote-modal__form .gfield_checkbox .gchoice,
.quote-modal__form .ff-el-form-check .ff-el-form-check-label {
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
	padding: 13px 20px !important;
	margin: 0 !important;
	cursor: pointer !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	color: #334155 !important;
	background: transparent !important;
	transition: background-color 0.15s ease !important;
}

.cas-form .gfield_radio .gchoice:first-child,
.cas-form .ff-el-form-check:first-child,
.quote-panel__form-wrap .gfield_radio .gchoice:first-child,
.quote-panel__form-wrap .ff-el-form-check:first-child,
.quote-modal__form .gfield_radio .gchoice:first-child,
.quote-modal__form .ff-el-form-check:first-child {
	border-right: 1px solid #e2e8f0 !important;
}

.cas-form .gfield_radio .gchoice:hover,
.cas-form .ff-el-form-check .ff-el-form-check-label:hover,
.quote-panel__form-wrap .gfield_radio .gchoice:hover,
.quote-panel__form-wrap .ff-el-form-check .ff-el-form-check-label:hover,
.quote-modal__form .gfield_radio .gchoice:hover,
.quote-modal__form .ff-el-form-check .ff-el-form-check-label:hover {
	background-color: #f1f5f9 !important;
}

.cas-form .gfield_radio .gchoice label,
.quote-panel__form-wrap .gfield_radio .gchoice label,
.quote-modal__form .gfield_radio .gchoice label {
	margin: 0 !important;
	padding: 0 !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	color: #334155 !important;
	cursor: pointer !important;
}

.cas-form .gfield_radio input[type="radio"],
.cas-form .ff-el-form-check input[type="radio"],
.quote-panel__form-wrap .gfield_radio input[type="radio"],
.quote-panel__form-wrap .ff-el-form-check input[type="radio"],
.quote-modal__form .gfield_radio input[type="radio"],
.quote-modal__form .ff-el-form-check input[type="radio"] {
	appearance: none !important;
	-webkit-appearance: none !important;
	width: 18px !important;
	height: 18px !important;
	border: 1.5px solid rgba(4, 25, 58, 0.7) !important;
	border-radius: 50% !important;
	outline: none !important;
	margin: 0 !important;
	cursor: pointer !important;
	display: grid !important;
	place-content: center !important;
	background-color: #ffffff !important;
	transition: border-color 0.2s ease !important;
}

.cas-form .gfield_radio input[type="radio"]::before,
.cas-form .ff-el-form-check input[type="radio"]::before,
.quote-panel__form-wrap .gfield_radio input[type="radio"]::before,
.quote-panel__form-wrap .ff-el-form-check input[type="radio"]::before,
.quote-modal__form .gfield_radio input[type="radio"]::before,
.quote-modal__form .ff-el-form-check input[type="radio"]::before {
	content: "" !important;
	width: 9px !important;
	height: 9px !important;
	border-radius: 50% !important;
	transform: scale(0) !important;
	transition: 0.15s transform ease-in-out !important;
	background-color: rgba(4, 25, 58, 0.7) !important;
}

.cas-form .gfield_radio input[type="radio"]:checked,
.cas-form .ff-el-form-check input[type="radio"]:checked,
.quote-panel__form-wrap .gfield_radio input[type="radio"]:checked,
.quote-panel__form-wrap .ff-el-form-check input[type="radio"]:checked,
.quote-modal__form .gfield_radio input[type="radio"]:checked,
.quote-modal__form .ff-el-form-check input[type="radio"]:checked {
	border-color: rgba(4, 25, 58, 0.7) !important;
}

.cas-form .gfield_radio input[type="radio"]:checked::before,
.cas-form .ff-el-form-check input[type="radio"]:checked::before,
.quote-panel__form-wrap .gfield_radio input[type="radio"]:checked::before,
.quote-panel__form-wrap .ff-el-form-check input[type="radio"]:checked::before,
.quote-modal__form .gfield_radio input[type="radio"]:checked::before,
.quote-modal__form .ff-el-form-check input[type="radio"]:checked::before {
	transform: scale(1) !important;
}

/* ==========================================================================
   Complete Air Systems - Unified File Upload Styling (Single & Multi-File)
   ========================================================================== */

/* Outer file upload container: ALWAYS clean, unstyled wrapper (NO border, NO pseudo-elements) */
.ginput_container_fileupload,
.cas-form .ginput_container_fileupload,
.quote-panel__form-wrap .ginput_container_fileupload,
.quote-modal__form .ginput_container_fileupload,
.gform_wrapper .ginput_container_fileupload,
.gform_fileupload_multifile {
	position: relative !important;
	width: 100% !important;
	border: 0 !important;
	border-style: none !important;
	background: transparent !important;
	background-color: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
	display: block !important;
	overflow: visible !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
}

/* Ensure NEVER any pseudo-element icons or text on the outer container */
.ginput_container_fileupload::before,
.ginput_container_fileupload::after,
.cas-form .ginput_container_fileupload::before,
.cas-form .ginput_container_fileupload::after,
.quote-panel__form-wrap .ginput_container_fileupload::before,
.quote-panel__form-wrap .ginput_container_fileupload::after,
.quote-modal__form .ginput_container_fileupload::before,
.quote-modal__form .ginput_container_fileupload::after,
.gform_wrapper .ginput_container_fileupload::before,
.gform_wrapper .ginput_container_fileupload::after {
	content: none !important;
	display: none !important;
	border: none !important;
	background: none !important;
	width: 0 !important;
	height: 0 !important;
}

/* Dropzone Tile: shared for Multi-File (.gform_drop_area) and Single-File (.cas-single-file-dropzone) */
.gform_drop_area,
.cas-single-file-dropzone,
.cas-form .gform_drop_area,
.cas-form .cas-single-file-dropzone,
.quote-panel__form-wrap .gform_drop_area,
.quote-panel__form-wrap .cas-single-file-dropzone,
.quote-modal__form .gform_drop_area,
.quote-modal__form .cas-single-file-dropzone,
.gform_wrapper .gform_drop_area {
	position: relative !important;
	width: 100% !important;
	border: 1.5px dashed #cbd5e1 !important;
	border-radius: 18px !important;
	padding: 28px 16px 24px !important;
	text-align: center !important;
	background-color: #f8fafc !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer !important;
	overflow: visible !important;
	box-sizing: border-box !important;
	transition: all 0.2s ease !important;
}

.gform_drop_area:hover,
.cas-single-file-dropzone:hover,
.gform_drop_area:has(input[type="file"]:hover),
.cas-single-file-dropzone:has(input[type="file"]:hover),
.cas-single-file-dropzone.is-dragover,
.gform_drop_area.dragover {
	background-color: #f0f9ff !important;
	border-color: #009ce2 !important;
}

/* Single-File & Multi-File: icon badge box matching Reference Image 1 */
.cas-file-icon-box {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 48px !important;
	height: 48px !important;
	margin-bottom: 12px !important;
	background-color: #ffffff !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 14px !important;
	box-shadow: 0 1px 3px rgba(4, 25, 58, 0.04), 0 2px 6px rgba(4, 25, 58, 0.02) !important;
	pointer-events: none !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23334155' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 16.5v2a2.5 2.5 0 0 0 2.5 2.5h11a2.5 2.5 0 0 0 2.5-2.5v-2'/%3E%3Cpolyline points='17 8 12 3 7 8'/%3E%3Cline x1='12' x2='12' y1='3' y2='15'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 22px !important;
}

.cas-file-icon-box .cas-upload-icon-svg {
	display: block !important;
	width: 22px !important;
	height: 22px !important;
	pointer-events: none !important;
}

/* Ensure no CSS ::before or ::after on dropzones */
.cas-single-file-dropzone::before,
.cas-single-file-dropzone::after,
.gform_drop_area::before,
.gform_drop_area::after {
	content: none !important;
	display: none !important;
}

/* Prompt matching Reference Image 1 */
.cas-file-prompt {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	pointer-events: none !important;
}

.cas-file-prompt-title {
	font-size: 15px !important;
	font-weight: 700 !important;
	color: #334155 !important;
	margin-bottom: 4px !important;
	pointer-events: none !important;
	line-height: 1.3 !important;
}

.cas-file-prompt-subtitle {
	font-size: 12px !important;
	font-weight: 500 !important;
	color: #64748b !important;
	pointer-events: none !important;
	line-height: 1.3 !important;
}

/* Hide duplicate external rules text in single-file upload */
.cas-single-file-container .gform_fileupload_rules,
.cas-single-file-container + .gform_fileupload_rules {
	display: none !important;
}

/* Multi-File Plupload: hide default instructions, keep browse button active across full dropzone */
.gform_drop_area > svg:not(.cas-upload-icon-svg),
.gform_drop_area .gform_drop_area_icon,
.gform_drop_area .gform_drop_instructions {
	display: none !important;
}

/* Plupload browse button covers the full dropzone tile invisibly to accept user clicks */
.gform_drop_area .gform_button_select_files,
.gform_drop_area button.gform_button_select_files,
.gform_drop_area input[type="button"].gform_button_select_files {
	display: block !important;
	position: absolute !important;
	inset: 0 !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	opacity: 0 !important;
	cursor: pointer !important;
	z-index: 10 !important;
	border: none !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* Plupload shim covers the entire dropzone tile so clicking or dropping anywhere triggers file selection */
.gform_fileupload_multifile .moxie-shim,
.gform_fileupload_multifile .moxie-shim-html5,
.gform_fileupload_multifile input[type="file"],
.gform_drop_area .moxie-shim,
.gform_drop_area .moxie-shim-html5,
.gform_drop_area input[type="file"] {
	position: absolute !important;
	inset: 0 !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	cursor: pointer !important;
	z-index: 15 !important;
	opacity: 0 !important;
	display: block !important;
}

/* Hide external rules text for both single and multi-file since subtitle is rendered inside the box */
.gform_fileupload_rules,
.cas-form .gform_fileupload_rules,
.quote-panel__form-wrap .gform_fileupload_rules,
.quote-modal__form .gform_fileupload_rules,
.is-multifile-container .gform_fileupload_rules,
.cas-single-file-container .gform_fileupload_rules,
.gform_drop_area + .gform_fileupload_rules,
.gform_wrapper .is-multifile-container .gform_fileupload_rules {
	display: none !important;
}

/* Single File Input (Only overlays the dropzone when NO file has been selected) */
.cas-single-file-dropzone input[type="file"] {
	opacity: 0 !important;
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	cursor: pointer !important;
	z-index: 5 !important;
}

/* When a file is selected in single file upload */
.cas-single-file-dropzone.has-file-selected {
	background-color: #f0f9ff !important;
	border: 1.5px solid #009ce2 !important;
	padding: 10px 14px !important;
}

.cas-single-file-dropzone.has-file-selected .cas-file-prompt {
	display: none !important;
}

.cas-single-file-dropzone.has-file-selected input[type="file"] {
	display: none !important;
}

/* Preview list for Multi-File upload */
.cas-form .ginput_preview,
.quote-panel__form-wrap .ginput_preview,
.quote-modal__form .ginput_preview,
.gform_wrapper .ginput_preview,
.ginput_preview {
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
	width: 100% !important;
	margin-top: 10px !important;
	padding: 0 !important;
	list-style: none !important;
	box-sizing: border-box !important;
}

/* Preview item cards: unified for single-file and multi-file */
.ginput_preview_file,
.gfield_fileupload_file,
.ginput_preview > div,
.cas-file-selected-card {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	flex-wrap: wrap !important;
	gap: 10px !important;
	width: 100% !important;
	box-sizing: border-box !important;
	padding: 10px 14px !important;
	background-color: #ffffff !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 12px !important;
	box-shadow: 0 1px 3px rgba(4, 25, 58, 0.04) !important;
	transition: all 0.2s ease !important;
	position: relative !important;
	z-index: 20 !important;
}

.ginput_preview_file:hover,
.gfield_fileupload_file:hover,
.cas-file-selected-card:hover {
	border-color: #cbd5e1 !important;
	box-shadow: 0 2px 6px rgba(4, 25, 58, 0.08) !important;
}

/* Document icon badge for multi-file preview items */
.ginput_preview_file::before {
	content: "" !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 32px !important;
	height: 32px !important;
	min-width: 32px !important;
	background-color: #e0f2fe !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23009ce2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='16' y1='13' x2='8' y2='13'/%3E%3Cline x1='16' y1='17' x2='8' y2='17'/%3E%3Cpolyline points='10 9 9 9 8 9'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 18px !important;
	border-radius: 8px !important;
	flex-shrink: 0 !important;
	order: 1 !important;
}

.cas-file-selected-card::before,
.ginput_preview_file.has-cas-icon::before {
	content: none !important;
	display: none !important;
}

/* Meta groups */
.cas-file-info-group,
.ginput_preview_file > span:first-child {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	max-width: calc(100% - 36px) !important;
	overflow: hidden !important;
}

.cas-file-icon-wrap {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 32px !important;
	height: 32px !important;
	min-width: 32px !important;
	background: #e0f2fe !important;
	border-radius: 8px !important;
	flex-shrink: 0 !important;
	order: 1 !important;
}

.cas-file-meta {
	display: flex !important;
	align-items: center !important;
	gap: 6px !important;
	overflow: hidden !important;
	white-space: nowrap !important;
}

/* File name & size */
.gfield_fileupload_filename,
.cas-file-name,
.ginput_preview_file strong {
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #04193A !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
	display: inline-block !important;
	order: 2 !important;
	max-width: calc(100% - 150px) !important;
}

.gfield_fileupload_filesize,
.cas-file-size {
	font-size: 12px !important;
	font-weight: 500 !important;
	color: #64748b !important;
	white-space: nowrap !important;
	order: 3 !important;
}

/* Progress bar */
.gfield_fileupload_progressbar {
	width: 100% !important;
	height: 4px !important;
	background-color: #e2e8f0 !important;
	border-radius: 9999px !important;
	overflow: hidden !important;
	margin-top: 6px !important;
	order: 10 !important;
}

.gfield_fileupload_progressbar_progress {
	height: 100% !important;
	background-color: #009ce2 !important;
	background-image: linear-gradient(90deg, #009ce2 0%, #3b6fd9 100%) !important;
	border-radius: 9999px !important;
	transition: width 0.2s ease !important;
}

/* Delete / Remove button */
.gfield_fileupload_delete,
.gfield_fileupload_cancel,
.delete_file_upload,
.cas-file-remove-btn,
.ginput_preview_file a,
.ginput_preview_file button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 26px !important;
	height: 26px !important;
	min-width: 26px !important;
	min-height: 26px !important;
	border-radius: 9999px !important;
	background-color: #fee2e2 !important;
	color: #ef4444 !important;
	border: none !important;
	cursor: pointer !important;
	padding: 0 !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	text-decoration: none !important;
	transition: all 0.15s ease !important;
	margin-left: auto !important;
	order: 4 !important;
	z-index: 25 !important;
	pointer-events: auto !important;
}

.gfield_fileupload_delete:not(:has(svg))::before,
.delete_file_upload:not(:has(svg))::before {
	content: "×" !important;
	display: block !important;
	font-size: 16px !important;
	line-height: 1 !important;
	font-weight: 700 !important;
}

.gfield_fileupload_delete:hover,
.gfield_fileupload_cancel:hover,
.delete_file_upload:hover,
.cas-file-remove-btn:hover,
.ginput_preview_file a:hover,
.ginput_preview_file button:hover {
	background-color: #fecaca !important;
	color: #dc2626 !important;
	transform: scale(1.08) !important;
}

.gfield_fileupload_delete svg,
.cas-file-remove-btn svg {
	width: 14px !important;
	height: 14px !important;
	stroke: currentColor !important;
	fill: none !important;
}

/* Submit button with blue glow matching reference */
.cas-form button[type="submit"],
.cas-form input[type="submit"],
.cas-form .gform_button,
.cas-form .ff-btn-submit,
.quote-panel__form-wrap button[type="submit"],
.quote-panel__form-wrap input[type="submit"],
.quote-panel__form-wrap .gform_button,
.quote-panel__form-wrap .ff-btn-submit,
.quote-modal__form button[type="submit"],
.quote-modal__form input[type="submit"],
.quote-modal__form .gform_button,
.quote-modal__form .ff-btn-submit {
	width: 100% !important;
	border-radius: 12px !important;
	padding: 15px 24px !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	letter-spacing: 0.02em !important;
	color: #ffffff !important;
	background-color: #009ce2 !important;
	background-image: linear-gradient(135deg, #009ce2 0%, #0080bd 100%) !important;
	box-shadow: 0 4px 16px rgba(0, 156, 226, 0.35) !important;
	border: none !important;
	cursor: pointer !important;
	margin-top: 10px !important;
	text-align: center !important;
	transition: all 0.2s ease !important;
}

.cas-form button[type="submit"]:hover,
.cas-form input[type="submit"]:hover,
.cas-form .gform_button:hover,
.quote-panel__form-wrap button[type="submit"]:hover,
.quote-panel__form-wrap input[type="submit"]:hover,
.quote-panel__form-wrap .gform_button:hover,
.quote-modal__form button[type="submit"]:hover,
.quote-modal__form input[type="submit"]:hover,
.quote-modal__form .gform_button:hover {
	background-color: #0087c5 !important;
	background-image: linear-gradient(135deg, #0087c5 0%, #006fa3 100%) !important;
	box-shadow: 0 6px 20px rgba(0, 156, 226, 0.45) !important;
}

/* Form Grid layout adjustments */
.cas-form .gform_fields,
.quote-panel__form-wrap .gform_fields,
.quote-modal__form .gform_fields {
	display: grid !important;
	grid-template-columns: repeat(12, 1fr) !important;
	gap: 16px 12px !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

.cas-form .gform_fields>.gfield,
.quote-panel__form-wrap .gform_fields>.gfield,
.quote-modal__form .gform_fields>.gfield {
	grid-column: span 12 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Half width fields (e.g. Phone / Email side by side) */
.cas-form .gform_fields>.gfield.gfield--width-half,
.cas-form .gform_fields>.gfield_left_half,
.cas-form .gform_fields>.gfield_right_half,
.quote-panel__form-wrap .gform_fields>.gfield.gfield--width-half,
.quote-panel__form-wrap .gform_fields>.gfield_left_half,
.quote-panel__form-wrap .gform_fields>.gfield_right_half,
.quote-modal__form .gform_fields>.gfield.gfield--width-half,
.quote-modal__form .gform_fields>.gfield_left_half,
.quote-modal__form .gform_fields>.gfield_right_half {
	grid-column: span 6 !important;
}

@media (max-width: 639px) {

	.cas-form .gform_fields>.gfield.gfield--width-half,
	.cas-form .gform_fields>.gfield_left_half,
	.cas-form .gform_fields>.gfield_right_half,
	.quote-panel__form-wrap .gform_fields>.gfield.gfield--width-half,
	.quote-panel__form-wrap .gform_fields>.gfield_left_half,
	.quote-panel__form-wrap .gform_fields>.gfield_right_half,
	.quote-modal__form .gform_fields>.gfield.gfield--width-half,
	.quote-modal__form .gform_fields>.gfield_left_half,
	.quote-modal__form .gform_fields>.gfield_right_half {
		grid-column: span 12 !important;
	}
}

/* ==========================================================================
   Google Reviews Block (Plugin Widget Styling)
   ========================================================================== */
.google-reviews {
	background: linear-gradient(180deg, #edf5fa 0%, #f7fbfe 45%, #ffffff 100%);
}

.google-reviews__shortcode {
	width: 100%;
	position: relative;
}

.google-reviews .zwssgr-main-wrapper,
.google-reviews .zwssgr-main-div-wrapper,
.google-reviews .zwssgr-front-container,
.google-reviews .zwssgr-slider {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

.google-reviews .swiper,
.google-reviews .zwssgr-slider-1 {
	overflow: visible !important;
	padding-top: 0.5rem !important;
	padding-bottom: 1.5rem !important;
}

.google-reviews .zwssgr-slide-item {
	height: auto !important;
	display: flex !important;
	box-sizing: border-box !important;
}

.google-reviews .zwssgr-list-inner {
	position: relative !important;
	width: 100% !important;
	height: 100% !important;
	display: flex !important;
	flex-direction: column !important;
	background-color: #ffffff !important;
	border-radius: 1.25rem !important;
	border: 1px solid rgba(4, 25, 58, 0.08) !important;
	box-shadow: 0 10px 30px -4px rgba(4, 25, 58, 0.06) !important;
	padding: 1.75rem !important;
	box-sizing: border-box !important;
	transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.35s ease, border-color 0.35s ease !important;
}

.google-reviews .zwssgr-list-inner:hover {
	transform: translateY(-4px) !important;
	box-shadow: 0 18px 38px -6px rgba(4, 25, 58, 0.12) !important;
	border-color: rgba(0, 156, 226, 0.25) !important;
}

.google-reviews .zwssgr-list-inner::after {
	content: "";
	position: absolute;
	top: 1.5rem;
	right: 1.5rem;
	width: 2.125rem;
	height: 2.125rem;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23bfe4f7'%3E%3Cpath d='M14.017 21v-7.391c0-5.704 3.731-9.57 8.983-10.609l.995 2.151c-2.432.917-3.995 3.638-3.995 5.849h4v10h-9.983zm-14.017 0v-7.391c0-5.704 3.748-9.57 9-10.609l.996 2.151c-2.433.917-3.996 3.638-3.996 5.849h3.983v10h-9.983z'/%3E%3C/svg%3E");
	pointer-events: none;
	opacity: 0.85;
}

.google-reviews .zwssgr-slide-wrap {
	display: flex !important;
	align-items: center !important;
	gap: 0.875rem !important;
	margin-bottom: 0.875rem !important;
	padding-right: 2.5rem !important;
	background: transparent !important;
	border: 0 !important;
}

.google-reviews .zwssgr-profile {
	width: 44px !important;
	height: 44px !important;
	min-width: 44px !important;
	max-width: 44px !important;
	border-radius: 9999px !important;
	overflow: hidden !important;
	background: transparent !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: 0 2px 8px rgba(4, 25, 58, 0.1) !important;
}

.google-reviews .zwssgr-profile img,
.google-reviews .zwssgr-profile .fallback-user-dp {
	width: 44px !important;
	height: 44px !important;
	min-width: 44px !important;
	max-width: 44px !important;
	min-height: 44px !important;
	max-height: 44px !important;
	border-radius: 9999px !important;
	object-fit: cover !important;
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

.google-reviews .zwssgr-review-info {
	min-width: 0 !important;
	flex: 1 !important;
	margin: 0 !important;
	padding: 0 !important;
}

.google-reviews .zwssgr-title {
	font-size: 0.9375rem !important;
	font-weight: 700 !important;
	color: #04193a !important;
	line-height: 1.25 !important;
	margin: 0 !important;
	padding: 0 !important;
	font-family: inherit !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
}

.google-reviews .zwssgr-rating {
	display: flex !important;
	align-items: center !important;
	gap: 0.1875rem !important;
	margin: 0 0 0.875rem 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
}

.google-reviews .zwssgr-star {
	font-size: 14px !important;
	line-height: 1 !important;
	margin: 0 !important;
	color: #e2e8f0 !important;
}

.google-reviews .zwssgr-star.filled {
	color: #f59e0b !important;
}

.google-reviews .zwssgr-content {
	font-size: 0.8125rem !important;
	line-height: 1.625 !important;
	color: #475569 !important;
	font-weight: 400 !important;
	margin: 0 !important;
	padding: 0 !important;
	font-family: inherit !important;
	flex-grow: 1 !important;
	display: -webkit-box !important;
	-webkit-line-clamp: 5 !important;
	-webkit-box-orient: vertical !important;
	overflow: hidden !important;
}

/* Remove swiper arrows */
.google-reviews .zwssgr-swiper-button-next,
.google-reviews .zwssgr-swiper-button-prev,
.google-reviews .swiper-button-next,
.google-reviews .swiper-button-prev {
	display: none !important;
}