/* ======== Icon with Text Widget Styles ========
===============================================*/

.yydev-add-icon.elementor-icon-wrapper {
    display: inline-block;
}

/* Full width layout adjustments */
.yydev-add-icon.widget-display-full {
    display: block !important;
    width: 100%;
}

.yydev-add-icon.widget-display-full .icon-link-wrapper,
.yydev-add-icon.widget-display-full .icon-content-wrapper {
    width: 100%;
    justify-content: flex-start;
}

/* Inline layout adjustments */
.yydev-add-icon.widget-display-inline {
    display: inline-block;
}

.yydev-add-icon .icon-link-wrapper,
.yydev-add-icon .icon-content-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: inherit;
}

/* Layout Directions */
.yydev-add-icon .icon-link-wrapper.layout-row,
.yydev-add-icon .icon-content-wrapper.layout-row {
    flex-direction: row;
}

.yydev-add-icon .icon-link-wrapper.layout-row-reverse,
.yydev-add-icon .icon-content-wrapper.layout-row-reverse {
    flex-direction: row-reverse;
}

.yydev-add-icon .icon-link-wrapper.layout-column,
.yydev-add-icon .icon-content-wrapper.layout-column {
    flex-direction: column;
}

.yydev-add-icon .icon-link-wrapper.layout-column-reverse,
.yydev-add-icon .icon-content-wrapper.layout-column-reverse {
    flex-direction: column-reverse;
}

.yydev-add-icon .icon-link-wrapper.layout-single,
.yydev-add-icon .icon-content-wrapper.layout-single {
    display: inline-flex;
}

.yydev-add-icon .elementor-icon {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    position: relative;
    border-style: solid;
    transition: all 0.3s;
    flex-shrink: 0;
}

.yydev-add-icon .elementor-icon i,
.yydev-add-icon .elementor-icon svg,
.yydev-add-icon .elementor-icon img {
    transition: transform 0.3s;
}

.yydev-add-icon.elementor-view-stacked .elementor-icon {
    background-color: #818a91;
    color: #fff;
}

.yydev-add-icon.elementor-view-framed .elementor-icon {
    color: #818a91;
    border-color: #818a91;
    background-color: transparent;
}

.yydev-add-icon.elementor-shape-square .elementor-icon {
    border-radius: 0;
}

.yydev-add-icon.elementor-shape-circle .elementor-icon {
    border-radius: 50%;
}

.yydev-add-icon .icon-text-content {
    display: inline-block;
    flex-grow: 1;
}

/* Link hover effects for entire section */
.yydev-add-icon .icon-link-wrapper {
    transition: all 0.3s ease;
}

.yydev-add-icon .icon-link-wrapper:hover {
    text-decoration: none;
}

/* Remove default margin from icon spacing when no text */
.yydev-add-icon .layout-single .elementor-icon {
    margin: 0 !important;
}

/* Responsive text adjustments */
@media (max-width: 767px) {
    .yydev-add-icon .icon-text-content {
        white-space: normal;
    }
}

/* ======== Forced 100% Layout Style ======== */

.yydev-add-icon.elementor-icon-wrapper:has(.yydev-forced-full),
.yydev-add-icon.elementor-icon-wrapper:has(.yydev-forced-full-img) {
    display: block !important;
    width: 100% !important;
}

.yydev-add-icon .icon-link-wrapper:has(.yydev-forced-full),
.yydev-add-icon .icon-content-wrapper:has(.yydev-forced-full),
.yydev-add-icon .icon-link-wrapper:has(.yydev-forced-full-img),
.yydev-add-icon .icon-content-wrapper:has(.yydev-forced-full-img) {
    display: block !important;
    width: 100% !important;
}

.yydev-add-icon .elementor-icon:has(.yydev-forced-full),
.yydev-add-icon .yydev-forced-full,
.yydev-add-icon .yydev-forced-full svg,
.yydev-add-icon img.yydev-forced-full-img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
}

/* ======== Background Video Widget Styles ========
===============================================*/

.yydev-background-video-wrapper {
	position: relative;
	width: 100%;
}

.yydev-background-video {
	position: relative;
	width: 100%;
	height: 400px;
	overflow: hidden;
	background-color: #000000;
}

.yydev-background-video video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	transition: opacity 0.5s ease-in-out;
	transform: translateZ(0);
	backface-visibility: hidden;
	perspective: 1000px;
}

.yydev-background-video .video-fallback {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	background-color: transparent;
}

.video-overlay-content {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
	pointer-events: none;
}

/* ======== Video Size Adjustments ======== */

.yydev-background-video video[style*="object-fit: contain"] {
	object-fit: contain;
}

.yydev-background-video video[style*="object-fit: cover"] {
	object-fit: cover;
}

.yydev-background-video video[style*="object-fit: auto"] {
	object-fit: fill;
}

.yydev-background-video .video-fallback[style*="background-size: contain"] {
	background-size: contain;
}

.yydev-background-video .video-fallback[style*="background-size: cover"] {
	background-size: cover;
}

/* ======== Video Loading State Styles ======== */

.yydev-background-video .video-loading-placeholder {
	opacity: 1;
	transition: opacity 0.5s ease-in-out;
	background-color: transparent;
}

.yydev-background-video.video-loaded .video-loading-placeholder {
	opacity: 0;
	pointer-events: none;
}

.yydev-background-video.video-loaded video {
	opacity: 1 !important;
}

/* ======== Loading Spinner (Optional) ======== */

.yydev-background-video .video-loading-spinner {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 40px;
	height: 40px;
	border: 3px solid rgba(255, 255, 255, 0.3);
	border-top: 3px solid #ffffff;
	border-radius: 50%;
	animation: spin 1s linear infinite;
	z-index: 3;
	opacity: 1;
	transition: opacity 0.3s ease;
}

.yydev-background-video.video-loaded .video-loading-spinner {
	opacity: 0;
	pointer-events: none;
}

@keyframes spin {
	0% { transform: translate(-50%, -50%) rotate(0deg); }
	100% { transform: translate(-50%, -50%) rotate(360deg); }
}

/* ======== Video Performance Optimizations ======== */

.yydev-background-video video::-webkit-media-controls {
	display: none !important;
}

.yydev-background-video video::-webkit-media-controls-enclosure {
	display: none !important;
}

/* ======== Gradient Background Options ======== */

.yydev-background-video.has-gradient-bg {
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.yydev-background-video.has-pattern-bg {
	background-color: #000000;
	background-image: radial-gradient(circle, rgba(255,255,255,0.1) 1px, transparent 1px);
	background-size: 20px 20px;
}

/* ======== Responsive Mobile Adjustments ======== */

@media (max-width: 768px) {
	.yydev-background-video {
		height: 250px;
		background-color: #000000;
	}
	
	.yydev-background-video video {
		object-fit: cover;
	}
}

@media (max-width: 480px) {
	.yydev-background-video {
		height: 200px;
	}
	
	.video-overlay-content {
		padding: 10px;
		font-size: 14px;
	}
	
	.yydev-background-video .video-loading-placeholder {
		background-color: transparent;
	}
}