/**
 * Sanjeewani Elementor widget + editor compatibility.
 * Most styling comes from main.css — keep overrides focused on Elementor chrome.
 *
 * CRITICAL: Elementor sets `--gap: initial` on every `.elementor-element`.
 * Theme grids/sliders must use `--sj-gap` (see main.css), never bare `--gap`.
 */

/* Restore theme rhythm inside Elementor chrome (editor + frontend). */
.elementor-widget[class*="elementor-widget-sanjeewani-"],
.elementor-editor-active .elementor-widget[class*="elementor-widget-sanjeewani-"],
.site-main--elementor,
.site-main--fullwidth {
	--sj-gap: clamp(1.25rem, 2.4vw, 2rem);
}

/* Full-bleed Sanjeewani sections inside Elementor (HTML parity) */
.elementor-section.elementor-section-boxed > .elementor-container,
.elementor-section.elementor-section-full_width > .elementor-container {
	max-width: 100% !important;
	width: 100%;
}

.site-main--elementor > .elementor,
.site-main--fullwidth > .elementor,
.elementor-edit-area .elementor {
	max-width: none;
}

/* Kill Elementor kit widget gaps that stack between sections */
.site-main--elementor .elementor-widget,
.site-main--fullwidth .elementor-widget {
	margin: 0 !important;
}
.site-main--elementor .elementor-element,
.site-main--fullwidth .elementor-element {
	--widgets-spacing: 0px;
	--widgets-spacing-row: 0px;
	--widgets-spacing-column: 0px;
	--kit-widget-spacing: 0px;
}

.elementor-widget-sanjeewani-hero .hero,
.elementor-widget-sanjeewani-page-hero .page-hero,
.elementor-widget-sanjeewani-craft-showcase .section--showcase,
.elementor-widget-sanjeewani-marquee .marquee,
.elementor-widget-sanjeewani-product-carousel .section,
.elementor-widget-sanjeewani-category-tiles .section,
.elementor-widget-sanjeewani-feature-grid .section,
.elementor-widget-sanjeewani-testimonials .section,
.elementor-widget-sanjeewani-featured-product .section,
.elementor-widget-sanjeewani-about-strip .section,
.elementor-widget-sanjeewani-gallery .section,
.elementor-widget-sanjeewani-newsletter .section,
.elementor-widget-sanjeewani-process .section,
.elementor-widget-sanjeewani-timeline .section,
.elementor-widget-sanjeewani-cta-band .section {
	width: 100%;
}

/* Kill Elementor default spacing that fights the HTML design */
.elementor-widget-wrap.elementor-element-populated {
	padding: 0 !important;
}

.site-main--elementor .elementor-section,
.site-main--fullwidth .elementor-section {
	overflow: visible;
}

.elementor-widget-sanjeewani-hero > .elementor-widget-container,
.elementor-widget-sanjeewani-marquee > .elementor-widget-container,
.elementor-widget-sanjeewani-page-hero > .elementor-widget-container,
.elementor-widget-sanjeewani-product-carousel > .elementor-widget-container,
.elementor-widget-sanjeewani-category-tiles > .elementor-widget-container,
.elementor-widget-sanjeewani-craft-showcase > .elementor-widget-container,
.elementor-widget-sanjeewani-featured-product > .elementor-widget-container,
.elementor-widget-sanjeewani-feature-grid > .elementor-widget-container,
.elementor-widget-sanjeewani-about-strip > .elementor-widget-container,
.elementor-widget-sanjeewani-testimonials > .elementor-widget-container,
.elementor-widget-sanjeewani-gallery > .elementor-widget-container,
.elementor-widget-sanjeewani-newsletter > .elementor-widget-container,
.elementor-widget-sanjeewani-faq > .elementor-widget-container,
.elementor-widget-sanjeewani-cta-band > .elementor-widget-container,
.elementor-widget-sanjeewani-contact-cards > .elementor-widget-container,
.elementor-widget-sanjeewani-contact-form > .elementor-widget-container,
.elementor-widget-sanjeewani-process > .elementor-widget-container,
.elementor-widget-sanjeewani-timeline > .elementor-widget-container,
.elementor-widget-sanjeewani-wc-products-grid > .elementor-widget-container,
.elementor-widget-sanjeewani-announcement-bar > .elementor-widget-container,
.elementor-widget-sanjeewani-counter > .elementor-widget-container,
.elementor-widget-sanjeewani-section-heading > .elementor-widget-container {
	padding: 0 !important;
	margin: 0 !important;
}

/* Keep theme fonts when Elementor kit injects Roboto */
body.elementor-page,
.elementor-editor-active {
	font-family: var(--font-body, "Plus Jakarta Sans", system-ui, sans-serif);
}

/* Editor: make empty-looking widgets still show structure */
.elementor-editor-active .hero.is-ready,
.elementor-editor-active .hero {
	opacity: 1;
}

.elementor-editor-active [data-reveal] {
	opacity: 1 !important;
	transform: none !important;
}

.elementor-editor-active .preloader {
	display: none !important;
}

/* -------------------------------------------------------------------------
   Grids & sliders — force HTML rhythm inside Elementor (editor + frontend)
   ------------------------------------------------------------------------- */
.elementor-widget-sanjeewani-product-carousel .slider__track,
.elementor-widget-sanjeewani-testimonials .slider__track,
.elementor-widget-sanjeewani-wc-products-grid .products,
.elementor-widget-sanjeewani-process .process,
.elementor-widget-sanjeewani-timeline .timeline,
.elementor-widget-sanjeewani-category-tiles .cat-tiles,
.elementor-widget-sanjeewani-feature-grid .feature-grid,
.elementor-widget-sanjeewani-gallery .gallery,
.elementor-widget-sanjeewani-contact-cards .contact-cards {
	list-style: none;
	margin: 0;
	padding: 0;
}

.elementor-widget-sanjeewani-category-tiles .cat-tiles {
	display: grid;
	gap: var(--sj-gap);
	grid-template-columns: repeat(3, minmax(0, 1fr));
	width: 100%;
}

@media (min-width: 900px) {
	.elementor-widget-sanjeewani-category-tiles .cat-tile:first-child {
		grid-column: span 2;
	}
}

@media (max-width: 899px) {
	.elementor-widget-sanjeewani-category-tiles .cat-tiles {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.elementor-widget-sanjeewani-category-tiles .cat-tile:first-child {
		grid-column: auto;
	}
}

@media (max-width: 640px) {
	.elementor-widget-sanjeewani-category-tiles .cat-tiles {
		grid-template-columns: 1fr;
	}
}

.elementor-widget-sanjeewani-feature-grid .feature-grid {
	display: grid;
	gap: var(--sj-gap);
	grid-template-columns: repeat(4, minmax(0, 1fr));
	width: 100%;
}

@media (max-width: 1100px) {
	.elementor-widget-sanjeewani-feature-grid .feature-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.elementor-widget-sanjeewani-feature-grid .feature-grid {
		grid-template-columns: 1fr;
	}
}

.elementor-widget-sanjeewani-gallery .gallery {
	display: grid;
	gap: var(--sj-gap);
	grid-template-columns: repeat(3, 1fr);
	width: 100%;
}

@media (max-width: 1024px) {
	.elementor-widget-sanjeewani-gallery .gallery {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 640px) {
	.elementor-widget-sanjeewani-gallery .gallery {
		grid-template-columns: repeat(2, 1fr);
	}
}

.elementor-widget-sanjeewani-product-carousel .slider,
.elementor-widget-sanjeewani-testimonials .slider {
	--slider-gap: var(--sj-gap);
	width: 100%;
}

.elementor-widget-sanjeewani-product-carousel .slider__track,
.elementor-widget-sanjeewani-testimonials .slider__track {
	display: flex !important;
	align-items: stretch;
	width: 100%;
	gap: var(--slider-gap, var(--sj-gap));
	flex-wrap: nowrap;
}

.elementor-widget-sanjeewani-product-carousel .slider__slide,
.elementor-widget-sanjeewani-testimonials .slider__slide {
	flex: 0 0 calc((100% - (var(--per-view, 4) - 1) * var(--slider-gap, var(--sj-gap))) / var(--per-view, 4));
	min-width: 0;
	display: flex;
	margin: 0;
	padding: 0;
}

.elementor-widget-sanjeewani-product-carousel .slider__viewport,
.elementor-widget-sanjeewani-testimonials .slider__viewport {
	overflow: hidden;
	width: 100%;
}

/* About: keep process / promises grids edge-aligned like HTML */
.elementor-widget-sanjeewani-process .process,
.elementor-widget-sanjeewani-feature-grid .feature-grid {
	width: 100%;
}

.elementor-widget-sanjeewani-process .process {
	display: grid;
	gap: var(--sj-gap);
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 1100px) {
	.elementor-widget-sanjeewani-process .process {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.elementor-widget-sanjeewani-process .process {
		grid-template-columns: 1fr;
	}
}

.elementor-widget-sanjeewani-timeline .timeline {
	display: grid;
	gap: var(--sj-gap);
	grid-template-columns: repeat(auto-fit, minmax(215px, 1fr));
	width: 100%;
}

.elementor-widget-sanjeewani-process .process__step,
.elementor-widget-sanjeewani-feature-grid .feature-card {
	min-width: 0;
}

.elementor-widget-sanjeewani-process .process__media,
.elementor-widget-sanjeewani-process .process__media img {
	margin: 0;
	display: block;
}

.elementor-widget-sanjeewani-gallery .gallery__item {
	margin: 0;
}

.elementor-widget-sanjeewani-wc-products-grid .products {
	display: grid;
	gap: var(--sj-gap);
	grid-template-columns: repeat(var(--sj-cols, 4), minmax(0, 1fr));
}

@media (max-width: 900px) {
	.elementor-widget-sanjeewani-wc-products-grid .products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 540px) {
	.elementor-widget-sanjeewani-wc-products-grid .products {
		grid-template-columns: 1fr;
	}
}

.elementor-editor-active .elementor-widget-sanjeewani-announcement-bar .announce {
	pointer-events: none;
}

.elementor-widget-sanjeewani-newsletter .newsletter__form {
	position: relative;
}

.elementor-widget-sanjeewani-contact-cards > .elementor-widget-container,
.elementor-widget-sanjeewani-contact-form > .elementor-widget-container,
.elementor-widget-sanjeewani-process > .elementor-widget-container,
.elementor-widget-sanjeewani-timeline > .elementor-widget-container {
	padding: 0 !important;
	margin: 0 !important;
}

/* Contact page: keep HTML two-column form + map layout inside Elementor */
.elementor-widget-sanjeewani-contact-form .contact__inner {
	display: grid;
	grid-template-columns: 1.1fr .9fr;
	gap: clamp(1.8rem, 4vw, 3.5rem);
	align-items: start;
}

.elementor-widget-sanjeewani-contact-cards .section--contact-cards {
	padding: var(--pad-section, clamp(4.5rem, 9vw, 8.5rem)) 0 0;
}

.elementor-widget-sanjeewani-contact-cards .contact-cards {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--sj-gap);
	width: 100%;
	align-items: stretch;
}

.elementor-widget-sanjeewani-contact-cards .contact-card {
	min-width: 0;
	height: 100%;
	margin: 0;
}

.elementor-widget-sanjeewani-contact-cards .contact-card h3,
.elementor-widget-sanjeewani-contact-cards .contact-card p {
	margin-top: 0;
}

.elementor-widget-sanjeewani-page-hero .page-hero {
	width: 100%;
	margin: 0;
}

/* No extra Elementor gap between banner and contact cards */
.elementor-widget-sanjeewani-page-hero,
.elementor-widget-sanjeewani-contact-cards {
	margin: 0 !important;
}

@media (max-width: 992px) {
	.elementor-widget-sanjeewani-contact-form .contact__inner {
		grid-template-columns: 1fr;
	}
	.elementor-widget-sanjeewani-contact-cards .contact-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.elementor-widget-sanjeewani-contact-cards .contact-cards {
		grid-template-columns: 1fr;
	}
}

.elementor-editor-active .elementor-widget-sanjeewani-contact-form .sj-hp {
	display: none !important;
}
