/**
 * Safety Plugin — WP Bakery Shortcode Compatibility CSS
 *
 * Replicates WP Bakery's 12-column grid and element styling
 * so existing page content renders correctly.
 */

/* =========================================================================
   Grid System (12-column flexbox)
   ========================================================================= */

/* Rows: stretch full width inside The7's content area */
.sp-vc-row {
	width: 100%;
	box-sizing: border-box;
	margin-bottom: 0;
	clear: both;
}

.sp-vc-row + .sp-vc-row {
	margin-top: 0;
}

/* Full-width rows: break out of The7's .wf-wrap container */
.sp-vc-row-full {
	position: relative;
	width: 100vw;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
}

.sp-vc-row-inner {
	display: flex;
	flex-wrap: wrap;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 15px;
	padding-right: 15px;
	box-sizing: border-box;
}

/* Inner rows (nested inside columns) don't need max-width centering */
.sp-vc-row-inner-wrap {
	display: flex;
	flex-wrap: wrap;
	margin-left: -15px;
	margin-right: -15px;
}

/* Force The7's content area to not constrain our layout */
#content > .sp-vc-row,
.content > .sp-vc-row,
.wf-container-main > .sp-vc-row {
	max-width: none;
}

.sp-vc-equal-height > .sp-vc-row-inner,
.sp-vc-equal-height.sp-vc-row-inner-wrap {
	align-items: stretch;
}

.sp-vc-col {
	box-sizing: border-box;
	padding-left: 15px;
	padding-right: 15px;
	width: 100%;
	min-height: 1px;
	float: none; /* Override The7's float-based grid */
}

/* Column widths — 12-column grid */
.sp-vc-col-1  { flex: 0 0 8.333%;  max-width: 8.333%;  }
.sp-vc-col-2  { flex: 0 0 16.666%; max-width: 16.666%; }
.sp-vc-col-3  { flex: 0 0 25%;     max-width: 25%;     }
.sp-vc-col-4  { flex: 0 0 33.333%; max-width: 33.333%; }
.sp-vc-col-5  { flex: 0 0 41.666%; max-width: 41.666%; }
.sp-vc-col-6  { flex: 0 0 50%;     max-width: 50%;     }
.sp-vc-col-7  { flex: 0 0 58.333%; max-width: 58.333%; }
.sp-vc-col-8  { flex: 0 0 66.666%; max-width: 66.666%; }
.sp-vc-col-9  { flex: 0 0 75%;     max-width: 75%;     }
.sp-vc-col-10 { flex: 0 0 83.333%; max-width: 83.333%; }
.sp-vc-col-11 { flex: 0 0 91.666%; max-width: 91.666%; }
.sp-vc-col-12 { flex: 0 0 100%;    max-width: 100%;    }

/* Responsive: stack on mobile */
@media (max-width: 768px) {
	.sp-vc-col {
		flex: 0 0 100%;
		max-width: 100%;
		padding-left: 15px;
		padding-right: 15px;
	}

	.sp-vc-row-inner,
	.sp-vc-row-inner-wrap {
		margin-left: 0;
		margin-right: 0;
	}

	.sp-vc-row-full {
		margin-left: 0;
		margin-right: 0;
		padding-left: 15px;
		padding-right: 15px;
		width: 100%;
	}
}

/* Tablet breakpoint */
@media (min-width: 769px) and (max-width: 991px) {
	.sp-vc-col-3,
	.sp-vc-col-4 {
		flex: 0 0 50%;
		max-width: 50%;
	}
}


/* =========================================================================
   Fix The7 theme image shortcodes
   Without WP Bakery, The7 image overlays and lazy loading break.
   ========================================================================= */

.shortcode-single-image-wrap {
	overflow: hidden;
	border-radius: 4px;
	position: relative;
}

/* Force ALL images to be visible — The7 hides them for lazy loading */
.shortcode-single-image-wrap img,
img.preload-me,
img.lazy-load,
img[data-src],
img[data-lazy-src] {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
}

/* The7 rollover: HIDE by default, show on hover.
   Without WP Bakery CSS, rollovers are stuck visible, covering images. */
.shortcode-single-image-wrap .rollover,
.shortcode-single-image-wrap .rollover-project,
.shortcode-single-image-wrap .rollover-video {
	opacity: 0 !important;
	transition: opacity 0.3s ease;
}

.shortcode-single-image-wrap:hover .rollover,
.shortcode-single-image-wrap:hover .rollover-project,
.shortcode-single-image-wrap:hover .rollover-video {
	opacity: 1 !important;
}

/* Image boxes WITH text labels (like "Our Booster Systems"):
   The rollover IS the design — show it with a semi-transparent overlay */
.shortcode-single-image-wrap.enable-bg-rollover .rollover {
	opacity: 1 !important;
	background: rgba(0, 0, 0, 0.5);
}

.shortcode-single-image-wrap.enable-bg-rollover:hover .rollover {
	background: rgba(0, 0, 0, 0.3);
}

/* The7 gallery and portfolio */
.dt-gallery-container img,
.wf-cell img,
.post-thumbnail img {
	opacity: 1 !important;
	visibility: visible !important;
}


/* =========================================================================
   Images
   ========================================================================= */

.sp-vc-single-image {
	margin-bottom: 20px;
	border-radius: 4px;
	overflow: hidden;
}

.sp-vc-single-image img,
.sp-vc-img {
	max-width: 100%;
	height: auto;
	display: block;
}

.sp-align-center {
	text-align: center;
}

.sp-align-center img {
	margin-left: auto;
	margin-right: auto;
}

.sp-align-right {
	text-align: right;
}


/* =========================================================================
   Typography / Headings
   ========================================================================= */

.sp-vc-heading {
	margin-top: 0;
	margin-bottom: 15px;
	word-wrap: break-word;
}

.sp-vc-heading a {
	color: inherit;
	text-decoration: none;
}

.sp-vc-heading a:hover {
	text-decoration: underline;
}

.sp-vc-text {
	margin-bottom: 20px;
	line-height: 1.7;
}

.sp-vc-text p:last-child {
	margin-bottom: 0;
}


/* =========================================================================
   Separator / Space
   ========================================================================= */

.sp-vc-separator {
	border: none;
	border-top: 1px solid #e0e0e0;
	margin: 20px 0;
}

.sp-vc-space {
	display: block;
}


/* =========================================================================
   Buttons
   ========================================================================= */

.sp-vc-btn-wrap {
	margin-bottom: 15px;
}

.sp-vc-btn,
.sp-dt-button {
	display: inline-block;
	padding: 10px 24px;
	border-radius: 4px;
	text-decoration: none;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.5;
	transition: opacity 0.2s ease, background-color 0.2s ease;
	cursor: pointer;
	border: none;
}

.sp-vc-btn:hover,
.sp-dt-button:hover {
	opacity: 0.85;
	text-decoration: none;
}

/* Button colors */
.sp-btn-blue    { background-color: #3b8ced; color: #fff; }
.sp-btn-turquoise{ background-color: #00c1cf; color: #fff; }
.sp-btn-pink    { background-color: #fe6c61; color: #fff; }
.sp-btn-violet  { background-color: #8d6dc4; color: #fff; }
.sp-btn-green   { background-color: #6dab3c; color: #fff; }
.sp-btn-orange  { background-color: #f7be68; color: #333; }
.sp-btn-red     { background-color: #cf2e2e; color: #fff; }
.sp-btn-black   { background-color: #2a2a2a; color: #fff; }
.sp-btn-white   { background-color: #fff; color: #333; border: 1px solid #ddd; }
.sp-btn-default { background-color: #f7f7f7; color: #333; border: 1px solid #ddd; }

/* Button sizes */
.sp-btn-xs  { padding: 6px 12px;  font-size: 12px; }
.sp-btn-sm  { padding: 8px 18px;  font-size: 13px; }
.sp-btn-md  { padding: 10px 24px; font-size: 14px; }
.sp-btn-lg  { padding: 14px 32px; font-size: 16px; }

.sp-dt-btn-wrap {
	margin-bottom: 15px;
}


/* =========================================================================
   Icons
   ========================================================================= */

.sp-vc-icon-wrap {
	margin-bottom: 15px;
}

.sp-vc-icon {
	display: inline-block;
}

.sp-icon-xs { font-size: 14px; }
.sp-icon-sm { font-size: 24px; }
.sp-icon-md { font-size: 36px; }
.sp-icon-lg { font-size: 56px; }
.sp-icon-xl { font-size: 72px; }


/* =========================================================================
   Tabs / Accordion (using native <details>)
   ========================================================================= */

.sp-vc-tabs,
.sp-vc-accordion {
	margin-bottom: 20px;
}

.sp-vc-section {
	border: 1px solid #e0e0e0;
	margin-bottom: -1px;
}

.sp-vc-section:first-child {
	border-radius: 4px 4px 0 0;
}

.sp-vc-section:last-child {
	border-radius: 0 0 4px 4px;
	margin-bottom: 0;
}

.sp-vc-section-title {
	padding: 12px 18px;
	cursor: pointer;
	font-weight: 600;
	font-size: 15px;
	background: #f9f9f9;
	list-style: none;
	user-select: none;
}

.sp-vc-section-title::-webkit-details-marker {
	display: none;
}

.sp-vc-section-title::before {
	content: '+';
	display: inline-block;
	width: 20px;
	font-weight: bold;
	color: #3b8ced;
}

.sp-vc-section[open] > .sp-vc-section-title::before {
	content: '\2212';
}

.sp-vc-section-title i {
	margin-right: 8px;
	color: #3b8ced;
}

.sp-vc-section-content {
	padding: 18px;
}


/* =========================================================================
   Gallery
   ========================================================================= */

.sp-vc-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 10px;
	margin-bottom: 20px;
}

.sp-vc-gallery-item img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 4px;
}


/* =========================================================================
   Video
   ========================================================================= */

.sp-vc-video {
	margin-bottom: 20px;
}

.sp-vc-video iframe {
	max-width: 100%;
	aspect-ratio: 16/9;
}


/* =========================================================================
   Progress Bar
   ========================================================================= */

.sp-vc-progress-bars {
	margin-bottom: 20px;
}

.sp-vc-progress-item {
	margin-bottom: 12px;
}

.sp-vc-progress-label {
	font-size: 14px;
	font-weight: 600;
	margin-bottom: 4px;
	display: flex;
	justify-content: space-between;
}

.sp-vc-progress-track {
	height: 10px;
	background: #e9ecef;
	border-radius: 5px;
	overflow: hidden;
}

.sp-vc-progress-fill {
	height: 100%;
	background: #3b8ced;
	border-radius: 5px;
	transition: width 0.6s ease;
}


/* =========================================================================
   Pie Chart (simple text fallback)
   ========================================================================= */

.sp-vc-pie {
	text-align: center;
	margin-bottom: 20px;
}

.sp-vc-pie-value {
	font-size: 42px;
	font-weight: 700;
	color: #3b8ced;
}

.sp-vc-pie-label {
	font-size: 14px;
	color: #666;
	margin-top: 4px;
}


/* =========================================================================
   Message Box
   ========================================================================= */

.sp-vc-message {
	padding: 16px 20px;
	border-radius: 4px;
	margin-bottom: 20px;
	border-left: 4px solid;
}

.sp-msg-info     { background: #e8f4fd; border-color: #3b8ced; color: #1a5276; }
.sp-msg-success  { background: #eaf7ed; border-color: #6dab3c; color: #1e5631; }
.sp-msg-warning  { background: #fdf6e3; border-color: #f7be68; color: #7d6608; }
.sp-msg-alert,
.sp-msg-danger   { background: #fde8e8; border-color: #cf2e2e; color: #721c24; }


/* =========================================================================
   Toggle
   ========================================================================= */

.sp-vc-toggle {
	margin-bottom: 10px;
	border: 1px solid #e0e0e0;
	border-radius: 4px;
}

.sp-vc-toggle summary {
	padding: 12px 16px;
	font-weight: 600;
	cursor: pointer;
}

.sp-vc-toggle-content {
	padding: 0 16px 16px;
}


/* =========================================================================
   Call to Action
   ========================================================================= */

.sp-vc-cta {
	background: #f7f7f7;
	padding: 30px;
	border-radius: 4px;
	margin-bottom: 20px;
}

.sp-vc-cta-title {
	margin-top: 0;
	margin-bottom: 10px;
}

.sp-vc-cta-subtitle {
	margin-top: 0;
	margin-bottom: 15px;
	font-weight: normal;
	color: #666;
}

.sp-vc-cta .sp-vc-btn {
	margin-top: 10px;
}


/* =========================================================================
   Google Maps
   ========================================================================= */

.sp-vc-gmaps {
	margin-bottom: 20px;
}

.sp-vc-gmaps iframe {
	width: 100%;
	display: block;
	border-radius: 4px;
}


/* =========================================================================
   The7 Theme — Banner
   ========================================================================= */

.sp-dt-banner {
	display: block;
	position: relative;
	border-radius: 4px;
	overflow: hidden;
	margin-bottom: 20px;
	text-decoration: none;
	color: #fff;
}

.sp-dt-banner-content {
	position: relative;
	z-index: 1;
	padding: 30px;
}

.sp-dt-fancy-title {
	margin-top: 0;
	margin-bottom: 20px;
}


/* =========================================================================
   The7 Elements — Images, Posts, Gallery
   ========================================================================= */

.sp-dt7-image {
	margin-bottom: 20px;
}

.sp-dt7-image img {
	max-width: 100%;
	height: auto;
	display: block;
	border-radius: 4px;
}

.sp-dt7-image-caption {
	margin: 8px 0 0;
	font-size: 13px;
	color: #666;
}

.sp-dt7-posts {
	margin-bottom: 20px;
}

.sp-dt7-post-item {
	margin-bottom: 20px;
}

.sp-dt7-post-thumb img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 4px;
}

.sp-dt7-post-title {
	margin: 10px 0 0;
	font-size: 15px;
}

.sp-dt7-post-title a {
	color: inherit;
	text-decoration: none;
}

.sp-dt7-post-title a:hover {
	color: #3b8ced;
}

.sp-dt7-wrap {
	margin-bottom: 20px;
}


/* =========================================================================
   Contact Form Placeholder
   ========================================================================= */

.sp-dt-contact-placeholder {
	background: #f7f7f7;
	padding: 20px;
	border-radius: 4px;
	text-align: center;
	margin-bottom: 20px;
}


/* =========================================================================
   Sidebar widget
   ========================================================================= */

.sp-vc-sidebar {
	margin-bottom: 20px;
}


/* =========================================================================
   Raw HTML
   ========================================================================= */

.sp-vc-raw-html {
	margin-bottom: 20px;
}


/* =========================================================================
   Ultimate Addons — Heading
   ========================================================================= */

.sp-ult-heading {
	margin-bottom: 30px;
	padding: 0 15px;
	width: 100%;
	box-sizing: border-box;
}

.sp-ult-main-heading {
	margin-top: 0;
	margin-bottom: 12px;
	word-wrap: break-word;
	letter-spacing: 0.5px;
}

.sp-ult-sub-heading {
	line-height: 1.7;
	color: #555;
}

.sp-ult-sub-heading p:last-child {
	margin-bottom: 0;
}

.sp-ult-heading-line {
	display: block;
	margin: 12px auto;
}


/* =========================================================================
   Ultimate Addons — Spacer
   ========================================================================= */

.sp-ult-spacer {
	display: block;
}


/* =========================================================================
   Ultimate Addons — Icon List
   ========================================================================= */

.sp-ult-icon-list {
	list-style: none;
	padding: 0;
	margin: 0 0 20px;
}

.sp-ult-icon-list-item {
	padding: 6px 0;
	display: flex;
	align-items: center;
	gap: 8px;
}

.sp-ult-icon-list-item i {
	flex-shrink: 0;
}


/* =========================================================================
   Ultimate Addons — Citation / Testimonial
   ========================================================================= */

.sp-ult-citation {
	border-left: 4px solid #3b8ced;
	padding: 15px 20px;
	margin: 0 0 20px;
	background: #f7f7f7;
	border-radius: 0 4px 4px 0;
}

.sp-ult-citation cite {
	display: block;
	margin-top: 10px;
	font-style: normal;
	font-weight: 600;
	color: #666;
}


/* =========================================================================
   Ultimate Addons — Info Banner
   ========================================================================= */

.sp-ult-info-banner {
	padding: 30px;
	margin-bottom: 20px;
	border-radius: 4px;
	min-height: 150px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.sp-ult-info-banner h3 {
	margin-top: 0;
}


/* =========================================================================
   Ultimate Addons — Icon / Icon Counter
   ========================================================================= */

.sp-ult-icon {
	margin-bottom: 15px;
}

.sp-ult-icon-counter {
	text-align: center;
	margin-bottom: 20px;
	padding: 20px;
}

.sp-ult-icon-counter-icon {
	margin-bottom: 12px;
}

.sp-ult-icon-counter-title {
	margin: 0 0 5px;
}

.sp-ult-icon-counter-desc {
	margin: 0;
	color: #666;
	line-height: 1.6;
}


/* =========================================================================
   Ultimate Addons — Info Box (bsf-info-box)
   ========================================================================= */

.sp-ult-info-box {
	margin-bottom: 20px;
	padding: 20px;
}

.sp-ult-info-box-icon {
	margin-bottom: 12px;
}

.sp-ult-info-box-left {
	display: flex;
	gap: 15px;
	align-items: flex-start;
}

.sp-ult-info-box-left .sp-ult-info-box-icon {
	flex-shrink: 0;
	margin-bottom: 0;
}

.sp-ult-info-box-title {
	margin-top: 0;
	margin-bottom: 8px;
}

.sp-ult-info-box-desc {
	margin-bottom: 10px;
	line-height: 1.6;
}

.sp-ult-info-box-link {
	font-weight: 600;
	text-decoration: none;
	color: #3b8ced;
}


/* =========================================================================
   Ultimate Addons — Fancy Text
   ========================================================================= */

.sp-ult-fancytext {
	display: inline-block;
}

.sp-ult-fancytext-strings {
	font-weight: 700;
}


/* =========================================================================
   Ultimate Addons — Expandable Section
   ========================================================================= */

.sp-ult-exp-section {
	margin-bottom: 10px;
	border: 1px solid #e0e0e0;
	border-radius: 4px;
}

.sp-ult-exp-section summary {
	padding: 12px 16px;
	font-weight: 600;
	cursor: pointer;
}

.sp-ult-exp-content {
	padding: 0 16px 16px;
}


/* =========================================================================
   Ultimate Addons — Generic Wrap
   ========================================================================= */

.sp-ult-wrap {
	margin-bottom: 20px;
}
