/*
 * MO Elementor Widgets — baseline structural styles.
 *
 * NOTE: When the Loire theme is still active, its own qodef-* styles keep
 * applying to these classes. This file only provides a self-contained
 * fallback so the widgets remain usable if the theme is removed.
 * For pixel-perfect parity, extract the relevant rules from
 * plugins/loire-core/assets/css/loire-core.css into this file.
 */

/* Section title */
.qodef-section-title .qodef-m-subtitle { margin: 0 0 6px; }
.qodef-section-title .qodef-m-title { margin: 0; }
.qodef-section-title .qodef-m-text { margin: 14px 0 0; }
.qodef-section-title.qodef-alignment--center { text-align: center; }
.qodef-section-title.qodef-alignment--right { text-align: right; }
.qodef-section-title.qodef-alignment--left { text-align: left; }

/* Icon with text */
.qodef-icon-with-text.qodef-layout--top { text-align: center; }
.qodef-icon-with-text .qodef-m-icon-wrapper { margin-bottom: 15px; }
.qodef-icon-with-text .qodef-m-icon { position: relative; display: inline-block; }
.qodef-icon-with-text .qodef-m-icon img,
.qodef-icon-with-text .qodef-m-icon svg { display: inline-block; max-width: 100%; height: auto; }
.qodef-icon-with-text .qodef-m-title { margin: 0; }
.qodef-icon-with-text .qodef-m-text { margin: 10px 0 0; }

/* Button */
.qodef-button {
	display: inline-flex; align-items: center; justify-content: center;
	text-decoration: none; cursor: pointer; transition: all .2s ease;
	padding: 14px 32px; line-height: 1;
}
.qodef-button.qodef-layout--filled { background: #b46d66; color: #fff; }
.qodef-button.qodef-layout--outlined { background: transparent; border: 2px solid currentColor; }
.qodef-button.qodef-layout--textual { padding: 0; background: transparent; position: relative; }
.qodef-button.qodef-layout--textual .qodef-m-text { border-bottom: 1px solid currentColor; padding-bottom: 3px; }
.qodef-button.qodef-size--full { width: 100%; }

/* Single image */
.qodef-single-image { display: block; }
.qodef-single-image .qodef-m-image img { display: block; max-width: 100%; height: auto; }
.qodef-single-image.qodef-image-alignment--center { text-align: center; }
.qodef-single-image.qodef-image-alignment--right { text-align: right; }

/* Custom font */
.qodef-custom-font { margin: 0; display: block; }

/* Video button */
.qodef-video-button { position: relative; display: inline-block; }
.qodef-video-button .qodef-m-image img { display: block; max-width: 100%; height: auto; }
.qodef-video-button .qodef-m-play {
	position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
	display: inline-flex; align-items: center; justify-content: center;
	width: 80px; height: 80px; color: #fff; text-decoration: none;
}
.qodef-video-button .qodef-m-play-inner { position: relative; display: inline-flex; }
.qodef-video-button .mo-play-icon {
	width: 0; height: 0; border-style: solid;
	border-width: 12px 0 12px 20px; border-color: transparent transparent transparent currentColor;
}
.qodef-video-button .qodef-m-play-circle {
	position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
	width: 80px; height: 80px; border: 2px solid currentColor; border-radius: 50%;
}

/* Roadmap (simple / vertical) */
.qodef-roadmap .qodef-m-holder { position: relative; }
.qodef-roadmap.qodef-layout--simple .qodef-m-line {
	position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; background: currentColor; opacity: .2;
}
.qodef-roadmap .qodef-roadmap-item { position: relative; margin-bottom: 40px; }
.qodef-roadmap .qodef-e-content-year { font-weight: 700; }
.qodef-roadmap .qodef-e-content-title { margin: 4px 0; }
.qodef-roadmap.qodef-skin--light { color: #fff; }

/* Clients list hover fade */
.qodef-clients-list.qodef--hover-fade .qodef-e-logo { opacity: var(--qodef-client-initial-opacity, 1); transition: opacity .3s ease; }
.qodef-clients-list.qodef--hover-fade .qodef-e:hover .qodef-e-logo { opacity: var(--qodef-client-hover-opacity, .5); }
.qodef-clients-list .qodef-e-image img { max-width: 100%; height: auto; }
.qodef-clients-list .qodef-e { display: flex; align-items: center; justify-content: center; }

/* Testimonials / product grid items */
.qodef-testimonials-list .qodef-e-text { margin: 10px 0; }
.qodef-testimonials-list .qodef-e-author-name { font-weight: 700; }
.qodef-woo-product-list .qodef-e-media img { max-width: 100%; height: auto; }
.qodef-woo-product-list .qodef-e-inner { display: block; text-decoration: none; }

/* Minimal self-contained slider (approximation of the Qode Swiper slider) */
.mo-slider { position: relative; }
.mo-slider .mo-slider-track {
	display: flex; overflow-x: auto; scroll-snap-type: x mandatory;
	gap: 30px; -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.mo-slider .mo-slider-track::-webkit-scrollbar { display: none; }
.mo-slider .mo-slide { flex: 0 0 100%; scroll-snap-align: start; }
.mo-slider-nav { display: flex; gap: 10px; justify-content: center; margin-top: 20px; }
.mo-slider-nav button {
	width: 44px; height: 44px; border-radius: 50%; border: 1px solid currentColor;
	background: transparent; cursor: pointer; font-size: 20px; line-height: 1;
}

/* Self-contained lightbox */
.mo-lightbox {
	position: fixed; inset: 0; background: rgba(0,0,0,.85); z-index: 99999;
	display: flex; align-items: center; justify-content: center; padding: 20px;
}
.mo-lightbox__inner { position: relative; width: 100%; max-width: 960px; }
.mo-lightbox__inner iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; }
.mo-lightbox__inner img { display: block; max-width: 100%; max-height: 85vh; margin: 0 auto; }
.mo-lightbox__close {
	position: absolute; top: -40px; right: 0; color: #fff; font-size: 30px;
	background: none; border: 0; cursor: pointer; line-height: 1;
}
