/**
 * ICESCO homepage — structural CSS only
 * ---------------------------------------------------------------------------
 * Gaps, padding, margins, font sizes, min-heights, and circle sizes belong in
 * Elementor controls (edited in the DB / editor). Do NOT re-add those here.
 *
 * This file keeps only layout that Elementor cannot express:
 *   - overflow guards for full-bleed widgets
 *   - Upcoming Events viewport-fit (paired with events-viewport-fit.js)
 *   - Marquee card box sizing driven by that JS (5:6, min 500px)
 *   - Minor display helpers (nowrap on short titles, show feature list)
 */

/* ==========================================================================
   Global overflow guards
   ========================================================================== */

body.home.icesco-fluid,
body.page-id-4321.icesco-fluid {
	overflow-x: clip;
}

body.home.icesco-fluid .elementor-14 .elementor-element-0e2ab39,
body.home.icesco-fluid .elementor-14 .elementor-widget-icesco-circle-timeline {
	max-width: 100%;
}

body.home.icesco-fluid .elementor-14 .icesco-circle-timeline {
	overflow-x: clip;
}

/* Keep short section titles on one line when space allows */
body.home.icesco-fluid .elementor-14 .elementor-element-a179d62 .icesco-motion-text-split__text,
body.icesco-fluid .elementor-element-4e470e4 .icesco-motion-text-split__text {
	white-space: nowrap;
}

@media screen and (max-width: 479px) {
	body.home.icesco-fluid .elementor-14 .elementor-element-a179d62 .icesco-motion-text-split__text,
	body.icesco-fluid .elementor-element-4e470e4 .icesco-motion-text-split__text {
		white-space: normal;
	}
}

/* Feature list: force visible if an old hide-on-mobile class remains */
body.home.icesco-fluid .elementor-14 .elementor-element-2942756.elementor-hidden-mobile {
	display: flex !important;
}

/* Hero H1: allow full phrase width without Elementor max-width fighting split text */
body.home.icesco-fluid .elementor-14 .elementor-element-e8f744d .icesco-motion-text-split,
body.home.icesco-fluid .elementor-14 .elementor-element-e8f744d .icesco-motion-text-split__text,
body.home.icesco-fluid .elementor-14 .elementor-element-a070af9 .icesco-motion-text-split,
body.home.icesco-fluid .elementor-14 .elementor-element-a070af9 .icesco-motion-text-split__text,
body.home.icesco-fluid .elementor-14 .elementor-element-5d825dc .icesco-motion-text-split,
body.home.icesco-fluid .elementor-14 .elementor-element-5d825dc .icesco-motion-text-split__text,
body.icesco-fluid .elementor-element-4e470e4 .icesco-motion-text-split,
body.icesco-fluid .elementor-element-4e470e4 .icesco-motion-text-split__text,
body.home.icesco-fluid .elementor-14 .elementor-element-a179d62 .icesco-motion-text-split,
body.home.icesco-fluid .elementor-14 .elementor-element-a179d62 .icesco-motion-text-split__text {
	max-width: none;
	width: auto;
}

body.home.icesco-fluid .elementor-14 .elementor-element-e8f744d .icesco-motion-text-split__text,
body.home.icesco-fluid .elementor-14 .elementor-element-a070af9 .icesco-motion-text-split__text {
	width: 100%;
}

/* ==========================================================================
   Upcoming Events (cff1d6e) — only what Elementor cannot control.
   Padding / gap / justify / overflow / margins / motion FX → Elementor DB.
   JS sets --icesco-events-section-height and card width/height vars.
   Shared by homepage + /upcoming-events/ (same Elementor IDs).
   ========================================================================== */

body.icesco-fluid .elementor-element-cff1d6e.icesco-events-viewport-fit {
	height: var(--icesco-events-section-height) !important;
	min-height: var(--icesco-events-section-height) !important;
	max-height: var(--icesco-events-section-height) !important;
	--min-height: var(--icesco-events-section-height);
	scroll-margin-top: var(--icesco-sticky-header-height, 0px);
	box-sizing: border-box;
}

body.icesco-fluid .elementor-element-6a6e7d0 .emwp-event-feed {
	--emwp-marquee-card-width: var(--icesco-events-card-width, calc(500px * 5 / 6));
	--emwp-marquee-card-min-height: var(--icesco-events-card-height, 500px);
	--emwp-card-box-ratio: 5 / 6;
	height: var(--icesco-events-feed-height, 40vh);
	min-height: 0;
}

body.icesco-fluid .elementor-element-6a6e7d0 .emwp-event-feed__viewport,
body.icesco-fluid .elementor-element-6a6e7d0 .emwp-event-feed__track,
body.icesco-fluid .elementor-element-6a6e7d0 .emwp-event-feed__group {
	height: 100%;
	min-height: 0;
}

body.icesco-fluid .elementor-element-6a6e7d0 .emwp-event-card--marquee,
body.icesco-fluid .elementor-element-6a6e7d0 .emwp-event-card--hero {
	width: var(--icesco-events-card-width, var(--emwp-marquee-card-width)) !important;
	flex: 0 0 var(--icesco-events-card-width, var(--emwp-marquee-card-width)) !important;
	min-width: var(--icesco-events-card-width, var(--emwp-marquee-card-width)) !important;
	max-width: var(--icesco-events-card-width, var(--emwp-marquee-card-width)) !important;
	height: var(--icesco-events-card-height, 500px) !important;
	min-height: var(--icesco-events-card-height, 500px) !important;
	max-height: var(--icesco-events-card-height, 500px) !important;
	aspect-ratio: 5 / 6;
}

body.icesco-fluid .elementor-element-6a6e7d0 .emwp-event-card__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

body.icesco-fluid .elementor-element-6a6e7d0 .emwp-event-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body.icesco-fluid .elementor-element-6a6e7d0 .emwp-event-card__body {
	height: 100%;
	min-height: 0 !important;
	max-height: 100%;
	overflow: hidden;
}
