/*
 * MADZILLA - styles for the theme's Elementor widgets, plus a few resets that
 * keep Elementor's defaults from fighting the theme's spacing system.
 */

/* Let full-width theme sections escape Elementor's container padding when the
   editor uses the boxed default. */
.mdz-main--builder .elementor-section.elementor-section-full_width > .elementor-container { max-width: none; }

/* Widgets already ship their own container, so kill the double padding. */
.elementor-widget-mdz-hero .mdz-hero,
.elementor-widget-mdz-editorial-banner .mdz-editorial { margin-inline: calc( 50% - 50vw ); width: 100vw; }

.elementor-editor-active .elementor-widget-mdz-hero .mdz-hero,
.elementor-editor-active .elementor-widget-mdz-editorial-banner .mdz-editorial { margin-inline: 0; width: 100%; }

/* ---------- Product carousel (CSS scroll-snap, no JS) ---------- */

.mdz-carousel {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc( ( 100% - ( var(--mdz-carousel-gap, 20px) * ( var(--mdz-carousel-cols, 4) - 1 ) ) ) / var(--mdz-carousel-cols, 4) );
	gap: var(--mdz-carousel-gap, 20px);
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: 0;
	padding-bottom: var(--mdz-s4);
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}

.mdz-carousel > li { scroll-snap-align: start; }

@media (max-width: 1023px) {
	.mdz-carousel { grid-auto-columns: 62%; }
}
@media (max-width: 600px) {
	.mdz-carousel { grid-auto-columns: 76%; }
}

.mdz-carousel::-webkit-scrollbar { height: 3px; }
.mdz-carousel::-webkit-scrollbar-track { background: var(--mdz-border); }
.mdz-carousel::-webkit-scrollbar-thumb { background: var(--mdz-black); }

/* ---------- Editorial banner layouts ---------- */

.mdz-editorial--overlay { display: flex; align-items: center; color: var(--mdz-white); background: var(--mdz-dark); }
.mdz-editorial--overlay .mdz-editorial__media { position: absolute; inset: 0; }
.mdz-editorial--overlay .mdz-editorial__media img { width: 100%; height: 100%; object-fit: cover; }
.mdz-editorial--overlay .mdz-editorial__inner { position: relative; z-index: 1; }
.mdz-editorial--overlay .mdz-editorial__title { color: var(--mdz-white); }
.mdz-editorial--overlay .mdz-editorial__text,
.mdz-editorial--overlay .mdz-editorial__eyebrow { color: rgba(var(--mdz-white-rgb), 0.82); }
.mdz-editorial--overlay::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(var(--mdz-black-rgb), 0.55), rgba(var(--mdz-black-rgb), 0.12));
}
.mdz-editorial--overlay .mdz-editorial__inner { z-index: 2; }

/* Same inversion as the hero: a solid black button vanishes on a dark image. */
.mdz-editorial--overlay .mdz-btn--dark,
.mdz-editorial--dark .mdz-btn--dark {
	background: var(--mdz-white);
	border-color: var(--mdz-white);
	color: var(--mdz-black);
}
.mdz-editorial--overlay .mdz-btn--dark:hover,
.mdz-editorial--dark .mdz-btn--dark:hover {
	background: var(--mdz-light);
	border-color: var(--mdz-light);
	color: var(--mdz-black);
}

.mdz-editorial--split-left .mdz-editorial__inner,
.mdz-editorial--split-right .mdz-editorial__inner {
	display: grid;
	gap: clamp(24px, 4vw, 64px);
	align-items: center;
	max-width: var(--mdz-container);
	padding-block: clamp(48px, 6vw, 96px);
}

@media (min-width: 900px) {
	.mdz-editorial--split-left .mdz-editorial__inner,
	.mdz-editorial--split-right .mdz-editorial__inner { grid-template-columns: 1fr 1fr; }
	.mdz-editorial--split-right .mdz-editorial__figure { order: 2; }
}

.mdz-editorial__figure img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

/* ---------- Promo banners ---------- */

.mdz-promos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--mdz-s4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.mdz-promo a { position: relative; display: block; overflow: hidden; background: var(--mdz-light); }
.mdz-promo__media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 0.7s var(--mdz-ease); }
.mdz-promo a:hover .mdz-promo__media img { transform: scale(1.04); }
.mdz-promo__placeholder { display: block; aspect-ratio: 3 / 2; background: linear-gradient(135deg, #ededed, #fafafa); }
.mdz-promo__body {
	position: absolute;
	inset: 0;
	display: grid;
	align-content: end;
	gap: 4px;
	padding: var(--mdz-s5);
	background: linear-gradient(to top, rgba(var(--mdz-black-rgb), 0.62), transparent 62%);
	color: var(--mdz-white);
}
.mdz-promo__eyebrow { font-size: var(--mdz-t-xs); letter-spacing: 0.16em; text-transform: uppercase; opacity: 0.85; }
.mdz-promo__title { font-family: var(--mdz-font-head); font-size: var(--mdz-t-h4); font-weight: 700; text-transform: uppercase; letter-spacing: 0.02em; }
.mdz-promo__cta { font-size: var(--mdz-t-xs); letter-spacing: 0.12em; text-transform: uppercase; border-bottom: 1px solid currentColor; justify-self: start; padding-bottom: 2px; }

/* ---------- Testimonials ---------- */

.mdz-testimonials {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--mdz-s5);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (max-width: 767px) { .mdz-testimonials { grid-template-columns: 1fr; } }

.mdz-testimonial {
	display: grid;
	gap: var(--mdz-s3);
	align-content: start;
	padding: var(--mdz-s5);
	border: 1px solid var(--mdz-border);
	background: var(--mdz-white);
}
.mdz-testimonial__quote { margin: 0; font-size: var(--mdz-t-md); line-height: 1.55; color: var(--mdz-dark); }
.mdz-testimonial__quote::before { content: "“"; }
.mdz-testimonial__quote::after { content: "”"; }
.mdz-testimonial__author { margin: 0; display: grid; gap: 2px; font-size: var(--mdz-t-sm); font-weight: 600; }
.mdz-testimonial__meta { font-weight: 400; color: var(--mdz-mid); font-size: var(--mdz-t-xs); }

/* ---------- Social feed ---------- */

.mdz-social-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mdz-social-grid__item { overflow: hidden; background: var(--mdz-light); }
.mdz-social-grid__item img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; transition: transform 0.6s var(--mdz-ease), opacity var(--mdz-dur) var(--mdz-ease); }
.mdz-social-grid__item a:hover img { transform: scale(1.06); opacity: 0.9; }
.mdz-social-grid__placeholder { display: block; aspect-ratio: 1 / 1; background: linear-gradient(135deg, #ededed, #fafafa); }

/* ---------- Logo strip ---------- */

.mdz-logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: clamp(24px, 5vw, 72px);
	margin: 0;
	padding: 0;
	list-style: none;
}
.mdz-logos__item img { max-height: 34px; width: auto; transition: opacity var(--mdz-dur) var(--mdz-ease), filter var(--mdz-dur) var(--mdz-ease); }
.mdz-logos__item a:hover img { opacity: 1 !important; filter: none !important; }
.mdz-logos__text {
	font-family: var(--mdz-font-head);
	font-size: var(--mdz-t-md);
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--mdz-mid);
}

/* ---------- Countdown ---------- */

.mdz-countdown { display: grid; gap: var(--mdz-s3); justify-items: center; text-align: center; }
.mdz-countdown__label { margin: 0; font-size: var(--mdz-t-xs); letter-spacing: 0.16em; text-transform: uppercase; color: var(--mdz-mid); }
.mdz-countdown__clock { display: flex; gap: var(--mdz-s4); margin: 0; padding: 0; list-style: none; }
.mdz-countdown__clock li { display: grid; gap: 4px; min-width: 64px; }
.mdz-countdown__clock span {
	font-family: var(--mdz-font-head);
	font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.6rem);
	font-weight: 700;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	color: var(--mdz-black);
}
.mdz-countdown__clock small { font-size: var(--mdz-t-xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--mdz-mid); }
.mdz-countdown__expired { margin: 0; font-size: var(--mdz-t-md); font-weight: 600; }

/* ---------- Inline announcement strip ---------- */

.mdz-announcement--inline { padding-block: 4px; }
.mdz-announcement--inline .mdz-announcement__inner { min-height: 44px; }

/* ---------- Section heading widget ---------- */

.mdz-section__text { margin: var(--mdz-s2) 0 0; color: var(--mdz-mid); }

/* ---------- Editor niceties ---------- */

.elementor-editor-active .mdz-card__cart,
.elementor-editor-active .mdz-card__action { opacity: 1; transform: none; }
